fundus 0.11.0 → 0.12.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 +7 -5
- package/build/client/_app/immutable/assets/2.DOKgeL9V.css +1 -0
- package/build/client/_app/immutable/assets/2.DOKgeL9V.css.br +0 -0
- package/build/client/_app/immutable/assets/2.DOKgeL9V.css.gz +0 -0
- package/build/client/_app/immutable/assets/{3.BuCXJbRG.css → 3.D6PF4wEW.css} +1 -1
- package/build/client/_app/immutable/assets/3.D6PF4wEW.css.br +0 -0
- package/build/client/_app/immutable/assets/3.D6PF4wEW.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.B6By2-yb.css +1 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.B6By2-yb.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.B6By2-yb.css.gz +0 -0
- package/build/client/_app/immutable/assets/Popover.x-2x_hPE.css +1 -0
- package/build/client/_app/immutable/assets/Popover.x-2x_hPE.css.br +0 -0
- package/build/client/_app/immutable/assets/Popover.x-2x_hPE.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B9HdDE5n.js +1 -0
- package/build/client/_app/immutable/chunks/B9HdDE5n.js.br +0 -0
- package/build/client/_app/immutable/chunks/B9HdDE5n.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfQXIsM7.js +1 -0
- package/build/client/_app/immutable/chunks/BfQXIsM7.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfQXIsM7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj31DJwy.js +1 -0
- package/build/client/_app/immutable/chunks/Bj31DJwy.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj31DJwy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DFRlZOKz.js → BufZeTod.js} +2 -2
- package/build/client/_app/immutable/chunks/BufZeTod.js.br +0 -0
- package/build/client/_app/immutable/chunks/BufZeTod.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxCbL__p.js +1 -0
- package/build/client/_app/immutable/chunks/BxCbL__p.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxCbL__p.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DpFtnEPx.js → CjB5zQ4_.js} +1 -1
- package/build/client/_app/immutable/chunks/CjB5zQ4_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjB5zQ4_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuXWzgb4.js +108 -0
- package/build/client/_app/immutable/chunks/DuXWzgb4.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuXWzgb4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BMORe2Gb.js → YpiA5Xry.js} +1 -1
- package/build/client/_app/immutable/chunks/YpiA5Xry.js.br +0 -0
- package/build/client/_app/immutable/chunks/{BMORe2Gb.js.gz → YpiA5Xry.js.gz} +0 -0
- package/build/client/_app/immutable/entry/app.DHoRwUAh.js +2 -0
- package/build/client/_app/immutable/entry/app.DHoRwUAh.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DHoRwUAh.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Xp5z9Bmx.js +1 -0
- package/build/client/_app/immutable/entry/start.Xp5z9Bmx.js.br +0 -0
- package/build/client/_app/immutable/entry/start.Xp5z9Bmx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Df_skSaZ.js +1 -0
- package/build/client/_app/immutable/nodes/0.Df_skSaZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Df_skSaZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B-Gp2MAj.js +1 -0
- package/build/client/_app/immutable/nodes/1.B-Gp2MAj.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B-Gp2MAj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DFHvXQZ-.js +3 -0
- package/build/client/_app/immutable/nodes/2.DFHvXQZ-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DFHvXQZ-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DVl0Y9iQ.js +1 -0
- package/build/client/_app/immutable/nodes/3.DVl0Y9iQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DVl0Y9iQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Dw8y5rjM.js +2 -0
- package/build/client/_app/immutable/nodes/4.Dw8y5rjM.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Dw8y5rjM.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-BJfk3ZiR.js → context.js-BNdRFspW.js} +100 -1
- package/build/server/chunks/chunks/context.js-BNdRFspW.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-aVVdkXgn.js → exports.js-CUFgHhPL.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-aVVdkXgn.js.map → exports.js-CUFgHhPL.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-C6cIfe5d.js → internal.js-DUquB_BJ.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-C6cIfe5d.js.map → internal.js-DUquB_BJ.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{shared.js-BNd0HSxp.js → shared.js-BXL1A-vX.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-BNd0HSxp.js.map → shared.js-BXL1A-vX.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-6HSqnONB.js → utils.js-xC62cOm2.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-6HSqnONB.js.map → utils.js-xC62cOm2.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-eMNgdaf4.js → _server.ts.js-DEfBMmVd.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-eMNgdaf4.js.map → _server.ts.js-DEfBMmVd.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-CEQd4Wxn.js → _server.ts.js-BEJcx3ya.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-CEQd4Wxn.js.map → _server.ts.js-BEJcx3ya.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B2JoGCzy.js → _server.ts.js-CibkO-4G.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B2JoGCzy.js.map → _server.ts.js-CibkO-4G.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DTpkVywC.js → _server.ts.js-BdisCQk6.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-DTpkVywC.js.map → _server.ts.js-BdisCQk6.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-D6Z_pGEZ.js → _server.ts.js-Bk2hojus.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-D6Z_pGEZ.js.map → _server.ts.js-Bk2hojus.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CnDi9p0a.js → _server.ts.js-CTeQlqUL.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CnDi9p0a.js.map → _server.ts.js-CTeQlqUL.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BCzuPX5Z.js → _server.ts.js-DLxdefrX.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BCzuPX5Z.js.map → _server.ts.js-DLxdefrX.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CGbYyJ6S.js → _server.ts.js-Ceq1tMTz.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CGbYyJ6S.js.map → _server.ts.js-Ceq1tMTz.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CL_89klb.js → _server.ts.js-DxAWqf9V.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CL_89klb.js.map → _server.ts.js-DxAWqf9V.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DZUKtjz9.js → _server.ts.js-BB_6WywB.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DZUKtjz9.js.map → _server.ts.js-BB_6WywB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dz25LG_P.js → _server.ts.js-BLRkduAp.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dz25LG_P.js.map → _server.ts.js-BLRkduAp.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-C-NuN3JJ.js → _server.ts.js-Ba94-p0V.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-C-NuN3JJ.js.map → _server.ts.js-Ba94-p0V.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CwL9UPh3.js → _server.ts.js-CNhj0R4-.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CwL9UPh3.js.map → _server.ts.js-CNhj0R4-.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DanXYrj1.js → _server.ts.js-DWEV8mgx.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DanXYrj1.js.map → _server.ts.js-DWEV8mgx.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-BZrun0up.js → _server.ts.js-BnDnZdPy.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-BZrun0up.js.map → _server.ts.js-BnDnZdPy.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-DQOabHbS.js → _server.ts.js-1y2Lu6HB.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-DQOabHbS.js.map → _server.ts.js-1y2Lu6HB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-k8Ueydx1.js → _server.ts.js-CnLJo2iZ.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-k8Ueydx1.js.map → _server.ts.js-CnLJo2iZ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DmMmiFiu.js → _server.ts.js-Dqs6d6ul.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DmMmiFiu.js.map → _server.ts.js-Dqs6d6ul.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BQTC0OSC.js → _server.ts.js-BHdIopR2.js} +2 -2
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BQTC0OSC.js.map → _server.ts.js-BHdIopR2.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-mv9cqSuS.js → _server.ts.js-CFWfVYjg.js} +2 -2
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-mv9cqSuS.js.map → _server.ts.js-CFWfVYjg.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-BNQO3cZr.js → hooks.server.js-BT84TVOj.js} +2 -2
- package/build/server/chunks/entries/{hooks.server.js-BNQO3cZr.js.map → hooks.server.js-BT84TVOj.js.map} +1 -1
- package/build/server/chunks/{handler-rG16rikT.js → handler-ChRrsqKi.js} +5 -5
- package/build/server/chunks/{handler-rG16rikT.js.map → handler-ChRrsqKi.js.map} +1 -1
- package/build/server/chunks/{index.js-DYK_SfL5.js → index.js-1EfZPKuZ.js} +5 -5
- package/build/server/chunks/{index.js-DYK_SfL5.js.map → index.js-1EfZPKuZ.js.map} +1 -1
- package/build/server/chunks/{manifest.js-h2lDpEPs.js → manifest.js-DR0qLyIe.js} +27 -27
- package/build/server/chunks/{manifest.js-h2lDpEPs.js.map → manifest.js-DR0qLyIe.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-Db28RwnA.js → 0.js-CHb0mVEc.js} +2 -2
- package/build/server/chunks/nodes/{0.js-Db28RwnA.js.map → 0.js-CHb0mVEc.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-DXh-Y7sw.js +7 -0
- package/build/server/chunks/nodes/{1.js-D26Uv3YT.js.map → 1.js-DXh-Y7sw.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BSEFm6uL.js +7 -0
- package/build/server/chunks/nodes/2.js-BSEFm6uL.js.map +1 -0
- package/build/server/chunks/nodes/3.js-Cob8rFik.js +7 -0
- package/build/server/chunks/nodes/3.js-Cob8rFik.js.map +1 -0
- package/build/server/chunks/nodes/4.js-CsI1onmR.js +7 -0
- package/build/server/chunks/nodes/4.js-CsI1onmR.js.map +1 -0
- package/dist/core/api-types.d.ts +2 -0
- package/dist/runtime/chroma-key-video-lifecycle.d.ts +2 -2
- package/dist/runtime/chroma-key-video-lifecycle.js +220 -124
- package/dist/runtime/components/ChromaKeyVideo.svelte +13 -2
- package/dist/runtime/components/Slice.svelte +22 -12
- package/dist/runtime/components/Slice.svelte.d.ts +3 -6
- package/dist/runtime/components/SliceCanvas.svelte +51 -40
- package/dist/runtime/components/SliceCanvas.svelte.d.ts +2 -2
- package/dist/runtime/components/SliceDom.svelte +96 -42
- package/dist/runtime/components/SliceDom.svelte.d.ts +2 -2
- package/dist/runtime/slice-source-lifecycle.d.ts +14 -0
- package/dist/runtime/slice-source-lifecycle.js +70 -0
- package/dist/server/check.d.ts +1 -1
- package/dist/server/check.js +16 -2
- package/dist/server/cli-commands.d.ts +1 -1
- package/dist/server/cli-commands.js +2 -1
- package/dist/server/image-duplicates.d.ts +18 -0
- package/dist/server/image-duplicates.js +138 -0
- package/dist/server/operations.js +4 -0
- package/package.json +4 -1
- package/build/client/_app/immutable/assets/2.6TBn1n3x.css +0 -1
- package/build/client/_app/immutable/assets/2.6TBn1n3x.css.br +0 -0
- package/build/client/_app/immutable/assets/2.6TBn1n3x.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.BuCXJbRG.css.br +0 -0
- package/build/client/_app/immutable/assets/3.BuCXJbRG.css.gz +0 -0
- package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css +0 -1
- package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css.br +0 -0
- package/build/client/_app/immutable/assets/ConfirmDialog.BdKlitwi.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css +0 -1
- 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/Popover.Et4sBRbI.css +0 -1
- package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.br +0 -0
- package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BAva9YXm.js +0 -1
- package/build/client/_app/immutable/chunks/BAva9YXm.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAva9YXm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGAUmugt.js +0 -1
- package/build/client/_app/immutable/chunks/BGAUmugt.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGAUmugt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMORe2Gb.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBygkKLq.js +0 -1
- package/build/client/_app/immutable/chunks/CBygkKLq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBygkKLq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cil0r9BR.js +0 -108
- package/build/client/_app/immutable/chunks/Cil0r9BR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cil0r9BR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-p-QSzz.js +0 -1
- package/build/client/_app/immutable/chunks/D-p-QSzz.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-p-QSzz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D15yxLq9.js +0 -1
- package/build/client/_app/immutable/chunks/D15yxLq9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D15yxLq9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DFRlZOKz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DFRlZOKz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpFtnEPx.js.br +0 -4
- package/build/client/_app/immutable/chunks/DpFtnEPx.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BaP08B0_.js +0 -2
- package/build/client/_app/immutable/entry/app.BaP08B0_.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BaP08B0_.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DntfygIK.js +0 -1
- package/build/client/_app/immutable/entry/start.DntfygIK.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DntfygIK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js +0 -1
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js +0 -1
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js +0 -3
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js +0 -1
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.js +0 -2
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-BJfk3ZiR.js.map +0 -1
- package/build/server/chunks/nodes/1.js-D26Uv3YT.js +0 -7
- package/build/server/chunks/nodes/2.js-BeRlEFid.js +0 -7
- package/build/server/chunks/nodes/2.js-BeRlEFid.js.map +0 -1
- package/build/server/chunks/nodes/3.js-BRUNmCyG.js +0 -7
- package/build/server/chunks/nodes/3.js-BRUNmCyG.js.map +0 -1
- package/build/server/chunks/nodes/4.js-CTHWqDf1.js +0 -7
- package/build/server/chunks/nodes/4.js-CTHWqDf1.js.map +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,E as i,F as a,I as o,J as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,S as h,T as g,U as _,V as v,W as y,X as b,Y as x,Z as S,_ as C,a as w,c as T,ct as E,d as D,et as O,f as ee,it as te,j as ne,k,l as A,m as j,o as re,q as M,rt as ie,s as N,st as P,u as ae,v as oe}from"../chunks/YpiA5Xry.js";import{c as se,t as ce}from"../chunks/BfQXIsM7.js";import"../chunks/xihTtKlq.js";import{t as le}from"../chunks/CjB5zQ4_.js";import{$ as ue,F as de,I as fe,J as pe,M as me,P as he,W as ge,X as _e,Z as ve,at as ye,d as be,it as xe,k as Se,l as Ce,m as we,o as Te,t as F,u as Ee}from"../chunks/BufZeTod.js";import{a as De}from"../chunks/BxCbL__p.js";import{t as Oe}from"../chunks/B9HdDE5n.js";import{a as ke,c as Ae,f as je,h as Me,i as Ne,l as Pe,m as Fe,n as Ie,o as Le,p as Re,r as ze,s as Be,t as Ve,u as He}from"../chunks/DuXWzgb4.js";import{n as Ue,t as We}from"../chunks/Bj31DJwy.js";function I(e){return Array.isArray?Array.isArray(e):Ze(e)===`[object Array]`}function L(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 Ge(e){return e==null?``:L(e)}function R(e){return typeof e==`string`}function Ke(e){return typeof e==`number`}function qe(e){return e===!0||e===!1||Ye(e)&&Ze(e)==`[object Boolean]`}function Je(e){return typeof e==`object`}function Ye(e){return Je(e)&&e!==null}function z(e){return e!=null}function Xe(e){return!e.trim().length}function Ze(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Qe=`Incorrect 'index' type`,$e=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,et=e=>`Invalid value for key ${e}`,tt=e=>`Pattern length exceeds max of ${e}.`,B=e=>`Missing ${e} property in key`,V=e=>`Property 'weight' in key '${e}' must be a positive integer`,H=`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.`,U=Object.prototype.hasOwnProperty,nt=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=W(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 W(e){let t=null,n=null,r=null,i=1,a=null;if(R(e)||I(e))r=e,t=G(e),n=K(e);else{if(!U.call(e,`name`))throw Error(B(`name`));let o=e.name;if(r=o,U.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(V(K(o)));t=G(o),n=K(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function G(e){return I(e)?e:e.split(`.`)}function K(e){return I(e)?e.join(`.`):e}function q(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(z(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!z(s))return;if(a===t.length-1&&(R(s)||Ke(s)||qe(s)||typeof s==`bigint`))n.push(o===void 0?Ge(s):{v:Ge(s),i:o});else if(I(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,R(t)?t.split(`.`):t,0),r?n:n[0]}var J={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},rt={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},it={location:0,threshold:.6,distance:100},at={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:q,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},Y=Object.freeze({...rt,...J,...it,...at});function ot(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 st=class{constructor({getFn:e=Y.getFn,fieldNormWeight:t=Y.fieldNormWeight}={}){this.norm=ot(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(R(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($e);if(R(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($e);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!z(e)||Xe(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(z(i)){if(I(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(z(n)){if(R(n)){if(!Xe(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(z(n.v)){let t=R(n.v)?n.v:Ge(n.v);if(!Xe(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(R(i)&&!Xe(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 ct(e,t,{getFn:n=Y.getFn,fieldNormWeight:r=Y.fieldNormWeight}={}){let i=new st({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(W)),i.setSources(t),i.create(),i}function X(e,{getFn:t=Y.getFn,fieldNormWeight:n=Y.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new st({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function Z(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 lt(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(tt(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,C=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]&C&&(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 w={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=Z(_,s);e.length?c&&(w.indices=e):w.isMatch=!1}return w}function ut(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 dt(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 ft={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},pt=RegExp(`[`+Object.keys(ft).join(``)+`]`,`g`),mt=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(pt,e=>ft[e]):e=>e,ht=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?mt(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:ut(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?mt(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}=lt(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=dt(u)),p}},gt=new Set([`fuzzy`,`include`]);function _t(e){return e.startsWith(`inverse`)}var Q=[{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 ht(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)}}}}],vt=Q.length,yt=`\0`,bt=`|`;function xt(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 St(e,t){let n=e.match(t);return n?n[1]:null}function Ct(e,t={}){return e.replace(/\\\|/g,yt).split(bt).map(e=>{let n=xt(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<vt;){let e=Q[o],n=St(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<vt;){let e=Q[o],n=St(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var wt=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?mt(e):e,this.pattern=e,this.query=Ct(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?mt(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,_t(r.type)&&(c=!0),n&&(gt.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=dt(o)),e}}return{isMatch:!1,score:1}}},Tt=[];function Et(...e){Tt.push(...e)}function Dt(e,t){for(let n=0,r=Tt.length;n<r;n+=1){let r=Tt[n];if(r.condition(e,t))return new r(e,t)}return new ht(e,t)}var Ot={AND:`$and`,OR:`$or`},kt={PATH:`$path`,PATTERN:`$val`},At=e=>!!(e[Ot.AND]||e[Ot.OR]),jt=e=>!!e[kt.PATH],Mt=e=>!I(e)&&Je(e)&&!At(e),Nt=e=>({[Ot.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Pt(e,t,{auto:n=!0}={}){let r=e=>{if(R(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=Dt(e,t)),r}let i=Object.keys(e),a=jt(e);if(!a&&i.length>1&&!At(e))return r(Nt(e));if(Mt(e)){let r=a?e[kt.PATH]:i[0],o=a?e[kt.PATTERN]:e[r];if(!R(o))throw Error(et(r));let s={keyId:K(r),pattern:o};return n&&(s.searcher=Dt(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];I(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return At(e)||(e=Nt(e)),r(e)}function Ft(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 It(e,{ignoreFieldNorm:t=Y.ignoreFieldNorm}){e.forEach(e=>{e.score=Ft(e.matches,{ignoreFieldNorm:t})})}var Lt=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 Rt(e){let t=[];return e.matches.forEach(e=>{if(!z(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 zt(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=Rt(e)),r&&(a.score=e.score),a})}var Bt=/[\p{L}\p{M}\p{N}_]+/gu,Vt=new WeakSet;function Ht(e){Vt.has(e)||(Vt.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 Ut(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||Ht(e),t=>t.match(e)||[]):e=>e.match(Bt)||[]}function $({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=Ut(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=mt(n)),r(n)}}}var Wt=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=$({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 ht(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=dt(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function Gt(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 Kt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){Gt(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)Gt(e,t.v,i,r);else Gt(e,n.v,i,r)}}function qt(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)Kt(r,i,t,n);return r}function Jt(e,t,n,r){Kt(e,t,n,r)}function Yt(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 Xt(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)Yt(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 Zt=class{constructor(e,t,n){this.options={...Y,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new nt(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=Dt(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 st))throw Error(Qe);if(this._myIndex=t||ct(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=$({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=qt(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!z(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=$({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Jt(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&&Xt(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($e);this._invertedIndex&&Xt(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(R(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return Ke(n)&&n>-1&&(e=e.slice(0,n)),e}let c=Ke(n)&&n>0&&R(e),l;if(c){let t=new Lt(n);R(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=R(e)?R(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),It(l,{ignoreFieldNorm:s}),a&&l.sort(o),Ke(n)&&n>-1&&(l=l.slice(0,n));return zt(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(!z(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=Ft(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=Pt(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===Ot.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(z(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(!z(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=Ft(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):s.push(r)}}),s}_findMatches({key:e,value:t,searcher:n}){if(!z(t))return[];let r=[];if(I(t))t.forEach(({v:t,i,n:a})=>{if(!z(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}};Zt.version=`7.4.2`,Zt.createIndex=ct,Zt.parseIndex=X,Zt.config=Y,Zt.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(H);return Dt(e,{...Y,...n}).searchIn(t)},Zt.parseQuery=Pt,Et(wt),Et(Wt),Zt.use=function(...e){e.forEach(e=>Et(e))};var Qt=Zt;function $t(e,t){return t===`all`?!0:t===`changed`?e===`edited`:t===`new`?e===`new`:e!==null}function en(e){return JSON.stringify(e.map(e=>e.id).sort())}function tn(e){return e.requestStatus===`idle`||e.requestedAssetSetKey!==e.assetSetKey||e.requestedRefreshRevision!==e.refreshRevision}function nn(e,t){return t===`all`||e===`unused`}function rn(e){return Number(e.view===`duplicates`)+Number(e.type!==`all`)+Number(e.manifest!==`all`)+Number(e.changes!==`all`)+Number(e.usageAvailable&&e.usage!==`all`)+Number(e.warningsOnly)}var an=(e,t)=>e.id.localeCompare(t.id);function on(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map(e.map(e=>[e.id,new Set(e.duplicateIds)])),r=new Set(t.keys()),i=[];for(let a of[...e].sort(an)){if(!r.delete(a.id))continue;let e=[],o=[a];for(;o.length>0;){let i=o.pop();if(i){e.push(i);for(let e of n.get(i.id)??[]){let a=t.get(e);!a||!n.get(e)?.has(i.id)||!r.delete(e)||o.push(a)}}}i.push(e.sort(an))}return i}var sn=l(`<span class="arrow svelte-13hq4tl" aria-hidden="true">›</span>`),cn=l(`<hr class="svelte-13hq4tl"/>`),ln=l(`<button role="menuitem" tabindex="-1" class="svelte-13hq4tl"> </button>`),un=l(`<!> <!>`,1),dn=l(`<div role="menu" tabindex="-1"></div>`),fn=l(`<div class="submenu-anchor svelte-13hq4tl" role="presentation"><button class="submenu-trigger svelte-13hq4tl" role="menuitem"><span> </span> <!></button> <!></div>`);function pn(r,a){te(a,!0);let l=w(a,`alwaysSubmenu`,3,!1),u=e(void 0),f=e(void 0),h=e(!1),v=e(!1),y=e(240),S=O(()=>a.sections.filter(e=>e.length>0)),T=O(()=>m(S).flat()),ee=O(()=>l()||m(T).length>1);async function ne(e=!1){if(!m(ee)||(p(h,!0),await n(),!m(u)||!m(f)))return;let t=m(u).getBoundingClientRect();p(v,t.right+m(f).offsetWidth+8>window.innerWidth),p(y,Math.max(32,window.innerHeight-t.top-8),!0),e&&m(f).querySelector(`[role="menuitem"]:not(:disabled)`)?.focus()}function A(e){if(!m(ee)){let e=m(T)[0];e&&a.onSelect(e.value);return}e.stopPropagation(),ne()}function j(e){!m(ee)||e.key!==`ArrowRight`&&e.key!==`ArrowDown`||(e.preventDefault(),e.stopPropagation(),ne(!0))}function M(e){if(e.key===`ArrowLeft`||e.key===`Escape`){e.preventDefault(),e.stopPropagation(),p(h,!1),m(u)?.focus();return}if(!m(f))return;let t=[...m(f).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 N=fn(),P=s(N),ae=s(P),se=s(ae,!0);E(ae);var ce=b(ae,2),le=e=>{t(e,sn())};d(ce,e=>{m(ee)&&e(le)}),E(P),re(P,e=>p(u,e),()=>m(u));var ue=b(P,2),de=e=>{var n=dn();let r,c;g(n,21,()=>m(S),i,(e,n,r)=>{var i=un(),c=x(i),l=e=>{t(e,cn())};d(c,e=>{r>0&&e(l)}),g(b(c,2),17,()=>m(n),e=>e.value,(e,n)=>{var r=ln(),i=s(r,!0);E(r),_(()=>{r.disabled=m(n).disabled,D(r,`title`,m(n).title),k(i,m(n).label)}),o(`click`,r,()=>a.onSelect(m(n).value)),t(e,r)}),t(e,i)}),E(n),re(n,e=>p(f,e),()=>m(f)),_(()=>{r=oe(n,1,`submenu svelte-13hq4tl`,null,r,{"opens-left":m(v)}),D(n,`aria-label`,a.label),c=C(n,``,c,{"max-height":`${m(y)}px`})}),o(`keydown`,n,M),t(e,n)};d(ue,e=>{m(ee)&&m(h)&&e(de)}),E(N),_(()=>{D(P,`aria-haspopup`,m(ee)?`menu`:void 0),D(P,`aria-expanded`,m(ee)?m(h):void 0),k(se,a.label)}),c(`mouseenter`,N,()=>void ne()),c(`mouseleave`,N,()=>p(h,!1)),o(`focusout`,N,e=>{e.currentTarget.contains(e.relatedTarget)||p(h,!1)}),o(`click`,P,A),o(`keydown`,P,j),t(r,N),ie()}a([`focusout`,`click`,`keydown`]);var mn=l(`<button role="menuitem" class="svelte-109nkvw">Rename</button>`),hn=l(`<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 gn(e,n){te(n,!0);let r=O(()=>Math.max(8,Math.min(n.x,window.innerWidth-176))),i=O(()=>n.assetCount===1&&n.copyOptions.length>0),a=O(()=>2+ +!!m(i)+ +!!n.onRename),l=O(()=>Math.max(8,Math.min(n.y,window.innerHeight-(m(a)*32+17)))),u=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function f(e){e(),n.onClose()}var p=hn();c(`click`,M,function(...e){n.onClose?.apply(this,e)}),c(`blur`,M,function(...e){n.onClose?.apply(this,e)}),c(`keydown`,M,e=>e.key===`Escape`&&n.onClose()),c(`resize`,M,function(...e){n.onClose?.apply(this,e)}),c(`scroll`,M,function(...e){n.onClose?.apply(this,e)});let h;var g=s(p),v=e=>{{let t=O(()=>[n.copyOptions.slice(0,1).map(e=>({label:e,value:e})),n.copyOptions.slice(1).map(e=>({label:e,value:e}))]);pn(e,{label:`Copy Asset ID`,get sections(){return m(t)},alwaysSubmenu:!0,onSelect:e=>f(()=>n.onCopy(e))})}};d(g,e=>{m(i)&&e(v)});var y=b(g,2),x=e=>{var r=mn();o(`click`,r,()=>f(n.onRename)),t(e,r)};d(y,e=>{n.onRename&&e(x)});var S=b(y,2),w=s(S,!0);E(S);var T=b(S,4);{let e=O(()=>[[{label:`Raw`,value:`raw`},{label:`Proxy`,value:`proxy`,disabled:!n.hasProxy,title:n.hasProxy?void 0:`No proxy is available for this asset.`}]]);pn(T,{get label(){return u},get sections(){return m(e)},alwaysSubmenu:!0,onSelect:e=>f(()=>n.onReveal(e))})}E(p),_(()=>{h=C(p,``,h,{left:`${m(r)}px`,top:`${m(l)}px`}),k(w,n.assetCount===1?`Delete Asset`:`Delete ${n.assetCount} Assets`)}),o(`contextmenu`,p,e=>e.preventDefault()),o(`click`,S,()=>f(n.onDelete)),t(e,p),ie()}a([`contextmenu`,`click`]);var _n=l(`<span class="emoji svelte-1b4m5oj"> </span>`),vn=l(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function yn(e,n){te(n,!0);let r=w(n,`variant`,3,`chip`),i=w(n,`passive`,3,!1),a=w(n,`via`,19,()=>[]),o=O(()=>F.manifestAppearance(n.name)),c=O(()=>m(o).color??`var(--accent)`),l=O(()=>i()?`${n.name} — passive member${a().length>0?`, via ${a().join(`, `)}`:``}`:n.name);var u=vn();let f;var p=s(u),h=e=>{var n=_n(),r=s(n,!0);E(n),_(()=>k(r,m(o).emoji)),t(e,n)};d(p,e=>{m(o).emoji&&e(h)});var g=b(p,2),v=s(g,!0);E(g),E(u),_(()=>{f=oe(u,1,`manifest-label ${r()??``}`,`svelte-1b4m5oj`,f,{passive:i()}),C(u,`--manifest-color: ${m(c)??``}`),D(u,`title`,m(l)),k(v,n.name)}),t(e,u),ie()}function bn(e){return[e.id,...e.manifests.map(t=>`${t}.${e.id}`)]}var xn=l(`<!>`,1),Sn=l(`<div><span class="icon-slot svelte-dr99ka"><!></span> <select class="svelte-dr99ka"><!></select></div>`);function Cn(e,n){te(n,!0);let i=w(n,`value`,15),a=w(n,`active`,3,!1);var c=Sn();let l;var u=s(c);De(s(u),{get name(){return n.icon},size:14}),E(u);var d=b(u,2);A(d,()=>{var e=s(d),i=xn();r(x(i),()=>n.children),t(e,i)}),E(c),_(()=>{l=oe(c,1,`browse-select control svelte-dr99ka`,null,l,{"filter-active":a()}),D(u,`title`,n.label),D(d,`aria-label`,n.label)}),o(`change`,d,()=>n.onChange?.(i())),j(d,i),t(e,c),ie()}a([`change`]);var wn=l(`<label><span class="icon-slot svelte-sa6meb"><input type="checkbox" class="svelte-sa6meb"/></span> <span class="value svelte-sa6meb"> </span></label>`);function Tn(e,n){te(n,!0);let r=w(n,`checked`,15,!1);var i=wn();let a;var c=s(i),l=s(c);ae(l),E(c);var u=b(c,2),d=s(u,!0);E(u),E(i),_(()=>{a=oe(i,1,`browse-checkbox svelte-sa6meb`,null,a,{"filter-active":r()}),D(l,`aria-label`,n.label),k(d,n.text)}),o(`change`,l,e=>n.onChange?.(e)),N(l,r),t(e,i),ie()}a([`change`]);var En=l(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),Dn=l(`<button class="control select-all svelte-1uha8ag">Select all</button>`),On=l(`<option>Sort alphabetically</option> <option>Sort by type</option> <option>Sort by manifest</option>`,1),kn=l(`<span class="filter-count svelte-1uha8ag"> </span>`),An=l(`<button type="button" aria-haspopup="dialog"><!> <span>Filters</span> <!></button>`),jn=l(`<option> </option>`),Mn=l(`<option>All types</option> <!>`,1),Nn=l(`<option>All manifests</option> <!>`,1),Pn=l(`<option>Any status</option> <option>Changed</option> <option>New</option> <option>Changed & new</option>`,1),Fn=l(`<div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Unused</span> <!></div>`),In=l(`<div class="filters-popover svelte-1uha8ag"><div class="popover-header svelte-1uha8ag"><strong class="svelte-1uha8ag">Filters</strong> <button type="button" class="clear-filters svelte-1uha8ag">Clear all</button></div> <div class="filter-grid svelte-1uha8ag"><div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Type</span> <!></div> <div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Manifest</span> <!></div> <div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Git status</span> <!></div></div> <div class="filter-grid filter-options-grid svelte-1uha8ag"><div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Duplicates</span> <!></div> <!> <div class="filter-field svelte-1uha8ag"><span class="svelte-1uha8ag">Warnings</span> <!></div></div></div>`),Ln=u(`<rect class="svelte-1uha8ag"></rect>`),Rn=l(`<button type="button" class="control primary import-trigger svelte-1uha8ag" aria-haspopup="dialog"><!> <span>Import</span> <!></button>`),zn=l(`<div class="import-menu svelte-1uha8ag"><button type="button" class="svelte-1uha8ag"><strong>File</strong> <span class="svelte-1uha8ag">Choose an asset from your computer</span></button> <button type="button" class="svelte-1uha8ag"><strong>Figma</strong> <span class="svelte-1uha8ag">Import a frame or component by URL</span></button></div>`),Bn=l(`<div class="empty svelte-1uha8ag">Loading library…</div>`),Vn=l(`<div class="empty svelte-1uha8ag" role="status">Analyzing asset usage…</div>`),Hn=l(`<div class="empty usage-error svelte-1uha8ag" role="alert"><span> </span> <button class="control">Retry</button></div>`),Un=l(`<div class="empty svelte-1uha8ag"> </div>`),Wn=l(`<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>`),Gn=l(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),Kn=l(`<span class="section-emoji svelte-1uha8ag"> </span>`),qn=l(`<!> `,1),Jn=l(`<span class="badge warning svelte-1uha8ag">⚠</span>`),Yn=l(`<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>`),Xn=l(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Zn=l(`<!> <!>`,1),Qn=l(`<div class="drop-hint svelte-1uha8ag"> </div>`),$n=l(`<p class="dialog-warning svelte-1uha8ag"> </p>`),er=l(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),tr=l(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),nr=l(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),rr=l(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="library-toolbar svelte-1uha8ag"><div class="selection-controls svelte-1uha8ag"><!></div> <!> <!> <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="preview-size-control control svelte-1uha8ag"><svg class="preview-size-icon dense svelte-1uha8ag" viewBox="0 0 14 14" aria-hidden="true"></svg> <input class="preview-size-range svelte-1uha8ag" type="range" step="8" aria-label="Preview size"/> <svg class="preview-size-icon roomy svelte-1uha8ag" viewBox="0 0 14 14" aria-hidden="true"><rect x="0.75" y="0.75" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="8" y="0.75" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="0.75" y="8" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="8" y="8" width="5.25" height="5.25" class="svelte-1uha8ag"></rect></svg></label> <!> <input type="file" hidden=""/></div> <!> <!></div></div> <!> <!> <!> <!> <!> <!>`,1);function ir(r,a){te(a,!0);let l=je(le.url),u=e(S(l.sort)),w=e(S(l.folder)),A=e(S(l.type)),j=e(S(l.manifest)),N=e(S(l.changes)),I=e(S(l.usage)),L=e(S({status:`idle`})),Ge=new Me(e=>{p(L,e,!0)}),R=!1,Ke=null,qe=-1,Je=e(S(l.query)),Ye=e(S(l.warningsOnly)),z=e(S(l.view)),Xe=e(!1),Ze=e(!1),Qe=e(!1),$e=e(null),et=e(null),tt=e(``),B=e(null),V=e(null),H=e(null),U=e(``),nt=e(void 0),W=e(S([])),G=e(null),K=e(null),q=e(!1),J=e(null),rt=0,it=e(null),at=0,Y=e(null),ot=0,st=e(null),ct=0,X=e(S([])),Z=e(null),lt=e(void 0),ut=e(void 0),dt=`fundus-library-preview-card-width`,ft=e(S(_t())),pt=we().join(`,`),mt=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`,ht=O(()=>(m(ft)-64)/304*100),gt=O(()=>rn({view:m(z),type:m(A),manifest:m(j),changes:m(N),usage:m(I),usageAvailable:F.usageAvailable===!0,warningsOnly:m(Ye)}));function _t(){try{let e=Number.parseInt(localStorage.getItem(dt)??``,10);return Number.isFinite(e)?Math.min(368,Math.max(64,e)):160}catch{return 160}}y(()=>{try{localStorage.setItem(dt,String(m(ft)))}catch{}}),y(()=>{let e=je(le.url);v(()=>Ut(e))});let Q=O(()=>F.state?.assets??[]),vt=O(()=>m(H)!==null&&m(U)!==m(H)?Se(m(U)):null),yt=O(()=>m(H)!==null&&m(Q).some(e=>e.id!==m(H)&&e.id===m(U))),bt=O(()=>m(H)!==null&&m(U)!==m(H)&&m(vt)===null&&!m(yt)&&!m(q)),xt=O(()=>m(H)===null?[]:(m(Q).find(e=>e.id===m(H))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${m(H)}`)),St=O(()=>new Set(m(W))),Ct=O(()=>m(W).flatMap(e=>(m(Q).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!m(St).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),wt=O(()=>F.state?.library.folders??[]),Tt=O(()=>F.manifestNames),Et=O(()=>[...new Set(m(Q).map(e=>e.type))].sort()),Dt=O(()=>m(Je).trim()),Ot=O(()=>new Qt(m(Q),{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})),kt=O(()=>m(Dt)===``?null:new Set(m(Ot).search(m(Dt)).map(({item:e})=>e.id))),At=O(()=>m(wt).map(e=>({path:e,name:me(e)}))),jt=O(()=>new Qt(m(At),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),Mt=O(()=>m(Dt)===``?null:new Set(m(jt).search(m(Dt)).map(({item:e})=>e.path))),Nt=O(()=>m(L).status===`resolved`||m(L).status===`refreshing`||m(L).status===`failed`&&m(L).value?new Map(m(L).value?.assets.map(e=>[e.assetId,e.status])):new Map),Pt=O(()=>en(m(Q)));y(()=>{if(!(F.usageAvailable===!0&&m(I)===`unused`)){m(L).status!==`idle`&&Ge.cancel(),Ke=null,qe=-1;return}let e=F.usageRefreshRevision;if(!F.saving&&tn({requestStatus:m(L).status,requestedAssetSetKey:Ke,assetSetKey:m(Pt),requestedRefreshRevision:qe,refreshRevision:e})){let t=R;R=!0,Ke=m(Pt),qe=e,Ge.run(()=>pe({forceFresh:t}),{retainResult:!0})}});let Ft=O(()=>m(w)===null?[]:m(wt).filter(e=>fe(e)===m(w)).sort((e,t)=>e.localeCompare(t))),It=O(()=>m(Mt)===null?m(Ft):m(Ft).filter(e=>m(Mt).has(e)));y(()=>{F.state&&m(w)!==null&&m(w)!==``&&!m(wt).includes(m(w))&&Ht(m(w))});let Lt=O(()=>m(Q).filter(e=>!(m(w)!==null&&e.folder!==m(w)||m(kt)!==null&&!m(kt).has(e.id)||m(A)!==`all`&&e.type!==m(A)||!$t(e.gitStatus,m(N))||F.usageAvailable===!0&&m(I)===`unused`&&!nn(m(Nt).get(e.id),m(I))||m(j)!==`all`&&!e.manifests.includes(m(j))&&!e.passiveManifests.some(e=>e.manifest===m(j))||m(Ye)&&e.warnings.length===0||m(z)===`duplicates`&&e.duplicateIds.length===0))),Rt=(e,t)=>e.id.localeCompare(t.id),zt=O(()=>{let e=[...m(Lt)].sort(Rt);if(m(z)===`duplicates`)return on(e).map(e=>{let t=e.map(e=>e.id);return{key:`duplicates:${t.join(`\0`)}`,heading:t.join(`, `),assets:e}});if(m(u)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(m(u)===`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 m(Tt)){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:F.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}),Bt=O(()=>[...new Set(m(zt).flatMap(e=>e.assets.map(e=>e.id)))]);y(()=>{let e=new Set(m(Q).map(e=>e.id)),t=m(X).filter(t=>e.has(t));t.length!==m(X).length&&p(X,t,!0)});function Vt(){return{folder:m(w),sort:m(u),type:m(A),manifest:m(j),changes:m(N),usage:m(I),query:m(Je),warningsOnly:m(Ye),view:m(z)}}async function Ht(e){await n(),m(w)===e&&F.state&&!F.state.library.folders.includes(e)&&$({folder:null},!0)}function Ut(e){let t=Re(m(w),e.folder,{selectedAssetIds:m(X),lastSelectedAssetId:m(Z)});p(X,t.selectedAssetIds,!0),p(Z,t.lastSelectedAssetId,!0),p(w,e.folder,!0),p(u,e.sort,!0),p(A,e.type,!0),p(j,e.manifest,!0),p(N,e.changes,!0),p(I,e.usage,!0),p(Je,e.query,!0),p(Ye,e.warningsOnly,!0),p(z,e.view,!0)}function $(e,t){let n={...Vt(),...e};Ut(n);let r=Fe(le.url,n);r.href!==le.url.href&&ce(r,{replaceState:t,noScroll:!0,keepFocus:!0})}function Wt(){$({view:`all`,type:`all`,manifest:`all`,changes:`all`,usage:`all`,warningsOnly:!1},!0)}function Gt(e,t=!1){He.begin(),$({folder:e},t)}function Kt(e,t){if(t&&m(Z)!==null){let t=m(Bt).indexOf(m(Z)),n=m(Bt).indexOf(e);if(t!==-1&&n!==-1){let r=Math.min(t,n),i=Math.max(t,n);p(X,[...new Set([...m(X),...m(Bt).slice(r,i+1)])],!0),p(Z,e,!0);return}}p(X,m(X).includes(e)?m(X).filter(t=>t!==e):[...m(X),e],!0),p(Z,e,!0)}function qt(){p(X,[...m(Bt)],!0),p(Z,m(Bt).at(-1)??null,!0)}function Jt(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 Yt(e){e.preventDefault(),p(Qe,!1);let t=e.dataTransfer?.files?.[0];t&&(p(tt,m(w)??``,!0),p($e,t,!0))}function Xt(e){p(tt,e,!0),m(lt)?.click()}function Zt(e){at+=1,p(it,{id:at,parent:e},!0)}function an(e){ot+=1,p(Y,{id:ot,path:e},!0)}function sn(e){ct+=1,p(st,{id:ct,path:e},!0)}function cn(e){e.preventDefault(),p(V,null),p(B,{x:e.clientX,y:e.clientY,parent:m(w)??``,renamePath:null},!0)}function ln(e,t){e.preventDefault(),e.stopPropagation(),p(V,null),p(B,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function un(e,t){e.preventDefault(),e.stopPropagation(),p(B,null);let n=m(X).includes(t)?[...m(X)]:[t];m(X).includes(t)||(p(X,[t],!0),p(Z,t,!0)),p(V,{x:e.clientX,y:e.clientY,assetIds:n,targetAssetId:t},!0)}function dn(e){rt+=1,p(H,e,!0),p(U,e,!0),p(J,null),n().then(()=>{m(nt)?.focus(),m(nt)?.select()})}function fn(e){rt+=1,p(W,[...new Set(e)],!0),p(J,null)}async function pn(e,t){try{await xe(e,t),F.error=null}catch(e){F.error=e instanceof Error?e.message:String(e)}}function mn(e){let t=F.assetById(e);return t?bn(t):[e]}async function hn(e){try{await navigator.clipboard.writeText(e),F.error=null}catch(e){F.error=`Could not copy asset ID: ${e instanceof Error?e.message:String(e)}`}}async function _n(e){try{await ye(e),F.error=null}catch(e){F.error=e instanceof Error?e.message:String(e)}}function vn(){m(q)||(rt+=1,p(H,null),p(W,[],!0),p(J,null))}async function xn(){if(!m(bt)||m(H)===null)return;let e=m(H),t=m(U);p(q,!0),p(J,null);let n=F.mutate(()=>ue(e,{renameTo:t}),be(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});p(X,m(X).map(n=>n===e?t:n),!0),p(Z,m(Z)===e?t:m(Z),!0),p(H,null);let r=++rt;p(q,!1);try{await n}catch(n){let i=F.assetById(e)!==null;i&&(p(X,m(X).map(n=>n===t?e:n),!0),p(Z,m(Z)===t?e:m(Z),!0)),i&&rt===r&&(p(H,e,!0),p(U,t,!0),p(J,n instanceof Error?n.message:String(n),!0))}finally{p(q,!1)}}async function Sn(){if(m(W).length===0)return;let e=[...m(W)],t=[...m(X)],n=m(Z);p(q,!0),p(J,null);let r=F.mutate(()=>ge(e),Te(e),{dependencies:e.map(e=>`asset:${e}`),invalidatesOnFailure:e.map(e=>`asset:${e}`)}),i=new Set(e);p(X,m(X).filter(e=>!i.has(e)),!0),m(Z)!==null&&i.has(m(Z))&&p(Z,null);let a=[...m(X)],o=m(Z);p(W,[],!0);let s=++rt;p(q,!1);try{await r}catch(r){let i=new Set(e.filter(e=>F.assetById(e)));i.size>0&&m(X).length===a.length&&m(X).every((e,t)=>e===a[t])&&m(Z)===o&&(p(X,t.filter(e=>i.has(e)),!0),p(Z,n!==null&&i.has(n)?n:null,!0)),i.size>0&&rt===s&&(p(W,e.filter(e=>i.has(e)),!0),p(J,r instanceof Error?r.message:String(r),!0))}finally{p(q,!1)}}function wn(e){return m(Q).filter(t=>t.folder===e).length}function ir(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&p($e,n,!0)}async function ar(e){p($e,null),p(et,null),await ce(se(`/asset/[id]`,{id:e}))}async function or(e,t){let n=e.filter(e=>F.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=F.assetById(e)?.folder;return t===void 0?[]:[t]})])],i=[...m(X)],a=m(Z),o=F.mutate(()=>_e(n,t),Ce(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]});p(X,[],!0),p(Z,null);try{await o}catch{n.some(e=>F.assetById(e)?.folder!==t)&&m(X).length===0&&m(Z)===null&&(p(X,i,!0),p(Z,a,!0))}}function sr(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=Ne(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,m(G),t,m(wt));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),p(K,t,!0))}function cr(e,t){e.preventDefault(),p(K,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`)&&or(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&ke(r,t,m(wt))&&lr(r,t)}async function lr(e,t){let n=de(t,me(e)),r=m(w),i=r,a=F.mutate(()=>ve(e,t),Ee(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});m(w)!==null&&he(m(w),e)&&(i=`${n}${m(w).slice(e.length)}`,Gt(i,!0));try{await a}catch{m(w)===i&&m(wt).some(t=>he(t,e))&&Gt(r,!0)}finally{p(G,null),p(K,null)}}function ur(e){e&&e.play().catch(()=>{})}function dr(e){e&&(e.pause(),e.currentTime=0)}function fr(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),m(ut)?.focus(),m(ut)?.select())}var pr=rr();c(`keydown`,M,fr),c(`dragenter`,M,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),p(Qe,!0))}),c(`dragover`,M,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),p(Qe,!0))}),c(`drop`,M,Yt);var mr=x(pr),hr=s(mr);Ie(hr,{get selectedFolder(){return m(w)},get createRequest(){return m(it)},get renameRequest(){return m(Y)},get deleteRequest(){return m(st)},onSelect:Gt,onMoveAssets:(e,t)=>void or(e,t),get sharedDraggedFolder(){return m(G)},onFolderDragStart:e=>p(G,e,!0),onFolderDragEnd:()=>p(G,null),onContextMenu:(e,t,n,r)=>{p(V,null),p(B,{x:e,y:t,parent:n,renamePath:r},!0)}});var gr=b(hr,2);let _r;var vr=s(gr),yr=s(vr),br=s(yr),xr=e=>{var n=En(),r=x(n),i=s(r);E(r);var a=b(r,2),c=b(a,2);_(()=>k(i,`${m(X).length??``} selected`)),o(`click`,a,qt),o(`click`,c,()=>{p(X,[],!0),p(Z,null)}),t(e,n)},Sr=e=>{var n=Dn();_(()=>n.disabled=m(Bt).length===0),o(`click`,n,qt),t(e,n)};d(br,e=>{m(X).length>0?e(xr):e(Sr,-1)}),E(yr);var Cr=b(yr,2);Cn(Cr,{label:`Sort`,icon:`sort`,onChange:e=>$({sort:e},!0),get value(){return m(u)},set value(e){p(u,e,!0)},children:(e,n)=>{var r=On(),i=x(r);i.value=i.__value=`alphabetical`;var a=b(i,2);a.value=a.__value=`type`;var o=b(a,2);o.value=o.__value=`manifest`,t(e,r)},$$slots:{default:!0}});var wr=b(Cr,2);We(wr,{portal:!0,surface:`panel`,label:`Filter assets`,get open(){return m(Xe)},set open(e){p(Xe,e,!0)},trigger:(e,n)=>{let r=()=>(n?.()).toggle,i=()=>(n?.()).open;var a=An();let c;var l=s(a);De(l,{name:`list-filter`,size:14});var u=b(l,4),f=e=>{var n=kn(),r=s(n,!0);E(n),_(()=>k(r,m(gt))),t(e,n)};d(u,e=>{m(gt)>0&&e(f)}),E(a),_(()=>{c=oe(a,1,`control toolbar-button svelte-1uha8ag`,null,c,{active:m(gt)>0}),D(a,`aria-expanded`,i())}),o(`click`,a,function(...e){r()?.apply(this,e)}),t(e,a)},children:(e,n)=>{var r=In(),i=s(r),a=b(s(i),2);E(i);var c=b(i,2),l=s(c),u=b(s(l),2);{let e=O(()=>m(A)!==`all`);Cn(u,{label:`Filter by type`,icon:`asset-type`,get active(){return m(e)},onChange:e=>$({type:e},!0),get value(){return m(A)},set value(e){p(A,e,!0)},children:(e,n)=>{var r=Mn(),i=x(r);i.value=i.__value=`all`,g(b(i,2),16,()=>m(Et),e=>e,(e,n)=>{var r=jn(),i=s(r,!0);E(r);var a={};_(()=>{k(i,n),a!==(a=n)&&(r.value=(r.__value=n)??``)}),t(e,r)}),t(e,r)},$$slots:{default:!0}})}E(l);var f=b(l,2),h=b(s(f),2);{let e=O(()=>m(j)!==`all`);Cn(h,{label:`Filter by manifest`,icon:`manifest`,get active(){return m(e)},onChange:e=>$({manifest:e},!0),get value(){return m(j)},set value(e){p(j,e,!0)},children:(e,n)=>{var r=Nn(),i=x(r);i.value=i.__value=`all`,g(b(i,2),16,()=>m(Tt),e=>e,(e,n)=>{let r=O(()=>F.manifestAppearance(n).emoji);var i=jn(),a=s(i,!0);E(i);var o={};_(()=>{k(a,m(r)?`${m(r)} ${n}`:n),o!==(o=n)&&(i.value=(i.__value=n)??``)}),t(e,i)}),t(e,r)},$$slots:{default:!0}})}E(f);var v=b(f,2),y=b(s(v),2);{let e=O(()=>m(N)!==`all`);Cn(y,{label:`Filter by Git status`,icon:`git-branch`,get active(){return m(e)},onChange:e=>$({changes:e},!0),get value(){return m(N)},set value(e){p(N,e,!0)},children:(e,n)=>{var r=Pn(),i=x(r);i.value=i.__value=`all`;var a=b(i,2);a.value=a.__value=`changed`;var o=b(a,2);o.value=o.__value=`new`;var s=b(o,2);s.value=s.__value=`changed-and-new`,t(e,r)},$$slots:{default:!0}})}E(v),E(c);var S=b(c,2),C=s(S),w=b(s(C),2);{let e=O(()=>m(z)===`duplicates`);Tn(w,{label:`Show duplicates only`,text:`Potential matches`,get checked(){return m(e)},onChange:e=>$({view:e.currentTarget.checked?`duplicates`:`all`},!0)})}E(C);var T=b(C,2),D=e=>{var n=Fn(),r=b(s(n),2);{let e=O(()=>m(I)===`unused`);Tn(r,{label:`Show unused assets only`,text:`Not referenced`,get checked(){return m(e)},onChange:e=>$({usage:e.currentTarget.checked?`unused`:`all`},!0)})}E(n),t(e,n)};d(T,e=>{F.usageAvailable===!0&&e(D)});var ee=b(T,2);Tn(b(s(ee),2),{label:`Show warnings only`,text:`Needs attention`,get checked(){return m(Ye)},onChange:e=>{p(Ye,e.currentTarget.checked,!0),$({warningsOnly:m(Ye)},!0)}}),E(ee),E(S),E(r),_(()=>a.disabled=m(gt)===0),o(`click`,a,Wt),t(e,r)},$$slots:{trigger:!0,default:!0}});var Tr=b(wr,2);let Er;var Dr=b(s(Tr),2);ae(Dr),re(Dr,e=>p(ut,e),()=>m(ut));var Or=b(Dr,2),kr=s(Or,!0);E(Or),E(Tr);var Ar=b(Tr,2),jr=s(Ar);g(jr,20,()=>Array(9),i,(e,n,r)=>{var i=Ln();D(i,`x`,r%3*4.5+.5),_(e=>D(i,`y`,e),[()=>Math.floor(r/3)*4.5+.5]),t(e,i)}),E(jr);var Mr=b(jr,2);ae(Mr),D(Mr,`min`,64),D(Mr,`max`,368),P(2),E(Ar);var Nr=b(Ar,2);We(Nr,{align:`right`,portal:!0,padding:`compact`,label:`Import assets`,get open(){return m(Ze)},set open(e){p(Ze,e,!0)},trigger:(e,n)=>{let r=()=>(n?.()).toggle,i=()=>(n?.()).open;var a=Rn(),c=s(a);De(c,{name:`plus`,size:14}),De(b(c,4),{name:`chevron-down`,size:12}),E(a),_(()=>D(a,`aria-expanded`,i())),o(`click`,a,function(...e){r()?.apply(this,e)}),t(e,a)},children:(e,n)=>{var r=zn(),i=s(r),a=b(i,2);E(r),o(`click`,i,()=>{p(Ze,!1),Xt(m(w)??``)}),o(`click`,a,()=>{p(Ze,!1),p(et,m(w)??``,!0)}),t(e,r)},$$slots:{trigger:!0,default:!0}});var Pr=b(Nr,2);re(Pr,e=>p(lt,e),()=>m(lt)),E(vr);var Fr=b(vr,2),Ir=e=>{t(e,Bn())},Lr=e=>{t(e,Vn())},Rr=e=>{var n=Hn(),r=s(n),i=s(r,!0);E(r);var a=b(r,2);E(n),_(()=>k(i,m(L).error)),o(`click`,a,()=>void Ge.run(()=>pe({forceFresh:!0}),{retainResult:!0})),t(e,n)},zr=e=>{var n=Un(),r=s(n,!0);E(n),_(()=>k(r,m(Q).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),t(e,n)},Br=e=>{var n=Zn(),r=x(n),i=e=>{var n=Gn(),r=s(n);Pe(r,{children:(e,n)=>{P(),t(e,f(`Folders`))},$$slots:{default:!0}});var i=b(r,2);g(i,20,()=>m(It),e=>e,(e,n)=>{var r=Wn();let i;var a=s(r);ze(s(a),{size:18}),E(a);var l=b(a,2),u=s(l),d=s(u,!0);E(u);var f=b(u,2),h=s(f);E(f),E(l),P(2),E(r),_((e,t)=>{i=oe(r,1,`folder-card svelte-1uha8ag`,null,i,{"drop-target":m(K)===n,"dragging-folder":m(G)===n}),k(d,e),k(h,`${t??``} assets`)},[()=>me(n),()=>wn(n)]),o(`click`,r,()=>Gt(n)),o(`contextmenu`,r,e=>ln(e,n)),c(`dragstart`,r,e=>{p(G,n,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,n),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),c(`dragend`,r,()=>{p(G,null),p(K,null)}),c(`dragover`,r,e=>sr(e,n)),c(`dragleave`,r,()=>p(K,null)),c(`drop`,r,e=>cr(e,n)),t(e,r)}),E(i),E(n),t(e,n)};d(r,e=>{m(It).length>0&&e(i)});var a=b(r,2),l=e=>{var n=ne();g(x(n),17,()=>m(zt),e=>e.key,(e,n)=>{var r=Xn(),i=s(r),a=e=>{Pe(e,{children:(e,r)=>{var i=qn(),a=x(i),o=e=>{var r=Kn(),i=s(r,!0);E(r),_(()=>k(i,m(n).emoji)),t(e,r)};d(a,e=>{m(n).emoji&&e(o)});var c=b(a,1,!0);_(()=>k(c,m(n).heading)),t(e,i)},$$slots:{default:!0}})};d(i,e=>{m(n).heading&&e(a)});var l=b(i,2);g(l,21,()=>m(n).assets,e=>e.id,(e,n)=>{let r=O(()=>Ae[m(n).type]?.thumbnail);var i=Yn();let a;var l=s(i),u=e=>{{let t=O(()=>`${m(n).gitStatus===`new`?`New`:`Edited`} on ${F.state?.gitBranch??`the current Git branch`}`);Oe(e,{get kind(){return m(n).gitStatus},overlay:!0,get title(){return m(t)}})}};d(l,e=>{m(n).gitStatus&&e(u)});var f=b(l,2);ae(f);var p=b(f,2),v=s(p),y=e=>{var i=ne();h(x(i),()=>m(r),(e,t)=>{t(e,{get asset(){return m(n)}})}),t(e,i)};d(v,e=>{m(r)&&e(y)}),E(p);var S=b(p,2),C=s(S),w=s(C,!0);E(C);var T=b(C,2),te=s(T,!0);E(T),E(S);var A=b(S,2),j=s(A);g(j,16,()=>m(n).manifests,e=>e,(e,t)=>{yn(e,{get name(){return t}})});var re=b(j,2);g(re,17,()=>m(n).passiveManifests,e=>e.manifest,(e,t)=>{yn(e,{get name(){return m(t).manifest},passive:!0,get via(){return m(t).via}})}),g(b(re,2),16,()=>m(n).warnings,e=>e,(e,n)=>{var r=Jn();_(()=>D(r,`title`,n)),t(e,r)}),E(A),E(i),_((e,t,r)=>{a=oe(i,1,`card svelte-1uha8ag`,null,a,e),D(i,`data-asset-id`,m(n).id),D(i,`href`,t),ee(f,r),D(f,`aria-label`,`Select ${m(n).id}`),k(w,m(n).id),k(te,m(n).type)},[()=>({selected:m(X).includes(m(n).id)}),()=>se(`/asset/[id]`,{id:m(n).id}),()=>m(X).includes(m(n).id)]),o(`contextmenu`,i,e=>un(e,m(n).id)),o(`click`,i,e=>{(m(X).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),Kt(m(n).id,e.shiftKey))}),c(`dragstart`,i,e=>{let t=m(X).includes(m(n).id)?m(X):[m(n).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(t)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),Jt(e,t)}),c(`focus`,i,e=>ur(e.currentTarget.querySelector(`video`))),c(`blur`,i,e=>dr(e.currentTarget.querySelector(`video`))),o(`click`,f,e=>{e.stopPropagation(),Kt(m(n).id,e.shiftKey)}),t(e,i)}),E(l),E(r),t(e,r)}),t(e,n)};d(a,e=>{m(Lt).length>0&&e(l)}),t(e,n)};d(Fr,e=>{F.state?F.usageAvailable===!0&&m(I)===`unused`&&m(L).status===`loading`?e(Lr,1):F.usageAvailable===!0&&m(I)===`unused`&&m(L).status===`failed`?e(Rr,2):m(Lt).length===0&&m(It).length===0?e(zr,3):e(Br,-1):e(Ir)});var Vr=b(Fr,2),Hr=e=>{var n=Qn(),r=s(n);E(n),_(()=>k(r,`Drop to import into ${(m(w)||`Root`)??``}`)),t(e,n)};d(Vr,e=>{m(Qe)&&e(Hr)}),E(gr),E(mr);var Ur=b(mr,2),Wr=e=>{{let t=O(()=>m(B).renamePath===null?void 0:()=>an(m(B)?.renamePath??``)),n=O(()=>m(B).renamePath===null?void 0:()=>sn(m(B)?.renamePath??``));Ve(e,{get x(){return m(B).x},get y(){return m(B).y},onReveal:()=>void _n(m(B)?.renamePath??m(B)?.parent??``),onNewDirectory:()=>Zt(m(B)?.parent??``),get onRenameDirectory(){return m(t)},onImportFile:()=>Xt(m(B)?.parent??``),onImportFigma:()=>p(et,m(B)?.parent??``,!0),get onDeleteDirectory(){return m(n)},onClose:()=>p(B,null)})}};d(Ur,e=>{m(B)&&e(Wr)});var Gr=b(Ur,2),Kr=e=>{{let t=O(()=>mn(m(V).targetAssetId)),n=O(()=>!!F.assetById(m(V).targetAssetId)?.proxy),r=O(()=>m(V).assetIds.length===1?()=>dn(m(V)?.assetIds[0]??``):void 0);gn(e,{get x(){return m(V).x},get y(){return m(V).y},get assetCount(){return m(V).assetIds.length},get copyOptions(){return m(t)},onCopy:e=>void hn(e),get hasProxy(){return m(n)},onReveal:e=>void pn(m(V)?.targetAssetId??``,e),get onRename(){return m(r)},onDelete:()=>fn(m(V)?.assetIds??[]),onClose:()=>p(V,null)})}};d(Gr,e=>{m(V)&&e(Kr)});var qr=b(Gr,2),Jr=e=>{{let n=O(()=>m(q)?`Renaming…`:`Rename`),r=O(()=>!m(bt));Ue(e,{title:`Rename asset`,get confirmLabel(){return m(n)},get confirmDisabled(){return m(r)},get busy(){return m(q)},onConfirm:()=>void xn(),onCancel:vn,children:(e,n)=>{var r=tr(),i=x(r),a=b(s(i),2);ae(a),re(a,e=>p(nt,e),()=>m(nt)),E(i);var o=b(i,2),c=e=>{var n=$n(),r=s(n,!0);E(n),_(()=>k(r,m(vt))),t(e,n)};d(o,e=>{m(vt)&&e(c)});var l=b(o,2),u=e=>{t(e,er())};d(l,e=>{m(yt)&&e(u)});var f=b(l,2),h=e=>{var n=$n(),r=s(n);E(n),_(e=>k(r,`Renaming leaves ${m(xt).length??``} reference(s) pointing to the old ID:
|
|
2
|
+
${e??``}`),[()=>m(xt).join(`, `)]),t(e,n)};d(f,e=>{m(xt).length>0&&e(h)});var g=b(f,2),v=e=>{var n=$n(),r=s(n,!0);E(n),_(()=>k(r,m(J))),t(e,n)};d(g,e=>{m(J)&&e(v)}),_(()=>a.disabled=m(q)),T(a,()=>m(U),e=>p(U,e)),t(e,r)},$$slots:{default:!0}})}};d(qr,e=>{m(H)!==null&&e(Jr)});var Yr=b(qr,2),Xr=e=>{{let n=O(()=>m(W).length===1?`Delete asset`:`Delete ${m(W).length} assets`),r=O(()=>m(q)?`Deleting…`:m(W).length===1?`Delete asset`:`Delete ${m(W).length} assets`);Ue(e,{get title(){return m(n)},get confirmLabel(){return m(r)},danger:!0,get busy(){return m(q)},onConfirm:()=>void Sn(),onCancel:vn,children:(e,n)=>{var r=nr(),i=x(r),a=s(i);E(i);var o=b(i,2),c=e=>{var n=$n(),r=s(n);E(n),_(e=>k(r,`This leaves ${m(Ct).length??``} external reference(s) dangling:
|
|
3
|
+
${e??``}`),[()=>m(Ct).join(`, `)]),t(e,n)};d(o,e=>{m(Ct).length>0&&e(c)});var l=b(o,2),u=e=>{var n=$n(),r=s(n,!0);E(n),_(()=>k(r,m(J))),t(e,n)};d(l,e=>{m(J)&&e(u)}),_(e=>k(a,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>m(W).join(`, `)]),t(e,r)},$$slots:{default:!0}})}};d(Yr,e=>{m(W).length>0&&e(Xr)});var Zr=b(Yr,2),Qr=e=>{Be(e,{get file(){return m($e)},get folder(){return m(tt)},onDone:e=>void ar(e),onCancel:()=>p($e,null)})};d(Zr,e=>{m($e)&&e(Qr)});var $r=b(Zr,2),ei=e=>{Le(e,{get folder(){return m(et)},onDone:e=>void ar(e),onCancel:()=>p(et,null)})};d($r,e=>{m(et)!==null&&e(ei)}),_(()=>{_r=oe(gr,1,`page svelte-1uha8ag`,null,_r,{dragging:m(Qe)}),C(gr,`--preview-card-width: ${m(ft)}px; --preview-card-height: ${m(ft)*.6}px`),Er=oe(Tr,1,`control search svelte-1uha8ag`,null,Er,{"filter-active":m(Dt)!==``}),k(kr,mt),D(Ar,`title`,`Preview size: ${m(ft)}px`),C(Mr,`--preview-size-progress: ${m(ht)}%`),D(Mr,`aria-valuetext`,`${m(ft)}px wide cards`),D(Pr,`accept`,pt)}),o(`contextmenu`,gr,cn),c(`dragleave`,gr,e=>{e.relatedTarget===null&&p(Qe,!1)}),o(`input`,Dr,()=>$({query:m(Je)},!0)),o(`keydown`,Dr,e=>{e.key===`Escape`&&(e.stopPropagation(),m(Je)===``?e.currentTarget.blur():$({query:``},!0))}),T(Dr,()=>m(Je),e=>p(Je,e)),T(Mr,()=>m(ft),e=>p(ft,e)),o(`change`,Pr,ir),t(r,pr),ie()}a([`contextmenu`,`click`,`input`,`keydown`,`change`]);export{ir as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,F as n,I as r,J as i,M as a,O as o,P as s,Q as c,R as l,S as u,T as d,U as f,W as p,X as m,Y as h,Z as g,c as _,ct as v,d as y,et as b,it as x,j as S,k as C,m as w,o as T,ot as E,p as D,rt as O,st as k,u as A,v as ee}from"../chunks/YpiA5Xry.js";import{c as j,t as M}from"../chunks/BfQXIsM7.js";import"../chunks/xihTtKlq.js";import{t as N}from"../chunks/CjB5zQ4_.js";import{$ as P,J as F,Q as I,U as te,X as ne,at as re,d as ie,h as ae,k as oe,l as se,m as ce,o as le,r as ue,rt as de,t as L,tt as fe}from"../chunks/BufZeTod.js";import{t as pe}from"../chunks/BxCbL__p.js";import{c as me,d as he,h as ge,l as R,m as _e,n as ve,o as ye,s as be,t as xe,u as z}from"../chunks/DuXWzgb4.js";import{t as Se}from"../chunks/Bj31DJwy.js";function Ce(e,t,n){return n===t.revision?e??t:e}var we=class{#e=0;#t=null;#n;constructor(e){this.#n=e}bindAsset(e){e!==this.#t&&(this.#t=e,this.#e++,this.#n({status:`idle`}))}cancel(){this.#e++,this.#n({status:`idle`})}async open(e,t,n){this.bindAsset(e);let r=++this.#e;this.#n({status:`opening`,assetId:e,referenceId:t});try{await n(),r===this.#e&&e===this.#t&&this.#n({status:`idle`})}catch(t){r===this.#e&&e===this.#t&&this.#n({status:`failed`,assetId:e,error:t instanceof Error?t.message:String(t)})}}};function Te(e){return e.references.map(t=>({reference:t,roots:e.roots.filter(e=>e.result.status===`resolved`&&e.result.referenceIds.includes(t.id))}))}function Ee(e,t){return[...e].reverse().map((e,n,r)=>n===r.length-1?`${t}.${e}`:e).join(` <- `)}function De(e,t=2){let n=[...new Set(e.roots.flatMap(e=>e.paths.map(t=>Ee(t,e.manifest))))],r=Math.max(0,t),i=e.roots.reduce((e,t)=>e+BigInt(t.additionalPathCount??`0`),0n);return{visible:n.slice(0,r),additionalCount:BigInt(Math.max(0,n.length-r))+i}}function B(e,t=3){let n=e.replaceAll(`\\`,`/`),r=n.split(`/`).filter(Boolean);return r.length<=t?n:`…/${r.slice(-t).join(`/`)}`}var V=a(`<button type="button" class="control usages-trigger svelte-13vzy7a" aria-haspopup="dialog"> <svg viewBox="0 0 12 12" aria-hidden="true"><path d="m3 4.5 3 3 3-3"></path></svg></button>`),Oe=a(`<small class="svelte-13vzy7a"> </small>`),H=a(`<span class="reference-paths svelte-13vzy7a"> </span>`),ke=a(`<button type="button" class="usage-reference svelte-13vzy7a"><span class="reference-location svelte-13vzy7a"><span class="reference-file svelte-13vzy7a"> </span> <span class="reference-position svelte-13vzy7a"> </span></span> <!> <!></button>`),U=a(`<div class="usage-popover svelte-13vzy7a"><div class="popover-heading svelte-13vzy7a"><span class="svelte-13vzy7a">Code usages</span> <span class="svelte-13vzy7a"> </span></div> <div class="usage-list svelte-13vzy7a"></div></div>`),W=a(`<p class="hint svelte-13vzy7a">Not reachable from a generated manifest member.</p>`),G=a(`<p class="hint svelte-13vzy7a">Referenced from project code.</p>`),K=a(`<p class="hint svelte-13vzy7a">No code references found.</p>`),Ae=a(`<p class="hint error svelte-13vzy7a"> </p>`),je=a(`<p class="hint error svelte-13vzy7a" role="alert"> </p>`),Me=a(`<div class="usage-header svelte-13vzy7a"><div class="usage-status svelte-13vzy7a"><span></span> <span> </span></div> <div class="usage-actions svelte-13vzy7a"><!> <button type="button" class="control svelte-13vzy7a"> </button></div></div> <!> <!>`,1);function Ne(n,a){x(a,!0);let s=e(!1),u=b(()=>Te(a.usage)),p=b(()=>[...new Set(a.usage.roots.flatMap(e=>e.result.status===`unknown`?[e.result.reason??`Usage could not be resolved.`]:[]))]);function g(e){c(s,!1),a.onOpen(e)}var _=Me(),S=h(_),w=i(S),T=i(w);let E;var D=m(T,2),k=i(D,!0);v(D),v(w);var A=m(w,2),j=i(A),M=e=>{Se(e,{align:`right`,portal:!0,get label(){return`Code usages for ${a.usage.assetId??``}`},get open(){return l(s)},set open(e){c(s,e,!0)},trigger:(e,n)=>{let o=()=>(n?.()).toggle,s=()=>(n?.()).open;var c=V(),l=i(c),u=m(l);let d;v(c),f(()=>{y(c,`aria-expanded`,s()),C(l,`${a.usage.references.length??``} usage${a.usage.references.length===1?``:`s`} `),d=ee(u,0,`chevron svelte-13vzy7a`,null,d,{open:s()})}),r(`click`,c,function(...e){o()?.apply(this,e)}),t(e,c)},children:(e,n)=>{var s=U(),c=i(s),p=m(i(c),2),h=i(p,!0);v(p),v(c);var _=m(c,2);d(_,21,()=>l(u),e=>e.reference.id,(e,n)=>{let s=b(()=>l(n).reference),c=b(()=>De(l(n)));var u=ke(),d=i(u),p=i(d),h=i(p,!0);v(p);var _=m(p,2),x=i(_);v(_),v(d);var S=m(d,2),w=e=>{var n=Oe(),r=i(n,!0);v(n),f(()=>C(r,l(s).label)),t(e,n)};o(S,e=>{l(s).label&&e(w)});var T=m(S,2),E=e=>{var n=H(),r=i(n);v(n),f(e=>C(r,`${e??``}${l(c).additionalCount>0n?` · +${l(c).additionalCount} more`:``}`),[()=>l(c).visible.join(` · `)]),t(e,n)};o(T,e=>{l(c).visible.length>0&&e(E)}),v(u),f(e=>{u.disabled=a.openState.status===`opening`,y(u,`title`,l(s).file),y(u,`aria-label`,`Open ${l(s).file} at line ${l(s).line}, column ${l(s).column}`),C(h,e),C(x,`${l(s).line??``}:${l(s).column??``}`)},[()=>B(l(s).file)]),r(`click`,u,()=>g(l(s))),t(e,u)}),v(_),v(s),f(()=>C(h,a.usage.references.length)),t(e,s)},$$slots:{trigger:!0,default:!0}})};o(j,e=>{a.usage.references.length>0&&e(M)});var N=m(j,2),P=i(N,!0);v(N),v(A),v(S);var F=m(S,2),I=e=>{t(e,W())},te=e=>{t(e,G())},ne=e=>{t(e,K())},re=e=>{var n=Ae(),r=i(n,!0);v(n),f(()=>C(r,l(p)[0])),t(e,n)};o(F,e=>{a.usage.roots.length===0?e(I):a.usage.status===`used`?e(te,1):a.usage.status===`unused`?e(ne,2):l(p).length>0&&e(re,3)});var ie=m(F,2),ae=e=>{var n=je(),r=i(n);v(n),f(()=>C(r,`${a.openState.error??``} Refresh usage and try again.`)),t(e,n)};o(ie,e=>{a.openState.status===`failed`&&e(ae)}),f(()=>{E=ee(T,1,`status-dot svelte-13vzy7a`,null,E,{used:a.usage.status===`used`,unknown:a.usage.status===`unknown`}),C(k,a.usage.status===`used`?`Used`:a.usage.status===`unused`?`Unused`:`Unknown`),N.disabled=a.refreshing,y(N,`aria-busy`,a.refreshing),C(P,a.usage.status===`unknown`?`Retry`:`Refresh`)}),r(`click`,N,function(...e){a.onRefresh?.apply(this,e)}),t(n,_),O()}n([`click`]);var q=a(`<p class="hint error refresh-error svelte-1xvalv3" role="alert"> </p>`),J=a(`<!> <!>`,1),Pe=a(`<p class="hint svelte-1xvalv3" role="status">Analyzing asset usage…</p>`),Fe=a(`<p class="hint error svelte-1xvalv3" role="alert"> </p> <button class="control">Retry</button>`,1),Ie=a(`<section class="usage-section svelte-1xvalv3"><!> <!></section>`);function Le(n,a){x(a,!0);let u=e(g({status:`idle`})),d=new ge(e=>c(u,e,!0)),_=e(g({status:`idle`})),y=new we(e=>c(_,e,!0)),w=L.usageRefreshRevision,T=b(()=>l(u).status===`resolved`||l(u).status===`refreshing`||l(u).status===`failed`?l(u).value?.assets[0]??null:null);p(()=>{if(y.bindAsset(a.assetId),!a.available||!a.assetId){d.cancel(),y.cancel();return}return d.run(()=>F({assetId:a.assetId})),()=>{d.cancel(),y.cancel()}}),p(()=>{let e=L.usageRefreshRevision;e!==w&&(w=e,a.available&&a.assetId&&E())});function E(){y.cancel(),d.run(()=>F({assetId:a.assetId,forceFresh:!0}),{retainResult:!0})}async function D(e,t){await y.open(a.assetId,e,()=>I(t))}var A=S(),ee=h(A),j=e=>{var n=Ie(),a=i(n);R(a,{children:(e,n)=>{k(),t(e,s(`Usage`))},$$slots:{default:!0}});var c=m(a,2),d=e=>{var n=J(),r=h(n);{let e=b(()=>l(u).status===`refreshing`);Ne(r,{get usage(){return l(T)},get openState(){return l(_)},get refreshing(){return l(e)},onRefresh:E,onOpen:e=>void D(e.id,e.openToken)})}var a=m(r,2),s=e=>{var n=q(),r=i(n,!0);v(n),f(()=>C(r,l(u).error)),t(e,n)};o(a,e=>{l(u).status===`failed`&&e(s)}),t(e,n)},p=e=>{t(e,Pe())},g=e=>{var n=Fe(),a=h(n),o=i(a,!0);v(a);var s=m(a,2);f(()=>C(o,l(u).error)),r(`click`,s,E),t(e,n)};o(c,e=>{l(T)?e(d):l(u).status===`idle`||l(u).status===`loading`?e(p,1):l(u).status===`failed`&&e(g,2)}),v(n),t(e,n)};o(ee,e=>{a.available&&e(j)}),t(n,A),O()}n([`click`]);var Re=a(`<div class="center empty svelte-xy8zsr">Loading…</div>`),ze=a(`<div class="center empty svelte-xy8zsr"> </div>`),Be=a(`<div class="empty svelte-xy8zsr"> </div>`),Ve=a(`<p class="warning svelte-xy8zsr"> </p>`),He=a(`<a class="duplicate-row svelte-xy8zsr"><img alt="" class="svelte-xy8zsr"/> <span class="svelte-xy8zsr"> </span></a>`),Ue=a(`<div class="duplicate-warning svelte-xy8zsr"><strong class="svelte-xy8zsr"> </strong> <!></div>`),We=a(`<p class="hint error svelte-xy8zsr"> </p>`),Ge=a(`<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>`),Ke=a(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),qe=a(`<p class="hint svelte-xy8zsr">No references.</p>`),Je=a(`<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>`),Ye=a(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),Xe=a(`<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>`),Ze=a(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Qe=a(`<!> <!>`,1),$e=a(`<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),et=a(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!> <!>`,1);function Y(n,a){x(a,!0);let g=b(()=>N.params.id??``),F=b(()=>L.assetById(l(g))),I=b(()=>l(F)?l(F).duplicateIds.flatMap(e=>{let t=L.assetById(e);return t?[t]:[]}):[]),ge=b(()=>L.manifestNames),Se=b(()=>l(F)?L.state?.presetNames[l(F).type]??[]:[]),we=b(()=>l(F)?L.state?.presetCapabilities[l(F).type]??{}:{}),Te=b(()=>l(F)?me[l(F).type]??null:null),Ee=b(()=>l(Te)?.panel??null),De=b(()=>l(Te)?.editor??null),B=b(()=>{if(l(F)?.importSource?.importer!==`figma`)return null;let e=l(F).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=e(null),Oe=0,H=b(()=>l(F)?l(V)&&l(V).assetId===l(F).id?l(V).value:E(l(F)).parameters:null);function ke(e){l(F)&&c(V,{assetId:l(F).id,value:e,revision:++Oe},!0)}let U=null,W=e(null),G=e(null),K=0,Ae=e(null),je=0,Me=e(null),Ne=0,q=e(null),J=e(null),Pe=e(``),Fe=e(void 0),Ie=e(void 0),Y=e(null),tt=e(null),X=e(null),Z=e(null),nt=e(null),Q=e(``),rt=e(2),it=b(()=>l(B)!==null&&(l(Q).trim()!==l(B).url||l(rt)!==l(B).scale));p(()=>{let e=l(B),t=l(F)&&e?`${l(F).id}|${e.fileKey}|${e.nodeId}|${e.scale}`:null;t!==l(nt)&&(c(nt,t,!0),c(Q,e?.url??``,!0),c(rt,e?.scale??2,!0),c(Z,null))});let at=ce().join(`,`),ot=b(()=>l(F)?ae(l(F).type).join(`,`):``),st=e(null),$=b(()=>l(F)&&l(st)?.assetId===l(F).id?l(st).value:l(F)?.id??``),ct=b(()=>l(F)&&l($)!==l(F).id?oe(l($))??(L.assetById(l($))?`An asset with this ID already exists.`:null):null);async function lt(e){if(!l(F))return;let t=l(F).id,n=L.state?ue(L.state,t,e):[`asset:${t}`];ke(e);let r=l(V),i=L.mutate(()=>P(t,{parameters:e}),ie(t,{parameters:e}),{dependencies:n});l(V)?.revision===r.revision&&c(V,null);try{await i}catch{c(V,Ce(l(V),r,Oe),!0)}}async function ut(e){if(!l(F))return;let t=l(F).id,n=l(F).manifests.includes(e)?l(F).manifests.filter(t=>t!==e):[...l(F).manifests,e];try{await L.mutate(()=>P(t,{manifests:n}),ie(t,{manifests:n}),{dependencies:[`asset:${t}`,...[...new Set([...n,e])].map(e=>`manifest:${e}`)]})}catch{}}async function dt(){if(!l(F)||l($)===l(F).id||l(ct))return;let e=l(F).id,t=l($),n=L.mutate(()=>P(e,{renameTo:t}),ie(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});c(st,null);let r=l(g)===e?M(j(`/asset/[id]`,{id:t}),{replaceState:!0}):Promise.resolve();try{await Promise.all([n,r])}catch{l(g)===t&&L.assetById(e)&&await M(j(`/asset/[id]`,{id:e}),{replaceState:!0})}}async function ft(){if(!l(F))return;let e=l(F).id,t=l(F).folder;if(!confirm(`Delete "${e}"? The raw file and its proxies are removed.`))return;let n=L.mutate(()=>te(e),le([e]),{dependencies:[`asset:${e}`],invalidatesOnFailure:[`asset:${e}`]}),r=l(g)===e?z.begin():null;U=null;let i=r===null?Promise.resolve():M(mt(t));try{await Promise.all([n,i])}catch{r!==null&&z.isCurrent(r)&&N.url.pathname===j(`/`)&&L.assetById(e)&&await M(j(`/asset/[id]`,{id:e}))}}async function pt(e,t){let n=z.begin();U=t?{assetId:t,intent:n}:null,await M(mt(e))}function mt(e){let t=new URL(j(`/`),N.url);return t.search=``,_e(t,{...he,folder:e})}async function ht(e){let t=U;t?.assetId!==e||!z.isCurrent(t.intent)||N.url.pathname!==j(`/`)||!L.assetById(e)||(U=null,await M(j(`/asset/[id]`,{id:e})))}async function gt(e){await pt(e,l(g))}async function _t(e,t){let n=e.filter(e=>L.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=L.assetById(e)?.folder;return t===void 0?[]:[t]})])];try{await L.mutate(()=>ne(n,t),se(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]})}catch{}}function vt(e){K+=1,c(G,{id:K,parent:e},!0)}function yt(e){je+=1,c(Ae,{id:je,path:e},!0)}function bt(e){Ne+=1,c(Me,{id:Ne,path:e},!0)}function xt(e){c(Pe,e,!0),l(Fe)?.click()}function St(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&c(q,n,!0)}async function Ct(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!l(F))return;let r=l(F).id;c(Y,r,!0),c(tt,null);try{await L.mutateFromServer(()=>de(r,n),{dependencies:[`asset:${r}`]})}catch(e){c(tt,{assetId:r,message:e instanceof Error?e.message:String(e)},!0)}finally{l(Y)===r&&c(Y,null)}}function wt(){l(F)&&(l(F).importSource&&!confirm(`Replace file and disconnect Figma source? Future re-imports will no longer be available.`)||l(Ie)?.click())}async function Tt(){if(!l(F)||!l(B))return;let e=l(F).id,t=l(Q).trim();if(t.length===0){c(Z,{assetId:e,message:`Enter a Figma selection link.`},!0);return}c(X,e,!0),c(Z,null);let n=l(it)?{url:t,scale:l(rt)}:void 0;try{await L.mutateFromServer(()=>fe(e,n),{dependencies:[`asset:${e}`]}),c(nt,null)}catch(t){c(Z,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{l(X)===e&&c(X,null)}}async function Et(e){c(q,null),c(J,null),await M(j(`/asset/[id]`,{id:e}))}async function Dt(e){try{await re(e),L.error=null}catch(e){L.error=e instanceof Error?e.message:String(e)}}var Ot=et(),kt=h(Ot),At=i(kt);{let e=b(()=>l(F)?.folder??null);ve(At,{get selectedFolder(){return l(e)},get activeAsset(){return l(F)},get createRequest(){return l(G)},get renameRequest(){return l(Ae)},get deleteRequest(){return l(Me)},onSelect:e=>void pt(e),onMoveAssets:(e,t)=>void _t(e,t),onActiveAssetDeleted:e=>void gt(e),onActiveAssetDeleteFailed:e=>void ht(e),onContextMenu:(e,t,n,r)=>{c(W,{x:e,y:t,parent:n,renamePath:r},!0)}})}var jt=m(At,2),Mt=e=>{t(e,Re())},Nt=e=>{var n=ze(),r=i(n);v(n),f(()=>C(r,`No asset with id "${l(g)??``}".`)),t(e,n)},Pt=e=>{var n=$e(),a=h(n),p=i(a),g=e=>{var n=S();u(h(n),()=>l(De),(e,t)=>{t(e,{get asset(){return l(F)},get parameters(){return l(H)},onParametersChange:ke,onParametersCommit:e=>void lt(e)})}),t(e,n)},x=e=>{var n=Be(),r=i(n);v(n),f(()=>C(r,`No editor registered for asset type "${l(F).type??``}".`)),t(e,n)};o(p,e=>{l(De)&&l(H)!==null?e(g):e(x,-1)}),v(a);var T=m(a,2),E=i(T),O=i(E),M=i(O,!0);v(O);var N=m(O,2),P=i(N),te=m(P),ne=i(te,!0);v(te),v(N);var re=m(N,2);d(re,16,()=>l(F).warnings,e=>e,(e,n)=>{var r=Ve(),a=i(r);v(r),f(()=>C(a,`⚠ ${n??``}`)),t(e,r)});var ie=m(re,2),ae=e=>{var n=Ue(),r=i(n),a=i(r);v(r),d(m(r,2),17,()=>l(I),e=>e.id,(e,n)=>{var r=He(),a=i(r),o=m(a,2),s=i(o,!0);v(o),v(r),f(e=>{y(r,`href`,e),y(a,`src`,l(n).proxy?.url??l(n).rawUrl),C(s,l(n).id)},[()=>j(`/asset/[id]`,{id:l(n).id})]),t(e,r)}),v(n),f(()=>C(a,`Potential duplicate${l(I).length===1?``:`s`}`)),t(e,n)};o(ie,e=>{l(I).length>0&&e(ae)}),v(E);var oe=m(E,2),se=e=>{var n=S();u(h(n),()=>l(Ee),(e,t)=>{t(e,{get asset(){return l(F)},get parameters(){return l(H)},onParametersChange:e=>ke(e),onParametersCommit:e=>void lt(e),get presetNames(){return l(Se)},get presetCapabilities(){return l(we)}})}),t(e,n)};o(oe,e=>{l(Ee)&&l(H)!==null&&e(se)});var ce=m(oe,2),le=e=>{var n=Ge(),a=i(n);R(a,{children:(e,n)=>{k(),t(e,s(`Source`))},$$slots:{default:!0}});var u=m(a,2),d=i(u);v(u);var p=m(u,2),h=m(i(p),2);A(h),v(p);var g=m(p,2),b=m(i(g),2),x=i(b);x.value=x.__value=1;var S=m(x);S.value=S.__value=2;var T=m(S);T.value=T.__value=3;var E=m(T);E.value=E.__value=4,v(b),v(g);var D=m(g,2),O=i(D),j=m(O,2);let M;var N=i(j,!0);v(j),v(D);var P=m(D,2),I=e=>{var n=We(),r=i(n,!0);v(n),f(()=>C(r,l(Z).message)),t(e,n)};o(P,e=>{l(Z)?.assetId===l(F).id&&e(I)}),v(n),f(e=>{C(d,`Figma · node ${l(B).nodeId??``}`),h.disabled=l(X)===l(F).id,b.disabled=l(X)===l(F).id,y(O,`href`,l(B).url),M=ee(j,1,`control svelte-xy8zsr`,null,M,{primary:l(it)}),j.disabled=e,C(N,l(X)===l(F).id?l(it)?`Reimporting…`:`Refreshing…`:l(it)?`Reimport from Figma`:`Refresh`)},[()=>l(X)===l(F).id||l(Q).trim().length===0]),_(h,()=>l(Q),e=>c(Q,e)),w(b,()=>l(rt),e=>c(rt,e)),r(`click`,j,()=>void Tt()),t(e,n)};o(ce,e=>{l(B)&&e(le)});var ue=m(ce,2),de=i(ue);R(de,{children:(e,n)=>{k(),t(e,s(`Manifests`))},$$slots:{default:!0}});var fe=m(de,2),me=e=>{t(e,Ke())},he=e=>{pe(e,{get manifests(){return l(ge)},get selected(){return l(F).manifests},get passive(){return l(F).passiveManifests},onToggle:e=>void ut(e)})};o(fe,e=>{l(ge).length===0?e(me):e(he,-1)}),v(ue);var _e=m(ue,2),ve=i(_e);R(ve,{children:(e,n)=>{k(),t(e,s(`References`))},$$slots:{default:!0}});var ye=m(ve,2),be=e=>{t(e,qe())},xe=e=>{var n=Qe(),r=h(n),a=e=>{var n=Ye();d(m(h(n),2),17,()=>l(F).references.outgoing,e=>`${e.field}→${e.assetId}`,(e,n)=>{var r=Je(),a=i(r),o=i(a,!0);v(a);var s=m(a,4),c=i(s,!0);v(s),v(r),f(e=>{y(r,`href`,e),C(o,l(n).field),C(c,l(n).assetId)},[()=>j(`/asset/[id]`,{id:l(n).assetId})]),t(e,r)}),t(e,n)};o(r,e=>{l(F).references.outgoing.length>0&&e(a)});var s=m(r,2),c=e=>{var n=Ze();d(m(h(n),2),17,()=>l(F).references.incoming,e=>`${e.assetId}→${e.field}`,(e,n)=>{var r=Xe(),a=i(r),o=i(a,!0);v(a);var s=m(a,4),c=i(s,!0);v(s),v(r),f(e=>{y(r,`href`,e),C(o,l(n).assetId),C(c,l(n).field)},[()=>j(`/asset/[id]`,{id:l(n).assetId})]),t(e,r)}),t(e,n)};o(s,e=>{l(F).references.incoming.length>0&&e(c)}),t(e,n)};o(ye,e=>{l(F).references.outgoing.length===0&&l(F).references.incoming.length===0?e(be):e(xe,-1)}),v(_e);var z=m(_e,2);{let e=b(()=>L.usageAvailable===!0);Le(z,{get available(){return l(e)},get assetId(){return l(F).id}})}var Ce=m(z,2),Te=i(Ce);R(Te,{children:(e,n)=>{k(),t(e,s(`Asset`))},$$slots:{default:!0}});var V=m(Te,2),Oe=i(V,!0);v(V);var U=m(V,2),W=e=>{var n=We(),r=i(n,!0);v(n),f(()=>C(r,l(tt).message)),t(e,n)};o(U,e=>{l(tt)?.assetId===l(F).id&&e(W)});var G=m(U,2),K=i(G);A(K);var Ae=m(K,2);v(G);var je=m(G,2),Me=e=>{var n=We(),r=i(n,!0);v(n),f(()=>C(r,l(ct))),t(e,n)};o(je,e=>{l(ct)&&e(Me)});var Ne=m(je,2);v(Ce),v(T),f(()=>{C(M,l(F).id),C(P,`${l(F).type??``} · `),C(ne,l(F).raw),V.disabled=l(Y)===l(F).id,C(Oe,l(Y)===l(F).id?`Replacing…`:`Replace`),D(K,l($)),Ae.disabled=l($)===l(F).id||l(ct)!==null}),r(`click`,V,wt),r(`input`,K,e=>c(st,{assetId:l(F).id,value:e.currentTarget.value},!0)),r(`click`,Ae,()=>void dt()),r(`click`,Ne,()=>void ft()),t(e,n)};o(jt,e=>{L.loaded?l(F)?e(Pt,-1):e(Nt,1):e(Mt)}),v(kt);var Ft=m(kt,2);T(Ft,e=>c(Fe,e),()=>l(Fe));var It=m(Ft,2);T(It,e=>c(Ie,e),()=>l(Ie));var Lt=m(It,2),Rt=e=>{{let t=b(()=>l(W).renamePath===null?void 0:()=>yt(l(W)?.renamePath??``)),n=b(()=>l(W).renamePath===null?void 0:()=>bt(l(W)?.renamePath??``));xe(e,{get x(){return l(W).x},get y(){return l(W).y},onReveal:()=>void Dt(l(W)?.renamePath??l(W)?.parent??``),onNewDirectory:()=>vt(l(W)?.parent??``),get onRenameDirectory(){return l(t)},onImportFile:()=>xt(l(W)?.parent??``),onImportFigma:()=>c(J,l(W)?.parent??``,!0),get onDeleteDirectory(){return l(n)},onClose:()=>c(W,null)})}};o(Lt,e=>{l(W)&&e(Rt)});var zt=m(Lt,2),Bt=e=>{be(e,{get file(){return l(q)},get folder(){return l(Pe)},onDone:e=>void Et(e),onCancel:()=>c(q,null)})};o(zt,e=>{l(q)&&e(Bt)});var Vt=m(zt,2),Ht=e=>{ye(e,{get folder(){return l(J)},onDone:e=>void Et(e),onCancel:()=>c(J,null)})};o(Vt,e=>{l(J)!==null&&e(Ht)}),f(()=>{y(Ft,`accept`,at),y(It,`accept`,l(ot))}),r(`change`,Ft,St),r(`change`,It,e=>void Ct(e)),t(n,Ot),O()}n([`click`,`input`,`change`]);export{Y as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$ as e,A as t,F as n,I as r,J as i,M as a,O as o,Q as s,R as c,T as l,U as u,X as d,Y as f,_ as p,c as m,ct as h,d as g,et as _,it as v,k as y,rt as b,st as x,u as S,v as C}from"../chunks/YpiA5Xry.js";import{c as w}from"../chunks/BfQXIsM7.js";import"../chunks/xihTtKlq.js";import{A as T,H as E,K as D,a as ee,c as te,et as O,f as k,t as A}from"../chunks/BufZeTod.js";import{i as j,n as ne,t as M}from"../chunks/Bj31DJwy.js";var N=[{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`}],P=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),F=a(`<button type="button" title="Emoji"> </button>`),re=a(`<button type="button"> </button>`),I=a(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),L=a(`<button type="button" title="Color"></button>`),R=a(`<button type="button"></button>`),z=a(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),B=a(`<div class="controls svelte-58t64l"><!> <!></div>`);function ie(n,a){v(a,!0);let o=_(()=>A.manifestAppearance(a.name)),f=_(()=>c(o).color??null),m=_(()=>c(o).emoji??null),x=e(!1),S=e(!1);async function w(e){let t=a.name;s(x,!1);try{await A.mutate(()=>O(t,{color:e}),k(t,{color:e}),{dependencies:[`manifest:${t}`]})}catch{}}async function T(e){let t=a.name;s(S,!1);try{await A.mutate(()=>O(t,{emoji:e}),k(t,{emoji:e}),{dependencies:[`manifest:${t}`]})}catch{}}var E=B(),D=i(E);M(D,{get label(){return`Pick an emoji for ${a.name??``}`},get open(){return c(S)},set open(e){s(S,e,!0)},trigger:(e,n)=>{let o=()=>(n?.()).toggle,s=()=>(n?.()).open;var l=F();let d;var f=i(l,!0);h(l),u(()=>{d=C(l,1,`emoji-trigger svelte-58t64l`,null,d,{empty:!c(m),active:s()}),g(l,`aria-label`,`Emoji for ${a.name??``}`),y(f,c(m)??`☺`)}),r(`click`,l,function(...e){o()?.apply(this,e)}),t(e,l)},children:(e,n)=>{var a=I(),o=i(a);let s;l(d(o,2),16,()=>P,e=>e,(e,n)=>{var a=re();let o;var s=i(a,!0);h(a),u(()=>{o=C(a,1,`emoji svelte-58t64l`,null,o,{selected:c(m)===n}),g(a,`title`,n),y(s,n)}),r(`click`,a,()=>void T(n)),t(e,a)}),h(a),u(()=>s=C(o,1,`emoji none svelte-58t64l`,null,s,{selected:c(m)===null})),r(`click`,o,()=>void T(null)),t(e,a)},$$slots:{trigger:!0,default:!0}}),M(d(D,2),{get label(){return`Pick a color for ${a.name??``}`},get open(){return c(x)},set open(e){s(x,e,!0)},trigger:(e,n)=>{let i=()=>(n?.()).toggle,o=()=>(n?.()).open;var s=L();let l;u(()=>{l=C(s,1,`swatch-trigger svelte-58t64l`,null,l,{empty:!c(f),active:o()}),p(s,`--swatch: ${c(f)??`transparent`??``}`),g(s,`aria-label`,`Color for ${a.name??``}`)}),r(`click`,s,function(...e){i()?.apply(this,e)}),t(e,s)},children:(e,n)=>{var a=z(),o=i(a);let s;l(d(o,2),17,()=>N,e=>e.value,(e,n)=>{var i=R();let a;u(()=>{a=C(i,1,`swatch svelte-58t64l`,null,a,{selected:c(f)===c(n).value}),p(i,`background: ${c(n).value??``}`),g(i,`title`,c(n).name),g(i,`aria-label`,c(n).name)}),r(`click`,i,()=>void w(c(n).value)),t(e,i)}),h(a),u(()=>s=C(o,1,`swatch none svelte-58t64l`,null,s,{selected:c(f)===null})),r(`click`,o,()=>void w(null)),t(e,a)},$$slots:{trigger:!0,default:!0}}),h(E),t(n,E),b()}n([`click`]);var ae=a(`<span class="hint svelte-1k9wgg5"> </span>`),oe=a(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),se=a(`<span class="asset-type svelte-1k9wgg5"> </span>`),ce=a(`<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=a(`<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=a(`<ul class="svelte-1k9wgg5"></ul>`),de=a(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),fe=a(`<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=a(`<div class="list svelte-1k9wgg5"></div>`),V=a(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),me=a(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),he=a(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),ge=a(`<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=a(`<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 H(n,a){v(a,!0);let C=e(``),M=_(()=>A.state?.assets??[]),N=_(()=>A.manifestNames);function P(e){return c(M).filter(t=>t.manifests.includes(e))}function F(e){return A.state?.manifestMemberships[e]?.passiveMembers??[]}function re(e,t){return F(e).filter(e=>e.via.includes(t))}function I(e){return A.state?.manifestDeliveredBytes[e]??0}let L=_(()=>c(C)?T(c(C)):null),R=_(()=>c(C)!==``&&!c(L)&&!c(N).includes(c(C)));async function z(){if(!c(R))return;let e=c(C),t=A.mutate(()=>E(e),ee(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});s(C,``);try{await t}catch{c(C)===``&&!Object.hasOwn(A.state?.library.manifests??{},e)&&s(C,e,!0)}}let B=e(null),H=e(null),U=e(``),W=e(!1),G=e(null),K=0;function ve(e){K+=1,s(G,null),s(B,e,!0)}function ye(e){K+=1,s(G,null),s(U,e,!0),s(H,e,!0)}function q(){K+=1,s(B,null),s(H,null),s(G,null)}let J=_(()=>c(H)!==null&&c(U)!==c(H)?T(c(U)):null),be=_(()=>c(H)!==null&&c(U)!==c(H)&&c(N).includes(c(U))),xe=_(()=>c(H)!==null&&c(U)!==c(H)&&!c(J)&&!c(be));async function Se(){if(c(B)===null)return;let e=c(B);s(W,!0),s(G,null);let t=A.mutate(()=>D(e),te(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});q();let n=K;s(W,!1);try{await t}catch(t){K===n&&Object.hasOwn(A.state?.library.manifests??{},e)&&(s(B,e,!0),s(G,t instanceof Error?t.message:String(t),!0))}finally{s(W,!1)}}async function Ce(){if(c(H)===null||!c(xe))return;let e=c(H),t=c(U);s(W,!0),s(G,null);let n=A.mutate(()=>O(e,{renameTo:t}),k(e,{renameTo:t}),{dependencies:[`manifest:${e}`,`manifest:${t}`],invalidatesOnFailure:[`manifest:${e}`,`manifest:${t}`]});q();let r=K;s(W,!1);try{await n}catch(n){K===r&&Object.hasOwn(A.state?.library.manifests??{},e)&&(s(H,e,!0),s(U,t,!0),s(G,n instanceof Error?n.message:String(n),!0))}finally{s(W,!1)}}var we=_e(),Y=f(we),X=i(Y),Z=i(X);S(Z);var Q=d(Z,2),Te=d(Q,2),Ee=e=>{var n=ae(),r=i(n,!0);h(n),u(()=>y(r,c(L))),t(e,n)};o(Te,e=>{c(L)&&e(Ee)}),h(X);var De=d(X,2),Oe=e=>{t(e,oe())},ke=e=>{var n=pe();l(n,20,()=>c(N),e=>e,(e,n)=>{var a=fe(),s=i(a),m=i(s);ie(m,{get name(){return n}});var v=d(m,2),b=i(v,!0);h(v);var x=d(v,2),S=i(x,!0);h(x);var C=d(x,2),T=i(C);h(C);var E=d(C,2),D=d(E,2);h(s);var ee=d(s,2),te=e=>{var r=ue();l(r,21,()=>P(n),e=>e.id,(e,r)=>{var a=le(),s=f(a),p=i(s),m=i(p),v=i(m,!0);h(m);var b=d(m,2),x=i(b,!0);h(b);var S=d(b,2),C=i(S,!0);h(S),h(p),h(s),l(d(s,2),17,()=>re(n,c(r).id),e=>e.assetId,(e,n)=>{let a=_(()=>A.assetById(c(n).assetId));var s=ce(),l=i(s),f=i(l),p=i(f,!0);h(f);var m=d(f,2),v=e=>{var n=se(),r=i(n,!0);h(n),u(()=>y(r,c(a).type)),t(e,n)};o(m,e=>{c(a)&&e(v)});var b=d(m,2),x=i(b);h(b);var S=d(b,2),C=i(S,!0);h(S),h(l),h(s),u((e,t)=>{g(l,`href`,e),y(p,c(n).assetId),y(x,`via ${c(r).id??``}`),y(C,t)},[()=>w(`/asset/[id]`,{id:c(n).assetId}),()=>c(a)?.proxy?j(c(a).proxy.fileSize):`—`]),t(e,s)}),u((e,t)=>{g(p,`href`,e),y(v,c(r).id),y(x,c(r).type),y(C,t)},[()=>w(`/asset/[id]`,{id:c(r).id}),()=>c(r).proxy?j(c(r).proxy.fileSize):`—`]),t(e,a)}),h(r),t(e,r)},O=_(()=>P(n).length>0),k=e=>{t(e,de())};o(ee,e=>{c(O)?e(te):e(k,-1)}),h(a),u((e,t,r,i)=>{p(a,`--manifest-color: ${e??``}`),y(b,n),y(S,t),y(T,`${r??``} asset(s)${i??``}`)},[()=>A.manifestAppearance(n).color??`var(--border-soft)`,()=>j(I(n)),()=>P(n).length,()=>F(n).length>0?` + ${F(n).length} passive`:``]),r(`click`,E,()=>ye(n)),r(`click`,D,()=>ve(n)),t(e,a)}),h(n),t(e,n)};o(De,e=>{c(N).length===0?e(Oe):e(ke,-1)}),h(Y);var $=d(Y,2),Ae=e=>{let n=_(()=>P(c(B)).length);{let r=_(()=>c(W)?`Deleting…`:`Delete`);ne(e,{title:`Delete manifest`,get confirmLabel(){return c(r)},danger:!0,get busy(){return c(W)},onConfirm:()=>void Se(),onCancel:q,children:(e,r)=>{var a=me(),s=f(a),l=d(i(s)),p=i(l,!0);h(l);var m=d(l);h(s);var g=d(s,2),_=e=>{var n=V(),r=i(n,!0);h(n),u(()=>y(r,c(G))),t(e,n)};o(g,e=>{c(G)&&e(_)}),u(()=>{y(p,c(B)),y(m,`? Its generated module is removed. Assets are
|
|
2
|
+
not deleted${c(n)>0?`, but ${c(n)} asset(s) lose this membership and may become unreachable`:``}.`)}),t(e,a)},$$slots:{default:!0}})}};o($,e=>{c(B)!==null&&e(Ae)});var je=d($,2),Me=e=>{{let n=_(()=>c(W)?`Renaming…`:`Rename`),r=_(()=>!c(xe));ne(e,{title:`Rename manifest`,get confirmLabel(){return c(n)},get confirmDisabled(){return c(r)},get busy(){return c(W)},onConfirm:()=>void Ce(),onCancel:q,children:(e,n)=>{var r=ge(),a=f(r),l=d(i(a),2);S(l),h(a);var p=d(a,2),g=e=>{var n=V(),r=i(n,!0);h(n),u(()=>y(r,c(J))),t(e,n)},_=e=>{t(e,he())};o(p,e=>{c(J)?e(g):c(be)&&e(_,1)});var v=d(p,2),b=d(i(v)),C=i(b,!0);h(b),x(),h(v);var w=d(v,2),T=e=>{var n=V(),r=i(n,!0);h(n),u(()=>y(r,c(G))),t(e,n)};o(w,e=>{c(G)&&e(T)}),u(()=>{l.disabled=c(W),y(C,c(H))}),m(l,()=>c(U),e=>s(U,e)),t(e,r)},$$slots:{default:!0}})}};o(je,e=>{c(H)!==null&&e(Me)}),u(()=>Q.disabled=!c(R)),r(`keydown`,Z,e=>{e.key===`Enter`&&z()}),m(Z,()=>c(C),e=>s(C,e)),r(`click`,Q,()=>void z()),t(n,we),b()}n([`keydown`,`click`]);export{H as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1784787410312"}
|
|
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-ChRrsqKi.js';
|
|
6
|
+
import './server/chunks/index.js-1EfZPKuZ.js';
|
|
7
|
+
import './server/chunks/manifest.js-DR0qLyIe.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-BXL1A-vX.js';
|
|
16
|
+
import './server/chunks/chunks/internal.js-DUquB_BJ.js';
|
|
17
|
+
import './server/chunks/chunks/utils.js-xC62cOm2.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-CUFgHhPL.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-ChRrsqKi.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-BXL1A-vX.js';
|
|
15
|
+
import './server/chunks/chunks/internal.js-DUquB_BJ.js';
|
|
16
|
+
import './server/chunks/chunks/utils.js-xC62cOm2.js';
|
|
17
|
+
import './server/chunks/index.js-1EfZPKuZ.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-CUFgHhPL.js';
|
|
20
20
|
import './server/chunks/chunks/routing.js-y-tryuip.js';
|
|
21
|
-
import './server/chunks/manifest.js-
|
|
21
|
+
import './server/chunks/manifest.js-DR0qLyIe.js';
|
|
22
22
|
import 'node:url';
|
|
23
23
|
|
|
24
24
|
const path = env('SOCKET_PATH', false);
|
|
@@ -1075,6 +1075,102 @@ function pathsFromRoot(root, target, referencesByAsset, countMemo = /* @__PURE__
|
|
|
1075
1075
|
function usageSnapshotRevision(parts) {
|
|
1076
1076
|
return createHash("sha256").update(parts.join("\0")).digest("hex");
|
|
1077
1077
|
}
|
|
1078
|
+
async function imageFingerprint(filePath, hashSize) {
|
|
1079
|
+
const width = hashSize + 1;
|
|
1080
|
+
const pixels = await sharp(filePath).rotate().resize({
|
|
1081
|
+
width,
|
|
1082
|
+
height: hashSize,
|
|
1083
|
+
fit: "fill"
|
|
1084
|
+
}).ensureAlpha().toColourspace("srgb").raw().toBuffer();
|
|
1085
|
+
const hash = new Uint8Array(Math.ceil(hashSize * hashSize / 8));
|
|
1086
|
+
const alphaHash = new Uint8Array(hash.length);
|
|
1087
|
+
const colorTotals = [
|
|
1088
|
+
0,
|
|
1089
|
+
0,
|
|
1090
|
+
0
|
|
1091
|
+
];
|
|
1092
|
+
let alphaTotal = 0;
|
|
1093
|
+
let bit = 0;
|
|
1094
|
+
for (let row = 0; row < hashSize; row++) for (let column = 0; column < hashSize; column++) {
|
|
1095
|
+
const leftOffset = (row * width + column) * 4;
|
|
1096
|
+
const rightOffset = leftOffset + 4;
|
|
1097
|
+
const leftAlpha = pixels[leftOffset + 3] / 255;
|
|
1098
|
+
const rightAlpha = pixels[rightOffset + 3] / 255;
|
|
1099
|
+
if (visibleLuminance(pixels, leftOffset, leftAlpha) < visibleLuminance(pixels, rightOffset, rightAlpha)) hash[bit >> 3] |= 1 << 7 - (bit & 7);
|
|
1100
|
+
if (leftAlpha < rightAlpha) alphaHash[bit >> 3] |= 1 << 7 - (bit & 7);
|
|
1101
|
+
for (let channel = 0; channel < 3; channel++) colorTotals[channel] += pixels[leftOffset + channel] * leftAlpha;
|
|
1102
|
+
alphaTotal += leftAlpha;
|
|
1103
|
+
bit += 1;
|
|
1104
|
+
}
|
|
1105
|
+
const pixelCount = hashSize * hashSize;
|
|
1106
|
+
return {
|
|
1107
|
+
hash,
|
|
1108
|
+
alphaHash,
|
|
1109
|
+
meanColor: colorTotals.map((total) => alphaTotal === 0 ? 0 : total / alphaTotal),
|
|
1110
|
+
meanAlpha: alphaTotal / pixelCount
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
function visibleLuminance(pixels, offset, alpha) {
|
|
1114
|
+
return (pixels[offset] * .2126 + pixels[offset + 1] * .7152 + pixels[offset + 2] * .0722) * alpha + 127 * (1 - alpha);
|
|
1115
|
+
}
|
|
1116
|
+
function colorDistance(left, right) {
|
|
1117
|
+
return Math.hypot(left[0] - right[0], left[1] - right[1], left[2] - right[2]);
|
|
1118
|
+
}
|
|
1119
|
+
/** Count differing bits between two equally sized perceptual hashes. */
|
|
1120
|
+
function hammingDistance(left, right) {
|
|
1121
|
+
if (left.length !== right.length) throw new Error("Image hashes must have the same length.");
|
|
1122
|
+
let distance = 0;
|
|
1123
|
+
for (let index = 0; index < left.length; index++) {
|
|
1124
|
+
let value = left[index] ^ right[index];
|
|
1125
|
+
while (value !== 0) {
|
|
1126
|
+
value &= value - 1;
|
|
1127
|
+
distance += 1;
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
return distance;
|
|
1131
|
+
}
|
|
1132
|
+
/**
|
|
1133
|
+
* Stateful so the editor can reuse fingerprints by content hash between state
|
|
1134
|
+
* snapshots. Unreadable raws are omitted: duplicate detection is advisory and
|
|
1135
|
+
* must not hide the editor or replace the pipeline's canonical diagnostics.
|
|
1136
|
+
*/
|
|
1137
|
+
var ImageDuplicateDetector = class {
|
|
1138
|
+
#fingerprints = /* @__PURE__ */ new Map();
|
|
1139
|
+
async find(library, rawDir) {
|
|
1140
|
+
const images = Object.entries(library.assets).filter(([, record]) => record.type === "image").sort(([left], [right]) => compareCodeUnits(left, right));
|
|
1141
|
+
const activeHashes = new Set(images.map(([, record]) => record.rawHash));
|
|
1142
|
+
for (const hash of this.#fingerprints.keys()) if (!activeHashes.has(hash)) this.#fingerprints.delete(hash);
|
|
1143
|
+
const readable = [];
|
|
1144
|
+
for (const [id, record] of images) {
|
|
1145
|
+
let fingerprint = this.#fingerprints.get(record.rawHash);
|
|
1146
|
+
if (!fingerprint) {
|
|
1147
|
+
fingerprint = imageFingerprint(join(rawDir, record.raw), 8);
|
|
1148
|
+
this.#fingerprints.set(record.rawHash, fingerprint);
|
|
1149
|
+
}
|
|
1150
|
+
try {
|
|
1151
|
+
readable.push({
|
|
1152
|
+
id,
|
|
1153
|
+
fingerprint: await fingerprint
|
|
1154
|
+
});
|
|
1155
|
+
} catch {
|
|
1156
|
+
this.#fingerprints.delete(record.rawHash);
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
const duplicates = /* @__PURE__ */ new Map();
|
|
1160
|
+
for (let leftIndex = 0; leftIndex < readable.length; leftIndex++) for (let rightIndex = leftIndex + 1; rightIndex < readable.length; rightIndex++) {
|
|
1161
|
+
const left = readable[leftIndex];
|
|
1162
|
+
const right = readable[rightIndex];
|
|
1163
|
+
if (hammingDistance(left.fingerprint.hash, right.fingerprint.hash) > 5 || hammingDistance(left.fingerprint.alphaHash, right.fingerprint.alphaHash) > 5 || Math.abs(left.fingerprint.meanAlpha - right.fingerprint.meanAlpha) > .125 || colorDistance(left.fingerprint.meanColor, right.fingerprint.meanColor) > 32) continue;
|
|
1164
|
+
const leftDuplicates = duplicates.get(left.id) ?? [];
|
|
1165
|
+
leftDuplicates.push(right.id);
|
|
1166
|
+
duplicates.set(left.id, leftDuplicates);
|
|
1167
|
+
const rightDuplicates = duplicates.get(right.id) ?? [];
|
|
1168
|
+
rightDuplicates.push(left.id);
|
|
1169
|
+
duplicates.set(right.id, rightDuplicates);
|
|
1170
|
+
}
|
|
1171
|
+
return duplicates;
|
|
1172
|
+
}
|
|
1173
|
+
};
|
|
1078
1174
|
//#endregion
|
|
1079
1175
|
//#region src/lib/server/operations.ts
|
|
1080
1176
|
/**
|
|
@@ -1108,6 +1204,7 @@ var FundusOperations = class {
|
|
|
1108
1204
|
#store;
|
|
1109
1205
|
#importers;
|
|
1110
1206
|
#usageAnalyzer;
|
|
1207
|
+
#duplicateDetector = new ImageDuplicateDetector();
|
|
1111
1208
|
#operationQueue = Promise.resolve();
|
|
1112
1209
|
#pipelineQueue = Promise.resolve();
|
|
1113
1210
|
constructor(config, registry = serverPluginsByType, importerRegistry = serverImporters) {
|
|
@@ -1695,6 +1792,7 @@ var FundusOperations = class {
|
|
|
1695
1792
|
async #buildState(library, issues, classification) {
|
|
1696
1793
|
const [gitBranch, changedGitAssets] = await Promise.all([currentGitBranch(this.#config.projectRoot), gitAssetChanges(this.#config.projectRoot, this.#config.library, library)]);
|
|
1697
1794
|
const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
|
|
1795
|
+
const duplicatesByAsset = await this.#duplicateDetector.find(library, this.#config.rawDir);
|
|
1698
1796
|
const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
|
|
1699
1797
|
const delivered = allDeliveredAssetIds(membershipByManifest);
|
|
1700
1798
|
const passiveManifestsByAsset = /* @__PURE__ */ new Map();
|
|
@@ -1748,6 +1846,7 @@ var FundusOperations = class {
|
|
|
1748
1846
|
passiveManifests: passiveManifestsByAsset.get(assetId) ?? [],
|
|
1749
1847
|
proxy,
|
|
1750
1848
|
warnings,
|
|
1849
|
+
duplicateIds: duplicatesByAsset.get(assetId) ?? [],
|
|
1751
1850
|
references: {
|
|
1752
1851
|
outgoing: referencesByAsset[assetId].map((reference) => ({
|
|
1753
1852
|
field: reference.field,
|
|
@@ -1951,4 +2050,4 @@ async function createFundusContext() {
|
|
|
1951
2050
|
}
|
|
1952
2051
|
|
|
1953
2052
|
export { getFundusContext as g, initializeFundusContext as i };
|
|
1954
|
-
//# sourceMappingURL=context.js-
|
|
2053
|
+
//# sourceMappingURL=context.js-BNdRFspW.js.map
|