fundus 0.6.0 → 0.8.0
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 +6 -1
- package/build/client/_app/immutable/assets/0.CHekvMpo.css +1 -0
- package/build/client/_app/immutable/assets/0.CHekvMpo.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CHekvMpo.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.CK3PVkJ5.css +1 -0
- package/build/client/_app/immutable/assets/2.CK3PVkJ5.css.br +0 -0
- package/build/client/_app/immutable/assets/2.CK3PVkJ5.css.gz +0 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css +1 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.br +0 -0
- package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css +1 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.gz +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css +1 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.br +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.gz +0 -0
- package/build/client/_app/immutable/chunks/4FCfXqUa.js +1 -0
- 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/{D24lHNM9.js → B6BtXxR0.js} +1 -1
- package/build/client/_app/immutable/chunks/B6BtXxR0.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6BtXxR0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js +1 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BT3jFrxa.js → BEbRZpHw.js} +1 -1
- package/build/client/_app/immutable/chunks/BEbRZpHw.js.br +1 -0
- package/build/client/_app/immutable/chunks/BEbRZpHw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BVDR6adL.js +1 -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/BX8lJS3k.js +108 -0
- package/build/client/_app/immutable/chunks/BX8lJS3k.js.br +0 -0
- package/build/client/_app/immutable/chunks/BX8lJS3k.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js +1 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js +3 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CH6AvWYr.js +2 -0
- package/build/client/_app/immutable/entry/app.CH6AvWYr.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CH6AvWYr.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.v9Hgefer.js +1 -0
- package/build/client/_app/immutable/entry/start.v9Hgefer.js.br +0 -0
- package/build/client/_app/immutable/entry/start.v9Hgefer.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.bYfuwnNW.js +2 -0
- package/build/client/_app/immutable/nodes/0.bYfuwnNW.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.bYfuwnNW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.kv-uSGjV.js +1 -0
- package/build/client/_app/immutable/nodes/1.kv-uSGjV.js.br +2 -1
- package/build/client/_app/immutable/nodes/1.kv-uSGjV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B0CNEieI.js +3 -0
- package/build/client/_app/immutable/nodes/2.B0CNEieI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B0CNEieI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.K5eLxWD7.js +1 -0
- package/build/client/_app/immutable/nodes/3.K5eLxWD7.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.K5eLxWD7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DXitiaKH.js +2 -0
- package/build/client/_app/immutable/nodes/4.DXitiaKH.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DXitiaKH.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-FvYkJDOy.js → context.js-CPdlcRhV.js} +157 -3
- package/build/server/chunks/chunks/context.js-CPdlcRhV.js.map +1 -0
- package/build/server/chunks/chunks/{contract.js-DGMufT2e.js → contract.js-nwG99Zzj.js} +2 -2
- package/build/server/chunks/chunks/{contract.js-DGMufT2e.js.map → contract.js-nwG99Zzj.js.map} +1 -1
- package/build/server/chunks/chunks/{exports.js-Bepiq5XZ.js → exports.js-Ci6jkE-z.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-Bepiq5XZ.js.map → exports.js-Ci6jkE-z.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-DWYlsbZd.js → http.js-DmUA2gRk.js} +2 -2
- package/build/server/chunks/chunks/{http.js-DWYlsbZd.js.map → http.js-DmUA2gRk.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-Cy01GWTk.js → internal.js-DWu3OCGw.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-Cy01GWTk.js.map → internal.js-DWu3OCGw.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{shared.js-b0LBJ1Hx.js → shared.js-BIggwEH0.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-b0LBJ1Hx.js.map → shared.js-BIggwEH0.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CecFjHB0.js → utils.js-Dxvg75XM.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CecFjHB0.js.map → utils.js-Dxvg75XM.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Bmyh2WUa.js → _server.ts.js-wQD5tBuh.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Bmyh2WUa.js.map → _server.ts.js-wQD5tBuh.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-hoRG5JRv.js → _server.ts.js-CLCx81uK.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-hoRG5JRv.js.map → _server.ts.js-CLCx81uK.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BdO9kwrn.js → _server.ts.js-DkvELcZA.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BdO9kwrn.js.map → _server.ts.js-DkvELcZA.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BojOH5gj.js → _server.ts.js-CCNcWQxH.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BojOH5gj.js.map → _server.ts.js-CCNcWQxH.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DWIptU3K.js → _server.ts.js-DUK4Rnpu.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DWIptU3K.js.map → _server.ts.js-DUK4Rnpu.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CaiOgcPc.js → _server.ts.js-DNgHnoga.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CaiOgcPc.js.map → _server.ts.js-DNgHnoga.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-Bug1Y1W9.js → _server.ts.js-gdXko55o.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-Bug1Y1W9.js.map → _server.ts.js-gdXko55o.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-B9N7cPff.js → _server.ts.js-DcsBk_jx.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-B9N7cPff.js.map → _server.ts.js-DcsBk_jx.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CiWdcZEv.js → _server.ts.js-BhTg6GgC.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CiWdcZEv.js.map → _server.ts.js-BhTg6GgC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CNqGzdRB.js → _server.ts.js-CKjnRFXQ.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CNqGzdRB.js.map → _server.ts.js-CKjnRFXQ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BHwcGKE_.js → _server.ts.js-C9rdzmoj.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BHwcGKE_.js.map → _server.ts.js-C9rdzmoj.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CPoTCXQk.js → _server.ts.js-BdZb4d69.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CPoTCXQk.js.map → _server.ts.js-BdZb4d69.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-iDOU2RdK.js → _server.ts.js-DaTgBGGt.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-iDOU2RdK.js.map → _server.ts.js-DaTgBGGt.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DikbQm3f.js → _server.ts.js-Btohjiz4.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DikbQm3f.js.map → _server.ts.js-Btohjiz4.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DTdHkWuR.js → _server.ts.js-D0alWeVb.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DTdHkWuR.js.map → _server.ts.js-D0alWeVb.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cn8hwP5P.js → _server.ts.js-CRNi0bmU.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cn8hwP5P.js.map → _server.ts.js-CRNi0bmU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BdUCIBJ_.js → _server.ts.js-B6C1DDpq.js} +19 -7
- package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-B6C1DDpq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CBLdZJZB.js → _server.ts.js-qPKxHQ-e.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CBLdZJZB.js.map → _server.ts.js-qPKxHQ-e.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DVtQlFHS.js → _server.ts.js-BjioCWTI.js} +3 -3
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DVtQlFHS.js.map → _server.ts.js-BjioCWTI.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CY_gjOPq.js → _server.ts.js-BzUFg_ur.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CY_gjOPq.js.map → _server.ts.js-BzUFg_ur.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BOfjGM87.js → _server.ts.js-CrjUXxJT.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BOfjGM87.js.map → _server.ts.js-CrjUXxJT.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-BH0-wX67.js → hooks.server.js-DQ8kZ3N2.js} +3 -3
- package/build/server/chunks/entries/{hooks.server.js-BH0-wX67.js.map → hooks.server.js-DQ8kZ3N2.js.map} +1 -1
- package/build/server/chunks/{handler-DMnHzDi5.js → handler-CJ8lsr6W.js} +5 -5
- package/build/server/chunks/{handler-DMnHzDi5.js.map → handler-CJ8lsr6W.js.map} +1 -1
- package/build/server/chunks/{index.js-BbOitM8j.js → index.js-Ph6LJ5Na.js} +5 -5
- package/build/server/chunks/{index.js-BbOitM8j.js.map → index.js-Ph6LJ5Na.js.map} +1 -1
- package/build/server/chunks/{manifest.js-EeQkh4Qe.js → manifest.js-CWjy0GQ9.js} +28 -28
- package/build/server/chunks/{manifest.js-EeQkh4Qe.js.map → manifest.js-CWjy0GQ9.js.map} +1 -1
- package/build/server/chunks/nodes/0.js-s3yR2Abv.js +11 -0
- package/build/server/chunks/nodes/0.js-s3yR2Abv.js.map +1 -0
- package/build/server/chunks/nodes/1.js-BKDWaQXi.js +7 -0
- package/build/server/chunks/nodes/{1.js-GmjtwLZL.js.map → 1.js-BKDWaQXi.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BuHtNZN4.js +7 -0
- package/build/server/chunks/nodes/2.js-BuHtNZN4.js.map +1 -0
- package/build/server/chunks/nodes/3.js-CxLEr5zC.js +7 -0
- package/build/server/chunks/nodes/3.js-CxLEr5zC.js.map +1 -0
- package/build/server/chunks/nodes/4.js-BoG4R0fU.js +7 -0
- package/build/server/chunks/nodes/{4.js-CtmXxVg2.js.map → 4.js-BoG4R0fU.js.map} +1 -1
- package/dist/core/api-types.d.ts +4 -0
- package/dist/server/cli-commands.d.ts +1 -1
- package/dist/server/cli-commands.js +125 -11
- package/dist/server/config-loader.d.ts +2 -0
- package/dist/server/config-loader.js +1 -0
- package/dist/server/git.d.ts +10 -0
- package/dist/server/git.js +148 -0
- package/dist/server/operations.js +7 -0
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/0.inkPq3ni.css +0 -1
- package/build/client/_app/immutable/assets/0.inkPq3ni.css.br +0 -0
- package/build/client/_app/immutable/assets/0.inkPq3ni.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.CtqoikFs.css +0 -1
- package/build/client/_app/immutable/assets/2.CtqoikFs.css.br +0 -0
- package/build/client/_app/immutable/assets/2.CtqoikFs.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css +0 -1
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CVIa_uFP.css.gz +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css +0 -1
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.br +0 -0
- package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BT3jFrxa.js.br +0 -1
- package/build/client/_app/immutable/chunks/BT3jFrxa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPFeEkfP.js +0 -108
- package/build/client/_app/immutable/chunks/CPFeEkfP.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPFeEkfP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQrHfI-c.js +0 -1
- package/build/client/_app/immutable/chunks/CQrHfI-c.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQrHfI-c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0BLX4Qd.js +0 -1
- package/build/client/_app/immutable/chunks/D0BLX4Qd.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0BLX4Qd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D24lHNM9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D24lHNM9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D65cSBhe.js +0 -3
- package/build/client/_app/immutable/chunks/D65cSBhe.js.br +0 -0
- package/build/client/_app/immutable/chunks/D65cSBhe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6VoU_x4.js +0 -1
- package/build/client/_app/immutable/chunks/D6VoU_x4.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6VoU_x4.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DmVWkUml.js +0 -2
- package/build/client/_app/immutable/entry/app.DmVWkUml.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DmVWkUml.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js +0 -1
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js.br +0 -0
- package/build/client/_app/immutable/entry/start.Dsf5wSaR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js +0 -2
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.l-jE2v4o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js +0 -1
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.CRPVOtEh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js +0 -3
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.8Si6qHSH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js +0 -1
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CdI42Umt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js +0 -2
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.mMkL80q1.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-FvYkJDOy.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-BdUCIBJ_.js.map +0 -1
- package/build/server/chunks/nodes/0.js-CS9Xzs-1.js +0 -11
- package/build/server/chunks/nodes/0.js-CS9Xzs-1.js.map +0 -1
- package/build/server/chunks/nodes/1.js-GmjtwLZL.js +0 -7
- package/build/server/chunks/nodes/2.js-Pip0Abb-.js +0 -7
- package/build/server/chunks/nodes/2.js-Pip0Abb-.js.map +0 -1
- package/build/server/chunks/nodes/3.js-CJKDeQST.js +0 -7
- package/build/server/chunks/nodes/3.js-CJKDeQST.js.map +0 -1
- package/build/server/chunks/nodes/4.js-CtmXxVg2.js +0 -7
|
@@ -0,0 +1,3 @@
|
|
|
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,V as g,X as _,Y as v,Z as y,_ as b,a as x,at as S,b as ee,c as C,d as te,g as w,i as T,k as E,l as ne,nt as re,o as ie,ot as D,p as O,q as k,s as ae,tt as oe,u as A,w as se,x as j}from"../chunks/NblqapDQ.js";import{c as M,t as ce}from"../chunks/B6BtXxR0.js";import"../chunks/xihTtKlq.js";import{F as le,J as ue,N as de,O as fe,P as pe,U as me,X as he,Y as ge,a as _e,c as ve,j as ye,l as be,nt as xe,p as Se,t as N,tt as Ce,u as we}from"../chunks/4FCfXqUa.js";import{a as Te}from"../chunks/BVDR6adL.js";import{t as Ee}from"../chunks/DPZDGjcn.js";import{a as De,c as Oe,i as ke,l as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe,u as Ie}from"../chunks/BX8lJS3k.js";import{t as Le}from"../chunks/BD3hQKzV.js";function P(e){return Array.isArray?Array.isArray(e):B(e)===`[object Array]`}function Re(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function ze(e){return e==null?``:Re(e)}function F(e){return typeof e==`string`}function I(e){return typeof e==`number`}function Be(e){return e===!0||e===!1||Ve(e)&&B(e)==`[object Boolean]`}function L(e){return typeof e==`object`}function Ve(e){return L(e)&&e!==null}function R(e){return e!=null}function z(e){return!e.trim().length}function B(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var V=`Incorrect 'index' type`,He=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,H=e=>`Invalid value for key ${e}`,U=e=>`Pattern length exceeds max of ${e}.`,Ue=e=>`Missing ${e} property in key`,W=e=>`Property 'weight' in key '${e}' must be a positive integer`,G=`Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.`,K=Object.prototype.hasOwnProperty,We=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=Ge(e);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Ge(e){let t=null,n=null,r=null,i=1,a=null;if(F(e)||P(e))r=e,t=Ke(e),n=qe(e);else{if(!K.call(e,`name`))throw Error(Ue(`name`));let o=e.name;if(r=o,K.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(W(qe(o)));t=Ke(o),n=qe(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function Ke(e){return P(e)?e:e.split(`.`)}function qe(e){return P(e)?e.join(`.`):e}function Je(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(R(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!R(s))return;if(a===t.length-1&&(F(s)||I(s)||Be(s)||typeof s==`bigint`))n.push(o===void 0?ze(s):{v:ze(s),i:o});else if(P(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,F(t)?t.split(`.`):t,0),r?n:n[0]}var Ye={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},q={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},J={location:0,threshold:.6,distance:100},Xe={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:Je,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},Y=Object.freeze({...q,...Ye,...J,...Xe});function Ze(e=1,t=3){let n=new Map,r=10**t;return{get(t){let i=1,a=!1;for(let e=0;e<t.length;e++)t.charCodeAt(e)===32?a||=(i++,!0):a=!1;if(n.has(i))return n.get(i);let o=Math.round(r/i**(.5*e))/r;return n.set(i,o),o},clear(){n.clear()}}}var Qe=class{constructor({getFn:e=Y.getFn,fieldNormWeight:t=Y.fieldNormWeight}={}){this.norm=Ze(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;let e=this.docs.length;this.records=Array(e);let t=0;if(F(this.docs[0]))for(let n=0;n<e;n++){let e=this._createStringRecord(this.docs[n],n);e&&(this.records[t++]=e)}else for(let n=0;n<e;n++)this.records[t++]=this._createObjectRecord(this.docs[n],n);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw Error(He);if(F(e)){let n=this._createStringRecord(e,t);return n&&this.records.push(n),n}let n=this._createObjectRecord(e,t);return this.records.push(n),n}removeAt(e){if(!Number.isInteger(e)||e<0)throw Error(He);for(let t=0,n=this.records.length;t<n;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,n=this.records.length;t<n;t+=1)this.records[t].i>e&&--this.records[t].i}removeAll(e){let t=new Set;for(let n of e)Number.isInteger(n)&&n>=0&&t.add(n);if(t.size===0)return;this.records=this.records.filter(e=>!t.has(e.i));let n=Array.from(t).sort((e,t)=>e-t);for(let e of this.records){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e.i?t=i+1:r=i}e.i-=t}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!R(e)||z(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){let n={i:t,$:{}};for(let t=0,r=this.keys.length;t<r;t++){let r=this.keys[t],i=r.getFn?r.getFn(e):this.getFn(e,r.path);if(R(i)){if(P(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(R(n)){if(F(n)){if(!z(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(R(n.v)){let t=F(n.v)?n.v:ze(n.v);if(!z(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(F(i)&&!z(i)){let e={v:i,n:this.norm.get(i)};n.$[t]=e}}}return n}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function X(e,t,{getFn:n=Y.getFn,fieldNormWeight:r=Y.fieldNormWeight}={}){let i=new Qe({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(Ge)),i.setSources(t),i.create(),i}function $e(e,{getFn:t=Y.getFn,fieldNormWeight:n=Y.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new Qe({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function et(e=[],t=Y.minMatchCharLength){let n=[],r=-1,i=-1,a=0;for(let o=e.length;a<o;a+=1){let o=e[a];o&&r===-1?r=a:!o&&r!==-1&&(i=a-1,i-r+1>=t&&n.push([r,i]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}function tt(e,t,n,{location:r=Y.location,distance:i=Y.distance,threshold:a=Y.threshold,findAllMatches:o=Y.findAllMatches,minMatchCharLength:s=Y.minMatchCharLength,includeMatches:c=Y.includeMatches,ignoreLocation:l=Y.ignoreLocation}={}){if(t.length>32)throw Error(U(32));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=0,S=u+d,ee=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=S;for(;r<i;)h(t,f+i)<=p?r=i:S=i,i=Math.floor((S-r)/2+r);S=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&ee&&(b=h(t,i),b<=p)){if(p=b,m=i,x=t,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}if(g&&m>=0){let t=Math.min(d-1,m+u-1+x);for(let r=m;r<=t;r+=1)n[e[r]]&&(_[r]=1)}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=et(_,s);e.length?c&&(C.indices=e):C.isMatch=!1}return C}function nt(e){let t={};for(let n=0,r=e.length;n<r;n+=1){let i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}function rt(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let n=1,r=e.length;n<r;n+=1){let r=t[t.length-1],i=e[n];i[0]<=r[1]+1?r[1]=Math.max(r[1],i[1]):t.push(i)}return t}var it={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},at=RegExp(`[`+Object.keys(it).join(``)+`]`,`g`),ot=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFD`).replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,``).replace(at,e=>it[e]):e=>e,st=class{constructor(e,{location:t=Y.location,threshold:n=Y.threshold,distance:r=Y.distance,includeMatches:i=Y.includeMatches,findAllMatches:a=Y.findAllMatches,minMatchCharLength:o=Y.minMatchCharLength,isCaseSensitive:s=Y.isCaseSensitive,ignoreDiacritics:c=Y.ignoreDiacritics,ignoreLocation:l=Y.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l},e=s?e:e.toLowerCase(),e=c?ot(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:nt(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0,t=d%32,n=d-t;for(;e<n;)u(this.pattern.substr(e,32),e),e+=32;if(t){let e=d-32;u(this.pattern.substr(e),e)}}else u(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r}=this.options;if(e=t?e:e.toLowerCase(),e=n?ot(e):e,this.pattern===e){let t={isMatch:!0,score:0};return r&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:l}=this.options,u=[],d=0,f=!1;this.chunks.forEach(({pattern:t,alphabet:n,startIndex:p})=>{let{isMatch:m,score:h,indices:g}=tt(e,t,n,{location:i+p,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:r,ignoreLocation:l});m&&(f=!0),d+=h,m&&g&&u.push(...g)});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(p.indices=rt(u)),p}},ct=new Set([`fuzzy`,`include`]);function lt(e){return e.startsWith(`inverse`)}var ut=[{type:`exact`,multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:`exact`,search(t){let n=t===e;return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`include`,multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:`include`,search(t){let n=0,r,i=[],a=e.length;for(;(r=t.indexOf(e,n))>-1;)n=r+a,i.push([r,n-1]);let o=!!i.length;return{isMatch:o,score:+!o,indices:i}}})},{type:`prefix-exact`,multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:`prefix-exact`,search(t){let n=t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`inverse-prefix-exact`,multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:`inverse-prefix-exact`,search(t){let n=!t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`inverse-suffix-exact`,multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:`inverse-suffix-exact`,search(t){let n=!t.endsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`suffix-exact`,multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:`suffix-exact`,search(t){let n=t.endsWith(e);return{isMatch:n,score:+!n,indices:[t.length-e.length,t.length-1]}}})},{type:`inverse-exact`,multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:`inverse-exact`,search(t){let n=t.indexOf(e)===-1;return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`fuzzy`,multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{let n=new st(e,{location:t.location??Y.location,threshold:t.threshold??Y.threshold,distance:t.distance??Y.distance,includeMatches:t.includeMatches??Y.includeMatches,findAllMatches:t.findAllMatches??Y.findAllMatches,minMatchCharLength:t.minMatchCharLength??Y.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??Y.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??Y.ignoreDiacritics,ignoreLocation:t.ignoreLocation??Y.ignoreLocation});return{type:`fuzzy`,search(e){return n.searchIn(e)}}}}],dt=ut.length,ft=`\0`,pt=`|`;function mt(e){let t=[],n=e.length,r=0;for(;r<n;){for(;r<n&&e[r]===` `;)r++;if(r>=n)break;let i=r;for(;i<n&&e[i]!==` `&&e[i]!==`"`;)i++;if(i<n&&e[i]===`"`){for(i++;i<n;){if(e[i]===`"`){let t=i+1;if(t>=n||e[t]===` `){i++;break}if(e[t]===`$`&&(t+1>=n||e[t+1]===` `)){i+=2;break}}i++}t.push(e.substring(r,i)),r=i}else{for(;i<n&&e[i]!==` `;)i++;t.push(e.substring(r,i)),r=i}}return t}function ht(e,t){let n=e.match(t);return n?n[1]:null}function gt(e,t={}){return e.replace(/\\\|/g,ft).split(pt).map(e=>{let n=mt(e.replace(/\u0000/g,`|`).trim()).filter(e=>e&&!!e.trim()),r=[];for(let e=0,i=n.length;e<i;e+=1){let i=n[e],a=!1,o=-1;for(;!a&&++o<dt;){let e=ut[o],n=ht(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<dt;){let e=ut[o],n=ht(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var _t=class{constructor(e,{isCaseSensitive:t=Y.isCaseSensitive,ignoreDiacritics:n=Y.ignoreDiacritics,includeMatches:r=Y.includeMatches,minMatchCharLength:i=Y.minMatchCharLength,ignoreLocation:a=Y.ignoreLocation,findAllMatches:o=Y.findAllMatches,location:s=Y.location,threshold:c=Y.threshold,distance:l=Y.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r,minMatchCharLength:i,findAllMatches:o,ignoreLocation:a,location:s,threshold:c,distance:l},e=t?e:e.toLowerCase(),e=n?ot(e):e,this.pattern=e,this.query=gt(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:n,isCaseSensitive:r,ignoreDiacritics:i}=this.options;e=r?e:e.toLowerCase(),e=i?ot(e):e;let a=0,o=[],s=0,c=!1;for(let r=0,i=t.length;r<i;r+=1){let i=t[r];o.length=0,a=0,c=!1;for(let t=0,r=i.length;t<r;t+=1){let r=i[t],{isMatch:l,indices:u,score:d}=r.search(e);if(l)a+=1,s+=d,lt(r.type)&&(c=!0),n&&(ct.has(r.type)?o.push(...u):o.push(u));else{s=0,a=0,o.length=0,c=!1;break}}if(a){let e={isMatch:!0,score:s/a};return c&&(e.hasInverse=!0),n&&(e.indices=rt(o)),e}}return{isMatch:!1,score:1}}},vt=[];function Z(...e){vt.push(...e)}function Q(e,t){for(let n=0,r=vt.length;n<r;n+=1){let r=vt[n];if(r.condition(e,t))return new r(e,t)}return new st(e,t)}var yt={AND:`$and`,OR:`$or`},bt={PATH:`$path`,PATTERN:`$val`},xt=e=>!!(e[yt.AND]||e[yt.OR]),St=e=>!!e[bt.PATH],Ct=e=>!P(e)&&L(e)&&!xt(e),wt=e=>({[yt.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Tt(e,t,{auto:n=!0}={}){let r=e=>{if(F(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=Q(e,t)),r}let i=Object.keys(e),a=St(e);if(!a&&i.length>1&&!xt(e))return r(wt(e));if(Ct(e)){let r=a?e[bt.PATH]:i[0],o=a?e[bt.PATTERN]:e[r];if(!F(o))throw Error(H(r));let s={keyId:qe(r),pattern:o};return n&&(s.searcher=Q(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];P(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return xt(e)||(e=wt(e)),r(e)}function Et(e,{ignoreFieldNorm:t=Y.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function Dt(e,{ignoreFieldNorm:t=Y.ignoreFieldNorm}){e.forEach(e=>{e.score=Et(e.matches,{ignoreFieldNorm:t})})}var Ot=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function kt(e){let t=[];return e.matches.forEach(e=>{if(!R(e.indices)||!e.indices.length)return;let n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.id),e.idx>-1&&(n.refIndex=e.idx),t.push(n)}),t}function At(e,t,{includeMatches:n=Y.includeMatches,includeScore:r=Y.includeScore}={}){return e.map(e=>{let{idx:i}=e,a={item:t[i],refIndex:i};return n&&(a.matches=kt(e)),r&&(a.score=e.score),a})}var jt=/[\p{L}\p{M}\p{N}_]+/gu,Mt=new WeakSet;function Nt(e){Mt.has(e)||(Mt.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function Pt(e){if(typeof e==`function`){let t=!1;return n=>{let r=e(n);if(!t&&(t=!0,!Array.isArray(r)||r.some(e=>typeof e!=`string`)))throw Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(r)?`array containing non-strings`:typeof r}.`);return r}}return e instanceof RegExp?(e.global||Nt(e),t=>t.match(e)||[]):e=>e.match(jt)||[]}function Ft({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=Pt(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=ot(n)),r(n)}}}var It=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=Ft({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new st(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));let n=r.get(e)||0,a=Math.log(1+(i-n+.5)/(n+.5));this.idfWeights.push(a)}this.combineAll=t.tokenMatch===`all`,this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],n=0,r=0,i=0,a=0,o=this.combineAll&&!this.useMask?new Set:null;for(let s=0;s<this.termSearchers.length;s++){let c=this.termSearchers[s].searchIn(e),l=this.idfWeights[s];r+=l,c.isMatch&&(i++,n+=l*(1-c.score),c.indices&&t.push(...c.indices),this.combineAll&&(this.useMask?a|=1<<s:o.add(s)))}if(i===0)return{isMatch:!1,score:1};let s=r>0?1-n/r:0,c={isMatch:!0,score:Math.max(.001,s)};return this.options.includeMatches&&t.length&&(c.indices=rt(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function Lt(e,t,n,r){let i=r.tokenize(t);if(!i.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);let a=new Set(i),o=e.docTermFieldHits.get(n);o||(o=new Map,e.docTermFieldHits.set(n,o));for(let t of a)o.set(t,(o.get(t)||0)+1),e.df.set(t,(e.df.get(t)||0)+1)}function Rt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){Lt(e,a,i,r);return}if(o)for(let t=0;t<n;t++){let n=o[t];if(n)if(Array.isArray(n))for(let t of n)Lt(e,t.v,i,r);else Lt(e,n.v,i,r)}}function zt(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)Rt(r,i,t,n);return r}function Bt(e,t,n,r){Rt(e,t,n,r)}function Vt(e,t){let n=e.docFieldCount.get(t);if(n===void 0)return;e.fieldCount-=n,e.docFieldCount.delete(t);let r=e.docTermFieldHits.get(t);if(r){for(let[t,n]of r){let r=(e.df.get(t)||0)-n;r<=0?e.df.delete(t):e.df.set(t,r)}e.docTermFieldHits.delete(t)}}function Ht(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)Vt(e,t);let r=e=>{let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e?t=i+1:r=i}return e-t},i=n[0],a=new Map;for(let[t,n]of e.docFieldCount)a.set(t>i?r(t):t,n);e.docFieldCount=a;let o=new Map;for(let[t,n]of e.docTermFieldHits)o.set(t>i?r(t):t,n);e.docTermFieldHits=o}var $=class{constructor(e,t,n){this.options={...Y,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new We(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=Q(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof Qe))throw Error(V);if(this._myIndex=t||X(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=Ft({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=zt(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!R(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=Ft({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Bt(this._invertedIndex,t,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){this._invertedIndex&&Ht(this._invertedIndex,n);let e=new Set(n);this._docs=this._docs.filter((t,n)=>!e.has(n)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw Error(He);this._invertedIndex&&Ht(this._invertedIndex,[e]);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(F(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return I(n)&&n>-1&&(e=e.slice(0,n)),e}let c=I(n)&&n>0&&F(e),l;if(c){let t=new Ot(n);F(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=F(e)?F(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),Dt(l,{ignoreFieldNorm:s}),a&&l.sort(o),I(n)&&n>-1&&(l=l.slice(0,n));return At(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{records:a}=this._myIndex,o=t?null:[];return a.forEach(({v:e,i:a,n:s})=>{if(!R(e))return;let c=r.searchIn(e);if(c.isMatch){let r={score:c.score,value:e,norm:s,indices:c.indices};i&&(r.matchedMask=c.matchedMask,r.matchedTerms=c.matchedTerms,r.termCount=c.termCount);let l=[r];if(!i||this._coversAllTokens(l)){let r={item:e,idx:a,matches:l};t?(r.score=Et(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=Tt(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===yt.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(R(e)){let o=n(t,e,r);o.length&&(i.has(r)||(i.set(r,{idx:r,item:e,matches:[]}),a.push(i.get(r))),o.forEach(({matches:e})=>{i.get(r).matches.push(...e)}))}}),a}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{keys:a,records:o}=this._myIndex,s=t?null:[];return o.forEach(({$:e,i:o})=>{if(!R(e))return;let c=[],l=!1,u=!1;if(a.forEach((t,n)=>{let i=this._findMatches({key:t,value:e[n],searcher:r});i.length?(c.push(...i),i[0].hasInverse&&(u=!0)):l=!0}),!(u&&l)&&c.length&&(!i||this._coversAllTokens(c))){let r={idx:o,item:e,matches:c};t?(r.score=Et(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):s.push(r)}}),s}_findMatches({key:e,value:t,searcher:n}){if(!R(t))return[];let r=[];if(P(t))t.forEach(({v:t,i,n:a})=>{if(!R(t))return;let o=n.searchIn(t);if(o.isMatch){let n={score:o.score,key:e,value:t,idx:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(n.matchedMask=o.matchedMask,n.matchedTerms=o.matchedTerms,n.termCount=o.termCount),r.push(n)}});else{let{v:i,n:a}=t,o=n.searchIn(i);if(o.isMatch){let t={score:o.score,key:e,value:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(t.matchedMask=o.matchedMask,t.matchedTerms=o.matchedTerms,t.termCount=o.termCount),r.push(t)}}return r}_coversAllTokens(e){let t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let n=0;for(let t=0;t<e.length;t++)n|=e[t].matchedMask||0;return n===2**t-1}let n=new Set;for(let t=0;t<e.length;t++){let r=e[t].matchedTerms;if(r)for(let e of r)n.add(e)}return n.size===t}};$.version=`7.4.2`,$.createIndex=X,$.parseIndex=$e,$.config=Y,$.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(G);return Q(e,{...Y,...n}).searchIn(t)},$.parseQuery=Tt,Z(_t),Z(It),$.use=function(...e){e.forEach(e=>Z(e))};var Ut=$;function Wt(e,t){return t===`all`?!0:t===`changed`?e===`edited`:t===`new`?e===`new`:e!==null}var Gt=e(`<span class="arrow svelte-13hq4tl" aria-hidden="true">›</span>`),Kt=e(`<hr class="svelte-13hq4tl"/>`),qt=e(`<button role="menuitem" tabindex="-1" class="svelte-13hq4tl"> </button>`),Jt=e(`<!> <!>`,1),Yt=e(`<div role="menu" tabindex="-1"></div>`),Xt=e(`<div class="submenu-anchor svelte-13hq4tl" role="presentation"><button class="submenu-trigger svelte-13hq4tl" role="menuitem"><span> </span> <!></button> <!></div>`);function Zt(e,a){re(a,!0);let o=T(a,`alwaysSubmenu`,3,!1),u=y(void 0),d=y(void 0),v=y(!1),S=y(!1),ee=y(240),C=m(()=>a.sections.filter(e=>e.length>0)),te=m(()=>s(C).flat()),E=m(()=>o()||s(te).length>1);async function ne(e=!1){if(!s(E)||(_(v,!0),await h(),!s(u)||!s(d)))return;let t=s(u).getBoundingClientRect();_(S,t.right+s(d).offsetWidth+8>window.innerWidth),_(ee,Math.max(32,window.innerHeight-t.top-8),!0),e&&s(d).querySelector(`[role="menuitem"]:not(:disabled)`)?.focus()}function ie(e){if(!s(E)){let e=s(te)[0];e&&a.onSelect(e.value);return}e.stopPropagation(),ne()}function O(e){!s(E)||e.key!==`ArrowRight`&&e.key!==`ArrowDown`||(e.preventDefault(),e.stopPropagation(),ne(!0))}function ae(e){if(e.key===`ArrowLeft`||e.key===`Escape`){e.preventDefault(),e.stopPropagation(),_(v,!1),s(u)?.focus();return}if(!s(d))return;let t=[...s(d).querySelectorAll(`[role="menuitem"]:not(:disabled)`)];if(t.length===0)return;let n=t.indexOf(document.activeElement),r;if(e.key===`ArrowDown`)r=(n+1)%t.length;else if(e.key===`ArrowUp`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),e.stopPropagation(),t[r]?.focus()}var j=Xt(),M=l(j),ce=l(M),le=l(ce,!0);D(ce);var ue=c(ce,2),de=e=>{f(e,Gt())};r(ue,e=>{s(E)&&e(de)}),D(M),x(M,e=>_(u,e),()=>s(u));var fe=c(M,2),pe=e=>{var i=Yt();let o,u;t(i,21,()=>s(C),se,(e,i,o)=>{var u=Jt(),d=k(u),m=e=>{f(e,Kt())};r(d,e=>{o>0&&e(m)}),t(c(d,2),17,()=>s(i),e=>e.value,(e,t)=>{var r=qt(),i=l(r,!0);D(r),g(()=>{r.disabled=s(t).disabled,A(r,`title`,s(t).title),n(i,s(t).label)}),p(`click`,r,()=>a.onSelect(s(t).value)),f(e,r)}),f(e,u)}),D(i),x(i,e=>_(d,e),()=>s(d)),g(()=>{o=b(i,1,`submenu svelte-13hq4tl`,null,o,{"opens-left":s(S)}),A(i,`aria-label`,a.label),u=w(i,``,u,{"max-height":`${s(ee)}px`})}),p(`keydown`,i,ae),f(e,i)};r(fe,e=>{s(E)&&s(v)&&e(pe)}),D(j),g(()=>{A(M,`aria-haspopup`,s(E)?`menu`:void 0),A(M,`aria-expanded`,s(E)?s(v):void 0),n(le,a.label)}),i(`mouseenter`,j,()=>void ne()),i(`mouseleave`,j,()=>_(v,!1)),p(`focusout`,j,e=>{e.currentTarget.contains(e.relatedTarget)||_(v,!1)}),p(`click`,M,ie),p(`keydown`,M,O),f(e,j),oe()}d([`focusout`,`click`,`keydown`]);var Qt=e(`<button role="menuitem" class="svelte-109nkvw">Rename</button>`),$t=e(`<div class="context-menu svelte-109nkvw" role="menu" aria-label="Asset actions" tabindex="-1"><!> <!> <button class="danger svelte-109nkvw" role="menuitem"> </button> <hr class="svelte-109nkvw"/> <!></div>`);function en(e,t){re(t,!0);let o=m(()=>Math.max(8,Math.min(t.x,window.innerWidth-176))),u=m(()=>t.assetCount===1&&t.copyOptions.length>0),d=m(()=>2+ +!!s(u)+ +!!t.onRename),h=m(()=>Math.max(8,Math.min(t.y,window.innerHeight-(s(d)*32+17)))),_=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function v(e){e(),t.onClose()}var y=$t();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 b;var x=l(y),S=e=>{{let n=m(()=>[t.copyOptions.slice(0,1).map(e=>({label:e,value:e})),t.copyOptions.slice(1).map(e=>({label:e,value:e}))]);Zt(e,{label:`Copy Asset ID`,get sections(){return s(n)},alwaysSubmenu:!0,onSelect:e=>v(()=>t.onCopy(e))})}};r(x,e=>{s(u)&&e(S)});var ee=c(x,2),C=e=>{var n=Qt();p(`click`,n,()=>v(t.onRename)),f(e,n)};r(ee,e=>{t.onRename&&e(C)});var te=c(ee,2),T=l(te,!0);D(te);var E=c(te,4);{let e=m(()=>[[{label:`Raw`,value:`raw`},{label:`Proxy`,value:`proxy`,disabled:!t.hasProxy,title:t.hasProxy?void 0:`No proxy is available for this asset.`}]]);Zt(E,{get label(){return _},get sections(){return s(e)},alwaysSubmenu:!0,onSelect:e=>v(()=>t.onReveal(e))})}D(y),g(()=>{b=w(y,``,b,{left:`${s(o)}px`,top:`${s(h)}px`}),n(T,t.assetCount===1?`Delete Asset`:`Delete ${t.assetCount} Assets`)}),p(`contextmenu`,y,e=>e.preventDefault()),p(`click`,te,()=>v(t.onDelete)),f(e,y),oe()}d([`contextmenu`,`click`]);var tn=e(`<span class="emoji svelte-1b4m5oj"> </span>`),nn=e(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function rn(e,t){re(t,!0);let i=T(t,`variant`,3,`chip`),a=T(t,`passive`,3,!1),o=T(t,`via`,19,()=>[]),u=m(()=>N.manifestAppearance(t.name)),d=m(()=>s(u).color??`var(--accent)`),p=m(()=>a()?`${t.name} — passive member${o().length>0?`, via ${o().join(`, `)}`:``}`:t.name);var h=nn();let _;var v=l(h),y=e=>{var t=tn(),r=l(t,!0);D(t),g(()=>n(r,s(u).emoji)),f(e,t)};r(v,e=>{s(u).emoji&&e(y)});var x=c(v,2),S=l(x,!0);D(x),D(h),g(()=>{_=b(h,1,`manifest-label ${i()??``}`,`svelte-1b4m5oj`,_,{passive:a()}),w(h,`--manifest-color: ${s(d)??``}`),A(h,`title`,s(p)),n(S,t.name)}),f(e,h),oe()}function an(e){return[e.id,...e.manifests.map(t=>`${t}.${e.id}`)]}var on=e(`<!>`,1),sn=e(`<div><span class="icon-slot svelte-dr99ka"><!></span> <select class="svelte-dr99ka"><!></select></div>`);function cn(e,t){re(t,!0);let n=T(t,`value`,15),r=T(t,`active`,3,!1);var i=sn();let a;var o=l(i);Te(l(o),{get name(){return t.icon},size:14}),D(o);var s=c(o,2);C(s,()=>{var e=l(s),n=on();j(k(n),()=>t.children),f(e,n)}),D(i),g(()=>{a=b(i,1,`browse-select control svelte-dr99ka`,null,a,{"filter-active":r()}),A(o,`title`,t.label),A(s,`aria-label`,t.label)}),O(s,n),f(e,i),oe()}var ln=e(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),un=e(`<button class="control">Select All</button>`),dn=e(`<option>Sort alphabetically</option> <option>Sort by type</option> <option>Sort by manifest</option>`,1),fn=e(`<option> </option>`),pn=e(`<option>All types</option> <!>`,1),mn=e(`<option>All manifests</option> <!>`,1),hn=e(`<option>All Assets</option> <option>Changed Assets</option> <option>New Assets</option> <option>Changed & New Assets</option>`,1),gn=e(`<div class="empty svelte-1uha8ag">Loading library…</div>`),_n=e(`<div class="empty svelte-1uha8ag"> </div>`),vn=e(`<button draggable="true"><span class="folder-card-icon svelte-1uha8ag"><!></span> <span class="folder-card-details svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag"> </span></span> <span class="folder-card-arrow svelte-1uha8ag">›</span></button>`),yn=e(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),bn=e(`<span class="section-emoji svelte-1uha8ag"> </span>`),xn=e(`<!> `,1),Sn=e(`<span class="badge warning svelte-1uha8ag">⚠</span>`),Cn=e(`<a draggable="true"><!> <input class="asset-select svelte-1uha8ag" type="checkbox"/> <div class="thumbnail checkerboard svelte-1uha8ag"><!></div> <div class="meta svelte-1uha8ag"><span class="id svelte-1uha8ag"> </span> <span class="type-badge svelte-1uha8ag"> </span></div> <div class="badges svelte-1uha8ag"><!> <!> <!></div></a>`),wn=e(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Tn=e(`<!> <!>`,1),En=e(`<div class="drop-hint svelte-1uha8ag"> </div>`),Dn=e(`<p class="dialog-warning svelte-1uha8ag"> </p>`),On=e(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),kn=e(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),An=e(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),jn=e(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="selection-bar svelte-1uha8ag"><!> <button class="control import svelte-1uha8ag">Import file</button> <button class="control">Import from Figma</button> <input type="file" hidden=""/></div> <div class="filter-bar svelte-1uha8ag"><!> <!> <!> <!> <div><span class="search-icon-slot svelte-1uha8ag"><svg class="search-icon svelte-1uha8ag" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5"></circle><path d="m10.5 10.5 3 3"></path></svg></span> <input class="search-input svelte-1uha8ag" type="search" placeholder="Search assets and folders…" aria-label="Search assets and folders" spellcheck="false"/> <kbd class="svelte-1uha8ag"> </kbd></div> <label class="toggle svelte-1uha8ag"><input type="checkbox"/> Warnings only</label></div> <!> <!></div></div> <!> <!> <!> <!> <!> <!>`,1);function Mn(e,d){re(d,!0);let C=`fundus.gallery.sort`,w=`fundus.gallery.folder`;function T(){try{let e=localStorage.getItem(C);if(e===`type`||e===`manifest`||e===`alphabetical`)return e}catch{}return`alphabetical`}let O=y(v(T()));function se(){try{let e=localStorage.getItem(w);return e===null||e===`__all__`?null:e}catch{return null}}let j=y(v(se())),Te=y(`all`),P=y(`all`),Re=y(`all`),ze=y(``),F=y(!1),I=y(!1),Be=y(null),L=y(null),Ve=y(``),R=y(null),z=y(null),B=y(null),V=y(``),He=y(void 0),H=y(v([])),U=y(null),Ue=y(null),W=y(!1),G=y(null),K=0,We=y(null),Ge=0,Ke=y(null),qe=0,Je=y(null),Ye=0,q=y(v([])),J=y(null),Xe=y(void 0),Y=y(void 0),Ze=Se().join(`,`),Qe=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`;o(()=>{try{localStorage.setItem(C,s(O))}catch{}}),o(()=>{try{localStorage.setItem(w,s(j)??`__all__`)}catch{}});let X=m(()=>N.state?.assets??[]),$e=m(()=>s(B)!==null&&s(V)!==s(B)?fe(s(V)):null),et=m(()=>s(B)!==null&&s(X).some(e=>e.id!==s(B)&&e.id===s(V))),tt=m(()=>s(B)!==null&&s(V)!==s(B)&&s($e)===null&&!s(et)&&!s(W)),nt=m(()=>s(B)===null?[]:(s(X).find(e=>e.id===s(B))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${s(B)}`)),rt=m(()=>new Set(s(H))),it=m(()=>s(H).flatMap(e=>(s(X).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!s(rt).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),at=m(()=>N.state?.library.folders??[]),ot=m(()=>N.manifestNames),st=m(()=>[...new Set(s(X).map(e=>e.type))].sort()),ct=m(()=>s(ze).trim()),lt=m(()=>new Ut(s(X),{keys:[{name:`id`,weight:.5},{name:`raw`,weight:.2},{name:`folder`,weight:.1},{name:`manifests`,weight:.08},{name:`passiveManifests.manifest`,weight:.07},{name:`type`,weight:.05}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),ut=m(()=>s(ct)===``?null:new Set(s(lt).search(s(ct)).map(({item:e})=>e.id))),dt=m(()=>s(at).map(e=>({path:e,name:ye(e)}))),ft=m(()=>new Ut(s(dt),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),pt=m(()=>s(ct)===``?null:new Set(s(ft).search(s(ct)).map(({item:e})=>e.path))),mt=m(()=>s(j)===null?[]:s(at).filter(e=>le(e)===s(j)).sort((e,t)=>e.localeCompare(t))),ht=m(()=>s(pt)===null?s(mt):s(mt).filter(e=>s(pt).has(e)));o(()=>{N.state&&s(j)!==null&&s(j)!==``&&!s(at).includes(s(j))&&_(j,null)});let gt=m(()=>s(X).filter(e=>!(s(j)!==null&&e.folder!==s(j)||s(ut)!==null&&!s(ut).has(e.id)||s(Te)!==`all`&&e.type!==s(Te)||!Wt(e.gitStatus,s(Re))||s(P)!==`all`&&!e.manifests.includes(s(P))&&!e.passiveManifests.some(e=>e.manifest===s(P))||s(F)&&e.warnings.length===0))),_t=(e,t)=>e.id.localeCompare(t.id),vt=m(()=>{let e=[...s(gt)].sort(_t);if(s(O)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(s(O)===`type`)return[...new Set(e.map(e=>e.type))].sort().map(t=>({key:t,heading:t,assets:e.filter(e=>e.type===t)}));let t=[];for(let n of s(ot)){let r=e.filter(e=>e.manifests.includes(n)||e.passiveManifests.some(e=>e.manifest===n));r.length>0&&t.push({key:n,heading:n,emoji:N.manifestAppearance(n).emoji,assets:r})}let n=e.filter(e=>e.manifests.length===0&&e.passiveManifests.length===0);return n.length>0&&t.push({key:`__no-manifest__`,heading:`No manifest`,assets:n}),t}),Z=m(()=>[...new Set(s(vt).flatMap(e=>e.assets.map(e=>e.id)))]);o(()=>{let e=new Set(s(X).map(e=>e.id)),t=s(q).filter(t=>e.has(t));t.length!==s(q).length&&_(q,t,!0)});function Q(e){Ie.begin(),_(j,e,!0),_(q,[],!0),_(J,null)}function yt(e,t){if(t&&s(J)!==null){let t=s(Z).indexOf(s(J)),n=s(Z).indexOf(e);if(t!==-1&&n!==-1){let r=Math.min(t,n),i=Math.max(t,n);_(q,[...new Set([...s(q),...s(Z).slice(r,i+1)])],!0),_(J,e,!0);return}}_(q,s(q).includes(e)?s(q).filter(t=>t!==e):[...s(q),e],!0),_(J,e,!0)}function bt(){_(q,[...s(Z)],!0),_(J,s(Z).at(-1)??null,!0)}function xt(e,t){if(!e.dataTransfer||t.length<2)return;let n=[...document.querySelectorAll(`.card[data-asset-id]`)],r=t.map(e=>n.find(t=>t.dataset.assetId===e)).filter(e=>e!==void 0);if(r.length<2)return;let i=document.createElement(`div`),a=44/(r.length-1),o=Math.min(r[0].offsetWidth,180),s=r[0].offsetHeight;Object.assign(i.style,{position:`fixed`,left:`-10000px`,top:`-10000px`,width:`${o+44}px`,height:`${s+44}px`,pointerEvents:`none`});for(let[e,t]of r.entries()){let n=t.cloneNode(!0);n.querySelector(`.asset-select`)?.remove(),n.removeAttribute(`href`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,{position:`absolute`,left:`${e*a}px`,top:`${e*a}px`,width:`${o}px`,height:`${s}px`,boxSizing:`border-box`,opacity:`1`}),i.append(n)}let c=document.createElement(`span`);c.textContent=String(t.length),Object.assign(c.style,{position:`absolute`,right:`0`,top:`0`,minWidth:`28px`,height:`28px`,padding:`0 7px`,boxSizing:`border-box`,borderRadius:`14px`,background:`var(--accent)`,color:`var(--text)`,font:`600 13px/28px system-ui, sans-serif`,textAlign:`center`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.35)`}),i.append(c),document.body.append(i),e.dataTransfer.setDragImage(i,24,24),requestAnimationFrame(()=>i.remove())}function St(e){e.preventDefault(),_(I,!1);let t=e.dataTransfer?.files?.[0];t&&(_(Ve,s(j)??``,!0),_(Be,t,!0))}function Ct(e){_(Ve,e,!0),s(Xe)?.click()}function wt(e){Ge+=1,_(We,{id:Ge,parent:e},!0)}function Tt(e){qe+=1,_(Ke,{id:qe,path:e},!0)}function Et(e){Ye+=1,_(Je,{id:Ye,path:e},!0)}function Dt(e){e.preventDefault(),_(z,null),_(R,{x:e.clientX,y:e.clientY,parent:s(j)??``,renamePath:null},!0)}function Ot(e,t){e.preventDefault(),e.stopPropagation(),_(z,null),_(R,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function kt(e,t){e.preventDefault(),e.stopPropagation(),_(R,null);let n=s(q).includes(t)?[...s(q)]:[t];s(q).includes(t)||(_(q,[t],!0),_(J,t,!0)),_(z,{x:e.clientX,y:e.clientY,assetIds:n,targetAssetId:t},!0)}function At(e){K+=1,_(B,e,!0),_(V,e,!0),_(G,null),h().then(()=>{s(He)?.focus(),s(He)?.select()})}function jt(e){K+=1,_(H,[...new Set(e)],!0),_(G,null)}async function Mt(e,t){try{await Ce(e,t),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function Nt(e){let t=N.assetById(e);return t?an(t):[e]}async function Pt(e){try{await navigator.clipboard.writeText(e),N.error=null}catch(e){N.error=`Could not copy asset ID: ${e instanceof Error?e.message:String(e)}`}}async function Ft(e){try{await xe(e),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function It(){s(W)||(K+=1,_(B,null),_(H,[],!0),_(G,null))}async function Lt(){if(!s(tt)||s(B)===null)return;let e=s(B),t=s(V);_(W,!0),_(G,null);let n=N.mutate(()=>he(e,{renameTo:t}),we(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});_(q,s(q).map(n=>n===e?t:n),!0),_(J,s(J)===e?t:s(J),!0),_(B,null);let r=++K;_(W,!1);try{await n}catch(n){let i=N.assetById(e)!==null;i&&(_(q,s(q).map(n=>n===t?e:n),!0),_(J,s(J)===t?e:s(J),!0)),i&&K===r&&(_(B,e,!0),_(V,t,!0),_(G,n instanceof Error?n.message:String(n),!0))}finally{_(W,!1)}}async function Rt(){if(s(H).length===0)return;let e=[...s(H)],t=[...s(q)],n=s(J);_(W,!0),_(G,null);let r=N.mutate(()=>me(e),_e(e),{dependencies:e.map(e=>`asset:${e}`),invalidatesOnFailure:e.map(e=>`asset:${e}`)}),i=new Set(e);_(q,s(q).filter(e=>!i.has(e)),!0),s(J)!==null&&i.has(s(J))&&_(J,null);let a=[...s(q)],o=s(J);_(H,[],!0);let c=++K;_(W,!1);try{await r}catch(r){let i=new Set(e.filter(e=>N.assetById(e)));i.size>0&&s(q).length===a.length&&s(q).every((e,t)=>e===a[t])&&s(J)===o&&(_(q,t.filter(e=>i.has(e)),!0),_(J,n!==null&&i.has(n)?n:null,!0)),i.size>0&&K===c&&(_(H,e.filter(e=>i.has(e)),!0),_(G,r instanceof Error?r.message:String(r),!0))}finally{_(W,!1)}}function zt(e){return s(X).filter(t=>t.folder===e).length}function Bt(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&_(Be,n,!0)}async function Vt(e){_(Be,null),_(L,null),await ce(M(`/asset/[id]`,{id:e}))}async function Ht(e,t){let n=e.filter(e=>N.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=N.assetById(e)?.folder;return t===void 0?[]:[t]})])],i=[...s(q)],a=s(J),o=N.mutate(()=>ue(n,t),ve(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]});_(q,[],!0),_(J,null);try{await o}catch{n.some(e=>N.assetById(e)?.folder!==t)&&s(q).length===0&&s(J)===null&&(_(q,i,!0),_(J,a,!0))}}function $(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=ke(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,s(U),t,s(at));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),_(Ue,t,!0))}function Gt(e,t){e.preventDefault(),_(Ue,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`)&&Ht(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&De(r,t,s(at))&&Kt(r,t)}async function Kt(e,t){let n=pe(t,ye(e)),r=s(j),i=r,a=N.mutate(()=>ge(e,t),be(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});s(j)!==null&&de(s(j),e)&&(i=`${n}${s(j).slice(e.length)}`,Q(i));try{await a}catch{s(j)===i&&s(at).some(t=>de(t,e))&&Q(r)}finally{_(U,null),_(Ue,null)}}function qt(e){e&&e.play().catch(()=>{})}function Jt(e){e&&(e.pause(),e.currentTime=0)}function Yt(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),s(Y)?.focus(),s(Y)?.select())}var Xt=jn();i(`keydown`,a,Yt),i(`dragenter`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(I,!0))}),i(`dragover`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(I,!0))}),i(`drop`,a,St);var Zt=k(Xt),Qt=l(Zt);je(Qt,{get selectedFolder(){return s(j)},get createRequest(){return s(We)},get renameRequest(){return s(Ke)},get deleteRequest(){return s(Je)},onSelect:Q,onMoveAssets:(e,t)=>void Ht(e,t),get sharedDraggedFolder(){return s(U)},onFolderDragStart:e=>_(U,e,!0),onFolderDragEnd:()=>_(U,null),onContextMenu:(e,t,n,r)=>{_(z,null),_(R,{x:e,y:t,parent:n,renamePath:r},!0)}});var $t=c(Qt,2);let tn;var nn=l($t),on=l(nn),sn=e=>{var t=ln(),r=k(t),i=l(r);D(r);var a=c(r,2),o=c(a,2);g(()=>n(i,`${s(q).length??``} selected`)),p(`click`,a,bt),p(`click`,o,()=>{_(q,[],!0),_(J,null)}),f(e,t)},Mn=e=>{var t=un();g(()=>t.disabled=s(Z).length===0),p(`click`,t,bt),f(e,t)};r(on,e=>{s(q).length>0?e(sn):e(Mn,-1)});var Nn=c(on,2),Pn=c(Nn,2),Fn=c(Pn,2);x(Fn,e=>_(Xe,e),()=>s(Xe)),D(nn);var In=c(nn,2),Ln=l(In);cn(Ln,{label:`Sort`,icon:`sort`,get value(){return s(O)},set value(e){_(O,e,!0)},children:(e,t)=>{var n=dn(),r=k(n);r.value=r.__value=`alphabetical`;var i=c(r,2);i.value=i.__value=`type`;var a=c(i,2);a.value=a.__value=`manifest`,f(e,n)},$$slots:{default:!0}});var Rn=c(Ln,2);{let e=m(()=>s(Te)!==`all`);cn(Rn,{label:`Filter by type`,icon:`asset-type`,get active(){return s(e)},get value(){return s(Te)},set value(e){_(Te,e,!0)},children:(e,r)=>{var i=pn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(st),e=>e,(e,t)=>{var r=fn(),i=l(r,!0);D(r);var a={};g(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),f(e,r)}),f(e,i)},$$slots:{default:!0}})}var zn=c(Rn,2);{let e=m(()=>s(P)!==`all`);cn(zn,{label:`Filter by manifest`,icon:`manifest`,get active(){return s(e)},get value(){return s(P)},set value(e){_(P,e,!0)},children:(e,r)=>{var i=mn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(ot),e=>e,(e,t)=>{let r=m(()=>N.manifestAppearance(t).emoji);var i=fn(),a=l(i,!0);D(i);var o={};g(()=>{n(a,s(r)?`${s(r)} ${t}`:t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),f(e,i)}),f(e,i)},$$slots:{default:!0}})}var Bn=c(zn,2);{let e=m(()=>s(Re)!==`all`);cn(Bn,{label:`Filter by Git status`,icon:`git-branch`,get active(){return s(e)},get value(){return s(Re)},set value(e){_(Re,e,!0)},children:(e,t)=>{var n=hn(),r=k(n);r.value=r.__value=`all`;var i=c(r,2);i.value=i.__value=`changed`;var a=c(i,2);a.value=a.__value=`new`;var o=c(a,2);o.value=o.__value=`changed-and-new`,f(e,n)},$$slots:{default:!0}})}var Vn=c(Bn,2);let Hn;var Un=c(l(Vn),2);ne(Un),x(Un,e=>_(Y,e),()=>s(Y));var Wn=c(Un,2),Gn=l(Wn,!0);D(Wn),D(Vn);var Kn=c(Vn,2),qn=l(Kn);ne(qn),S(),D(Kn),D(In);var Jn=c(In,2),Yn=e=>{f(e,gn())},Xn=e=>{var t=_n(),r=l(t,!0);D(t),g(()=>n(r,s(X).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),f(e,t)},Zn=e=>{var a=Tn(),o=k(a),d=e=>{var r=yn(),a=l(r);Ae(a,{children:(e,t)=>{S(),f(e,u(`Folders`))},$$slots:{default:!0}});var o=c(a,2);t(o,20,()=>s(ht),e=>e,(e,t)=>{var r=vn();let a;var o=l(r);Ne(l(o),{size:18}),D(o);var u=c(o,2),d=l(u),m=l(d,!0);D(d);var h=c(d,2),v=l(h);D(h),D(u),S(2),D(r),g((e,i)=>{a=b(r,1,`folder-card svelte-1uha8ag`,null,a,{"drop-target":s(Ue)===t,"dragging-folder":s(U)===t}),n(m,e),n(v,`${i??``} assets`)},[()=>ye(t),()=>zt(t)]),p(`click`,r,()=>Q(t)),p(`contextmenu`,r,e=>Ot(e,t)),i(`dragstart`,r,e=>{_(U,t,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),i(`dragend`,r,()=>{_(U,null),_(Ue,null)}),i(`dragover`,r,e=>$(e,t)),i(`dragleave`,r,()=>_(Ue,null)),i(`drop`,r,e=>Gt(e,t)),f(e,r)}),D(o),D(r),f(e,r)};r(o,e=>{s(ht).length>0&&e(d)});var h=c(o,2),v=e=>{var a=E();t(k(a),17,()=>s(vt),e=>e.key,(e,a)=>{var o=wn(),u=l(o),d=e=>{Ae(e,{children:(e,t)=>{var i=xn(),o=k(i),u=e=>{var t=bn(),r=l(t,!0);D(t),g(()=>n(r,s(a).emoji)),f(e,t)};r(o,e=>{s(a).emoji&&e(u)});var d=c(o,1,!0);g(()=>n(d,s(a).heading)),f(e,i)},$$slots:{default:!0}})};r(u,e=>{s(a).heading&&e(d)});var h=c(u,2);t(h,21,()=>s(a).assets,e=>e.id,(e,a)=>{let o=m(()=>Oe[s(a).type]?.thumbnail);var u=Cn();let d;var h=l(u),_=e=>{{let t=m(()=>`${s(a).gitStatus===`new`?`New`:`Edited`} on ${N.state?.gitBranch??`the current Git branch`}`);Ee(e,{get kind(){return s(a).gitStatus},overlay:!0,get title(){return s(t)}})}};r(h,e=>{s(a).gitStatus&&e(_)});var v=c(h,2);ne(v);var y=c(v,2),x=l(y),S=e=>{var t=E();ee(k(t),()=>s(o),(e,t)=>{t(e,{get asset(){return s(a)}})}),f(e,t)};r(x,e=>{s(o)&&e(S)}),D(y);var C=c(y,2),w=l(C),T=l(w,!0);D(w);var re=c(w,2),ie=l(re,!0);D(re),D(C);var O=c(C,2),ae=l(O);t(ae,16,()=>s(a).manifests,e=>e,(e,t)=>{rn(e,{get name(){return t}})});var oe=c(ae,2);t(oe,17,()=>s(a).passiveManifests,e=>e.manifest,(e,t)=>{rn(e,{get name(){return s(t).manifest},passive:!0,get via(){return s(t).via}})}),t(c(oe,2),16,()=>s(a).warnings,e=>e,(e,t)=>{var n=Sn();g(()=>A(n,`title`,t)),f(e,n)}),D(O),D(u),g((e,t,r)=>{d=b(u,1,`card svelte-1uha8ag`,null,d,e),A(u,`data-asset-id`,s(a).id),A(u,`href`,t),te(v,r),A(v,`aria-label`,`Select ${s(a).id}`),n(T,s(a).id),n(ie,s(a).type)},[()=>({selected:s(q).includes(s(a).id)}),()=>M(`/asset/[id]`,{id:s(a).id}),()=>s(q).includes(s(a).id)]),p(`contextmenu`,u,e=>kt(e,s(a).id)),p(`click`,u,e=>{(s(q).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),yt(s(a).id,e.shiftKey))}),i(`dragstart`,u,e=>{let t=s(q).includes(s(a).id)?s(q):[s(a).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(t)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),xt(e,t)}),i(`focus`,u,e=>qt(e.currentTarget.querySelector(`video`))),i(`blur`,u,e=>Jt(e.currentTarget.querySelector(`video`))),p(`click`,v,e=>{e.stopPropagation(),yt(s(a).id,e.shiftKey)}),f(e,u)}),D(h),D(o),f(e,o)}),f(e,a)};r(h,e=>{s(gt).length>0&&e(v)}),f(e,a)};r(Jn,e=>{N.state?s(gt).length===0&&s(ht).length===0?e(Xn,1):e(Zn,-1):e(Yn)});var Qn=c(Jn,2),$n=e=>{var t=En(),r=l(t);D(t),g(()=>n(r,`Drop to import into ${(s(j)||`Root`)??``}`)),f(e,t)};r(Qn,e=>{s(I)&&e($n)}),D($t),D(Zt);var er=c(Zt,2),tr=e=>{{let t=m(()=>s(R).renamePath===null?void 0:()=>Tt(s(R)?.renamePath??``)),n=m(()=>s(R).renamePath===null?void 0:()=>Et(s(R)?.renamePath??``));Fe(e,{get x(){return s(R).x},get y(){return s(R).y},onReveal:()=>void Ft(s(R)?.renamePath??s(R)?.parent??``),onNewDirectory:()=>wt(s(R)?.parent??``),get onRenameDirectory(){return s(t)},onImportFile:()=>Ct(s(R)?.parent??``),onImportFigma:()=>_(L,s(R)?.parent??``,!0),get onDeleteDirectory(){return s(n)},onClose:()=>_(R,null)})}};r(er,e=>{s(R)&&e(tr)});var nr=c(er,2),rr=e=>{{let t=m(()=>Nt(s(z).targetAssetId)),n=m(()=>!!N.assetById(s(z).targetAssetId)?.proxy),r=m(()=>s(z).assetIds.length===1?()=>At(s(z)?.assetIds[0]??``):void 0);en(e,{get x(){return s(z).x},get y(){return s(z).y},get assetCount(){return s(z).assetIds.length},get copyOptions(){return s(t)},onCopy:e=>void Pt(e),get hasProxy(){return s(n)},onReveal:e=>void Mt(s(z)?.targetAssetId??``,e),get onRename(){return s(r)},onDelete:()=>jt(s(z)?.assetIds??[]),onClose:()=>_(z,null)})}};r(nr,e=>{s(z)&&e(rr)});var ir=c(nr,2),ar=e=>{{let t=m(()=>s(W)?`Renaming…`:`Rename`),i=m(()=>!s(tt));Le(e,{title:`Rename asset`,get confirmLabel(){return s(t)},get confirmDisabled(){return s(i)},get busy(){return s(W)},onConfirm:()=>void Lt(),onCancel:It,children:(e,t)=>{var i=kn(),a=k(i),o=c(l(a),2);ne(o),x(o,e=>_(He,e),()=>s(He)),D(a);var u=c(a,2),d=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s($e))),f(e,t)};r(u,e=>{s($e)&&e(d)});var p=c(u,2),m=e=>{f(e,On())};r(p,e=>{s(et)&&e(m)});var h=c(p,2),v=e=>{var t=Dn(),r=l(t);D(t),g(e=>n(r,`Renaming leaves ${s(nt).length??``} reference(s) pointing to the old ID:
|
|
2
|
+
${e??``}`),[()=>s(nt).join(`, `)]),f(e,t)};r(h,e=>{s(nt).length>0&&e(v)});var y=c(h,2),b=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(G))),f(e,t)};r(y,e=>{s(G)&&e(b)}),g(()=>o.disabled=s(W)),ae(o,()=>s(V),e=>_(V,e)),f(e,i)},$$slots:{default:!0}})}};r(ir,e=>{s(B)!==null&&e(ar)});var or=c(ir,2),sr=e=>{{let t=m(()=>s(H).length===1?`Delete asset`:`Delete ${s(H).length} assets`),i=m(()=>s(W)?`Deleting…`:s(H).length===1?`Delete asset`:`Delete ${s(H).length} assets`);Le(e,{get title(){return s(t)},get confirmLabel(){return s(i)},danger:!0,get busy(){return s(W)},onConfirm:()=>void Rt(),onCancel:It,children:(e,t)=>{var i=An(),a=k(i),o=l(a);D(a);var u=c(a,2),d=e=>{var t=Dn(),r=l(t);D(t),g(e=>n(r,`This leaves ${s(it).length??``} external reference(s) dangling:
|
|
3
|
+
${e??``}`),[()=>s(it).join(`, `)]),f(e,t)};r(u,e=>{s(it).length>0&&e(d)});var p=c(u,2),m=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(G))),f(e,t)};r(p,e=>{s(G)&&e(m)}),g(e=>n(o,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>s(H).join(`, `)]),f(e,i)},$$slots:{default:!0}})}};r(or,e=>{s(H).length>0&&e(sr)});var cr=c(or,2),lr=e=>{Pe(e,{get file(){return s(Be)},get folder(){return s(Ve)},onDone:e=>void Vt(e),onCancel:()=>_(Be,null)})};r(cr,e=>{s(Be)&&e(lr)});var ur=c(cr,2),dr=e=>{Me(e,{get folder(){return s(L)},onDone:e=>void Vt(e),onCancel:()=>_(L,null)})};r(ur,e=>{s(L)!==null&&e(dr)}),g(()=>{tn=b($t,1,`page svelte-1uha8ag`,null,tn,{dragging:s(I)}),A(Fn,`accept`,Ze),Hn=b(Vn,1,`control search svelte-1uha8ag`,null,Hn,{"filter-active":s(ct)!==``}),n(Gn,Qe)}),p(`contextmenu`,$t,Dt),i(`dragleave`,$t,e=>{e.relatedTarget===null&&_(I,!1)}),p(`click`,Nn,()=>Ct(s(j)??``)),p(`click`,Pn,()=>_(L,s(j)??``,!0)),p(`change`,Fn,Bt),p(`keydown`,Un,e=>{e.key===`Escape`&&(e.stopPropagation(),s(ze)===``?e.currentTarget.blur():_(ze,``))}),ae(Un,()=>s(ze),e=>_(ze,e)),ie(qn,()=>s(F),e=>_(F,e)),f(e,Xt),oe()}d([`contextmenu`,`click`,`change`,`keydown`]);export{Mn as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,H as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,V as p,X as m,Z as h,_ as ee,a as g,at as _,b as v,f as y,it as b,k as x,l as te,nt as S,ot as C,p as ne,q as w,s as re,tt as T,u as E}from"../chunks/NblqapDQ.js";import{c as D,t as O}from"../chunks/B6BtXxR0.js";import"../chunks/xihTtKlq.js";import{t as k}from"../chunks/BEbRZpHw.js";import{H as A,J as j,O as ie,Q as ae,X as oe,a as se,c as ce,et as le,m as ue,n as de,nt as fe,p as pe,t as M,u as N}from"../chunks/4FCfXqUa.js";import{t as me}from"../chunks/BVDR6adL.js";import{c as he,l as P,n as ge,o as _e,s as ve,t as ye,u as F}from"../chunks/BX8lJS3k.js";function be(e,t,n){return n===t.revision?e??t:e}var xe=e(`<div class="center empty svelte-xy8zsr">Loading…</div>`),Se=e(`<div class="center empty svelte-xy8zsr"> </div>`),Ce=e(`<div class="empty svelte-xy8zsr"> </div>`),we=e(`<p class="warning svelte-xy8zsr"> </p>`),Te=e(`<p class="hint error svelte-xy8zsr"> </p>`),Ee=e(`<section class="svelte-xy8zsr"><!> <p class="hint source-label svelte-xy8zsr"> </p> <label class="source-field svelte-xy8zsr"><span>Selection link</span> <input class="control svelte-xy8zsr" type="url"/></label> <label class="source-field svelte-xy8zsr"><span>Export scale</span> <select class="control svelte-xy8zsr"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label> <div class="source-actions svelte-xy8zsr"><a class="control svelte-xy8zsr" target="_blank" rel="noreferrer">Open in Figma</a> <button> </button></div> <!></section>`),De=e(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),Oe=e(`<p class="hint svelte-xy8zsr">No references.</p>`),ke=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),Ae=e(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),je=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),Me=e(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Ne=e(`<!> <!>`,1),Pe=e(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!></section> <!> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <button class="control replace-raw svelte-xy8zsr"> </button> <!> <div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),I=e(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!> <!>`,1);function L(e,l){S(l,!0);let L=f(()=>k.params.id??``),R=f(()=>M.assetById(a(L))),Fe=f(()=>M.manifestNames),Ie=f(()=>a(R)?M.state?.presetNames[a(R).type]??[]:[]),z=f(()=>a(R)?he[a(R).type]??null:null),Le=f(()=>a(z)?.panel??null),Re=f(()=>a(z)?.editor??null),B=f(()=>{if(a(R)?.importSource?.importer!==`figma`)return null;let e=a(R).importSource.parameters;if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e;return typeof t.fileKey!=`string`||typeof t.nodeId!=`string`||!/^\d+:\d+$/.test(t.nodeId)||t.scale!==1&&t.scale!==2&&t.scale!==3&&t.scale!==4?null:{fileKey:t.fileKey,nodeId:t.nodeId,scale:t.scale,url:`https://www.figma.com/design/${encodeURIComponent(t.fileKey)}/fundus?node-id=${t.nodeId.replace(`:`,`-`)}`}}),V=h(null),ze=0,H=f(()=>a(R)?a(V)&&a(V).assetId===a(R).id?a(V).value:b(a(R)).parameters:null);function Be(e){a(R)&&m(V,{assetId:a(R).id,value:e,revision:++ze},!0)}let U=null,W=h(null),Ve=h(null),He=0,Ue=h(null),We=0,Ge=h(null),Ke=0,G=h(null),K=h(null),qe=h(``),Je=h(void 0),Ye=h(void 0),q=h(null),Xe=h(null),J=h(null),Y=h(null),Ze=h(null),X=h(``),Z=h(2),Qe=f(()=>a(B)!==null&&(a(X).trim()!==a(B).url||a(Z)!==a(B).scale));i(()=>{let e=a(B),t=a(R)&&e?`${a(R).id}|${e.fileKey}|${e.nodeId}|${e.scale}`:null;t!==a(Ze)&&(m(Ze,t,!0),m(X,e?.url??``,!0),m(Z,e?.scale??2,!0),m(Y,null))});let $e=pe().join(`,`),et=f(()=>a(R)?ue(a(R).type).join(`,`):``),tt=h(null),Q=f(()=>a(R)&&a(tt)?.assetId===a(R).id?a(tt).value:a(R)?.id??``),nt=f(()=>a(R)&&a(Q)!==a(R).id?ie(a(Q))??(M.assetById(a(Q))?`An asset with this ID already exists.`:null):null);async function rt(e){if(!a(R))return;let t=a(R).id,n=M.state?de(M.state,t,e):[`asset:${t}`];Be(e);let r=a(V),i=M.mutate(()=>oe(t,{parameters:e}),N(t,{parameters:e}),{dependencies:n});a(V)?.revision===r.revision&&m(V,null);try{await i}catch{m(V,be(a(V),r,ze),!0)}}async function it(e){if(!a(R))return;let t=a(R).id,n=a(R).manifests.includes(e)?a(R).manifests.filter(t=>t!==e):[...a(R).manifests,e];try{await M.mutate(()=>oe(t,{manifests:n}),N(t,{manifests:n}),{dependencies:[`asset:${t}`,...[...new Set([...n,e])].map(e=>`manifest:${e}`)]})}catch{}}async function at(){if(!a(R)||a(Q)===a(R).id||a(nt))return;let e=a(R).id,t=a(Q),n=M.mutate(()=>oe(e,{renameTo:t}),N(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});m(tt,null);let r=a(L)===e?O(D(`/asset/[id]`,{id:t}),{replaceState:!0}):Promise.resolve();try{await Promise.all([n,r])}catch{a(L)===t&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}),{replaceState:!0})}}async function ot(){if(!a(R))return;let e=a(R).id;if(!confirm(`Delete "${e}"? The raw file and its proxies are removed.`))return;let t=M.mutate(()=>A(e),se([e]),{dependencies:[`asset:${e}`],invalidatesOnFailure:[`asset:${e}`]}),n=a(L)===e?F.begin():null;U=null;let r=n===null?Promise.resolve():O(D(`/`));try{await Promise.all([t,r])}catch{n!==null&&F.isCurrent(n)&&k.url.pathname===D(`/`)&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}))}}async function st(e,t){let n=F.begin();U=t?{assetId:t,intent:n}:null;try{localStorage.setItem(`fundus.gallery.folder`,e??`__all__`)}catch{}await O(D(`/`))}async function ct(e){let t=U;t?.assetId!==e||!F.isCurrent(t.intent)||k.url.pathname!==D(`/`)||!M.assetById(e)||(U=null,await O(D(`/asset/[id]`,{id:e})))}async function lt(e){await st(e,a(L))}async function ut(e,t){let n=e.filter(e=>M.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=M.assetById(e)?.folder;return t===void 0?[]:[t]})])];try{await M.mutate(()=>j(n,t),ce(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]})}catch{}}function dt(e){He+=1,m(Ve,{id:He,parent:e},!0)}function ft(e){We+=1,m(Ue,{id:We,path:e},!0)}function pt(e){Ke+=1,m(Ge,{id:Ke,path:e},!0)}function mt(e){m(qe,e,!0),a(Je)?.click()}function ht(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&m(G,n,!0)}async function gt(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!a(R))return;let r=a(R).id;m(q,r,!0),m(Xe,null);try{await M.mutateFromServer(()=>le(r,n),{dependencies:[`asset:${r}`]})}catch(e){m(Xe,{assetId:r,message:e instanceof Error?e.message:String(e)},!0)}finally{a(q)===r&&m(q,null)}}function _t(){a(R)&&(a(R).importSource&&!confirm(`Replace file and disconnect Figma source? Future re-imports will no longer be available.`)||a(Ye)?.click())}async function vt(){if(!a(R)||!a(B))return;let e=a(R).id,t=a(X).trim();if(t.length===0){m(Y,{assetId:e,message:`Enter a Figma selection link.`},!0);return}m(J,e,!0),m(Y,null);let n=a(Qe)?{url:t,scale:a(Z)}:void 0;try{await M.mutateFromServer(()=>ae(e,n),{dependencies:[`asset:${e}`]}),m(Ze,null)}catch(t){m(Y,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{a(J)===e&&m(J,null)}}async function yt(e){m(G,null),m(K,null),await O(D(`/asset/[id]`,{id:e}))}async function bt(e){try{await fe(e),M.error=null}catch(e){M.error=e instanceof Error?e.message:String(e)}}var xt=I(),St=w(xt),Ct=s(St);{let e=f(()=>a(R)?.folder??null);ge(Ct,{get selectedFolder(){return a(e)},get activeAsset(){return a(R)},get createRequest(){return a(Ve)},get renameRequest(){return a(Ue)},get deleteRequest(){return a(Ge)},onSelect:e=>void st(e),onMoveAssets:(e,t)=>void ut(e,t),onActiveAssetDeleted:e=>void lt(e),onActiveAssetDeleteFailed:e=>void ct(e),onContextMenu:(e,t,n,r)=>{m(W,{x:e,y:t,parent:n,renamePath:r},!0)}})}var wt=o(Ct,2),Tt=e=>{u(e,xe())},Et=e=>{var t=Se(),r=s(t);C(t),p(()=>n(r,`No asset with id "${a(L)??``}".`)),u(e,t)},Dt=e=>{var i=Pe(),l=w(i),f=s(l),h=e=>{var t=x();v(w(t),()=>a(Re),(e,t)=>{t(e,{get asset(){return a(R)},get parameters(){return a(H)},onParametersChange:Be,onParametersCommit:e=>void rt(e)})}),u(e,t)},g=e=>{var t=Ce(),r=s(t);C(t),p(()=>n(r,`No editor registered for asset type "${a(R).type??``}".`)),u(e,t)};r(f,e=>{a(Re)&&a(H)!==null?e(h):e(g,-1)}),C(l);var b=o(l,2),S=s(b),T=s(S),O=s(T,!0);C(T);var k=o(T,2),A=s(k),j=o(A),ie=s(j,!0);C(j),C(k),t(o(k,2),16,()=>a(R).warnings,e=>e,(e,t)=>{var r=we(),i=s(r);C(r),p(()=>n(i,`⚠ ${t??``}`)),u(e,r)}),C(S);var ae=o(S,2),oe=e=>{var t=x();v(w(t),()=>a(Le),(e,t)=>{t(e,{get asset(){return a(R)},get parameters(){return a(H)},onParametersChange:e=>Be(e),onParametersCommit:e=>void rt(e),get presetNames(){return a(Ie)}})}),u(e,t)};r(ae,e=>{a(Le)&&a(H)!==null&&e(oe)});var se=o(ae,2),ce=e=>{var t=Ee(),i=s(t);P(i,{children:(e,t)=>{_(),u(e,c(`Source`))},$$slots:{default:!0}});var l=o(i,2),f=s(l);C(l);var h=o(l,2),g=o(s(h),2);te(g),C(h);var v=o(h,2),y=o(s(v),2),b=s(y);b.value=b.__value=1;var x=o(b);x.value=x.__value=2;var S=o(x);S.value=S.__value=3;var w=o(S);w.value=w.__value=4,C(y),C(v);var T=o(v,2),D=s(T),O=o(D,2);let k;var A=s(O,!0);C(O),C(T);var j=o(T,2),ie=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(Y).message)),u(e,t)};r(j,e=>{a(Y)?.assetId===a(R).id&&e(ie)}),C(t),p(e=>{n(f,`Figma · node ${a(B).nodeId??``}`),g.disabled=a(J)===a(R).id,y.disabled=a(J)===a(R).id,E(D,`href`,a(B).url),k=ee(O,1,`control svelte-xy8zsr`,null,k,{primary:a(Qe)}),O.disabled=e,n(A,a(J)===a(R).id?a(Qe)?`Reimporting…`:`Refreshing…`:a(Qe)?`Reimport from Figma`:`Refresh`)},[()=>a(J)===a(R).id||a(X).trim().length===0]),re(g,()=>a(X),e=>m(X,e)),ne(y,()=>a(Z),e=>m(Z,e)),d(`click`,O,()=>void vt()),u(e,t)};r(se,e=>{a(B)&&e(ce)});var le=o(se,2),ue=s(le);P(ue,{children:(e,t)=>{_(),u(e,c(`Manifests`))},$$slots:{default:!0}});var de=o(ue,2),fe=e=>{u(e,De())},pe=e=>{me(e,{get manifests(){return a(Fe)},get selected(){return a(R).manifests},get passive(){return a(R).passiveManifests},onToggle:e=>void it(e)})};r(de,e=>{a(Fe).length===0?e(fe):e(pe,-1)}),C(le);var M=o(le,2),N=s(M);P(N,{children:(e,t)=>{_(),u(e,c(`References`))},$$slots:{default:!0}});var he=o(N,2),ge=e=>{u(e,Oe())},_e=e=>{var i=Ne(),c=w(i),l=e=>{var r=Ae();t(o(w(r),2),17,()=>a(R).references.outgoing,e=>`${e.field}→${e.assetId}`,(e,t)=>{var r=ke(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).field),n(d,a(t).assetId)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(c,e=>{a(R).references.outgoing.length>0&&e(l)});var d=o(c,2),f=e=>{var r=Me();t(o(w(r),2),17,()=>a(R).references.incoming,e=>`${e.assetId}→${e.field}`,(e,t)=>{var r=je(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).assetId),n(d,a(t).field)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(d,e=>{a(R).references.incoming.length>0&&e(f)}),u(e,i)};r(he,e=>{a(R).references.outgoing.length===0&&a(R).references.incoming.length===0?e(ge):e(_e,-1)}),C(M);var ve=o(M,2),ye=s(ve);P(ye,{children:(e,t)=>{_(),u(e,c(`Asset`))},$$slots:{default:!0}});var F=o(ye,2),be=s(F,!0);C(F);var xe=o(F,2),Se=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(Xe).message)),u(e,t)};r(xe,e=>{a(Xe)?.assetId===a(R).id&&e(Se)});var I=o(xe,2),L=s(I);te(L);var z=o(L,2);C(I);var V=o(I,2),ze=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(nt))),u(e,t)};r(V,e=>{a(nt)&&e(ze)});var U=o(V,2);C(ve),C(b),p(()=>{n(O,a(R).id),n(A,`${a(R).type??``} · `),n(ie,a(R).raw),F.disabled=a(q)===a(R).id,n(be,a(q)===a(R).id?`Replacing…`:`Replace`),y(L,a(Q)),z.disabled=a(Q)===a(R).id||a(nt)!==null}),d(`click`,F,_t),d(`input`,L,e=>m(tt,{assetId:a(R).id,value:e.currentTarget.value},!0)),d(`click`,z,()=>void at()),d(`click`,U,()=>void ot()),u(e,i)};r(wt,e=>{M.loaded?a(R)?e(Dt,-1):e(Et,1):e(Tt)}),C(St);var Ot=o(St,2);g(Ot,e=>m(Je,e),()=>a(Je));var $=o(Ot,2);g($,e=>m(Ye,e),()=>a(Ye));var kt=o($,2),At=e=>{{let t=f(()=>a(W).renamePath===null?void 0:()=>ft(a(W)?.renamePath??``)),n=f(()=>a(W).renamePath===null?void 0:()=>pt(a(W)?.renamePath??``));ye(e,{get x(){return a(W).x},get y(){return a(W).y},onReveal:()=>void bt(a(W)?.renamePath??a(W)?.parent??``),onNewDirectory:()=>dt(a(W)?.parent??``),get onRenameDirectory(){return a(t)},onImportFile:()=>mt(a(W)?.parent??``),onImportFigma:()=>m(K,a(W)?.parent??``,!0),get onDeleteDirectory(){return a(n)},onClose:()=>m(W,null)})}};r(kt,e=>{a(W)&&e(At)});var jt=o(kt,2),Mt=e=>{ve(e,{get file(){return a(G)},get folder(){return a(qe)},onDone:e=>void yt(e),onCancel:()=>m(G,null)})};r(jt,e=>{a(G)&&e(Mt)});var Nt=o(jt,2),Pt=e=>{_e(e,{get folder(){return a(K)},onDone:e=>void yt(e),onCancel:()=>m(K,null)})};r(Nt,e=>{a(K)!==null&&e(Pt)}),p(()=>{E(Ot,`accept`,$e),E($,`accept`,a(et))}),d(`change`,Ot,ht),d(`change`,$,e=>void gt(e)),u(e,xt),T()}l([`click`,`input`,`change`]);export{L as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,H as i,I as a,J as o,K as s,N as c,O as l,P as u,Q as d,V as f,X as p,Z as m,_ as h,a as g,at as _,g as v,i as y,l as b,nt as x,ot as S,q as C,s as w,tt as T,u as E,x as D}from"../chunks/NblqapDQ.js";import{c as ee}from"../chunks/B6BtXxR0.js";import"../chunks/xihTtKlq.js";import{G as te,V as O,Z as k,d as A,i as j,k as M,s as ne,t as N}from"../chunks/4FCfXqUa.js";import{r as P,t as F}from"../chunks/BD3hQKzV.js";var I=[{name:`slate`,value:`#64748b`},{name:`red`,value:`#ef4444`},{name:`orange`,value:`#f97316`},{name:`amber`,value:`#f59e0b`},{name:`yellow`,value:`#eab308`},{name:`lime`,value:`#84cc16`},{name:`green`,value:`#22c55e`},{name:`teal`,value:`#14b8a6`},{name:`cyan`,value:`#06b6d4`},{name:`blue`,value:`#3b82f6`},{name:`indigo`,value:`#6366f1`},{name:`violet`,value:`#8b5cf6`},{name:`pink`,value:`#ec4899`}],L=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),R=e(`<div role="dialog"><!></div>`),z=e(`<div class="popover-anchor svelte-1rznwff"><!> <!></div>`);function B(e,t){x(t,!0);let n=y(t,`open`,15,!1),c=y(t,`align`,3,`left`),u=m(void 0);function d(){n(!n())}i(()=>{if(!n())return;function e(e){a(u)&&!a(u).contains(e.target)&&n(!1)}function t(e){e.key===`Escape`&&n(!1)}return window.addEventListener(`pointerdown`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`keydown`,t)}});var _=z(),v=s(_);D(v,()=>t.trigger,()=>({toggle:d,open:n()}));var b=o(v,2),C=e=>{var n=R();let r;D(s(n),()=>t.children),S(n),f(()=>{r=h(n,1,`popover svelte-1rznwff`,null,r,{right:c()===`right`}),E(n,`aria-label`,t.label)}),l(e,n)};r(b,e=>{n()&&e(C)}),S(_),g(_,e=>p(u,e),()=>a(u)),l(e,_),T()}var V=e(`<button type="button" title="Emoji"> </button>`),H=e(`<button type="button"> </button>`),U=e(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),W=e(`<button type="button" title="Color"></button>`),G=e(`<button type="button"></button>`),K=e(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),re=e(`<div class="controls svelte-58t64l"><!> <!></div>`);function ie(e,r){x(r,!0);let i=d(()=>N.manifestAppearance(r.name)),c=d(()=>a(i).color??null),g=d(()=>a(i).emoji??null),_=m(!1),y=m(!1);async function b(e){let t=r.name;p(_,!1);try{await N.mutate(()=>k(t,{color:e}),A(t,{color:e}),{dependencies:[`manifest:${t}`]})}catch{}}async function C(e){let t=r.name;p(y,!1);try{await N.mutate(()=>k(t,{emoji:e}),A(t,{emoji:e}),{dependencies:[`manifest:${t}`]})}catch{}}var w=re(),D=s(w);B(D,{get label(){return`Pick an emoji for ${r.name??``}`},get open(){return a(y)},set open(e){p(y,e,!0)},trigger:(e,t)=>{let i=()=>(t?.()).toggle,o=()=>(t?.()).open;var c=V();let d;var p=s(c,!0);S(c),f(()=>{d=h(c,1,`emoji-trigger svelte-58t64l`,null,d,{empty:!a(g),active:o()}),E(c,`aria-label`,`Emoji for ${r.name??``}`),n(p,a(g)??`☺`)}),u(`click`,c,function(...e){i()?.apply(this,e)}),l(e,c)},children:(e,r)=>{var i=U(),c=s(i);let d;t(o(c,2),16,()=>L,e=>e,(e,t)=>{var r=H();let i;var o=s(r,!0);S(r),f(()=>{i=h(r,1,`emoji svelte-58t64l`,null,i,{selected:a(g)===t}),E(r,`title`,t),n(o,t)}),u(`click`,r,()=>void C(t)),l(e,r)}),S(i),f(()=>d=h(c,1,`emoji none svelte-58t64l`,null,d,{selected:a(g)===null})),u(`click`,c,()=>void C(null)),l(e,i)},$$slots:{trigger:!0,default:!0}}),B(o(D,2),{get label(){return`Pick a color for ${r.name??``}`},get open(){return a(_)},set open(e){p(_,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,i=()=>(t?.()).open;var o=W();let s;f(()=>{s=h(o,1,`swatch-trigger svelte-58t64l`,null,s,{empty:!a(c),active:i()}),v(o,`--swatch: ${a(c)??`transparent`??``}`),E(o,`aria-label`,`Color for ${r.name??``}`)}),u(`click`,o,function(...e){n()?.apply(this,e)}),l(e,o)},children:(e,n)=>{var r=K(),i=s(r);let d;t(o(i,2),17,()=>I,e=>e.value,(e,t)=>{var n=G();let r;f(()=>{r=h(n,1,`swatch svelte-58t64l`,null,r,{selected:a(c)===a(t).value}),v(n,`background: ${a(t).value??``}`),E(n,`title`,a(t).name),E(n,`aria-label`,a(t).name)}),u(`click`,n,()=>void b(a(t).value)),l(e,n)}),S(r),f(()=>d=h(i,1,`swatch none svelte-58t64l`,null,d,{selected:a(c)===null})),u(`click`,i,()=>void b(null)),l(e,r)},$$slots:{trigger:!0,default:!0}}),S(w),l(e,w),T()}c([`click`]);var ae=e(`<span class="hint svelte-1k9wgg5"> </span>`),oe=e(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),se=e(`<span class="asset-type svelte-1k9wgg5"> </span>`),ce=e(`<li class="passive-member svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id passive-id svelte-1k9wgg5"> </span> <!> <span class="asset-via svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li>`),le=e(`<li class="svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id svelte-1k9wgg5"> </span> <span class="asset-type svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li> <!>`,1),ue=e(`<ul class="svelte-1k9wgg5"></ul>`),de=e(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),fe=e(`<section class="manifest svelte-1k9wgg5"><header class="svelte-1k9wgg5"><!> <h2 class="svelte-1k9wgg5"> </h2> <span class="size svelte-1k9wgg5" title="Total delivered proxy size incl. the reference closure — the preload budget"> </span> <span class="count svelte-1k9wgg5"> </span> <button class="control">Rename</button> <button class="control danger">Delete</button></header> <!></section>`),pe=e(`<div class="list svelte-1k9wgg5"></div>`),q=e(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),me=e(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),he=e(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),ge=e(`<label class="dialog-row svelte-1k9wgg5"><span class="dialog-label svelte-1k9wgg5">Name</span> <input class="control svelte-1k9wgg5" type="text" spellcheck="false"/></label> <!> <p class="dialog-text svelte-1k9wgg5">The generated module is renamed with the manifest — host code importing <code> </code> must be updated by hand.</p> <!>`,1),_e=e(`<div class="page svelte-1k9wgg5"><div class="create svelte-1k9wgg5"><input class="control svelte-1k9wgg5" type="text" placeholder="newManifestName" spellcheck="false"/> <button class="control primary">Create manifest</button> <!></div> <!></div> <!> <!>`,1);function ve(e,i){x(i,!0);let c=m(``),h=d(()=>N.state?.assets??[]),g=d(()=>N.manifestNames);function y(e){return a(h).filter(t=>t.manifests.includes(e))}function D(e){return N.state?.manifestMemberships[e]?.passiveMembers??[]}function I(e,t){return D(e).filter(e=>e.via.includes(t))}function L(e){return N.state?.manifestDeliveredBytes[e]??0}let R=d(()=>a(c)?M(a(c)):null),z=d(()=>a(c)!==``&&!a(R)&&!a(g).includes(a(c)));async function B(){if(!a(z))return;let e=a(c),t=N.mutate(()=>O(e),j(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});p(c,``);try{await t}catch{a(c)===``&&!Object.hasOwn(N.state?.library.manifests??{},e)&&p(c,e,!0)}}let V=m(null),H=m(null),U=m(``),W=m(!1),G=m(null),K=0;function re(e){K+=1,p(G,null),p(V,e,!0)}function ve(e){K+=1,p(G,null),p(U,e,!0),p(H,e,!0)}function J(){K+=1,p(V,null),p(H,null),p(G,null)}let Y=d(()=>a(H)!==null&&a(U)!==a(H)?M(a(U)):null),ye=d(()=>a(H)!==null&&a(U)!==a(H)&&a(g).includes(a(U))),be=d(()=>a(H)!==null&&a(U)!==a(H)&&!a(Y)&&!a(ye));async function xe(){if(a(V)===null)return;let e=a(V);p(W,!0),p(G,null);let t=N.mutate(()=>te(e),ne(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});J();let n=K;p(W,!1);try{await t}catch(t){K===n&&Object.hasOwn(N.state?.library.manifests??{},e)&&(p(V,e,!0),p(G,t instanceof Error?t.message:String(t),!0))}finally{p(W,!1)}}async function Se(){if(a(H)===null||!a(be))return;let e=a(H),t=a(U);p(W,!0),p(G,null);let n=N.mutate(()=>k(e,{renameTo:t}),A(e,{renameTo:t}),{dependencies:[`manifest:${e}`,`manifest:${t}`],invalidatesOnFailure:[`manifest:${e}`,`manifest:${t}`]});J();let r=K;p(W,!1);try{await n}catch(n){K===r&&Object.hasOwn(N.state?.library.manifests??{},e)&&(p(H,e,!0),p(U,t,!0),p(G,n instanceof Error?n.message:String(n),!0))}finally{p(W,!1)}}var Ce=_e(),X=C(Ce),Z=s(X),Q=s(Z);b(Q);var $=o(Q,2),we=o($,2),Te=e=>{var t=ae(),r=s(t,!0);S(t),f(()=>n(r,a(R))),l(e,t)};r(we,e=>{a(R)&&e(Te)}),S(Z);var Ee=o(Z,2),De=e=>{l(e,oe())},Oe=e=>{var i=pe();t(i,20,()=>a(g),e=>e,(e,i)=>{var c=fe(),p=s(c),m=s(p);ie(m,{get name(){return i}});var h=o(m,2),g=s(h,!0);S(h);var _=o(h,2),b=s(_,!0);S(_);var x=o(_,2),w=s(x);S(x);var T=o(x,2),te=o(T,2);S(p);var O=o(p,2),k=e=>{var c=ue();t(c,21,()=>y(i),e=>e.id,(e,c)=>{var u=le(),p=C(u),m=s(p),h=s(m),g=s(h,!0);S(h);var _=o(h,2),v=s(_,!0);S(_);var y=o(_,2),b=s(y,!0);S(y),S(m),S(p),t(o(p,2),17,()=>I(i,a(c).id),e=>e.assetId,(e,t)=>{let i=d(()=>N.assetById(a(t).assetId));var u=ce(),p=s(u),m=s(p),h=s(m,!0);S(m);var g=o(m,2),_=e=>{var t=se(),r=s(t,!0);S(t),f(()=>n(r,a(i).type)),l(e,t)};r(g,e=>{a(i)&&e(_)});var v=o(g,2),y=s(v);S(v);var b=o(v,2),x=s(b,!0);S(b),S(p),S(u),f((e,r)=>{E(p,`href`,e),n(h,a(t).assetId),n(y,`via ${a(c).id??``}`),n(x,r)},[()=>ee(`/asset/[id]`,{id:a(t).assetId}),()=>a(i)?.proxy?P(a(i).proxy.fileSize):`—`]),l(e,u)}),f((e,t)=>{E(m,`href`,e),n(g,a(c).id),n(v,a(c).type),n(b,t)},[()=>ee(`/asset/[id]`,{id:a(c).id}),()=>a(c).proxy?P(a(c).proxy.fileSize):`—`]),l(e,u)}),S(c),l(e,c)},A=d(()=>y(i).length>0),j=e=>{l(e,de())};r(O,e=>{a(A)?e(k):e(j,-1)}),S(c),f((e,t,r,a)=>{v(c,`--manifest-color: ${e??``}`),n(g,i),n(b,t),n(w,`${r??``} asset(s)${a??``}`)},[()=>N.manifestAppearance(i).color??`var(--border-soft)`,()=>P(L(i)),()=>y(i).length,()=>D(i).length>0?` + ${D(i).length} passive`:``]),u(`click`,T,()=>ve(i)),u(`click`,te,()=>re(i)),l(e,c)}),S(i),l(e,i)};r(Ee,e=>{a(g).length===0?e(De):e(Oe,-1)}),S(X);var ke=o(X,2),Ae=e=>{let t=d(()=>y(a(V)).length);{let i=d(()=>a(W)?`Deleting…`:`Delete`);F(e,{title:`Delete manifest`,get confirmLabel(){return a(i)},danger:!0,get busy(){return a(W)},onConfirm:()=>void xe(),onCancel:J,children:(e,i)=>{var c=me(),u=C(c),d=o(s(u)),p=s(d,!0);S(d);var m=o(d);S(u);var h=o(u,2),g=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(G))),l(e,t)};r(h,e=>{a(G)&&e(g)}),f(()=>{n(p,a(V)),n(m,`? Its generated module is removed. Assets are
|
|
2
|
+
not deleted${a(t)>0?`, but ${a(t)} asset(s) lose this membership and may become unreachable`:``}.`)}),l(e,c)},$$slots:{default:!0}})}};r(ke,e=>{a(V)!==null&&e(Ae)});var je=o(ke,2),Me=e=>{{let t=d(()=>a(W)?`Renaming…`:`Rename`),i=d(()=>!a(be));F(e,{title:`Rename manifest`,get confirmLabel(){return a(t)},get confirmDisabled(){return a(i)},get busy(){return a(W)},onConfirm:()=>void Se(),onCancel:J,children:(e,t)=>{var i=ge(),c=C(i),u=o(s(c),2);b(u),S(c);var d=o(c,2),m=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(Y))),l(e,t)},h=e=>{l(e,he())};r(d,e=>{a(Y)?e(m):a(ye)&&e(h,1)});var g=o(d,2),v=o(s(g)),y=s(v,!0);S(v),_(),S(g);var x=o(g,2),T=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(G))),l(e,t)};r(x,e=>{a(G)&&e(T)}),f(()=>{u.disabled=a(W),n(y,a(H))}),w(u,()=>a(U),e=>p(U,e)),l(e,i)},$$slots:{default:!0}})}};r(je,e=>{a(H)!==null&&e(Me)}),f(()=>$.disabled=!a(z)),u(`keydown`,Q,e=>{e.key===`Enter`&&B()}),w(Q,()=>a(c),e=>p(c,e)),u(`click`,$,()=>void B()),l(e,Ce),T()}c([`keydown`,`click`]);export{ve as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1784282522421"}
|
|
Binary file
|
|
Binary file
|
package/build/handler.js
CHANGED
|
@@ -2,9 +2,9 @@ import './shims.js';
|
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:path';
|
|
4
4
|
import 'node:process';
|
|
5
|
-
export { h as handler } from './server/chunks/handler-
|
|
6
|
-
import './server/chunks/index.js-
|
|
7
|
-
import './server/chunks/manifest.js-
|
|
5
|
+
export { h as handler } from './server/chunks/handler-CJ8lsr6W.js';
|
|
6
|
+
import './server/chunks/index.js-Ph6LJ5Na.js';
|
|
7
|
+
import './server/chunks/manifest.js-CWjy0GQ9.js';
|
|
8
8
|
import './env.js';
|
|
9
9
|
import 'node:buffer';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -12,11 +12,11 @@ import 'node:http';
|
|
|
12
12
|
import 'node:timers';
|
|
13
13
|
import 'node:querystring';
|
|
14
14
|
import 'node:stream';
|
|
15
|
-
import './server/chunks/chunks/shared.js-
|
|
16
|
-
import './server/chunks/chunks/internal.js-
|
|
17
|
-
import './server/chunks/chunks/utils.js-
|
|
15
|
+
import './server/chunks/chunks/shared.js-BIggwEH0.js';
|
|
16
|
+
import './server/chunks/chunks/internal.js-DWu3OCGw.js';
|
|
17
|
+
import './server/chunks/chunks/utils.js-Dxvg75XM.js';
|
|
18
18
|
import 'node:url';
|
|
19
19
|
import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
|
|
20
|
-
import './server/chunks/chunks/exports.js-
|
|
20
|
+
import './server/chunks/chunks/exports.js-Ci6jkE-z.js';
|
|
21
21
|
import './server/chunks/chunks/routing.js-y-tryuip.js';
|
|
22
22
|
//# sourceMappingURL=handler.js.map
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import fs__default from 'node:fs';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
-
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-
|
|
4
|
+
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-CJ8lsr6W.js';
|
|
5
5
|
import { env, timeout_env } from './env.js';
|
|
6
6
|
import { rm } from 'node:fs/promises';
|
|
7
7
|
import './shims.js';
|
|
@@ -11,14 +11,14 @@ import 'node:path';
|
|
|
11
11
|
import 'node:timers';
|
|
12
12
|
import 'node:querystring';
|
|
13
13
|
import 'node:stream';
|
|
14
|
-
import './server/chunks/chunks/shared.js-
|
|
15
|
-
import './server/chunks/chunks/internal.js-
|
|
16
|
-
import './server/chunks/chunks/utils.js-
|
|
17
|
-
import './server/chunks/index.js-
|
|
14
|
+
import './server/chunks/chunks/shared.js-BIggwEH0.js';
|
|
15
|
+
import './server/chunks/chunks/internal.js-DWu3OCGw.js';
|
|
16
|
+
import './server/chunks/chunks/utils.js-Dxvg75XM.js';
|
|
17
|
+
import './server/chunks/index.js-Ph6LJ5Na.js';
|
|
18
18
|
import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
|
|
19
|
-
import './server/chunks/chunks/exports.js-
|
|
19
|
+
import './server/chunks/chunks/exports.js-Ci6jkE-z.js';
|
|
20
20
|
import './server/chunks/chunks/routing.js-y-tryuip.js';
|
|
21
|
-
import './server/chunks/manifest.js-
|
|
21
|
+
import './server/chunks/manifest.js-CWjy0GQ9.js';
|
|
22
22
|
import 'node:url';
|
|
23
23
|
|
|
24
24
|
const path = env('SOCKET_PATH', false);
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { g as folderOfRawPath, h as rawFileNameOfPath, j as canonicalizeParameters, n as normalizeFolderPath, c as compareCodeUnits, E as typesForFileName, G as proposeAssetId, k as parentFolderPath, u as portableFolderPathKey } from './core.js-DNIuZ9y-.js';
|
|
2
|
-
import { s as serverPluginsByType, i as isRecord, L as LibraryStore, a as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, d as descriptorsByType, r as readCurrentProxy, e as encodeRelativePathForUrl, b as invalidInput } from './contract.js-
|
|
2
|
+
import { s as serverPluginsByType, i as isRecord, L as LibraryStore, a as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, d as descriptorsByType, r as readCurrentProxy, e as encodeRelativePathForUrl, b as invalidInput, c as parseLibrary } from './contract.js-nwG99Zzj.js';
|
|
3
3
|
import { a as assetIdError, c as collectAllReferences, b as computeLibraryMembership, d as allDeliveredAssetIds } from './manifest-membership.js-CJnQXrL4.js';
|
|
4
4
|
import { v as verifyStableRawFile, c as classifyRawDirectory } from './raw-reconciliation2.js-C2No1QIL.js';
|
|
5
|
-
import { isAbsolute, resolve, join, extname } from 'node:path';
|
|
5
|
+
import { isAbsolute, resolve, join, extname, relative, sep } from 'node:path';
|
|
6
6
|
import { existsSync } from 'node:fs';
|
|
7
7
|
import { createJiti } from 'jiti';
|
|
8
|
+
import { realpath } from 'node:fs/promises';
|
|
9
|
+
import { execFile } from 'node:child_process';
|
|
10
|
+
import { isDeepStrictEqual, promisify } from 'node:util';
|
|
8
11
|
import sharp from 'sharp';
|
|
9
12
|
import { lookup } from 'node:dns/promises';
|
|
10
13
|
import { isIP } from 'node:net';
|
|
@@ -55,6 +58,7 @@ function resolveConfig(projectRoot, value, registry = serverPluginsByType) {
|
|
|
55
58
|
const scale = defaults.scale === void 0 ? 2 : defaults.scale;
|
|
56
59
|
if (scale !== 1 && scale !== 2 && scale !== 3 && scale !== 4) throw new Error("fundus.config: \"import.figma.defaults.scale\" must be 1, 2, 3, or 4.");
|
|
57
60
|
return {
|
|
61
|
+
projectRoot: resolve(projectRoot),
|
|
58
62
|
rawDir: resolvePath(projectRoot, requiredString(value, "rawDir")),
|
|
59
63
|
proxyDir: resolvePath(projectRoot, requiredString(value, "proxyDir")),
|
|
60
64
|
library: resolvePath(projectRoot, requiredString(value, "library")),
|
|
@@ -558,6 +562,153 @@ var SourceImporterRegistry = class {
|
|
|
558
562
|
//#region src/lib/server/importers.ts
|
|
559
563
|
var serverImporters = new SourceImporterRegistry([fileSourceImporter, figmaSourceImporter]);
|
|
560
564
|
//#endregion
|
|
565
|
+
//#region src/lib/server/git.ts
|
|
566
|
+
var execFileAsync = promisify(execFile);
|
|
567
|
+
var MAX_LIBRARY_BLOB_BYTES = 64 * 1024 * 1024;
|
|
568
|
+
async function git(projectRoot, args, options = {}) {
|
|
569
|
+
const { stdout } = await execFileAsync("git", [
|
|
570
|
+
"-C",
|
|
571
|
+
projectRoot,
|
|
572
|
+
...args
|
|
573
|
+
], {
|
|
574
|
+
encoding: "utf8",
|
|
575
|
+
...options
|
|
576
|
+
});
|
|
577
|
+
return stdout;
|
|
578
|
+
}
|
|
579
|
+
async function gitBlob(projectRoot, objectId) {
|
|
580
|
+
const { stdout } = await execFileAsync("git", [
|
|
581
|
+
"-C",
|
|
582
|
+
projectRoot,
|
|
583
|
+
"cat-file",
|
|
584
|
+
"blob",
|
|
585
|
+
objectId
|
|
586
|
+
], {
|
|
587
|
+
encoding: null,
|
|
588
|
+
maxBuffer: MAX_LIBRARY_BLOB_BYTES
|
|
589
|
+
});
|
|
590
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(stdout);
|
|
591
|
+
}
|
|
592
|
+
/** Current branch of the repository containing projectRoot; null outside Git or when detached. */
|
|
593
|
+
async function currentGitBranch(projectRoot) {
|
|
594
|
+
try {
|
|
595
|
+
return (await git(projectRoot, ["branch", "--show-current"])).trim() || null;
|
|
596
|
+
} catch {
|
|
597
|
+
return null;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
async function verifiedRef(projectRoot, ref) {
|
|
601
|
+
try {
|
|
602
|
+
await git(projectRoot, [
|
|
603
|
+
"rev-parse",
|
|
604
|
+
"--verify",
|
|
605
|
+
"--quiet",
|
|
606
|
+
ref
|
|
607
|
+
]);
|
|
608
|
+
return ref;
|
|
609
|
+
} catch {
|
|
610
|
+
return null;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
async function firstExistingRef(projectRoot, refs) {
|
|
614
|
+
for (const ref of refs) if (await verifiedRef(projectRoot, ref)) return ref;
|
|
615
|
+
return null;
|
|
616
|
+
}
|
|
617
|
+
async function defaultBranchRef(projectRoot) {
|
|
618
|
+
try {
|
|
619
|
+
const remoteHead = (await git(projectRoot, [
|
|
620
|
+
"symbolic-ref",
|
|
621
|
+
"--quiet",
|
|
622
|
+
"refs/remotes/origin/HEAD"
|
|
623
|
+
])).trim();
|
|
624
|
+
if (remoteHead && await verifiedRef(projectRoot, remoteHead)) return remoteHead;
|
|
625
|
+
} catch {}
|
|
626
|
+
return firstExistingRef(projectRoot, [
|
|
627
|
+
"refs/remotes/origin/main",
|
|
628
|
+
"refs/remotes/origin/master",
|
|
629
|
+
"refs/heads/main",
|
|
630
|
+
"refs/heads/master"
|
|
631
|
+
]);
|
|
632
|
+
}
|
|
633
|
+
async function repositoryLibraryPath(repositoryRoot, libraryPath) {
|
|
634
|
+
const path = relative(repositoryRoot, await realpath(resolve(libraryPath)));
|
|
635
|
+
if (path === "" || isAbsolute(path) || path === ".." || path.startsWith(`..${sep}`)) return null;
|
|
636
|
+
return path.split(sep).join("/");
|
|
637
|
+
}
|
|
638
|
+
async function historicalLibrary(projectRoot, mergeBase, repositoryRelativeLibraryPath) {
|
|
639
|
+
let tree;
|
|
640
|
+
try {
|
|
641
|
+
tree = await git(projectRoot, [
|
|
642
|
+
"ls-tree",
|
|
643
|
+
"--full-tree",
|
|
644
|
+
"-z",
|
|
645
|
+
mergeBase,
|
|
646
|
+
"--",
|
|
647
|
+
`:(literal)${repositoryRelativeLibraryPath}`
|
|
648
|
+
]);
|
|
649
|
+
} catch {
|
|
650
|
+
return { kind: "unavailable" };
|
|
651
|
+
}
|
|
652
|
+
if (tree === "") return { kind: "missing" };
|
|
653
|
+
if (!tree.endsWith("\0")) return { kind: "unavailable" };
|
|
654
|
+
const entries = tree.slice(0, -1).split("\0");
|
|
655
|
+
if (entries.length !== 1) return { kind: "unavailable" };
|
|
656
|
+
const match = /^([0-7]{6}) (blob) ([0-9a-fA-F]+)\t([\s\S]+)$/.exec(entries[0]);
|
|
657
|
+
if (!match || match[4] !== repositoryRelativeLibraryPath) return { kind: "unavailable" };
|
|
658
|
+
try {
|
|
659
|
+
return {
|
|
660
|
+
kind: "available",
|
|
661
|
+
library: parseLibrary(await gitBlob(projectRoot, match[3]))
|
|
662
|
+
};
|
|
663
|
+
} catch {
|
|
664
|
+
return { kind: "unavailable" };
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
function comparableRecord(record) {
|
|
668
|
+
return {
|
|
669
|
+
...record,
|
|
670
|
+
manifests: [...new Set(record.manifests)].sort(compareCodeUnits)
|
|
671
|
+
};
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Asset-record changes made since this branch diverged from the repository's
|
|
675
|
+
* default branch. The current parsed library includes committed and local
|
|
676
|
+
* changes; raw-file state is intentionally handled by raw reconciliation.
|
|
677
|
+
*/
|
|
678
|
+
async function gitAssetChanges(projectRoot, libraryPath, currentLibrary) {
|
|
679
|
+
try {
|
|
680
|
+
const repositoryRoot = (await git(projectRoot, ["rev-parse", "--show-toplevel"])).trim();
|
|
681
|
+
if (!repositoryRoot) return /* @__PURE__ */ new Map();
|
|
682
|
+
const libraryGitPath = await repositoryLibraryPath(repositoryRoot, libraryPath);
|
|
683
|
+
if (!libraryGitPath) return /* @__PURE__ */ new Map();
|
|
684
|
+
const defaultRef = await defaultBranchRef(projectRoot);
|
|
685
|
+
if (!defaultRef) return /* @__PURE__ */ new Map();
|
|
686
|
+
const mergeBase = (await git(projectRoot, [
|
|
687
|
+
"merge-base",
|
|
688
|
+
"HEAD",
|
|
689
|
+
defaultRef
|
|
690
|
+
])).trim();
|
|
691
|
+
if (!mergeBase) return /* @__PURE__ */ new Map();
|
|
692
|
+
const historical = await historicalLibrary(projectRoot, mergeBase, libraryGitPath);
|
|
693
|
+
if (historical.kind === "unavailable") return /* @__PURE__ */ new Map();
|
|
694
|
+
const changes = /* @__PURE__ */ new Map();
|
|
695
|
+
for (const [assetId, currentRecord] of Object.entries(currentLibrary.assets)) {
|
|
696
|
+
if (historical.kind === "missing") {
|
|
697
|
+
changes.set(assetId, "new");
|
|
698
|
+
continue;
|
|
699
|
+
}
|
|
700
|
+
if (!Object.hasOwn(historical.library.assets, assetId)) {
|
|
701
|
+
changes.set(assetId, "new");
|
|
702
|
+
continue;
|
|
703
|
+
}
|
|
704
|
+
if (!isDeepStrictEqual(comparableRecord(currentRecord), comparableRecord(historical.library.assets[assetId]))) changes.set(assetId, "edited");
|
|
705
|
+
}
|
|
706
|
+
return changes;
|
|
707
|
+
} catch {
|
|
708
|
+
return /* @__PURE__ */ new Map();
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
//#endregion
|
|
561
712
|
//#region src/lib/server/operations.ts
|
|
562
713
|
/**
|
|
563
714
|
* The one operations layer: builds the state payload and runs
|
|
@@ -1108,6 +1259,7 @@ var FundusOperations = class {
|
|
|
1108
1259
|
};
|
|
1109
1260
|
}
|
|
1110
1261
|
async #buildState(library, issues, classification) {
|
|
1262
|
+
const [gitBranch, changedGitAssets] = await Promise.all([currentGitBranch(this.#config.projectRoot), gitAssetChanges(this.#config.projectRoot, this.#config.library, library)]);
|
|
1111
1263
|
const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
|
|
1112
1264
|
const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
|
|
1113
1265
|
const delivered = allDeliveredAssetIds(membershipByManifest);
|
|
@@ -1155,6 +1307,7 @@ var FundusOperations = class {
|
|
|
1155
1307
|
folder: folderOfRawPath(record.raw),
|
|
1156
1308
|
rawUrl: `/files/raw/${encodeRelativePathForUrl(record.raw)}?v=${record.rawHash.slice(0, 12)}`,
|
|
1157
1309
|
rawHash: record.rawHash,
|
|
1310
|
+
gitStatus: changedGitAssets.get(assetId) ?? null,
|
|
1158
1311
|
importSource: record.importSource,
|
|
1159
1312
|
parameters: record.parameters,
|
|
1160
1313
|
manifests: record.manifests,
|
|
@@ -1187,6 +1340,7 @@ var FundusOperations = class {
|
|
|
1187
1340
|
for (const [type, plugin] of Object.entries(this.#registry)) presetNames[type] = Object.keys(plugin.presets(this.#config)).sort();
|
|
1188
1341
|
const rawIngestionQueue = this.#buildRawIngestionQueue(library, classification);
|
|
1189
1342
|
return {
|
|
1343
|
+
gitBranch,
|
|
1190
1344
|
library,
|
|
1191
1345
|
assets,
|
|
1192
1346
|
importDefaults: { figma: { scale: this.#config.import.figma.defaults.scale } },
|
|
@@ -1356,4 +1510,4 @@ async function createFundusContext() {
|
|
|
1356
1510
|
}
|
|
1357
1511
|
|
|
1358
1512
|
export { getFundusContext as g, initializeFundusContext as i };
|
|
1359
|
-
//# sourceMappingURL=context.js-
|
|
1513
|
+
//# sourceMappingURL=context.js-CPdlcRhV.js.map
|