fix: address code review findings for DNS management
- CRITICAL: Change DNS zones endpoint from GET to POST to avoid leaking API token in URL query parameters - HIGH: Add sync.RWMutex to protect dnsProvider field in Server, Deployer, and proxy Manager against concurrent read/write races - HIGH: Capture old DNS provider reference synchronously before launching background cleanup goroutine - HIGH: Use getDNS()/getDNSProviderLocked() accessors instead of direct field reads in all DNS operations
This commit is contained in:
@@ -0,0 +1,949 @@
|
||||
{
|
||||
".svelte-kit/generated/client-optimized/app.js": {
|
||||
"file": "_app/immutable/entry/app.C3eO1cEh.js",
|
||||
"name": "entry/app",
|
||||
"src": ".svelte-kit/generated/client-optimized/app.js",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_DKemW7Dm.js",
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_BoGS7hWi.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
".svelte-kit/generated/client-optimized/nodes/0.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/1.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/2.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/3.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/4.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/5.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/6.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/7.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/8.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/9.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/10.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/11.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/12.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/13.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/14.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/15.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/16.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/17.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/18.js",
|
||||
".svelte-kit/generated/client-optimized/nodes/19.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/0.js": {
|
||||
"file": "_app/immutable/nodes/0.BMqZW0X_.js",
|
||||
"name": "nodes/0",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/0.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_CnPWu_ZO.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DELaSNrV.js",
|
||||
"_BSEsuAwr.js",
|
||||
"_BlV-f-zB.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_R0-LJft-.js",
|
||||
"_CGCp4lb_.js",
|
||||
"_CcoMVVg8.js",
|
||||
"_DrzuxmSv.js",
|
||||
"_Hsiz6fBZ.js",
|
||||
"_CWCQOKDd.js",
|
||||
"_CvtQ6g1S.js",
|
||||
"_DPFeFjvi.js",
|
||||
"_DTyrBG6r.js",
|
||||
"_Bpb8V1MF.js"
|
||||
],
|
||||
"css": [
|
||||
"_app/immutable/assets/0.DnmtykcB.css"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/1.js": {
|
||||
"file": "_app/immutable/nodes/1.Bdu_R2Hn.js",
|
||||
"name": "nodes/1",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/1.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_BSEsuAwr.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BlV-f-zB.js",
|
||||
"_CWhLh9u1.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/10.js": {
|
||||
"file": "_app/immutable/nodes/10.DFEGHcUu.js",
|
||||
"name": "nodes/10",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/10.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_DELaSNrV.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_scnZuc49.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_R0-LJft-.js",
|
||||
"_Icw0y4KW.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_CPatcLwq.js",
|
||||
"_CpnAtA5t.js",
|
||||
"_BberSjRt.js",
|
||||
"_BE_zO38m.js",
|
||||
"_CexodXHl.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/11.js": {
|
||||
"file": "_app/immutable/nodes/11.DMrjUtpD.js",
|
||||
"name": "nodes/11",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/11.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_DELaSNrV.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_scnZuc49.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_R0-LJft-.js",
|
||||
"_Icw0y4KW.js",
|
||||
"_BphdEXYy.js",
|
||||
"_BvIWRct8.js",
|
||||
"_CPatcLwq.js",
|
||||
"_BE_zO38m.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/12.js": {
|
||||
"file": "_app/immutable/nodes/12.BO7G7YPE.js",
|
||||
"name": "nodes/12",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/12.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BoGS7hWi.js",
|
||||
"_DELaSNrV.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_Icw0y4KW.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_BE_zO38m.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/13.js": {
|
||||
"file": "_app/immutable/nodes/13.DJV70kty.js",
|
||||
"name": "nodes/13",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/13.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BphdEXYy.js",
|
||||
"_CPatcLwq.js",
|
||||
"_CpnAtA5t.js",
|
||||
"_CnPWu_ZO.js",
|
||||
"_Icw0y4KW.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_R0-LJft-.js",
|
||||
"_BvIWRct8.js",
|
||||
"_CexodXHl.js",
|
||||
"_DrzuxmSv.js",
|
||||
"_BFW91e3Y.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/14.js": {
|
||||
"file": "_app/immutable/nodes/14.udJGaOK1.js",
|
||||
"name": "nodes/14",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/14.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_BSEsuAwr.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_BlV-f-zB.js",
|
||||
"_CWhLh9u1.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DsQCf6vC.js",
|
||||
"_DrzuxmSv.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/15.js": {
|
||||
"file": "_app/immutable/nodes/15.BC8amYnm.js",
|
||||
"name": "nodes/15",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/15.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_DELaSNrV.js",
|
||||
"_CWhLh9u1.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DsQCf6vC.js",
|
||||
"_DrzuxmSv.js",
|
||||
"_BFW91e3Y.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/16.js": {
|
||||
"file": "_app/immutable/nodes/16.DrkZ20qh.js",
|
||||
"name": "nodes/16",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/16.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_BxXVdbgr.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_R0-LJft-.js",
|
||||
"_DhEbbC3M.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_BE_zO38m.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/17.js": {
|
||||
"file": "_app/immutable/nodes/17.CjAaIU5M.js",
|
||||
"name": "nodes/17",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/17.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_scnZuc49.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_CexodXHl.js",
|
||||
"_DTyrBG6r.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/18.js": {
|
||||
"file": "_app/immutable/nodes/18.C3f1k8vs.js",
|
||||
"name": "nodes/18",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/18.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_BE_zO38m.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_CPatcLwq.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/19.js": {
|
||||
"file": "_app/immutable/nodes/19.CiwgThsf.js",
|
||||
"name": "nodes/19",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/19.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_CexodXHl.js",
|
||||
"_BE_zO38m.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_scnZuc49.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_CPatcLwq.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/2.js": {
|
||||
"file": "_app/immutable/nodes/2.DWWtnNKd.js",
|
||||
"name": "nodes/2",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/2.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CnPWu_ZO.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DELaSNrV.js",
|
||||
"_CWCQOKDd.js",
|
||||
"_DqoiTw6k.js",
|
||||
"_DhEbbC3M.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/3.js": {
|
||||
"file": "_app/immutable/nodes/3.C0WC8trC.js",
|
||||
"name": "nodes/3",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/3.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_BPqRr2-s.js",
|
||||
"_ip4Jv8C8.js",
|
||||
"_CexodXHl.js",
|
||||
"_CGCp4lb_.js",
|
||||
"_CvtQ6g1S.js",
|
||||
"_Hsiz6fBZ.js",
|
||||
"_DVE7XZFM.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/4.js": {
|
||||
"file": "_app/immutable/nodes/4.BxW_ZYFP.js",
|
||||
"name": "nodes/4",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/4.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_scnZuc49.js",
|
||||
"_DVE7XZFM.js",
|
||||
"_C8zo5-Sk.js",
|
||||
"_CexodXHl.js",
|
||||
"_ip4Jv8C8.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_CjZL2MYp.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/5.js": {
|
||||
"file": "_app/immutable/nodes/5.C24PPPF_.js",
|
||||
"name": "nodes/5",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/5.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_BxXVdbgr.js",
|
||||
"_CjZL2MYp.js",
|
||||
"_Hsiz6fBZ.js",
|
||||
"_BvIWRct8.js",
|
||||
"_BFW91e3Y.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/6.js": {
|
||||
"file": "_app/immutable/nodes/6.CEvKoBqC.js",
|
||||
"name": "nodes/6",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/6.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_BoGS7hWi.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DPFeFjvi.js",
|
||||
"_CexodXHl.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/7.js": {
|
||||
"file": "_app/immutable/nodes/7.DneEC9SR.js",
|
||||
"name": "nodes/7",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/7.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_phMGo29-.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_CWhLh9u1.js",
|
||||
"_DELaSNrV.js",
|
||||
"_CcoMVVg8.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_DTyrBG6r.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/8.js": {
|
||||
"file": "_app/immutable/nodes/8.BQus6eSQ.js",
|
||||
"name": "nodes/8",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/8.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_BvIWRct8.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_BE_zO38m.js",
|
||||
"_CexodXHl.js",
|
||||
"_BxXVdbgr.js"
|
||||
]
|
||||
},
|
||||
".svelte-kit/generated/client-optimized/nodes/9.js": {
|
||||
"file": "_app/immutable/nodes/9.g1C7u4k3.js",
|
||||
"name": "nodes/9",
|
||||
"src": ".svelte-kit/generated/client-optimized/nodes/9.js",
|
||||
"isEntry": true,
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_ecfdBtDb.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_Bxa5VUw6.js",
|
||||
"_DELaSNrV.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_BPqRr2-s.js",
|
||||
"_BE_zO38m.js",
|
||||
"_C8zo5-Sk.js",
|
||||
"_scnZuc49.js",
|
||||
"_BphdEXYy.js",
|
||||
"_CexodXHl.js",
|
||||
"_Hsiz6fBZ.js",
|
||||
"_C6FeVxU4.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_R0-LJft-.js",
|
||||
"_Icw0y4KW.js",
|
||||
"_DqoiTw6k.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_DVE7XZFM.js",
|
||||
"_CPatcLwq.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_BberSjRt.js",
|
||||
"_CjZL2MYp.js"
|
||||
]
|
||||
},
|
||||
"_BE_zO38m.js": {
|
||||
"file": "_app/immutable/chunks/BE_zO38m.js",
|
||||
"name": "Skeleton",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_BFW91e3Y.js": {
|
||||
"file": "_app/immutable/chunks/BFW91e3Y.js",
|
||||
"name": "IconLoader",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_BJdXET8u.js": {
|
||||
"file": "_app/immutable/chunks/BJdXET8u.js",
|
||||
"name": "disclose-version",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_BPqRr2-s.js": {
|
||||
"file": "_app/immutable/chunks/BPqRr2-s.js",
|
||||
"name": "StatusBadge",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_kfynmD3Z.js"
|
||||
]
|
||||
},
|
||||
"_BSEsuAwr.js": {
|
||||
"file": "_app/immutable/chunks/BSEsuAwr.js",
|
||||
"name": "legacy",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_BSXRhUWv.js": {
|
||||
"file": "_app/immutable/chunks/BSXRhUWv.js",
|
||||
"name": "props",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_BberSjRt.js": {
|
||||
"file": "_app/immutable/chunks/BberSjRt.js",
|
||||
"name": "ToggleSwitch",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_BlV-f-zB.js": {
|
||||
"file": "_app/immutable/chunks/BlV-f-zB.js",
|
||||
"name": "lifecycle",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_BoGS7hWi.js": {
|
||||
"file": "_app/immutable/chunks/BoGS7hWi.js",
|
||||
"name": "this",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_Bpb8V1MF.js": {
|
||||
"file": "_app/immutable/chunks/Bpb8V1MF.js",
|
||||
"name": "api",
|
||||
"imports": [
|
||||
"_DTyrBG6r.js"
|
||||
]
|
||||
},
|
||||
"_BphdEXYy.js": {
|
||||
"file": "_app/immutable/chunks/BphdEXYy.js",
|
||||
"name": "IconExternalLink",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_BvIWRct8.js": {
|
||||
"file": "_app/immutable/chunks/BvIWRct8.js",
|
||||
"name": "IconSearch",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_BxXVdbgr.js": {
|
||||
"file": "_app/immutable/chunks/BxXVdbgr.js",
|
||||
"name": "EntityPicker",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js",
|
||||
"_BoGS7hWi.js",
|
||||
"_R0-LJft-.js",
|
||||
"_BvIWRct8.js"
|
||||
],
|
||||
"css": [
|
||||
"_app/immutable/assets/EntityPicker.D4Qf6tQ2.css"
|
||||
]
|
||||
},
|
||||
"_Bxa5VUw6.js": {
|
||||
"file": "_app/immutable/chunks/Bxa5VUw6.js",
|
||||
"name": "select",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_C6FeVxU4.js": {
|
||||
"file": "_app/immutable/chunks/C6FeVxU4.js",
|
||||
"name": "IconPlus",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_C8zo5-Sk.js": {
|
||||
"file": "_app/immutable/chunks/C8zo5-Sk.js",
|
||||
"name": "ConfirmDialog",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_CGCp4lb_.js"
|
||||
]
|
||||
},
|
||||
"_CGCp4lb_.js": {
|
||||
"file": "_app/immutable/chunks/CGCp4lb_.js",
|
||||
"name": "IconAlert",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_CPatcLwq.js": {
|
||||
"file": "_app/immutable/chunks/CPatcLwq.js",
|
||||
"name": "IconEdit",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_CWCQOKDd.js": {
|
||||
"file": "_app/immutable/chunks/CWCQOKDd.js",
|
||||
"name": "IconSettings",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_CWhLh9u1.js": {
|
||||
"file": "_app/immutable/chunks/CWhLh9u1.js",
|
||||
"name": "entry",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js",
|
||||
"_phMGo29-.js"
|
||||
]
|
||||
},
|
||||
"_CZnXUJhL.js": {
|
||||
"file": "_app/immutable/chunks/CZnXUJhL.js",
|
||||
"name": "each",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_CcoMVVg8.js": {
|
||||
"file": "_app/immutable/chunks/CcoMVVg8.js",
|
||||
"name": "theme",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_CexodXHl.js": {
|
||||
"file": "_app/immutable/chunks/CexodXHl.js",
|
||||
"name": "EmptyState",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_kfynmD3Z.js"
|
||||
]
|
||||
},
|
||||
"_CjZL2MYp.js": {
|
||||
"file": "_app/immutable/chunks/CjZL2MYp.js",
|
||||
"name": "toast",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_CnPWu_ZO.js": {
|
||||
"file": "_app/immutable/chunks/CnPWu_ZO.js",
|
||||
"name": "snippet",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_CpnAtA5t.js": {
|
||||
"file": "_app/immutable/chunks/CpnAtA5t.js",
|
||||
"name": "IconLock",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_CvtQ6g1S.js": {
|
||||
"file": "_app/immutable/chunks/CvtQ6g1S.js",
|
||||
"name": "IconProxies",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_DELaSNrV.js": {
|
||||
"file": "_app/immutable/chunks/DELaSNrV.js",
|
||||
"name": "stores",
|
||||
"imports": [
|
||||
"_CWhLh9u1.js"
|
||||
]
|
||||
},
|
||||
"_DKemW7Dm.js": {
|
||||
"file": "_app/immutable/chunks/DKemW7Dm.js",
|
||||
"name": "runtime"
|
||||
},
|
||||
"_DPFeFjvi.js": {
|
||||
"file": "_app/immutable/chunks/DPFeFjvi.js",
|
||||
"name": "sse",
|
||||
"imports": [
|
||||
"_DTyrBG6r.js"
|
||||
]
|
||||
},
|
||||
"_DTyrBG6r.js": {
|
||||
"file": "_app/immutable/chunks/DTyrBG6r.js",
|
||||
"name": "auth"
|
||||
},
|
||||
"_DVE7XZFM.js": {
|
||||
"file": "_app/immutable/chunks/DVE7XZFM.js",
|
||||
"name": "IconClock",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_DfwQ65vN.js": {
|
||||
"file": "_app/immutable/chunks/DfwQ65vN.js",
|
||||
"name": "FormField",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_DgtbvmBB.js"
|
||||
]
|
||||
},
|
||||
"_DgtbvmBB.js": {
|
||||
"file": "_app/immutable/chunks/DgtbvmBB.js",
|
||||
"name": "input",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_DhEbbC3M.js": {
|
||||
"file": "_app/immutable/chunks/DhEbbC3M.js",
|
||||
"name": "IconShield",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_DqoiTw6k.js": {
|
||||
"file": "_app/immutable/chunks/DqoiTw6k.js",
|
||||
"name": "IconKey",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_DrzuxmSv.js": {
|
||||
"file": "_app/immutable/chunks/DrzuxmSv.js",
|
||||
"name": "IconGlobe",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_DsQCf6vC.js": {
|
||||
"file": "_app/immutable/chunks/DsQCf6vC.js",
|
||||
"name": "ProxyForm",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BSXRhUWv.js",
|
||||
"_Bpb8V1MF.js",
|
||||
"_DfwQ65vN.js",
|
||||
"_CZnXUJhL.js",
|
||||
"_LFhQE6G2.js",
|
||||
"_R0-LJft-.js",
|
||||
"_BFW91e3Y.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_C8zo5-Sk.js"
|
||||
]
|
||||
},
|
||||
"_EntityPicker.D4Qf6tQ2.css": {
|
||||
"file": "_app/immutable/assets/EntityPicker.D4Qf6tQ2.css",
|
||||
"src": "_EntityPicker.D4Qf6tQ2.css"
|
||||
},
|
||||
"_Hsiz6fBZ.js": {
|
||||
"file": "_app/immutable/chunks/Hsiz6fBZ.js",
|
||||
"name": "IconDeploy",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_Icw0y4KW.js": {
|
||||
"file": "_app/immutable/chunks/Icw0y4KW.js",
|
||||
"name": "IconChevronRight",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_LFhQE6G2.js": {
|
||||
"file": "_app/immutable/chunks/LFhQE6G2.js",
|
||||
"name": "IconCheck",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_R0-LJft-.js": {
|
||||
"file": "_app/immutable/chunks/R0-LJft-.js",
|
||||
"name": "IconX",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"_ecfdBtDb.js": {
|
||||
"file": "_app/immutable/chunks/ecfdBtDb.js",
|
||||
"name": "svelte-head",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_ip4Jv8C8.js": {
|
||||
"file": "_app/immutable/chunks/ip4Jv8C8.js",
|
||||
"name": "SkeletonCard",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_BSEsuAwr.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_BE_zO38m.js"
|
||||
]
|
||||
},
|
||||
"_kfynmD3Z.js": {
|
||||
"file": "_app/immutable/chunks/kfynmD3Z.js",
|
||||
"name": "index",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_phMGo29-.js": {
|
||||
"file": "_app/immutable/chunks/phMGo29-.js",
|
||||
"name": "index-client",
|
||||
"imports": [
|
||||
"_DKemW7Dm.js"
|
||||
]
|
||||
},
|
||||
"_scnZuc49.js": {
|
||||
"file": "_app/immutable/chunks/scnZuc49.js",
|
||||
"name": "IconTrash",
|
||||
"imports": [
|
||||
"_BJdXET8u.js",
|
||||
"_DKemW7Dm.js",
|
||||
"_kfynmD3Z.js",
|
||||
"_BSXRhUWv.js"
|
||||
]
|
||||
},
|
||||
"node_modules/@sveltejs/kit/src/runtime/client/entry.js": {
|
||||
"file": "_app/immutable/entry/start.BU-sFgwv.js",
|
||||
"name": "entry/start",
|
||||
"src": "node_modules/@sveltejs/kit/src/runtime/client/entry.js",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_CWhLh9u1.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.entity-picker-backdrop.svelte-1bxz98v{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--transition-normal) forwards}.entity-picker-container.svelte-1bxz98v{position:fixed;top:0;right:0;bottom:0;left:0;z-index:61;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;pointer-events:none}.entity-picker-modal.svelte-1bxz98v{pointer-events:auto;width:90vw;max-width:500px;background:var(--surface-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:scale-in var(--transition-normal) forwards;display:flex;flex-direction:column}.entity-picker-header.svelte-1bxz98v{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-secondary)}.entity-picker-title.svelte-1bxz98v{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.entity-picker-close.svelte-1bxz98v{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.entity-picker-close.svelte-1bxz98v:hover{background:var(--surface-card-hover);color:var(--text-primary)}.entity-picker-search.svelte-1bxz98v{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-secondary)}.entity-picker-search-icon{flex-shrink:0;color:var(--text-tertiary)}.entity-picker-search-input.svelte-1bxz98v{flex:1;border:none;outline:none;background:transparent;font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-family-sans)}.entity-picker-search-input.svelte-1bxz98v::placeholder{color:var(--text-tertiary)}.entity-picker-close-inline.svelte-1bxz98v{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.entity-picker-close-inline.svelte-1bxz98v:hover{background:var(--surface-card-hover);color:var(--text-primary)}.entity-picker-list.svelte-1bxz98v{overflow-y:auto;max-height:60vh;padding:var(--space-1) 0}.entity-picker-empty.svelte-1bxz98v{padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.entity-picker-group-header.svelte-1bxz98v{padding:var(--space-2) var(--space-4) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.entity-picker-item.svelte-1bxz98v{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);border:none;background:transparent;cursor:pointer;text-align:left;font-family:var(--font-family-sans);transition:background var(--transition-fast);border-left:3px solid transparent}.entity-picker-item--highlighted.svelte-1bxz98v{background:var(--surface-card-hover)}.entity-picker-item--current.svelte-1bxz98v{border-left-color:var(--color-brand-500)}.entity-picker-item-icon.svelte-1bxz98v{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.entity-picker-item-content.svelte-1bxz98v{display:flex;flex-direction:column;gap:1px;min-width:0}.entity-picker-item-label.svelte-1bxz98v{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-item-description.svelte-1bxz98v{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-item--disabled.svelte-1bxz98v{opacity:.45;cursor:default;pointer-events:none}.entity-picker-item-hint.svelte-1bxz98v{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic;white-space:nowrap}
|
||||
@@ -0,0 +1 @@
|
||||
import{a as d,b as h}from"./BJdXET8u.js";import{Q as f,t as n}from"./DKemW7Dm.js";import{b as m,a as c}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";function p(t,e,l,i){var a=t.__style;if(f||a!==e){var s=m(e);(!f||s!==t.getAttribute("style"))&&(s==null?t.removeAttribute("style"):t.style.cssText=s),t.__style=e}return i}var u=h('<div aria-hidden="true"></div>');function g(t,e){const l=r(e,"class",3,""),i=r(e,"width",3,"100%"),a=r(e,"height",3,"1rem"),s=r(e,"rounded",3,!1);var o=u();n(()=>{c(o,1,`skeleton ${l()??""}`),p(o,`width: ${i()??""}; height: ${a()??""}; ${s()?"border-radius: 9999px;":""}`)}),d(t,o)}export{g as S,p as s};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as m}from"./DKemW7Dm.js";import{s,a as f}from"./kfynmD3Z.js";import{p as a}from"./BSXRhUWv.js";var c=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg>');function g(e,o){const r=a(o,"size",3,20),i=a(o,"class",3,"");var t=c();m(()=>{s(t,"width",r()),s(t,"height",r()),f(t,0,`animate-spin ${i()??""}`)}),n(e,t)}export{g as I};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{s as B,a as i,b as p}from"./BJdXET8u.js";import{p as C,c as m,g as t,s as u,r as k,t as c,e as M,u as a}from"./DKemW7Dm.js";import{p as j,i as q}from"./BSXRhUWv.js";import{a as g}from"./kfynmD3Z.js";var D=p("<span></span>"),E=p("<span><span><!> <span></span></span> </span>");function J(f,e){C(e,!0);const l=j(e,"size",3,"md"),v={running:{bg:"bg-emerald-50 dark:bg-emerald-950",text:"text-emerald-700 dark:text-emerald-300",dot:"bg-emerald-500"},success:{bg:"bg-emerald-50 dark:bg-emerald-950",text:"text-emerald-700 dark:text-emerald-300",dot:"bg-emerald-500"},stopped:{bg:"bg-gray-100 dark:bg-gray-800",text:"text-gray-700 dark:text-gray-300",dot:"bg-gray-400"},failed:{bg:"bg-red-50 dark:bg-red-950",text:"text-red-700 dark:text-red-300",dot:"bg-red-500"},rolled_back:{bg:"bg-red-50 dark:bg-red-950",text:"text-red-700 dark:text-red-300",dot:"bg-red-500"},removing:{bg:"bg-amber-50 dark:bg-amber-950",text:"text-amber-700 dark:text-amber-300",dot:"bg-amber-500"},pending:{bg:"bg-blue-50 dark:bg-blue-950",text:"text-blue-700 dark:text-blue-300",dot:"bg-blue-500"},pulling:{bg:"bg-blue-50 dark:bg-blue-950",text:"text-blue-700 dark:text-blue-300",dot:"bg-blue-500"},starting:{bg:"bg-amber-50 dark:bg-amber-950",text:"text-amber-700 dark:text-amber-300",dot:"bg-amber-500"},configuring_proxy:{bg:"bg-amber-50 dark:bg-amber-950",text:"text-amber-700 dark:text-amber-300",dot:"bg-amber-500"},health_checking:{bg:"bg-violet-50 dark:bg-violet-950",text:"text-violet-700 dark:text-violet-300",dot:"bg-violet-500"}},_={bg:"bg-gray-100 dark:bg-gray-800",text:"text-gray-700 dark:text-gray-300",dot:"bg-gray-400"},r=a(()=>v[e.status]??_),y=a(()=>l()==="sm"?"text-xs px-2 py-0.5":"text-sm px-2.5 py-0.5"),n=a(()=>l()==="sm"?"h-1.5 w-1.5":"h-2 w-2"),h=a(()=>e.status.replace(/_/g," ")),z=a(()=>e.status==="running"||e.status==="pulling"||e.status==="starting"||e.status==="health_checking");var b=E(),d=m(b),o=m(d);{var w=s=>{var x=D();c(()=>g(x,1,`absolute inline-flex h-full w-full animate-ping rounded-full ${t(r).dot??""} opacity-50`)),i(s,x)};q(o,s=>{t(z)&&s(w)})}var S=u(o,2);k(d);var A=u(d);k(b),c(()=>{g(b,1,`inline-flex items-center gap-1.5 rounded-full font-medium ${t(r).bg??""} ${t(r).text??""} ${t(y)??""}`),g(d,1,`relative flex ${t(n)??""}`),g(S,1,`relative inline-flex rounded-full ${t(n)??""} ${t(r).dot??""}`),B(A,` ${t(h)??""}`)}),i(f,b),M()}export{J as S};
|
||||
@@ -0,0 +1 @@
|
||||
import{z as a}from"./DKemW7Dm.js";a();
|
||||
@@ -0,0 +1 @@
|
||||
var J=Object.defineProperty;var L=t=>{throw TypeError(t)};var Q=(t,e,a)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var U=(t,e,a)=>Q(t,typeof e!="symbol"?e+"":e,a),x=(t,e,a)=>e.has(t)||L("Cannot "+a);var r=(t,e,a)=>(x(t,e,"read from private field"),a?a.call(t):e.get(t)),b=(t,e,a)=>e.has(t)?L("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,a),C=(t,e,a,s)=>(x(t,e,"write to private field"),s?s.call(t,a):e.set(t,a),a);import{ax as F,ae as V,ay as W,d as q,az as Z,g as A,I as K,aA as X,ai as ee,ap as D,aj as te,N as k,a7 as Y,H as ae,Q as O,W as z,ao as se,a9 as re,l as ie,a0 as ne,E as fe,a1 as ue,a3 as ce,V as de,U as $,aB as oe,aC as le,aD as he,b as _e,aE as ve,C as be,ah as ge,aF as Se,o as me,aq as pe,aG as Ee,aH as Ie,y as Pe,aa as ye,aI as Ae,S as Re,aJ as Te}from"./DKemW7Dm.js";let y=!1,M=Symbol();function we(t,e,a){const s=a[e]??(a[e]={store:null,source:V(void 0),unsubscribe:F});if(s.store!==t&&!(M in a))if(s.unsubscribe(),s.store=t??null,t==null)s.source.v=void 0,s.unsubscribe=F;else{var i=!0;s.unsubscribe=W(t,n=>{i?s.source.v=n:q(s.source,n)}),i=!1}return t&&M in a?Z(t):A(s.source)}function Be(){const t={};function e(){K(()=>{for(var a in t)t[a].unsubscribe();X(t,M,{enumerable:!1,value:!0})})}return[t,e]}function De(t){var e=y;try{return y=!1,[t(),y]}finally{y=e}}var l,_,o,g,E,I,R;class Oe{constructor(e,a=!0){U(this,"anchor");b(this,l,new Map);b(this,_,new Map);b(this,o,new Map);b(this,g,new Set);b(this,E,!0);b(this,I,e=>{if(r(this,l).has(e)){var a=r(this,l).get(e),s=r(this,_).get(a);if(s)ee(s),r(this,g).delete(a);else{var i=r(this,o).get(a);i&&(r(this,_).set(a,i.effect),r(this,o).delete(a),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),s=i.effect)}for(const[n,u]of r(this,l)){if(r(this,l).delete(n),n===e)break;const f=r(this,o).get(u);f&&(D(f.effect),r(this,o).delete(u))}for(const[n,u]of r(this,_)){if(n===a||r(this,g).has(n))continue;const f=()=>{if(Array.from(r(this,l).values()).includes(n)){var h=document.createDocumentFragment();se(u,h),h.append(k()),r(this,o).set(n,{effect:u,fragment:h})}else D(u);r(this,g).delete(n),r(this,_).delete(n)};r(this,E)||!s?(r(this,g).add(n),te(u,f,!1)):f()}}});b(this,R,e=>{r(this,l).delete(e);const a=Array.from(r(this,l).values());for(const[s,i]of r(this,o))a.includes(s)||(D(i.effect),r(this,o).delete(s))});this.anchor=e,C(this,E,a)}ensure(e,a){var s=ae,i=re();if(a&&!r(this,_).has(e)&&!r(this,o).has(e))if(i){var n=document.createDocumentFragment(),u=k();n.append(u),r(this,o).set(e,{effect:Y(()=>a(u)),fragment:n})}else r(this,_).set(e,Y(()=>a(this.anchor)));if(r(this,l).set(s,e),i){for(const[f,c]of r(this,_))f===e?s.unskip_effect(c):s.skip_effect(c);for(const[f,c]of r(this,o))f===e?s.unskip_effect(c.effect):s.skip_effect(c.effect);s.oncommit(r(this,I)),s.ondiscard(r(this,R))}else O&&(this.anchor=z),r(this,I).call(this,s)}}l=new WeakMap,_=new WeakMap,o=new WeakMap,g=new WeakMap,E=new WeakMap,I=new WeakMap,R=new WeakMap;function Le(t,e,a=!1){var s;O&&(s=z,ne());var i=new Oe(t),n=a?fe:0;function u(f,c){if(O){var h=ue(s);if(f!==parseInt(h.substring(1))){var v=ce();de(v),i.anchor=v,$(!1),i.ensure(f,c),$(!0);return}}i.ensure(f,c)}ie(()=>{var f=!1;e((c,h=0)=>{f=!0,u(h,c)}),f||u(-1,null)},n)}function Ue(t,e,a,s){var w;var i=!pe||(a&Ee)!==0,n=(a&Se)!==0,u=(a&Ae)!==0,f=s,c=!0,h=()=>(c&&(c=!1,f=u?me(s):s),f);let v;if(n){var G=Re in t||Te in t;v=((w=oe(t,e))==null?void 0:w.set)??(G&&e in t?d=>t[e]=d:void 0)}var m,N=!1;n?[m,N]=De(()=>t[e]):m=t[e],m===void 0&&s!==void 0&&(m=h(),v&&(i&&le(),v(m)));var S;if(i?S=()=>{var d=t[e];return d===void 0?h():(c=!0,d)}:S=()=>{var d=t[e];return d!==void 0&&(f=void 0),d===void 0?f:d},i&&(a&he)===0)return S;if(v){var H=t.$$legacy;return(function(d,P){return arguments.length>0?((!i||!P||H||N)&&v(P?S():d),d):S()})}var T=!1,p=((a&Ie)!==0?Pe:ye)(()=>(T=!1,S()));n&&A(p);var j=be;return(function(d,P){if(arguments.length>0){const B=P?A(p):i&&n?_e(d):d;return q(p,B),T=!0,f!==void 0&&(f=B),d}return ve&&T||(j.f&ge)!==0?p.v:A(p)})}export{Oe as B,we as a,Le as i,Ue as p,Be as s};
|
||||
@@ -0,0 +1 @@
|
||||
import{d as b,s as m,c as h,a as g,b as k}from"./BJdXET8u.js";import{p as _,c as r,r as i,t as p,e as v}from"./DKemW7Dm.js";import{s as w,a as x}from"./kfynmD3Z.js";import{p as l}from"./BSXRhUWv.js";var y=k('<button type="button" role="switch"><span class="sr-only"> </span></button>');function z(n,t){_(t,!0);let a=l(t,"checked",15,!1),d=l(t,"label",3,""),s=l(t,"disabled",3,!1);function f(){var o;s()||(a(!a()),(o=t.onchange)==null||o.call(t,a()))}var e=y(),c=r(e),u=r(c,!0);i(c),i(e),p(()=>{w(e,"aria-checked",a()),x(e,1,`toggle-switch ${s()?"opacity-50 cursor-not-allowed":""}`),e.disabled=s(),m(u,d())}),h("click",e,f),g(n,e),v()}b(["click"]);export{z as T};
|
||||
@@ -0,0 +1 @@
|
||||
import{m as d,n as g,i as c,o as m,q as v,v as l,g as p,x as b,y as h}from"./DKemW7Dm.js";function x(n=!1){const s=d,e=s.l.u;if(!e)return;let r=()=>b(s.s);if(n){let o=0,t={};const _=h(()=>{let i=!1;const a=s.s;for(const f in a)a[f]!==t[f]&&(t[f]=a[f],i=!0);return i&&o++,o});r=()=>p(_)}e.b.length&&g(()=>{u(s,r),l(e.b)}),c(()=>{const o=m(()=>e.m.map(v));return()=>{for(const t of o)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,r),l(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}export{x as i};
|
||||
@@ -0,0 +1 @@
|
||||
import{m as w,A as T,B as x,o as A,C as B,D,S as E}from"./DKemW7Dm.js";function n(r,f){return r===f||(r==null?void 0:r[E])===f}function k(r={},f,i,O){var p=w.r,S=B;return T(()=>{var a,t;return x(()=>{a=t,t=[],A(()=>{r!==i(...t)&&(f(r,...t),a&&n(i(...a),r)&&f(null,...a))})}),()=>{let s=S;for(;s!==p&&s.parent!==null&&s.parent.f&D;)s=s.parent;const h=()=>{t&&n(i(...t),r)&&f(null,...t)},c=s.teardown;s.teardown=()=>{h(),c==null||c()}}}),r}export{k as b};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as h}from"./DKemW7Dm.js";import{s as o,a as c,c as l}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";var m=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg>');function w(e,a){const s=r(a,"size",3,20),i=r(a,"class",3,"");var t=m();h(()=>{o(t,"width",s()),o(t,"height",s()),c(t,0,l(i()))}),n(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as c,f as n}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s as o,a as l,c as m}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var f=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>');function w(a,t){const s=e(t,"size",3,20),i=e(t,"class",3,"");var r=f();p(()=>{o(r,"width",s()),o(r,"height",s()),l(r,0,m(i()))}),c(a,r)}export{w as I};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{G as s,H as v,A as o,I as c,J as b,K as m,L as h}from"./DKemW7Dm.js";function d(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(t(a));return}for(a of e.options){var i=t(a);if(h(i,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function y(e){var r=new MutationObserver(()=>{d(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function S(e,r,f=r){var a=new WeakSet,i=!0;s(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),t);else{var _=e.querySelector(l)??e.querySelector("option:not([disabled])");n=_&&t(_)}f(n),e.__value=n,v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=v;if(a.has(l))return}if(d(e,u,i),i&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=t(n),f(u))}e.__value=u,i=!1}),y(e)}function t(e){return"__value"in e?e.__value:e.value}export{S as b,y as i,d as s};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as c}from"./DKemW7Dm.js";import{s as r,a as h,c as l}from"./kfynmD3Z.js";import{p as a}from"./BSXRhUWv.js";var m=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>');function u(e,s){const o=a(s,"size",3,20),i=a(s,"class",3,"");var t=m();c(()=>{r(t,"width",o()),r(t,"height",o()),h(t,0,l(i()))}),n(e,t)}export{u as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{d as Q,g as R,a as j,s as l,c as u,b as S}from"./BJdXET8u.js";import{p as T,h as z,e as U,s as o,c as t,g,r as e,t as W,u as b}from"./DKemW7Dm.js";import{p as I,i as X,s as Y,a as Z}from"./BSXRhUWv.js";import{a as L,t as $}from"./kfynmD3Z.js";import{I as tt}from"./CGCp4lb_.js";var et=S('<div class="fixed inset-0 z-40 bg-[var(--surface-overlay)] animate-fade-in" role="presentation"></div> <div class="fixed inset-0 z-50 flex items-center justify-center p-4"><div class="w-full max-w-md rounded-2xl bg-[var(--surface-card)] p-6 shadow-xl animate-scale-in"><div class="flex items-start gap-4"><div><!></div> <div class="flex-1"><h3 class="text-lg font-semibold text-[var(--text-primary)]"> </h3> <p class="mt-2 text-sm text-[var(--text-secondary)] leading-relaxed"> </p></div></div> <div class="mt-6 flex justify-end gap-3"><button type="button" class="rounded-lg px-4 py-2 text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--surface-card-hover)] transition-colors active:animate-press"> </button> <button type="button"> </button></div></div></div>',1);function nt(V,a){T(a,!0);const A=()=>Z($,"$t",B),[B,D]=Y(),q=I(a,"confirmLabel",3,"Confirm"),v=I(a,"confirmVariant",3,"primary"),E=b(()=>v()==="danger"?"bg-[var(--color-danger)] hover:bg-[var(--color-danger-dark)] focus-visible:outline-[var(--color-danger)]":"bg-[var(--color-brand-600)] hover:bg-[var(--color-brand-700)] focus-visible:outline-[var(--color-brand-600)]"),F=b(()=>v()==="danger"?"bg-[var(--color-danger-light)]":"bg-[var(--color-brand-50)]"),G=b(()=>v()==="danger"?"text-[var(--color-danger)]":"text-[var(--color-brand-600)]");var x=R(),H=z(x);{var J=d=>{var p=et(),_=z(p),h=o(_,2),y=t(h),f=t(y),i=t(f),K=t(i);tt(K,{size:20,get class(){return g(G)}}),e(i);var k=o(i,2),m=t(k),M=t(m,!0);e(m);var C=o(m,2),N=t(C,!0);e(C),e(k),e(f);var w=o(f,2),n=t(w),O=t(n,!0);e(n);var c=o(n,2),P=t(c,!0);e(c),e(w),e(y),e(h),W(s=>{L(i,1,`flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full ${g(F)??""}`),l(M,a.title),l(N,a.message),l(O,s),L(c,1,`rounded-lg px-4 py-2 text-sm font-medium text-white ${g(E)??""} shadow-sm transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 active:animate-press`),l(P,q())},[()=>A()("common.cancel")]),u("click",_,function(...s){var r;(r=a.oncancel)==null||r.apply(this,s)}),u("click",n,function(...s){var r;(r=a.oncancel)==null||r.apply(this,s)}),u("click",c,function(...s){var r;(r=a.onconfirm)==null||r.apply(this,s)}),j(d,p)};X(H,d=>{a.open&&d(J)})}j(V,x),U(),D()}Q(["click"]);export{nt as C};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as p,f as n}from"./BJdXET8u.js";import{t as h}from"./DKemW7Dm.js";import{s as o,a as l,c as m}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";var c=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg>');function w(e,a){const s=r(a,"size",3,20),i=r(a,"class",3,"");var t=c();h(()=>{o(t,"width",s()),o(t,"height",s()),l(t,0,m(i()))}),p(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as l}from"./DKemW7Dm.js";import{s as a,a as c,c as m}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";var f=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"></path></svg>');function w(e,s){const o=r(s,"size",3,20),i=r(s,"class",3,"");var t=f();l(()=>{a(t,"width",o()),a(t,"height",o()),c(t,0,m(i()))}),n(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as i,f as c}from"./BJdXET8u.js";import{t as n}from"./DKemW7Dm.js";import{s,a as p,c as v}from"./kfynmD3Z.js";import{p as l}from"./BSXRhUWv.js";var m=c('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>');function w(o,t){const r=l(t,"size",3,20),e=l(t,"class",3,"");var a=m();n(()=>{s(a,"width",r()),s(a,"height",r()),p(a,0,v(e()))}),i(o,a)}export{w as I};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{N as V,l as fe,_ as ne,Q as H,V as Y,X as ie,a0 as le,g as K,a1 as ue,a2 as se,a3 as P,U as q,W as L,R as oe,a4 as de,a5 as $,H as ve,a6 as w,a7 as U,a8 as te,a9 as ce,aa as pe,J as ge,ab as J,ac as he,ad as _e,ae as Ee,af as j,ag as me,ah as Te,ai as re,aj as ae,ak as B,Z as we,al as Ae,am as Ce,an as Se,ao as Ne,ap as Ie,T as Re}from"./DKemW7Dm.js";function Me(e,r){return r}function ke(e,r,u){for(var s=[],c=r.length,l,i=r.length,p=0;p<c;p++){let E=r[p];ae(E,()=>{if(l){if(l.pending.delete(E),l.done.add(E),l.pending.size===0){var d=e.outrogroups;X(e,J(l.done)),d.delete(l),d.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var f=s.length===0&&u!==null;if(f){var t=u,a=t.parentNode;Se(a),a.append(t),e.items.clear()}X(e,r,!f)}else l={pending:new Set(r),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(l)}function X(e,r,u=!0){var s;if(e.pending.size>0){s=new Set;for(const i of e.pending.values())for(const p of i)s.add(e.items.get(p).e)}for(var c=0;c<r.length;c++){var l=r[c];if(s!=null&&s.has(l)){l.f|=w;const i=document.createDocumentFragment();Ne(l,i)}else Ie(r[c],u)}}var ee;function be(e,r,u,s,c,l=null){var i=e,p=new Map,f=(r&ne)!==0;if(f){var t=e;i=H?Y(ie(t)):t.appendChild(V())}H&&le();var a=null,E=pe(()=>{var v=u();return ge(v)?v:v==null?[]:J(v)}),d,m=new Map,T=!0;function R(v){(C.effect.f&Te)===0&&(C.pending.delete(v),C.fallback=a,xe(C,d,i,r,s),a!==null&&(d.length===0?(a.f&w)===0?re(a):(a.f^=w,b(a,null,i)):ae(a,()=>{a=null})))}function n(v){C.pending.delete(v)}var o=fe(()=>{d=K(E);var v=d.length;let h=!1;if(H){var O=ue(i)===se;O!==(v===0)&&(i=P(),Y(i),q(!1),h=!0)}for(var S=new Set,g=ve,x=ce(),N=0;N<v;N+=1){H&&L.nodeType===oe&&L.data===de&&(i=L,h=!0,q(!1));var D=d[N],k=s(D,N),_=T?null:p.get(k);_?(_.v&&$(_.v,D),_.i&&$(_.i,N),x&&g.unskip_effect(_.e)):(_=De(p,T?i:ee??(ee=V()),D,k,N,c,r,u),T||(_.e.f|=w),p.set(k,_)),S.add(k)}if(v===0&&l&&!a&&(T?a=U(()=>l(i)):(a=U(()=>l(ee??(ee=V()))),a.f|=w)),v>S.size&&te(),H&&v>0&&Y(P()),!T)if(m.set(g,S),x){for(const[F,z]of p)S.has(F)||g.skip_effect(z.e);g.oncommit(R),g.ondiscard(n)}else R(g);h&&q(!0),K(E)}),C={effect:o,items:p,pending:m,outrogroups:null,fallback:a};T=!1,H&&(i=L)}function M(e){for(;e!==null&&(e.f&Ae)===0;)e=e.next;return e}function xe(e,r,u,s,c){var D,k,_,F,z,Q,W,Z,y;var l=(s&Ce)!==0,i=r.length,p=e.items,f=M(e.effect.first),t,a=null,E,d=[],m=[],T,R,n,o;if(l)for(o=0;o<i;o+=1)T=r[o],R=c(T,o),n=p.get(R).e,(n.f&w)===0&&((k=(D=n.nodes)==null?void 0:D.a)==null||k.measure(),(E??(E=new Set)).add(n));for(o=0;o<i;o+=1){if(T=r[o],R=c(T,o),n=p.get(R).e,e.outrogroups!==null)for(const A of e.outrogroups)A.pending.delete(n),A.done.delete(n);if((n.f&B)!==0&&(re(n),l&&((F=(_=n.nodes)==null?void 0:_.a)==null||F.unfix(),(E??(E=new Set)).delete(n))),(n.f&w)!==0)if(n.f^=w,n===f)b(n,null,u);else{var C=a?a.next:f;n===e.effect.last&&(e.effect.last=n.prev),n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),I(e,a,n),I(e,n,C),b(n,C,u),a=n,d=[],m=[],f=M(a.next);continue}if(n!==f){if(t!==void 0&&t.has(n)){if(d.length<m.length){var v=m[0],h;a=v.prev;var O=d[0],S=d[d.length-1];for(h=0;h<d.length;h+=1)b(d[h],v,u);for(h=0;h<m.length;h+=1)t.delete(m[h]);I(e,O.prev,S.next),I(e,a,O),I(e,S,v),f=v,a=S,o-=1,d=[],m=[]}else t.delete(n),b(n,f,u),I(e,n.prev,n.next),I(e,n,a===null?e.effect.first:a.next),I(e,a,n),a=n;continue}for(d=[],m=[];f!==null&&f!==n;)(t??(t=new Set)).add(f),m.push(f),f=M(f.next);if(f===null)continue}(n.f&w)===0&&d.push(n),a=n,f=M(n.next)}if(e.outrogroups!==null){for(const A of e.outrogroups)A.pending.size===0&&(X(e,J(A.done)),(z=e.outrogroups)==null||z.delete(A));e.outrogroups.size===0&&(e.outrogroups=null)}if(f!==null||t!==void 0){var g=[];if(t!==void 0)for(n of t)(n.f&B)===0&&g.push(n);for(;f!==null;)(f.f&B)===0&&f!==e.fallback&&g.push(f),f=M(f.next);var x=g.length;if(x>0){var N=(s&ne)!==0&&i===0?u:null;if(l){for(o=0;o<x;o+=1)(W=(Q=g[o].nodes)==null?void 0:Q.a)==null||W.measure();for(o=0;o<x;o+=1)(y=(Z=g[o].nodes)==null?void 0:Z.a)==null||y.fix()}ke(e,g,N)}}l&&we(()=>{var A,G;if(E!==void 0)for(n of E)(G=(A=n.nodes)==null?void 0:A.a)==null||G.apply()})}function De(e,r,u,s,c,l,i,p){var f=(i&he)!==0?(i&_e)===0?Ee(u,!1,!1):j(u):null,t=(i&me)!==0?j(c):null;return{v:f,i:t,e:U(()=>(l(r,f??u,t??c,p),()=>{e.delete(s)}))}}function b(e,r,u){if(e.nodes)for(var s=e.nodes.start,c=e.nodes.end,l=r&&(r.f&w)===0?r.nodes.start:u;s!==null;){var i=Re(s);if(l.before(s),s===c)return;s=i}}function I(e,r,u){r===null?e.effect.first=u:r.next=u,u===null?e.effect.last=r:u.prev=r}export{be as e,Me as i};
|
||||
@@ -0,0 +1 @@
|
||||
import{w as n,j as r}from"./DKemW7Dm.js";const o="dw_theme";function s(){if(typeof localStorage<"u"){const e=localStorage.getItem(o);if(e==="light"||e==="dark"||e==="system")return e}return"system"}const t=n(s());t.subscribe(e=>{typeof localStorage<"u"&&localStorage.setItem(o,e)});const i=r(t,e=>e==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e);function d(e){typeof document<"u"&&document.documentElement.setAttribute("data-theme",e)}function c(e){t.set(e)}export{d as a,i as r,c as s,t};
|
||||
@@ -0,0 +1 @@
|
||||
import{d as J,s as d,a as e,g as K,b as f,f as v,c as N}from"./BJdXET8u.js";import{c as n,r as l,s as c,t as h,h as O}from"./DKemW7Dm.js";import{p,i as x}from"./BSXRhUWv.js";import{s as P}from"./kfynmD3Z.js";var Q=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path><path d="M12 10v6"></path><path d="M9 13h6"></path></svg>'),R=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg>'),T=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.59 14.37a6 6 0 0 1-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 0 0 6.16-12.12A14.98 14.98 0 0 0 9.631 8.41m5.96 5.96a14.926 14.926 0 0 1-5.841 2.58M16.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"></path></svg>'),U=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5v14a9 3 0 0 0 18 0V5"></path><path d="M3 12a9 3 0 0 0 18 0"></path></svg>'),W=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="22" x2="2" y1="12" y2="12"></line><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path></svg>'),X=v('<svg class="h-8 w-8 text-[var(--color-brand-500)]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>'),Y=f('<p class="mt-1 max-w-sm text-sm text-[var(--text-secondary)]"> </p>'),$=f('<a class="mt-4 inline-flex items-center gap-2 rounded-lg bg-[var(--color-brand-600)] px-4 py-2 text-sm font-medium text-white shadow-sm transition-all duration-150 hover:bg-[var(--color-brand-700)] active:animate-press"><svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> </a>'),tt=f('<button type="button" class="mt-4 inline-flex items-center gap-2 rounded-lg bg-[var(--color-brand-600)] px-4 py-2 text-sm font-medium text-white shadow-sm transition-all duration-150 hover:bg-[var(--color-brand-700)] active:animate-press"><svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> </button>'),rt=f('<div class="flex flex-col items-center justify-center rounded-xl border-2 border-dashed border-[var(--border-primary)] px-6 py-16 text-center animate-fade-in"><div class="mb-4 flex h-16 w-16 items-center justify-center rounded-2xl bg-[var(--color-brand-50)]"><!></div> <h3 class="text-base font-semibold text-[var(--text-primary)]"> </h3> <!> <!></div>');function it(B,o){const _=p(o,"description",3,""),u=p(o,"actionLabel",3,""),y=p(o,"actionHref",3,""),s=p(o,"icon",3,"projects");var m=rt(),g=n(m),C=n(g);{var H=t=>{var r=Q();e(t,r)},A=t=>{var r=R();e(t,r)},L=t=>{var r=T();e(t,r)},E=t=>{var r=U();e(t,r)},V=t=>{var r=W();e(t,r)},Z=t=>{var r=X();e(t,r)};x(C,t=>{s()==="projects"?t(H):s()==="instances"?t(A,1):s()==="deploys"?t(L,2):s()==="registries"?t(E,3):s()==="volumes"?t(V,4):s()==="users"&&t(Z,5)})}l(g);var k=c(g,2),z=n(k,!0);l(k);var M=c(k,2);{var S=t=>{var r=Y(),b=n(r,!0);l(r),h(()=>d(b,_())),e(t,r)};x(M,t=>{_()&&t(S)})}var q=c(M,2);{var D=t=>{var r=K(),b=O(r);{var F=i=>{var a=$(),w=c(n(a));l(a),h(()=>{P(a,"href",y()),d(w,` ${u()??""}`)}),e(i,a)},G=i=>{var a=tt(),w=c(n(a));l(a),h(()=>d(w,` ${u()??""}`)),N("click",a,function(...I){var j;(j=o.onaction)==null||j.apply(this,I)}),e(i,a)};x(b,i=>{y()?i(F):o.onaction&&i(G,1)})}e(t,r)};x(q,t=>{u()&&t(D)})}l(m),h(()=>d(z,o.title)),e(B,m)}J(["click"]);export{it as E};
|
||||
@@ -0,0 +1 @@
|
||||
import{w as l}from"./DKemW7Dm.js";function p(){const{subscribe:i,update:s}=l([]);let u=0;function e(t,n="info",r=5e3){const o=`toast-${++u}-${Date.now()}`,b={id:o,message:t,type:n,duration:r};return s(d=>[...d,b]),r>0&&setTimeout(()=>c(o),r),o}function c(t){s(n=>n.filter(r=>r.id!==t))}function f(t,n=5e3){return e(t,"success",n)}function a(t,n=7e3){return e(t,"error",n)}function w(t,n=5e3){return e(t,"warning",n)}function m(t,n=5e3){return e(t,"info",n)}return{subscribe:i,add:e,remove:c,success:f,error:a,warning:w,info:m}}const T=p();export{T as t};
|
||||
@@ -0,0 +1 @@
|
||||
import{l as p,E as t}from"./DKemW7Dm.js";import{B as c}from"./BSXRhUWv.js";function m(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{m as s};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as c}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s,a as h,c as m}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var f=c('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>');function w(a,r){const o=e(r,"size",3,20),i=e(r,"class",3,"");var t=f();p(()=>{s(t,"width",o()),s(t,"height",o()),h(t,0,m(i()))}),n(a,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as c,f as n}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s as o,a as l,c as h}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var m=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>');function w(a,r){const s=e(r,"size",3,20),i=e(r,"class",3,"");var t=m();p(()=>{o(t,"width",s()),o(t,"height",s()),l(t,0,h(i()))}),c(a,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{s as e}from"./CWhLh9u1.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{g as T}from"./DTyrBG6r.js";function x(t,e){const{onEvent:u,onOpen:o,onError:r,onGiveUp:y,maxRetries:m=0,initialDelay:l=1e3,maxDelay:a=3e4}=e;let n=null,i=0,s=null,f=!1;function E(){if(f)return;const h=T(),g=h?`${t}${t.includes("?")?"&":"?"}token=${encodeURIComponent(h)}`:t;n=new EventSource(g),n.onopen=()=>{i=0,o==null||o()},n.onmessage=p=>{try{const d=JSON.parse(p.data);u(d)}catch{}},n.onerror=()=>{if(n==null||n.close(),n=null,f)return;if(i++,r==null||r(i),m>0&&i>m){y==null||y();return}const p=Math.min(l*Math.pow(2,i-1),a),d=p*.2*Math.random(),D=p+d;s=setTimeout(E,D)}}return E(),{close(){f=!0,s!==null&&(clearTimeout(s),s=null),n==null||n.close(),n=null}}}function S(t){return x("/api/events",{onEvent(e){var u,o,r;e.type==="instance_status"?(u=t.onInstanceStatus)==null||u.call(t,e.payload):e.type==="deploy_status"?(o=t.onDeployStatus)==null||o.call(t,e.payload):e.type==="event_log"&&((r=t.onEventLog)==null||r.call(t,e.payload))},onOpen:t.onOpen,onError:t.onError})}export{S as c};
|
||||
@@ -0,0 +1 @@
|
||||
const e="auth_token";function o(){return typeof localStorage<"u"?localStorage.getItem(e):null}function n(){return o()!==null}function a(t){typeof localStorage<"u"&&localStorage.setItem(e,t)}function l(){typeof localStorage<"u"&&localStorage.removeItem(e)}export{l as c,o as g,n as i,a as s};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as c,f as n}from"./BJdXET8u.js";import{t as l}from"./DKemW7Dm.js";import{s as t,a as p,c as m}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var f=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>');function h(i,r){const s=e(r,"size",3,20),a=e(r,"class",3,"");var o=f();l(()=>{t(o,"width",s()),t(o,"height",s()),p(o,0,m(a()))}),c(i,o)}export{h as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{d as L,a as i,b as n,s as g,c as N}from"./BJdXET8u.js";import{p as O,t as u,e as P,c as x,s as f,r as p,M as Q}from"./DKemW7Dm.js";import{p as l,i as m}from"./BSXRhUWv.js";import{s as t,a as j,r as R}from"./kfynmD3Z.js";import{b as z}from"./DgtbvmBB.js";var S=n('<span class="text-[var(--color-danger)]">*</span>'),U=n('<textarea rows="3"></textarea>'),V=n("<input/>"),W=n('<p class="text-xs text-[var(--color-danger)]"> </p>'),X=n('<p class="text-xs text-[var(--text-tertiary)]"> </p>'),Y=n('<div class="flex flex-col gap-1.5"><label class="text-sm font-medium text-[var(--text-primary)]"> <!></label> <!> <!> <!></div>');function te(A,r){O(r,!0);let h=l(r,"type",3,"text"),y=l(r,"value",15,""),q=l(r,"placeholder",3,""),b=l(r,"required",3,!1),v=l(r,"disabled",3,!1),s=l(r,"error",3,""),w=l(r,"helpText",3,"");const F="border-[var(--border-input)] focus:ring-[var(--color-brand-500)] focus:border-[var(--color-brand-500)]",T="border-[var(--color-danger)] focus:ring-[var(--color-danger)]",k="opacity-60 cursor-not-allowed bg-[var(--surface-card-hover)]";var _=Y(),c=x(_),D=x(c),B=f(D);{var C=a=>{var e=S();i(a,e)};m(B,a=>{b()&&a(C)})}p(c);var E=f(c,2);{var G=a=>{var e=U();Q(e),u(()=>{t(e,"id",r.name),t(e,"name",r.name),t(e,"placeholder",q()),e.required=b(),e.disabled=v(),j(e,1,`w-full rounded-lg border px-3 py-2 text-sm transition-all duration-150 focus:outline-none focus:ring-2 bg-[var(--surface-input)] text-[var(--text-primary)] placeholder:text-[var(--text-tertiary)] ${s()?T:F} ${v()?k:""}`)}),N("input",e,function(...o){var d;(d=r.oninput)==null||d.apply(this,o)}),z(e,y),i(a,e)},H=a=>{var e=V();R(e),u(()=>{t(e,"id",r.name),t(e,"name",r.name),t(e,"type",h()),t(e,"placeholder",q()),e.required=b(),e.disabled=v(),j(e,1,`w-full rounded-lg border px-3 py-2 text-sm transition-all duration-150 focus:outline-none focus:ring-2 bg-[var(--surface-input)] text-[var(--text-primary)] placeholder:text-[var(--text-tertiary)] ${s()?T:F} ${v()?k:""}`)}),N("input",e,function(...o){var d;(d=r.oninput)==null||d.apply(this,o)}),z(e,y),i(a,e)};m(E,a=>{h()==="textarea"?a(G):a(H,-1)})}var M=f(E,2);{var I=a=>{var e=W(),o=x(e,!0);p(e),u(()=>g(o,s())),i(a,e)};m(M,a=>{s()&&a(I)})}var J=f(M,2);{var K=a=>{var e=X(),o=x(e,!0);p(e),u(()=>g(o,w())),i(a,e)};m(J,a=>{w()&&!s()&&a(K)})}p(_),u(()=>{t(c,"for",r.name),g(D,`${r.label??""} `)}),i(A,_),P()}L(["input"]);export{te as F};
|
||||
@@ -0,0 +1 @@
|
||||
import{G as n,H as t,Y as E,o as w,B as i,I as A,Z as m,Q as S,L as V}from"./DKemW7Dm.js";function B(e,f,l=f){var s=new WeakSet;n(e,"input",async c=>{var v=c?e.defaultValue:e.value;if(v=h(e)?k(v):v,l(v),t!==null&&s.add(t),await E(),v!==(v=f())){var r=e.selectionStart,o=e.selectionEnd,d=e.value.length;if(e.value=v??"",o!==null){var a=e.value.length;r===o&&o===d&&a>d?(e.selectionStart=a,e.selectionEnd=a):(e.selectionStart=r,e.selectionEnd=Math.min(o,a))}}}),(S&&e.defaultValue!==e.value||w(f)==null&&e.value)&&(l(h(e)?k(e.value):e.value),t!==null&&s.add(t)),i(()=>{var c=f();if(e===document.activeElement){var v=t;if(s.has(v))return}h(e)&&c===k(e.value)||e.type==="date"&&!c&&!e.value||c!==e.value&&(e.value=c??"")})}const u=new Set;function C(e,f,l,s,c=s){var v=l.getAttribute("type")==="checkbox",r=e;let o=!1;if(f!==null)for(var d of f)r=r[d]??(r[d]=[]);r.push(l),n(l,"change",()=>{var a=l.__value;v&&(a=b(r,a,l.checked)),c(a)},()=>c(v?[]:null)),i(()=>{var a=s();if(S&&l.defaultChecked!==l.checked){o=!0;return}v?(a=a||[],l.checked=a.includes(l.__value)):l.checked=V(l.__value,a)}),A(()=>{var a=r.indexOf(l);a!==-1&&r.splice(a,1)}),u.has(r)||(u.add(r),m(()=>{r.sort((a,_)=>a.compareDocumentPosition(_)===4?-1:1),u.delete(r)})),m(()=>{if(o){var a;if(v)a=b(r,a,l.checked);else{var _=r.find(y=>y.checked);a=_==null?void 0:_.__value}c(a)}})}function b(e,f,l){for(var s=new Set,c=0;c<e.length;c+=1)e[c].checked&&s.add(e[c].__value);return l||s.delete(f),Array.from(s)}function h(e){var f=e.type;return f==="number"||f==="range"}function k(e){return e===""?null:+e}export{C as a,B as b};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as c}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s as a,a as l,c as m}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";var f=c('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg>');function w(e,s){const o=r(s,"size",3,20),i=r(s,"class",3,"");var t=f();p(()=>{a(t,"width",o()),a(t,"height",o()),l(t,0,m(i()))}),n(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as c,f as p}from"./BJdXET8u.js";import{t as n}from"./DKemW7Dm.js";import{s as o,a as m,c as h}from"./kfynmD3Z.js";import{p as a}from"./BSXRhUWv.js";var l=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="7.5" cy="15.5" r="5.5"></circle><path d="m21 2-9.3 9.3"></path><path d="M18.5 5.5 21 3"></path><path d="m15 8 2.5 2.5"></path></svg>');function w(e,r){const s=a(r,"size",3,20),i=a(r,"class",3,"");var t=l();n(()=>{o(t,"width",s()),o(t,"height",s()),m(t,0,h(i()))}),c(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as c,f as n}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s,a as l,c as h}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var m=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>');function w(a,r){const o=e(r,"size",3,20),i=e(r,"class",3,"");var t=m();p(()=>{s(t,"width",o()),s(t,"height",o()),l(t,0,h(i()))}),c(a,t)}export{w as I};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{a as m,f as n}from"./BJdXET8u.js";import{t as p}from"./DKemW7Dm.js";import{s,a as c,c as l}from"./kfynmD3Z.js";import{p as r}from"./BSXRhUWv.js";var f=n('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15.59 14.37a6 6 0 0 1-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 0 0 6.16-12.12A14.98 14.98 0 0 0 9.631 8.41m5.96 5.96a14.926 14.926 0 0 1-5.841 2.58m-.119-8.54a6 6 0 0 0-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 0 0-2.58 5.84m2.699 2.7a15.09 15.09 0 0 1-2.448-2.448 14.9 14.9 0 0 1 .06-.312m-2.24 2.39a4.493 4.493 0 0 0-1.757 4.306 4.493 4.493 0 0 0 4.306-1.758M16.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"></path></svg>');function w(e,t){const o=r(t,"size",3,20),i=r(t,"class",3,"");var a=f();p(()=>{s(a,"width",o()),s(a,"height",o()),c(a,0,l(i()))}),m(e,a)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as m}from"./DKemW7Dm.js";import{s as r,a as c,c as f}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var h=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg>');function w(a,o){const s=e(o,"size",3,20),i=e(o,"class",3,"");var t=h();m(()=>{r(t,"width",s()),r(t,"height",s()),c(t,0,f(i()))}),n(a,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as c}from"./DKemW7Dm.js";import{s as r,a as l,c as m}from"./kfynmD3Z.js";import{p as e}from"./BSXRhUWv.js";var f=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>');function w(a,s){const o=e(s,"size",3,20),i=e(s,"class",3,"");var t=f();c(()=>{r(t,"width",o()),r(t,"height",o()),l(t,0,m(i()))}),n(a,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as m}from"./DKemW7Dm.js";import{s as r,a as c,c as f}from"./kfynmD3Z.js";import{p as a}from"./BSXRhUWv.js";var h=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>');function w(e,s){const o=a(s,"size",3,20),i=a(s,"class",3,"");var t=h();m(()=>{r(t,"width",o()),r(t,"height",o()),c(t,0,f(i()))}),n(e,t)}export{w as I};
|
||||
@@ -0,0 +1 @@
|
||||
import{N as y,l as u,O as _,P as o,Q as t,R as g,T as l,U as i,V as d,W as p,X as m}from"./DKemW7Dm.js";function T(n,r){let s=null,E=t;var a;if(t){s=p;for(var e=m(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=l(e);if(e===null)i(!1);else{var f=l(e);e.remove(),d(f)}}t||(a=document.head.appendChild(y()));try{u(()=>r(a),_|o)}finally{E&&(i(!0),d(s))}}export{T as h};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as _,b as w}from"./BJdXET8u.js";import"./BSEsuAwr.js";import{c as d,s as e,r as a}from"./DKemW7Dm.js";import{S as r}from"./BE_zO38m.js";var b=w('<div class="rounded-xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-5 shadow-[var(--shadow-sm)]"><div class="flex items-start justify-between"><div class="flex-1 space-y-2"><!> <!></div> <!></div> <div class="mt-4 flex gap-4"><!> <!></div> <div class="mt-3 flex gap-3"><!> <!></div></div>');function k(l){var i=b(),t=d(i),v=d(t),s=d(v);r(s,{width:"60%",height:"1.25rem"});var p=e(s,2);r(p,{width:"80%",height:"0.875rem"}),a(v);var c=e(v,2);r(c,{width:"4rem",height:"1.5rem",rounded:!0}),a(t);var o=e(t,2),m=d(o);r(m,{width:"5rem",height:"0.875rem"});var f=e(m,2);r(f,{width:"4rem",height:"0.875rem"}),a(o);var h=e(o,2),n=d(h);r(n,{width:"3.5rem",height:"0.75rem"});var g=e(n,2);r(g,{width:"4.5rem",height:"0.75rem"}),a(h),a(i),_(l,i)}export{k as S};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{i as u,m as o,aq as a,o as t}from"./DKemW7Dm.js";function c(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function l(e){o===null&&c(),a&&o.l!==null?i(o).m.push(e):u(()=>{const n=t(e);if(typeof n=="function")return n})}function f(e){o===null&&c(),l(()=>()=>t(e))}function i(e){var n=e.l;return n.u??(n.u={a:[],b:[],m:[]})}export{f as a,l as o};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as n,f as p}from"./BJdXET8u.js";import{t as c}from"./DKemW7Dm.js";import{s as e,a as h,c as l}from"./kfynmD3Z.js";import{p as o}from"./BSXRhUWv.js";var m=p('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line></svg>');function g(r,s){const a=o(s,"size",3,20),i=o(s,"class",3,"");var t=m();c(()=>{e(t,"width",a()),e(t,"height",a()),h(t,0,l(i()))}),n(r,t)}export{g as I};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{l as o,a as r}from"../chunks/CWhLh9u1.js";export{o as load_css,r as start};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{a as u,b as g,s as a}from"../chunks/BJdXET8u.js";import"../chunks/BSEsuAwr.js";import{p as l,h as v,t as d,e as _,c as o,r as p,s as x}from"../chunks/DKemW7Dm.js";import{i as $}from"../chunks/BlV-f-zB.js";import{s as b,p as m}from"../chunks/CWhLh9u1.js";const k={get error(){return m.error},get status(){return m.status}};b.updated.check;const i=k;var E=g("<h1> </h1> <p> </p>",1);function A(c,n){l(n,!1),$();var t=E(),r=v(t),f=o(r,!0);p(r);var s=x(r,2),h=o(s,!0);p(s),d(()=>{var e;a(f,i.status),a(h,(e=i.error)==null?void 0:e.message)}),u(c,t),_()}export{A as component};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{a as P,s as v,b as S}from"../chunks/BJdXET8u.js";import"../chunks/BSEsuAwr.js";import{p as z,h as C,t as I,e as M,f as O,c as e,$ as B,s as a,r}from"../chunks/DKemW7Dm.js";import{s as F,a as G}from"../chunks/BSXRhUWv.js";import{h as H}from"../chunks/ecfdBtDb.js";import{i as T}from"../chunks/BlV-f-zB.js";import{g as f}from"../chunks/CWhLh9u1.js";import{t as q}from"../chunks/kfynmD3Z.js";import{P as A}from"../chunks/DsQCf6vC.js";import{I as D}from"../chunks/DrzuxmSv.js";const Y=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));var E=S('<div class="mb-6"><a href="/proxies" class="inline-flex items-center gap-1 text-sm text-[var(--text-secondary)] hover:text-[var(--color-brand-600)] transition-colors"><svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5"></path><path d="m12 19-7-7 7-7"></path></svg> </a></div> <div class="mb-6 flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--color-brand-50)] text-[var(--color-brand-600)]"><!></div> <h1 class="text-xl font-bold text-[var(--text-primary)]"> </h1></div> <div class="mx-auto max-w-2xl rounded-2xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-6 shadow-[var(--shadow-sm)]"><!></div>',1);function Z(x,h){z(h,!1);const t=()=>G(q,"$t",u),[u,_]=F();function b(n){f("/proxies")}function g(){f("/proxies")}T();var d=E();H("1eyu80y",n=>{O((l,j)=>{B.title=`${l??""} - ${j??""}`},[()=>t()("proxies.form.title"),()=>t()("app.name")])});var o=C(d),m=e(o),$=a(e(m));r(m),r(o);var s=a(o,2),i=e(s),y=e(i);D(y,{size:22}),r(i);var c=a(i,2),w=e(c,!0);r(c),r(s);var p=a(s,2),k=e(p);A(k,{mode:"create",onsave:b,oncancel:g}),r(p),I((n,l)=>{v($,` ${n??""}`),v(w,l)},[()=>t()("common.back"),()=>t()("proxies.form.title")]),P(x,d),M(),_()}export{Z as component,Y as universal};
|
||||
@@ -0,0 +1 @@
|
||||
import{a as p,s as n,b as v}from"../chunks/BJdXET8u.js";import{o as N}from"../chunks/phMGo29-.js";import{p as Q,h as R,t as b,e as U,f as V,c as t,d as h,g as i,$ as W,s as d,r as a,a as y,u as X}from"../chunks/DKemW7Dm.js";import{i as Y,s as Z,a as z}from"../chunks/BSXRhUWv.js";import{h as ee}from"../chunks/ecfdBtDb.js";import{p as re}from"../chunks/DELaSNrV.js";import{g as $}from"../chunks/CWhLh9u1.js";import{t as te}from"../chunks/Bpb8V1MF.js";import{t as ae}from"../chunks/kfynmD3Z.js";import{P as oe}from"../chunks/DsQCf6vC.js";import{I as se}from"../chunks/DrzuxmSv.js";import{I as ie}from"../chunks/BFW91e3Y.js";const ke=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));var de=v('<div class="flex items-center justify-center py-20"><!> <span class="ml-2 text-sm text-[var(--text-secondary)]"> </span></div>'),ne=v('<div class="rounded-xl border border-red-200 bg-red-50 p-6 text-center dark:border-red-900 dark:bg-red-950"><p class="text-sm text-red-700 dark:text-red-300"> </p> <a href="/proxies" class="mt-3 inline-block rounded-lg bg-red-600 px-4 py-2 text-sm font-medium text-white hover:bg-red-700 transition-colors"> </a></div>'),le=v('<div class="mx-auto max-w-2xl rounded-2xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-6 shadow-[var(--shadow-sm)]"><!></div>'),ce=v('<div class="mb-6"><a href="/proxies" class="inline-flex items-center gap-1 text-sm text-[var(--text-secondary)] hover:text-[var(--color-brand-600)] transition-colors"><svg class="h-4 w-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5"></path><path d="m12 19-7-7 7-7"></path></svg> </a></div> <div class="mb-6 flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--color-brand-50)] text-[var(--color-brand-600)]"><!></div> <h1 class="text-xl font-bold text-[var(--text-primary)]"> </h1></div> <!>',1);function we(M,S){Q(S,!0);const T=()=>z(re,"$page",k),s=()=>z(ae,"$t",k),[k,C]=Z();let m=y(null),w=y(!0),x=y("");const F=X(()=>T().params.id);N(async()=>{try{h(m,await te(i(F)),!0)}catch(e){h(x,e instanceof Error?e.message:"Failed to load proxy",!0)}finally{h(w,!1)}});function O(e){$("/proxies")}function B(e){$("/proxies")}function D(){$("/proxies")}var j=ce();ee("57j31g",e=>{V((r,o)=>{W.title=`${r??""} - ${o??""}`},[()=>s()("proxies.form.editTitle"),()=>s()("app.name")])});var f=R(j),I=t(f),E=d(t(I));a(I),a(f);var u=d(f,2),_=t(u),G=t(_);se(G,{size:22}),a(_);var P=d(_,2),H=t(P,!0);a(P),a(u);var L=d(u,2);{var q=e=>{var r=de(),o=t(r);ie(o,{size:24,class:"text-[var(--color-brand-500)]"});var l=d(o,2),c=t(l,!0);a(l),a(r),b(g=>n(c,g),[()=>s()("common.loading")]),p(e,r)},A=e=>{var r=ne(),o=t(r),l=t(o,!0);a(o);var c=d(o,2),g=t(c,!0);a(c),a(r),b(K=>{n(l,i(x)),n(g,K)},[()=>s()("common.back")]),p(e,r)},J=e=>{var r=le(),o=t(r);oe(o,{mode:"edit",get proxy(){return i(m)},onsave:O,ondelete:B,oncancel:D}),a(r),p(e,r)};Y(L,e=>{i(w)?e(q):i(x)?e(A,1):i(m)&&e(J,2)})}b((e,r)=>{n(E,` ${e??""}`),n(H,r)},[()=>s()("common.back"),()=>s()("proxies.form.editTitle")]),p(M,j),U(),C()}export{we as component,ke as universal};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
||||
import{a as y,f as H,s as M,b as A}from"../chunks/BJdXET8u.js";import{t as w,p as J,e as L,c as o,r as s,s as b,g as t,u as v}from"../chunks/DKemW7Dm.js";import{p as S,s as N,a as j,i as O}from"../chunks/BSXRhUWv.js";import{s as Q}from"../chunks/CnPWu_ZO.js";import{e as R,i as T}from"../chunks/CZnXUJhL.js";import{s as _,a as B,c as U,t as X}from"../chunks/kfynmD3Z.js";import{p as Y}from"../chunks/DELaSNrV.js";import{I as Z}from"../chunks/CWCQOKDd.js";import{I as tt}from"../chunks/DqoiTw6k.js";import{I as et}from"../chunks/DhEbbC3M.js";var rt=H('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5v14a9 3 0 0 0 18 0V5"></path><path d="M3 12a9 3 0 0 0 18 0"></path></svg>');function at(g,n){const f=S(n,"size",3,20),p=S(n,"class",3,"");var i=rt();w(()=>{_(i,"width",f()),_(i,"height",f()),B(i,0,U(p()))}),y(g,i)}var st=A("<li><a><!> </a></li>"),it=A('<div class="mx-auto max-w-4xl"><h1 class="mb-6 text-2xl font-bold text-[var(--text-primary)]"> </h1> <div class="flex flex-col gap-6 sm:flex-row"><nav class="w-full flex-shrink-0 sm:w-48"><ul class="flex gap-1 overflow-x-auto sm:flex-col sm:space-y-0.5"></ul></nav> <div class="flex-1 min-w-0"><!></div></div></div>');function dt(g,n){J(n,!0);const f=()=>j(Y,"$page",i),p=()=>j(X,"$t",i),[i,C]=N(),D=[{href:"/settings",labelKey:"settings.general",icon:"general"},{href:"/settings/registries",labelKey:"settings.registries",icon:"registries"},{href:"/settings/credentials",labelKey:"settings.credentials",icon:"credentials"},{href:"/settings/auth",labelKey:"settings.authentication",icon:"auth"}];let I=v(()=>f().url.pathname);function c(l){return l==="/settings"?t(I)==="/settings":t(I).startsWith(l)}var h=it(),d=o(h),P=o(d,!0);s(d);var k=b(d,2),u=o(k),z=o(u);R(z,21,()=>D,T,(l,r)=>{var m=st(),x=o(m),$=o(x);{var W=e=>{{let a=v(()=>c(t(r).href)?"text-[var(--color-brand-600)]":"text-[var(--text-tertiary)]");Z(e,{size:16,get class(){return t(a)}})}},q=e=>{{let a=v(()=>c(t(r).href)?"text-[var(--color-brand-600)]":"text-[var(--text-tertiary)]");at(e,{size:16,get class(){return t(a)}})}},E=e=>{{let a=v(()=>c(t(r).href)?"text-[var(--color-brand-600)]":"text-[var(--text-tertiary)]");tt(e,{size:16,get class(){return t(a)}})}},F=e=>{{let a=v(()=>c(t(r).href)?"text-[var(--color-brand-600)]":"text-[var(--text-tertiary)]");et(e,{size:16,get class(){return t(a)}})}};O($,e=>{t(r).icon==="general"?e(W):t(r).icon==="registries"?e(q,1):t(r).icon==="credentials"?e(E,2):t(r).icon==="auth"&&e(F,3)})}var G=b($);s(x),s(m),w((e,a)=>{_(x,"href",t(r).href),B(x,1,`flex items-center gap-2.5 whitespace-nowrap rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150
|
||||
${e??""}`),M(G,` ${a??""}`)},[()=>c(t(r).href)?"bg-[var(--color-brand-50)] text-[var(--color-brand-700)] shadow-sm":"text-[var(--text-secondary)] hover:bg-[var(--surface-card-hover)] hover:text-[var(--text-primary)]",()=>p()(t(r).labelKey)]),y(l,m)}),s(z),s(u);var K=b(u,2),V=o(K);Q(V,()=>n.children),s(K),s(k),s(h),w(l=>M(P,l),[()=>p()("settings.title")]),y(g,h),L(),C()}export{dt as component};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":"1775075469000"}
|
||||
@@ -0,0 +1 @@
|
||||
export const env={}
|
||||
@@ -0,0 +1,581 @@
|
||||
{
|
||||
".svelte-kit/generated/server/internal.js": {
|
||||
"file": "internal.js",
|
||||
"name": "internal",
|
||||
"src": ".svelte-kit/generated/server/internal.js",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_root.js",
|
||||
"_environment.js",
|
||||
"_internal.js"
|
||||
]
|
||||
},
|
||||
"_EntityPicker.RxInhUBX.css": {
|
||||
"file": "_app/immutable/assets/EntityPicker.RxInhUBX.css",
|
||||
"src": "_EntityPicker.RxInhUBX.css"
|
||||
},
|
||||
"_EntityPicker.js": {
|
||||
"file": "chunks/EntityPicker.js",
|
||||
"name": "EntityPicker",
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_IconX.js",
|
||||
"_index2.js"
|
||||
],
|
||||
"css": [
|
||||
"_app/immutable/assets/EntityPicker.RxInhUBX.css"
|
||||
]
|
||||
},
|
||||
"_FormField.js": {
|
||||
"file": "chunks/FormField.js",
|
||||
"name": "FormField",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconAlert.js": {
|
||||
"file": "chunks/IconAlert.js",
|
||||
"name": "IconAlert",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconCheck.js": {
|
||||
"file": "chunks/IconCheck.js",
|
||||
"name": "IconCheck",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconChevronRight.js": {
|
||||
"file": "chunks/IconChevronRight.js",
|
||||
"name": "IconChevronRight",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconDeploy.js": {
|
||||
"file": "chunks/IconDeploy.js",
|
||||
"name": "IconDeploy",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconGlobe.js": {
|
||||
"file": "chunks/IconGlobe.js",
|
||||
"name": "IconGlobe",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconLoader.js": {
|
||||
"file": "chunks/IconLoader.js",
|
||||
"name": "IconLoader",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconPlus.js": {
|
||||
"file": "chunks/IconPlus.js",
|
||||
"name": "IconPlus",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconSettings.js": {
|
||||
"file": "chunks/IconSettings.js",
|
||||
"name": "IconSettings",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconTrash.js": {
|
||||
"file": "chunks/IconTrash.js",
|
||||
"name": "IconTrash",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_IconX.js": {
|
||||
"file": "chunks/IconX.js",
|
||||
"name": "IconX",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_Skeleton.js": {
|
||||
"file": "chunks/Skeleton.js",
|
||||
"name": "Skeleton",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_SkeletonCard.js": {
|
||||
"file": "chunks/SkeletonCard.js",
|
||||
"name": "SkeletonCard",
|
||||
"imports": [
|
||||
"_Skeleton.js"
|
||||
]
|
||||
},
|
||||
"_api.js": {
|
||||
"file": "chunks/api.js",
|
||||
"name": "api"
|
||||
},
|
||||
"_environment.js": {
|
||||
"file": "chunks/environment.js",
|
||||
"name": "environment"
|
||||
},
|
||||
"_exports.js": {
|
||||
"file": "chunks/exports.js",
|
||||
"name": "exports"
|
||||
},
|
||||
"_false.js": {
|
||||
"file": "chunks/false.js",
|
||||
"name": "false"
|
||||
},
|
||||
"_index-server.js": {
|
||||
"file": "chunks/index-server.js",
|
||||
"name": "index-server",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_index.js": {
|
||||
"file": "chunks/index.js",
|
||||
"name": "index",
|
||||
"imports": [
|
||||
"_false.js"
|
||||
]
|
||||
},
|
||||
"_index2.js": {
|
||||
"file": "chunks/index2.js",
|
||||
"name": "index",
|
||||
"imports": [
|
||||
"_index3.js"
|
||||
]
|
||||
},
|
||||
"_index3.js": {
|
||||
"file": "chunks/index3.js",
|
||||
"name": "index",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_internal.js": {
|
||||
"file": "chunks/internal.js",
|
||||
"name": "internal",
|
||||
"imports": [
|
||||
"_root.js",
|
||||
"_environment.js"
|
||||
]
|
||||
},
|
||||
"_root.js": {
|
||||
"file": "chunks/root.js",
|
||||
"name": "root",
|
||||
"imports": [
|
||||
"_index.js"
|
||||
]
|
||||
},
|
||||
"_shared.js": {
|
||||
"file": "chunks/shared.js",
|
||||
"name": "shared",
|
||||
"imports": [
|
||||
"_utils.js"
|
||||
]
|
||||
},
|
||||
"_state.svelte.js": {
|
||||
"file": "chunks/state.svelte.js",
|
||||
"name": "state.svelte",
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_root.js"
|
||||
]
|
||||
},
|
||||
"_stores.js": {
|
||||
"file": "chunks/stores.js",
|
||||
"name": "stores",
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_root.js",
|
||||
"_state.svelte.js"
|
||||
]
|
||||
},
|
||||
"_theme.js": {
|
||||
"file": "chunks/theme.js",
|
||||
"name": "theme",
|
||||
"imports": [
|
||||
"_index3.js"
|
||||
]
|
||||
},
|
||||
"_toast.js": {
|
||||
"file": "chunks/toast.js",
|
||||
"name": "toast",
|
||||
"imports": [
|
||||
"_index3.js"
|
||||
]
|
||||
},
|
||||
"_utils.js": {
|
||||
"file": "chunks/utils.js",
|
||||
"name": "utils"
|
||||
},
|
||||
"node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js": {
|
||||
"file": "remote-entry.js",
|
||||
"name": "remote-entry",
|
||||
"src": "node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_shared.js",
|
||||
"_false.js",
|
||||
"_environment.js"
|
||||
]
|
||||
},
|
||||
"node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte": {
|
||||
"file": "entries/fallbacks/error.svelte.js",
|
||||
"name": "entries/fallbacks/error.svelte",
|
||||
"src": "node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_state.svelte.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_index3.js",
|
||||
"_root.js"
|
||||
]
|
||||
},
|
||||
"node_modules/@sveltejs/kit/src/runtime/server/index.js": {
|
||||
"file": "index.js",
|
||||
"name": "index",
|
||||
"src": "node_modules/@sveltejs/kit/src/runtime/server/index.js",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_false.js",
|
||||
"_environment.js",
|
||||
"_shared.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_index3.js",
|
||||
"_internal.js"
|
||||
]
|
||||
},
|
||||
"src/routes/+layout.svelte": {
|
||||
"file": "entries/pages/_layout.svelte.js",
|
||||
"name": "entries/pages/_layout.svelte",
|
||||
"src": "src/routes/+layout.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index-server.js",
|
||||
"_stores.js",
|
||||
"_toast.js",
|
||||
"_IconCheck.js",
|
||||
"_IconX.js",
|
||||
"_IconAlert.js",
|
||||
"_theme.js",
|
||||
"_index2.js",
|
||||
"_IconGlobe.js",
|
||||
"_IconDeploy.js",
|
||||
"_IconSettings.js",
|
||||
"_index3.js"
|
||||
],
|
||||
"css": [
|
||||
"_app/immutable/assets/_layout.ZH2qq8sR.css"
|
||||
]
|
||||
},
|
||||
"src/routes/+layout.ts": {
|
||||
"file": "entries/pages/_layout.ts.js",
|
||||
"name": "entries/pages/_layout.ts",
|
||||
"src": "src/routes/+layout.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/+page.svelte": {
|
||||
"file": "entries/pages/_page.svelte.js",
|
||||
"name": "entries/pages/_page.svelte",
|
||||
"src": "src/routes/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index2.js",
|
||||
"_IconDeploy.js",
|
||||
"_IconAlert.js",
|
||||
"_SkeletonCard.js"
|
||||
]
|
||||
},
|
||||
"src/routes/containers/stale/+page.svelte": {
|
||||
"file": "entries/pages/containers/stale/_page.svelte.js",
|
||||
"name": "entries/pages/containers/stale/_page.svelte",
|
||||
"src": "src/routes/containers/stale/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_api.js",
|
||||
"_IconTrash.js",
|
||||
"_IconLoader.js",
|
||||
"_index2.js",
|
||||
"_IconAlert.js",
|
||||
"_SkeletonCard.js",
|
||||
"_toast.js"
|
||||
]
|
||||
},
|
||||
"src/routes/containers/stale/+page.ts": {
|
||||
"file": "entries/pages/containers/stale/_page.ts.js",
|
||||
"name": "entries/pages/containers/stale/_page.ts",
|
||||
"src": "src/routes/containers/stale/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/deploy/+page.svelte": {
|
||||
"file": "entries/pages/deploy/_page.svelte.js",
|
||||
"name": "entries/pages/deploy/_page.svelte",
|
||||
"src": "src/routes/deploy/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_FormField.js",
|
||||
"_EntityPicker.js",
|
||||
"_toast.js",
|
||||
"_index2.js"
|
||||
]
|
||||
},
|
||||
"src/routes/events/+page.svelte": {
|
||||
"file": "entries/pages/events/_page.svelte.js",
|
||||
"name": "entries/pages/events/_page.svelte",
|
||||
"src": "src/routes/events/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index-server.js",
|
||||
"_index2.js"
|
||||
]
|
||||
},
|
||||
"src/routes/events/+page.ts": {
|
||||
"file": "entries/pages/events/_page.ts.js",
|
||||
"name": "entries/pages/events/_page.ts",
|
||||
"src": "src/routes/events/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/login/+page.svelte": {
|
||||
"file": "entries/pages/login/_page.svelte.js",
|
||||
"name": "entries/pages/login/_page.svelte",
|
||||
"src": "src/routes/login/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_root.js",
|
||||
"_state.svelte.js",
|
||||
"_index2.js",
|
||||
"_theme.js"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/+page.svelte": {
|
||||
"file": "entries/pages/projects/_page.svelte.js",
|
||||
"name": "entries/pages/projects/_page.svelte",
|
||||
"src": "src/routes/projects/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index2.js",
|
||||
"_IconPlus.js",
|
||||
"_Skeleton.js"
|
||||
],
|
||||
"css": [
|
||||
"_app/immutable/assets/EntityPicker.RxInhUBX.css"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/[id]/+page.svelte": {
|
||||
"file": "entries/pages/projects/_id_/_page.svelte.js",
|
||||
"name": "entries/pages/projects/_id_/_page.svelte",
|
||||
"src": "src/routes/projects/[id]/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_root.js",
|
||||
"_state.svelte.js",
|
||||
"_index2.js",
|
||||
"_Skeleton.js",
|
||||
"_toast.js"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/[id]/env/+page.svelte": {
|
||||
"file": "entries/pages/projects/_id_/env/_page.svelte.js",
|
||||
"name": "entries/pages/projects/_id_/env/_page.svelte",
|
||||
"src": "src/routes/projects/[id]/env/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_stores.js",
|
||||
"_toast.js",
|
||||
"_index2.js",
|
||||
"_IconChevronRight.js",
|
||||
"_Skeleton.js"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/[id]/volumes/+page.svelte": {
|
||||
"file": "entries/pages/projects/_id_/volumes/_page.svelte.js",
|
||||
"name": "entries/pages/projects/_id_/volumes/_page.svelte",
|
||||
"src": "src/routes/projects/[id]/volumes/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_stores.js",
|
||||
"_toast.js",
|
||||
"_index2.js",
|
||||
"_IconChevronRight.js",
|
||||
"_Skeleton.js"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/[id]/volumes/[volId]/browse/+page.svelte": {
|
||||
"file": "entries/pages/projects/_id_/volumes/_volId_/browse/_page.svelte.js",
|
||||
"name": "entries/pages/projects/_id_/volumes/_volId_/browse/_page.svelte",
|
||||
"src": "src/routes/projects/[id]/volumes/[volId]/browse/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_stores.js",
|
||||
"_toast.js",
|
||||
"_index2.js",
|
||||
"_IconChevronRight.js",
|
||||
"_Skeleton.js"
|
||||
]
|
||||
},
|
||||
"src/routes/projects/[id]/volumes/[volId]/browse/+page.ts": {
|
||||
"file": "entries/pages/projects/_id_/volumes/_volId_/browse/_page.ts.js",
|
||||
"name": "entries/pages/projects/_id_/volumes/_volId_/browse/_page.ts",
|
||||
"src": "src/routes/projects/[id]/volumes/[volId]/browse/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/proxies/+page.svelte": {
|
||||
"file": "entries/pages/proxies/_page.svelte.js",
|
||||
"name": "entries/pages/proxies/_page.svelte",
|
||||
"src": "src/routes/proxies/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index2.js",
|
||||
"_IconGlobe.js",
|
||||
"_IconLoader.js"
|
||||
]
|
||||
},
|
||||
"src/routes/proxies/+page.ts": {
|
||||
"file": "entries/pages/proxies/_page.ts.js",
|
||||
"name": "entries/pages/proxies/_page.ts",
|
||||
"src": "src/routes/proxies/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/proxies/[id]/edit/+page.svelte": {
|
||||
"file": "entries/pages/proxies/_id_/edit/_page.svelte.js",
|
||||
"name": "entries/pages/proxies/_id_/edit/_page.svelte",
|
||||
"src": "src/routes/proxies/[id]/edit/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_root.js",
|
||||
"_state.svelte.js",
|
||||
"_index2.js",
|
||||
"_IconGlobe.js",
|
||||
"_IconLoader.js"
|
||||
]
|
||||
},
|
||||
"src/routes/proxies/[id]/edit/+page.ts": {
|
||||
"file": "entries/pages/proxies/_id_/edit/_page.ts.js",
|
||||
"name": "entries/pages/proxies/_id_/edit/_page.ts",
|
||||
"src": "src/routes/proxies/[id]/edit/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/proxies/create/+page.svelte": {
|
||||
"file": "entries/pages/proxies/create/_page.svelte.js",
|
||||
"name": "entries/pages/proxies/create/_page.svelte",
|
||||
"src": "src/routes/proxies/create/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_exports.js",
|
||||
"_utils.js",
|
||||
"_root.js",
|
||||
"_state.svelte.js",
|
||||
"_index2.js",
|
||||
"_api.js",
|
||||
"_FormField.js",
|
||||
"_IconCheck.js",
|
||||
"_IconX.js",
|
||||
"_IconLoader.js",
|
||||
"_IconGlobe.js"
|
||||
]
|
||||
},
|
||||
"src/routes/proxies/create/+page.ts": {
|
||||
"file": "entries/pages/proxies/create/_page.ts.js",
|
||||
"name": "entries/pages/proxies/create/_page.ts",
|
||||
"src": "src/routes/proxies/create/+page.ts",
|
||||
"isEntry": true
|
||||
},
|
||||
"src/routes/settings/+layout.svelte": {
|
||||
"file": "entries/pages/settings/_layout.svelte.js",
|
||||
"name": "entries/pages/settings/_layout.svelte",
|
||||
"src": "src/routes/settings/+layout.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_stores.js",
|
||||
"_index2.js",
|
||||
"_IconSettings.js"
|
||||
]
|
||||
},
|
||||
"src/routes/settings/+page.svelte": {
|
||||
"file": "entries/pages/settings/_page.svelte.js",
|
||||
"name": "entries/pages/settings/_page.svelte",
|
||||
"src": "src/routes/settings/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_EntityPicker.js",
|
||||
"_toast.js",
|
||||
"_index2.js",
|
||||
"_Skeleton.js"
|
||||
]
|
||||
},
|
||||
"src/routes/settings/auth/+page.svelte": {
|
||||
"file": "entries/pages/settings/auth/_page.svelte.js",
|
||||
"name": "entries/pages/settings/auth/_page.svelte",
|
||||
"src": "src/routes/settings/auth/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_index2.js",
|
||||
"_IconTrash.js",
|
||||
"_IconPlus.js"
|
||||
]
|
||||
},
|
||||
"src/routes/settings/credentials/+page.svelte": {
|
||||
"file": "entries/pages/settings/credentials/_page.svelte.js",
|
||||
"name": "entries/pages/settings/credentials/_page.svelte",
|
||||
"src": "src/routes/settings/credentials/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_Skeleton.js",
|
||||
"_toast.js",
|
||||
"_index2.js"
|
||||
]
|
||||
},
|
||||
"src/routes/settings/registries/+page.svelte": {
|
||||
"file": "entries/pages/settings/registries/_page.svelte.js",
|
||||
"name": "entries/pages/settings/registries/_page.svelte",
|
||||
"src": "src/routes/settings/registries/+page.svelte",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.js",
|
||||
"_Skeleton.js",
|
||||
"_toast.js",
|
||||
"_index2.js",
|
||||
"_IconPlus.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
.entity-picker-backdrop.svelte-1bxz98v{position:fixed;inset:0;z-index:60;background:var(--surface-overlay);backdrop-filter:blur(4px);animation:fade-in var(--transition-normal) forwards}.entity-picker-container.svelte-1bxz98v{position:fixed;inset:0;z-index:61;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;pointer-events:none}.entity-picker-modal.svelte-1bxz98v{pointer-events:auto;width:90vw;max-width:500px;background:var(--surface-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:scale-in var(--transition-normal) forwards;display:flex;flex-direction:column}.entity-picker-header.svelte-1bxz98v{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-secondary)}.entity-picker-title.svelte-1bxz98v{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.entity-picker-close.svelte-1bxz98v{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.entity-picker-close.svelte-1bxz98v:hover{background:var(--surface-card-hover);color:var(--text-primary)}.entity-picker-search.svelte-1bxz98v{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-secondary)}.entity-picker-search-icon{flex-shrink:0;color:var(--text-tertiary)}.entity-picker-search-input.svelte-1bxz98v{flex:1;border:none;outline:none;background:transparent;font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-family-sans)}.entity-picker-search-input.svelte-1bxz98v::placeholder{color:var(--text-tertiary)}.entity-picker-close-inline.svelte-1bxz98v{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.entity-picker-close-inline.svelte-1bxz98v:hover{background:var(--surface-card-hover);color:var(--text-primary)}.entity-picker-list.svelte-1bxz98v{overflow-y:auto;max-height:60vh;padding:var(--space-1) 0}.entity-picker-empty.svelte-1bxz98v{padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.entity-picker-group-header.svelte-1bxz98v{padding:var(--space-2) var(--space-4) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.entity-picker-item.svelte-1bxz98v{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);border:none;background:transparent;cursor:pointer;text-align:left;font-family:var(--font-family-sans);transition:background var(--transition-fast);border-left:3px solid transparent}.entity-picker-item--highlighted.svelte-1bxz98v{background:var(--surface-card-hover)}.entity-picker-item--current.svelte-1bxz98v{border-left-color:var(--color-brand-500)}.entity-picker-item-icon.svelte-1bxz98v{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.entity-picker-item-content.svelte-1bxz98v{display:flex;flex-direction:column;gap:1px;min-width:0}.entity-picker-item-label.svelte-1bxz98v{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-item-description.svelte-1bxz98v{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-item--disabled.svelte-1bxz98v{opacity:.45;cursor:default;pointer-events:none}.entity-picker-item-hint.svelte-1bxz98v{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic;white-space:nowrap}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,140 @@
|
||||
import { a as attr, b as attr_class, c as clsx, e as escape_html, s as store_get, f as ensure_array_like, u as unsubscribe_stores, k as bind_props, i as derived } from "./index.js";
|
||||
import { I as IconX } from "./IconX.js";
|
||||
import { t } from "./index2.js";
|
||||
/* empty css */
|
||||
function html(value) {
|
||||
var html2 = String(value ?? "");
|
||||
var open = "<!---->";
|
||||
return open + html2 + "<!---->";
|
||||
}
|
||||
function IconSearch($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>`);
|
||||
}
|
||||
function EntityPicker($$renderer, $$props) {
|
||||
$$renderer.component(($$renderer2) => {
|
||||
var $$store_subs;
|
||||
const {
|
||||
open = void 0,
|
||||
items,
|
||||
current = "",
|
||||
placeholder,
|
||||
title = "",
|
||||
onselect,
|
||||
onclose
|
||||
} = $$props;
|
||||
let query = "";
|
||||
let highlightIndex = 0;
|
||||
const filtered = derived(() => {
|
||||
const q = query.toLowerCase().trim();
|
||||
if (!q) return items;
|
||||
return items.filter((item) => item.label.toLowerCase().includes(q) || (item.description?.toLowerCase().includes(q) ?? false));
|
||||
});
|
||||
const grouped = derived(() => {
|
||||
const groups = [];
|
||||
const seen = /* @__PURE__ */ new Map();
|
||||
for (const item of filtered()) {
|
||||
const groupName = item.group ?? "";
|
||||
const idx = seen.get(groupName);
|
||||
if (idx !== void 0) {
|
||||
groups[idx].items.push(item);
|
||||
} else {
|
||||
seen.set(groupName, groups.length);
|
||||
groups.push({ name: groupName, items: [item] });
|
||||
}
|
||||
}
|
||||
return groups;
|
||||
});
|
||||
const flatFiltered = derived(filtered);
|
||||
function flatIndexOf(groupIdx, itemIdx) {
|
||||
let index = 0;
|
||||
for (let g = 0; g < groupIdx; g++) {
|
||||
index += grouped()[g].items.length;
|
||||
}
|
||||
return index + itemIdx;
|
||||
}
|
||||
if (open) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<div class="entity-picker-backdrop svelte-1bxz98v"></div> <div class="entity-picker-container svelte-1bxz98v"><div class="entity-picker-modal svelte-1bxz98v" role="dialog" aria-modal="true"${attr("aria-label", title)}>`);
|
||||
if (title) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<div class="entity-picker-header svelte-1bxz98v"><h2 class="entity-picker-title svelte-1bxz98v">${escape_html(title)}</h2> <button type="button" class="entity-picker-close svelte-1bxz98v" aria-label="Close">`);
|
||||
IconX($$renderer2, { size: 18 });
|
||||
$$renderer2.push(`<!----></button></div>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--> <div class="entity-picker-search svelte-1bxz98v">`);
|
||||
IconSearch($$renderer2, { size: 16, class: "entity-picker-search-icon" });
|
||||
$$renderer2.push(`<!----> <input${attr("value", query)} type="text" class="entity-picker-search-input svelte-1bxz98v"${attr("placeholder", placeholder ?? store_get($$store_subs ??= {}, "$t", t)("entityPicker.search"))} autocomplete="off" spellcheck="false"/> `);
|
||||
if (!title) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<button type="button" class="entity-picker-close-inline svelte-1bxz98v" aria-label="Close">`);
|
||||
IconX($$renderer2, { size: 16 });
|
||||
$$renderer2.push(`<!----></button>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--></div> <div class="entity-picker-list svelte-1bxz98v">`);
|
||||
if (flatFiltered().length === 0) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<div class="entity-picker-empty svelte-1bxz98v">${escape_html(store_get($$store_subs ??= {}, "$t", t)("entityPicker.noResults"))}</div>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
$$renderer2.push(`<!--[-->`);
|
||||
const each_array = ensure_array_like(grouped());
|
||||
for (let gIdx = 0, $$length = each_array.length; gIdx < $$length; gIdx++) {
|
||||
let group = each_array[gIdx];
|
||||
if (group.name) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<div class="entity-picker-group-header svelte-1bxz98v">${escape_html(group.name)}</div>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--> <!--[-->`);
|
||||
const each_array_1 = ensure_array_like(group.items);
|
||||
for (let iIdx = 0, $$length2 = each_array_1.length; iIdx < $$length2; iIdx++) {
|
||||
let item = each_array_1[iIdx];
|
||||
const flatIdx = flatIndexOf(gIdx, iIdx);
|
||||
const isHighlighted = flatIdx === highlightIndex;
|
||||
const isCurrent = item.value === current;
|
||||
$$renderer2.push(`<button type="button"${attr_class("entity-picker-item svelte-1bxz98v", void 0, {
|
||||
"entity-picker-item--highlighted": isHighlighted && !item.disabled,
|
||||
"entity-picker-item--current": isCurrent,
|
||||
"entity-picker-item--disabled": item.disabled
|
||||
})}${attr("data-highlighted", isHighlighted)}${attr("disabled", item.disabled, true)}>`);
|
||||
if (item.icon) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<span class="entity-picker-item-icon svelte-1bxz98v">${html(item.icon)}</span>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--> <span class="entity-picker-item-content svelte-1bxz98v"><span class="entity-picker-item-label svelte-1bxz98v">${escape_html(item.label)}</span> `);
|
||||
if (item.disabledHint) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<span class="entity-picker-item-hint svelte-1bxz98v">${escape_html(item.disabledHint)}</span>`);
|
||||
} else if (item.description) {
|
||||
$$renderer2.push("<!--[1-->");
|
||||
$$renderer2.push(`<span class="entity-picker-item-description svelte-1bxz98v">${escape_html(item.description)}</span>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--></span></button>`);
|
||||
}
|
||||
$$renderer2.push(`<!--]-->`);
|
||||
}
|
||||
$$renderer2.push(`<!--]-->`);
|
||||
}
|
||||
$$renderer2.push(`<!--]--></div></div></div>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]-->`);
|
||||
if ($$store_subs) unsubscribe_stores($$store_subs);
|
||||
bind_props($$props, { open });
|
||||
});
|
||||
}
|
||||
export {
|
||||
EntityPicker as E,
|
||||
IconSearch as I
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
import { a as attr, e as escape_html, b as attr_class, k as bind_props, g as stringify } from "./index.js";
|
||||
function FormField($$renderer, $$props) {
|
||||
$$renderer.component(($$renderer2) => {
|
||||
let {
|
||||
label,
|
||||
name,
|
||||
type = "text",
|
||||
value = "",
|
||||
placeholder = "",
|
||||
required = false,
|
||||
disabled = false,
|
||||
error = "",
|
||||
helpText = "",
|
||||
oninput
|
||||
} = $$props;
|
||||
const inputBase = "w-full rounded-lg border px-3 py-2 text-sm transition-all duration-150 focus:outline-none focus:ring-2 bg-[var(--surface-input)] text-[var(--text-primary)] placeholder:text-[var(--text-tertiary)]";
|
||||
const inputNormal = "border-[var(--border-input)] focus:ring-[var(--color-brand-500)] focus:border-[var(--color-brand-500)]";
|
||||
const inputError = "border-[var(--color-danger)] focus:ring-[var(--color-danger)]";
|
||||
const inputDisabled = "opacity-60 cursor-not-allowed bg-[var(--surface-card-hover)]";
|
||||
$$renderer2.push(`<div class="flex flex-col gap-1.5"><label${attr("for", name)} class="text-sm font-medium text-[var(--text-primary)]">${escape_html(label)} `);
|
||||
if (required) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<span class="text-[var(--color-danger)]">*</span>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--></label> `);
|
||||
if (type === "textarea") {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<textarea${attr("id", name)}${attr("name", name)}${attr("placeholder", placeholder)}${attr("required", required, true)}${attr("disabled", disabled, true)}${attr_class(`${stringify(inputBase)} ${stringify(error ? inputError : inputNormal)} ${stringify(disabled ? inputDisabled : "")}`)} rows="3">`);
|
||||
const $$body = escape_html(value);
|
||||
if ($$body) {
|
||||
$$renderer2.push(`${$$body}`);
|
||||
}
|
||||
$$renderer2.push(`</textarea>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
$$renderer2.push(`<input${attr("id", name)}${attr("name", name)}${attr("type", type)}${attr("value", value)}${attr("placeholder", placeholder)}${attr("required", required, true)}${attr("disabled", disabled, true)}${attr_class(`${stringify(inputBase)} ${stringify(error ? inputError : inputNormal)} ${stringify(disabled ? inputDisabled : "")}`)}/>`);
|
||||
}
|
||||
$$renderer2.push(`<!--]--> `);
|
||||
if (error) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<p class="text-xs text-[var(--color-danger)]">${escape_html(error)}</p>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--> `);
|
||||
if (helpText && !error) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<p class="text-xs text-[var(--text-tertiary)]">${escape_html(helpText)}</p>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer2.push(`<!--]--></div>`);
|
||||
bind_props($$props, { value });
|
||||
});
|
||||
}
|
||||
export {
|
||||
FormField as F
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconAlert($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconAlert as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconCheck($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconCheck as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconChevronRight($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconChevronRight as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconDeploy($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M15.59 14.37a6 6 0 0 1-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 0 0 6.16-12.12A14.98 14.98 0 0 0 9.631 8.41m5.96 5.96a14.926 14.926 0 0 1-5.841 2.58m-.119-8.54a6 6 0 0 0-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 0 0-2.58 5.84m2.699 2.7a15.09 15.09 0 0 1-2.448-2.448 14.9 14.9 0 0 1 .06-.312m-2.24 2.39a4.493 4.493 0 0 0-1.757 4.306 4.493 4.493 0 0 0 4.306-1.758M16.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconDeploy as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconGlobe($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconGlobe as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, g as stringify } from "./index.js";
|
||||
function IconLoader($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(`animate-spin ${stringify(c)}`)} aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconLoader as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconPlus($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconPlus as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconSettings($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>`);
|
||||
}
|
||||
export {
|
||||
IconSettings as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconTrash($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line></svg>`);
|
||||
}
|
||||
export {
|
||||
IconTrash as I
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
import { a as attr, b as attr_class, c as clsx } from "./index.js";
|
||||
function IconX($$renderer, $$props) {
|
||||
const { size = 20, class: c = "" } = $$props;
|
||||
$$renderer.push(`<svg xmlns="http://www.w3.org/2000/svg"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"${attr_class(clsx(c))} aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>`);
|
||||
}
|
||||
export {
|
||||
IconX as I
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
import { b as attr_class, l as attr_style, g as stringify } from "./index.js";
|
||||
function Skeleton($$renderer, $$props) {
|
||||
const {
|
||||
class: className = "",
|
||||
width = "100%",
|
||||
height = "1rem",
|
||||
rounded = false
|
||||
} = $$props;
|
||||
$$renderer.push(`<div${attr_class(`skeleton ${stringify(className)}`)}${attr_style(`width: ${stringify(width)}; height: ${stringify(height)}; ${stringify(rounded ? "border-radius: 9999px;" : "")}`)} aria-hidden="true"></div>`);
|
||||
}
|
||||
export {
|
||||
Skeleton as S
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
import "clsx";
|
||||
import { S as Skeleton } from "./Skeleton.js";
|
||||
function SkeletonCard($$renderer) {
|
||||
$$renderer.push(`<div class="rounded-xl border border-[var(--border-primary)] bg-[var(--surface-card)] p-5 shadow-[var(--shadow-sm)]"><div class="flex items-start justify-between"><div class="flex-1 space-y-2">`);
|
||||
Skeleton($$renderer, { width: "60%", height: "1.25rem" });
|
||||
$$renderer.push(`<!----> `);
|
||||
Skeleton($$renderer, { width: "80%", height: "0.875rem" });
|
||||
$$renderer.push(`<!----></div> `);
|
||||
Skeleton($$renderer, { width: "4rem", height: "1.5rem", rounded: true });
|
||||
$$renderer.push(`<!----></div> <div class="mt-4 flex gap-4">`);
|
||||
Skeleton($$renderer, { width: "5rem", height: "0.875rem" });
|
||||
$$renderer.push(`<!----> `);
|
||||
Skeleton($$renderer, { width: "4rem", height: "0.875rem" });
|
||||
$$renderer.push(`<!----></div> <div class="mt-3 flex gap-3">`);
|
||||
Skeleton($$renderer, { width: "3.5rem", height: "0.75rem" });
|
||||
$$renderer.push(`<!----> `);
|
||||
Skeleton($$renderer, { width: "4.5rem", height: "0.75rem" });
|
||||
$$renderer.push(`<!----></div></div>`);
|
||||
}
|
||||
export {
|
||||
SkeletonCard as S
|
||||
};
|
||||
@@ -0,0 +1,71 @@
|
||||
const TOKEN_KEY = "auth_token";
|
||||
function getAuthToken() {
|
||||
if (typeof localStorage !== "undefined") {
|
||||
return localStorage.getItem(TOKEN_KEY);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function clearAuth() {
|
||||
if (typeof localStorage !== "undefined") {
|
||||
localStorage.removeItem(TOKEN_KEY);
|
||||
}
|
||||
}
|
||||
class ApiError extends Error {
|
||||
constructor(message, status) {
|
||||
super(message);
|
||||
this.status = status;
|
||||
this.name = "ApiError";
|
||||
}
|
||||
}
|
||||
async function request(path, init) {
|
||||
const token = getAuthToken();
|
||||
const headers = {
|
||||
"Content-Type": "application/json",
|
||||
...init?.headers
|
||||
};
|
||||
if (token) {
|
||||
headers["Authorization"] = `Bearer ${token}`;
|
||||
}
|
||||
const res = await fetch(path, {
|
||||
...init,
|
||||
headers
|
||||
});
|
||||
if (res.status === 401 && typeof window !== "undefined" && !path.includes("/auth/")) {
|
||||
clearAuth();
|
||||
window.location.href = "/login";
|
||||
throw new ApiError("Authentication required", 401);
|
||||
}
|
||||
let envelope;
|
||||
try {
|
||||
envelope = await res.json();
|
||||
} catch {
|
||||
throw new ApiError(
|
||||
`Server returned non-JSON response (HTTP ${res.status})`,
|
||||
res.status
|
||||
);
|
||||
}
|
||||
if (!envelope.success) {
|
||||
throw new ApiError(envelope.error ?? "Unknown API error", res.status);
|
||||
}
|
||||
return envelope.data;
|
||||
}
|
||||
function post(path, body) {
|
||||
return request(path, {
|
||||
method: "POST",
|
||||
body: body !== void 0 ? JSON.stringify(body) : void 0
|
||||
});
|
||||
}
|
||||
function validateProxy(host, port) {
|
||||
return post("/api/proxies/validate", { host, port });
|
||||
}
|
||||
function cleanupStaleContainer(id) {
|
||||
return post(`/api/containers/stale/${id}/cleanup`);
|
||||
}
|
||||
function bulkCleanupStaleContainers() {
|
||||
return post("/api/containers/stale/cleanup");
|
||||
}
|
||||
export {
|
||||
bulkCleanupStaleContainers as b,
|
||||
cleanupStaleContainer as c,
|
||||
validateProxy as v
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
let base = "";
|
||||
let assets = base;
|
||||
const app_dir = "_app";
|
||||
const relative = true;
|
||||
const initial = { base, assets };
|
||||
function override(paths) {
|
||||
base = paths.base;
|
||||
assets = paths.assets;
|
||||
}
|
||||
function reset() {
|
||||
base = initial.base;
|
||||
assets = initial.assets;
|
||||
}
|
||||
function set_assets(path) {
|
||||
assets = initial.assets = path;
|
||||
}
|
||||
let prerendering = false;
|
||||
function set_building() {
|
||||
}
|
||||
function set_prerendering() {
|
||||
prerendering = true;
|
||||
}
|
||||
export {
|
||||
set_building as a,
|
||||
set_prerendering as b,
|
||||
base as c,
|
||||
app_dir as d,
|
||||
assets as e,
|
||||
reset as f,
|
||||
override as o,
|
||||
prerendering as p,
|
||||
relative as r,
|
||||
set_assets as s
|
||||
};
|
||||
@@ -0,0 +1,174 @@
|
||||
const SCHEME = /^[a-z][a-z\d+\-.]+:/i;
|
||||
const internal = new URL("sveltekit-internal://");
|
||||
function resolve(base, path) {
|
||||
if (path[0] === "/" && path[1] === "/") return path;
|
||||
let url = new URL(base, internal);
|
||||
url = new URL(path, url);
|
||||
return url.protocol === internal.protocol ? url.pathname + url.search + url.hash : url.href;
|
||||
}
|
||||
function normalize_path(path, trailing_slash) {
|
||||
if (path === "/" || trailing_slash === "ignore") return path;
|
||||
if (trailing_slash === "never") {
|
||||
return path.endsWith("/") ? path.slice(0, -1) : path;
|
||||
} else if (trailing_slash === "always" && !path.endsWith("/")) {
|
||||
return path + "/";
|
||||
}
|
||||
return path;
|
||||
}
|
||||
function decode_pathname(pathname) {
|
||||
return pathname.split("%25").map(decodeURI).join("%25");
|
||||
}
|
||||
function decode_params(params) {
|
||||
for (const key in params) {
|
||||
params[key] = decodeURIComponent(params[key]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
function make_trackable(url, callback, search_params_callback, allow_hash = false) {
|
||||
const tracked = new URL(url);
|
||||
Object.defineProperty(tracked, "searchParams", {
|
||||
value: new Proxy(tracked.searchParams, {
|
||||
get(obj, key) {
|
||||
if (key === "get" || key === "getAll" || key === "has") {
|
||||
return (param, ...rest) => {
|
||||
search_params_callback(param);
|
||||
return obj[key](param, ...rest);
|
||||
};
|
||||
}
|
||||
callback();
|
||||
const value = Reflect.get(obj, key);
|
||||
return typeof value === "function" ? value.bind(obj) : value;
|
||||
}
|
||||
}),
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
const tracked_url_properties = ["href", "pathname", "search", "toString", "toJSON"];
|
||||
if (allow_hash) tracked_url_properties.push("hash");
|
||||
for (const property of tracked_url_properties) {
|
||||
Object.defineProperty(tracked, property, {
|
||||
get() {
|
||||
callback();
|
||||
return url[property];
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
}
|
||||
{
|
||||
tracked[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
|
||||
return inspect(url, opts);
|
||||
};
|
||||
tracked.searchParams[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
|
||||
return inspect(url.searchParams, opts);
|
||||
};
|
||||
}
|
||||
if (!allow_hash) {
|
||||
disable_hash(tracked);
|
||||
}
|
||||
return tracked;
|
||||
}
|
||||
function disable_hash(url) {
|
||||
allow_nodejs_console_log(url);
|
||||
Object.defineProperty(url, "hash", {
|
||||
get() {
|
||||
throw new Error(
|
||||
"Cannot access event.url.hash. Consider using `page.url.hash` inside a component instead"
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
function disable_search(url) {
|
||||
allow_nodejs_console_log(url);
|
||||
for (const property of ["search", "searchParams"]) {
|
||||
Object.defineProperty(url, property, {
|
||||
get() {
|
||||
throw new Error(`Cannot access url.${property} on a page with prerendering enabled`);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function allow_nodejs_console_log(url) {
|
||||
{
|
||||
url[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
|
||||
return inspect(new URL(url), opts);
|
||||
};
|
||||
}
|
||||
}
|
||||
function validator(expected) {
|
||||
function validate(module, file) {
|
||||
if (!module) return;
|
||||
for (const key in module) {
|
||||
if (key[0] === "_" || expected.has(key)) continue;
|
||||
const values = [...expected.values()];
|
||||
const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf("."))) ?? `valid exports are ${values.join(", ")}, or anything with a '_' prefix`;
|
||||
throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : ""} (${hint})`);
|
||||
}
|
||||
}
|
||||
return validate;
|
||||
}
|
||||
function hint_for_supported_files(key, ext = ".js") {
|
||||
const supported_files = [];
|
||||
if (valid_layout_exports.has(key)) {
|
||||
supported_files.push(`+layout${ext}`);
|
||||
}
|
||||
if (valid_page_exports.has(key)) {
|
||||
supported_files.push(`+page${ext}`);
|
||||
}
|
||||
if (valid_layout_server_exports.has(key)) {
|
||||
supported_files.push(`+layout.server${ext}`);
|
||||
}
|
||||
if (valid_page_server_exports.has(key)) {
|
||||
supported_files.push(`+page.server${ext}`);
|
||||
}
|
||||
if (valid_server_exports.has(key)) {
|
||||
supported_files.push(`+server${ext}`);
|
||||
}
|
||||
if (supported_files.length > 0) {
|
||||
return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(", ")}${supported_files.length > 1 ? " or " : ""}${supported_files.at(-1)}`;
|
||||
}
|
||||
}
|
||||
const valid_layout_exports = /* @__PURE__ */ new Set([
|
||||
"load",
|
||||
"prerender",
|
||||
"csr",
|
||||
"ssr",
|
||||
"trailingSlash",
|
||||
"config"
|
||||
]);
|
||||
const valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, "entries"]);
|
||||
const valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);
|
||||
const valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, "actions", "entries"]);
|
||||
const valid_server_exports = /* @__PURE__ */ new Set([
|
||||
"GET",
|
||||
"POST",
|
||||
"PATCH",
|
||||
"PUT",
|
||||
"DELETE",
|
||||
"OPTIONS",
|
||||
"HEAD",
|
||||
"fallback",
|
||||
"prerender",
|
||||
"trailingSlash",
|
||||
"config",
|
||||
"entries"
|
||||
]);
|
||||
const validate_layout_exports = validator(valid_layout_exports);
|
||||
const validate_page_exports = validator(valid_page_exports);
|
||||
const validate_layout_server_exports = validator(valid_layout_server_exports);
|
||||
const validate_page_server_exports = validator(valid_page_server_exports);
|
||||
const validate_server_exports = validator(valid_server_exports);
|
||||
export {
|
||||
SCHEME as S,
|
||||
decode_params as a,
|
||||
validate_layout_exports as b,
|
||||
validate_page_server_exports as c,
|
||||
disable_search as d,
|
||||
validate_page_exports as e,
|
||||
decode_pathname as f,
|
||||
validate_server_exports as g,
|
||||
make_trackable as m,
|
||||
normalize_path as n,
|
||||
resolve as r,
|
||||
validate_layout_server_exports as v
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
const BROWSER = false;
|
||||
export {
|
||||
BROWSER as B
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
import { d as ssr_context } from "./index.js";
|
||||
import "clsx";
|
||||
function onDestroy(fn) {
|
||||
/** @type {SSRContext} */
|
||||
ssr_context.r.on_destroy(fn);
|
||||
}
|
||||
export {
|
||||
onDestroy as o
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,172 @@
|
||||
import { w as writable, d as derived } from "./index3.js";
|
||||
const app$1 = { "name": "Docker Watcher", "version": "v0.1" };
|
||||
const health$1 = { "connected": "connected", "disconnected": "disconnected", "rawError": "Technical details", "retryNow": "Retry now" };
|
||||
const nav$1 = { "dashboard": "Dashboard", "projects": "Projects", "deploy": "Deploy", "proxies": "Proxies", "events": "Events", "settings": "Settings", "logout": "Log out" };
|
||||
const dashboard$1 = { "title": "Dashboard", "quickDeploy": "Quick Deploy", "totalProjects": "Total Projects", "runningInstances": "Running Instances", "failedInstances": "Failed Instances", "projects": "Projects", "retry": "Retry", "noProjects": "No projects yet.", "addFirst": "Add your first project", "loadFailed": "Failed to load dashboard", "staleContainers": "Stale Containers" };
|
||||
const projects$1 = { "title": "Projects", "addProject": "Add Project", "cancel": "Cancel", "newProject": "New Project", "name": "Name", "image": "Image", "port": "Port", "registry": "Registry", "created": "Created", "view": "View", "noProjects": "No projects configured yet.", "getStarted": 'Click "Add Project" to get started.', "createProject": "Create Project", "creating": "Creating...", "healthcheck": "Healthcheck Path", "nameRequired": "Name and image are required.", "loadFailed": "Failed to load projects", "createFailed": "Failed to create project", "browseImages": "Browse Images", "selectImage": "Select an image", "noImages": "No images found", "loadingImages": "Loading images...", "imageLoadFailed": "Failed to load images" };
|
||||
const projectDetail$1 = { "deleteProject": "Delete Project", "envVars": "Environment Variables", "volumes": "Volume Mounts", "stages": "Stages", "noStages": "No stages configured for this project.", "pattern": "Pattern", "autoDeploy": "auto-deploy", "requiresConfirm": "requires confirm", "instances": "instances", "deployNewVersion": "Deploy new version", "selectTag": "Select tag to deploy", "loadingTags": "Loading tags...", "chooseTag": "Choose a tag...", "enterTag": "Enter image tag (e.g., dev-abc123)", "deploy": "Deploy", "deploying": "Deploying...", "recentDeploys": "Recent Deploys", "noDeployHistory": "No deploy history for this project.", "tag": "Tag", "status": "Status", "started": "Started", "finished": "Finished", "error": "Error", "noInstancesRunning": "No instances running", "deleteConfirmTitle": "Delete Project", "deleteConfirmMessage": "This will permanently delete the project '{name}' and all its stages, instances, and deploy history. This cannot be undone.", "loadFailed": "Failed to load project", "deleteFailed": "Failed to delete project", "deployFailed": "Deploy failed" };
|
||||
const envEditor$1 = { "title": "Environment Variables", "description": "Manage per-stage environment variable overrides. Stage-level values override project-level defaults.", "stage": "Stage", "projectDefaults": "Project-Level Defaults", "stageOverrides": "Stage Overrides", "key": "Key", "value": "Value", "secret": "Secret", "source": "Source", "actions": "Actions", "overridden": "overridden", "inherited": "inherited", "overridesProject": "overrides project", "stageOnly": "stage only", "edit": "Edit", "change": "Change", "delete": "Delete", "save": "Save", "add": "Add", "adding": "Adding...", "noStages": "No stages configured. Add stages to the project first.", "loadFailed": "Failed to load project", "envAdded": "Environment variable added", "envUpdated": "Environment variable updated", "envDeleted": "Environment variable deleted", "addFailed": "Failed to add env var", "updateFailed": "Failed to update env var", "deleteFailed": "Failed to delete env var", "loadEnvFailed": "Failed to load env vars" };
|
||||
const volumeEditor$1 = { "title": "Volume Mounts", "description": "Configure volume mounts for containers. Choose a scope to control how volumes are shared between deploys.", "sourceHost": "Source (Host)", "targetContainer": "Target (Container)", "scope": "Scope", "nameColumn": "Name", "namePlaceholder": "e.g. shared-db", "requiresName": "requires name", "noHostPath": "no host path", "tmpfs": "tmpfs (in-memory)", "actions": "Actions", "edit": "Edit", "delete": "Delete", "save": "Save", "add": "Add", "adding": "Adding...", "noVolumes": "No volumes configured yet. Add one above.", "volumeAdded": "Volume added", "volumeUpdated": "Volume updated", "volumeDeleted": "Volume deleted", "loadFailed": "Failed to load volumes", "addFailed": "Failed to add volume", "updateFailed": "Failed to update volume", "deleteFailed": "Failed to delete volume" };
|
||||
const volumeBrowser$1 = { "title": "Volume Browser", "loadFailed": "Failed to load directory", "empty": "This directory is empty.", "name": "Name", "size": "Size", "modified": "Modified", "downloadAll": "Download volume as ZIP", "downloadFolder": "Download folder as ZIP", "upload": "Upload files", "uploaded": "Uploaded", "files": "file(s)", "uploadFailed": "Failed to upload files", "browse": "Browse", "download": "Download" };
|
||||
const quickDeploy$1 = { "title": "Quick Deploy", "description": "Deploy a container image with zero configuration. Paste an image URL, review the defaults, and deploy.", "step1": "1. Enter Image URL", "imageUrl": "Image URL", "imageUrlHelp": "Full image URL including tag (e.g., git.example.com/user/app:dev-abc123)", "inspect": "Inspect", "inspecting": "Inspecting...", "step2": "2. Review Configuration", "reviewDesc": "These defaults were detected from the image. Adjust as needed before deploying.", "projectName": "Project Name", "port": "Port", "portHelp": "Container port to expose (1-65535)", "healthCheckPath": "Health Check Path", "healthCheckHelp": "Optional HTTP path for health verification", "stage": "Stage", "development": "Development", "release": "Release", "production": "Production", "stageHelp": "Deployment stage for this image", "subdomainOverride": "Subdomain Override", "subdomainHelp": "Leave empty to use the default subdomain pattern", "envVars": "Environment Variables", "envVarsHelp": "One per line, KEY=VALUE format", "step3": "3. Deploy", "deployDesc": "A new project will be created and the container will be deployed immediately.", "deployBtn": "Deploy", "inspectedSuccess": "Image inspected successfully", "deployedSuccess": "Deployed {name} successfully!", "inspectFailed": "Failed to inspect image", "deployFailed": "Deployment failed", "browseImages": "Browse", "selectImage": "Select an image from a registry", "noImages": "No images found", "loadingImages": "Loading...", "imageLoadFailed": "Failed to load images" };
|
||||
const settings$1 = { "title": "Settings", "general": "General", "registries": "Registries", "credentials": "Credentials", "authentication": "Authentication", "appearance": "Appearance", "staleThreshold": "Stale threshold (days)", "staleThresholdHelp": "Containers inactive for longer than this will be flagged as stale." };
|
||||
const settingsGeneral$1 = { "title": "General Settings", "globalConfig": "Global Configuration", "domain": "Domain", "domainHelp": "Base domain for subdomain routing", "serverIp": "Server IP", "serverIpHelp": "Public IP address of the server", "dockerNetwork": "Docker Network", "dockerNetworkHelp": "Docker network for deployed containers", "subdomainPattern": "Subdomain Pattern", "subdomainPatternHelp": "Pattern for auto-generated subdomains", "pollingInterval": "Polling Interval (seconds)", "pollingIntervalHelp": "How often to check registries for new tags (10-86400)", "notificationUrl": "Notification URL", "notificationUrlHelp": "Webhook URL for deploy notifications", "saveSettings": "Save Settings", "saving": "Saving...", "saved": "Settings saved successfully", "saveFailed": "Failed to save settings", "loadFailed": "Failed to load settings", "webhookUrl": "Webhook URL", "webhookDesc": "This secret URL receives image push notifications from your CI pipeline.", "noWebhookUrl": "No webhook URL configured", "copy": "Copy", "copied": "Webhook URL copied to clipboard", "regenerateUrl": "Regenerate URL", "regenerating": "Regenerating...", "regenerated": "Webhook URL regenerated", "regenerateFailed": "Failed to regenerate webhook URL", "regenerateWarning": "Warning: regenerating will invalidate the current URL. Update your CI pipelines.", "sslCertificate": "SSL Certificate", "sslCertificateHelp": "Wildcard certificate from NPM for auto-SSL on proxy hosts", "selectCertificate": "Select Certificate", "noCertificate": "None (no SSL)", "clearCertificate": "Clear", "loadingCertificates": "Loading certificates...", "noCertificatesFound": "No wildcard certificates found in NPM" };
|
||||
const settingsRegistries$1 = { "title": "Container Registries", "description": "Manage your container registries for image detection.", "addRegistry": "Add Registry", "editRegistry": "Edit Registry", "addNewRegistry": "Add New Registry", "name": "Name", "nameHelp": "A friendly name for this registry", "url": "URL", "urlHelp": "Registry base URL", "type": "Type", "typeHelp": "Registry type for API compatibility", "token": "Token", "tokenHelpNew": "API token for authentication", "tokenHelpEdit": "Leave empty to keep the existing token", "owner": "Owner", "ownerHelp": "Package owners, comma-separated (e.g., alexei,my-org)", "save": "Save", "saving": "Saving...", "update": "Update", "test": "Test", "testing": "Testing...", "edit": "Edit", "delete": "Delete", "noRegistries": "No registries configured yet.", "addFirst": "Add your first registry", "registryUpdated": "Registry updated", "registryAdded": "Registry added", "registryDeleted": 'Registry "{name}" deleted', "testSuccess": 'Connection to "{name}" successful', "saveFailed": "Failed to save registry", "deleteFailed": "Failed to delete registry", "testFailed": "Connection test failed", "loadFailed": "Failed to load registries", "deleteConfirm": 'Delete registry "{name}"? This cannot be undone.' };
|
||||
const settingsCredentials$1 = { "title": "Credentials", "description": "Manage credentials for Nginx Proxy Manager and registry tokens. All values are encrypted at rest.", "npm": "Nginx Proxy Manager", "npmDesc": "Credentials for managing proxy hosts via NPM API", "configured": "Configured", "npmUrl": "NPM URL", "npmUrlHelp": "Nginx Proxy Manager API URL", "email": "Email", "emailHelp": "NPM admin email", "password": "Password", "passwordHelpNew": "NPM admin password (will be encrypted)", "passwordHelpEdit": "Enter the new password to replace the existing one", "changeCredentials": "Change Credentials", "save": "Save", "saving": "Saving...", "saved": "NPM credentials saved", "saveFailed": "Failed to save NPM credentials", "loadFailed": "Failed to load credentials", "registryTokens": "Registry Tokens", "registryTokensDesc": "Registry authentication tokens are managed per-registry in the", "registriesLink": "Registries", "registryTokensSuffix": "section. Each registry stores its token encrypted in the database." };
|
||||
const settingsAuth$1 = { "title": "Authentication Settings", "description": "Configure authentication mode and manage users.", "authMode": "Authentication Mode", "local": "Local (username/password)", "oidc": "OIDC (SSO)", "oidcConfig": "OIDC Provider Configuration", "issuerUrl": "Issuer URL", "clientId": "Client ID", "clientSecret": "Client Secret", "redirectUrl": "Redirect URL", "saveSettings": "Save Settings", "saving": "Saving...", "saved": "Settings saved", "saveFailed": "Failed to save", "loadFailed": "Failed to load settings", "localUsers": "Local Users", "username": "Username", "email": "Email", "role": "Role", "created": "Created", "noUsers": "No users found.", "addUser": "Add User", "viewer": "Viewer", "admin": "Admin", "userCreated": "User created", "userDeleted": "User deleted", "createFailed": "Failed to create user", "deleteFailed": "Failed to delete user", "deleteConfirm": "Are you sure you want to delete this user?", "usernameRequired": "Username and password are required", "password": "Password" };
|
||||
const login$1 = { "title": "Docker Watcher", "subtitle": "Sign in to your account", "username": "Username", "password": "Password", "signIn": "Sign in", "signingIn": "Signing in...", "or": "or", "ssoButton": "Sign in with SSO (OIDC)", "loginFailed": "Login failed", "networkError": "Network error" };
|
||||
const proxies$1 = { "title": "Proxies", "create": "Create Proxy", "noProxies": "No proxies configured yet.", "noProxiesDesc": "Create a standalone proxy or deploy a project to see proxies here.", "standalone": "Standalone Proxies", "managed": "Managed", "lastChecked": "Last checked", "health": { "healthy": "Healthy", "unhealthy": "Unhealthy", "unknown": "Unknown" }, "filter": { "search": "Search proxies...", "health": "Health", "type": "Type", "all": "All", "clear": "Clear filters" }, "form": { "title": "Create Proxy", "editTitle": "Edit Proxy", "destination": "Destination URL / IP", "port": "Port", "domain": "Domain", "domainHelp": "The public domain for this proxy.", "validate": "Validate", "validating": "Validating...", "create": "Create Proxy", "save": "Save Changes", "cancel": "Cancel", "delete": "Delete", "deleteConfirm": "Delete this proxy? This cannot be undone." }, "validation": { "title": "Destination Validation", "syntax": "URL syntax", "dns": "DNS resolution", "tcp": "TCP connection", "http": "HTTP response", "checking": "Checking...", "skipped": "Skipped" } };
|
||||
const common$1 = { "cancel": "Cancel", "confirm": "Confirm", "delete": "Delete", "edit": "Edit", "save": "Save", "retry": "Retry", "loading": "Loading...", "noData": "No data", "project": "Project", "back": "Back", "actions": "Actions", "stop": "Stop", "start": "Start", "restart": "Restart", "remove": "Remove", "instance": "instance", "instances": "instances" };
|
||||
const instance$1 = { "stopConfirm": "This will stop the running container. The instance can be started again later.", "restartConfirm": "This will restart the container, causing brief downtime.", "removeConfirm": "This will permanently remove the container and its proxy configuration. This cannot be undone.", "actionFailed": "Action failed" };
|
||||
const empty$1 = { "noProjects": "No projects yet", "noProjectsDesc": "Get started by creating your first project or use Quick Deploy.", "createProject": "Create Project", "noInstances": "No instances", "noInstancesDesc": "Deploy a new version to see instances here.", "noDeploys": "No deploy history", "noDeploysDesc": "Deploy history will appear here after your first deployment.", "noRegistries": "No registries", "noRegistriesDesc": "Add a container registry to enable image detection.", "noVolumes": "No volumes", "noVolumesDesc": "Configure volume mounts for persistent data.", "noUsers": "No users", "noUsersDesc": "Add local users to manage access." };
|
||||
const validation$1 = { "required": "{field} is required", "invalidUrl": "Invalid URL format", "invalidDomain": "Invalid domain format", "invalidIp": "Invalid IP format", "invalidEmail": "Invalid email format", "invalidPort": "Port must be between 1 and 65535", "invalidPollingInterval": "Polling interval must be between 10 and 86400 seconds", "invalidProjectName": "Only lowercase letters, numbers, and hyphens allowed", "requiredWhenUpdating": "{field} is required when updating credentials", "requiredForNew": "{field} is required for new registries" };
|
||||
const confirm$1 = { "stopInstance": "Stop Instance", "startInstance": "Start Instance", "restartInstance": "Restart Instance", "removeInstance": "Remove Instance" };
|
||||
const theme$1 = { "light": "Light", "dark": "Dark", "system": "System" };
|
||||
const entityPicker$1 = { "search": "Search...", "noResults": "No results found" };
|
||||
const stale$1 = { "title": "Stale Containers", "noStale": "No stale containers", "noStaleDesc": "All containers are healthy and running.", "cleanup": "Clean up", "cleanupAll": "Clean up all", "confirmCleanup": "This will stop and remove the container. Continue?", "confirmBulkCleanup": "This will stop and remove all stale containers. Continue?", "daysStale": "days stale", "lastAlive": "Last alive", "count": "Stale", "cleanedUp": "Container cleaned up", "bulkCleanedUp": "{count} containers cleaned up", "cleanupFailed": "Cleanup failed", "loadFailed": "Failed to load stale containers" };
|
||||
const events$1 = { "title": "Event Log", "noEvents": "No events found", "noEventsDesc": "Events will appear here as they occur.", "loadMore": "Load more", "newEvents": "new events", "filter": { "severity": "Severity", "source": "Source", "dateRange": "Date range", "search": "Search events...", "lastHour": "Last hour", "last24h": "Last 24 hours", "last7d": "Last 7 days", "allTime": "All time", "clear": "Clear filters" }, "severity": { "info": "Info", "warn": "Warning", "error": "Error" }, "source": { "deploy": "Deploy", "container": "Container", "proxy": "Proxy", "system": "System" }, "metadata": "Details" };
|
||||
const stats$1 = { "cpu": "CPU", "mem": "MEM", "unavailable": "Stats unavailable" };
|
||||
const systemHealth$1 = { "title": "System Health", "containers": "Containers", "proxies": "Proxies", "recentErrors": "Recent Errors" };
|
||||
const language$1 = { "en": "English", "ru": "Russian" };
|
||||
const en = {
|
||||
app: app$1,
|
||||
health: health$1,
|
||||
nav: nav$1,
|
||||
dashboard: dashboard$1,
|
||||
projects: projects$1,
|
||||
projectDetail: projectDetail$1,
|
||||
envEditor: envEditor$1,
|
||||
volumeEditor: volumeEditor$1,
|
||||
volumeBrowser: volumeBrowser$1,
|
||||
quickDeploy: quickDeploy$1,
|
||||
settings: settings$1,
|
||||
settingsGeneral: settingsGeneral$1,
|
||||
settingsRegistries: settingsRegistries$1,
|
||||
settingsCredentials: settingsCredentials$1,
|
||||
settingsAuth: settingsAuth$1,
|
||||
login: login$1,
|
||||
proxies: proxies$1,
|
||||
common: common$1,
|
||||
instance: instance$1,
|
||||
empty: empty$1,
|
||||
validation: validation$1,
|
||||
confirm: confirm$1,
|
||||
theme: theme$1,
|
||||
entityPicker: entityPicker$1,
|
||||
stale: stale$1,
|
||||
events: events$1,
|
||||
stats: stats$1,
|
||||
systemHealth: systemHealth$1,
|
||||
language: language$1
|
||||
};
|
||||
const app = { "name": "Docker Watcher", "version": "v0.1" };
|
||||
const health = { "connected": "подключён", "disconnected": "отключён", "rawError": "Технические детали", "retryNow": "Проверить сейчас" };
|
||||
const nav = { "dashboard": "Панель", "projects": "Проекты", "deploy": "Деплой", "proxies": "Прокси", "events": "События", "settings": "Настройки", "logout": "Выйти" };
|
||||
const dashboard = { "title": "Панель управления", "quickDeploy": "Быстрый деплой", "totalProjects": "Всего проектов", "runningInstances": "Запущенных экземпляров", "failedInstances": "Сбойных экземпляров", "projects": "Проекты", "retry": "Повторить", "noProjects": "Проектов пока нет.", "addFirst": "Добавьте первый проект", "loadFailed": "Не удалось загрузить панель", "staleContainers": "Устаревшие контейнеры" };
|
||||
const projects = { "title": "Проекты", "addProject": "Добавить проект", "cancel": "Отмена", "newProject": "Новый проект", "name": "Название", "image": "Образ", "port": "Порт", "registry": "Реестр", "created": "Создан", "view": "Открыть", "noProjects": "Проекты ещё не настроены.", "getStarted": "Нажмите «Добавить проект» для начала.", "createProject": "Создать проект", "creating": "Создание...", "healthcheck": "Путь проверки здоровья", "nameRequired": "Название и образ обязательны.", "loadFailed": "Не удалось загрузить проекты", "createFailed": "Не удалось создать проект", "browseImages": "Обзор образов", "selectImage": "Выберите образ", "noImages": "Образы не найдены", "loadingImages": "Загрузка образов...", "imageLoadFailed": "Не удалось загрузить образы" };
|
||||
const projectDetail = { "deleteProject": "Удалить проект", "envVars": "Переменные окружения", "volumes": "Тома", "stages": "Стадии", "noStages": "Для этого проекта не настроены стадии.", "pattern": "Шаблон", "autoDeploy": "авто-деплой", "requiresConfirm": "нужно подтверждение", "instances": "экземпляров", "deployNewVersion": "Развернуть новую версию", "selectTag": "Выберите тег для деплоя", "loadingTags": "Загрузка тегов...", "chooseTag": "Выберите тег...", "enterTag": "Введите тег образа (напр., dev-abc123)", "deploy": "Развернуть", "deploying": "Развёртывание...", "recentDeploys": "Последние деплои", "noDeployHistory": "Нет истории деплоев для этого проекта.", "tag": "Тег", "status": "Статус", "started": "Начат", "finished": "Завершён", "error": "Ошибка", "noInstancesRunning": "Нет запущенных экземпляров", "deleteConfirmTitle": "Удалить проект", "deleteConfirmMessage": "Это безвозвратно удалит проект '{name}' и все его стадии, экземпляры и историю деплоев.", "loadFailed": "Не удалось загрузить проект", "deleteFailed": "Не удалось удалить проект", "deployFailed": "Деплой не удался" };
|
||||
const envEditor = { "title": "Переменные окружения", "description": "Управление переопределениями переменных окружения на уровне стадий. Значения стадий переопределяют значения проекта.", "stage": "Стадия", "projectDefaults": "Значения проекта по умолчанию", "stageOverrides": "Переопределения стадии", "key": "Ключ", "value": "Значение", "secret": "Секрет", "source": "Источник", "actions": "Действия", "overridden": "переопределено", "inherited": "наследуется", "overridesProject": "переопределяет проект", "stageOnly": "только стадия", "edit": "Изменить", "change": "Изменить", "delete": "Удалить", "save": "Сохранить", "add": "Добавить", "adding": "Добавление...", "noStages": "Стадии не настроены. Сначала добавьте стадии к проекту.", "loadFailed": "Не удалось загрузить проект", "envAdded": "Переменная окружения добавлена", "envUpdated": "Переменная окружения обновлена", "envDeleted": "Переменная окружения удалена", "addFailed": "Не удалось добавить переменную", "updateFailed": "Не удалось обновить переменную", "deleteFailed": "Не удалось удалить переменную", "loadEnvFailed": "Не удалось загрузить переменные" };
|
||||
const volumeEditor = { "title": "Тома", "description": "Настройка монтирования томов для контейнеров. Выберите область видимости для управления общим доступом между развёртываниями.", "sourceHost": "Источник (хост)", "targetContainer": "Цель (контейнер)", "scope": "Область", "nameColumn": "Имя", "namePlaceholder": "напр. shared-db", "requiresName": "требуется имя", "noHostPath": "нет пути на хосте", "tmpfs": "tmpfs (в памяти)", "actions": "Действия", "edit": "Изменить", "delete": "Удалить", "save": "Сохранить", "add": "Добавить", "adding": "Добавление...", "noVolumes": "Тома ещё не настроены. Добавьте один выше.", "volumeAdded": "Том добавлен", "volumeUpdated": "Том обновлён", "volumeDeleted": "Том удалён", "loadFailed": "Не удалось загрузить тома", "addFailed": "Не удалось добавить том", "updateFailed": "Не удалось обновить том", "deleteFailed": "Не удалось удалить том" };
|
||||
const volumeBrowser = { "title": "Обзор тома", "loadFailed": "Не удалось загрузить каталог", "empty": "Этот каталог пуст.", "name": "Имя", "size": "Размер", "modified": "Изменён", "downloadAll": "Скачать том как ZIP", "downloadFolder": "Скачать папку как ZIP", "upload": "Загрузить файлы", "uploaded": "Загружено", "files": "файл(ов)", "uploadFailed": "Не удалось загрузить файлы", "browse": "Обзор", "download": "Скачать" };
|
||||
const quickDeploy = { "title": "Быстрый деплой", "description": "Разверните образ контейнера без настройки. Вставьте URL образа, проверьте параметры и разверните.", "step1": "1. Введите URL образа", "imageUrl": "URL образа", "imageUrlHelp": "Полный URL образа с тегом (напр., git.example.com/user/app:dev-abc123)", "inspect": "Проверить", "inspecting": "Проверка...", "step2": "2. Проверка конфигурации", "reviewDesc": "Эти параметры были обнаружены из образа. Измените при необходимости перед деплоем.", "projectName": "Имя проекта", "port": "Порт", "portHelp": "Порт контейнера (1-65535)", "healthCheckPath": "Путь проверки здоровья", "healthCheckHelp": "Необязательный HTTP-путь для проверки работоспособности", "stage": "Стадия", "development": "Разработка", "release": "Релиз", "production": "Продакшн", "stageHelp": "Стадия развёртывания для этого образа", "subdomainOverride": "Переопределение поддомена", "subdomainHelp": "Оставьте пустым для использования шаблона по умолчанию", "envVars": "Переменные окружения", "envVarsHelp": "По одной на строку, формат KEY=VALUE", "step3": "3. Развёртывание", "deployDesc": "Будет создан новый проект и контейнер будет развёрнут немедленно.", "deployBtn": "Развернуть", "inspectedSuccess": "Образ успешно проверен", "deployedSuccess": "{name} успешно развёрнут!", "inspectFailed": "Не удалось проверить образ", "deployFailed": "Развёртывание не удалось", "browseImages": "Обзор", "selectImage": "Выберите образ из реестра", "noImages": "Образы не найдены", "loadingImages": "Загрузка...", "imageLoadFailed": "Не удалось загрузить образы" };
|
||||
const settings = { "title": "Настройки", "general": "Общие", "registries": "Реестры", "credentials": "Учётные данные", "authentication": "Аутентификация", "appearance": "Внешний вид", "staleThreshold": "Порог устаревания (дни)", "staleThresholdHelp": "Контейнеры, неактивные дольше этого срока, будут помечены как устаревшие." };
|
||||
const settingsGeneral = { "title": "Общие настройки", "globalConfig": "Глобальная конфигурация", "domain": "Домен", "domainHelp": "Базовый домен для маршрутизации поддоменов", "serverIp": "IP сервера", "serverIpHelp": "Публичный IP-адрес сервера", "dockerNetwork": "Docker-сеть", "dockerNetworkHelp": "Docker-сеть для развёрнутых контейнеров", "subdomainPattern": "Шаблон поддомена", "subdomainPatternHelp": "Шаблон для автоматически генерируемых поддоменов", "pollingInterval": "Интервал опроса (секунды)", "pollingIntervalHelp": "Как часто проверять реестры на новые теги (10-86400)", "notificationUrl": "URL уведомлений", "notificationUrlHelp": "URL вебхука для уведомлений о деплоях", "saveSettings": "Сохранить настройки", "saving": "Сохранение...", "saved": "Настройки успешно сохранены", "saveFailed": "Не удалось сохранить настройки", "loadFailed": "Не удалось загрузить настройки", "webhookUrl": "URL вебхука", "webhookDesc": "Этот секретный URL получает уведомления о push-событиях из вашего CI-пайплайна.", "noWebhookUrl": "URL вебхука не настроен", "copy": "Копировать", "copied": "URL вебхука скопирован в буфер обмена", "regenerateUrl": "Перегенерировать URL", "regenerating": "Перегенерация...", "regenerated": "URL вебхука перегенерирован", "regenerateFailed": "Не удалось перегенерировать URL вебхука", "regenerateWarning": "Внимание: перегенерация сделает текущий URL недействительным. Обновите ваши CI-пайплайны.", "sslCertificate": "SSL-сертификат", "sslCertificateHelp": "Wildcard-сертификат из NPM для автоматического SSL на прокси-хостах", "selectCertificate": "Выбрать сертификат", "noCertificate": "Нет (без SSL)", "clearCertificate": "Очистить", "loadingCertificates": "Загрузка сертификатов...", "noCertificatesFound": "Wildcard-сертификаты в NPM не найдены" };
|
||||
const settingsRegistries = { "title": "Реестры контейнеров", "description": "Управление реестрами контейнеров для обнаружения образов.", "addRegistry": "Добавить реестр", "editRegistry": "Редактировать реестр", "addNewRegistry": "Добавить новый реестр", "name": "Название", "nameHelp": "Понятное название для этого реестра", "url": "URL", "urlHelp": "Базовый URL реестра", "type": "Тип", "typeHelp": "Тип реестра для совместимости API", "token": "Токен", "tokenHelpNew": "API-токен для аутентификации", "tokenHelpEdit": "Оставьте пустым, чтобы сохранить текущий токен", "owner": "Владелец", "ownerHelp": "Владельцы пакетов через запятую (напр., alexei,my-org)", "save": "Сохранить", "saving": "Сохранение...", "update": "Обновить", "test": "Тест", "testing": "Тестирование...", "edit": "Изменить", "delete": "Удалить", "noRegistries": "Реестры ещё не настроены.", "addFirst": "Добавьте первый реестр", "registryUpdated": "Реестр обновлён", "registryAdded": "Реестр добавлен", "registryDeleted": "Реестр «{name}» удалён", "testSuccess": "Подключение к «{name}» успешно", "saveFailed": "Не удалось сохранить реестр", "deleteFailed": "Не удалось удалить реестр", "testFailed": "Тест подключения не удался", "loadFailed": "Не удалось загрузить реестры", "deleteConfirm": "Удалить реестр «{name}»? Это действие необратимо." };
|
||||
const settingsCredentials = { "title": "Учётные данные", "description": "Управление учётными данными для Nginx Proxy Manager и токенами реестров. Все значения зашифрованы.", "npm": "Nginx Proxy Manager", "npmDesc": "Учётные данные для управления прокси-хостами через NPM API", "configured": "Настроено", "npmUrl": "URL NPM", "npmUrlHelp": "URL API Nginx Proxy Manager", "email": "Email", "emailHelp": "Email администратора NPM", "password": "Пароль", "passwordHelpNew": "Пароль администратора NPM (будет зашифрован)", "passwordHelpEdit": "Введите новый пароль для замены текущего", "changeCredentials": "Изменить учётные данные", "save": "Сохранить", "saving": "Сохранение...", "saved": "Учётные данные NPM сохранены", "saveFailed": "Не удалось сохранить учётные данные NPM", "loadFailed": "Не удалось загрузить учётные данные", "registryTokens": "Токены реестров", "registryTokensDesc": "Токены аутентификации реестров управляются для каждого реестра в разделе", "registriesLink": "Реестры", "registryTokensSuffix": ". Каждый реестр хранит свой токен в зашифрованном виде." };
|
||||
const settingsAuth = { "title": "Настройки аутентификации", "description": "Настройка режима аутентификации и управление пользователями.", "authMode": "Режим аутентификации", "local": "Локальный (логин/пароль)", "oidc": "OIDC (SSO)", "oidcConfig": "Конфигурация OIDC-провайдера", "issuerUrl": "URL издателя", "clientId": "ID клиента", "clientSecret": "Секрет клиента", "redirectUrl": "URL перенаправления", "saveSettings": "Сохранить настройки", "saving": "Сохранение...", "saved": "Настройки сохранены", "saveFailed": "Не удалось сохранить", "loadFailed": "Не удалось загрузить настройки", "localUsers": "Локальные пользователи", "username": "Имя пользователя", "email": "Email", "role": "Роль", "created": "Создан", "noUsers": "Пользователи не найдены.", "addUser": "Добавить пользователя", "viewer": "Наблюдатель", "admin": "Администратор", "userCreated": "Пользователь создан", "userDeleted": "Пользователь удалён", "createFailed": "Не удалось создать пользователя", "deleteFailed": "Не удалось удалить пользователя", "deleteConfirm": "Вы уверены, что хотите удалить этого пользователя?", "usernameRequired": "Имя пользователя и пароль обязательны", "password": "Пароль" };
|
||||
const login = { "title": "Docker Watcher", "subtitle": "Войдите в свой аккаунт", "username": "Имя пользователя", "password": "Пароль", "signIn": "Войти", "signingIn": "Вход...", "or": "или", "ssoButton": "Войти через SSO (OIDC)", "loginFailed": "Ошибка входа", "networkError": "Ошибка сети" };
|
||||
const proxies = { "title": "Прокси", "create": "Создать прокси", "noProxies": "Прокси ещё не настроены.", "noProxiesDesc": "Создайте автономный прокси или разверните проект, чтобы увидеть прокси здесь.", "standalone": "Автономные прокси", "managed": "Управляемые", "lastChecked": "Последняя проверка", "health": { "healthy": "Работает", "unhealthy": "Недоступен", "unknown": "Неизвестно" }, "filter": { "search": "Поиск прокси...", "health": "Здоровье", "type": "Тип", "all": "Все", "clear": "Сбросить фильтры" }, "form": { "title": "Создать прокси", "editTitle": "Редактировать прокси", "destination": "URL / IP назначения", "port": "Порт", "domain": "Домен", "domainHelp": "Публичный домен для этого прокси.", "validate": "Проверить", "validating": "Проверка...", "create": "Создать прокси", "save": "Сохранить изменения", "cancel": "Отмена", "delete": "Удалить", "deleteConfirm": "Удалить этот прокси? Это действие необратимо." }, "validation": { "title": "Проверка назначения", "syntax": "Синтаксис URL", "dns": "DNS разрешение", "tcp": "TCP подключение", "http": "HTTP ответ", "checking": "Проверка...", "skipped": "Пропущено" } };
|
||||
const common = { "cancel": "Отмена", "confirm": "Подтвердить", "delete": "Удалить", "edit": "Изменить", "save": "Сохранить", "retry": "Повторить", "loading": "Загрузка...", "noData": "Нет данных", "project": "Проект", "back": "Назад", "actions": "Действия", "stop": "Остановить", "start": "Запустить", "restart": "Перезапустить", "remove": "Удалить", "instance": "экземпляр", "instances": "экземпляров" };
|
||||
const instance = { "stopConfirm": "Контейнер будет остановлен. Экземпляр можно будет запустить снова позже.", "restartConfirm": "Контейнер будет перезапущен с кратковременным простоем.", "removeConfirm": "Контейнер и его прокси-конфигурация будут безвозвратно удалены.", "actionFailed": "Действие не удалось" };
|
||||
const empty = { "noProjects": "Проектов пока нет", "noProjectsDesc": "Начните с создания первого проекта или используйте быстрый деплой.", "createProject": "Создать проект", "noInstances": "Нет экземпляров", "noInstancesDesc": "Разверните новую версию, чтобы увидеть экземпляры здесь.", "noDeploys": "Нет истории деплоев", "noDeploysDesc": "История деплоев появится здесь после первого развёртывания.", "noRegistries": "Нет реестров", "noRegistriesDesc": "Добавьте реестр контейнеров для обнаружения образов.", "noVolumes": "Нет томов", "noVolumesDesc": "Настройте монтирование томов для постоянных данных.", "noUsers": "Нет пользователей", "noUsersDesc": "Добавьте локальных пользователей для управления доступом." };
|
||||
const validation = { "required": "Поле {field} обязательно", "invalidUrl": "Неверный формат URL", "invalidDomain": "Неверный формат домена", "invalidIp": "Неверный формат IP", "invalidEmail": "Неверный формат email", "invalidPort": "Порт должен быть от 1 до 65535", "invalidPollingInterval": "Интервал опроса должен быть от 10 до 86400 секунд", "invalidProjectName": "Допускаются только строчные буквы, цифры и дефисы", "requiredWhenUpdating": "Поле {field} обязательно при обновлении учётных данных", "requiredForNew": "Поле {field} обязательно для новых реестров" };
|
||||
const confirm = { "stopInstance": "Остановить экземпляр", "startInstance": "Запустить экземпляр", "restartInstance": "Перезапустить экземпляр", "removeInstance": "Удалить экземпляр" };
|
||||
const theme = { "light": "Светлая", "dark": "Тёмная", "system": "Системная" };
|
||||
const entityPicker = { "search": "Поиск...", "noResults": "Ничего не найдено" };
|
||||
const stale = { "title": "Устаревшие контейнеры", "noStale": "Нет устаревших контейнеров", "noStaleDesc": "Все контейнеры исправны и работают.", "cleanup": "Очистить", "cleanupAll": "Очистить все", "confirmCleanup": "Это остановит и удалит контейнер. Продолжить?", "confirmBulkCleanup": "Это остановит и удалит все устаревшие контейнеры. Продолжить?", "daysStale": "дней устарел", "lastAlive": "Последний раз жив", "count": "Устаревшие", "cleanedUp": "Контейнер очищен", "bulkCleanedUp": "{count} контейнеров очищено", "cleanupFailed": "Не удалось очистить", "loadFailed": "Не удалось загрузить устаревшие контейнеры" };
|
||||
const events = { "title": "Журнал событий", "noEvents": "Событий не найдено", "noEventsDesc": "События будут отображаться здесь по мере их возникновения.", "loadMore": "Загрузить ещё", "newEvents": "новых событий", "filter": { "severity": "Уровень", "source": "Источник", "dateRange": "Период", "search": "Поиск событий...", "lastHour": "Последний час", "last24h": "Последние 24 часа", "last7d": "Последние 7 дней", "allTime": "За всё время", "clear": "Сбросить фильтры" }, "severity": { "info": "Инфо", "warn": "Предупреждение", "error": "Ошибка" }, "source": { "deploy": "Развёртывание", "container": "Контейнер", "proxy": "Прокси", "system": "Система" }, "metadata": "Подробности" };
|
||||
const stats = { "cpu": "ЦП", "mem": "ОЗУ", "unavailable": "Статистика недоступна" };
|
||||
const systemHealth = { "title": "Состояние системы", "containers": "Контейнеры", "proxies": "Прокси", "recentErrors": "Недавние ошибки" };
|
||||
const language = { "en": "Английский", "ru": "Русский" };
|
||||
const ru = {
|
||||
app,
|
||||
health,
|
||||
nav,
|
||||
dashboard,
|
||||
projects,
|
||||
projectDetail,
|
||||
envEditor,
|
||||
volumeEditor,
|
||||
volumeBrowser,
|
||||
quickDeploy,
|
||||
settings,
|
||||
settingsGeneral,
|
||||
settingsRegistries,
|
||||
settingsCredentials,
|
||||
settingsAuth,
|
||||
login,
|
||||
proxies,
|
||||
common,
|
||||
instance,
|
||||
empty,
|
||||
validation,
|
||||
confirm,
|
||||
theme,
|
||||
entityPicker,
|
||||
stale,
|
||||
events,
|
||||
stats,
|
||||
systemHealth,
|
||||
language
|
||||
};
|
||||
const LOCALE_KEY = "dw_locale";
|
||||
const translations = { en, ru };
|
||||
function getInitialLocale() {
|
||||
if (typeof localStorage !== "undefined") {
|
||||
const stored = localStorage.getItem(LOCALE_KEY);
|
||||
if (stored === "en" || stored === "ru") return stored;
|
||||
}
|
||||
if (typeof navigator !== "undefined") {
|
||||
const lang = navigator.language.toLowerCase();
|
||||
if (lang.startsWith("ru")) return "ru";
|
||||
}
|
||||
return "en";
|
||||
}
|
||||
const locale = writable(getInitialLocale());
|
||||
locale.subscribe((value) => {
|
||||
if (typeof localStorage !== "undefined") {
|
||||
localStorage.setItem(LOCALE_KEY, value);
|
||||
}
|
||||
});
|
||||
function getNestedValue(obj, path) {
|
||||
const parts = path.split(".");
|
||||
let current = obj;
|
||||
for (const part of parts) {
|
||||
if (current === null || current === void 0 || typeof current !== "object") {
|
||||
return path;
|
||||
}
|
||||
current = current[part];
|
||||
}
|
||||
return typeof current === "string" ? current : path;
|
||||
}
|
||||
const t = derived(locale, ($locale) => {
|
||||
const dict = translations[$locale] ?? translations.en;
|
||||
return (key, params) => {
|
||||
let result = getNestedValue(dict, key);
|
||||
if (result === key) {
|
||||
result = getNestedValue(translations.en, key);
|
||||
}
|
||||
if (params) {
|
||||
for (const [paramKey, paramValue] of Object.entries(params)) {
|
||||
result = result.replace(new RegExp(`\\{${paramKey}\\}`, "g"), paramValue);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
});
|
||||
const availableLocales = ["en", "ru"];
|
||||
export {
|
||||
availableLocales as a,
|
||||
locale as l,
|
||||
t
|
||||
};
|
||||
@@ -0,0 +1,113 @@
|
||||
import { n as noop, m as safe_not_equal, o as subscribe_to_store, r as run_all } from "./index.js";
|
||||
const subscriber_queue = [];
|
||||
function readable(value, start) {
|
||||
return {
|
||||
subscribe: writable(value, start).subscribe
|
||||
};
|
||||
}
|
||||
function writable(value, start = noop) {
|
||||
let stop = null;
|
||||
const subscribers = /* @__PURE__ */ new Set();
|
||||
function set(new_value) {
|
||||
if (safe_not_equal(value, new_value)) {
|
||||
value = new_value;
|
||||
if (stop) {
|
||||
const run_queue = !subscriber_queue.length;
|
||||
for (const subscriber of subscribers) {
|
||||
subscriber[1]();
|
||||
subscriber_queue.push(subscriber, value);
|
||||
}
|
||||
if (run_queue) {
|
||||
for (let i = 0; i < subscriber_queue.length; i += 2) {
|
||||
subscriber_queue[i][0](subscriber_queue[i + 1]);
|
||||
}
|
||||
subscriber_queue.length = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function update(fn) {
|
||||
set(fn(
|
||||
/** @type {T} */
|
||||
value
|
||||
));
|
||||
}
|
||||
function subscribe(run, invalidate = noop) {
|
||||
const subscriber = [run, invalidate];
|
||||
subscribers.add(subscriber);
|
||||
if (subscribers.size === 1) {
|
||||
stop = start(set, update) || noop;
|
||||
}
|
||||
run(
|
||||
/** @type {T} */
|
||||
value
|
||||
);
|
||||
return () => {
|
||||
subscribers.delete(subscriber);
|
||||
if (subscribers.size === 0 && stop) {
|
||||
stop();
|
||||
stop = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
return { set, update, subscribe };
|
||||
}
|
||||
function derived(stores, fn, initial_value) {
|
||||
const single = !Array.isArray(stores);
|
||||
const stores_array = single ? [stores] : stores;
|
||||
if (!stores_array.every(Boolean)) {
|
||||
throw new Error("derived() expects stores as input, got a falsy value");
|
||||
}
|
||||
const auto = fn.length < 2;
|
||||
return readable(initial_value, (set, update) => {
|
||||
let started = false;
|
||||
const values = [];
|
||||
let pending = 0;
|
||||
let cleanup = noop;
|
||||
const sync = () => {
|
||||
if (pending) {
|
||||
return;
|
||||
}
|
||||
cleanup();
|
||||
const result = fn(single ? values[0] : values, set, update);
|
||||
if (auto) {
|
||||
set(result);
|
||||
} else {
|
||||
cleanup = typeof result === "function" ? result : noop;
|
||||
}
|
||||
};
|
||||
const unsubscribers = stores_array.map(
|
||||
(store, i) => subscribe_to_store(
|
||||
store,
|
||||
(value) => {
|
||||
values[i] = value;
|
||||
pending &= ~(1 << i);
|
||||
if (started) {
|
||||
sync();
|
||||
}
|
||||
},
|
||||
() => {
|
||||
pending |= 1 << i;
|
||||
}
|
||||
)
|
||||
);
|
||||
started = true;
|
||||
sync();
|
||||
return function stop() {
|
||||
run_all(unsubscribers);
|
||||
cleanup();
|
||||
started = false;
|
||||
};
|
||||
});
|
||||
}
|
||||
function get(store) {
|
||||
let value;
|
||||
subscribe_to_store(store, (_) => value = _)();
|
||||
return value;
|
||||
}
|
||||
export {
|
||||
derived as d,
|
||||
get as g,
|
||||
readable as r,
|
||||
writable as w
|
||||
};
|
||||
@@ -0,0 +1,134 @@
|
||||
import { r as root } from "./root.js";
|
||||
import "./environment.js";
|
||||
let public_env = {};
|
||||
function set_private_env(environment) {
|
||||
}
|
||||
function set_public_env(environment) {
|
||||
public_env = environment;
|
||||
}
|
||||
let read_implementation = null;
|
||||
function set_read_implementation(fn) {
|
||||
read_implementation = fn;
|
||||
}
|
||||
function set_manifest(_) {
|
||||
}
|
||||
const options = {
|
||||
app_template_contains_nonce: false,
|
||||
async: false,
|
||||
csp: { "mode": "auto", "directives": { "upgrade-insecure-requests": false, "block-all-mixed-content": false }, "reportOnly": { "upgrade-insecure-requests": false, "block-all-mixed-content": false } },
|
||||
csrf_check_origin: true,
|
||||
csrf_trusted_origins: [],
|
||||
embedded: false,
|
||||
env_public_prefix: "PUBLIC_",
|
||||
env_private_prefix: "",
|
||||
hash_routing: false,
|
||||
hooks: null,
|
||||
// added lazily, via `get_hooks`
|
||||
preload_strategy: "modulepreload",
|
||||
root,
|
||||
service_worker: false,
|
||||
service_worker_options: void 0,
|
||||
server_error_boundaries: false,
|
||||
templates: {
|
||||
app: ({ head, body, assets, nonce, env }) => '<!doctype html>\r\n<html lang="en">\r\n <head>\r\n <meta charset="utf-8" />\r\n <link rel="icon" href="' + assets + '/favicon.png" />\r\n <meta name="viewport" content="width=device-width, initial-scale=1" />\r\n ' + head + '\r\n </head>\r\n <body data-sveltekit-preload-data="hover">\r\n <div style="display: contents">' + body + "</div>\r\n </body>\r\n</html>\r\n",
|
||||
error: ({ status, message }) => '<!doctype html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <title>' + message + `</title>
|
||||
|
||||
<style>
|
||||
body {
|
||||
--bg: white;
|
||||
--fg: #222;
|
||||
--divider: #ccc;
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
font-family:
|
||||
system-ui,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
'Segoe UI',
|
||||
Roboto,
|
||||
Oxygen,
|
||||
Ubuntu,
|
||||
Cantarell,
|
||||
'Open Sans',
|
||||
'Helvetica Neue',
|
||||
sans-serif;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.error {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
max-width: 32rem;
|
||||
margin: 0 1rem;
|
||||
}
|
||||
|
||||
.status {
|
||||
font-weight: 200;
|
||||
font-size: 3rem;
|
||||
line-height: 1;
|
||||
position: relative;
|
||||
top: -0.05rem;
|
||||
}
|
||||
|
||||
.message {
|
||||
border-left: 1px solid var(--divider);
|
||||
padding: 0 0 0 1rem;
|
||||
margin: 0 0 0 1rem;
|
||||
min-height: 2.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.message h1 {
|
||||
font-weight: 400;
|
||||
font-size: 1em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
--bg: #222;
|
||||
--fg: #ddd;
|
||||
--divider: #666;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error">
|
||||
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
||||
},
|
||||
version_hash: "m287x4"
|
||||
};
|
||||
async function get_hooks() {
|
||||
let handle;
|
||||
let handleFetch;
|
||||
let handleError;
|
||||
let handleValidationError;
|
||||
let init;
|
||||
let reroute;
|
||||
let transport;
|
||||
return {
|
||||
handle,
|
||||
handleFetch,
|
||||
handleError,
|
||||
handleValidationError,
|
||||
init,
|
||||
reroute,
|
||||
transport
|
||||
};
|
||||
}
|
||||
export {
|
||||
set_public_env as a,
|
||||
set_read_implementation as b,
|
||||
set_manifest as c,
|
||||
get_hooks as g,
|
||||
options as o,
|
||||
public_env as p,
|
||||
read_implementation as r,
|
||||
set_private_env as s
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user