fundus 0.8.1 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -1
- package/build/client/_app/immutable/chunks/-scmOfVp.js +108 -0
- package/build/client/_app/immutable/chunks/-scmOfVp.js.br +0 -0
- package/build/client/_app/immutable/chunks/-scmOfVp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CR57Sg4T.js → BFccgFID.js} +1 -1
- package/build/client/_app/immutable/chunks/BFccgFID.js.br +1 -0
- package/build/client/_app/immutable/chunks/BFccgFID.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BVDR6adL.js → C3HGm51f.js} +1 -1
- package/build/client/_app/immutable/chunks/C3HGm51f.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3HGm51f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{4FCfXqUa.js → C7OUKWnm.js} +1 -1
- package/build/client/_app/immutable/chunks/C7OUKWnm.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7OUKWnm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRjIin01.js +1 -0
- package/build/client/_app/immutable/chunks/DRjIin01.js.br +0 -0
- package/build/client/_app/immutable/chunks/DRjIin01.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CSexy1XT.js → app.SxIeroQ7.js} +2 -2
- package/build/client/_app/immutable/entry/app.SxIeroQ7.js.br +0 -0
- package/build/client/_app/immutable/entry/app.SxIeroQ7.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BLJzoe4Q.js +1 -0
- package/build/client/_app/immutable/entry/start.BLJzoe4Q.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BLJzoe4Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.LlWNlHiN.js → 0.ZD2ILzva.js} +1 -1
- package/build/client/_app/immutable/nodes/0.ZD2ILzva.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.ZD2ILzva.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Cy77v3MJ.js → 1.DwuNSOrz.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DwuNSOrz.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.DwuNSOrz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.B8-P1xm5.js → 2.Dq9XLv2P.js} +1 -1
- package/build/client/_app/immutable/nodes/2.Dq9XLv2P.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Dq9XLv2P.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3._kFEQXPD.js +1 -0
- package/build/client/_app/immutable/nodes/3._kFEQXPD.js.br +0 -0
- package/build/client/_app/immutable/nodes/3._kFEQXPD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.CZfY6lXC.js → 4.B6dS2ueh.js} +1 -1
- package/build/client/_app/immutable/nodes/4.B6dS2ueh.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B6dS2ueh.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/{context.js-CPdlcRhV.js → context.js-mXbNUDBD.js} +13 -6
- package/build/server/chunks/chunks/context.js-mXbNUDBD.js.map +1 -0
- package/build/server/chunks/chunks/{contract.js-nwG99Zzj.js → contract.js-BCXeXDmU.js} +29 -13
- package/build/server/chunks/chunks/contract.js-BCXeXDmU.js.map +1 -0
- package/build/server/chunks/chunks/{core.js-DNIuZ9y-.js → core.js-Cj7hjmtV.js} +49 -2
- package/build/server/chunks/chunks/core.js-Cj7hjmtV.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-DTz2RvK4.js → exports.js-xvDCCOrG.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-DTz2RvK4.js.map → exports.js-xvDCCOrG.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-DmUA2gRk.js → http.js-BHghHRmI.js} +2 -2
- package/build/server/chunks/chunks/{http.js-DmUA2gRk.js.map → http.js-BHghHRmI.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-BVOitVDG.js → internal.js-Dqy56Bi9.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-BVOitVDG.js.map → internal.js-Dqy56Bi9.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{manifest-membership.js-CJnQXrL4.js → manifest-membership.js-vIb-KkQi.js} +2 -2
- package/build/server/chunks/chunks/{manifest-membership.js-CJnQXrL4.js.map → manifest-membership.js-vIb-KkQi.js.map} +1 -1
- package/build/server/chunks/chunks/{raw-reconciliation.js-_D9lZ_sc.js → raw-reconciliation.js-CeIOAYCA.js} +3 -3
- package/build/server/chunks/chunks/raw-reconciliation.js-CeIOAYCA.js.map +1 -0
- package/build/server/chunks/chunks/{raw-reconciliation2.js-C2No1QIL.js → raw-reconciliation2.js-5mUCDiJk.js} +2 -2
- package/build/server/chunks/chunks/{raw-reconciliation2.js-C2No1QIL.js.map → raw-reconciliation2.js-5mUCDiJk.js.map} +1 -1
- package/build/server/chunks/chunks/{shared.js-CkgrfauU.js → shared.js-CHSvdnOT.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-CkgrfauU.js.map → shared.js-CHSvdnOT.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CWlaCLgA.js → utils.js-Chb8lDKD.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CWlaCLgA.js.map → utils.js-Chb8lDKD.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-wQD5tBuh.js → _server.ts.js-CN1hcfLb.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-wQD5tBuh.js.map → _server.ts.js-CN1hcfLb.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-CLCx81uK.js → _server.ts.js-D_LU4nrh.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-CLCx81uK.js.map → _server.ts.js-D_LU4nrh.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DkvELcZA.js → _server.ts.js-BY9NgKmC.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DkvELcZA.js.map → _server.ts.js-BY9NgKmC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CCNcWQxH.js → _server.ts.js-D2uPmOzD.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CCNcWQxH.js.map → _server.ts.js-D2uPmOzD.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DUK4Rnpu.js → _server.ts.js-CCsQkuSA.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DUK4Rnpu.js.map → _server.ts.js-CCsQkuSA.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DNgHnoga.js → _server.ts.js-CFVRCJTe.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DNgHnoga.js.map → _server.ts.js-CFVRCJTe.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-gdXko55o.js → _server.ts.js-DTDSQlpi.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-gdXko55o.js.map → _server.ts.js-DTDSQlpi.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DcsBk_jx.js → _server.ts.js-DrunH7kn.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DcsBk_jx.js.map → _server.ts.js-DrunH7kn.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-BhTg6GgC.js → _server.ts.js-jskTD8nZ.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-BhTg6GgC.js.map → _server.ts.js-jskTD8nZ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CKjnRFXQ.js → _server.ts.js-DEXkS6pQ.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CKjnRFXQ.js.map → _server.ts.js-DEXkS6pQ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-C9rdzmoj.js → _server.ts.js-baLtBCf4.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-C9rdzmoj.js.map → _server.ts.js-baLtBCf4.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BdZb4d69.js → _server.ts.js-1Cx7sbfQ.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BdZb4d69.js.map → _server.ts.js-1Cx7sbfQ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-DaTgBGGt.js → _server.ts.js-Xc7glEPl.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-DaTgBGGt.js.map → _server.ts.js-Xc7glEPl.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-Btohjiz4.js → _server.ts.js-C7IxpaSj.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-Btohjiz4.js.map → _server.ts.js-C7IxpaSj.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-D0alWeVb.js → _server.ts.js-DLZkdOrS.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-D0alWeVb.js.map → _server.ts.js-DLZkdOrS.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-CRNi0bmU.js → _server.ts.js-CSS2DDb1.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-CRNi0bmU.js.map → _server.ts.js-CSS2DDb1.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-B6C1DDpq.js → _server.ts.js-CrXh2YL-.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-B6C1DDpq.js.map → _server.ts.js-CrXh2YL-.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-qPKxHQ-e.js → _server.ts.js-yT-0jHAT.js} +7 -7
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-qPKxHQ-e.js.map → _server.ts.js-yT-0jHAT.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BjioCWTI.js → _server.ts.js-DTZAlq3j.js} +6 -6
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BjioCWTI.js.map → _server.ts.js-DTZAlq3j.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BzUFg_ur.js → _server.ts.js-Cux6Dnfu.js} +7 -7
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BzUFg_ur.js.map → _server.ts.js-Cux6Dnfu.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CrjUXxJT.js → _server.ts.js-BjcPFOHi.js} +7 -7
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CrjUXxJT.js.map → _server.ts.js-BjcPFOHi.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-DQ8kZ3N2.js → hooks.server.js-e6ugpMpo.js} +6 -6
- package/build/server/chunks/entries/{hooks.server.js-DQ8kZ3N2.js.map → hooks.server.js-e6ugpMpo.js.map} +1 -1
- package/build/server/chunks/{handler-DRroBRnU.js → handler-BT9ZZoXM.js} +5 -5
- package/build/server/chunks/{handler-DRroBRnU.js.map → handler-BT9ZZoXM.js.map} +1 -1
- package/build/server/chunks/{index.js-C_qwAlbJ.js → index.js-Cvg0bLxz.js} +5 -5
- package/build/server/chunks/{index.js-C_qwAlbJ.js.map → index.js-Cvg0bLxz.js.map} +1 -1
- package/build/server/chunks/{manifest.js-BWmxuuCT.js → manifest.js-CtTOK1ZJ.js} +28 -28
- package/build/server/chunks/{manifest.js-BWmxuuCT.js.map → manifest.js-CtTOK1ZJ.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-C74eSHmO.js → 0.js-CyEDHDwU.js} +2 -2
- package/build/server/chunks/nodes/{0.js-C74eSHmO.js.map → 0.js-CyEDHDwU.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-Cv0zPe22.js +7 -0
- package/build/server/chunks/nodes/{1.js-DHY2r932.js.map → 1.js-Cv0zPe22.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-CAIMXiqt.js +7 -0
- package/build/server/chunks/nodes/{2.js-gL66W1JX.js.map → 2.js-CAIMXiqt.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-CFifsujw.js +7 -0
- package/build/server/chunks/nodes/{3.js-C3k7u81h.js.map → 3.js-CFifsujw.js.map} +1 -1
- package/build/server/chunks/nodes/4.js-BS8_mlOS.js +7 -0
- package/build/server/chunks/nodes/{4.js-4hPICDsb.js.map → 4.js-BS8_mlOS.js.map} +1 -1
- package/dist/core/api-types.d.ts +7 -0
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js +1 -1
- package/dist/core/plugins/video.d.ts +38 -3
- package/dist/core/plugins/video.js +62 -0
- package/dist/runtime/chroma-key-gl.d.ts +2 -0
- package/dist/runtime/chroma-key-gl.js +6 -0
- package/dist/runtime/chroma-key-video-lifecycle.d.ts +22 -0
- package/dist/runtime/chroma-key-video-lifecycle.js +326 -0
- package/dist/runtime/components/ChromaKeyVideo.svelte +35 -127
- package/dist/server/config-loader.d.ts +2 -2
- package/dist/server/operations.js +6 -1
- package/dist/server/plugins/chroma-key-video.d.ts +2 -2
- package/dist/server/plugins/chroma-key-video.js +5 -4
- package/dist/server/plugins/contract.d.ts +3 -1
- package/dist/server/plugins/video.d.ts +4 -2
- package/dist/server/plugins/video.js +10 -2
- package/dist/server/processing/video-processing.d.ts +3 -3
- package/dist/server/processing/video-processing.js +19 -7
- package/package.json +1 -1
- package/build/client/_app/immutable/chunks/4FCfXqUa.js.br +0 -0
- package/build/client/_app/immutable/chunks/4FCfXqUa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/9BPNAkub.js +0 -108
- package/build/client/_app/immutable/chunks/9BPNAkub.js.br +0 -0
- package/build/client/_app/immutable/chunks/9BPNAkub.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BVDR6adL.js.br +0 -0
- package/build/client/_app/immutable/chunks/BVDR6adL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CR57Sg4T.js.br +0 -1
- package/build/client/_app/immutable/chunks/CR57Sg4T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtnsyoPh.js +0 -1
- package/build/client/_app/immutable/chunks/DtnsyoPh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtnsyoPh.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CSexy1XT.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CSexy1XT.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.QuH89UTo.js +0 -1
- package/build/client/_app/immutable/entry/start.QuH89UTo.js.br +0 -0
- package/build/client/_app/immutable/entry/start.QuH89UTo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.LlWNlHiN.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.LlWNlHiN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Cy77v3MJ.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.Cy77v3MJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B8-P1xm5.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B8-P1xm5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.EQFVTj55.js +0 -1
- package/build/client/_app/immutable/nodes/3.EQFVTj55.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.EQFVTj55.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CZfY6lXC.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CZfY6lXC.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-CPdlcRhV.js.map +0 -1
- package/build/server/chunks/chunks/contract.js-nwG99Zzj.js.map +0 -1
- package/build/server/chunks/chunks/core.js-DNIuZ9y-.js.map +0 -1
- package/build/server/chunks/chunks/raw-reconciliation.js-_D9lZ_sc.js.map +0 -1
- package/build/server/chunks/nodes/1.js-DHY2r932.js +0 -7
- package/build/server/chunks/nodes/2.js-gL66W1JX.js +0 -7
- package/build/server/chunks/nodes/3.js-C3k7u81h.js +0 -7
- package/build/server/chunks/nodes/4.js-4hPICDsb.js +0 -7
package/README.md
CHANGED
|
@@ -11,7 +11,8 @@ slices, video, chroma-key video, and audio into optimized files and generated
|
|
|
11
11
|
TypeScript manifests. One package contains the visual editor, headless CLI,
|
|
12
12
|
Sharp and FFmpeg processing, and Svelte 5 runtime components.
|
|
13
13
|
|
|
14
|
-
Originals stay intact.
|
|
14
|
+
Originals stay intact. Structured presets produce deterministic, git-friendly
|
|
15
|
+
outputs; custom FFmpeg templates control their own reproducibility. No mystery
|
|
15
16
|
CDN, no dashboard account, no `final-final-2x-really-final.png` archaeology.
|
|
16
17
|
|
|
17
18
|
## Why Fundus?
|
|
@@ -102,6 +103,44 @@ Named presets in `fundus.config.ts` keep encoding choices consistent. Each asset
|
|
|
102
103
|
currently produces one processed proxy, which is often exactly what an app wants
|
|
103
104
|
and refreshingly unlike configuring a small television network.
|
|
104
105
|
|
|
106
|
+
Video presets are shared by video and chroma-key video assets. For complete
|
|
107
|
+
control, a preset can provide the full tokenized FFmpeg command instead of the
|
|
108
|
+
structured encoder settings:
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
plugins: {
|
|
112
|
+
video: {
|
|
113
|
+
presets: {
|
|
114
|
+
cropped: {
|
|
115
|
+
container: 'mp4',
|
|
116
|
+
ffmpegArgs: ({ input, output }) => [
|
|
117
|
+
'-i',
|
|
118
|
+
input,
|
|
119
|
+
'-vf',
|
|
120
|
+
'crop=1280:720:0:180',
|
|
121
|
+
'-c:v',
|
|
122
|
+
'libx264',
|
|
123
|
+
'-preset',
|
|
124
|
+
'slow',
|
|
125
|
+
'-crf',
|
|
126
|
+
'28',
|
|
127
|
+
'-pix_fmt',
|
|
128
|
+
'yuv420p',
|
|
129
|
+
'-movflags',
|
|
130
|
+
'+faststart',
|
|
131
|
+
output
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Each array element is one argument. `input` and `output` are opaque path tokens
|
|
140
|
+
that can only be inserted as complete arguments; Fundus replaces them with the
|
|
141
|
+
job paths and adds no encoding or determinism arguments. The editor therefore
|
|
142
|
+
hides `Max width` for these presets.
|
|
143
|
+
|
|
105
144
|
## Editor and CLI
|
|
106
145
|
|
|
107
146
|
Use the editor for visual work: organize assets, author slices and chroma keys,
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,M as u,N as d,O as f,P as p,Q as m,R as h,T as g,V as _,X as v,Y as y,Z as b,_ as x,a as S,at as C,f as w,g as T,h as E,i as D,j as O,k,l as A,m as j,n as M,nt as N,ot as P,p as F,q as I,s as L,tt as R,u as z,v as B,x as V,z as H}from"./NblqapDQ.js";import"./DRjIin01.js";import"./xihTtKlq.js";import{$ as U,A as W,B as ee,C as G,D as K,E as q,F as te,I as ne,L as re,N as J,O as Y,P as ie,S as ae,T as X,W as oe,Y as Z,_ as Q,b as se,f as ce,g as le,h as ue,j as de,l as fe,o as pe,q as me,r as he,rt as ge,t as _e,v as ve,w as ye,x as be,y as xe}from"./C7OUKWnm.js";import{a as $,n as Se,t as Ce}from"./C3HGm51f.js";import{a as we,i as Te,n as Ee,r as De,t as Oe}from"./BD3hQKzV.js";var ke={folder:null,sort:`alphabetical`,type:`all`,manifest:`all`,changes:`all`,query:``,warningsOnly:!1},Ae=[`folder`,`sort`,`type`,`manifest`,`changes`,`q`,`warnings`],je=new Set([`alphabetical`,`type`,`manifest`]),Me=new Set([`all`,`changed`,`new`,`changed-and-new`]);function Ne(e){let t=e.searchParams.get(`sort`),n=e.searchParams.get(`changes`);return{folder:e.searchParams.has(`folder`)?e.searchParams.get(`folder`)??``:null,sort:je.has(t)?t:`alphabetical`,type:e.searchParams.get(`type`)||`all`,manifest:e.searchParams.get(`manifest`)||`all`,changes:Me.has(n)?n:`all`,query:e.searchParams.get(`q`)??``,warningsOnly:e.searchParams.get(`warnings`)===`1`}}function Pe(e,t){let n=new URL(e);for(let e of Ae)n.searchParams.delete(e);return t.folder!==null&&n.searchParams.set(`folder`,t.folder),t.sort!==`alphabetical`&&n.searchParams.set(`sort`,t.sort),t.type!==`all`&&n.searchParams.set(`type`,t.type),t.manifest!==`all`&&n.searchParams.set(`manifest`,t.manifest),t.changes!==`all`&&n.searchParams.set(`changes`,t.changes),t.query.trim()!==``&&n.searchParams.set(`q`,t.query),t.warningsOnly&&n.searchParams.set(`warnings`,`1`),n}function Fe(e,t,n){return e===t?n:{selectedAssetIds:[],lastSelectedAssetId:null}}var Ie=new class{#e=0;begin(){return++this.#e}isCurrent(e){return e===this.#e}};function Le(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var Re=O(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4.5" y="3.5" width="2.5" height="9" fill="currentColor"></rect><rect x="9" y="3.5" width="2.5" height="9" fill="currentColor"></rect></svg>`),ze=O(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M5 3.3v9.4l7-4.7z" fill="currentColor"></path></svg>`),Be=e(`<span class="time svelte-nchstv"> </span> <input class="range scrub svelte-nchstv" type="range" min="0" step="0.01" aria-label="Seek"/> <span class="time svelte-nchstv"> </span>`,1),Ve=e(`<span class="time svelte-nchstv"> </span>`),He=O(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 6l3.5 4M13.5 6 10 10" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),Ue=O(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 5.6a3.4 3.4 0 0 1 0 4.8" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path><path d="M11.8 3.9a6 6 0 0 1 0 8.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),We=e(`<div class="volume-group svelte-nchstv"><button class="btn svelte-nchstv" type="button"><!></button> <input class="range volume svelte-nchstv" type="range" min="0" max="1" step="0.01" aria-label="Volume"/></div>`),Ge=e(`<div><button class="btn svelte-nchstv" type="button"><!></button> <button class="btn svelte-nchstv" type="button" aria-label="Stop"><svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4" y="4" width="8" height="8" rx="1" fill="currentColor"></rect></svg></button> <button type="button" aria-label="Loop"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="svelte-nchstv"><path d="M4.4 4.5H9A3.5 3.5 0 0 1 12.5 8"></path><path d="M2.4 6.4 4.3 4.4 6.3 6.1"></path><path d="M11.6 11.5H7A3.5 3.5 0 0 1 3.5 8"></path><path d="M13.6 9.6 11.7 11.6 9.7 9.9"></path></svg></button> <!> <!></div>`);function Ke(e,t){N(t,!0);let i=D(t,`media`,7),a=D(t,`showScrub`,3,!1),u=D(t,`showVolume`,3,!0),d=b(!1),h=b(0),g=b(0),y=b(!1),S=b(1),C=b(!1),T=b(!1),E=!1,O=null,k=m(()=>Le(s(h))),j=m(()=>Le(s(g))),M=m(()=>s(g)>0),F=m(()=>s(C)?0:s(S));o(()=>{if(!i()){v(d,!1);return}let e=i();v(d,!e.paused),v(h,e.currentTime,!0),v(g,Number.isFinite(e.duration)?e.duration:0,!0),v(y,e.loop,!0),v(S,e.volume,!0),v(C,e.muted,!0);function t(){v(d,!0)}function n(){v(d,!1)}function r(){s(T)||v(h,e.currentTime,!0)}function a(){v(g,Number.isFinite(e.duration)?e.duration:0,!0)}function o(){v(S,e.volume,!0),v(C,e.muted,!0)}return e.addEventListener(`play`,t),e.addEventListener(`playing`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`timeupdate`,r),e.addEventListener(`seeked`,r),e.addEventListener(`loadedmetadata`,a),e.addEventListener(`durationchange`,a),e.addEventListener(`volumechange`,o),()=>{O===e&&(v(T,!1),E=!1,O=null),e.removeEventListener(`play`,t),e.removeEventListener(`playing`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`timeupdate`,r),e.removeEventListener(`seeked`,r),e.removeEventListener(`loadedmetadata`,a),e.removeEventListener(`durationchange`,a),e.removeEventListener(`volumechange`,o)}});function L(){i()&&(i().paused?i().play():i().pause())}function B(){i()&&(i().pause(),i().currentTime=0)}function V(){i()&&(i().loop=!i().loop,v(y,i().loop,!0))}function H(){i()&&(i().muted=!i().muted)}function U(e){if(!i())return;let t=e.currentTarget.valueAsNumber;i().volume=t,i().muted=t===0}function W(){!i()||s(T)||(v(T,!0),E=!i().paused,O=i(),i().pause())}function ee(e){let t=O??i();if(!t)return;let n=e.currentTarget.valueAsNumber;Number.isFinite(t.duration)&&(t.currentTime=n),v(h,n,!0)}function G(){if(!s(T))return;let e=O;v(T,!1),E&&e&&i()===e&&e.play(),E=!1,O=null}o(()=>{if(s(T))return window.addEventListener(`pointerup`,G),window.addEventListener(`pointercancel`,G),()=>{window.removeEventListener(`pointerup`,G),window.removeEventListener(`pointercancel`,G)}});var K=Ge(),q=l(K),te=l(q),ne=e=>{f(e,Re())},re=e=>{f(e,ze())};r(te,e=>{s(d)?e(ne):e(re,-1)}),P(q);var J=c(q,2),Y=c(J,2);let ie;var ae=c(Y,2),X=e=>{var t=Be(),r=I(t),a=l(r,!0);P(r);var o=c(r,2);A(o);var u=c(o,2),d=l(u,!0);P(u),_(()=>{n(a,s(k)),z(o,`max`,s(M)?s(g):0),w(o,s(h)),o.disabled=!i()||!s(M),n(d,s(j))}),p(`pointerdown`,o,W),p(`input`,o,ee),f(e,t)},oe=e=>{var t=Ve(),r=l(t);P(t),_(()=>n(r,`${s(k)??``} / ${s(j)??``}`)),f(e,t)};r(ae,e=>{a()?e(X):s(M)&&e(oe,1)});var Z=c(ae,2),Q=e=>{var t=We(),n=l(t),a=l(n),o=e=>{f(e,He())},u=e=>{f(e,Ue())};r(a,e=>{s(C)||s(S)===0?e(o):e(u,-1)}),P(n);var d=c(n,2);A(d),P(t),_(()=>{n.disabled=!i(),z(n,`aria-label`,s(C)?`Unmute`:`Mute`),w(d,s(F)),d.disabled=!i()}),p(`click`,n,H),p(`input`,d,U),f(e,t)};r(Z,e=>{u()&&e(Q)}),P(K),_(()=>{x(K,1,`playback ${t.class??``??``}`,`svelte-nchstv`),q.disabled=!i(),z(q,`aria-label`,s(d)?`Pause`:`Play`),J.disabled=!i(),ie=x(Y,1,`btn svelte-nchstv`,null,ie,{active:s(y)}),Y.disabled=!i(),z(Y,`aria-pressed`,s(y))}),p(`click`,q,L),p(`click`,J,B),p(`click`,Y,V),f(e,K),R()}d([`click`,`pointerdown`,`input`]);var qe=null;function Je(){return qe||=new AudioContext,qe}var Ye=null;function Xe(e){let t=e.numberOfChannels;if(t===1)return e.getChannelData(0);let n=e.length,r=new Float32Array(n);for(let i=0;i<t;i++){let t=e.getChannelData(i);for(let e=0;e<n;e++)r[e]+=t[e]}for(let e=0;e<n;e++)r[e]/=t;return r}function Ze(e,t){let n=new Float32Array(t),r=new Float32Array(t),i=e.length/t;for(let a=0;a<t;a++){let t=Math.floor(a*i),o=Math.min(e.length,Math.floor((a+1)*i)),s=0,c=0;for(let n=t;n<o;n++){let t=e[n];t<s&&(s=t),t>c&&(c=t)}n[a]=s,r[a]=c}return{min:n,max:r}}function Qe(e,t,n){return Math.min(n,Math.max(t,e))}var $e=e(`<div class="footer svelte-1liihyn"><!></div>`),et=e(`<div><canvas class="wave svelte-1liihyn" role="button" tabindex="0" aria-label="Audio waveform — click or press Enter to play; arrow keys scrub"></canvas> <!></div>`);function tt(e,t){N(t,!0);let n=D(t,`loop`,3,!1),i=D(t,`showControls`,3,!1),a=b(void 0),u=b(null),d=b(!1),m=b(0),h=b(0),g=`idle`,y=null,C=null,w=0,T=1,E=`#0d99ff`,O=`#7a7a7a`,k=`#f24822`,A=0;function j(){if(!s(a))return;let e=getComputedStyle(s(a));E=e.getPropertyValue(`--accent`).trim()||E,O=e.getPropertyValue(`--text-faint`).trim()||O,k=e.getPropertyValue(`--danger`).trim()||k}function M(){if(!s(a))return;let e=s(a).getBoundingClientRect();T=window.devicePixelRatio||1;let t=Math.max(1,Math.round(e.width*T)),n=Math.max(1,Math.round(e.height*T));(s(a).width!==t||s(a).height!==n)&&(s(a).width=t,s(a).height=n,C=null),j()}function F(){if(!s(a))return;let e=s(a).getContext(`2d`);if(!e)return;let t=s(a).width,n=s(a).height,r=n/2;if(e.clearRect(0,0,t,n),g!==`ready`||!y){e.strokeStyle=g===`error`?k:O,e.lineWidth=Math.max(1,T),e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke();return}let i=Math.max(1,Math.floor(t));(!C||w!==i)&&(C=Ze(y,i),w=i);let o=s(h)>0?Qe(s(m)/s(h),0,1):0,c=o*t,l=r*.9,u=t/i;e.lineWidth=1;for(let t=0;t<i;t++){let n=t*u,i=r-C.max[t]*l,a=r-C.min[t]*l;e.strokeStyle=n<=c?E:O,e.beginPath(),e.moveTo(n+.5,Math.min(i,r-.5)),e.lineTo(n+.5,Math.max(a,r+.5)),e.stroke()}o>0&&(e.strokeStyle=E,e.lineWidth=Math.max(1,T),e.beginPath(),e.moveTo(c,0),e.lineTo(c,n),e.stroke())}function I(){A&&=(cancelAnimationFrame(A),0)}function L(){s(u)&&v(m,s(u).currentTime,!0),F(),s(d)&&(A=requestAnimationFrame(L))}async function z(e){g=`loading`,F();try{let n=await(await fetch(e)).arrayBuffer(),r=await Je().decodeAudioData(n);if(e!==t.src)return;y=Xe(r),s(h)||v(h,r.duration,!0),g=`ready`,C=null,F()}catch{if(e!==t.src)return;g=`error`,F()}}function B(e){if(e.preventDefault(),e.stopPropagation(),!s(a)||!s(u))return;let t=s(a).getBoundingClientRect(),n=Qe((e.clientX-t.left)/t.width,0,1),r=s(u).duration;Number.isFinite(r)&&r>0&&(s(u).currentTime=n*r),s(u).play()}function V(){s(u)&&(s(u).paused?s(u).play():s(u).pause())}function U(e){if(s(u)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),V();return}if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=s(u).duration;if(!Number.isFinite(t)||t<=0)return;e.preventDefault();let n=e.key===`ArrowRight`?5:-5;s(u).currentTime=Qe(s(u).currentTime+n,0,t)}}}o(()=>{let e=s(u);e&&(e.loop=n())}),o(()=>{let e=t.src,r=s(a);if(!r)return;g=`idle`,y=null,C=null,w=0,v(m,0),v(h,0),v(d,!1);let i=new Audio(e);i.preload=`metadata`,i.loop=H(()=>n());function o(){Ye&&Ye!==i&&Ye.pause(),Ye=i,v(d,!0),I(),A=requestAnimationFrame(L)}function c(){Ye===i&&(Ye=null),v(d,!1),I(),F()}function l(){Ye===i&&(Ye=null),v(d,!1),I(),F()}function f(){v(m,i.currentTime,!0),s(d)||F()}function p(){Number.isFinite(i.duration)&&v(h,i.duration,!0),F()}i.addEventListener(`play`,o),i.addEventListener(`pause`,c),i.addEventListener(`ended`,l),i.addEventListener(`timeupdate`,f),i.addEventListener(`loadedmetadata`,p),i.addEventListener(`durationchange`,p),i.addEventListener(`seeked`,f),v(u,i,!0);let _=new ResizeObserver(()=>{M(),F()});_.observe(r);let b=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(b.disconnect(),z(e))});return b.observe(r),M(),F(),()=>{I(),_.disconnect(),b.disconnect(),i.removeEventListener(`play`,o),i.removeEventListener(`pause`,c),i.removeEventListener(`ended`,l),i.removeEventListener(`timeupdate`,f),i.removeEventListener(`loadedmetadata`,p),i.removeEventListener(`durationchange`,p),i.removeEventListener(`seeked`,f),i.pause(),Ye===i&&(Ye=null),i.removeAttribute(`src`),i.load(),v(u,null)}});var W=et(),ee=l(W);S(ee,e=>v(a,e),()=>s(a));var G=c(ee,2),K=e=>{var t=$e();Ke(l(t),{get media(){return s(u)}}),P(t),f(e,t)};r(G,e=>{i()&&e(K)}),P(W),_(()=>x(W,1,`audio-waveform ${t.class??``??``}`,`svelte-1liihyn`)),p(`click`,ee,B),p(`keydown`,ee,U),f(e,W),R()}d([`click`,`keydown`]);var nt=e(`<div class="audio-frame svelte-1ww4cvx"><!></div>`),rt=e(`<p class="svelte-1ww4cvx">No proxy yet — add the asset to a manifest to process it.</p>`),it=e(`<div class="stage checkerboard svelte-1ww4cvx"><!></div>`);function at(e,t){N(t,!0);var n=it(),i=l(n),a=e=>{var n=nt();g(l(n),()=>t.asset.proxy.url,e=>{tt(e,{get src(){return t.asset.proxy.url},showControls:!0})}),P(n),f(e,n)},o=e=>{f(e,rt())};r(i,e=>{t.asset.proxy?e(a):e(o,-1)}),P(n),f(e,n),R()}function ot(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function st(e,t){return t.coarse?e*10:t.fine?e*.1:e}function ct(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function lt(e,t){let n=10**t;return Math.round(e*n)/n}function ut(e){let t=st(e.step,e.modifiers),n=lt(e.startValue+e.deltaX*t,ct(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function dt(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function ft(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var pt=e(`<span class="suffix svelte-nhap92" aria-hidden="true"> </span>`),mt=e(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),ht=e(`<span><input class="input svelte-nhap92" type="number"/> <!> <!></span>`);function gt(e,t){N(t,!0);let u=D(t,`step`,3,1),d=D(t,`placeholder`,3,``),h=D(t,`allowNull`,3,!1),g=D(t,`align`,3,`left`),y=b(null),C=b(!1),E=b(null),O=b(null),k=m(()=>s(y)?.activated?s(y).currentValue:t.value),j=m(()=>Math.max(1,s(O)??String(s(k)??d()).length));function M(e){return{coarse:e.shiftKey,fine:e.altKey}}function F(e){e.preventDefault(),dt(e.currentTarget,e),v(y,{pointerId:e.pointerId,startX:e.clientX,startValue:t.value,currentValue:null,activated:!1},!0)}function I(e){if(!s(y)||e.pointerId!==s(y).pointerId)return;let n=e.clientX-s(y).startX;if(!s(y).activated){if(Math.abs(n)<3)return;s(y).activated=!0,document.body.style.cursor=`ew-resize`}let r=ut({startValue:s(y).startValue??t.min??0,deltaX:n,step:u(),modifiers:M(e),min:t.min,max:t.max});r!==s(y).currentValue&&(s(y).currentValue=r,t.onChange?.(r))}function L(e){if(!s(y)||e.pointerId!==s(y).pointerId)return;ft(e.currentTarget,e.pointerId);let n=s(y).activated,r=s(y).startValue,i=s(y).currentValue;if(v(y,null),document.body.style.cursor=``,!n){H();return}let a=ot({startValue:r,scrubbedValue:i,min:t.min});a.commit===void 0?`rollbackTo`in a&&t.onChange?.(a.rollbackTo??null):t.onCommit(a.commit)}function B(){if(!s(y))return;let e=s(y).startValue,n=s(y).activated;v(y,null),document.body.style.cursor=``,n&&t.onChange?.(e)}function V(e){s(y)&&e.key===`Escape`&&(e.preventDefault(),B())}o(()=>()=>{s(y)&&(document.body.style.cursor=``)});function H(){v(C,!0),queueMicrotask(()=>{s(E)?.focus(),s(E)?.select()})}function U(e){let n=e.currentTarget.valueAsNumber;Number.isFinite(n)?t.onCommit(n):t.onCommit(h()?null:t.min??0)}function W(e){v(O,e.currentTarget.value.length,!0)}function ee(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=s(k)===null?``:String(s(k)),e.currentTarget.blur())}var G=ht();i(`keydown`,a,V);let K;var q=l(G);A(q);let te;S(q,e=>v(E,e),()=>s(E));var ne=c(q,2),re=e=>{var r=pt(),i=l(r,!0);P(r),_(()=>n(i,t.suffix)),f(e,r)};r(ne,e=>{t.suffix!==void 0&&e(re)});var J=c(ne,2),Y=e=>{var t=mt();p(`pointerdown`,t,F),p(`pointermove`,t,I),p(`pointerup`,t,L),i(`pointercancel`,t,B),f(e,t)};r(J,e=>{s(C)||e(Y)}),P(G),_(()=>{K=x(G,1,`scrub-number svelte-nhap92`,null,K,{right:g()===`right`,"with-suffix":t.suffix!==void 0}),z(q,`aria-label`,t.ariaLabel),z(q,`min`,t.min),z(q,`max`,t.max),z(q,`step`,u()),z(q,`placeholder`,d()),w(q,s(k)??``),te=T(q,``,te,{width:t.suffix===void 0?void 0:`${s(j)}ch`})}),i(`focus`,q,e=>{v(C,!0),v(O,e.currentTarget.value.length,!0)}),i(`blur`,q,()=>{v(C,!1),v(O,null)}),p(`input`,q,W),p(`change`,q,U),p(`keydown`,q,ee),f(e,G),R()}d([`input`,`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var _t=e(`<span class="caption svelte-368zap"> </span>`),vt=e(`<span class="fill svelte-368zap"></span>`),yt=e(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function bt(e,t){let i=D(t,`step`,3,1),a=D(t,`placeholder`,3,``),o=D(t,`rangeFill`,3,!0),d=m(()=>!o()||t.min===void 0||t.max===void 0||t.value===null||t.max<=t.min?null:Math.max(0,Math.min(100,(t.value-t.min)/(t.max-t.min)*100)));var p=yt(),h=l(p),g=e=>{var r=_t(),i=l(r,!0);P(r),_(()=>n(i,t.caption)),f(e,r)};r(h,e=>{t.caption&&e(g)});var v=c(h,2),y=l(v),b=e=>{var t=vt();_(()=>T(t,`width: ${s(d)??``}%`)),f(e,t)};r(y,e=>{s(d)!==null&&e(b)});var x=c(y,2),S=l(x),C=e=>{var n=k();V(I(n),()=>t.icon),f(e,n)},w=e=>{var r=u();_(()=>n(r,t.label)),f(e,r)};r(S,e=>{t.icon?e(C):e(w,-1)}),P(x),gt(c(x,2),{get value(){return t.value},get min(){return t.min},get max(){return t.max},get step(){return i()},get placeholder(){return a()},get suffix(){return t.suffix},allowNull:!0,get ariaLabel(){return t.label},get onChange(){return t.onChange},get onCommit(){return t.onCommit}}),P(v),P(p),_(()=>z(x,`title`,t.label)),f(e,p)}var xt=e(`<h3 class="svelte-1ol624f"><!></h3>`);function St(e,t){var n=xt();V(l(n),()=>t.children),P(n),f(e,n)}var Ct=e(`<span class="caption svelte-bczi6w"> </span>`),wt=e(`<option> </option>`),Tt=e(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function Et(e,i){N(i,!0);var a=Tt(),o=l(a),s=e=>{var t=Ct(),r=l(t,!0);P(t),_(()=>n(r,i.caption)),f(e,t)};r(o,e=>{i.caption&&e(s)});var d=c(o,2),m=l(d),h=l(m),g=e=>{var t=k();V(I(t),()=>i.icon),f(e,t)},v=e=>{var t=u();_(e=>n(t,e),[()=>i.label.slice(0,1)]),f(e,t)};r(h,e=>{i.icon?e(g):e(v,-1)}),P(m);var y=c(m,2);t(y,20,()=>i.options,e=>e,(e,t)=>{var r=wt(),i=l(r,!0);P(r);var a={};_(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),f(e,r)}),P(y);var b;j(y),P(d),P(a),_(()=>{z(m,`title`,i.label),z(y,`aria-label`,i.label),b!==(b=i.value)&&(y.value=(y.__value=i.value)??``,E(y,i.value))}),p(`change`,y,e=>i.onChange(e.currentTarget.value)),f(e,a),R()}d([`change`]);var Dt=e(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),Ot=e(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),kt=e(`<section class="svelte-m9vwwu"><!> <!></section>`);function At(e,t){N(t,!0);let i=D(t,`showDimensions`,3,!1),a=D(t,`showDuration`,3,!1);var o=kt(),s=l(o);St(s,{children:(e,t)=>{C(),f(e,u(`Output`))},$$slots:{default:!0}});var d=c(s,2),p=e=>{var o=Dt(),s=l(o),d=e=>{var r=u();_(()=>n(r,`${t.proxy.width??``} × ${t.proxy.height??``} px ·`)),f(e,r)};r(s,e=>{i()&&t.proxy.width!==void 0&&t.proxy.height!==void 0&&e(d)});var p=c(s,2),m=e=>{var r=u();_(e=>n(r,`${e??``} ·`),[()=>Te(t.proxy.durationMs)]),f(e,r)};r(p,e=>{a()&&t.proxy.durationMs!==void 0&&e(m)});var h=c(p),g=c(h,3),v=l(g,!0);P(g),P(o),_(e=>{n(h,` ${e??``} `),n(v,t.proxy.fileName)},[()=>De(t.proxy.fileSize)]),f(e,o)},m=e=>{f(e,Ot())};r(d,e=>{t.proxy?e(p):e(m,-1)}),P(o),f(e,o),R()}var jt=e(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function Mt(e,t){N(t,!0);let n=m(()=>ye.validateParameters(t.parameters));function r(e){t.onParametersCommit(e)}function i(e){r({...s(n),preset:e})}function a(e){let{targetWidth:t,...r}=s(n);return e===null||!Number.isFinite(e)||e<=0?r:{...r,targetWidth:Math.round(e)}}function o(e,n){let i=a(e);n?r(i):t.onParametersChange(i)}var d=jt(),p=I(d),h=l(p);St(h,{children:(e,t)=>{C(),f(e,u(`Image`))},$$slots:{default:!0}});var g=c(h,2);Et(l(g),{label:`Preset`,caption:`Preset`,get value(){return s(n).preset},get options(){return t.presetNames},onChange:i,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),P(g);var _=c(g,2),v=l(_);{let e=e=>{$(e,{name:`width`})},t=m(()=>s(n).targetWidth??null);bt(v,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return s(t)},onChange:e=>o(e,!1),onCommit:e=>o(e,!0),icon:e,$$slots:{icon:!0}})}P(_),P(p),At(c(p,2),{get proxy(){return t.asset.proxy},showDimensions:!0}),f(e,d),R()}var Nt=new Set([`image`,`slice`]);new Set([...new Set([`video`,`chroma-key-video`,`audio`])].filter(e=>Q.has(e)));function Pt(e,t){return Nt.has(e)?t[e]?.decode??!0:!1}async function Ft(e){let t=await fetch(e);if(!t.ok)throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function It(e){return{async preload(t,n){if(await(await Ft(t)).arrayBuffer(),Pt(e,n)&&typeof globalThis.Image==`function`){let e=new globalThis.Image;e.src=t,await e.decode()}return{}}}}var Lt={async preload(e){let t=await(await Ft(e)).blob();return typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(t)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}},Rt={image:It(`image`),slice:It(`slice`),video:Lt,"chroma-key-video":Lt,audio:Lt};new Map(Object.entries(Q.project(Rt,`runtime handler`)));var zt=new Map;function Bt(e){return zt.get(e)?.resources?.objectUrl??e}var Vt=e(`<img/>`);function Ht(e,t){N(t,!0);let n=D(t,`alt`,3,``),r=D(t,`class`,3,``);var i=Vt();_(()=>{z(i,`src`,t.src.src),z(i,`width`,t.src.width),z(i,`height`,t.src.height),z(i,`alt`,n()),x(i,1,B(r()))}),f(e,i),R()}function Ut(e,t,n){return Math.max(t,Math.min(n,e))}function Wt(e){let{mode:t,insets:n}=e.slicing,r=G(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function Gt(e){let t=e.slicing.overdraw;if(!t)return se();let n=e.sourceWidth,r=e.sourceHeight,i=Ut(t.left,0,Math.max(0,n-1)),a=Ut(t.right,0,Math.max(0,n-i-1)),o=Ut(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:Ut(t.bottom,0,Math.max(0,r-o-1)),left:i}}function Kt(e){let t=Gt(e);return{width:Math.max(1,e.sourceWidth-t.left-t.right),height:Math.max(1,e.sourceHeight-t.top-t.bottom)}}function qt(e,t,n){let r=Gt(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=Kt(e),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function Jt(e,t,n,r){let i=qt(e,t,n),a=t+i.left+i.right,o=n+i.top+i.bottom;return{cssLeft:-i.left+0,cssTop:-i.top+0,cssWidth:a,cssHeight:o,backingWidth:Math.round(a*r),backingHeight:Math.round(o*r),originX:i.left*r,originY:i.top*r}}function Yt(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function Xt(e,t,n){if(t<=0||n<=0)return[];let r=qt(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=Wt(e),d=Ut(u.left,0,o),f=Ut(u.right,0,Math.max(0,o-d)),p=Ut(u.top,0,s),m=Ut(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=[d,h,f],w=[p,g,m],T=[0,d,d+h],E=[0,p,p+g],D=Yt([_,y,v]),O=Yt([b,S,x]),k=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++){let n=C[t],i=w[e];if(n<=0||i<=0)continue;let a=D[t],o=D[t+1]-a,s=O[e],c=O[e+1]-s;o<=0||c<=0||k.push({key:`${e}-${t}`,sx:T[t],sy:E[e],sw:n,sh:i,dx:a-r.left,dy:s-r.top,dw:o,dh:c})}return k}function Zt(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(Math.round(r?.inlineSize??e.offsetWidth),Math.round(r?.blockSize??e.offsetHeight))});return n.observe(e),()=>n.disconnect()}var Qt=e(`<div class="fundus-slice__cell svelte-1820t2z"><img alt="" draggable="false" class="svelte-1820t2z"/></div>`),$t=e(`<div></div>`);function en(e,n){N(n,!0);let r=D(n,`alt`,3,``),i=D(n,`class`,3,``),a=b(void 0),c=b(0),u=b(0);o(()=>{let e=s(a);if(e)return Zt(e,(e,t)=>{v(c,e,!0),v(u,t,!0)})});let d=m(()=>Xt(n.src,s(c),s(u))),p=m(()=>{let e=Gt(n.src);return e.top>0||e.right>0||e.bottom>0||e.left>0});var h=$t();let g;t(h,21,()=>s(d),e=>e.key,(e,t)=>{var r=Qt();let i;var a=l(r);let o;P(r),_(()=>{i=T(r,``,i,{left:`${s(t).dx??``}px`,top:`${s(t).dy??``}px`,width:`${s(t).dw??``}px`,height:`${s(t).dh??``}px`}),z(a,`src`,n.src.src),o=T(a,``,o,{width:`${n.src.sourceWidth/s(t).sw*100}%`,height:`${n.src.sourceHeight/s(t).sh*100}%`,left:`${-s(t).sx/s(t).sw*100}%`,top:`${-s(t).sy/s(t).sh*100}%`})}),f(e,r)}),P(h),S(h,e=>v(a,e),()=>s(a)),_(()=>{g=x(h,1,`fundus-slice ${i()??``}`,`svelte-1820t2z`,g,{"fundus-slice--overdraw":s(p)}),z(h,`role`,r()?`img`:void 0),z(h,`aria-label`,r()||void 0)}),f(e,h),R()}var tn=e(`<div><canvas class="svelte-xdsbrz"></canvas></div>`);function nn(e,t){N(t,!0);let n=D(t,`alt`,3,``),r=D(t,`class`,3,``),c=b(void 0),u=b(void 0),d=b(void 0),p=b(0),h=b(0),g=b(1),y=b(0);o(()=>{let e=t.src.src,n=new Image,r=!1;return n.onload=()=>{r||v(d,n,!0)},n.src=e,()=>{r=!0,n.onload=null}}),o(()=>{let e=s(g),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{v(g,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),o(()=>{let e=s(c);if(e)return Zt(e,(e,t)=>{v(p,e,!0),v(h,t,!0)})});let C=m(()=>Jt(t.src,s(p),s(h),s(g)));o(()=>{s(d),t.src,s(C),s(y),w()});function w(){let e=s(u),n=s(d);if(!e||!n)return;if(s(p)===0||s(h)===0){e.width=0,e.height=0;return}e.width=s(C).backingWidth,e.height=s(C).backingHeight;let r=e.getContext(`2d`);if(r){r.setTransform(s(g),0,0,s(g),s(C).originX,s(C).originY),r.clearRect(s(C).cssLeft,s(C).cssTop,s(C).cssWidth,s(C).cssHeight);for(let e of Xt(t.src,s(p),s(h)))r.drawImage(n,e.sx,e.sy,e.sw,e.sh,e.dx,e.dy,e.dw,e.dh)}}var E=tn();i(`resize`,a,()=>v(y,s(y)+1));var O=l(E);let k;S(O,e=>v(u,e),()=>s(u)),P(E),S(E,e=>v(c,e),()=>s(c)),_(()=>{x(E,1,`fundus-slice-canvas ${r()??``}`,`svelte-xdsbrz`),z(E,`role`,n()?`img`:void 0),z(E,`aria-label`,n()||void 0),k=T(O,``,k,{left:`${s(C).cssLeft??``}px`,top:`${s(C).cssTop??``}px`,width:`${s(C).cssWidth??``}px`,height:`${s(C).cssHeight??``}px`})}),f(e,E),R()}function rn(e,t){let n=D(t,`backend`,3,`dom`),i=D(t,`alt`,3,``),a=D(t,`class`,3,``);var o=k(),s=I(o),c=e=>{nn(e,{get src(){return t.src},get alt(){return i()},get class(){return a()}})},l=e=>{en(e,{get src(){return t.src},get alt(){return i()},get class(){return a()}})};r(s,e=>{n()===`canvas`?e(c):e(l,-1)}),f(e,o)}var an=e(`<video playsinline="" preload="auto"></video>`,2);function on(e,t){N(t,!0);let n=D(t,`loop`,3,!1),r=D(t,`playing`,3,!0),i=D(t,`muted`,3,!0),a=D(t,`controls`,3,!1),c=D(t,`videoElement`,15),l=D(t,`class`,3,``),u=m(()=>Bt(t.src.src));o(()=>{let e=c();e&&(r()?e.play().catch(()=>{}):e.pause())});var d=an();S(d,e=>c(e),()=>c()),_(()=>{z(d,`src`,s(u)),z(d,`width`,t.src.width),z(d,`height`,t.src.height),d.loop=n(),d.muted=i(),d.controls=a(),x(d,1,B(l()))}),f(e,d),R()}var sn=`#version 300 es
|
|
2
|
+
in vec2 a_pos;
|
|
3
|
+
out vec2 v_uv;
|
|
4
|
+
void main() {
|
|
5
|
+
// Fullscreen clip-space triangle pair; v flipped so the video isn't mirrored on Y
|
|
6
|
+
// (GL texture rows are bottom-up, and flipping here beats a per-frame UNPACK flip).
|
|
7
|
+
v_uv = vec2(a_pos.x * 0.5 + 0.5, 0.5 - a_pos.y * 0.5);
|
|
8
|
+
gl_Position = vec4(a_pos, 0.0, 1.0);
|
|
9
|
+
}`,cn=`#version 300 es
|
|
10
|
+
precision highp float;
|
|
11
|
+
|
|
12
|
+
in vec2 v_uv;
|
|
13
|
+
out vec4 fragColor;
|
|
14
|
+
|
|
15
|
+
uniform sampler2D u_texture;
|
|
16
|
+
uniform sampler2D u_mask;
|
|
17
|
+
uniform vec2 u_texelSize;
|
|
18
|
+
uniform vec3 u_keyColor;
|
|
19
|
+
uniform vec4 u_tintColor;
|
|
20
|
+
uniform float u_colorCutoff;
|
|
21
|
+
uniform float u_colorFeathering;
|
|
22
|
+
uniform float u_maskFeathering;
|
|
23
|
+
uniform float u_sharpening;
|
|
24
|
+
uniform float u_despill;
|
|
25
|
+
uniform float u_despillLuminanceAdd;
|
|
26
|
+
|
|
27
|
+
float rgb2y(vec3 c) {
|
|
28
|
+
return 0.299 * c.r + 0.587 * c.g + 0.114 * c.b;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
float rgb2cb(vec3 c) {
|
|
32
|
+
return 0.5 - 0.168736 * c.r - 0.331264 * c.g + 0.5 * c.b;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
float rgb2cr(vec3 c) {
|
|
36
|
+
return 0.5 + 0.5 * c.r - 0.418688 * c.g - 0.081312 * c.b;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
float colorclose(float Cb_p, float Cr_p, float Cb_key, float Cr_key, float tola, float tolb) {
|
|
40
|
+
float temp = (Cb_key - Cb_p) * (Cb_key - Cb_p) + (Cr_key - Cr_p) * (Cr_key - Cr_p);
|
|
41
|
+
float tola2 = tola * tola;
|
|
42
|
+
float tolb2 = tolb * tolb;
|
|
43
|
+
if (temp < tola2) return 0.0;
|
|
44
|
+
if (temp < tolb2) return (temp - tola2) / (tolb2 - tola2);
|
|
45
|
+
return 1.0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
float maskedTex2D(sampler2D tex, vec2 uv) {
|
|
49
|
+
vec4 color = texture(tex, uv);
|
|
50
|
+
|
|
51
|
+
float key_cb = rgb2cb(u_keyColor);
|
|
52
|
+
float key_cr = rgb2cr(u_keyColor);
|
|
53
|
+
float pix_cb = rgb2cb(color.rgb);
|
|
54
|
+
float pix_cr = rgb2cr(color.rgb);
|
|
55
|
+
|
|
56
|
+
return colorclose(pix_cb, pix_cr, key_cb, key_cr, u_colorCutoff, u_colorFeathering);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void main() {
|
|
60
|
+
vec2 pixelWidth = vec2(u_texelSize.x, 0.0);
|
|
61
|
+
vec2 pixelHeight = vec2(0.0, u_texelSize.y);
|
|
62
|
+
|
|
63
|
+
// Unmodified MainTex
|
|
64
|
+
vec4 color = texture(u_texture, v_uv);
|
|
65
|
+
|
|
66
|
+
// Unfeathered mask
|
|
67
|
+
float mask = maskedTex2D(u_texture, v_uv);
|
|
68
|
+
|
|
69
|
+
// Feathering & smoothing
|
|
70
|
+
float c = mask;
|
|
71
|
+
float r = maskedTex2D(u_texture, v_uv + pixelWidth);
|
|
72
|
+
float l = maskedTex2D(u_texture, v_uv - pixelWidth);
|
|
73
|
+
float d = maskedTex2D(u_texture, v_uv + pixelHeight);
|
|
74
|
+
float u = maskedTex2D(u_texture, v_uv - pixelHeight);
|
|
75
|
+
float rd = maskedTex2D(u_texture, v_uv + pixelWidth + pixelHeight) * 0.707;
|
|
76
|
+
float dl = maskedTex2D(u_texture, v_uv - pixelWidth + pixelHeight) * 0.707;
|
|
77
|
+
float lu = maskedTex2D(u_texture, v_uv - pixelHeight - pixelWidth) * 0.707;
|
|
78
|
+
float ur = maskedTex2D(u_texture, v_uv + pixelWidth - pixelHeight) * 0.707;
|
|
79
|
+
float blurContribution = (r + l + d + u + rd + dl + lu + ur + c) * 0.12774655;
|
|
80
|
+
float smoothedMask = smoothstep(u_sharpening, 1.0, mix(c, blurContribution, u_maskFeathering));
|
|
81
|
+
vec4 result = color * smoothedMask;
|
|
82
|
+
|
|
83
|
+
// Despill
|
|
84
|
+
float v = (2.0 * result.b + result.r) / 4.0;
|
|
85
|
+
if (result.g > v) result.g = mix(result.g, v, u_despill);
|
|
86
|
+
vec4 dif = color - result;
|
|
87
|
+
float desaturatedDif = rgb2y(dif.xyz);
|
|
88
|
+
result += mix(0.0, desaturatedDif, u_despillLuminanceAdd);
|
|
89
|
+
|
|
90
|
+
// Fundus mask pass: a grayscale shape mask multiplies
|
|
91
|
+
// the keyed alpha.
|
|
92
|
+
float shapeMask = texture(u_mask, v_uv).r;
|
|
93
|
+
vec4 keyed = vec4(result.xyz, smoothedMask * shapeMask) * u_tintColor;
|
|
94
|
+
|
|
95
|
+
// Premultiplied output: keyed matches the upstream SrcAlpha/OneMinusSrcAlpha
|
|
96
|
+
// blending; multiplying rgb by alpha is that blend's exact premultiplied
|
|
97
|
+
// equivalent. Straight-alpha output (premultipliedAlpha: false) is NOT an option:
|
|
98
|
+
// iOS WKWebView composites the WebGL canvas as premultiplied regardless of the
|
|
99
|
+
// flag, and the despill luminance-add above leaves fully-transparent background
|
|
100
|
+
// pixels with nonzero rgb (the upstream blend ignores rgb
|
|
101
|
+
// at alpha 0) which then composite additively — a visible bright veil over the
|
|
102
|
+
// whole canvas rect on iOS.
|
|
103
|
+
fragColor = vec4(keyed.rgb * keyed.a, keyed.a);
|
|
104
|
+
}`;function ln(e){let t=(t,n)=>{let r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw e.deleteShader(r),Error(`Chroma-key shader compilation failed: ${t}.`)}return r},n=e.createProgram();if(e.attachShader(n,t(e.VERTEX_SHADER,sn)),e.attachShader(n,t(e.FRAGMENT_SHADER,cn)),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS)){let t=e.getProgramInfoLog(n);throw e.deleteProgram(n),Error(`Chroma-key program linking failed: ${t}.`)}return n}var un=class e{#e;#t;#n;#r;#i;#a;#o;#s=null;#c=!1;static create(t){let n=t.getContext(`webgl2`,{premultipliedAlpha:!0,alpha:!0,depth:!1,stencil:!1,antialias:!1});if(!n)return null;try{return new e(n,t)}catch{return null}}constructor(e,t){this.#e=e,this.#t=t,t.addEventListener(`webglcontextlost`,this.#l),t.addEventListener(`webglcontextrestored`,this.#u),this.#d()}#l=e=>{e.preventDefault(),this.#c=!0};#u=()=>{try{this.#d(),this.#c=!1}catch{this.#c=!0}};#d(){let e=this.#e;this.#n=ln(e),e.useProgram(this.#n);let t=t=>e.getUniformLocation(this.#n,t);this.#a={texelSize:t(`u_texelSize`),keyColor:t(`u_keyColor`),tintColor:t(`u_tintColor`),colorCutoff:t(`u_colorCutoff`),colorFeathering:t(`u_colorFeathering`),maskFeathering:t(`u_maskFeathering`),sharpening:t(`u_sharpening`),despill:t(`u_despill`),despillLuminanceAdd:t(`u_despillLuminanceAdd`)},e.uniform1i(e.getUniformLocation(this.#n,`u_texture`),0),e.uniform1i(e.getUniformLocation(this.#n,`u_mask`),1),e.uniform4f(this.#a.tintColor,1,1,1,1),this.#r=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.#r),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW);let n=e.getAttribLocation(this.#n,`a_pos`);e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0),this.#i=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#o=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#f(),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.clearColor(0,0,0,0)}setMask(e){this.#s=e,this.#c||this.#f()}#f(){let e=this.#e;e.bindTexture(e.TEXTURE_2D,this.#o),this.#s?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.#s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([255,255,255,255]))}draw(e,t){if(this.#c||e.videoWidth===0)return;let n=this.#e;(this.#t.width!==e.videoWidth||this.#t.height!==e.videoHeight)&&(this.#t.width=e.videoWidth,this.#t.height=e.videoHeight,n.viewport(0,0,e.videoWidth,e.videoHeight)),n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.#o),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.#i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.useProgram(this.#n),n.uniform2f(this.#a.texelSize,1/e.videoWidth,1/e.videoHeight),n.uniform3fv(this.#a.keyColor,t.keyColor),n.uniform1f(this.#a.colorCutoff,t.colorCutoff),n.uniform1f(this.#a.colorFeathering,t.colorFeathering),n.uniform1f(this.#a.maskFeathering,t.maskFeathering),n.uniform1f(this.#a.sharpening,t.sharpening),n.uniform1f(this.#a.despill,t.despill),n.uniform1f(this.#a.despillLuminanceAdd,t.despillLuminanceAdd),n.clear(n.COLOR_BUFFER_BIT),n.drawArrays(n.TRIANGLE_STRIP,0,4)}clear(){this.#c||this.#e.clear(this.#e.COLOR_BUFFER_BIT)}dispose(){this.#t.removeEventListener(`webglcontextlost`,this.#l),this.#t.removeEventListener(`webglcontextrestored`,this.#u);let e=this.#e;e.deleteBuffer(this.#r),e.deleteTexture(this.#i),e.deleteTexture(this.#o),e.deleteProgram(this.#n),e.getExtension(`WEBGL_lose_context`)?.loseContext()}},dn=2;function fn(e){return{...e,keyColor:[...e.keyColor]}}var pn=class{#e;#t;#n=null;#r=0;#i=!1;#a=!1;#o=0;#s=!1;#c=null;constructor(e,t){this.#e=e,this.#t=t,e.addEventListener(`play`,this.#p),e.addEventListener(`pause`,this.#m),e.addEventListener(`ended`,this.#m),e.addEventListener(`seeked`,this.#h),e.addEventListener(`loadeddata`,this.#d),e.addEventListener(`error`,this.#f)}switchSource(e){if(this.#a)return;let t=this.#n;if(t&&(t.status===`loading`||t.status===`settled`)&&t.rawVideoUrl===e.rawVideoUrl&&t.maskUrl===e.maskUrl)return;this.#T(),this.#S(t);let n={generation:++this.#r,status:`loading`,rawVideoUrl:e.rawVideoUrl,normalizedVideoUrl:e.resolvedVideoUrl,maskUrl:e.maskUrl,chromaKey:fn(e.chromaKey),mediaSettled:!1,maskSettled:!e.maskUrl,playRequestToken:0,playRequestPending:!1,playRejectedForCurrentIntent:!1};this.#n=n,this.#e.pause(),this.#t.setMask(null),this.#e.src=e.resolvedVideoUrl,n.normalizedVideoUrl=this.#e.src,this.#e.load(),this.#u(),e.maskUrl&&this.#l(n,e.maskUrl)}setPlaying(e){if(this.#a)return;let t=this.#i!==e;this.#i=e;let n=this.#n;if(!e){this.#S(n),this.#T(),(!n||n.status!==`loading`||n.mediaSettled)&&this.#e.pause();return}t&&n&&(n.playRejectedForCurrentIntent=!1),this.#b(n)}setChromaKey(e){if(this.#a)return;let t=this.#n;!t||t.status===`failed`||t.status===`disposed`||(t.chromaKey=fn(e),t.status===`settled`&&this.#e.paused&&this.#v(t)&&this.#_(t))}dispose(){if(this.#a)return;this.#a=!0,this.#r++;let e=this.#n;this.#S(e),this.#T(),e&&(e.status=`disposed`),this.#n=null,this.#e.removeEventListener(`play`,this.#p),this.#e.removeEventListener(`pause`,this.#m),this.#e.removeEventListener(`ended`,this.#m),this.#e.removeEventListener(`seeked`,this.#h),this.#e.removeEventListener(`loadeddata`,this.#d),this.#e.removeEventListener(`error`,this.#f),this.#e.pause()}#l(e,t){let n=new Image;n.src=t,n.decode().then(()=>{!this.#y(e)||e.status!==`loading`||(this.#t.setMask(n),e.maskSettled=!0,this.#g(e))}).catch(()=>{!this.#y(e)||e.status!==`loading`||(console.warn(`Failed to load chroma-key mask "${t}".`),e.maskSettled=!0,this.#g(e))})}#u(){let e;try{e=this.#e.play()}catch{return}Promise.resolve(e).catch(()=>{})}#d=()=>{let e=this.#n;!e||e.status!==`loading`||this.#v(e)&&(e.mediaSettled=!0,this.#i||this.#e.pause(),this.#g(e))};#f=()=>{let e=this.#n;!e||e.status===`failed`||e.status===`disposed`||(e.status=`failed`,this.#S(e),this.#T(),this.#e.pause(),this.#t.clear())};#p=()=>{let e=this.#n;if(e?.status!==`loading`){if(!e||e.status!==`settled`){this.#T(),this.#e.pause();return}e.playRejectedForCurrentIntent=!1,this.#e.paused||this.#C(e)}};#m=()=>{let e=this.#n;this.#T(),e?.status===`settled`&&this.#_(e)};#h=()=>{let e=this.#n;!e||e.status!==`settled`||!this.#e.paused||this.#_(e)};#g(e){if(!(!this.#y(e)||e.status!==`loading`||!e.mediaSettled||!e.maskSettled)){if(!this.#v(e)){e.mediaSettled=!1;return}!this.#i&&!this.#e.paused&&this.#e.pause(),e.status=`settled`,this.#_(e),this.#i&&!this.#e.paused?this.#C(e):this.#b(e)}}#_(e){!this.#y(e)||e.status!==`settled`||!this.#v(e)||this.#t.draw(this.#e,e.chromaKey)}#v(e){return this.#e.readyState>=dn&&this.#e.currentSrc===e.normalizedVideoUrl}#y(e){return!this.#a&&this.#n===e&&e.generation===this.#r}#b(e){if(!e||!this.#y(e)||e.status!==`settled`||!this.#i||!this.#e.paused||e.playRequestPending||e.playRejectedForCurrentIntent)return;let t=++e.playRequestToken;e.playRequestPending=!0;let n;try{n=this.#e.play()}catch{this.#x(e,t,!1);return}Promise.resolve(n).then(()=>this.#x(e,t,!0),()=>this.#x(e,t,!1))}#x(e,t,n){!this.#y(e)||e.playRequestToken!==t||(e.playRequestPending=!1,e.playRejectedForCurrentIntent=!n)}#S(e){e&&(e.playRequestToken++,e.playRequestPending=!1)}#C(e){this.#s||!this.#y(e)||e.status!==`settled`||this.#e.paused||(this.#s=!0,this.#o++,this.#w(e,this.#o))}#w(e,t){let n=e.generation,r=0,i=()=>{let i=this.#c;!i||i.generation!==t||i.handle!==r||this.#o!==t||!this.#s||!this.#y(e)||e.generation!==n||e.status!==`settled`||this.#e.paused||(this.#c=null,this.#_(e),this.#s&&this.#o===t&&this.#y(e)&&!this.#e.paused&&this.#w(e,t))};this.#e.requestVideoFrameCallback?(r=this.#e.requestVideoFrameCallback(i),this.#c={generation:t,kind:`rvfc`,handle:r}):(r=requestAnimationFrame(i),this.#c={generation:t,kind:`raf`,handle:r})}#T(){this.#o++,this.#s=!1;let e=this.#c;this.#c=null,e&&(e.kind===`rvfc`?this.#e.cancelVideoFrameCallback?.(e.handle):cancelAnimationFrame(e.handle))}},mn=e(`<img alt="" class="svelte-r30mxh"/>`),hn=e(`<canvas class="svelte-r30mxh"></canvas> <video playsinline="" preload="auto" class="svelte-r30mxh"></video>`,3),gn=e(`<div><!></div>`);function _n(e,t){N(t,!0);let n=D(t,`loop`,3,!0),i=D(t,`playing`,3,!0),a=D(t,`videoElement`,15),u=D(t,`class`,3,``),d=b(void 0),p=b(!1),m=null,h=b(null);function g(e){return{...e,keyColor:[...e.keyColor]}}M(()=>{if(m=un.create(s(d)),!m){v(p,!0);return}let e=m,t=new pn(a(),e);return v(h,t),()=>{t.dispose(),s(h)===t&&v(h,null),e.dispose(),m===e&&(m=null)}}),o(()=>{let e=s(h),n=t.src,r=n.src,i=n.mask?.src;e&&e.switchSource({rawVideoUrl:r,resolvedVideoUrl:Bt(r),maskUrl:i,chromaKey:H(()=>g(n.chromaKey))})}),o(()=>{s(h)?.setPlaying(i())}),o(()=>{let e=t.src.chromaKey,n={keyColor:[e.keyColor[0],e.keyColor[1],e.keyColor[2]],colorCutoff:e.colorCutoff,colorFeathering:e.colorFeathering,maskFeathering:e.maskFeathering,sharpening:e.sharpening,despill:e.despill,despillLuminanceAdd:e.despillLuminanceAdd};s(h)?.setChromaKey(n)});var y=gn(),C=l(y),w=e=>{var n=k(),i=I(n),a=e=>{var n=k();V(I(n),()=>t.fallback),f(e,n)},o=e=>{var n=mn();_(()=>z(n,`src`,t.src.fallback.src)),f(e,n)};r(i,e=>{t.fallback?e(a):t.src.fallback&&e(o,1)}),f(e,n)},T=e=>{var t=hn(),r=I(t);S(r,e=>v(d,e),()=>s(d));var i=c(r,2);i.muted=!0,S(i,e=>a(e),()=>a()),_(()=>i.loop=n()),f(e,t)};r(C,e=>{s(p)?e(w):e(T,-1)}),P(y),_(()=>x(y,1,`fundus-chroma-key-video ${u()??``}`,`svelte-r30mxh`)),f(e,y),R()}var vn=e(`<img/>`),yn=e(`<div class="stage checkerboard svelte-10eps7e"><!></div>`);function bn(e,t){N(t,!0);let n=m(()=>!t.asset.proxy||t.asset.proxy.width===void 0||t.asset.proxy.height===void 0?null:{kind:`image`,src:t.asset.proxy.url,width:t.asset.proxy.width,height:t.asset.proxy.height});var i=yn(),a=l(i),o=e=>{Ht(e,{get src(){return s(n)},get alt(){return t.asset.id}})},c=e=>{var n=vn();_(()=>{z(n,`src`,t.asset.rawUrl),z(n,`alt`,t.asset.id)}),f(e,n)};r(a,e=>{s(n)?e(o):e(c,-1)}),P(i),f(e,i),R()}var xn=e(`<img loading="lazy" class="svelte-gdduef"/>`);function Sn(e,t){N(t,!0);var n=xn();_(()=>{z(n,`src`,t.asset.proxy?.url??t.asset.rawUrl),z(n,`alt`,t.asset.id)}),f(e,n),R()}var Cn=new Map;function wn(e,t=()=>new window.Image){let n=Cn.get(e);if(n)return n;let r=new Promise((n,r)=>{let i=t();i.onload=()=>n({width:i.naturalWidth,height:i.naturalHeight}),i.onerror=()=>r(Error(`Could not load image dimensions.`)),i.src=e});return Cn.set(e,r),r.catch(()=>{Cn.get(e)===r&&Cn.delete(e)}),r}var Tn=e(`<button> </button>`),En=e(`<section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section>`),Dn=e(`<section class="svelte-1yd7n22"><!> <div><!> <!></div></section>`),On=e(`<section class="svelte-1yd7n22"><!> <!></section>`),kn=e(`<section class="svelte-1yd7n22"><!> <div class="modes svelte-1yd7n22"></div></section> <!> <!> <section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="field"><!></div></section> <!>`,1);function An(e,i){N(i,!0);let a=m(()=>xe.validateParameters(i.parameters)),d=m(()=>s(a).overdraw??se()),h=m(()=>s(a).compression??{x:0,y:0}),g=b(null),y=null;o(()=>{let e=i.asset.rawUrl;y!==e&&(y=e,v(g,null));let t=!1;return wn(e).then(n=>{!t&&y===e&&v(g,n,!0)},()=>{}),()=>{t=!0}});let S=[{value:`nine`,label:`9-slice`},{value:`three-horizontal`,label:`3-slice horizontal`},{value:`three-vertical`,label:`3-slice vertical`},{value:`one`,label:`No slicing`}],w=[{key:`top`,label:`Top`,icon:`arrow-up`,axis:`y`},{key:`right`,label:`Right`,icon:`arrow-right`,axis:`x`},{key:`bottom`,label:`Bottom`,icon:`arrow-down`,axis:`y`},{key:`left`,label:`Left`,icon:`arrow-left`,axis:`x`}];function T(e,t){let n=G(t);return e===`x`?n.horizontal:n.vertical}let E=m(()=>s(g)?.width??2**53-1),D=m(()=>s(g)?.height??2**53-1);function O(e){i.onParametersCommit(e)}function A(e){O({...s(a),mode:e})}function j(e){return be(s(a).insets,e,s(E),s(D))}function M(e,t,n){let r=Math.max(0,Math.min(j(e),Math.round(t??0))),o={...s(a),insets:{...s(a).insets,[e]:r}};n?O(o):i.onParametersChange(o)}function F(e){return ae(s(d),e,s(E),s(D))}function L(e,t,n){let r=Math.max(0,Math.min(F(e),Math.round(t??0))),o={...s(a),overdraw:{...s(d),[e]:r}};n?O(o):i.onParametersChange(o)}function z(e,t,n){let r=Math.max(0,Math.min(100,Math.round(t??0))),o={...s(h),[e]:r},{compression:c,...l}=s(a),u=o.x===0&&o.y===0?l:{...l,compression:o};n?O(u):i.onParametersChange(u)}function B(e,t){let n={...s(a),pixelRatio:Math.max(1,Math.round(e??1))};t?O(n):i.onParametersChange(n)}function V(e){O({...s(a),preset:e})}var H=kn(),U=I(H),W=l(U);St(W,{children:(e,t)=>{C(),f(e,u(`Mode`))},$$slots:{default:!0}});var ee=c(W,2);t(ee,21,()=>S,e=>e.value,(e,t)=>{var r=Tn();let i;var o=l(r,!0);P(r),_(()=>{i=x(r,1,`svelte-1yd7n22`,null,i,{on:s(a).mode===s(t).value}),n(o,s(t).label)}),p(`click`,r,()=>A(s(t).value)),f(e,r)}),P(ee),P(U);var K=c(U,2),q=e=>{var n=En(),i=l(n);St(i,{children:(e,t)=>{C(),f(e,u(`Insets (px)`))},$$slots:{default:!0}});var o=c(i,2);t(o,21,()=>w,e=>e.key,(e,t)=>{var n=k(),i=I(n),o=e=>{{let n=e=>{$(e,{get name(){return s(t).icon}})},r=m(()=>j(s(t).key));bt(e,{get label(){return s(t).label},min:0,get max(){return s(r)},rangeFill:!1,get value(){return s(a).insets[s(t).key]},onChange:e=>M(s(t).key,e,!1),onCommit:e=>M(s(t).key,e,!0),icon:n,$$slots:{icon:!0}})}},c=m(()=>T(s(t).axis,s(a).mode));r(i,e=>{s(c)&&e(o)}),f(e,n)}),P(o),P(n),f(e,n)};r(K,e=>{s(a).mode!==`one`&&e(q)});var te=c(K,2),ne=e=>{var t=Dn(),n=l(t);St(n,{children:(e,t)=>{C(),f(e,u(`Stretch compression`))},$$slots:{default:!0}});var i=c(n,2);let o;var d=l(i),p=e=>{bt(e,{label:`X`,min:0,max:100,suffix:`%`,get value(){return s(h).x},onChange:e=>z(`x`,e,!1),onCommit:e=>z(`x`,e,!0)})},g=m(()=>T(`x`,s(a).mode));r(d,e=>{s(g)&&e(p)});var v=c(d,2),y=e=>{bt(e,{label:`Y`,min:0,max:100,suffix:`%`,get value(){return s(h).y},onChange:e=>z(`y`,e,!1),onCommit:e=>z(`y`,e,!0)})},b=m(()=>T(`y`,s(a).mode));r(v,e=>{s(b)&&e(y)}),P(i),P(t),_(()=>o=x(i,1,`insets svelte-1yd7n22`,null,o,{single:s(a).mode!==`nine`})),f(e,t)};r(te,e=>{s(a).mode!==`one`&&e(ne)});var re=c(te,2),J=l(re);St(J,{children:(e,t)=>{C(),f(e,u(`Overdraw (px)`))},$$slots:{default:!0}});var Y=c(J,2);t(Y,21,()=>w,e=>e.key,(e,t)=>{{let n=e=>{$(e,{get name(){return s(t).icon}})},r=m(()=>F(s(t).key));bt(e,{get label(){return s(t).label},min:0,get max(){return s(r)},rangeFill:!1,get value(){return s(d)[s(t).key]},onChange:e=>L(s(t).key,e,!1),onCommit:e=>L(s(t).key,e,!0),icon:n,$$slots:{icon:!0}})}}),P(Y),P(re);var ie=c(re,2),X=e=>{var t=On(),n=l(t);St(n,{children:(e,t)=>{C(),f(e,u(`Pixel ratio`))},$$slots:{default:!0}}),bt(c(n,2),{label:`Factor`,min:1,get value(){return s(a).pixelRatio},onChange:e=>B(e,!1),onCommit:e=>B(e,!0),icon:e=>{$(e,{name:`ratio`})},$$slots:{icon:!0}}),P(t),f(e,t)};r(ie,e=>{s(a).mode===`nine`&&e(X)});var oe=c(ie,2),Z=l(oe);St(Z,{children:(e,t)=>{C(),f(e,u(`Output`))},$$slots:{default:!0}});var Q=c(Z,2);Et(l(Q),{label:`Preset`,caption:`Preset`,get value(){return s(a).preset},get options(){return i.presetNames},onChange:V,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),P(Q),P(oe),At(c(oe,2),{get proxy(){return i.asset.proxy},showDimensions:!0}),f(e,H),R()}d([`click`]);var jn=b(`dom`),Mn=e(`<div class="preview-panel svelte-1mjaycs"><div class="bar svelte-1mjaycs"><span class="size svelte-1mjaycs"> </span> <div class="backends svelte-1mjaycs" role="group" aria-label="Rendering backend"><button>DOM</button> <button>Canvas</button></div> <button class="reset svelte-1mjaycs">Reset</button></div> <div class="stage checkerboard svelte-1mjaycs"><div class="box svelte-1mjaycs"><!> <div class="handle edge-right svelte-1mjaycs" role="separator" aria-label="Drag width" aria-orientation="vertical"></div> <div class="handle edge-bottom svelte-1mjaycs" role="separator" aria-label="Drag height" aria-orientation="horizontal"></div> <div class="handle corner svelte-1mjaycs" role="separator" aria-label="Drag size"></div></div></div></div>`);function Nn(e,t){N(t,!0);function r(){return Math.round(Math.min(360,Math.max(80,t.entry.sourceWidth*2)))}function a(){return Math.round(r()*t.entry.sourceHeight/Math.max(1,t.entry.sourceWidth))}let o=b(y(H(()=>r()))),u=b(y(H(()=>a()))),d=b(null),m={pointerX:0,pointerY:0,width:0,height:0};function h(e,t){t.preventDefault(),v(d,e,!0),m={pointerX:t.clientX,pointerY:t.clientY,width:s(o),height:s(u)},dt(t.currentTarget,t)}function g(e){s(d)&&(s(d)!==`y`&&v(o,Math.max(16,Math.round(m.width+(e.clientX-m.pointerX))),!0),s(d)!==`x`&&v(u,Math.max(16,Math.round(m.height+(e.clientY-m.pointerY))),!0))}function S(e){s(d)&&ft(e.currentTarget,e.pointerId),v(d,null)}function C(){v(o,r(),!0),v(u,a(),!0)}var w=Mn(),E=l(w),D=l(E),O=l(D);P(D);var k=c(D,2),A=l(k);let j;var M=c(A,2);let F;P(k);var I=c(k,2);P(E);var L=c(E,2),z=l(L);let B;var V=l(z);rn(V,{get src(){return t.entry},get backend(){return s(jn)},class:`fill`});var U=c(V,2),W=c(U,2),ee=c(W,2);P(z),P(L),P(w),_(()=>{n(O,`${s(o)??``} × ${s(u)??``} px`),j=x(A,1,`svelte-1mjaycs`,null,j,{on:s(jn)===`dom`}),F=x(M,1,`svelte-1mjaycs`,null,F,{on:s(jn)===`canvas`}),B=T(z,``,B,{width:`${s(o)??``}px`,height:`${s(u)??``}px`})}),p(`click`,A,()=>v(jn,`dom`)),p(`click`,M,()=>v(jn,`canvas`)),p(`click`,I,C),p(`pointerdown`,U,e=>h(`x`,e)),p(`pointermove`,U,g),p(`pointerup`,U,S),i(`pointercancel`,U,S),p(`pointerdown`,W,e=>h(`y`,e)),p(`pointermove`,W,g),p(`pointerup`,W,S),i(`pointercancel`,W,S),p(`pointerdown`,ee,e=>h(`both`,e)),p(`pointermove`,ee,g),p(`pointerup`,ee,S),i(`pointercancel`,ee,S),f(e,w),R()}d([`click`,`pointerdown`,`pointermove`,`pointerup`]);var Pn=e(`<div></div>`),Fn=e(`<div class="overdraw-band svelte-1jfrg6d"></div>`),In=e(`<div role="slider" aria-label="Left slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),Ln=e(`<div role="slider" aria-label="Top slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),Rn=e(`<div class="canvas svelte-1jfrg6d"><div class="toolbar svelte-1jfrg6d"><button title="Zoom out" class="svelte-1jfrg6d">−</button> <span class="zoom svelte-1jfrg6d"> </span> <button title="Zoom in" class="svelte-1jfrg6d">+</button> <button title="100%">1:1</button> <button>Fit</button> <span class="dims svelte-1jfrg6d"> </span></div> <div role="application" aria-label="Slice canvas — drag to pan, pinch/⌘+scroll to zoom"><div class="image-wrap svelte-1jfrg6d"><img alt="" draggable="false" class="svelte-1jfrg6d"/> <!> <!> <!> <!> <!> <div role="slider" aria-label="Left overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Top overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <!> <!></div></div></div>`);function zn(e,t){N(t,!0);let a=b(void 0),u=b(void 0),d=b(null),h=null,g=m(()=>G(t.mode)),y=m(()=>s(g).horizontal),C=m(()=>s(g).vertical);function w(e,t){return s(d)?.target===e&&s(d).side===t}let E=b(`fit`),D=b(1),O=b(0),k=b(0),A=b(0),j=b(0),M=b(!1),F=new Map,L=null;function B(e){return Math.max(.05,Math.min(8,e))}o(()=>{let e=s(a);if(!e)return;let t=new ResizeObserver(()=>{v(A,e.clientWidth,!0),v(j,e.clientHeight,!0)});return t.observe(e),()=>t.disconnect()}),o(()=>{if(s(E)===`free`||t.width===0||t.height===0||s(A)===0||s(j)===0)return;let e=B(Math.min((s(A)-32)/t.width,(s(j)-32)/t.height));V(s(E)===`one`?1:e)});function V(e){v(D,e,!0),v(O,(s(A)-t.width*e)/2),v(k,(s(j)-t.height*e)/2)}function H(e,t){if(!s(a))return{x:e,y:t};let n=s(a).getBoundingClientRect();return{x:e-n.left-s(a).clientLeft,y:t-n.top-s(a).clientTop}}function U(e,t,n){let r=B(e);v(O,t-(t-s(O))*(r/s(D))),v(k,n-(n-s(k))*(r/s(D))),v(D,r,!0),v(E,`free`)}function W(e,t,n){return Math.max(t,Math.min(n,Math.round(e)))}function ee(){v(E,`fit`)}function K(){v(E,`one`)}function q(e){U(s(D)*e,s(A)/2,s(j)/2)}function te(){let[e,t]=[...F.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2}}function ne(e){try{s(a)&&dt(s(a),e)}catch{}F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size===2?L=te():F.size===1&&v(M,!0)}function re(e){let t=F.get(e.pointerId);if(t)if(F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size>=2&&L){let e=te(),t=H(L.midX,L.midY);U(s(D)*(e.distance/L.distance),t.x,t.y),v(O,s(O)+(e.midX-L.midX)),v(k,s(k)+(e.midY-L.midY)),L=e}else F.size===1&&(v(O,s(O)+(e.clientX-t.x)),v(k,s(k)+(e.clientY-t.y)),v(E,`free`))}function J(e){F.delete(e.pointerId),F.size<2&&(L=null),F.size===0&&v(M,!1)}function Y(e){if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=H(e.clientX,e.clientY);U(s(D)*Math.exp(-e.deltaY*.01),t.x,t.y)}else v(O,s(O)-e.deltaX),v(k,s(k)-e.deltaY),v(E,`free`)}function ie(e,t,n){n.preventDefault(),n.stopPropagation(),v(d,{target:e,side:t},!0),h=null,dt(n.currentTarget,n)}function X(e){if(!s(d)||!s(u))return;let n=s(u).getBoundingClientRect(),r=(e.clientX-n.left)/s(D),i=(e.clientY-n.top)/s(D),{target:a,side:o}=s(d),c={...a===`inset`?t.insets:t.overdraw};o===`left`?c.left=W(r,0,Q(a,`left`)):o===`right`?c.right=W(t.width-r,0,Q(a,`right`)):o===`top`?c.top=W(i,0,Q(a,`top`)):o===`bottom`&&(c.bottom=W(t.height-i,0,Q(a,`bottom`))),oe(a,c)}function oe(e,n){h={target:e,value:n},e===`inset`?t.onChange(n):t.onOverdrawChange(n)}function Z(e){let n=s(d)!==null;s(d)&&ft(e.currentTarget,e.pointerId),v(d,null),n&&h&&t.onCommit(h.target,h.value),h=null}function Q(e,n){let r=e===`inset`?t.insets:t.overdraw;return e===`inset`?be(r,n,t.width,t.height):ae(r,n,t.width,t.height)}function se(e,n,r){let i=e===`inset`?t.insets:t.overdraw,a={...i};a[n]=W(i[n]+r,0,Q(e,n)),a[n]!==i[n]&&(oe(e,a),t.onCommit(e,a),h=null)}function ce(e,t,n,r){let i=r.shiftKey?10:1,a=n===`x`?`ArrowRight`:`ArrowUp`,o=n===`x`?`ArrowLeft`:`ArrowDown`;if(r.key===a)se(e,t,i);else if(r.key===o)se(e,t,-i);else return;r.preventDefault()}var le=Rn(),ue=l(le),de=l(ue),fe=c(de,2),pe=l(fe);P(fe);var me=c(fe,2),he=c(me,2);let ge;var _e=c(he,2);let ve;var ye=c(_e,2),xe=l(ye);P(ye),P(ue);var $=c(ue,2);let Se;var Ce=l($);let we;var Te=l(Ce),Ee=c(Te,2),De=e=>{var n=Pn();let r,i;_(()=>{r=x(n,1,`center-rect svelte-1jfrg6d`,null,r,{"side-edges":!s(y),"cap-edges":!s(C)}),i=T(n,``,i,{left:`${(s(y)?t.insets.left:0)*s(D)}px`,top:`${(s(C)?t.insets.top:0)*s(D)}px`,right:`${(s(y)?t.insets.right:0)*s(D)}px`,bottom:`${(s(C)?t.insets.bottom:0)*s(D)}px`})}),f(e,n)};r(Ee,e=>{(s(y)||s(C))&&e(De)});var Oe=c(Ee,2),ke=e=>{var n=Fn();let r;_(()=>r=T(n,``,r,{left:`0`,top:`0`,bottom:`0`,width:`${t.overdraw.left*s(D)}px`})),f(e,n)};r(Oe,e=>{t.overdraw.left>0&&e(ke)});var Ae=c(Oe,2),je=e=>{var n=Fn();let r;_(()=>r=T(n,``,r,{right:`0`,top:`0`,bottom:`0`,width:`${t.overdraw.right*s(D)}px`})),f(e,n)};r(Ae,e=>{t.overdraw.right>0&&e(je)});var Me=c(Ae,2),Ne=e=>{var n=Fn();let r;_(()=>r=T(n,``,r,{top:`0`,left:`${t.overdraw.left*s(D)}px`,right:`${t.overdraw.right*s(D)}px`,height:`${t.overdraw.top*s(D)}px`})),f(e,n)};r(Me,e=>{t.overdraw.top>0&&e(Ne)});var Pe=c(Me,2),Fe=e=>{var n=Fn();let r;_(()=>r=T(n,``,r,{bottom:`0`,left:`${t.overdraw.left*s(D)}px`,right:`${t.overdraw.right*s(D)}px`,height:`${t.overdraw.bottom*s(D)}px`})),f(e,n)};r(Pe,e=>{t.overdraw.bottom>0&&e(Fe)});var Ie=c(Pe,2);let Le;z(Ie,`aria-valuemin`,0);let Re;var ze=l(Ie),Be=l(ze,!0);P(ze),P(Ie);var Ve=c(Ie,2);let He;z(Ve,`aria-valuemin`,0);let Ue;var We=l(Ve),Ge=l(We,!0);P(We),P(Ve);var Ke=c(Ve,2);let qe;z(Ke,`aria-valuemin`,0);let Je;var Ye=l(Ke),Xe=l(Ye,!0);P(Ye),P(Ke);var Ze=c(Ke,2);let Qe;z(Ze,`aria-valuemin`,0);let $e;var et=l(Ze),tt=l(et,!0);P(et),P(Ze);var nt=c(Ze,2),rt=e=>{var r=In(),a=I(r);let o;z(a,`aria-valuemin`,0);let u;var d=l(a),m=l(d,!0);P(d),P(a);var h=c(a,2);let g;z(h,`aria-valuemin`,0);let v;var y=l(h),b=l(y,!0);P(y),P(h),_((e,r,i,c)=>{o=x(a,1,`line v svelte-1jfrg6d`,null,o,e),z(a,`aria-valuenow`,t.insets.left),z(a,`aria-valuemax`,r),u=T(a,``,u,{left:`${t.insets.left*s(D)}px`}),n(m,t.insets.left),g=x(h,1,`line v svelte-1jfrg6d`,null,g,i),z(h,`aria-valuenow`,t.insets.right),z(h,`aria-valuemax`,c),v=T(h,``,v,{left:`${(t.width-t.insets.right)*s(D)}px`}),n(b,t.insets.right)},[()=>({active:w(`inset`,`left`)}),()=>Q(`inset`,`left`),()=>({active:w(`inset`,`right`)}),()=>Q(`inset`,`right`)]),p(`pointerdown`,a,e=>ie(`inset`,`left`,e)),p(`pointermove`,a,X),p(`pointerup`,a,Z),i(`pointercancel`,a,Z),p(`keydown`,a,e=>ce(`inset`,`left`,`x`,e)),p(`pointerdown`,h,e=>ie(`inset`,`right`,e)),p(`pointermove`,h,X),p(`pointerup`,h,Z),i(`pointercancel`,h,Z),p(`keydown`,h,e=>ce(`inset`,`right`,`x`,e)),f(e,r)};r(nt,e=>{s(y)&&e(rt)});var it=c(nt,2),at=e=>{var r=Ln(),a=I(r);let o;z(a,`aria-valuemin`,0);let u;var d=l(a),m=l(d,!0);P(d),P(a);var h=c(a,2);let g;z(h,`aria-valuemin`,0);let v;var y=l(h),b=l(y,!0);P(y),P(h),_((e,r,i,c)=>{o=x(a,1,`line h svelte-1jfrg6d`,null,o,e),z(a,`aria-valuenow`,t.insets.top),z(a,`aria-valuemax`,r),u=T(a,``,u,{top:`${t.insets.top*s(D)}px`}),n(m,t.insets.top),g=x(h,1,`line h svelte-1jfrg6d`,null,g,i),z(h,`aria-valuenow`,t.insets.bottom),z(h,`aria-valuemax`,c),v=T(h,``,v,{top:`${(t.height-t.insets.bottom)*s(D)}px`}),n(b,t.insets.bottom)},[()=>({active:w(`inset`,`top`)}),()=>Q(`inset`,`top`),()=>({active:w(`inset`,`bottom`)}),()=>Q(`inset`,`bottom`)]),p(`pointerdown`,a,e=>ie(`inset`,`top`,e)),p(`pointermove`,a,X),p(`pointerup`,a,Z),i(`pointercancel`,a,Z),p(`keydown`,a,e=>ce(`inset`,`top`,`y`,e)),p(`pointerdown`,h,e=>ie(`inset`,`bottom`,e)),p(`pointermove`,h,X),p(`pointerup`,h,Z),i(`pointercancel`,h,Z),p(`keydown`,h,e=>ce(`inset`,`bottom`,`y`,e)),f(e,r)};r(it,e=>{s(C)&&e(at)}),P(Ce),S(Ce,e=>v(u,e),()=>s(u)),P($),S($,e=>v(a,e),()=>s(a)),P(le),_((e,r,i,a,o,c,l,u,d)=>{n(pe,`${e??``}%`),ge=x(he,1,`svelte-1jfrg6d`,null,ge,{active:s(E)===`one`}),ve=x(_e,1,`svelte-1jfrg6d`,null,ve,{active:s(E)===`fit`}),n(xe,`${t.width??``} × ${t.height??``} px`),Se=x($,1,`viewport checkerboard svelte-1jfrg6d`,null,Se,{panning:s(M)}),we=T(Ce,``,we,{width:`${t.width*s(D)}px`,height:`${t.height*s(D)}px`,transform:`translate(${s(O)??``}px, ${s(k)??``}px)`}),z(Te,`src`,t.src),Le=x(Ie,1,`line v overdraw-line svelte-1jfrg6d`,null,Le,r),z(Ie,`aria-valuenow`,t.overdraw.left),z(Ie,`aria-valuemax`,i),Re=T(Ie,``,Re,{left:`${t.overdraw.left*s(D)}px`}),n(Be,t.overdraw.left),He=x(Ve,1,`line v overdraw-line svelte-1jfrg6d`,null,He,a),z(Ve,`aria-valuenow`,t.overdraw.right),z(Ve,`aria-valuemax`,o),Ue=T(Ve,``,Ue,{left:`${(t.width-t.overdraw.right)*s(D)}px`}),n(Ge,t.overdraw.right),qe=x(Ke,1,`line h overdraw-line svelte-1jfrg6d`,null,qe,c),z(Ke,`aria-valuenow`,t.overdraw.top),z(Ke,`aria-valuemax`,l),Je=T(Ke,``,Je,{top:`${t.overdraw.top*s(D)}px`}),n(Xe,t.overdraw.top),Qe=x(Ze,1,`line h overdraw-line svelte-1jfrg6d`,null,Qe,u),z(Ze,`aria-valuenow`,t.overdraw.bottom),z(Ze,`aria-valuemax`,d),$e=T(Ze,``,$e,{top:`${(t.height-t.overdraw.bottom)*s(D)}px`}),n(tt,t.overdraw.bottom)},[()=>Math.round(s(D)*100),()=>({active:w(`overdraw`,`left`)}),()=>Q(`overdraw`,`left`),()=>({active:w(`overdraw`,`right`)}),()=>Q(`overdraw`,`right`),()=>({active:w(`overdraw`,`top`)}),()=>Q(`overdraw`,`top`),()=>({active:w(`overdraw`,`bottom`)}),()=>Q(`overdraw`,`bottom`)]),p(`click`,de,()=>q(1/1.25)),p(`click`,me,()=>q(1.25)),p(`click`,he,K),p(`click`,_e,ee),p(`pointerdown`,$,ne),p(`pointermove`,$,re),p(`pointerup`,$,J),i(`pointercancel`,$,J),i(`wheel`,$,Y),p(`pointerdown`,Ie,e=>ie(`overdraw`,`left`,e)),p(`pointermove`,Ie,X),p(`pointerup`,Ie,Z),i(`pointercancel`,Ie,Z),p(`keydown`,Ie,e=>ce(`overdraw`,`left`,`x`,e)),p(`pointerdown`,Ve,e=>ie(`overdraw`,`right`,e)),p(`pointermove`,Ve,X),p(`pointerup`,Ve,Z),i(`pointercancel`,Ve,Z),p(`keydown`,Ve,e=>ce(`overdraw`,`right`,`x`,e)),p(`pointerdown`,Ke,e=>ie(`overdraw`,`top`,e)),p(`pointermove`,Ke,X),p(`pointerup`,Ke,Z),i(`pointercancel`,Ke,Z),p(`keydown`,Ke,e=>ce(`overdraw`,`top`,`y`,e)),p(`pointerdown`,Ze,e=>ie(`overdraw`,`bottom`,e)),p(`pointermove`,Ze,X),p(`pointerup`,Ze,Z),i(`pointercancel`,Ze,Z),p(`keydown`,Ze,e=>ce(`overdraw`,`bottom`,`y`,e)),f(e,le),R()}d([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Bn=e(`<div class="empty error svelte-1ea2lvt"> </div>`),Vn=e(`<div class="empty svelte-1ea2lvt">Loading image…</div>`),Hn=e(`<div class="pane svelte-1ea2lvt"><!></div>`),Un=e(`<div class="editor svelte-1ea2lvt"><div class="tabs svelte-1ea2lvt"><button>Slicing</button> <button>Preview</button></div> <!></div>`);function Wn(e,t){N(t,!0);let i=b(`slicing`),a=b(null),u=b(null),d=null;o(()=>{let e=t.asset.rawUrl;d!==e&&(d=e,v(a,null),v(u,null));let n=!1;return wn(e).then(t=>{!n&&d===e&&v(a,t,!0)},t=>{!n&&d===e&&v(u,t instanceof Error?t.message:String(t),!0)}),()=>{n=!0}});let h=m(()=>{try{return xe.validateParameters(t.parameters)}catch{return null}}),y=m(()=>{if(!s(h)||!s(a))return null;let e=t.asset.proxy?.width??s(a).width,n=t.asset.proxy?.height??s(a).height;return{kind:`slice`,src:t.asset.proxy?.url??t.asset.rawUrl,slicing:{mode:s(h).mode,insets:ve({...s(h),width:e,height:n}),pixelRatio:s(h).pixelRatio,...s(h).overdraw?{overdraw:s(h).overdraw}:{}},sourceWidth:e,sourceHeight:n}});var S=Un(),C=l(S),w=l(C);let T;var E=c(w,2);let D;P(C);var O=c(C,2),k=e=>{var t=Bn(),r=l(t,!0);P(t),_(()=>n(r,s(u))),f(e,t)},A=e=>{f(e,Vn())},j=e=>{var n=Hn(),r=l(n);{let e=m(()=>s(h).overdraw??se());zn(r,{get src(){return t.asset.rawUrl},get width(){return s(a).width},get height(){return s(a).height},get mode(){return s(h).mode},get insets(){return s(h).insets},get overdraw(){return s(e)},onChange:e=>t.onParametersChange({...s(h),insets:e}),onOverdrawChange:e=>t.onParametersChange({...s(h),overdraw:e}),onCommit:(e,n)=>t.onParametersCommit(e===`inset`?{...s(h),insets:n}:{...s(h),overdraw:n})})}P(n),f(e,n)},M=e=>{var n=Hn();g(l(n),()=>t.asset.id,e=>{Nn(e,{get entry(){return s(y)}})}),P(n),f(e,n)};r(O,e=>{s(u)?e(k):!s(h)||!s(a)?e(A,1):s(i)===`slicing`?e(j,2):s(y)&&e(M,3)}),P(S),_(()=>{T=x(w,1,`svelte-1ea2lvt`,null,T,{on:s(i)===`slicing`}),D=x(E,1,`svelte-1ea2lvt`,null,D,{on:s(i)===`preview`})}),p(`click`,w,()=>v(i,`slicing`)),p(`click`,E,()=>v(i,`preview`)),f(e,S),R()}d([`click`]);var Gn=e(`<div class="field svelte-ij1927"><!></div>`),Kn=e(`<section class="svelte-ij1927"><!> <div class="field svelte-ij1927"><!></div> <!></section> <!>`,1);function qn(e,t){N(t,!0);let n=m(()=>q.validateParameters(t.parameters)),i=m(()=>t.presetCapabilities[s(n).preset]?.maxWidth!==!1);function a(e){t.onParametersCommit(e)}function o(e){if(t.presetCapabilities[e]?.maxWidth===!1){let{maxWidth:t,...r}=s(n);a({...r,preset:e});return}a({...s(n),preset:e})}function d(e,r){let i=we(s(n),e);r?a(i):t.onParametersChange(i)}var p=Kn(),h=I(p),g=l(h);St(g,{children:(e,t)=>{C(),f(e,u(`Video`))},$$slots:{default:!0}});var _=c(g,2);Et(l(_),{label:`Preset`,caption:`Preset`,get value(){return s(n).preset},get options(){return t.presetNames},onChange:o,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),P(_);var v=c(_,2),y=e=>{var t=Gn(),r=l(t);{let e=e=>{$(e,{name:`width`})},t=m(()=>s(n).maxWidth??null);bt(r,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return s(t)},onChange:e=>d(e,!1),onCommit:e=>d(e,!0),icon:e,$$slots:{icon:!0}})}P(t),f(e,t)};r(v,e=>{s(i)&&e(y)}),P(h),At(c(h,2),{get proxy(){return t.asset.proxy},showDimensions:!0,showDuration:!0}),f(e,p),R()}var Jn=e(`<div class="preview-column svelte-qls820"><div class="video-frame svelte-qls820"><!></div> <!></div>`),Yn=e(`<p class="svelte-qls820">No proxy yet — add the asset to a manifest to process it.</p>`),Xn=e(`<div class="stage checkerboard svelte-qls820"><!></div>`);function Zn(e,t){N(t,!0);let n=b(void 0),i=m(()=>!t.asset.proxy||t.asset.proxy.width===void 0||t.asset.proxy.height===void 0||t.asset.proxy.durationMs===void 0?null:{kind:`video`,src:t.asset.proxy.url,width:t.asset.proxy.width,height:t.asset.proxy.height,durationMs:t.asset.proxy.durationMs});var a=Xn(),o=l(a),u=e=>{var t=Jn(),r=l(t);let a;g(l(r),()=>s(i).src,e=>{on(e,{get src(){return s(i)},loop:!0,get videoElement(){return s(n)},set videoElement(e){v(n,e,!0)}})}),P(r),Ke(c(r,2),{get media(){return s(n)},showScrub:!0,showVolume:!0}),P(t),_(()=>a=T(r,``,a,{"aspect-ratio":`${s(i).width??``} / ${s(i).height??``}`})),f(e,t)},d=e=>{f(e,Yn())};r(o,e=>{s(i)?e(u):e(d,-1)}),P(a),f(e,a),R()}var Qn=e(`<video playsinline="" preload="metadata" class="svelte-ejgo9x"></video>`,2);function $n(e,t){N(t,!0);function n(e){e.currentTime=0,e.play().catch(()=>{})}function r(e){e.pause(),e.currentTime=0}var a=Qn();a.muted=!0,_(()=>z(a,`src`,t.asset.proxy?.url??t.asset.rawUrl)),i(`pointerenter`,a,e=>n(e.currentTarget)),i(`pointerleave`,a,e=>r(e.currentTarget)),f(e,a),R()}var er=e(`<span class="caption svelte-56kutb"> </span>`),tr=e(`<img class="preview svelte-56kutb" alt=""/>`),nr=e(`<span class="missing-preview svelte-56kutb" title="References an unknown asset">!</span>`),rr=e(`<span class="id svelte-56kutb"> </span>`),ir=e(`<span class="id dangling svelte-56kutb" title="References an unknown asset"> </span>`),ar=e(`<span class="placeholder svelte-56kutb"> </span>`),or=e(`<button class="clear svelte-56kutb">×</button>`),sr=e(`<p class="hint svelte-56kutb"> </p>`),cr=e(`<button><img class="thumbnail svelte-56kutb" alt=""/> <span class="id svelte-56kutb"> </span></button>`),lr=e(`<div class="dropdown svelte-56kutb"><!></div>`),ur=e(`<div class="picker svelte-56kutb"><!> <div class="reference-input control svelte-56kutb"><button><span class="preview-slot svelte-56kutb"><!></span> <!></button> <!> <!></div></div>`);function dr(e,i){N(i,!0);let a=b(!1),o=m(()=>(_e.state?.assets??[]).filter(e=>i.expectedTypes.includes(e.type)&&e.id!==i.excludeAssetId)),u=m(()=>i.value?_e.assetById(i.value.$asset):null);function d(e){v(a,!1),i.onChange({$asset:e})}function h(){v(a,!1),i.onChange(void 0)}var g=ur(),y=l(g),S=e=>{var t=er(),r=l(t,!0);P(t),_(()=>n(r,i.caption)),f(e,t)};r(y,e=>{i.caption&&e(S)});var C=c(y,2),w=l(C);let T;var E=l(w),D=l(E),O=e=>{var t=tr();_(()=>z(t,`src`,s(u).rawUrl)),f(e,t)},A=e=>{f(e,nr())};r(D,e=>{i.value&&s(u)?e(O):i.value&&e(A,1)}),P(E);var j=c(E,2),M=e=>{var t=k(),a=I(t),o=e=>{var t=rr(),r=l(t,!0);P(t),_(()=>n(r,s(u).id)),f(e,t)},c=e=>{var t=ir(),r=l(t,!0);P(t),_(()=>n(r,i.value.$asset)),f(e,t)};r(a,e=>{s(u)?e(o):e(c,-1)}),f(e,t)},F=e=>{var t=ar(),r=l(t);P(t),_(e=>n(r,`Select ${e??``}...`),[()=>i.expectedTypes.join(`/`)]),f(e,t)};r(j,e=>{i.value?e(M):e(F,-1)}),P(w);var L=c(w,2),B=e=>{var t=or();_(()=>z(t,`title`,`Clear ${i.label??``}`)),p(`click`,t,h),f(e,t)};r(L,e=>{i.value&&e(B)});var V=c(L,2),H=e=>{var a=lr(),u=l(a),m=e=>{var t=sr(),r=l(t);P(t),_(e=>n(r,`No ${e??``} assets in the library.`),[()=>i.expectedTypes.join(`/`)]),f(e,t)},h=e=>{var r=k();t(I(r),17,()=>s(o),e=>e.id,(e,t)=>{var r=cr();let a;var o=l(r),u=c(o,2),m=l(u,!0);P(u),P(r),_(()=>{a=x(r,1,`option svelte-56kutb`,null,a,{selected:i.value?.$asset===s(t).id}),z(o,`src`,s(t).rawUrl),n(m,s(t).id)}),p(`click`,r,()=>d(s(t).id)),f(e,r)}),f(e,r)};r(u,e=>{s(o).length===0?e(m):e(h,-1)}),P(a),f(e,a)};r(V,e=>{s(a)&&e(H)}),P(C),P(g),_(()=>{T=x(w,1,`current svelte-56kutb`,null,T,{empty:!i.value}),z(w,`title`,i.value?`Change ${i.label}`:`Select ${i.label}`)}),p(`click`,w,()=>v(a,!s(a))),f(e,g),R()}d([`click`]);var fr=e(`<span class="caption svelte-gjs979"> </span>`),pr=e(`<div class="color-field svelte-gjs979"><!> <div class="color-input control svelte-gjs979"><span class="swatch-slot svelte-gjs979"><input class="swatch svelte-gjs979" type="color" title="Open color picker"/></span> <input class="hex-input svelte-gjs979" type="text" maxlength="7" spellcheck="false"/></div></div>`);function mr(e,t){N(t,!0);let a=b(null),o=/^#[0-9a-f]{6}$/i;function u(e){let t=e.startsWith(`#`)?e:`#${e}`;return o.test(t)?t.toUpperCase():null}function d(e){let n=e.currentTarget.value.toUpperCase();v(a,n,!0),t.onChange?.(n)}function m(e){let n=e.currentTarget.value.toUpperCase();v(a,n,!0),t.onCommit(n)}function h(e){v(a,e.currentTarget.value,!0);let n=u(s(a));n&&t.onChange?.(n)}function g(){let e=u(s(a)??t.value);e&&t.onCommit(e),v(a,null)}function y(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(v(a,null),e.currentTarget.value=t.value,e.currentTarget.blur())}var x=pr(),S=l(x),C=e=>{var r=fr(),i=l(r,!0);P(r),_(()=>n(i,t.caption)),f(e,r)};r(S,e=>{t.caption&&e(C)});var T=c(S,2),E=l(T),D=l(E);A(D),P(E);var O=c(E,2);A(O),P(T),P(x),_(()=>{w(D,t.value),z(D,`aria-label`,`${t.label} color picker`),w(O,s(a)??t.value),z(O,`aria-label`,`${t.label} hex value`)}),p(`input`,D,d),p(`change`,D,m),i(`focus`,O,()=>v(a,t.value,!0)),p(`input`,O,h),i(`blur`,O,g),p(`keydown`,O,y),f(e,x),R()}d([`input`,`change`,`keydown`]);var hr=e(`<div class="field svelte-rsjkek"><!></div>`),gr=e(`<section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <!> <!></section> <!>`,1);function _r(e,n){N(n,!0);let i=m(()=>X.validateParameters(n.parameters)),a=m(()=>n.presetCapabilities[s(i).preset]?.maxWidth!==!1);function o(e){n.onParametersCommit(e)}function d(e){if(n.presetCapabilities[e]?.maxWidth===!1){let{maxWidth:t,...n}=s(i);o({...n,preset:e});return}o({...s(i),preset:e})}function p(e,t){let r=we(s(i),e);t?o(r):n.onParametersChange(r)}function h(e){return{...s(i),chromaKey:e}}let g=[{key:`colorCutoff`,label:`Color cutoff`,icon:`cutoff`,min:0,max:.6,step:.005},{key:`colorFeathering`,label:`Color feathering`,icon:`color-feather`,min:0,max:.8,step:.005},{key:`maskFeathering`,label:`Mask feathering`,icon:`mask-feather`,min:0,max:1,step:.01},{key:`sharpening`,label:`Sharpening`,icon:`sharpen`,min:0,max:1,step:.01},{key:`despill`,label:`Despill`,icon:`despill`,min:0,max:1,step:.01},{key:`despillLuminanceAdd`,label:`Despill lum. add`,icon:`despill-lum`,min:0,max:1,step:.01}];function _(e,t,r){let a=h({...s(i).chromaKey,[e]:t});r?o(a):n.onParametersChange(a)}function v(e){return Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,`0`)}function y(e){return`#${v(e[0])}${v(e[1])}${v(e[2])}`}function b(e){let t=parseInt(e.slice(1),16);return[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}function x(e,t){let r=h({...s(i).chromaKey,keyColor:b(e)});t?o(r):n.onParametersChange(r)}function S(e,t){let{[e]:n,...r}=s(i);o(t?{...r,[e]:t}:r)}var w=gr(),T=I(w),E=l(T);St(E,{children:(e,t)=>{C(),f(e,u(`Video`))},$$slots:{default:!0}});var D=c(E,2);Et(l(D),{label:`Preset`,caption:`Preset`,get value(){return s(i).preset},get options(){return n.presetNames},onChange:d,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),P(D);var O=c(D,2),k=e=>{var t=hr(),n=l(t);{let e=e=>{$(e,{name:`width`})},t=m(()=>s(i).maxWidth??null);bt(n,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return s(t)},onChange:e=>p(e,!1),onCommit:e=>p(e,!0),icon:e,$$slots:{icon:!0}})}P(t),f(e,t)};r(O,e=>{s(a)&&e(k)}),P(T);var A=c(T,2),j=l(A);St(j,{children:(e,t)=>{C(),f(e,u(`Chroma key`))},$$slots:{default:!0}});var M=c(j,2),F=l(M);{let e=m(()=>y(s(i).chromaKey.keyColor));mr(F,{label:`Key color`,caption:`Key color`,get value(){return s(e)},onChange:e=>x(e,!1),onCommit:e=>x(e,!0)})}P(M),t(c(M,2),17,()=>g,e=>e.key,(e,t)=>{var n=hr();bt(l(n),{get label(){return s(t).label},get caption(){return s(t).label},get min(){return s(t).min},get max(){return s(t).max},get step(){return s(t).step},get value(){return s(i).chromaKey[s(t).key]},onChange:e=>_(s(t).key,e??s(t).min,!1),onCommit:e=>_(s(t).key,e??s(t).min,!0),icon:e=>{$(e,{get name(){return s(t).icon}})},$$slots:{icon:!0}}),P(n),f(e,n)}),P(A);var L=c(A,2),z=l(L);St(z,{children:(e,t)=>{C(),f(e,u(`References`))},$$slots:{default:!0}});var B=c(z,2);dr(B,{label:`Mask`,caption:`Mask`,get value(){return s(i).mask},expectedTypes:[`image`],get excludeAssetId(){return n.asset.id},onChange:e=>S(`mask`,e)}),dr(c(B,2),{label:`Fallback`,caption:`Fallback`,get value(){return s(i).fallback},expectedTypes:[`image`],get excludeAssetId(){return n.asset.id},onChange:e=>S(`fallback`,e)}),P(L),At(c(L,2),{get proxy(){return n.asset.proxy},showDimensions:!0,showDuration:!0}),f(e,w),R()}var vr=e(`<div class="preview-column svelte-1y3xro5"><div class="compare-row svelte-1y3xro5"><figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Input</figcaption> <div class="video-frame svelte-1y3xro5"><!></div></figure> <figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Keyed</figcaption> <div class="video-frame checkerboard svelte-1y3xro5"><!></div></figure></div> <!></div>`),yr=e(`<p class="svelte-1y3xro5">No proxy yet — add the asset to a manifest to process it.</p>`),br=e(`<div class="stage svelte-1y3xro5"><!></div>`);function xr(e,t){N(t,!0);let n=b(void 0),i=b(void 0);function a(e){if(!e)return;let t=_e.assetById(e);if(!(!t?.proxy||t.proxy.width===void 0||t.proxy.height===void 0))return{kind:`image`,src:t.proxy.url,width:t.proxy.width,height:t.proxy.height}}let u=m(()=>{if(!t.asset.proxy||t.asset.proxy.width===void 0||t.asset.proxy.height===void 0||t.asset.proxy.durationMs===void 0)return null;try{let e=X.validateParameters(t.parameters),n=a(e.mask?.$asset),r=a(e.fallback?.$asset);return{kind:`chroma-key-video`,src:t.asset.proxy.url,width:t.asset.proxy.width,height:t.asset.proxy.height,durationMs:t.asset.proxy.durationMs,chromaKey:e.chromaKey,...n?{mask:n}:{},...r?{fallback:r}:{}}}catch{return null}}),d=m(()=>s(u)?{kind:`video`,src:s(u).src,width:s(u).width,height:s(u).height,durationMs:s(u).durationMs}:null);o(()=>{let e=s(n),t=s(i);if(!e||!t)return;function r(){Math.abs(t.currentTime-e.currentTime)>.25&&(t.currentTime=e.currentTime)}function a(){r(),t.play().catch(()=>{})}function o(){t.pause(),t.currentTime=e.currentTime}function c(){t.currentTime=e.currentTime}return e.addEventListener(`play`,a),e.addEventListener(`playing`,a),e.addEventListener(`pause`,o),e.addEventListener(`ended`,o),e.addEventListener(`seeked`,c),e.addEventListener(`timeupdate`,r),c(),e.paused||t.play().catch(()=>{}),()=>{e.removeEventListener(`play`,a),e.removeEventListener(`playing`,a),e.removeEventListener(`pause`,o),e.removeEventListener(`ended`,o),e.removeEventListener(`seeked`,c),e.removeEventListener(`timeupdate`,r)}});var p=br(),h=l(p),y=e=>{var t=vr(),r=l(t),a=l(r),o=c(l(a),2);let p;g(l(o),()=>s(d).src,e=>{on(e,{get src(){return s(d)},loop:!0,get videoElement(){return s(i)},set videoElement(e){v(i,e,!0)}})}),P(o),P(a);var m=c(a,2),h=c(l(m),2);let y;g(l(h),()=>`${s(u).src}|${s(u).mask?.src??``}`,e=>{_n(e,{get src(){return s(u)},get videoElement(){return s(n)},set videoElement(e){v(n,e,!0)}})}),P(h),P(m),P(r),Ke(c(r,2),{get media(){return s(n)},showScrub:!0,showVolume:!1}),P(t),_(()=>{p=T(o,``,p,{"aspect-ratio":`${s(d).width??``} / ${s(d).height??``}`}),y=T(h,``,y,{"aspect-ratio":`${s(u).width??``} / ${s(u).height??``}`})}),f(e,t)},x=e=>{f(e,yr())};r(h,e=>{s(u)&&s(d)?e(y):e(x,-1)}),P(p),f(e,p),R()}var Sr=e(`<section class="svelte-3jblpy"><!> <div class="field svelte-3jblpy"><!></div></section> <!>`,1);function Cr(e,t){N(t,!0);let n=m(()=>K.validateParameters(t.parameters));function r(e){let r={...s(n),preset:e};t.onParametersCommit(r)}var i=Sr(),a=I(i),o=l(a);St(o,{children:(e,t)=>{C(),f(e,u(`Audio`))},$$slots:{default:!0}});var d=c(o,2);Et(l(d),{label:`Preset`,caption:`Preset`,get value(){return s(n).preset},get options(){return t.presetNames},onChange:r,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),P(d),P(a),At(c(a,2),{get proxy(){return t.asset.proxy},showDuration:!0}),f(e,i),R()}function wr(e,t){N(t,!0);{let n=m(()=>t.asset.proxy?.url??t.asset.rawUrl);tt(e,{get src(){return s(n)}})}R()}var Tr={[ye.type]:{panel:Mt,editor:bn,thumbnail:Sn},[xe.type]:{panel:An,editor:Wn,thumbnail:Sn},[q.type]:{panel:qn,editor:Zn,thumbnail:$n},[X.type]:{panel:_r,editor:xr,thumbnail:$n},[K.type]:{panel:Cr,editor:at,thumbnail:wr}},Er=Q.project(Tr,`editor implementation`),Dr=e(`<p class="error svelte-1f5yh58">This file type is not supported (raster images, video, or audio).</p>`),Or=e(`<button> </button>`),kr=e(`<p class="empty-manifests svelte-1f5yh58">No manifests available — this asset will be unassigned.</p>`),Ar=e(`<div class="manifest-list svelte-1f5yh58"><!></div>`),jr=e(`<p class="hint warn svelte-1f5yh58"> </p>`),Mr=e(`<p class="hint warn svelte-1f5yh58">An asset with this id already exists.</p>`),Nr=e(`<div class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Type</span> <div class="segmented svelte-1f5yh58"></div></div> <label class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Id</span> <input class="control svelte-1f5yh58" type="text" spellcheck="false"/></label> <div class="row manifests svelte-1f5yh58"><span class="label svelte-1f5yh58">Manifests</span> <!></div> <!> <!>`,1),Pr=e(`<div class="backdrop svelte-1f5yh58" role="presentation"><div class="dialog svelte-1f5yh58" role="dialog" aria-label="Import asset" tabindex="-1"><h2 class="svelte-1f5yh58">Import asset</h2> <p class="file-name svelte-1f5yh58"> </p> <p class="destination svelte-1f5yh58"> </p> <!> <div class="actions svelte-1f5yh58"><button class="control">Cancel</button> <button class="control primary"> </button></div></div></div>`);function Fr(e,u){N(u,!0);let d=m(()=>le(u.file.name)),h=b(`image`),g=b(`asset`),S=b(y([])),C=b(!1),w=b(null),T=m(()=>_e.manifestNames);o(()=>{v(h,le(u.file.name)[0]??`image`,!0),v(g,ue(u.file.name),!0),v(S,s(T).length===0?[]:[s(T).includes(`main`)?`main`:s(T)[0]],!0)});let E=m(()=>_e.state?.assets.some(e=>e.id===s(g))??!1),D=m(()=>Y(s(g))),O=m(()=>s(D)===null),k=m(()=>s(O)&&!s(E)&&s(d).length>0&&!s(C));function j(e){v(S,s(S).includes(e)?s(S).filter(t=>t!==e):[...s(S),e],!0)}async function M(){if(!s(k))return;let e=s(g),t=s(h),n=[...s(S)],r=u.file,i=u.folder;v(C,!0),v(w,null);try{await _e.mutateFromServer(()=>ge(r,t,e,i,n),{dependencies:[`asset:${e}`,`folder:${i}`,...n.map(e=>`manifest:${e}`)]}),u.onDone(e)}catch(e){v(w,e instanceof Error?e.message:String(e),!0)}finally{v(C,!1)}}var F=Pr();i(`keydown`,a,e=>Ee(e,{busy:s(C),confirmDisabled:!s(k),onConfirm:()=>void M(),onCancel:u.onCancel}));var z=l(F),B=c(l(z),2),V=l(B,!0);P(B);var H=c(B,2),U=l(H);P(H);var W=c(H,2),ee=e=>{f(e,Dr())},G=e=>{var i=Nr(),a=I(i),o=c(l(a),2);t(o,20,()=>s(d),e=>e,(e,t)=>{var r=Or();let i;var a=l(r,!0);P(r),_(()=>{r.disabled=s(C),i=x(r,1,`svelte-1f5yh58`,null,i,{on:s(h)===t}),n(a,t)}),p(`click`,r,()=>v(h,t,!0)),f(e,r)}),P(o),P(a);var u=c(a,2),m=c(l(u),2);A(m),P(u);var y=c(u,2),b=c(l(y),2),k=e=>{f(e,kr())},M=e=>{var t=Ar();Ce(l(t),{get manifests(){return s(T)},get selected(){return s(S)},passive:[],onToggle:j,get disabled(){return s(C)}}),P(t),f(e,t)};r(b,e=>{s(T).length===0?e(k):e(M,-1)}),P(y);var N=c(y,2),F=e=>{var t=jr(),r=l(t,!0);P(t),_(()=>n(r,s(D))),f(e,t)},R=e=>{f(e,Mr())};r(N,e=>{s(O)?s(E)&&e(R,1):e(F)});var z=c(N,2),B=e=>{var t=jr(),r=l(t,!0);P(t),_(()=>n(r,s(w))),f(e,t)};r(z,e=>{s(w)&&e(B)}),_(()=>m.disabled=s(C)),L(m,()=>s(g),e=>v(g,e)),f(e,i)};r(W,e=>{s(d).length===0?e(ee):e(G,-1)});var K=c(W,2),q=l(K),te=c(q,2),ne=l(te,!0);P(te),P(K),P(z),P(F),_(()=>{n(V,u.file.name),n(U,`Destination: ${(u.folder||`Root`)??``}`),q.disabled=s(C),te.disabled=!s(k),n(ne,s(C)?`Importing…`:`Import`)}),p(`click`,F,e=>{e.target===e.currentTarget&&!s(C)&&u.onCancel()}),p(`click`,q,function(...e){u.onCancel?.apply(this,e)}),p(`click`,te,()=>void M()),f(e,F),R()}d([`click`]);var Ir=e(`<div class="field wide svelte-n5o24b"><span>Manifests</span> <!></div>`),Lr=e(`<p class="warning svelte-n5o24b"> </p>`),Rr=e(`<p class="warning svelte-n5o24b">An asset with this ID already exists.</p>`),zr=e(`<div class="backdrop svelte-n5o24b" role="presentation"><div class="dialog svelte-n5o24b" role="dialog" aria-label="Import from Figma" tabindex="-1"><h2 class="svelte-n5o24b">Import from Figma</h2> <p class="destination svelte-n5o24b"> </p> <label class="field wide svelte-n5o24b"><span>Selection link</span> <input class="control" type="url" placeholder="https://www.figma.com/design/…?node-id=…"/></label> <div class="row svelte-n5o24b"><label class="field svelte-n5o24b"><span>Type</span> <select class="control"><option>Image</option><option>Slice</option></select></label> <label class="field svelte-n5o24b"><span>Export scale</span> <select class="control"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label></div> <label class="field wide svelte-n5o24b"><span>Asset ID</span> <input class="control" spellcheck="false"/></label> <!> <!> <!> <!> <div class="actions svelte-n5o24b"><button class="control">Cancel</button> <button class="control primary"> </button></div></div></div>`);function Br(e,t){N(t,!0);let o=b(``),u=b(y(_e.state?.importDefaults.figma.scale??2)),d=b(`image`),h=b(`asset`),g=b(y(Se(_e.manifestNames))),x=b(!1),S=b(null),C=m(()=>_e.manifestNames),w=m(()=>Y(s(h))),T=m(()=>_e.state?.assets.some(e=>e.id===s(h))??!1),E=m(()=>s(o).trim().length>0&&s(w)===null&&!s(T)&&!s(x));function D(e){v(g,s(g).includes(e)?s(g).filter(t=>t!==e):[...s(g),e],!0)}async function O(){if(!s(E))return;let e=s(h),n=[...s(g)],r=s(o),i=s(u),a=s(d),c=t.folder;v(x,!0),v(S,null);try{await _e.mutateFromServer(()=>me({url:r,scale:i,type:a,id:e,folder:c,manifests:n}),{dependencies:[`asset:${e}`,`folder:${c}`,...n.map(e=>`manifest:${e}`)]}),t.onDone(e)}catch(e){v(S,e instanceof Error?e.message:String(e),!0)}finally{v(x,!1)}}var k=zr();i(`keydown`,a,e=>Ee(e,{busy:s(x),confirmDisabled:!s(E),onConfirm:()=>void O(),onCancel:t.onCancel}));var j=l(k),M=c(l(j),2),I=l(M);P(M);var z=c(M,2),B=c(l(z),2);A(B),P(z);var V=c(z,2),H=l(V),U=c(l(H),2),W=l(U);W.value=W.__value=`image`;var ee=c(W);ee.value=ee.__value=`slice`,P(U),P(H);var G=c(H,2),K=c(l(G),2),q=l(K);q.value=q.__value=1;var te=c(q);te.value=te.__value=2;var ne=c(te);ne.value=ne.__value=3;var re=c(ne);re.value=re.__value=4,P(K),P(G),P(V);var J=c(V,2),ie=c(l(J),2);A(ie),P(J);var ae=c(J,2),X=e=>{var t=Ir();Ce(c(l(t),2),{get manifests(){return s(C)},get selected(){return s(g)},passive:[],onToggle:D,get disabled(){return s(x)}}),P(t),f(e,t)};r(ae,e=>{s(C).length>0&&e(X)});var oe=c(ae,2),Z=e=>{var t=Lr(),r=l(t,!0);P(t),_(()=>n(r,s(w))),f(e,t)};r(oe,e=>{s(w)&&e(Z)});var Q=c(oe,2),se=e=>{f(e,Rr())};r(Q,e=>{s(T)&&e(se)});var ce=c(Q,2),le=e=>{var t=Lr(),r=l(t,!0);P(t),_(()=>n(r,s(S))),f(e,t)};r(ce,e=>{s(S)&&e(le)});var ue=c(ce,2),de=l(ue),fe=c(de,2),pe=l(fe,!0);P(fe),P(ue),P(j),P(k),_(()=>{n(I,`Destination: ${(t.folder||`Root`)??``}`),B.disabled=s(x),U.disabled=s(x),K.disabled=s(x),ie.disabled=s(x),de.disabled=s(x),fe.disabled=!s(E),n(pe,s(x)?`Importing…`:`Import`)}),p(`click`,k,e=>{e.target===e.currentTarget&&!s(x)&&t.onCancel()}),L(B,()=>s(o),e=>v(o,e)),F(U,()=>s(d),e=>v(d,e)),F(K,()=>s(u),e=>v(u,e)),L(ie,()=>s(h),e=>v(h,e)),p(`click`,de,function(...e){t.onCancel?.apply(this,e)}),p(`click`,fe,()=>void O()),f(e,k),R()}d([`click`]);function Vr(e,t,n=[]){let r=e!==t&&!J(t,e)&&te(e)!==t;if(!r||n.length===0)return r;let i=ie(t,de(e)),a=new Set(n.filter(t=>!J(t,e)).map(ne));return n.filter(t=>J(t,e)).every(t=>!a.has(ne(re(t,e,i))))}function Hr(e,t,n,r=[]){return e&&t!==null&&Vr(t,n,r)}var Ur=O(`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M1.25 4.25A1.75 1.75 0 0 1 3 2.5h2.45c.55 0 1.06.26 1.39.7l.6.8H13a1.75 1.75 0 0 1 1.75 1.75v5.5A1.75 1.75 0 0 1 13 13H3a1.75 1.75 0 0 1-1.75-1.75v-7Z" fill="currentColor"></path><path d="M1.75 6h12.5" stroke="currentColor" stroke-opacity="0.35"></path></svg>`);function Wr(e,t){let n=D(t,`size`,3,14);var r=Ur();_(()=>{z(r,`width`,n()),z(r,`height`,n())}),f(e,r)}var Gr=e(`<span class="asset-warning svelte-ftwms1">⚠</span>`),Kr=e(`<div class="asset-row svelte-ftwms1"><button class="row asset current svelte-ftwms1" draggable="true" aria-current="page"><span class="glyph asset-glyph svelte-ftwms1">◆</span> <span class="label svelte-ftwms1"> </span> <!></button></div>`),qr=e(`<div class="folder-row svelte-ftwms1"><button draggable="true"><span class="glyph svelte-ftwms1"><!></span><span class="label svelte-ftwms1"> </span><span class="count svelte-ftwms1"> </span></button></div> <!>`,1),Jr=e(`<p class="dialog-warning svelte-ftwms1"> </p>`),Yr=e(`<p class="dialog-warning svelte-ftwms1">A sibling folder with this name already exists.</p>`),Xr=e(`<label class="dialog-row svelte-ftwms1"><span class="svelte-ftwms1">Name</span> <input class="control svelte-ftwms1" spellcheck="false"/></label> <p class="dialog-path svelte-ftwms1"> </p> <!> <!> <!>`,1),Zr=e(`<p class="dialog-text svelte-ftwms1">Delete <strong> </strong> </p> <!> <!>`,1),Qr=e(`<aside class="directory svelte-ftwms1" aria-label="Asset folders"><header class="svelte-ftwms1"><strong class="svelte-ftwms1">Folders</strong> <div class="actions svelte-ftwms1"><button class="icon-button svelte-ftwms1">+</button> <button class="icon-button svelte-ftwms1">✎</button> <button class="icon-button danger svelte-ftwms1">×</button></div></header> <div class="tree svelte-ftwms1"><button><span class="glyph svelte-ftwms1">▦</span><span class="label svelte-ftwms1">All Assets</span><span class="count svelte-ftwms1"> </span></button> <button><span class="glyph svelte-ftwms1">⌂</span><span class="label svelte-ftwms1">Root</span><span class="count svelte-ftwms1"> </span></button> <!> <!></div></aside> <!> <!>`,1);function $r(e,a){N(a,!0);let u=D(a,`activeAsset`,3,null),d=D(a,`sharedDraggedFolder`,3,null),g=b(null),y=b(null),C=m(()=>d()??s(y)),w=m(()=>_e.state?.library.folders??[]),E=m(()=>_e.state?.assets??[]),O=m(()=>[...s(w)].sort((e,t)=>e.localeCompare(t)));function k(e){return s(E).filter(t=>t.folder===e).length}function j(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=Hr(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,s(C),t,s(w));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),v(g,t,!0))}function M(e,t){e.preventDefault(),v(g,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&a.onMoveAssets(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`)||s(C);r&&Vr(r,t,s(w))&&B(r,t)}function F(e,t){u()||a.selectedFolder!==null&&J(a.selectedFolder,e)&&a.onSelect(`${t}${a.selectedFolder.slice(e.length)}`,!0)}async function B(e,t){let n=ie(t,de(e)),r=_e.mutate(()=>Z(e,t),fe(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});F(e,n);try{await r}catch{s(w).some(t=>J(t,e))&&F(n,e)}finally{v(y,null),a.onFolderDragEnd?.()}}let V=b(null),H=b(``),G=b(null),K=b(null),q=b(``),re=b(void 0),Y=b(!1),ae=b(null),X=0,Q=m(()=>a.selectedFolder!==null&&a.selectedFolder!==``?a.selectedFolder:null),se=m(()=>s(q)===``?null:W(s(q))),le=m(()=>ie(s(V)===`rename`?te(s(G)??``):s(H),s(q).normalize(`NFC`))),ue=m(()=>s(q)!==``&&s(w).some(e=>e!==(s(V)===`rename`?s(G):null)&&ne(e)===ne(s(le)))),me=m(()=>s(q)!==``&&!s(se)&&!s(ue)&&!s(Y));function ge(e=a.selectedFolder??``){X+=1,v(H,e,!0),v(q,``),v(ae,null),v(V,`create`),h().then(()=>s(re)?.focus())}let ve=0;o(()=>{a.createRequest!==null&&a.createRequest.id!==ve&&(ve=a.createRequest.id,ge(a.createRequest.parent))});function ye(e,t,n=null){e.preventDefault(),e.stopPropagation(),a.onContextMenu(e.clientX,e.clientY,t,n)}function be(e){e!==null&&(X+=1,v(G,e,!0),v(q,de(e),!0),v(ae,null),v(V,`rename`),h().then(()=>s(re)?.focus()))}let xe=0;o(()=>{a.renameRequest!==null&&a.renameRequest.id!==xe&&(xe=a.renameRequest.id,be(a.renameRequest.path))});function $(e){e!==null&&(X+=1,v(K,e,!0),v(ae,null),v(V,`delete`))}let Se=0;o(()=>{a.deleteRequest!==null&&a.deleteRequest.id!==Se&&(Se=a.deleteRequest.id,$(a.deleteRequest.path))});function Ce(){s(Y)||(X+=1,v(V,null),v(ae,null))}async function we(){if(!s(me))return;let e=s(V),t=s(q),n=t.normalize(`NFC`),r=a.selectedFolder,i=null,o=null,c=null;v(Y,!0),v(ae,null);try{if(e===`create`){let e=s(le),t=_e.mutate(()=>ee(e),he(e),{dependencies:[`folder:${s(H)}`,`folder:${e}`],invalidatesOnFailure:[`folder:${e}`]});u()||a.onSelect(e,!0),i=()=>{!u()&&a.selectedFolder===e&&!s(w).includes(e)&&a.onSelect(r,!0)},o=()=>!s(w).includes(e),v(V,null),c=++X,v(Y,!1),await t}else if(e===`rename`&&s(G)!==null){let e=s(G),t=s(le),r=_e.mutate(()=>U(e,n),ce(e,n),{dependencies:[`folder:${e}`,`folder:${t}`],invalidatesOnFailure:[`folder:${e}`,`folder:${t}`]});F(e,t),i=()=>{s(w).some(t=>J(t,e))&&F(t,e)},o=()=>s(w).some(t=>J(t,e)),v(V,null),c=++X,v(Y,!1),await r}}catch(n){o?.()&&i?.(),c!==null&&X===c&&o?.()&&(v(V,e,!0),v(q,t,!0),v(ae,n instanceof Error?n.message:String(n),!0))}finally{v(Y,!1)}}let Te=m(()=>s(K)===null?[]:s(w).filter(e=>J(e,s(K)??``))),Ee=m(()=>s(K)===null?[]:s(E).filter(e=>J(e.folder,s(K)??``))),De=m(()=>new Set(s(Ee).map(e=>e.id))),ke=m(()=>s(Ee).flatMap(e=>e.references.incoming.filter(e=>!s(De).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e.id}`)));async function Ae(){if(s(K)===null)return;let e=s(K),t=te(e),n=a.selectedFolder,r=u()!==null&&J(u().folder,e),i=r?u()?.id:null;v(Y,!0),v(ae,null);let o=_e.mutate(()=>oe(e),pe(e),{dependencies:[`folder:${e}`],invalidatesOnFailure:[`folder:${e}`]});r?a.onActiveAssetDeleted?.(t):!u()&&a.selectedFolder!==null&&J(a.selectedFolder,e)&&a.onSelect(t,!0),v(V,null);let c=++X;v(Y,!1);try{await o}catch(r){let o=s(w).some(t=>J(t,e))||s(E).some(t=>J(t.folder,e));o&&i?a.onActiveAssetDeleteFailed?.(i):o&&a.selectedFolder===t&&a.onSelect(n,!0),o&&X===c&&(v(V,`delete`),v(K,e,!0),v(ae,r instanceof Error?r.message:String(r),!0))}finally{v(Y,!1)}}function je(e){u()&&(e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify([u().id])),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`))}var Me=Qr(),Ne=I(Me),Pe=l(Ne),Fe=c(l(Pe),2),Ie=l(Fe),Le=c(Ie,2),Re=c(Le,2);P(Fe),P(Pe);var ze=c(Pe,2),Be=l(ze);let Ve;var He=c(l(Be),2),Ue=l(He,!0);P(He),P(Be);var We=c(Be,2);let Ge;var Ke=c(l(We),2),qe=l(Ke,!0);P(Ke),P(We);var Je=c(We,2),Ye=e=>{var t=Kr();T(t,``,{},{"--depth":0});var a=l(t),o=c(l(a),2),s=l(o,!0);P(o);var d=c(o,2),p=e=>{var t=Gr();_(e=>z(t,`title`,e),[()=>u().warnings.join(`
|
|
105
|
+
`)]),f(e,t)};r(d,e=>{u().warnings.length>0&&e(p)}),P(a),P(t),_(()=>{z(a,`title`,u().id),n(s,u().id)}),i(`dragstart`,a,je),f(e,t)};r(Je,e=>{u()?.folder===``&&e(Ye)}),t(c(Je,2),16,()=>s(O),e=>e,(e,t)=>{let o=m(()=>t.split(`/`).length-1);var d=qr(),h=I(d);let b;var S=l(h);let C;var w=l(S);Wr(l(w),{}),P(w);var E=c(w),D=l(E,!0);P(E);var O=c(E),A=l(O,!0);P(O),P(S),P(h);var N=c(h,2),F=e=>{var t=Kr();let a;var d=l(t),p=c(l(d),2),m=l(p,!0);P(p);var h=c(p,2),g=e=>{var t=Gr();_(e=>z(t,`title`,e),[()=>u().warnings.join(`
|
|
106
|
+
`)]),f(e,t)};r(h,e=>{u().warnings.length>0&&e(g)}),P(d),P(t),_(()=>{a=T(t,``,a,{"--depth":s(o)+1}),z(d,`title`,u().id),n(m,u().id)}),i(`dragstart`,d,je),f(e,t)};r(N,e=>{u()?.folder===t&&e(F)}),_((e,r)=>{b=T(h,``,b,{"--depth":s(o)}),C=x(S,1,`row folder svelte-ftwms1`,null,C,{selected:!u()&&a.selectedFolder===t,"drop-target":s(g)===t}),z(E,`title`,t),n(D,e),n(A,r)},[()=>de(t),()=>k(t)]),p(`click`,S,()=>a.onSelect(t)),p(`contextmenu`,S,e=>ye(e,t,t)),i(`dragstart`,S,e=>{v(y,t,!0),a.onFolderDragStart?.(t),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),i(`dragend`,S,()=>{v(y,null),a.onFolderDragEnd?.(),v(g,null)}),i(`dragover`,S,e=>j(e,t)),i(`dragleave`,S,()=>v(g,null)),i(`drop`,S,e=>M(e,t)),f(e,d)}),P(ze),P(Ne);var Xe=c(Ne,2),Ze=e=>{{let t=m(()=>s(V)===`create`?`Create folder`:`Rename folder`),i=m(()=>s(Y)?`Saving…`:s(V)===`create`?`Create`:`Rename`),a=m(()=>!s(me));Oe(e,{get title(){return s(t)},get confirmLabel(){return s(i)},get confirmDisabled(){return s(a)},get busy(){return s(Y)},onConfirm:()=>void we(),onCancel:Ce,children:(e,t)=>{var i=Xr(),a=I(i),o=c(l(a),2);A(o),S(o,e=>v(re,e),()=>s(re)),P(a);var u=c(a,2),d=l(u,!0);P(u);var p=c(u,2),m=e=>{var t=Jr(),r=l(t,!0);P(t),_(()=>n(r,s(se))),f(e,t)};r(p,e=>{s(se)&&e(m)});var h=c(p,2),g=e=>{f(e,Yr())};r(h,e=>{s(ue)&&e(g)});var y=c(h,2),b=e=>{var t=Jr(),r=l(t,!0);P(t),_(()=>n(r,s(ae))),f(e,t)};r(y,e=>{s(ae)&&e(b)}),_(()=>{o.disabled=s(Y),n(d,s(le)||`Root`)}),L(o,()=>s(q),e=>v(q,e)),f(e,i)},$$slots:{default:!0}})}};r(Xe,e=>{(s(V)===`create`||s(V)===`rename`)&&e(Ze)});var Qe=c(Xe,2),$e=e=>{{let t=m(()=>s(Y)?`Deleting…`:`Delete recursively`);Oe(e,{title:`Delete folder`,get confirmLabel(){return s(t)},danger:!0,get busy(){return s(Y)},onConfirm:()=>void Ae(),onCancel:Ce,children:(e,t)=>{var i=Zr(),a=I(i),o=c(l(a)),u=l(o,!0);P(o);var d=c(o);P(a);var p=c(a,2),m=e=>{var t=Jr(),r=l(t);P(t),_(e=>n(r,`This leaves ${s(ke).length??``} external reference(s) dangling:
|
|
107
|
+
${e??``}`),[()=>s(ke).join(`, `)]),f(e,t)};r(p,e=>{s(ke).length>0&&e(m)});var h=c(p,2),g=e=>{var t=Jr(),r=l(t,!0);P(t),_(()=>n(r,s(ae))),f(e,t)};r(h,e=>{s(ae)&&e(g)}),_(()=>{n(u,s(K)),n(d,`, ${s(Te).length-1} descendant folder(s),
|
|
108
|
+
and ${s(Ee).length??``} asset(s)? Raw and proxy files are removed.`)}),f(e,i)},$$slots:{default:!0}})}};r(Qe,e=>{s(V)===`delete`&&s(K)!==null&&e($e)}),_(e=>{z(Ie,`title`,u()?`Create folder beside the current asset`:`Create child folder`),z(Le,`title`,u()?`Rename the current asset folder`:`Rename selected folder`),Le.disabled=s(Q)===null,z(Re,`title`,u()?`Delete the current asset folder`:`Delete selected folder`),Re.disabled=s(Q)===null,Ve=x(Be,1,`row special svelte-ftwms1`,null,Ve,{selected:!u()&&a.selectedFolder===null}),n(Ue,s(E).length),Ge=x(We,1,`row special svelte-ftwms1`,null,Ge,{selected:!u()&&a.selectedFolder===``,"drop-target":s(g)===``}),n(qe,e)},[()=>k(``)]),p(`contextmenu`,Ne,e=>ye(e,``)),p(`click`,Ie,()=>ge()),p(`click`,Le,()=>be(s(Q))),p(`click`,Re,()=>$(s(Q))),p(`click`,Be,()=>a.onSelect(null)),p(`click`,We,()=>a.onSelect(``)),i(`dragover`,We,e=>j(e,``)),i(`dragleave`,We,()=>v(g,null)),i(`drop`,We,e=>M(e,``)),f(e,Me),R()}d([`contextmenu`,`click`]);var ei=e(`<button role="menuitem" class="svelte-10jgqdh">Rename</button>`),ti=e(`<button class="danger svelte-10jgqdh" role="menuitem">Delete</button>`),ni=e(`<hr class="svelte-10jgqdh"/>`),ri=e(`<div class="context-menu svelte-10jgqdh" role="menu" aria-label="Library actions" tabindex="-1"><!> <!> <!> <button role="menuitem" class="svelte-10jgqdh">New Directory</button> <button role="menuitem" class="svelte-10jgqdh">Import File</button> <button role="menuitem" class="svelte-10jgqdh">Import from Figma</button> <hr class="svelte-10jgqdh"/> <button role="menuitem" class="svelte-10jgqdh"> </button></div>`);function ii(e,t){N(t,!0);let o=m(()=>Math.max(8,Math.min(t.x,window.innerWidth-176))),u=m(()=>4+ +!!t.onRenameDirectory+ +!!t.onDeleteDirectory),d=m(()=>!!(t.onRenameDirectory||t.onDeleteDirectory)),h=m(()=>1+ +!!s(d)),g=m(()=>s(u)*32+s(h)*9+8),v=m(()=>Math.max(8,Math.min(t.y,window.innerHeight-s(g)))),y=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function b(e){e(),t.onClose()}var x=ri();i(`click`,a,function(...e){t.onClose?.apply(this,e)}),i(`blur`,a,function(...e){t.onClose?.apply(this,e)}),i(`keydown`,a,e=>e.key===`Escape`&&t.onClose()),i(`resize`,a,function(...e){t.onClose?.apply(this,e)}),i(`scroll`,a,function(...e){t.onClose?.apply(this,e)});let S;var C=l(x),w=e=>{var n=ei();p(`click`,n,()=>b(t.onRenameDirectory)),f(e,n)};r(C,e=>{t.onRenameDirectory&&e(w)});var E=c(C,2),D=e=>{var n=ti();p(`click`,n,()=>b(t.onDeleteDirectory)),f(e,n)};r(E,e=>{t.onDeleteDirectory&&e(D)});var O=c(E,2),k=e=>{f(e,ni())};r(O,e=>{s(d)&&e(k)});var A=c(O,2),j=c(A,2),M=c(j,2),F=c(M,4),I=l(F,!0);P(F),P(x),_(()=>{S=T(x,``,S,{left:`${s(o)}px`,top:`${s(v)}px`}),n(I,y)}),p(`contextmenu`,x,e=>e.preventDefault()),p(`click`,A,()=>b(t.onNewDirectory)),p(`click`,j,()=>b(t.onImportFile)),p(`click`,M,()=>b(t.onImportFigma)),p(`click`,F,()=>b(t.onReveal)),f(e,x),R()}d([`contextmenu`,`click`]);export{Vr as a,Er as c,ke as d,Ne as f,Hr as i,St as l,Pe as m,$r as n,Br as o,Fe as p,Wr as r,Fr as s,ii as t,Ie as u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./NblqapDQ.js";import{a as e,r as t}from"./
|
|
1
|
+
import"./NblqapDQ.js";import{a as e,r as t}from"./DRjIin01.js";var n={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};t.updated.check;var r=n;export{r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I@d�\��t��h7
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,I as i,J as a,K as o,M as s,N as c,O as l,P as u,Q as d,S as f,V as p,_ as m,d as h,g,i as _,j as v,l as y,nt as b,ot as x,tt as S,u as C}from"./NblqapDQ.js";import"./xihTtKlq.js";import{O as w,t as T}from"./
|
|
1
|
+
import{A as e,C as t,D as n,E as r,I as i,J as a,K as o,M as s,N as c,O as l,P as u,Q as d,S as f,V as p,_ as m,d as h,g,i as _,j as v,l as y,nt as b,ot as x,tt as S,u as C}from"./NblqapDQ.js";import"./xihTtKlq.js";import{O as w,t as T}from"./C7OUKWnm.js";var E={"arrow-up":`<path d="M12 19V5"/><path d="M6 11l6-6 6 6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="M13 6l6 6-6 6"/>`,"arrow-down":`<path d="M12 5v14"/><path d="M6 13l6 6 6-6"/>`,"arrow-left":`<path d="M19 12H5"/><path d="M11 6l-6 6 6 6"/>`,sort:`<path d="m3 16 4 4 4-4"/><path d="M7 20V4"/><path d="M11 4h10"/><path d="M11 8h7"/><path d="M11 12h4"/>`,"asset-type":`<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/>`,manifest:`<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><path d="M10 9H8"/><path d="M16 13H8"/><path d="M16 17H8"/>`,"git-branch":`<path d="M15 6a9 9 0 0 0-9 9V3"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/>`,width:`<path d="M3 12h18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>`,ratio:`<rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/>`,preset:`<path d="M4 7h10"/><circle cx="17" cy="7" r="2"/><path d="M20 17H10"/><circle cx="7" cy="17" r="2"/>`,cutoff:`<circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor" stroke="none"/>`,"color-feather":`<circle cx="12" cy="12" r="8" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,"mask-feather":`<rect x="4" y="4" width="16" height="16" rx="3" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,sharpen:`<path d="M4 18l8-12 8 12"/><path d="M4 18h16"/>`,despill:`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z"/>`,"despill-lum":`<path d="M12 3s5.5 5.5 5.5 10a5.5 5.5 0 0 1-11 0c0-4.5 5.5-10 5.5-10z"/><path d="M12 10v5M9.5 12.5h5"/>`},D=v(`<svg class="icon svelte-jamecx" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg>`);function O(e,t){let n=_(t,`size`,3,16);var r=D();f(r,()=>E[t.name],!0),x(r),p(()=>{C(r,`width`,n()),C(r,`height`,n())}),l(e,r)}function k(e){return e.length===0?[]:[e.includes(`main`)?`main`:e[0]]}function A(e,t){return w(e)??(t.has(e)?`An asset with id "${e}" already exists.`:null)}function j(e,t,n=[]){let r=e;for(let i of t)i.kind===`unsupported`||Object.hasOwn(e,i.token)||(r===e&&(r={...e}),r[i.token]={id:i.kind===`new`?i.proposedId:i.assetId,type:i.kind===`new`?i.compatibleTypes[0]??``:i.compatibleTypes.includes(i.currentType)?i.currentType:``,manifests:i.kind===`new`?k(n):[],error:null,busy:!1});return r}var M=e(`<span class="color-dot svelte-151zph4"></span>`),N=e(`<span class="via svelte-151zph4"> </span>`),P=e(`<label><input type="checkbox" class="svelte-151zph4"/> <span class="marker svelte-151zph4" aria-hidden="true"><!></span> <span class="name svelte-151zph4"> </span> <!></label>`),F=e(`<div class="manifest-selector svelte-151zph4" role="group" aria-label="Manifest assignments"></div>`);function I(e,c){b(c,!0);let f=_(c,`disabled`,3,!1);function v(e){return c.passive.find(t=>t.manifest===e)}function w(e,t,n){return t?`${e}: explicitly assigned`:n?`${e}: passive member via ${n.via.join(`, `)}`:`${e}: not assigned`}var E=F();t(E,20,()=>c.manifests,e=>e,(e,t)=>{let _=d(()=>T.manifestAppearance(t)),b=d(()=>c.selected.includes(t)),S=d(()=>v(t)),E=d(()=>i(_).color??`var(--accent)`);var D=P();let O,k;var A=o(D);y(A);var j=a(A,2),F=o(j),I=e=>{var t=s();p(()=>n(t,i(_).emoji)),l(e,t)},L=e=>{l(e,M())};r(F,e=>{i(_).emoji?e(I):e(L,-1)}),x(j);var R=a(j,2),z=o(R,!0);x(R);var B=a(R,2),V=e=>{var t=N(),r=o(t);x(t),p(e=>n(r,`passive · via ${e??``}`),[()=>i(S).via.join(`, `)]),l(e,t)};r(B,e=>{i(S)&&!i(b)&&e(V)}),x(D),p((e,r)=>{O=m(D,1,`manifest-option control svelte-151zph4`,null,O,{selected:i(b),passive:i(S)!==void 0&&!i(b),disabled:f()}),C(D,`title`,e),k=g(D,``,k,{"--manifest-color":i(E)}),h(A,i(b)),A.disabled=f(),C(A,`aria-label`,r),n(z,t)},[()=>w(t,i(b),i(S)),()=>w(t,i(b),i(S))]),u(`change`,A,()=>c.onToggle(t)),l(e,D)}),x(E),l(e,E),S()}c([`change`]);export{O as a,A as i,k as n,j as r,I as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,X as t,Z as n}from"./NblqapDQ.js";var r=class extends Error{status;constructor(e,t){super(t),this.name=`ApiResponseError`,this.status=e}};async function i(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}return await e.json()}async function a(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}}async function o(){return i(await fetch(`/api/state`,{cache:`no-store`}))}async function s(){return i(await fetch(`/api/reconcile`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})}))}async function c(e,t,n,r=[]){return i(await fetch(`/api/raw/adopt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,id:t,type:n,manifests:r})}))}async function l(e,t){return i(await fetch(`/api/raw/edited/accept`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,type:t})}))}async function u(e){return i(await fetch(`/api/raw/edited/dismiss`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function d(e,t,n,r,a=[]){let o=new FormData;o.set(`file`,e),o.set(`type`,t),o.set(`id`,n),o.set(`folder`,r);for(let e of a)o.append(`manifests`,e);return i(await fetch(`/api/assets`,{method:`POST`,body:o}))}async function f(e){return i(await fetch(`/api/imports`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({importer:`figma`,input:{url:e.url,format:`png`,scale:e.scale},type:e.type,id:e.id,folder:e.folder,manifests:e.manifests})}))}async function ee(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}/reimport`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({...t?{input:{...t,format:`png`}}:{}})}))}async function te(e,t){let n=new FormData;return n.set(`file`,t),i(await fetch(`/api/assets/${encodeURIComponent(e)}/raw`,{method:`PUT`,body:n}))}async function ne(e){return i(await fetch(`/api/folders`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}))}async function re(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t})}))}async function ie(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({parent:t})}))}async function ae(e){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function oe(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function se(e,t){return i(await fetch(`/api/assets/move`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e,folder:t})}))}async function ce(e){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function le(e){return i(await fetch(`/api/assets/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e})}))}async function ue(e,t){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetId:e,kind:t})}))}async function de(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:e})}))}async function fe(e){return i(await fetch(`/api/manifests`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}))}async function pe(e){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function me(e,t){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}var he=class{#e=null;#t=null;#n=0;#r=[];get value(){return this.#t}replaceBase(e){this.#e=e,this.#a()}mergeBase(e){this.#e!==null&&(this.#e=e(this.#e),this.#a())}add(e,t=[]){let n=++this.#n;return this.#r.push({id:n,update:e,dependencies:t}),this.#t!==null&&(this.#t=e(this.#t)),n}confirm(e,t,n){let r=this.#r.findIndex(t=>t.id===e);if(r===-1)return;let i=this.#r[r],a=this.#e;if(a===null){this.#e=t,this.#i(e),this.#a();return}this.#e=n(i.update(a)),this.#i(e),r===0&&this.#t!==null?this.#t=n(this.#t):this.#a()}reject(e){this.#i(e),this.#a()}rejectAffectedFrom(e,t){this.#r=this.#r.filter(n=>n.id<e||n.id>e&&!p(n.dependencies,t)),this.#a()}#i(e){this.#r=this.#r.filter(t=>t.id!==e)}#a(){let e=this.#e;if(e===null){this.#t=null;return}let t=e;for(let e of this.#r)t=e.update(t);this.#t=t}};function p(e,t){return e.some(e=>t.some(t=>{if(e===t)return!0;if(!e.startsWith(`folder:`)||!t.startsWith(`folder:`))return!1;let n=e.slice(7),r=t.slice(7);return n.startsWith(`${r}/`)||r.startsWith(`${n}/`)}))}var ge=/[\u0000-\u001f\u007f]/,_e=/[<>:"|?*]/,ve=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function ye(e){return e.length===0?`Folder names must not be empty.`:e===e.trim()?e===`.`||e===`..`?`"${e}" is not a valid folder name.`:e.includes(`/`)||e.includes(`\\`)?`Folder names must not contain path separators.`:ge.test(e)?`Folder names must not contain control characters.`:_e.test(e)?`Folder names must not contain Windows-reserved characters (: * ? " < > |).`:e.endsWith(`.`)?`Folder names must not end with a dot.`:e.toLocaleLowerCase(`en-US`)===`root`?`"${e}" is reserved for the implicit Fundus root folder.`:e.toLocaleLowerCase(`en-US`)===`.gitkeep`?`"${e}" is reserved for Fundus folder management.`:ve.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function be(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function m(e){return be(e).toLocaleLowerCase(`en-US`)}function h(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function g(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function _(e,t){return e===``?t:`${e}/${t}`}function v(e){return h(e)}function y(e){return g(e)}function b(e,t){return e===t||e.startsWith(`${t}/`)}function x(e,t,n){return e===t?n:`${n}${e.slice(t.length)}`}var S=`[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}`;RegExp(`^(?:\\.fundus-replace-${S}\\.tmp|\\.fundus-delete(?:-assets)?-${S})$`,`i`),RegExp(`\\.fundus-(?:replace-)?${S}$`,`i`);var C=[`preload`,`release`,`entries`,`constructor`,`prototype`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`],w=/^[a-z][A-Za-z0-9]*$/;function xe(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`}function Se(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}var T={type:`audio`,accepts:[`mp3`,`wav`,`m4a`,`ogg`,`flac`],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Audio parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Audio parameters need a non-empty string "preset".`);return{preset:t.preset}}};function Ce(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var E={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2},we=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function D(e){return Math.min(1,Math.max(0,e))}function Te(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`"chromaKey" must be an object.`);let t=e,n=t.keyColor;if(!Array.isArray(n)||n.length!==3||n.some(e=>typeof e!=`number`||!Number.isFinite(e)))throw Error(`"chromaKey.keyColor" must be an array of three numbers (RGB, 0–1 each).`);let r={keyColor:[D(n[0]),D(n[1]),D(n[2])]};for(let e of we){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=D(n)}return r}var O=[`mp4`,`mov`,`webm`,`m4v`];function k(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`${e} parameters must be an object.`);let n=t;if(typeof n.preset!=`string`||n.preset.length===0)throw Error(`${e} parameters need a non-empty string "preset".`);if(n.maxWidth!==void 0&&(typeof n.maxWidth!=`number`||!Number.isInteger(n.maxWidth)||n.maxWidth<=0))throw Error(`${e} "maxWidth" must be a positive integer when set.`);return{preset:n.preset,...n.maxWidth===void 0?{}:{maxWidth:n.maxWidth}}}var A={type:`video`,accepts:[...O],defaultParameters:()=>({preset:`default`}),validateParameters(e){return k(`Video`,e)}};function j(e,t){if(t!==void 0){if(!Ce(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var M={type:`chroma-key-video`,accepts:[...O],defaultParameters:()=>({preset:`default`,chromaKey:{...E,keyColor:[...E.keyColor]}}),validateParameters(e){let t=k(`Chroma-key-video`,e),n=e,r=Te(n.chromaKey),i=j(`mask`,n.mask),a=j(`fallback`,n.fallback);return{...t,chromaKey:r,...i===void 0?{}:{mask:i},...a===void 0?{}:{fallback:a}}},collectReferences(e){let t=[];return e.mask&&t.push({field:`mask`,assetId:e.mask.$asset,expectedTypes:[`image`]}),e.fallback&&t.push({field:`fallback`,assetId:e.fallback.$asset,expectedTypes:[`image`]}),t},processingParameters(e){return{preset:e.preset,...e.maxWidth===void 0?{}:{maxWidth:e.maxWidth}}}},N=[`png`,`jpg`,`jpeg`,`webp`,`avif`],P={type:`image`,accepts:[...N],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Image parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Image parameters need a non-empty string "preset".`);if(t.targetWidth!==void 0&&(typeof t.targetWidth!=`number`||!Number.isInteger(t.targetWidth)||t.targetWidth<=0))throw Error(`Image "targetWidth" must be a positive integer when set.`);return{preset:t.preset,...t.targetWidth===void 0?{}:{targetWidth:t.targetWidth}}}},F=[`nine`,`three-horizontal`,`three-vertical`,`one`];function I(){return{top:0,right:0,bottom:0,left:0}}function L(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function R(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function Ee(e,t,n,r){return R(e,t,n,r)-1}function z(e,t,n){return Math.max(t,Math.min(n,e))}function De(e){let t=L(e.mode),n=e.overdraw??{top:0,right:0,bottom:0,left:0},r=t.horizontal&&(e.compression?.x??0)>0,i=t.vertical&&(e.compression?.y??0)>0,a=r?Math.max(e.insets.left,n.left):e.insets.left,o=r?Math.max(e.insets.right,n.right):e.insets.right,s=i?Math.max(e.insets.top,n.top):e.insets.top,c=i?Math.max(e.insets.bottom,n.bottom):e.insets.bottom,l=z(a,0,e.width),u=z(o,0,e.width-l),d=z(s,0,e.height);return{top:d,right:u,bottom:z(c,0,e.height-d),left:l}}function B(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Slice ${e} must be an object with top/right/bottom/left.`);let n=t,r=[`top`,`right`,`bottom`,`left`],i=I();for(let t of r){let r=n[t];if(typeof r!=`number`||!Number.isInteger(r)||r<0)throw Error(`Slice ${e}.${t} must be a non-negative integer.`);i[t]=r}return i}function Oe(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice compression must be an object with x/y percentages.`);let t=e,n={x:0,y:0};for(let e of[`x`,`y`]){let r=t[e];if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>100)throw Error(`Slice compression.${e} must be an integer from 0 to 100.`);n[e]=r}return n}var V={type:`slice`,accepts:[...N],defaultParameters:()=>({mode:`nine`,insets:I(),pixelRatio:1,preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice parameters must be an object.`);let t=e;if(typeof t.mode!=`string`||!F.includes(t.mode))throw Error(`Slice "mode" must be one of ${F.map(e=>`'${e}'`).join(` | `)}.`);let n=B(`insets`,t.insets);if(typeof t.pixelRatio!=`number`||!Number.isInteger(t.pixelRatio)||t.pixelRatio<1)throw Error(`Slice "pixelRatio" must be an integer ≥ 1.`);let r=t.overdraw===void 0?void 0:B(`overdraw`,t.overdraw),i=t.compression===void 0?void 0:Oe(t.compression);if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Slice parameters need a non-empty string "preset".`);return{mode:t.mode,insets:n,pixelRatio:t.pixelRatio,...r===void 0?{}:{overdraw:r},...i===void 0?{}:{compression:i},preset:t.preset}}},H=new class{#e=new Map;register(e){if(this.#e.has(e.type))throw Error(`Plugin type "${e.type}" is already registered.`);this.#e.set(e.type,e)}has(e){return this.#e.has(e)}values(){return[...this.#e.values()]}types(){return[...this.#e.keys()]}project(e,t){let n=Object.create(null);for(let r of this.#e.keys()){if(!Object.hasOwn(e,r))throw Error(`Registered plugin "${r}" has no ${t}.`);n[r]=e[r]}return n}};H.register(P),H.register(V),H.register(A),H.register(M),H.register(T);var U=H.values();function ke(e=U){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function Ae(e,t=U){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function je(e,t=U){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function Me(e){let t=e.replace(/\.[^.]+$/,``).replace(/(?:@|[-_])\dx$/i,``).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^a-zA-Z0-9]+/).filter(Boolean);if(t.length===0)return`asset`;let n=t.map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``).replace(/^[0-9]+/,``);return n?n.charAt(0).toLowerCase()+n.slice(1):`asset`}function W(e){return K(e)}function G(e,t){return e<t?-1:+(e>t)}function K(e){if(e===void 0)return`null`;if(e===null||typeof e==`number`||typeof e==`boolean`||typeof e==`string`)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(K).join(`,`)}]`;if(typeof e==`object`){let t=e,n=[];for(let e of Object.keys(t).sort())t[e]!==void 0&&n.push(`${JSON.stringify(e)}:${K(t[e])}`);return`{${n.join(`,`)}}`}throw Error(`Cannot canonicalize a ${typeof e} value.`)}function Ne(e,t){let n={};for(let[r,i]of Object.entries(e.assets)){n[r]=[];let e=t[i.type];if(e?.collectReferences)try{n[r]=e.collectReferences(e.validateParameters(i.parameters))}catch{}}return n}function Pe(e,t){let n=new Set,r=[...e];for(;r.length>0;){let e=r.pop();if(!(n.has(e)||!Object.hasOwn(t,e))){n.add(e);for(let n of t[e])r.push(n.assetId)}}return n}function Fe(e,t){let n=new Set(Object.keys(e.manifests));for(let t of Object.values(e.assets))for(let e of t.manifests)n.add(e);let r={};for(let i of[...n].sort(G)){let n=Object.entries(e.assets).filter(([,e])=>e.manifests.includes(i)).map(([e])=>e).sort(G),a=new Set(n),o=new Set(n),s=new Map;for(let e of n)for(let n of Pe([e],t)){if(o.add(n),a.has(n))continue;let t=s.get(n)??[];t.push(e),s.set(n,t)}r[i]={explicitMemberIds:n,passiveMembers:[...s.entries()].map(([e,t])=>({assetId:e,via:t})).sort((e,t)=>G(e.assetId,t.assetId)),deliveredAssetIds:o}}return r}function Ie(e,t,n,r){return n&&q(n,r)?`committed`:t&&q(t,r)?`rolled-back`:`unknown`}function q(e,t){return W(e)===W(t)}var J=Object.fromEntries(H.values().map(e=>[e.type,e]));function Le(e,t,n){let r=e.library.assets[t]?.type,i=r?J[r]:void 0;if(!i)return[`asset:${t}`];try{let e=i.validateParameters(n),r=i.collectReferences?.(e)??[];return[...new Set([`asset:${t}`,...r.map(e=>`asset:${e.assetId}`)])]}catch{return[`asset:${t}`]}}function Y(e,t){let n=new Map(t.assets.map(e=>[e.id,e])),r={...e,assets:e.assets.map(e=>{let t=n.get(e.id);return t?{...e,rawUrl:t.rawUrl,rawHash:t.rawHash,gitStatus:t.gitStatus,importSource:t.importSource,proxy:t.proxy,warnings:t.warnings,passiveManifests:t.passiveManifests,references:t.references}:e}),gitBranch:t.gitBranch,importDefaults:t.importDefaults,issues:t.issues,presetNames:t.presetNames,rawIngestionQueue:t.rawIngestionQueue};return X(r,r.library)}function Re(e,t){let n=structuredClone(e.library);n.folders=[...t.library.folders];for(let[e,r]of Object.entries(n.assets)){let i=t.library.assets[e];i?r.raw=i.raw:delete n.assets[e]}return Y(X(e,n),t)}function X(e,t,n=new Map){let r=new Map(e.assets.map(e=>[e.id,e])),i=new Map([...n.entries()].map(([e,t])=>[t,e])),a=Ne(t,J),o=Fe(t,a),s=ze(o),c=new Map;for(let[e,t]of Object.entries(a))for(let n of t){let t=c.get(n.assetId)??[];t.push({field:n.field,assetId:e}),c.set(n.assetId,t)}let l=Object.entries(t.assets).map(([e,t])=>{let n=r.get(i.get(e)??e);return n?{...n,id:e,raw:t.raw,folder:v(t.raw),parameters:t.parameters,manifests:t.manifests,passiveManifests:s.get(e)??[],references:{outgoing:a[e].map(e=>({field:e.field,assetId:e.assetId})),incoming:c.get(e)??[]}}:null}).filter(e=>e!==null).sort((e,t)=>e.id.localeCompare(t.id)),u=new Map(l.map(e=>[e.id,e.proxy?.fileSize??0])),d=Object.fromEntries(Object.keys(t.manifests).map(e=>{let t=o[e];return[e,{explicitMemberIds:t.explicitMemberIds,passiveMembers:t.passiveMembers}]})),f=Object.fromEntries(Object.keys(t.manifests).map(e=>[e,[...o[e].deliveredAssetIds].reduce((e,t)=>e+(u.get(t)??0),0)]));return{...e,library:t,assets:l,manifestMemberships:d,manifestDeliveredBytes:f,issues:e.issues.map(e=>({...e,...e.assetId&&n.has(e.assetId)?{assetId:n.get(e.assetId)}:{}}))}}function ze(e){let t=new Map;for(let[n,r]of Object.entries(e))for(let e of r.passiveMembers){let{assetId:r,via:i}=e,a=t.get(r)??[];a.push({manifest:n,via:i}),t.set(r,a)}for(let e of t.values())e.sort((e,t)=>e.manifest.localeCompare(t.manifest));return t}function Z(e){return t=>{let n=structuredClone(t.library);return X(t,n,e(n)??new Map)}}function Be(e,t){return Z(n=>{let r=n.assets[e];if(!r)return;t.parameters!==void 0&&(r.parameters=structuredClone(t.parameters)),t.manifests!==void 0&&(r.manifests=[...new Set(t.manifests)].sort());let i=t.renameTo??e;if(!(i!==e&&n.assets[i]))return i!==e&&(delete n.assets[e],n.assets[i]=r),t.folder!==void 0&&(r.raw=_(t.folder,y(r.raw))),i===e?void 0:new Map([[e,i]])})}function Ve(e,t){return Z(n=>{for(let r of new Set(e)){let e=n.assets[r];e&&(e.raw=_(t,y(e.raw)))}})}function He(e){return Z(t=>{for(let n of new Set(e))delete t.assets[n]})}function Ue(e){return Z(t=>{t.folders.includes(e)||t.folders.push(e),t.folders.sort()})}function Q(e,t){return Z(n=>{let r=n.folders.filter(t=>b(t,e)).map(n=>x(n,e,t)),i=new Set(n.folders.filter(t=>!b(t,e)).map(m));if(!r.some(e=>i.has(m(e)))){n.folders=n.folders.map(n=>b(n,e)?x(n,e,t):n).sort();for(let r of Object.values(n.assets)){let n=v(r.raw);b(n,e)&&(r.raw=_(x(n,e,t),y(r.raw)))}}})}function We(e,t){return Q(e,_(h(e),t))}function Ge(e,t){return Q(e,_(t,g(e)))}function Ke(e){return Z(t=>{t.folders=t.folders.filter(t=>!b(t,e));for(let[n,r]of Object.entries(t.assets))b(v(r.raw),e)&&delete t.assets[n]})}function qe(e){return Z(t=>{Object.hasOwn(t.manifests,e)||(t.manifests[e]={})})}function Je(e,t){return Z(n=>{let r=n.manifests[e];if(r&&(t.color!==void 0&&(t.color===null?delete r.color:r.color=t.color),t.emoji!==void 0&&(t.emoji===null?delete r.emoji:r.emoji=t.emoji),!(t.renameTo===void 0||t.renameTo===e)&&!n.manifests[t.renameTo])){delete n.manifests[e],n.manifests[t.renameTo]=r;for(let r of Object.values(n.assets))r.manifests=r.manifests.map(n=>n===e?t.renameTo:n).sort()}})}function Ye(e){return Z(t=>{delete t.manifests[e];for(let n of Object.values(t.assets))n.manifests=n.manifests.filter(t=>t!==e)})}var Xe=class{#e=Promise.resolve();#t=new Map;enqueue(e){let t=this.#e.then(e,e);return this.#e=t.then(()=>{},()=>{}),t}coalesce(e,t){let n=this.#t.get(e);if(n)return n;let r=this.enqueue(t).finally(()=>{this.#t.get(e)===r&&this.#t.delete(e)});return this.#t.set(e,r),r}},Ze=new class{#e=new Xe;#t=new he;#n=0;#r=0;#i=[];#a=n(null);get state(){return e(this.#a)}set state(e){t(this.#a,e,!0)}#o=n(!1);get saving(){return e(this.#o)}set saving(e){t(this.#o,e,!0)}#s=n(null);get error(){return e(this.#s)}set error(e){t(this.#s,e,!0)}#c=n(!1);get loaded(){return e(this.#c)}set loaded(e){t(this.#c,e,!0)}async refresh(){return this.#l(o,{rebaseEditableState:!0})}reconcile(){return this.#l(s,{coalesce:!0})}#l(e,t={}){let n=async()=>{try{let n=await e();this.#t.value===null||t.rebaseEditableState?this.#t.replaceBase(n):this.#t.mergeBase(e=>Re(e,n)),this.#d(),this.error=null}catch(e){this.error=e instanceof Error?e.message:String(e)}finally{this.loaded=!0}};return t.coalesce?this.#e.coalesce(`reconcile`,n):this.#e.enqueue(n)}mutate(e,t,n){return this.#u(e,t,n)}mutateFromServer(e,t){return this.#u(e,void 0,t)}#u(e,t,n={dependencies:[]}){let r=++this.#r,i=this.#t.value?.library,a=t?this.#t.add(t,n.dependencies):null,s=a===null?void 0:this.#t.value?.library;return a!==null&&this.#d(),this.#n+=1,this.saving=!0,this.#e.enqueue(async()=>{this.error=null;try{if(this.#i.some(e=>e.failedMutationId<r&&r<=e.throughMutationId&&p(n.dependencies,e.dependencies)))throw a!==null&&(this.#t.reject(a),this.#d()),new $;let t=await e();a===null?this.#t.replaceBase(t):this.#t.confirm(a,t,e=>Y(e,t)),this.#d()}catch(e){if(e instanceof $)throw this.error=e.message,e;let t=null;try{t=await o();let c=Ie(e,i,s,t.library);if(c===`committed`&&a!==null){let e=t;this.#t.confirm(a,e,t=>Y(t,e)),this.#d(),this.error=null;return}this.#t.replaceBase(t),c===`rolled-back`&&a!==null&&n.invalidatesOnFailure?.length?(this.#i.push({failedMutationId:r,throughMutationId:this.#r,dependencies:n.invalidatesOnFailure}),this.#t.rejectAffectedFrom(a,n.invalidatesOnFailure)):a!==null&&this.#t.reject(a)}catch{a!==null&&this.#t.reject(a)}throw this.#d(),this.error=e instanceof Error?e.message:String(e),e}finally{--this.#n,this.saving=this.#n>0,this.#n===0&&(this.#i=[])}})}#d(){this.state=this.#t.value}get manifestNames(){return Object.keys(this.state?.library.manifests??{}).sort()}manifestAppearance(e){return this.state?.library.manifests[e]??{}}get generalIssues(){return this.state?.issues.filter(e=>e.assetId===void 0).map(e=>e.message)??[]}assetById(e){return this.state?.assets.find(t=>t.id===e)??null}},$=class extends Error{constructor(){super(`Change was cancelled because an earlier structural save failed.`)}};export{re as $,ye as A,ne as B,L as C,T as D,A as E,h as F,pe as G,ce as H,m as I,se as J,u as K,x as L,v as M,b as N,xe as O,_ as P,ee as Q,l as R,Ee as S,M as T,le as U,fe as V,ae as W,oe as X,ie as Y,me as Z,H as _,He as a,I as b,Ve as c,Je as d,te as et,We as f,je as g,Me as h,qe as i,g as j,Se as k,Ge as l,Ae as m,Le as n,de as nt,Ke as o,ke as p,f as q,Ue as r,d as rt,Ye as s,Ze as t,ue as tt,Be as u,De as v,P as w,R as x,V as y,c as z};
|
|
1
|
+
import{I as e,X as t,Z as n}from"./NblqapDQ.js";var r=class extends Error{status;constructor(e,t){super(t),this.name=`ApiResponseError`,this.status=e}};async function i(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}return await e.json()}async function a(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}}async function o(){return i(await fetch(`/api/state`,{cache:`no-store`}))}async function s(){return i(await fetch(`/api/reconcile`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})}))}async function c(e,t,n,r=[]){return i(await fetch(`/api/raw/adopt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,id:t,type:n,manifests:r})}))}async function l(e,t){return i(await fetch(`/api/raw/edited/accept`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,type:t})}))}async function u(e){return i(await fetch(`/api/raw/edited/dismiss`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function d(e,t,n,r,a=[]){let o=new FormData;o.set(`file`,e),o.set(`type`,t),o.set(`id`,n),o.set(`folder`,r);for(let e of a)o.append(`manifests`,e);return i(await fetch(`/api/assets`,{method:`POST`,body:o}))}async function f(e){return i(await fetch(`/api/imports`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({importer:`figma`,input:{url:e.url,format:`png`,scale:e.scale},type:e.type,id:e.id,folder:e.folder,manifests:e.manifests})}))}async function ee(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}/reimport`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({...t?{input:{...t,format:`png`}}:{}})}))}async function te(e,t){let n=new FormData;return n.set(`file`,t),i(await fetch(`/api/assets/${encodeURIComponent(e)}/raw`,{method:`PUT`,body:n}))}async function ne(e){return i(await fetch(`/api/folders`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}))}async function re(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t})}))}async function ie(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({parent:t})}))}async function ae(e){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function oe(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function se(e,t){return i(await fetch(`/api/assets/move`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e,folder:t})}))}async function ce(e){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function le(e){return i(await fetch(`/api/assets/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e})}))}async function ue(e,t){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetId:e,kind:t})}))}async function de(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:e})}))}async function fe(e){return i(await fetch(`/api/manifests`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}))}async function pe(e){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function me(e,t){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}var he=class{#e=null;#t=null;#n=0;#r=[];get value(){return this.#t}replaceBase(e){this.#e=e,this.#a()}mergeBase(e){this.#e!==null&&(this.#e=e(this.#e),this.#a())}add(e,t=[]){let n=++this.#n;return this.#r.push({id:n,update:e,dependencies:t}),this.#t!==null&&(this.#t=e(this.#t)),n}confirm(e,t,n){let r=this.#r.findIndex(t=>t.id===e);if(r===-1)return;let i=this.#r[r],a=this.#e;if(a===null){this.#e=t,this.#i(e),this.#a();return}this.#e=n(i.update(a)),this.#i(e),r===0&&this.#t!==null?this.#t=n(this.#t):this.#a()}reject(e){this.#i(e),this.#a()}rejectAffectedFrom(e,t){this.#r=this.#r.filter(n=>n.id<e||n.id>e&&!p(n.dependencies,t)),this.#a()}#i(e){this.#r=this.#r.filter(t=>t.id!==e)}#a(){let e=this.#e;if(e===null){this.#t=null;return}let t=e;for(let e of this.#r)t=e.update(t);this.#t=t}};function p(e,t){return e.some(e=>t.some(t=>{if(e===t)return!0;if(!e.startsWith(`folder:`)||!t.startsWith(`folder:`))return!1;let n=e.slice(7),r=t.slice(7);return n.startsWith(`${r}/`)||r.startsWith(`${n}/`)}))}var ge=/[\u0000-\u001f\u007f]/,_e=/[<>:"|?*]/,ve=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function ye(e){return e.length===0?`Folder names must not be empty.`:e===e.trim()?e===`.`||e===`..`?`"${e}" is not a valid folder name.`:e.includes(`/`)||e.includes(`\\`)?`Folder names must not contain path separators.`:ge.test(e)?`Folder names must not contain control characters.`:_e.test(e)?`Folder names must not contain Windows-reserved characters (: * ? " < > |).`:e.endsWith(`.`)?`Folder names must not end with a dot.`:e.toLocaleLowerCase(`en-US`)===`root`?`"${e}" is reserved for the implicit Fundus root folder.`:e.toLocaleLowerCase(`en-US`)===`.gitkeep`?`"${e}" is reserved for Fundus folder management.`:ve.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function be(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function m(e){return be(e).toLocaleLowerCase(`en-US`)}function h(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function g(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function _(e,t){return e===``?t:`${e}/${t}`}function v(e){return h(e)}function y(e){return g(e)}function b(e,t){return e===t||e.startsWith(`${t}/`)}function x(e,t,n){return e===t?n:`${n}${e.slice(t.length)}`}var S=`[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}`;RegExp(`^(?:\\.fundus-replace-${S}\\.tmp|\\.fundus-delete(?:-assets)?-${S})$`,`i`),RegExp(`\\.fundus-(?:replace-)?${S}$`,`i`);var C=[`preload`,`release`,`entries`,`constructor`,`prototype`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`],w=/^[a-z][A-Za-z0-9]*$/;function xe(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`}function Se(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}var T={type:`audio`,accepts:[`mp3`,`wav`,`m4a`,`ogg`,`flac`],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Audio parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Audio parameters need a non-empty string "preset".`);return{preset:t.preset}}};function Ce(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var E={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2},we=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function D(e){return Math.min(1,Math.max(0,e))}function Te(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`"chromaKey" must be an object.`);let t=e,n=t.keyColor;if(!Array.isArray(n)||n.length!==3||n.some(e=>typeof e!=`number`||!Number.isFinite(e)))throw Error(`"chromaKey.keyColor" must be an array of three numbers (RGB, 0–1 each).`);let r={keyColor:[D(n[0]),D(n[1]),D(n[2])]};for(let e of we){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=D(n)}return r}var O=[`mp4`,`mov`,`webm`,`m4v`];function k(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`${e} parameters must be an object.`);let n=t;if(typeof n.preset!=`string`||n.preset.length===0)throw Error(`${e} parameters need a non-empty string "preset".`);if(n.maxWidth!==void 0&&(typeof n.maxWidth!=`number`||!Number.isInteger(n.maxWidth)||n.maxWidth<=0))throw Error(`${e} "maxWidth" must be a positive integer when set.`);return{preset:n.preset,...n.maxWidth===void 0?{}:{maxWidth:n.maxWidth}}}var A={type:`video`,accepts:[...O],defaultParameters:()=>({preset:`default`}),validateParameters(e){return k(`Video`,e)}};function j(e,t){if(t!==void 0){if(!Ce(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var M={type:`chroma-key-video`,accepts:[...O],defaultParameters:()=>({preset:`default`,chromaKey:{...E,keyColor:[...E.keyColor]}}),validateParameters(e){let t=k(`Chroma-key-video`,e),n=e,r=Te(n.chromaKey),i=j(`mask`,n.mask),a=j(`fallback`,n.fallback);return{...t,chromaKey:r,...i===void 0?{}:{mask:i},...a===void 0?{}:{fallback:a}}},collectReferences(e){let t=[];return e.mask&&t.push({field:`mask`,assetId:e.mask.$asset,expectedTypes:[`image`]}),e.fallback&&t.push({field:`fallback`,assetId:e.fallback.$asset,expectedTypes:[`image`]}),t},processingParameters(e){return{preset:e.preset,...e.maxWidth===void 0?{}:{maxWidth:e.maxWidth}}}},N=[`png`,`jpg`,`jpeg`,`webp`,`avif`],P={type:`image`,accepts:[...N],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Image parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Image parameters need a non-empty string "preset".`);if(t.targetWidth!==void 0&&(typeof t.targetWidth!=`number`||!Number.isInteger(t.targetWidth)||t.targetWidth<=0))throw Error(`Image "targetWidth" must be a positive integer when set.`);return{preset:t.preset,...t.targetWidth===void 0?{}:{targetWidth:t.targetWidth}}}},F=[`nine`,`three-horizontal`,`three-vertical`,`one`];function I(){return{top:0,right:0,bottom:0,left:0}}function L(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function R(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function Ee(e,t,n,r){return R(e,t,n,r)-1}function z(e,t,n){return Math.max(t,Math.min(n,e))}function De(e){let t=L(e.mode),n=e.overdraw??{top:0,right:0,bottom:0,left:0},r=t.horizontal&&(e.compression?.x??0)>0,i=t.vertical&&(e.compression?.y??0)>0,a=r?Math.max(e.insets.left,n.left):e.insets.left,o=r?Math.max(e.insets.right,n.right):e.insets.right,s=i?Math.max(e.insets.top,n.top):e.insets.top,c=i?Math.max(e.insets.bottom,n.bottom):e.insets.bottom,l=z(a,0,e.width),u=z(o,0,e.width-l),d=z(s,0,e.height);return{top:d,right:u,bottom:z(c,0,e.height-d),left:l}}function B(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Slice ${e} must be an object with top/right/bottom/left.`);let n=t,r=[`top`,`right`,`bottom`,`left`],i=I();for(let t of r){let r=n[t];if(typeof r!=`number`||!Number.isInteger(r)||r<0)throw Error(`Slice ${e}.${t} must be a non-negative integer.`);i[t]=r}return i}function Oe(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice compression must be an object with x/y percentages.`);let t=e,n={x:0,y:0};for(let e of[`x`,`y`]){let r=t[e];if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>100)throw Error(`Slice compression.${e} must be an integer from 0 to 100.`);n[e]=r}return n}var V={type:`slice`,accepts:[...N],defaultParameters:()=>({mode:`nine`,insets:I(),pixelRatio:1,preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice parameters must be an object.`);let t=e;if(typeof t.mode!=`string`||!F.includes(t.mode))throw Error(`Slice "mode" must be one of ${F.map(e=>`'${e}'`).join(` | `)}.`);let n=B(`insets`,t.insets);if(typeof t.pixelRatio!=`number`||!Number.isInteger(t.pixelRatio)||t.pixelRatio<1)throw Error(`Slice "pixelRatio" must be an integer ≥ 1.`);let r=t.overdraw===void 0?void 0:B(`overdraw`,t.overdraw),i=t.compression===void 0?void 0:Oe(t.compression);if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Slice parameters need a non-empty string "preset".`);return{mode:t.mode,insets:n,pixelRatio:t.pixelRatio,...r===void 0?{}:{overdraw:r},...i===void 0?{}:{compression:i},preset:t.preset}}},H=new class{#e=new Map;register(e){if(this.#e.has(e.type))throw Error(`Plugin type "${e.type}" is already registered.`);this.#e.set(e.type,e)}has(e){return this.#e.has(e)}values(){return[...this.#e.values()]}types(){return[...this.#e.keys()]}project(e,t){let n=Object.create(null);for(let r of this.#e.keys()){if(!Object.hasOwn(e,r))throw Error(`Registered plugin "${r}" has no ${t}.`);n[r]=e[r]}return n}};H.register(P),H.register(V),H.register(A),H.register(M),H.register(T);var U=H.values();function ke(e=U){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function Ae(e,t=U){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function je(e,t=U){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function Me(e){let t=e.replace(/\.[^.]+$/,``).replace(/(?:@|[-_])\dx$/i,``).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^a-zA-Z0-9]+/).filter(Boolean);if(t.length===0)return`asset`;let n=t.map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``).replace(/^[0-9]+/,``);return n?n.charAt(0).toLowerCase()+n.slice(1):`asset`}function W(e){return K(e)}function G(e,t){return e<t?-1:+(e>t)}function K(e){if(e===void 0)return`null`;if(e===null||typeof e==`number`||typeof e==`boolean`||typeof e==`string`)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(K).join(`,`)}]`;if(typeof e==`object`){let t=e,n=[];for(let e of Object.keys(t).sort())t[e]!==void 0&&n.push(`${JSON.stringify(e)}:${K(t[e])}`);return`{${n.join(`,`)}}`}throw Error(`Cannot canonicalize a ${typeof e} value.`)}function Ne(e,t){let n={};for(let[r,i]of Object.entries(e.assets)){n[r]=[];let e=t[i.type];if(e?.collectReferences)try{n[r]=e.collectReferences(e.validateParameters(i.parameters))}catch{}}return n}function Pe(e,t){let n=new Set,r=[...e];for(;r.length>0;){let e=r.pop();if(!(n.has(e)||!Object.hasOwn(t,e))){n.add(e);for(let n of t[e])r.push(n.assetId)}}return n}function Fe(e,t){let n=new Set(Object.keys(e.manifests));for(let t of Object.values(e.assets))for(let e of t.manifests)n.add(e);let r={};for(let i of[...n].sort(G)){let n=Object.entries(e.assets).filter(([,e])=>e.manifests.includes(i)).map(([e])=>e).sort(G),a=new Set(n),o=new Set(n),s=new Map;for(let e of n)for(let n of Pe([e],t)){if(o.add(n),a.has(n))continue;let t=s.get(n)??[];t.push(e),s.set(n,t)}r[i]={explicitMemberIds:n,passiveMembers:[...s.entries()].map(([e,t])=>({assetId:e,via:t})).sort((e,t)=>G(e.assetId,t.assetId)),deliveredAssetIds:o}}return r}function Ie(e,t,n,r){return n&&q(n,r)?`committed`:t&&q(t,r)?`rolled-back`:`unknown`}function q(e,t){return W(e)===W(t)}var J=Object.fromEntries(H.values().map(e=>[e.type,e]));function Le(e,t,n){let r=e.library.assets[t]?.type,i=r?J[r]:void 0;if(!i)return[`asset:${t}`];try{let e=i.validateParameters(n),r=i.collectReferences?.(e)??[];return[...new Set([`asset:${t}`,...r.map(e=>`asset:${e.assetId}`)])]}catch{return[`asset:${t}`]}}function Y(e,t){let n=new Map(t.assets.map(e=>[e.id,e])),r={...e,assets:e.assets.map(e=>{let t=n.get(e.id);return t?{...e,rawUrl:t.rawUrl,rawHash:t.rawHash,gitStatus:t.gitStatus,importSource:t.importSource,proxy:t.proxy,warnings:t.warnings,passiveManifests:t.passiveManifests,references:t.references}:e}),gitBranch:t.gitBranch,importDefaults:t.importDefaults,issues:t.issues,presetNames:t.presetNames,presetCapabilities:t.presetCapabilities,rawIngestionQueue:t.rawIngestionQueue};return X(r,r.library)}function Re(e,t){let n=structuredClone(e.library);n.folders=[...t.library.folders];for(let[e,r]of Object.entries(n.assets)){let i=t.library.assets[e];i?r.raw=i.raw:delete n.assets[e]}return Y(X(e,n),t)}function X(e,t,n=new Map){let r=new Map(e.assets.map(e=>[e.id,e])),i=new Map([...n.entries()].map(([e,t])=>[t,e])),a=Ne(t,J),o=Fe(t,a),s=ze(o),c=new Map;for(let[e,t]of Object.entries(a))for(let n of t){let t=c.get(n.assetId)??[];t.push({field:n.field,assetId:e}),c.set(n.assetId,t)}let l=Object.entries(t.assets).map(([e,t])=>{let n=r.get(i.get(e)??e);return n?{...n,id:e,raw:t.raw,folder:v(t.raw),parameters:t.parameters,manifests:t.manifests,passiveManifests:s.get(e)??[],references:{outgoing:a[e].map(e=>({field:e.field,assetId:e.assetId})),incoming:c.get(e)??[]}}:null}).filter(e=>e!==null).sort((e,t)=>e.id.localeCompare(t.id)),u=new Map(l.map(e=>[e.id,e.proxy?.fileSize??0])),d=Object.fromEntries(Object.keys(t.manifests).map(e=>{let t=o[e];return[e,{explicitMemberIds:t.explicitMemberIds,passiveMembers:t.passiveMembers}]})),f=Object.fromEntries(Object.keys(t.manifests).map(e=>[e,[...o[e].deliveredAssetIds].reduce((e,t)=>e+(u.get(t)??0),0)]));return{...e,library:t,assets:l,manifestMemberships:d,manifestDeliveredBytes:f,issues:e.issues.map(e=>({...e,...e.assetId&&n.has(e.assetId)?{assetId:n.get(e.assetId)}:{}}))}}function ze(e){let t=new Map;for(let[n,r]of Object.entries(e))for(let e of r.passiveMembers){let{assetId:r,via:i}=e,a=t.get(r)??[];a.push({manifest:n,via:i}),t.set(r,a)}for(let e of t.values())e.sort((e,t)=>e.manifest.localeCompare(t.manifest));return t}function Z(e){return t=>{let n=structuredClone(t.library);return X(t,n,e(n)??new Map)}}function Be(e,t){return Z(n=>{let r=n.assets[e];if(!r)return;t.parameters!==void 0&&(r.parameters=structuredClone(t.parameters)),t.manifests!==void 0&&(r.manifests=[...new Set(t.manifests)].sort());let i=t.renameTo??e;if(!(i!==e&&n.assets[i]))return i!==e&&(delete n.assets[e],n.assets[i]=r),t.folder!==void 0&&(r.raw=_(t.folder,y(r.raw))),i===e?void 0:new Map([[e,i]])})}function Ve(e,t){return Z(n=>{for(let r of new Set(e)){let e=n.assets[r];e&&(e.raw=_(t,y(e.raw)))}})}function He(e){return Z(t=>{for(let n of new Set(e))delete t.assets[n]})}function Ue(e){return Z(t=>{t.folders.includes(e)||t.folders.push(e),t.folders.sort()})}function Q(e,t){return Z(n=>{let r=n.folders.filter(t=>b(t,e)).map(n=>x(n,e,t)),i=new Set(n.folders.filter(t=>!b(t,e)).map(m));if(!r.some(e=>i.has(m(e)))){n.folders=n.folders.map(n=>b(n,e)?x(n,e,t):n).sort();for(let r of Object.values(n.assets)){let n=v(r.raw);b(n,e)&&(r.raw=_(x(n,e,t),y(r.raw)))}}})}function We(e,t){return Q(e,_(h(e),t))}function Ge(e,t){return Q(e,_(t,g(e)))}function Ke(e){return Z(t=>{t.folders=t.folders.filter(t=>!b(t,e));for(let[n,r]of Object.entries(t.assets))b(v(r.raw),e)&&delete t.assets[n]})}function qe(e){return Z(t=>{Object.hasOwn(t.manifests,e)||(t.manifests[e]={})})}function Je(e,t){return Z(n=>{let r=n.manifests[e];if(r&&(t.color!==void 0&&(t.color===null?delete r.color:r.color=t.color),t.emoji!==void 0&&(t.emoji===null?delete r.emoji:r.emoji=t.emoji),!(t.renameTo===void 0||t.renameTo===e)&&!n.manifests[t.renameTo])){delete n.manifests[e],n.manifests[t.renameTo]=r;for(let r of Object.values(n.assets))r.manifests=r.manifests.map(n=>n===e?t.renameTo:n).sort()}})}function Ye(e){return Z(t=>{delete t.manifests[e];for(let n of Object.values(t.assets))n.manifests=n.manifests.filter(t=>t!==e)})}var Xe=class{#e=Promise.resolve();#t=new Map;enqueue(e){let t=this.#e.then(e,e);return this.#e=t.then(()=>{},()=>{}),t}coalesce(e,t){let n=this.#t.get(e);if(n)return n;let r=this.enqueue(t).finally(()=>{this.#t.get(e)===r&&this.#t.delete(e)});return this.#t.set(e,r),r}},Ze=new class{#e=new Xe;#t=new he;#n=0;#r=0;#i=[];#a=n(null);get state(){return e(this.#a)}set state(e){t(this.#a,e,!0)}#o=n(!1);get saving(){return e(this.#o)}set saving(e){t(this.#o,e,!0)}#s=n(null);get error(){return e(this.#s)}set error(e){t(this.#s,e,!0)}#c=n(!1);get loaded(){return e(this.#c)}set loaded(e){t(this.#c,e,!0)}async refresh(){return this.#l(o,{rebaseEditableState:!0})}reconcile(){return this.#l(s,{coalesce:!0})}#l(e,t={}){let n=async()=>{try{let n=await e();this.#t.value===null||t.rebaseEditableState?this.#t.replaceBase(n):this.#t.mergeBase(e=>Re(e,n)),this.#d(),this.error=null}catch(e){this.error=e instanceof Error?e.message:String(e)}finally{this.loaded=!0}};return t.coalesce?this.#e.coalesce(`reconcile`,n):this.#e.enqueue(n)}mutate(e,t,n){return this.#u(e,t,n)}mutateFromServer(e,t){return this.#u(e,void 0,t)}#u(e,t,n={dependencies:[]}){let r=++this.#r,i=this.#t.value?.library,a=t?this.#t.add(t,n.dependencies):null,s=a===null?void 0:this.#t.value?.library;return a!==null&&this.#d(),this.#n+=1,this.saving=!0,this.#e.enqueue(async()=>{this.error=null;try{if(this.#i.some(e=>e.failedMutationId<r&&r<=e.throughMutationId&&p(n.dependencies,e.dependencies)))throw a!==null&&(this.#t.reject(a),this.#d()),new $;let t=await e();a===null?this.#t.replaceBase(t):this.#t.confirm(a,t,e=>Y(e,t)),this.#d()}catch(e){if(e instanceof $)throw this.error=e.message,e;let t=null;try{t=await o();let c=Ie(e,i,s,t.library);if(c===`committed`&&a!==null){let e=t;this.#t.confirm(a,e,t=>Y(t,e)),this.#d(),this.error=null;return}this.#t.replaceBase(t),c===`rolled-back`&&a!==null&&n.invalidatesOnFailure?.length?(this.#i.push({failedMutationId:r,throughMutationId:this.#r,dependencies:n.invalidatesOnFailure}),this.#t.rejectAffectedFrom(a,n.invalidatesOnFailure)):a!==null&&this.#t.reject(a)}catch{a!==null&&this.#t.reject(a)}throw this.#d(),this.error=e instanceof Error?e.message:String(e),e}finally{--this.#n,this.saving=this.#n>0,this.#n===0&&(this.#i=[])}})}#d(){this.state=this.#t.value}get manifestNames(){return Object.keys(this.state?.library.manifests??{}).sort()}manifestAppearance(e){return this.state?.library.manifests[e]??{}}get generalIssues(){return this.state?.issues.filter(e=>e.assetId===void 0).map(e=>e.message)??[]}assetById(e){return this.state?.assets.find(t=>t.id===e)??null}},$=class extends Error{constructor(){super(`Change was cancelled because an earlier structural save failed.`)}};export{re as $,ye as A,ne as B,L as C,T as D,A as E,h as F,pe as G,ce as H,m as I,se as J,u as K,x as L,v as M,b as N,xe as O,_ as P,ee as Q,l as R,Ee as S,M as T,le as U,fe as V,ae as W,oe as X,ie as Y,me as Z,H as _,He as a,I as b,Ve as c,Je as d,te as et,We as f,je as g,Me as h,qe as i,g as j,Se as k,Ge as l,Ae as m,Le as n,de as nt,Ke as o,ke as p,f as q,Ue as r,d as rt,Ye as s,Ze as t,ue as tt,Be as u,De as v,P as w,R as x,V as y,c as z};
|
|
Binary file
|
|
Binary file
|