fundus 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/build/client/_app/immutable/assets/2.CK3PVkJ5.css +1 -0
  2. package/build/client/_app/immutable/assets/2.CK3PVkJ5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/2.CK3PVkJ5.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/4FCfXqUa.js +1 -0
  5. package/build/client/_app/immutable/chunks/4FCfXqUa.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/4FCfXqUa.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{Blpvahbd.js → 9BPNAkub.js} +7 -7
  8. package/build/client/_app/immutable/chunks/9BPNAkub.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/9BPNAkub.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{C7Cs5PXV.js → BVDR6adL.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BVDR6adL.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BVDR6adL.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{DrsNq6gf.js → CR57Sg4T.js} +1 -1
  14. package/build/client/_app/immutable/chunks/CR57Sg4T.js.br +1 -0
  15. package/build/client/_app/immutable/chunks/CR57Sg4T.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{B9iWbZmZ.js → DtnsyoPh.js} +1 -1
  17. package/build/client/_app/immutable/chunks/DtnsyoPh.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/DtnsyoPh.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.CFPPKVrc.js → app.CSexy1XT.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.CSexy1XT.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.CSexy1XT.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.QuH89UTo.js +1 -0
  23. package/build/client/_app/immutable/entry/start.QuH89UTo.js.br +0 -0
  24. package/build/client/_app/immutable/entry/start.QuH89UTo.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{0.BS8VwNas.js → 0.LlWNlHiN.js} +1 -1
  26. package/build/client/_app/immutable/nodes/0.LlWNlHiN.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/0.LlWNlHiN.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.Dpaug5O_.js → 1.Cy77v3MJ.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.Cy77v3MJ.js.br +2 -0
  30. package/build/client/_app/immutable/nodes/1.Cy77v3MJ.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/2.B8-P1xm5.js +3 -0
  32. package/build/client/_app/immutable/nodes/2.B8-P1xm5.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/2.B8-P1xm5.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/3.EQFVTj55.js +1 -0
  35. package/build/client/_app/immutable/nodes/3.EQFVTj55.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/3.EQFVTj55.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{4.CiYE8hwS.js → 4.CZfY6lXC.js} +1 -1
  38. package/build/client/_app/immutable/nodes/4.CZfY6lXC.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/4.CZfY6lXC.js.gz +0 -0
  40. package/build/client/_app/version.json +1 -1
  41. package/build/client/_app/version.json.br +0 -0
  42. package/build/client/_app/version.json.gz +0 -0
  43. package/build/handler.js +7 -7
  44. package/build/index.js +7 -7
  45. package/build/server/chunks/chunks/{context.js-CLnT3cF3.js → context.js-CPdlcRhV.js} +103 -58
  46. package/build/server/chunks/chunks/context.js-CPdlcRhV.js.map +1 -0
  47. package/build/server/chunks/chunks/{contract.js-DGMufT2e.js → contract.js-nwG99Zzj.js} +2 -2
  48. package/build/server/chunks/chunks/{contract.js-DGMufT2e.js.map → contract.js-nwG99Zzj.js.map} +1 -1
  49. package/build/server/chunks/chunks/{exports.js-CAJ9ZQQx.js → exports.js-DTz2RvK4.js} +2 -2
  50. package/build/server/chunks/chunks/{exports.js-CAJ9ZQQx.js.map → exports.js-DTz2RvK4.js.map} +1 -1
  51. package/build/server/chunks/chunks/{http.js-DWYlsbZd.js → http.js-DmUA2gRk.js} +2 -2
  52. package/build/server/chunks/chunks/{http.js-DWYlsbZd.js.map → http.js-DmUA2gRk.js.map} +1 -1
  53. package/build/server/chunks/chunks/{internal.js-CdY4S4Uy.js → internal.js-BVOitVDG.js} +3 -3
  54. package/build/server/chunks/chunks/{internal.js-CdY4S4Uy.js.map → internal.js-BVOitVDG.js.map} +1 -1
  55. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  56. package/build/server/chunks/chunks/{shared.js-C34rGnTQ.js → shared.js-CkgrfauU.js} +2 -2
  57. package/build/server/chunks/chunks/{shared.js-C34rGnTQ.js.map → shared.js-CkgrfauU.js.map} +1 -1
  58. package/build/server/chunks/chunks/{utils.js-BMCQVogA.js → utils.js-CWlaCLgA.js} +3 -3
  59. package/build/server/chunks/chunks/{utils.js-BMCQVogA.js.map → utils.js-CWlaCLgA.js.map} +1 -1
  60. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Bmyh2WUa.js → _server.ts.js-wQD5tBuh.js} +3 -3
  61. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Bmyh2WUa.js.map → _server.ts.js-wQD5tBuh.js.map} +1 -1
  62. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-IMleqOQb.js → _server.ts.js-CLCx81uK.js} +4 -4
  63. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-IMleqOQb.js.map → _server.ts.js-CLCx81uK.js.map} +1 -1
  64. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DzFoWnCN.js → _server.ts.js-DkvELcZA.js} +4 -4
  65. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DzFoWnCN.js.map → _server.ts.js-DkvELcZA.js.map} +1 -1
  66. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-0LjvQ5dF.js → _server.ts.js-CCNcWQxH.js} +4 -4
  67. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-0LjvQ5dF.js.map → _server.ts.js-CCNcWQxH.js.map} +1 -1
  68. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-BUbO2k7N.js → _server.ts.js-DUK4Rnpu.js} +4 -4
  69. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-BUbO2k7N.js.map → _server.ts.js-DUK4Rnpu.js.map} +1 -1
  70. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CwFLvCzR.js → _server.ts.js-DNgHnoga.js} +4 -4
  71. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CwFLvCzR.js.map → _server.ts.js-DNgHnoga.js.map} +1 -1
  72. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BA6bgOR_.js → _server.ts.js-gdXko55o.js} +4 -4
  73. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BA6bgOR_.js.map → _server.ts.js-gdXko55o.js.map} +1 -1
  74. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-CzzmQqXq.js → _server.ts.js-DcsBk_jx.js} +4 -4
  75. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-CzzmQqXq.js.map → _server.ts.js-DcsBk_jx.js.map} +1 -1
  76. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-aqJkae-h.js → _server.ts.js-BhTg6GgC.js} +4 -4
  77. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-aqJkae-h.js.map → _server.ts.js-BhTg6GgC.js.map} +1 -1
  78. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CGsIZ1tO.js → _server.ts.js-CKjnRFXQ.js} +4 -4
  79. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CGsIZ1tO.js.map → _server.ts.js-CKjnRFXQ.js.map} +1 -1
  80. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DbaeknBw.js → _server.ts.js-C9rdzmoj.js} +4 -4
  81. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DbaeknBw.js.map → _server.ts.js-C9rdzmoj.js.map} +1 -1
  82. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BhY5m7VP.js → _server.ts.js-BdZb4d69.js} +4 -4
  83. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BhY5m7VP.js.map → _server.ts.js-BdZb4d69.js.map} +1 -1
  84. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-PT92H6EE.js → _server.ts.js-DaTgBGGt.js} +4 -4
  85. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-PT92H6EE.js.map → _server.ts.js-DaTgBGGt.js.map} +1 -1
  86. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DtiUkpdM.js → _server.ts.js-Btohjiz4.js} +4 -4
  87. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DtiUkpdM.js.map → _server.ts.js-Btohjiz4.js.map} +1 -1
  88. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-tVkpwUwF.js → _server.ts.js-D0alWeVb.js} +4 -4
  89. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-tVkpwUwF.js.map → _server.ts.js-D0alWeVb.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cq85RWhU.js → _server.ts.js-CRNi0bmU.js} +4 -4
  91. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-Cq85RWhU.js.map → _server.ts.js-CRNi0bmU.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-DDdYWvN4.js → _server.ts.js-B6C1DDpq.js} +19 -7
  93. package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-B6C1DDpq.js.map +1 -0
  94. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DxSPXWoT.js → _server.ts.js-qPKxHQ-e.js} +4 -4
  95. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DxSPXWoT.js.map → _server.ts.js-qPKxHQ-e.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DVtQlFHS.js → _server.ts.js-BjioCWTI.js} +3 -3
  97. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DVtQlFHS.js.map → _server.ts.js-BjioCWTI.js.map} +1 -1
  98. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DuStxYsU.js → _server.ts.js-BzUFg_ur.js} +4 -4
  99. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DuStxYsU.js.map → _server.ts.js-BzUFg_ur.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CxoKyl-h.js → _server.ts.js-CrjUXxJT.js} +4 -4
  101. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CxoKyl-h.js.map → _server.ts.js-CrjUXxJT.js.map} +1 -1
  102. package/build/server/chunks/entries/{hooks.server.js-DLJAlp7i.js → hooks.server.js-DQ8kZ3N2.js} +3 -3
  103. package/build/server/chunks/entries/{hooks.server.js-DLJAlp7i.js.map → hooks.server.js-DQ8kZ3N2.js.map} +1 -1
  104. package/build/server/chunks/{handler-Bn4TsL93.js → handler-DRroBRnU.js} +5 -5
  105. package/build/server/chunks/{handler-Bn4TsL93.js.map → handler-DRroBRnU.js.map} +1 -1
  106. package/build/server/chunks/{index.js-DzYQtf0T.js → index.js-C_qwAlbJ.js} +5 -5
  107. package/build/server/chunks/{index.js-DzYQtf0T.js.map → index.js-C_qwAlbJ.js.map} +1 -1
  108. package/build/server/chunks/{manifest.js-DewM2Q1D.js → manifest.js-BWmxuuCT.js} +28 -28
  109. package/build/server/chunks/{manifest.js-DewM2Q1D.js.map → manifest.js-BWmxuuCT.js.map} +1 -1
  110. package/build/server/chunks/nodes/{0.js-CZe1W9_P.js → 0.js-C74eSHmO.js} +2 -2
  111. package/build/server/chunks/nodes/{0.js-CZe1W9_P.js.map → 0.js-C74eSHmO.js.map} +1 -1
  112. package/build/server/chunks/nodes/1.js-DHY2r932.js +7 -0
  113. package/build/server/chunks/nodes/{1.js-DKVH5bGU.js.map → 1.js-DHY2r932.js.map} +1 -1
  114. package/build/server/chunks/nodes/2.js-gL66W1JX.js +7 -0
  115. package/build/server/chunks/nodes/2.js-gL66W1JX.js.map +1 -0
  116. package/build/server/chunks/nodes/3.js-C3k7u81h.js +7 -0
  117. package/build/server/chunks/nodes/{3.js-D3kgOm0S.js.map → 3.js-C3k7u81h.js.map} +1 -1
  118. package/build/server/chunks/nodes/4.js-4hPICDsb.js +7 -0
  119. package/build/server/chunks/nodes/{4.js-CZwje1Lo.js.map → 4.js-4hPICDsb.js.map} +1 -1
  120. package/dist/core/api-types.d.ts +1 -1
  121. package/dist/server/git.d.ts +6 -5
  122. package/dist/server/git.js +99 -72
  123. package/dist/server/operations.js +5 -5
  124. package/package.json +1 -1
  125. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css +0 -1
  126. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.br +0 -0
  127. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.gz +0 -0
  128. package/build/client/_app/immutable/chunks/B9iWbZmZ.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/B9iWbZmZ.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/Blpvahbd.js.br +0 -0
  131. package/build/client/_app/immutable/chunks/Blpvahbd.js.gz +0 -0
  132. package/build/client/_app/immutable/chunks/C7Cs5PXV.js.br +0 -0
  133. package/build/client/_app/immutable/chunks/C7Cs5PXV.js.gz +0 -0
  134. package/build/client/_app/immutable/chunks/DrsNq6gf.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/DrsNq6gf.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/DylBiD8l.js +0 -1
  137. package/build/client/_app/immutable/chunks/DylBiD8l.js.br +0 -0
  138. package/build/client/_app/immutable/chunks/DylBiD8l.js.gz +0 -0
  139. package/build/client/_app/immutable/entry/app.CFPPKVrc.js.br +0 -0
  140. package/build/client/_app/immutable/entry/app.CFPPKVrc.js.gz +0 -0
  141. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js +0 -1
  142. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.br +0 -0
  143. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.gz +0 -0
  144. package/build/client/_app/immutable/nodes/0.BS8VwNas.js.br +0 -0
  145. package/build/client/_app/immutable/nodes/0.BS8VwNas.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.br +0 -2
  147. package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js +0 -3
  149. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js +0 -1
  152. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.gz +0 -0
  156. package/build/server/chunks/chunks/context.js-CLnT3cF3.js.map +0 -1
  157. package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-DDdYWvN4.js.map +0 -1
  158. package/build/server/chunks/nodes/1.js-DKVH5bGU.js +0 -7
  159. package/build/server/chunks/nodes/2.js-BpN0Hxjo.js +0 -7
  160. package/build/server/chunks/nodes/2.js-BpN0Hxjo.js.map +0 -1
  161. package/build/server/chunks/nodes/3.js-D3kgOm0S.js +0 -7
  162. package/build/server/chunks/nodes/4.js-CZwje1Lo.js +0 -7
@@ -5,7 +5,7 @@
5
5
  * and the CLI consume this class, so every
6
6
  * operation has exactly one implementation and there is no other save path.
7
7
  */
8
- import { join, resolve } from 'node:path';
8
+ import { join } from 'node:path';
9
9
  import { assetIdError, allDeliveredAssetIds, canonicalizeParameters, collectAllReferences, compareCodeUnits, computeLibraryMembership, folderOfRawPath, normalizeFolderPath, parentFolderPath, portableFolderPathKey, proposeAssetId, rawFileNameOfPath, typesForFileName } from '../core/index.js';
10
10
  import { LibraryStore } from './library-store.js';
11
11
  import { generateManifestModules } from './codegen.js';
@@ -17,7 +17,7 @@ import { rawSafetyIssues } from './raw-safety.js';
17
17
  import { serverImporters } from './importers.js';
18
18
  import { SourceImportError } from './importers/contract.js';
19
19
  import { validateFigmaSourceParameters } from './importers/figma.js';
20
- import { currentGitBranch, gitFileChanges } from './git.js';
20
+ import { currentGitBranch, gitAssetChanges } from './git.js';
21
21
  /**
22
22
  * The CLI's `--parameters` merge semantics (M7): a SHALLOW merge at the top
23
23
  * level onto the current parameters — a nested object value replaces the whole
@@ -662,9 +662,9 @@ export class FundusOperations {
662
662
  };
663
663
  }
664
664
  async #buildState(library, issues, classification) {
665
- const [gitBranch, changedGitFiles] = await Promise.all([
665
+ const [gitBranch, changedGitAssets] = await Promise.all([
666
666
  currentGitBranch(this.#config.projectRoot),
667
- gitFileChanges(this.#config.projectRoot)
667
+ gitAssetChanges(this.#config.projectRoot, this.#config.library, library)
668
668
  ]);
669
669
  const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
670
670
  const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
@@ -730,7 +730,7 @@ export class FundusOperations {
730
730
  folder: folderOfRawPath(record.raw),
731
731
  rawUrl: `/files/raw/${encodeRelativePathForUrl(record.raw)}?v=${record.rawHash.slice(0, 12)}`,
732
732
  rawHash: record.rawHash,
733
- gitStatus: changedGitFiles.get(resolve(this.#config.rawDir, record.raw)) ?? null,
733
+ gitStatus: changedGitAssets.get(assetId) ?? null,
734
734
  importSource: record.importSource,
735
735
  parameters: record.parameters,
736
736
  manifests: record.manifests,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fundus",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- .submenu-anchor.svelte-13hq4tl{position:relative}button.svelte-13hq4tl{width:100%;color:var(--text);font:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-13hq4tl:hover,button.svelte-13hq4tl:focus-visible{background:var(--accent-soft);outline:none}.submenu-anchor.svelte-13hq4tl:has(.submenu:where(.svelte-13hq4tl))>.submenu-trigger:where(.svelte-13hq4tl){background:var(--accent-soft);outline:none}.submenu-trigger.svelte-13hq4tl{justify-content:space-between;align-items:center;gap:12px;display:flex}.arrow.svelte-13hq4tl{color:var(--text-faint);font-size:16px;line-height:12px}.submenu.svelte-13hq4tl{z-index:1;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;min-width:168px;max-width:320px;padding:4px;position:absolute;top:-5px;left:calc(100% - 4px);overflow-y:auto;box-shadow:0 8px 24px #00000073}.submenu.opens-left.svelte-13hq4tl{left:auto;right:calc(100% - 4px)}.submenu.svelte-13hq4tl button:where(.svelte-13hq4tl){text-overflow:ellipsis;overflow:hidden}hr.svelte-13hq4tl{background:var(--border);border:0;height:1px;margin:4px 8px}.context-menu.svelte-109nkvw{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-109nkvw{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-109nkvw:hover,button.svelte-109nkvw:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-109nkvw{color:var(--danger)}hr.svelte-109nkvw{background:var(--border);border:0;height:1px;margin:4px 8px}.manifest-label.svelte-1b4m5oj{align-items:center;gap:4px;min-width:0;display:inline-flex}.emoji.svelte-1b4m5oj{flex:none;line-height:1}.name.svelte-1b4m5oj{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip.svelte-1b4m5oj{background:color-mix(in srgb, var(--manifest-color) 20%, transparent);color:var(--manifest-color);border-radius:4px;padding:0 5px;font-size:10px}.chip.passive.svelte-1b4m5oj{border:1px dashed var(--manifest-color);background:0 0}.browse-select.svelte-dr99ka{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0 6px 0 0;display:inline-flex}.browse-select.svelte-dr99ka:focus-within{border-color:var(--accent)}.icon-slot.svelte-dr99ka{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:flex}select.svelte-dr99ka{background:0 0;border:0;outline:none;min-width:0;height:100%;margin:0;padding:0 6px 0 0}.library-view.svelte-1uha8ag{flex:1;min-height:0;display:flex}.page.svelte-1uha8ag{flex:1;min-height:0;padding:16px;position:relative;overflow-y:auto}.selection-bar.svelte-1uha8ag,.filter-bar.svelte-1uha8ag{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.selection-bar.svelte-1uha8ag{margin-bottom:8px}.filter-bar.svelte-1uha8ag{margin-bottom:16px}.selection-summary.svelte-1uha8ag{color:var(--accent);white-space:nowrap;font-weight:600}.toggle.svelte-1uha8ag{color:var(--text-dim);align-items:center;gap:6px;display:inline-flex}.search.svelte-1uha8ag{border-radius:4px;align-items:center;gap:4px;width:220px;height:24px;padding:0 6px 0 0;display:flex}.search.svelte-1uha8ag:focus-within{border-color:var(--accent)}.search-icon-slot.svelte-1uha8ag{width:24px;height:24px;color:var(--text-dim);flex:none;justify-content:center;align-items:center;display:flex}.search-icon.svelte-1uha8ag{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;flex:none;width:14px;height:14px}.search-input.svelte-1uha8ag{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0}.search.svelte-1uha8ag kbd:where(.svelte-1uha8ag){border:1px solid var(--border);color:var(--text-faint);border-radius:3px;flex:none;padding:1px 4px;font:9px/14px system-ui,sans-serif}.import.svelte-1uha8ag{background:var(--accent);color:var(--text);margin-left:auto}.section.svelte-1uha8ag{margin-bottom:24px}.section.svelte-1uha8ag:last-child{margin-bottom:0}.section-emoji.svelte-1uha8ag{margin-right:6px}.grid.svelte-1uha8ag,.folder-grid.svelte-1uha8ag{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.folder-card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);min-width:0;height:60px;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.folder-card.svelte-1uha8ag:hover,.folder-card.svelte-1uha8ag:focus-visible{border-color:var(--accent);outline:none}.folder-card.drop-target.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.folder-card.dragging-folder.svelte-1uha8ag{opacity:.55}.folder-card-icon.svelte-1uha8ag{color:var(--text-dim);flex:none;align-items:center;display:flex}.folder-card-details.svelte-1uha8ag{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.folder-card-details.svelte-1uha8ag strong:where(.svelte-1uha8ag){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-card-details.svelte-1uha8ag span:where(.svelte-1uha8ag),.folder-card-arrow.svelte-1uha8ag{color:var(--text-faint)}.folder-card-arrow.svelte-1uha8ag{flex:none;font-size:18px}.card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex;position:relative}.card.selected.svelte-1uha8ag{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-select.svelte-1uha8ag{z-index:1;width:16px;height:16px;accent-color:var(--accent);position:absolute;top:12px;left:12px}.card.svelte-1uha8ag:hover{border-color:var(--accent)}.thumbnail.svelte-1uha8ag{border-radius:var(--radius);justify-content:center;align-items:center;height:96px;display:flex;overflow:hidden}.meta.svelte-1uha8ag{align-items:center;gap:6px;min-width:0;display:flex}.id.svelte-1uha8ag{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.type-badge.svelte-1uha8ag{color:var(--text-dim);border:1px solid var(--border);border-radius:4px;flex:none;margin-left:auto;padding:0 5px;font-size:10px}.badges.svelte-1uha8ag{flex-wrap:wrap;gap:4px;min-height:16px;display:flex}.badge.svelte-1uha8ag{border-radius:4px;padding:0 5px;font-size:10px}.badge.warning.svelte-1uha8ag{background:var(--warning-soft);color:var(--warning)}.empty.svelte-1uha8ag{color:var(--text-dim);text-align:center;padding:48px}.dialog-row.svelte-1uha8ag{align-items:center;gap:8px;display:flex}.dialog-row.svelte-1uha8ag span:where(.svelte-1uha8ag){width:44px;color:var(--text-dim)}.dialog-row.svelte-1uha8ag input:where(.svelte-1uha8ag){flex:1}.dialog-text.svelte-1uha8ag,.dialog-warning.svelte-1uha8ag{margin:8px 0 0}.dialog-warning.svelte-1uha8ag{color:var(--warning)}.drop-hint.svelte-1uha8ag{border:2px dashed var(--accent);color:var(--accent);pointer-events:none;background:#0d99ff14;border-radius:12px;justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;inset:48px 8px 8px}
@@ -1 +0,0 @@
1
- import{I as e,X as t,Z as n}from"./NblqapDQ.js";var r=class extends Error{status;constructor(e,t){super(t),this.name=`ApiResponseError`,this.status=e}};async function i(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}return await e.json()}async function a(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.error?.message&&(t=n.error.message)}catch{}throw new r(e.status,t)}}async function o(){return i(await fetch(`/api/state`,{cache:`no-store`}))}async function s(){return i(await fetch(`/api/reconcile`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})}))}async function c(e,t,n,r=[]){return i(await fetch(`/api/raw/adopt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,id:t,type:n,manifests:r})}))}async function l(e,t){return i(await fetch(`/api/raw/edited/accept`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,type:t})}))}async function u(e){return i(await fetch(`/api/raw/edited/dismiss`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function d(e,t,n,r,a=[]){let o=new FormData;o.set(`file`,e),o.set(`type`,t),o.set(`id`,n),o.set(`folder`,r);for(let e of a)o.append(`manifests`,e);return i(await fetch(`/api/assets`,{method:`POST`,body:o}))}async function f(e){return i(await fetch(`/api/imports`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({importer:`figma`,input:{url:e.url,format:`png`,scale:e.scale},type:e.type,id:e.id,folder:e.folder,manifests:e.manifests})}))}async function ee(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}/reimport`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({...t?{input:{...t,format:`png`}}:{}})}))}async function te(e,t){let n=new FormData;return n.set(`file`,t),i(await fetch(`/api/assets/${encodeURIComponent(e)}/raw`,{method:`PUT`,body:n}))}async function ne(e){return i(await fetch(`/api/folders`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}))}async function re(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t})}))}async function ie(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({parent:t})}))}async function ae(e){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function oe(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function se(e,t){return i(await fetch(`/api/assets/move`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e,folder:t})}))}async function ce(e){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function le(e){return i(await fetch(`/api/assets/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e})}))}async function ue(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetId:e})}))}async function de(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:e})}))}async function fe(e){return i(await fetch(`/api/manifests`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}))}async function pe(e){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function me(e,t){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}var he=class{#e=null;#t=null;#n=0;#r=[];get value(){return this.#t}replaceBase(e){this.#e=e,this.#a()}mergeBase(e){this.#e!==null&&(this.#e=e(this.#e),this.#a())}add(e,t=[]){let n=++this.#n;return this.#r.push({id:n,update:e,dependencies:t}),this.#t!==null&&(this.#t=e(this.#t)),n}confirm(e,t,n){let r=this.#r.findIndex(t=>t.id===e);if(r===-1)return;let i=this.#r[r],a=this.#e;if(a===null){this.#e=t,this.#i(e),this.#a();return}this.#e=n(i.update(a)),this.#i(e),r===0&&this.#t!==null?this.#t=n(this.#t):this.#a()}reject(e){this.#i(e),this.#a()}rejectAffectedFrom(e,t){this.#r=this.#r.filter(n=>n.id<e||n.id>e&&!p(n.dependencies,t)),this.#a()}#i(e){this.#r=this.#r.filter(t=>t.id!==e)}#a(){let e=this.#e;if(e===null){this.#t=null;return}let t=e;for(let e of this.#r)t=e.update(t);this.#t=t}};function p(e,t){return e.some(e=>t.some(t=>{if(e===t)return!0;if(!e.startsWith(`folder:`)||!t.startsWith(`folder:`))return!1;let n=e.slice(7),r=t.slice(7);return n.startsWith(`${r}/`)||r.startsWith(`${n}/`)}))}var ge=/[\u0000-\u001f\u007f]/,_e=/[<>:"|?*]/,ve=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function ye(e){return e.length===0?`Folder names must not be empty.`:e===e.trim()?e===`.`||e===`..`?`"${e}" is not a valid folder name.`:e.includes(`/`)||e.includes(`\\`)?`Folder names must not contain path separators.`:ge.test(e)?`Folder names must not contain control characters.`:_e.test(e)?`Folder names must not contain Windows-reserved characters (: * ? " < > |).`:e.endsWith(`.`)?`Folder names must not end with a dot.`:e.toLocaleLowerCase(`en-US`)===`root`?`"${e}" is reserved for the implicit Fundus root folder.`:e.toLocaleLowerCase(`en-US`)===`.gitkeep`?`"${e}" is reserved for Fundus folder management.`:ve.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function be(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function m(e){return be(e).toLocaleLowerCase(`en-US`)}function h(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function g(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function _(e,t){return e===``?t:`${e}/${t}`}function v(e){return h(e)}function y(e){return g(e)}function b(e,t){return e===t||e.startsWith(`${t}/`)}function x(e,t,n){return e===t?n:`${n}${e.slice(t.length)}`}var S=`[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}`;RegExp(`^(?:\\.fundus-replace-${S}\\.tmp|\\.fundus-delete(?:-assets)?-${S})$`,`i`),RegExp(`\\.fundus-(?:replace-)?${S}$`,`i`);var C=[`preload`,`release`,`entries`,`constructor`,`prototype`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`],w=/^[a-z][A-Za-z0-9]*$/;function xe(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`}function Se(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}var T={type:`audio`,accepts:[`mp3`,`wav`,`m4a`,`ogg`,`flac`],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Audio parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Audio parameters need a non-empty string "preset".`);return{preset:t.preset}}};function Ce(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var E={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2},we=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function D(e){return Math.min(1,Math.max(0,e))}function Te(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`"chromaKey" must be an object.`);let t=e,n=t.keyColor;if(!Array.isArray(n)||n.length!==3||n.some(e=>typeof e!=`number`||!Number.isFinite(e)))throw Error(`"chromaKey.keyColor" must be an array of three numbers (RGB, 0–1 each).`);let r={keyColor:[D(n[0]),D(n[1]),D(n[2])]};for(let e of we){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=D(n)}return r}var O=[`mp4`,`mov`,`webm`,`m4v`];function k(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`${e} parameters must be an object.`);let n=t;if(typeof n.preset!=`string`||n.preset.length===0)throw Error(`${e} parameters need a non-empty string "preset".`);if(n.maxWidth!==void 0&&(typeof n.maxWidth!=`number`||!Number.isInteger(n.maxWidth)||n.maxWidth<=0))throw Error(`${e} "maxWidth" must be a positive integer when set.`);return{preset:n.preset,...n.maxWidth===void 0?{}:{maxWidth:n.maxWidth}}}var A={type:`video`,accepts:[...O],defaultParameters:()=>({preset:`default`}),validateParameters(e){return k(`Video`,e)}};function j(e,t){if(t!==void 0){if(!Ce(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var M={type:`chroma-key-video`,accepts:[...O],defaultParameters:()=>({preset:`default`,chromaKey:{...E,keyColor:[...E.keyColor]}}),validateParameters(e){let t=k(`Chroma-key-video`,e),n=e,r=Te(n.chromaKey),i=j(`mask`,n.mask),a=j(`fallback`,n.fallback);return{...t,chromaKey:r,...i===void 0?{}:{mask:i},...a===void 0?{}:{fallback:a}}},collectReferences(e){let t=[];return e.mask&&t.push({field:`mask`,assetId:e.mask.$asset,expectedTypes:[`image`]}),e.fallback&&t.push({field:`fallback`,assetId:e.fallback.$asset,expectedTypes:[`image`]}),t},processingParameters(e){return{preset:e.preset,...e.maxWidth===void 0?{}:{maxWidth:e.maxWidth}}}},N=[`png`,`jpg`,`jpeg`,`webp`,`avif`],P={type:`image`,accepts:[...N],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Image parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Image parameters need a non-empty string "preset".`);if(t.targetWidth!==void 0&&(typeof t.targetWidth!=`number`||!Number.isInteger(t.targetWidth)||t.targetWidth<=0))throw Error(`Image "targetWidth" must be a positive integer when set.`);return{preset:t.preset,...t.targetWidth===void 0?{}:{targetWidth:t.targetWidth}}}},F=[`nine`,`three-horizontal`,`three-vertical`,`one`];function I(){return{top:0,right:0,bottom:0,left:0}}function L(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function R(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function Ee(e,t,n,r){return R(e,t,n,r)-1}function z(e,t,n){return Math.max(t,Math.min(n,e))}function De(e){let t=L(e.mode),n=e.overdraw??{top:0,right:0,bottom:0,left:0},r=t.horizontal&&(e.compression?.x??0)>0,i=t.vertical&&(e.compression?.y??0)>0,a=r?Math.max(e.insets.left,n.left):e.insets.left,o=r?Math.max(e.insets.right,n.right):e.insets.right,s=i?Math.max(e.insets.top,n.top):e.insets.top,c=i?Math.max(e.insets.bottom,n.bottom):e.insets.bottom,l=z(a,0,e.width),u=z(o,0,e.width-l),d=z(s,0,e.height);return{top:d,right:u,bottom:z(c,0,e.height-d),left:l}}function B(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Slice ${e} must be an object with top/right/bottom/left.`);let n=t,r=[`top`,`right`,`bottom`,`left`],i=I();for(let t of r){let r=n[t];if(typeof r!=`number`||!Number.isInteger(r)||r<0)throw Error(`Slice ${e}.${t} must be a non-negative integer.`);i[t]=r}return i}function Oe(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice compression must be an object with x/y percentages.`);let t=e,n={x:0,y:0};for(let e of[`x`,`y`]){let r=t[e];if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>100)throw Error(`Slice compression.${e} must be an integer from 0 to 100.`);n[e]=r}return n}var V={type:`slice`,accepts:[...N],defaultParameters:()=>({mode:`nine`,insets:I(),pixelRatio:1,preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice parameters must be an object.`);let t=e;if(typeof t.mode!=`string`||!F.includes(t.mode))throw Error(`Slice "mode" must be one of ${F.map(e=>`'${e}'`).join(` | `)}.`);let n=B(`insets`,t.insets);if(typeof t.pixelRatio!=`number`||!Number.isInteger(t.pixelRatio)||t.pixelRatio<1)throw Error(`Slice "pixelRatio" must be an integer ≥ 1.`);let r=t.overdraw===void 0?void 0:B(`overdraw`,t.overdraw),i=t.compression===void 0?void 0:Oe(t.compression);if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Slice parameters need a non-empty string "preset".`);return{mode:t.mode,insets:n,pixelRatio:t.pixelRatio,...r===void 0?{}:{overdraw:r},...i===void 0?{}:{compression:i},preset:t.preset}}},H=new class{#e=new Map;register(e){if(this.#e.has(e.type))throw Error(`Plugin type "${e.type}" is already registered.`);this.#e.set(e.type,e)}has(e){return this.#e.has(e)}values(){return[...this.#e.values()]}types(){return[...this.#e.keys()]}project(e,t){let n=Object.create(null);for(let r of this.#e.keys()){if(!Object.hasOwn(e,r))throw Error(`Registered plugin "${r}" has no ${t}.`);n[r]=e[r]}return n}};H.register(P),H.register(V),H.register(A),H.register(M),H.register(T);var U=H.values();function ke(e=U){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function Ae(e,t=U){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function je(e,t=U){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function Me(e){let t=e.replace(/\.[^.]+$/,``).replace(/(?:@|[-_])\dx$/i,``).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^a-zA-Z0-9]+/).filter(Boolean);if(t.length===0)return`asset`;let n=t.map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``).replace(/^[0-9]+/,``);return n?n.charAt(0).toLowerCase()+n.slice(1):`asset`}function W(e){return K(e)}function G(e,t){return e<t?-1:+(e>t)}function K(e){if(e===void 0)return`null`;if(e===null||typeof e==`number`||typeof e==`boolean`||typeof e==`string`)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(K).join(`,`)}]`;if(typeof e==`object`){let t=e,n=[];for(let e of Object.keys(t).sort())t[e]!==void 0&&n.push(`${JSON.stringify(e)}:${K(t[e])}`);return`{${n.join(`,`)}}`}throw Error(`Cannot canonicalize a ${typeof e} value.`)}function Ne(e,t){let n={};for(let[r,i]of Object.entries(e.assets)){n[r]=[];let e=t[i.type];if(e?.collectReferences)try{n[r]=e.collectReferences(e.validateParameters(i.parameters))}catch{}}return n}function Pe(e,t){let n=new Set,r=[...e];for(;r.length>0;){let e=r.pop();if(!(n.has(e)||!Object.hasOwn(t,e))){n.add(e);for(let n of t[e])r.push(n.assetId)}}return n}function Fe(e,t){let n=new Set(Object.keys(e.manifests));for(let t of Object.values(e.assets))for(let e of t.manifests)n.add(e);let r={};for(let i of[...n].sort(G)){let n=Object.entries(e.assets).filter(([,e])=>e.manifests.includes(i)).map(([e])=>e).sort(G),a=new Set(n),o=new Set(n),s=new Map;for(let e of n)for(let n of Pe([e],t)){if(o.add(n),a.has(n))continue;let t=s.get(n)??[];t.push(e),s.set(n,t)}r[i]={explicitMemberIds:n,passiveMembers:[...s.entries()].map(([e,t])=>({assetId:e,via:t})).sort((e,t)=>G(e.assetId,t.assetId)),deliveredAssetIds:o}}return r}function Ie(e,t,n,r){return n&&q(n,r)?`committed`:t&&q(t,r)?`rolled-back`:`unknown`}function q(e,t){return W(e)===W(t)}var J=Object.fromEntries(H.values().map(e=>[e.type,e]));function Le(e,t,n){let r=e.library.assets[t]?.type,i=r?J[r]:void 0;if(!i)return[`asset:${t}`];try{let e=i.validateParameters(n),r=i.collectReferences?.(e)??[];return[...new Set([`asset:${t}`,...r.map(e=>`asset:${e.assetId}`)])]}catch{return[`asset:${t}`]}}function Y(e,t){let n=new Map(t.assets.map(e=>[e.id,e])),r={...e,assets:e.assets.map(e=>{let t=n.get(e.id);return t?{...e,rawUrl:t.rawUrl,rawHash:t.rawHash,gitStatus:t.gitStatus,importSource:t.importSource,proxy:t.proxy,warnings:t.warnings,passiveManifests:t.passiveManifests,references:t.references}:e}),gitBranch:t.gitBranch,importDefaults:t.importDefaults,issues:t.issues,presetNames:t.presetNames,rawIngestionQueue:t.rawIngestionQueue};return X(r,r.library)}function Re(e,t){let n=structuredClone(e.library);n.folders=[...t.library.folders];for(let[e,r]of Object.entries(n.assets)){let i=t.library.assets[e];i?r.raw=i.raw:delete n.assets[e]}return Y(X(e,n),t)}function X(e,t,n=new Map){let r=new Map(e.assets.map(e=>[e.id,e])),i=new Map([...n.entries()].map(([e,t])=>[t,e])),a=Ne(t,J),o=Fe(t,a),s=ze(o),c=new Map;for(let[e,t]of Object.entries(a))for(let n of t){let t=c.get(n.assetId)??[];t.push({field:n.field,assetId:e}),c.set(n.assetId,t)}let l=Object.entries(t.assets).map(([e,t])=>{let n=r.get(i.get(e)??e);return n?{...n,id:e,raw:t.raw,folder:v(t.raw),parameters:t.parameters,manifests:t.manifests,passiveManifests:s.get(e)??[],references:{outgoing:a[e].map(e=>({field:e.field,assetId:e.assetId})),incoming:c.get(e)??[]}}:null}).filter(e=>e!==null).sort((e,t)=>e.id.localeCompare(t.id)),u=new Map(l.map(e=>[e.id,e.proxy?.fileSize??0])),d=Object.fromEntries(Object.keys(t.manifests).map(e=>{let t=o[e];return[e,{explicitMemberIds:t.explicitMemberIds,passiveMembers:t.passiveMembers}]})),f=Object.fromEntries(Object.keys(t.manifests).map(e=>[e,[...o[e].deliveredAssetIds].reduce((e,t)=>e+(u.get(t)??0),0)]));return{...e,library:t,assets:l,manifestMemberships:d,manifestDeliveredBytes:f,issues:e.issues.map(e=>({...e,...e.assetId&&n.has(e.assetId)?{assetId:n.get(e.assetId)}:{}}))}}function ze(e){let t=new Map;for(let[n,r]of Object.entries(e))for(let e of r.passiveMembers){let{assetId:r,via:i}=e,a=t.get(r)??[];a.push({manifest:n,via:i}),t.set(r,a)}for(let e of t.values())e.sort((e,t)=>e.manifest.localeCompare(t.manifest));return t}function Z(e){return t=>{let n=structuredClone(t.library);return X(t,n,e(n)??new Map)}}function Be(e,t){return Z(n=>{let r=n.assets[e];if(!r)return;t.parameters!==void 0&&(r.parameters=structuredClone(t.parameters)),t.manifests!==void 0&&(r.manifests=[...new Set(t.manifests)].sort());let i=t.renameTo??e;if(!(i!==e&&n.assets[i]))return i!==e&&(delete n.assets[e],n.assets[i]=r),t.folder!==void 0&&(r.raw=_(t.folder,y(r.raw))),i===e?void 0:new Map([[e,i]])})}function Ve(e,t){return Z(n=>{for(let r of new Set(e)){let e=n.assets[r];e&&(e.raw=_(t,y(e.raw)))}})}function He(e){return Z(t=>{for(let n of new Set(e))delete t.assets[n]})}function Ue(e){return Z(t=>{t.folders.includes(e)||t.folders.push(e),t.folders.sort()})}function Q(e,t){return Z(n=>{let r=n.folders.filter(t=>b(t,e)).map(n=>x(n,e,t)),i=new Set(n.folders.filter(t=>!b(t,e)).map(m));if(!r.some(e=>i.has(m(e)))){n.folders=n.folders.map(n=>b(n,e)?x(n,e,t):n).sort();for(let r of Object.values(n.assets)){let n=v(r.raw);b(n,e)&&(r.raw=_(x(n,e,t),y(r.raw)))}}})}function We(e,t){return Q(e,_(h(e),t))}function Ge(e,t){return Q(e,_(t,g(e)))}function Ke(e){return Z(t=>{t.folders=t.folders.filter(t=>!b(t,e));for(let[n,r]of Object.entries(t.assets))b(v(r.raw),e)&&delete t.assets[n]})}function qe(e){return Z(t=>{Object.hasOwn(t.manifests,e)||(t.manifests[e]={})})}function Je(e,t){return Z(n=>{let r=n.manifests[e];if(r&&(t.color!==void 0&&(t.color===null?delete r.color:r.color=t.color),t.emoji!==void 0&&(t.emoji===null?delete r.emoji:r.emoji=t.emoji),!(t.renameTo===void 0||t.renameTo===e)&&!n.manifests[t.renameTo])){delete n.manifests[e],n.manifests[t.renameTo]=r;for(let r of Object.values(n.assets))r.manifests=r.manifests.map(n=>n===e?t.renameTo:n).sort()}})}function Ye(e){return Z(t=>{delete t.manifests[e];for(let n of Object.values(t.assets))n.manifests=n.manifests.filter(t=>t!==e)})}var Xe=class{#e=Promise.resolve();#t=new Map;enqueue(e){let t=this.#e.then(e,e);return this.#e=t.then(()=>{},()=>{}),t}coalesce(e,t){let n=this.#t.get(e);if(n)return n;let r=this.enqueue(t).finally(()=>{this.#t.get(e)===r&&this.#t.delete(e)});return this.#t.set(e,r),r}},Ze=new class{#e=new Xe;#t=new he;#n=0;#r=0;#i=[];#a=n(null);get state(){return e(this.#a)}set state(e){t(this.#a,e,!0)}#o=n(!1);get saving(){return e(this.#o)}set saving(e){t(this.#o,e,!0)}#s=n(null);get error(){return e(this.#s)}set error(e){t(this.#s,e,!0)}#c=n(!1);get loaded(){return e(this.#c)}set loaded(e){t(this.#c,e,!0)}async refresh(){return this.#l(o,{rebaseEditableState:!0})}reconcile(){return this.#l(s,{coalesce:!0})}#l(e,t={}){let n=async()=>{try{let n=await e();this.#t.value===null||t.rebaseEditableState?this.#t.replaceBase(n):this.#t.mergeBase(e=>Re(e,n)),this.#d(),this.error=null}catch(e){this.error=e instanceof Error?e.message:String(e)}finally{this.loaded=!0}};return t.coalesce?this.#e.coalesce(`reconcile`,n):this.#e.enqueue(n)}mutate(e,t,n){return this.#u(e,t,n)}mutateFromServer(e,t){return this.#u(e,void 0,t)}#u(e,t,n={dependencies:[]}){let r=++this.#r,i=this.#t.value?.library,a=t?this.#t.add(t,n.dependencies):null,s=a===null?void 0:this.#t.value?.library;return a!==null&&this.#d(),this.#n+=1,this.saving=!0,this.#e.enqueue(async()=>{this.error=null;try{if(this.#i.some(e=>e.failedMutationId<r&&r<=e.throughMutationId&&p(n.dependencies,e.dependencies)))throw a!==null&&(this.#t.reject(a),this.#d()),new $;let t=await e();a===null?this.#t.replaceBase(t):this.#t.confirm(a,t,e=>Y(e,t)),this.#d()}catch(e){if(e instanceof $)throw this.error=e.message,e;let t=null;try{t=await o();let c=Ie(e,i,s,t.library);if(c===`committed`&&a!==null){let e=t;this.#t.confirm(a,e,t=>Y(t,e)),this.#d(),this.error=null;return}this.#t.replaceBase(t),c===`rolled-back`&&a!==null&&n.invalidatesOnFailure?.length?(this.#i.push({failedMutationId:r,throughMutationId:this.#r,dependencies:n.invalidatesOnFailure}),this.#t.rejectAffectedFrom(a,n.invalidatesOnFailure)):a!==null&&this.#t.reject(a)}catch{a!==null&&this.#t.reject(a)}throw this.#d(),this.error=e instanceof Error?e.message:String(e),e}finally{--this.#n,this.saving=this.#n>0,this.#n===0&&(this.#i=[])}})}#d(){this.state=this.#t.value}get manifestNames(){return Object.keys(this.state?.library.manifests??{}).sort()}manifestAppearance(e){return this.state?.library.manifests[e]??{}}get generalIssues(){return this.state?.issues.filter(e=>e.assetId===void 0).map(e=>e.message)??[]}assetById(e){return this.state?.assets.find(t=>t.id===e)??null}},$=class extends Error{constructor(){super(`Change was cancelled because an earlier structural save failed.`)}};export{re as $,ye as A,ne as B,L as C,T as D,A as E,h as F,pe as G,ce as H,m as I,se as J,u as K,x as L,v as M,b as N,xe as O,_ as P,ee as Q,l as R,Ee as S,M as T,le as U,fe as V,ae as W,oe as X,ie as Y,me as Z,H as _,He as a,I as b,Ve as c,Je as d,te as et,We as f,je as g,Me as h,qe as i,g as j,Se as k,Ge as l,Ae as m,Le as n,de as nt,Ke as o,ke as p,f as q,Ue as r,d as rt,Ye as s,Ze as t,ue as tt,Be as u,De as v,P as w,R as x,V as y,c as z};
@@ -1 +0,0 @@
1
- import{n as e,s as t}from"../chunks/B9iWbZmZ.js";export{t as load_css,e as start};
@@ -1,2 +0,0 @@
1
- w�Ċ����nf��7�Ȍn�/�{�gy�o,Z���Q�ڲ���I�J��8�n1��us�IIO�� �|�@����I�SmQ'��+Hc�+�{0�3�d�.��>�Fv2�W�b��2�7��4w�[�G��G+C7�W���cr� ܕ/"����^'
2
- �1&h���蓇Cf� ����&%و��qF��qv1���"
@@ -1,3 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,M as u,N as d,O as f,P as p,Q as m,R as h,V as g,X as _,Y as v,Z as y,_ as b,a as x,at as S,b as ee,c as C,d as te,g as w,i as T,k as E,l as ne,nt as re,o as ie,ot as D,p as O,q as k,s as ae,tt as oe,u as A,w as se,x as j}from"../chunks/NblqapDQ.js";import{c as M,t as ce}from"../chunks/B9iWbZmZ.js";import"../chunks/xihTtKlq.js";import{F as le,J as ue,N as de,O as fe,P as pe,U as me,X as he,Y as ge,a as _e,c as ve,j as ye,l as be,nt as xe,p as Se,t as N,tt as Ce,u as we}from"../chunks/DylBiD8l.js";import{a as Te}from"../chunks/C7Cs5PXV.js";import{t as Ee}from"../chunks/DPZDGjcn.js";import{a as De,c as Oe,i as ke,l as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe,u as Ie}from"../chunks/Blpvahbd.js";import{t as Le}from"../chunks/BD3hQKzV.js";function P(e){return Array.isArray?Array.isArray(e):V(e)===`[object Array]`}function Re(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function F(e){return e==null?``:Re(e)}function I(e){return typeof e==`string`}function L(e){return typeof e==`number`}function ze(e){return e===!0||e===!1||Be(e)&&V(e)==`[object Boolean]`}function R(e){return typeof e==`object`}function Be(e){return R(e)&&e!==null}function z(e){return e!=null}function B(e){return!e.trim().length}function V(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var H=`Incorrect 'index' type`,Ve=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,U=e=>`Invalid value for key ${e}`,W=e=>`Pattern length exceeds max of ${e}.`,He=e=>`Missing ${e} property in key`,G=e=>`Property 'weight' in key '${e}' must be a positive integer`,K=`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.`,q=Object.prototype.hasOwnProperty,Ue=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=We(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 We(e){let t=null,n=null,r=null,i=1,a=null;if(I(e)||P(e))r=e,t=Ge(e),n=Ke(e);else{if(!q.call(e,`name`))throw Error(He(`name`));let o=e.name;if(r=o,q.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(G(Ke(o)));t=Ge(o),n=Ke(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function Ge(e){return P(e)?e:e.split(`.`)}function Ke(e){return P(e)?e.join(`.`):e}function qe(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&&(I(s)||L(s)||ze(s)||typeof s==`bigint`))n.push(o===void 0?F(s):{v:F(s),i:o});else if(P(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,I(t)?t.split(`.`):t,0),r?n:n[0]}var Je={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},J={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},Y={location:0,threshold:.6,distance:100},Ye={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:qe,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},X=Object.freeze({...J,...Je,...Y,...Ye});function Xe(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 Ze=class{constructor({getFn:e=X.getFn,fieldNormWeight:t=X.fieldNormWeight}={}){this.norm=Xe(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(I(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(Ve);if(I(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(Ve);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)||B(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(P(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(z(n)){if(I(n)){if(!B(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(z(n.v)){let t=I(n.v)?n.v:F(n.v);if(!B(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(I(i)&&!B(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 Z(e,t,{getFn:n=X.getFn,fieldNormWeight:r=X.fieldNormWeight}={}){let i=new Ze({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(We)),i.setSources(t),i.create(),i}function Qe(e,{getFn:t=X.getFn,fieldNormWeight:n=X.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new Ze({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function $e(e=[],t=X.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 et(e,t,n,{location:r=X.location,distance:i=X.distance,threshold:a=X.threshold,findAllMatches:o=X.findAllMatches,minMatchCharLength:s=X.minMatchCharLength,includeMatches:c=X.includeMatches,ignoreLocation:l=X.ignoreLocation}={}){if(t.length>32)throw Error(W(32));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=0,S=u+d,ee=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=S;for(;r<i;)h(t,f+i)<=p?r=i:S=i,i=Math.floor((S-r)/2+r);S=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&ee&&(b=h(t,i),b<=p)){if(p=b,m=i,x=t,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}if(g&&m>=0){let t=Math.min(d-1,m+u-1+x);for(let r=m;r<=t;r+=1)n[e[r]]&&(_[r]=1)}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=$e(_,s);e.length?c&&(C.indices=e):C.isMatch=!1}return C}function tt(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 nt(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 rt={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},it=RegExp(`[`+Object.keys(rt).join(``)+`]`,`g`),at=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(it,e=>rt[e]):e=>e,ot=class{constructor(e,{location:t=X.location,threshold:n=X.threshold,distance:r=X.distance,includeMatches:i=X.includeMatches,findAllMatches:a=X.findAllMatches,minMatchCharLength:o=X.minMatchCharLength,isCaseSensitive:s=X.isCaseSensitive,ignoreDiacritics:c=X.ignoreDiacritics,ignoreLocation:l=X.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?at(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:tt(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?at(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}=et(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=nt(u)),p}},st=new Set([`fuzzy`,`include`]);function ct(e){return e.startsWith(`inverse`)}var lt=[{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 ot(e,{location:t.location??X.location,threshold:t.threshold??X.threshold,distance:t.distance??X.distance,includeMatches:t.includeMatches??X.includeMatches,findAllMatches:t.findAllMatches??X.findAllMatches,minMatchCharLength:t.minMatchCharLength??X.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??X.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??X.ignoreDiacritics,ignoreLocation:t.ignoreLocation??X.ignoreLocation});return{type:`fuzzy`,search(e){return n.searchIn(e)}}}}],ut=lt.length,dt=`\0`,ft=`|`;function pt(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 mt(e,t){let n=e.match(t);return n?n[1]:null}function ht(e,t={}){return e.replace(/\\\|/g,dt).split(ft).map(e=>{let n=pt(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<ut;){let e=lt[o],n=mt(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<ut;){let e=lt[o],n=mt(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var gt=class{constructor(e,{isCaseSensitive:t=X.isCaseSensitive,ignoreDiacritics:n=X.ignoreDiacritics,includeMatches:r=X.includeMatches,minMatchCharLength:i=X.minMatchCharLength,ignoreLocation:a=X.ignoreLocation,findAllMatches:o=X.findAllMatches,location:s=X.location,threshold:c=X.threshold,distance:l=X.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?at(e):e,this.pattern=e,this.query=ht(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?at(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,ct(r.type)&&(c=!0),n&&(st.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=nt(o)),e}}return{isMatch:!1,score:1}}},_t=[];function Q(...e){_t.push(...e)}function vt(e,t){for(let n=0,r=_t.length;n<r;n+=1){let r=_t[n];if(r.condition(e,t))return new r(e,t)}return new ot(e,t)}var yt={AND:`$and`,OR:`$or`},bt={PATH:`$path`,PATTERN:`$val`},xt=e=>!!(e[yt.AND]||e[yt.OR]),St=e=>!!e[bt.PATH],Ct=e=>!P(e)&&R(e)&&!xt(e),wt=e=>({[yt.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Tt(e,t,{auto:n=!0}={}){let r=e=>{if(I(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=vt(e,t)),r}let i=Object.keys(e),a=St(e);if(!a&&i.length>1&&!xt(e))return r(wt(e));if(Ct(e)){let r=a?e[bt.PATH]:i[0],o=a?e[bt.PATTERN]:e[r];if(!I(o))throw Error(U(r));let s={keyId:Ke(r),pattern:o};return n&&(s.searcher=vt(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];P(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return xt(e)||(e=wt(e)),r(e)}function Et(e,{ignoreFieldNorm:t=X.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function Dt(e,{ignoreFieldNorm:t=X.ignoreFieldNorm}){e.forEach(e=>{e.score=Et(e.matches,{ignoreFieldNorm:t})})}var Ot=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function kt(e){let t=[];return e.matches.forEach(e=>{if(!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 At(e,t,{includeMatches:n=X.includeMatches,includeScore:r=X.includeScore}={}){return e.map(e=>{let{idx:i}=e,a={item:t[i],refIndex:i};return n&&(a.matches=kt(e)),r&&(a.score=e.score),a})}var jt=/[\p{L}\p{M}\p{N}_]+/gu,Mt=new WeakSet;function Nt(e){Mt.has(e)||(Mt.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function Pt(e){if(typeof e==`function`){let t=!1;return n=>{let r=e(n);if(!t&&(t=!0,!Array.isArray(r)||r.some(e=>typeof e!=`string`)))throw Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(r)?`array containing non-strings`:typeof r}.`);return r}}return e instanceof RegExp?(e.global||Nt(e),t=>t.match(e)||[]):e=>e.match(jt)||[]}function Ft({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=Pt(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=at(n)),r(n)}}}var It=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=Ft({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new ot(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=nt(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function Lt(e,t,n,r){let i=r.tokenize(t);if(!i.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);let a=new Set(i),o=e.docTermFieldHits.get(n);o||(o=new Map,e.docTermFieldHits.set(n,o));for(let t of a)o.set(t,(o.get(t)||0)+1),e.df.set(t,(e.df.get(t)||0)+1)}function Rt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){Lt(e,a,i,r);return}if(o)for(let t=0;t<n;t++){let n=o[t];if(n)if(Array.isArray(n))for(let t of n)Lt(e,t.v,i,r);else Lt(e,n.v,i,r)}}function zt(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)Rt(r,i,t,n);return r}function Bt(e,t,n,r){Rt(e,t,n,r)}function Vt(e,t){let n=e.docFieldCount.get(t);if(n===void 0)return;e.fieldCount-=n,e.docFieldCount.delete(t);let r=e.docTermFieldHits.get(t);if(r){for(let[t,n]of r){let r=(e.df.get(t)||0)-n;r<=0?e.df.delete(t):e.df.set(t,r)}e.docTermFieldHits.delete(t)}}function Ht(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)Vt(e,t);let r=e=>{let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e?t=i+1:r=i}return e-t},i=n[0],a=new Map;for(let[t,n]of e.docFieldCount)a.set(t>i?r(t):t,n);e.docFieldCount=a;let o=new Map;for(let[t,n]of e.docTermFieldHits)o.set(t>i?r(t):t,n);e.docTermFieldHits=o}var $=class{constructor(e,t,n){this.options={...X,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new Ue(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=vt(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 Ze))throw Error(H);if(this._myIndex=t||Z(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=Ft({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=zt(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!z(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=Ft({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Bt(this._invertedIndex,t,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){this._invertedIndex&&Ht(this._invertedIndex,n);let e=new Set(n);this._docs=this._docs.filter((t,n)=>!e.has(n)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw Error(Ve);this._invertedIndex&&Ht(this._invertedIndex,[e]);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(I(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return L(n)&&n>-1&&(e=e.slice(0,n)),e}let c=L(n)&&n>0&&I(e),l;if(c){let t=new Ot(n);I(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=I(e)?I(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),Dt(l,{ignoreFieldNorm:s}),a&&l.sort(o),L(n)&&n>-1&&(l=l.slice(0,n));return At(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{records:a}=this._myIndex,o=t?null:[];return a.forEach(({v:e,i:a,n:s})=>{if(!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=Et(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=Tt(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===yt.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(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=Et(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(P(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}};$.version=`7.4.2`,$.createIndex=Z,$.parseIndex=Qe,$.config=X,$.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(K);return vt(e,{...X,...n}).searchIn(t)},$.parseQuery=Tt,Q(gt),Q(It),$.use=function(...e){e.forEach(e=>Q(e))};var Ut=$;function Wt(e,t){return t===`all`?!0:t===`changed`?e===`edited`:t===`new`?e===`new`:e!==null}var Gt=e(`<span class="arrow svelte-13hq4tl" aria-hidden="true">›</span>`),Kt=e(`<hr class="svelte-13hq4tl"/>`),qt=e(`<button role="menuitem" tabindex="-1" class="svelte-13hq4tl"> </button>`),Jt=e(`<!> <!>`,1),Yt=e(`<div role="menu" tabindex="-1"></div>`),Xt=e(`<div class="submenu-anchor svelte-13hq4tl" role="presentation"><button class="submenu-trigger svelte-13hq4tl" role="menuitem"><span> </span> <!></button> <!></div>`);function Zt(e,a){re(a,!0);let o=T(a,`alwaysSubmenu`,3,!1),u=y(void 0),d=y(void 0),v=y(!1),S=y(!1),ee=y(240),C=m(()=>a.sections.filter(e=>e.length>0)),te=m(()=>s(C).flat()),E=m(()=>o()||s(te).length>1);async function ne(e=!1){if(!s(E)||(_(v,!0),await h(),!s(u)||!s(d)))return;let t=s(u).getBoundingClientRect();_(S,t.right+s(d).offsetWidth+8>window.innerWidth),_(ee,Math.max(32,window.innerHeight-t.top-8),!0),e&&s(d).querySelector(`[role="menuitem"]`)?.focus()}function ie(e){if(!s(E)){let e=s(te)[0];e&&a.onSelect(e.value);return}e.stopPropagation(),ne()}function O(e){!s(E)||e.key!==`ArrowRight`&&e.key!==`ArrowDown`||(e.preventDefault(),e.stopPropagation(),ne(!0))}function ae(e){if(e.key===`ArrowLeft`||e.key===`Escape`){e.preventDefault(),e.stopPropagation(),_(v,!1),s(u)?.focus();return}if(!s(d))return;let t=[...s(d).querySelectorAll(`[role="menuitem"]`)],n=t.indexOf(document.activeElement),r;if(e.key===`ArrowDown`)r=(n+1)%t.length;else if(e.key===`ArrowUp`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),e.stopPropagation(),t[r]?.focus()}var j=Xt(),M=l(j),ce=l(M),le=l(ce,!0);D(ce);var ue=c(ce,2),de=e=>{f(e,Gt())};r(ue,e=>{s(E)&&e(de)}),D(M),x(M,e=>_(u,e),()=>s(u));var fe=c(M,2),pe=e=>{var i=Yt();let o,u;t(i,21,()=>s(C),se,(e,i,o)=>{var u=Jt(),d=k(u),m=e=>{f(e,Kt())};r(d,e=>{o>0&&e(m)}),t(c(d,2),17,()=>s(i),e=>e.value,(e,t)=>{var r=qt(),i=l(r,!0);D(r),g(()=>n(i,s(t).label)),p(`click`,r,()=>a.onSelect(s(t).value)),f(e,r)}),f(e,u)}),D(i),x(i,e=>_(d,e),()=>s(d)),g(()=>{o=b(i,1,`submenu svelte-13hq4tl`,null,o,{"opens-left":s(S)}),A(i,`aria-label`,a.label),u=w(i,``,u,{"max-height":`${s(ee)}px`})}),p(`keydown`,i,ae),f(e,i)};r(fe,e=>{s(E)&&s(v)&&e(pe)}),D(j),g(()=>{A(M,`aria-haspopup`,s(E)?`menu`:void 0),A(M,`aria-expanded`,s(E)?s(v):void 0),n(le,a.label)}),i(`mouseenter`,j,()=>void ne()),i(`mouseleave`,j,()=>_(v,!1)),p(`focusout`,j,e=>{e.currentTarget.contains(e.relatedTarget)||_(v,!1)}),p(`click`,M,ie),p(`keydown`,M,O),f(e,j),oe()}d([`focusout`,`click`,`keydown`]);var Qt=e(`<button role="menuitem" class="svelte-109nkvw">Rename</button>`),$t=e(`<div class="context-menu svelte-109nkvw" role="menu" aria-label="Asset actions" tabindex="-1"><!> <!> <button class="danger svelte-109nkvw" role="menuitem"> </button> <hr class="svelte-109nkvw"/> <button role="menuitem" class="svelte-109nkvw"> </button></div>`);function en(e,t){re(t,!0);let o=m(()=>Math.max(8,Math.min(t.x,window.innerWidth-176))),u=m(()=>t.assetCount===1&&t.copyOptions.length>0),d=m(()=>2+ +!!s(u)+ +!!t.onRename),h=m(()=>Math.max(8,Math.min(t.y,window.innerHeight-(s(d)*32+17)))),_=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function v(e){e(),t.onClose()}var y=$t();i(`click`,a,function(...e){t.onClose?.apply(this,e)}),i(`blur`,a,function(...e){t.onClose?.apply(this,e)}),i(`keydown`,a,e=>e.key===`Escape`&&t.onClose()),i(`resize`,a,function(...e){t.onClose?.apply(this,e)}),i(`scroll`,a,function(...e){t.onClose?.apply(this,e)});let b;var x=l(y),S=e=>{{let n=m(()=>[t.copyOptions.slice(0,1).map(e=>({label:e,value:e})),t.copyOptions.slice(1).map(e=>({label:e,value:e}))]);Zt(e,{label:`Copy Asset ID`,get sections(){return s(n)},alwaysSubmenu:!0,onSelect:e=>v(()=>t.onCopy(e))})}};r(x,e=>{s(u)&&e(S)});var ee=c(x,2),C=e=>{var n=Qt();p(`click`,n,()=>v(t.onRename)),f(e,n)};r(ee,e=>{t.onRename&&e(C)});var te=c(ee,2),T=l(te,!0);D(te);var E=c(te,4),ne=l(E,!0);D(E),D(y),g(()=>{b=w(y,``,b,{left:`${s(o)}px`,top:`${s(h)}px`}),n(T,t.assetCount===1?`Delete Asset`:`Delete ${t.assetCount} Assets`),n(ne,_)}),p(`contextmenu`,y,e=>e.preventDefault()),p(`click`,te,()=>v(t.onDelete)),p(`click`,E,()=>v(t.onReveal)),f(e,y),oe()}d([`contextmenu`,`click`]);var tn=e(`<span class="emoji svelte-1b4m5oj"> </span>`),nn=e(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function rn(e,t){re(t,!0);let i=T(t,`variant`,3,`chip`),a=T(t,`passive`,3,!1),o=T(t,`via`,19,()=>[]),u=m(()=>N.manifestAppearance(t.name)),d=m(()=>s(u).color??`var(--accent)`),p=m(()=>a()?`${t.name} — passive member${o().length>0?`, via ${o().join(`, `)}`:``}`:t.name);var h=nn();let _;var v=l(h),y=e=>{var t=tn(),r=l(t,!0);D(t),g(()=>n(r,s(u).emoji)),f(e,t)};r(v,e=>{s(u).emoji&&e(y)});var x=c(v,2),S=l(x,!0);D(x),D(h),g(()=>{_=b(h,1,`manifest-label ${i()??``}`,`svelte-1b4m5oj`,_,{passive:a()}),w(h,`--manifest-color: ${s(d)??``}`),A(h,`title`,s(p)),n(S,t.name)}),f(e,h),oe()}function an(e){return[e.id,...e.manifests.map(t=>`${t}.${e.id}`)]}var on=e(`<!>`,1),sn=e(`<div class="browse-select control svelte-dr99ka"><span class="icon-slot svelte-dr99ka"><!></span> <select class="svelte-dr99ka"><!></select></div>`);function cn(e,t){re(t,!0);let n=T(t,`value`,15);var r=sn(),i=l(r);Te(l(i),{get name(){return t.icon},size:14}),D(i);var a=c(i,2);C(a,()=>{var e=l(a),n=on();j(k(n),()=>t.children),f(e,n)}),D(r),g(()=>{A(i,`title`,t.label),A(a,`aria-label`,t.label)}),O(a,n),f(e,r),oe()}var ln=e(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),un=e(`<button class="control">Select All</button>`),dn=e(`<option>Sort alphabetically</option> <option>Sort by type</option> <option>Sort by manifest</option>`,1),fn=e(`<option> </option>`),pn=e(`<option>All types</option> <!>`,1),mn=e(`<option>All manifests</option> <!>`,1),hn=e(`<option>All Assets</option> <option>Changed Assets</option> <option>New Assets</option> <option>Changed &amp; New Assets</option>`,1),gn=e(`<div class="empty svelte-1uha8ag">Loading library…</div>`),_n=e(`<div class="empty svelte-1uha8ag"> </div>`),vn=e(`<button draggable="true"><span class="folder-card-icon svelte-1uha8ag"><!></span> <span class="folder-card-details svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag"> </span></span> <span class="folder-card-arrow svelte-1uha8ag">›</span></button>`),yn=e(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),bn=e(`<span class="section-emoji svelte-1uha8ag"> </span>`),xn=e(`<!> `,1),Sn=e(`<span class="badge warning svelte-1uha8ag">⚠</span>`),Cn=e(`<a draggable="true"><!> <input class="asset-select svelte-1uha8ag" type="checkbox"/> <div class="thumbnail checkerboard svelte-1uha8ag"><!></div> <div class="meta svelte-1uha8ag"><span class="id svelte-1uha8ag"> </span> <span class="type-badge svelte-1uha8ag"> </span></div> <div class="badges svelte-1uha8ag"><!> <!> <!></div></a>`),wn=e(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Tn=e(`<!> <!>`,1),En=e(`<div class="drop-hint svelte-1uha8ag"> </div>`),Dn=e(`<p class="dialog-warning svelte-1uha8ag"> </p>`),On=e(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),kn=e(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),An=e(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),jn=e(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="selection-bar svelte-1uha8ag"><!> <button class="control import svelte-1uha8ag">Import file</button> <button class="control">Import from Figma</button> <input type="file" hidden=""/></div> <div class="filter-bar svelte-1uha8ag"><!> <!> <!> <!> <div class="control search svelte-1uha8ag"><span class="search-icon-slot svelte-1uha8ag"><svg class="search-icon svelte-1uha8ag" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5"></circle><path d="m10.5 10.5 3 3"></path></svg></span> <input class="search-input svelte-1uha8ag" type="search" placeholder="Search assets and folders…" aria-label="Search assets and folders" spellcheck="false"/> <kbd class="svelte-1uha8ag"> </kbd></div> <label class="toggle svelte-1uha8ag"><input type="checkbox"/> Warnings only</label></div> <!> <!></div></div> <!> <!> <!> <!> <!> <!>`,1);function Mn(e,d){re(d,!0);let C=`fundus.gallery.sort`,w=`fundus.gallery.folder`;function T(){try{let e=localStorage.getItem(C);if(e===`type`||e===`manifest`||e===`alphabetical`)return e}catch{}return`alphabetical`}let O=y(v(T()));function se(){try{let e=localStorage.getItem(w);return e===null||e===`__all__`?null:e}catch{return null}}let j=y(v(se())),Te=y(`all`),P=y(`all`),Re=y(`all`),F=y(``),I=y(!1),L=y(!1),ze=y(null),R=y(null),Be=y(``),z=y(null),B=y(null),V=y(null),H=y(``),Ve=y(void 0),U=y(v([])),W=y(null),He=y(null),G=y(!1),K=y(null),q=0,Ue=y(null),We=0,Ge=y(null),Ke=0,qe=y(null),Je=0,J=y(v([])),Y=y(null),Ye=y(void 0),X=y(void 0),Xe=Se().join(`,`),Ze=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`;o(()=>{try{localStorage.setItem(C,s(O))}catch{}}),o(()=>{try{localStorage.setItem(w,s(j)??`__all__`)}catch{}});let Z=m(()=>N.state?.assets??[]),Qe=m(()=>s(V)!==null&&s(H)!==s(V)?fe(s(H)):null),$e=m(()=>s(V)!==null&&s(Z).some(e=>e.id!==s(V)&&e.id===s(H))),et=m(()=>s(V)!==null&&s(H)!==s(V)&&s(Qe)===null&&!s($e)&&!s(G)),tt=m(()=>s(V)===null?[]:(s(Z).find(e=>e.id===s(V))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${s(V)}`)),nt=m(()=>new Set(s(U))),rt=m(()=>s(U).flatMap(e=>(s(Z).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!s(nt).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),it=m(()=>N.state?.library.folders??[]),at=m(()=>N.manifestNames),ot=m(()=>[...new Set(s(Z).map(e=>e.type))].sort()),st=m(()=>s(F).trim()),ct=m(()=>new Ut(s(Z),{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})),lt=m(()=>s(st)===``?null:new Set(s(ct).search(s(st)).map(({item:e})=>e.id))),ut=m(()=>s(it).map(e=>({path:e,name:ye(e)}))),dt=m(()=>new Ut(s(ut),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),ft=m(()=>s(st)===``?null:new Set(s(dt).search(s(st)).map(({item:e})=>e.path))),pt=m(()=>s(j)===null?[]:s(it).filter(e=>le(e)===s(j)).sort((e,t)=>e.localeCompare(t))),mt=m(()=>s(ft)===null?s(pt):s(pt).filter(e=>s(ft).has(e)));o(()=>{N.state&&s(j)!==null&&s(j)!==``&&!s(it).includes(s(j))&&_(j,null)});let ht=m(()=>s(Z).filter(e=>!(s(j)!==null&&e.folder!==s(j)||s(lt)!==null&&!s(lt).has(e.id)||s(Te)!==`all`&&e.type!==s(Te)||!Wt(e.gitStatus,s(Re))||s(P)!==`all`&&!e.manifests.includes(s(P))&&!e.passiveManifests.some(e=>e.manifest===s(P))||s(I)&&e.warnings.length===0))),gt=(e,t)=>e.id.localeCompare(t.id),_t=m(()=>{let e=[...s(ht)].sort(gt);if(s(O)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(s(O)===`type`)return[...new Set(e.map(e=>e.type))].sort().map(t=>({key:t,heading:t,assets:e.filter(e=>e.type===t)}));let t=[];for(let n of s(at)){let r=e.filter(e=>e.manifests.includes(n)||e.passiveManifests.some(e=>e.manifest===n));r.length>0&&t.push({key:n,heading:n,emoji:N.manifestAppearance(n).emoji,assets:r})}let n=e.filter(e=>e.manifests.length===0&&e.passiveManifests.length===0);return n.length>0&&t.push({key:`__no-manifest__`,heading:`No manifest`,assets:n}),t}),Q=m(()=>[...new Set(s(_t).flatMap(e=>e.assets.map(e=>e.id)))]);o(()=>{let e=new Set(s(Z).map(e=>e.id)),t=s(J).filter(t=>e.has(t));t.length!==s(J).length&&_(J,t,!0)});function vt(e){Ie.begin(),_(j,e,!0),_(J,[],!0),_(Y,null)}function yt(e,t){if(t&&s(Y)!==null){let t=s(Q).indexOf(s(Y)),n=s(Q).indexOf(e);if(t!==-1&&n!==-1){let r=Math.min(t,n),i=Math.max(t,n);_(J,[...new Set([...s(J),...s(Q).slice(r,i+1)])],!0),_(Y,e,!0);return}}_(J,s(J).includes(e)?s(J).filter(t=>t!==e):[...s(J),e],!0),_(Y,e,!0)}function bt(){_(J,[...s(Q)],!0),_(Y,s(Q).at(-1)??null,!0)}function xt(e,t){if(!e.dataTransfer||t.length<2)return;let n=[...document.querySelectorAll(`.card[data-asset-id]`)],r=t.map(e=>n.find(t=>t.dataset.assetId===e)).filter(e=>e!==void 0);if(r.length<2)return;let i=document.createElement(`div`),a=44/(r.length-1),o=Math.min(r[0].offsetWidth,180),s=r[0].offsetHeight;Object.assign(i.style,{position:`fixed`,left:`-10000px`,top:`-10000px`,width:`${o+44}px`,height:`${s+44}px`,pointerEvents:`none`});for(let[e,t]of r.entries()){let n=t.cloneNode(!0);n.querySelector(`.asset-select`)?.remove(),n.removeAttribute(`href`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,{position:`absolute`,left:`${e*a}px`,top:`${e*a}px`,width:`${o}px`,height:`${s}px`,boxSizing:`border-box`,opacity:`1`}),i.append(n)}let c=document.createElement(`span`);c.textContent=String(t.length),Object.assign(c.style,{position:`absolute`,right:`0`,top:`0`,minWidth:`28px`,height:`28px`,padding:`0 7px`,boxSizing:`border-box`,borderRadius:`14px`,background:`var(--accent)`,color:`var(--text)`,font:`600 13px/28px system-ui, sans-serif`,textAlign:`center`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.35)`}),i.append(c),document.body.append(i),e.dataTransfer.setDragImage(i,24,24),requestAnimationFrame(()=>i.remove())}function St(e){e.preventDefault(),_(L,!1);let t=e.dataTransfer?.files?.[0];t&&(_(Be,s(j)??``,!0),_(ze,t,!0))}function Ct(e){_(Be,e,!0),s(Ye)?.click()}function wt(e){We+=1,_(Ue,{id:We,parent:e},!0)}function Tt(e){Ke+=1,_(Ge,{id:Ke,path:e},!0)}function Et(e){Je+=1,_(qe,{id:Je,path:e},!0)}function Dt(e){e.preventDefault(),_(B,null),_(z,{x:e.clientX,y:e.clientY,parent:s(j)??``,renamePath:null},!0)}function Ot(e,t){e.preventDefault(),e.stopPropagation(),_(B,null),_(z,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function kt(e,t){e.preventDefault(),e.stopPropagation(),_(z,null);let n=s(J).includes(t)?[...s(J)]:[t];s(J).includes(t)||(_(J,[t],!0),_(Y,t,!0)),_(B,{x:e.clientX,y:e.clientY,assetIds:n,targetAssetId:t},!0)}function At(e){q+=1,_(V,e,!0),_(H,e,!0),_(K,null),h().then(()=>{s(Ve)?.focus(),s(Ve)?.select()})}function jt(e){q+=1,_(U,[...new Set(e)],!0),_(K,null)}async function Mt(e){try{await Ce(e),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function Nt(e){let t=N.assetById(e);return t?an(t):[e]}async function Pt(e){try{await navigator.clipboard.writeText(e),N.error=null}catch(e){N.error=`Could not copy asset ID: ${e instanceof Error?e.message:String(e)}`}}async function Ft(e){try{await xe(e),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function It(){s(G)||(q+=1,_(V,null),_(U,[],!0),_(K,null))}async function Lt(){if(!s(et)||s(V)===null)return;let e=s(V),t=s(H);_(G,!0),_(K,null);let n=N.mutate(()=>he(e,{renameTo:t}),we(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});_(J,s(J).map(n=>n===e?t:n),!0),_(Y,s(Y)===e?t:s(Y),!0),_(V,null);let r=++q;_(G,!1);try{await n}catch(n){let i=N.assetById(e)!==null;i&&(_(J,s(J).map(n=>n===t?e:n),!0),_(Y,s(Y)===t?e:s(Y),!0)),i&&q===r&&(_(V,e,!0),_(H,t,!0),_(K,n instanceof Error?n.message:String(n),!0))}finally{_(G,!1)}}async function Rt(){if(s(U).length===0)return;let e=[...s(U)],t=[...s(J)],n=s(Y);_(G,!0),_(K,null);let r=N.mutate(()=>me(e),_e(e),{dependencies:e.map(e=>`asset:${e}`),invalidatesOnFailure:e.map(e=>`asset:${e}`)}),i=new Set(e);_(J,s(J).filter(e=>!i.has(e)),!0),s(Y)!==null&&i.has(s(Y))&&_(Y,null);let a=[...s(J)],o=s(Y);_(U,[],!0);let c=++q;_(G,!1);try{await r}catch(r){let i=new Set(e.filter(e=>N.assetById(e)));i.size>0&&s(J).length===a.length&&s(J).every((e,t)=>e===a[t])&&s(Y)===o&&(_(J,t.filter(e=>i.has(e)),!0),_(Y,n!==null&&i.has(n)?n:null,!0)),i.size>0&&q===c&&(_(U,e.filter(e=>i.has(e)),!0),_(K,r instanceof Error?r.message:String(r),!0))}finally{_(G,!1)}}function zt(e){return s(Z).filter(t=>t.folder===e).length}function Bt(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&_(ze,n,!0)}async function Vt(e){_(ze,null),_(R,null),await ce(M(`/asset/[id]`,{id:e}))}async function Ht(e,t){let n=e.filter(e=>N.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=N.assetById(e)?.folder;return t===void 0?[]:[t]})])],i=[...s(J)],a=s(Y),o=N.mutate(()=>ue(n,t),ve(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]});_(J,[],!0),_(Y,null);try{await o}catch{n.some(e=>N.assetById(e)?.folder!==t)&&s(J).length===0&&s(Y)===null&&(_(J,i,!0),_(Y,a,!0))}}function $(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=ke(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,s(W),t,s(it));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),_(He,t,!0))}function Gt(e,t){e.preventDefault(),_(He,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&Ht(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&De(r,t,s(it))&&Kt(r,t)}async function Kt(e,t){let n=pe(t,ye(e)),r=s(j),i=r,a=N.mutate(()=>ge(e,t),be(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});s(j)!==null&&de(s(j),e)&&(i=`${n}${s(j).slice(e.length)}`,vt(i));try{await a}catch{s(j)===i&&s(it).some(t=>de(t,e))&&vt(r)}finally{_(W,null),_(He,null)}}function qt(e){e&&e.play().catch(()=>{})}function Jt(e){e&&(e.pause(),e.currentTime=0)}function Yt(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),s(X)?.focus(),s(X)?.select())}var Xt=jn();i(`keydown`,a,Yt),i(`dragenter`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(L,!0))}),i(`dragover`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(L,!0))}),i(`drop`,a,St);var Zt=k(Xt),Qt=l(Zt);je(Qt,{get selectedFolder(){return s(j)},get createRequest(){return s(Ue)},get renameRequest(){return s(Ge)},get deleteRequest(){return s(qe)},onSelect:vt,onMoveAssets:(e,t)=>void Ht(e,t),get sharedDraggedFolder(){return s(W)},onFolderDragStart:e=>_(W,e,!0),onFolderDragEnd:()=>_(W,null),onContextMenu:(e,t,n,r)=>{_(B,null),_(z,{x:e,y:t,parent:n,renamePath:r},!0)}});var $t=c(Qt,2);let tn;var nn=l($t),on=l(nn),sn=e=>{var t=ln(),r=k(t),i=l(r);D(r);var a=c(r,2),o=c(a,2);g(()=>n(i,`${s(J).length??``} selected`)),p(`click`,a,bt),p(`click`,o,()=>{_(J,[],!0),_(Y,null)}),f(e,t)},Mn=e=>{var t=un();g(()=>t.disabled=s(Q).length===0),p(`click`,t,bt),f(e,t)};r(on,e=>{s(J).length>0?e(sn):e(Mn,-1)});var Nn=c(on,2),Pn=c(Nn,2),Fn=c(Pn,2);x(Fn,e=>_(Ye,e),()=>s(Ye)),D(nn);var In=c(nn,2),Ln=l(In);cn(Ln,{label:`Sort`,icon:`sort`,get value(){return s(O)},set value(e){_(O,e,!0)},children:(e,t)=>{var n=dn(),r=k(n);r.value=r.__value=`alphabetical`;var i=c(r,2);i.value=i.__value=`type`;var a=c(i,2);a.value=a.__value=`manifest`,f(e,n)},$$slots:{default:!0}});var Rn=c(Ln,2);cn(Rn,{label:`Filter by type`,icon:`asset-type`,get value(){return s(Te)},set value(e){_(Te,e,!0)},children:(e,r)=>{var i=pn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(ot),e=>e,(e,t)=>{var r=fn(),i=l(r,!0);D(r);var a={};g(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),f(e,r)}),f(e,i)},$$slots:{default:!0}});var zn=c(Rn,2);cn(zn,{label:`Filter by manifest`,icon:`manifest`,get value(){return s(P)},set value(e){_(P,e,!0)},children:(e,r)=>{var i=mn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(at),e=>e,(e,t)=>{let r=m(()=>N.manifestAppearance(t).emoji);var i=fn(),a=l(i,!0);D(i);var o={};g(()=>{n(a,s(r)?`${s(r)} ${t}`:t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),f(e,i)}),f(e,i)},$$slots:{default:!0}});var Bn=c(zn,2);cn(Bn,{label:`Filter by Git status`,icon:`git-branch`,get value(){return s(Re)},set value(e){_(Re,e,!0)},children:(e,t)=>{var n=hn(),r=k(n);r.value=r.__value=`all`;var i=c(r,2);i.value=i.__value=`changed`;var a=c(i,2);a.value=a.__value=`new`;var o=c(a,2);o.value=o.__value=`changed-and-new`,f(e,n)},$$slots:{default:!0}});var Vn=c(Bn,2),Hn=c(l(Vn),2);ne(Hn),x(Hn,e=>_(X,e),()=>s(X));var Un=c(Hn,2),Wn=l(Un,!0);D(Un),D(Vn);var Gn=c(Vn,2),Kn=l(Gn);ne(Kn),S(),D(Gn),D(In);var qn=c(In,2),Jn=e=>{f(e,gn())},Yn=e=>{var t=_n(),r=l(t,!0);D(t),g(()=>n(r,s(Z).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),f(e,t)},Xn=e=>{var a=Tn(),o=k(a),d=e=>{var r=yn(),a=l(r);Ae(a,{children:(e,t)=>{S(),f(e,u(`Folders`))},$$slots:{default:!0}});var o=c(a,2);t(o,20,()=>s(mt),e=>e,(e,t)=>{var r=vn();let a;var o=l(r);Ne(l(o),{size:18}),D(o);var u=c(o,2),d=l(u),m=l(d,!0);D(d);var h=c(d,2),v=l(h);D(h),D(u),S(2),D(r),g((e,i)=>{a=b(r,1,`folder-card svelte-1uha8ag`,null,a,{"drop-target":s(He)===t,"dragging-folder":s(W)===t}),n(m,e),n(v,`${i??``} assets`)},[()=>ye(t),()=>zt(t)]),p(`click`,r,()=>vt(t)),p(`contextmenu`,r,e=>Ot(e,t)),i(`dragstart`,r,e=>{_(W,t,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),i(`dragend`,r,()=>{_(W,null),_(He,null)}),i(`dragover`,r,e=>$(e,t)),i(`dragleave`,r,()=>_(He,null)),i(`drop`,r,e=>Gt(e,t)),f(e,r)}),D(o),D(r),f(e,r)};r(o,e=>{s(mt).length>0&&e(d)});var h=c(o,2),v=e=>{var a=E();t(k(a),17,()=>s(_t),e=>e.key,(e,a)=>{var o=wn(),u=l(o),d=e=>{Ae(e,{children:(e,t)=>{var i=xn(),o=k(i),u=e=>{var t=bn(),r=l(t,!0);D(t),g(()=>n(r,s(a).emoji)),f(e,t)};r(o,e=>{s(a).emoji&&e(u)});var d=c(o,1,!0);g(()=>n(d,s(a).heading)),f(e,i)},$$slots:{default:!0}})};r(u,e=>{s(a).heading&&e(d)});var h=c(u,2);t(h,21,()=>s(a).assets,e=>e.id,(e,a)=>{let o=m(()=>Oe[s(a).type]?.thumbnail);var u=Cn();let d;var h=l(u),_=e=>{{let t=m(()=>`${s(a).gitStatus===`new`?`New`:`Edited`} on ${N.state?.gitBranch??`the current Git branch`}`);Ee(e,{get kind(){return s(a).gitStatus},overlay:!0,get title(){return s(t)}})}};r(h,e=>{s(a).gitStatus&&e(_)});var v=c(h,2);ne(v);var y=c(v,2),x=l(y),S=e=>{var t=E();ee(k(t),()=>s(o),(e,t)=>{t(e,{get asset(){return s(a)}})}),f(e,t)};r(x,e=>{s(o)&&e(S)}),D(y);var C=c(y,2),w=l(C),T=l(w,!0);D(w);var re=c(w,2),ie=l(re,!0);D(re),D(C);var O=c(C,2),ae=l(O);t(ae,16,()=>s(a).manifests,e=>e,(e,t)=>{rn(e,{get name(){return t}})});var oe=c(ae,2);t(oe,17,()=>s(a).passiveManifests,e=>e.manifest,(e,t)=>{rn(e,{get name(){return s(t).manifest},passive:!0,get via(){return s(t).via}})}),t(c(oe,2),16,()=>s(a).warnings,e=>e,(e,t)=>{var n=Sn();g(()=>A(n,`title`,t)),f(e,n)}),D(O),D(u),g((e,t,r)=>{d=b(u,1,`card svelte-1uha8ag`,null,d,e),A(u,`data-asset-id`,s(a).id),A(u,`href`,t),te(v,r),A(v,`aria-label`,`Select ${s(a).id}`),n(T,s(a).id),n(ie,s(a).type)},[()=>({selected:s(J).includes(s(a).id)}),()=>M(`/asset/[id]`,{id:s(a).id}),()=>s(J).includes(s(a).id)]),p(`contextmenu`,u,e=>kt(e,s(a).id)),p(`click`,u,e=>{(s(J).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),yt(s(a).id,e.shiftKey))}),i(`dragstart`,u,e=>{let t=s(J).includes(s(a).id)?s(J):[s(a).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(t)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),xt(e,t)}),i(`focus`,u,e=>qt(e.currentTarget.querySelector(`video`))),i(`blur`,u,e=>Jt(e.currentTarget.querySelector(`video`))),p(`click`,v,e=>{e.stopPropagation(),yt(s(a).id,e.shiftKey)}),f(e,u)}),D(h),D(o),f(e,o)}),f(e,a)};r(h,e=>{s(ht).length>0&&e(v)}),f(e,a)};r(qn,e=>{N.state?s(ht).length===0&&s(mt).length===0?e(Yn,1):e(Xn,-1):e(Jn)});var Zn=c(qn,2),Qn=e=>{var t=En(),r=l(t);D(t),g(()=>n(r,`Drop to import into ${(s(j)||`Root`)??``}`)),f(e,t)};r(Zn,e=>{s(L)&&e(Qn)}),D($t),D(Zt);var $n=c(Zt,2),er=e=>{{let t=m(()=>s(z).renamePath===null?void 0:()=>Tt(s(z)?.renamePath??``)),n=m(()=>s(z).renamePath===null?void 0:()=>Et(s(z)?.renamePath??``));Fe(e,{get x(){return s(z).x},get y(){return s(z).y},onReveal:()=>void Ft(s(z)?.renamePath??s(z)?.parent??``),onNewDirectory:()=>wt(s(z)?.parent??``),get onRenameDirectory(){return s(t)},onImportFile:()=>Ct(s(z)?.parent??``),onImportFigma:()=>_(R,s(z)?.parent??``,!0),get onDeleteDirectory(){return s(n)},onClose:()=>_(z,null)})}};r($n,e=>{s(z)&&e(er)});var tr=c($n,2),nr=e=>{{let t=m(()=>Nt(s(B).targetAssetId)),n=m(()=>s(B).assetIds.length===1?()=>At(s(B)?.assetIds[0]??``):void 0);en(e,{get x(){return s(B).x},get y(){return s(B).y},get assetCount(){return s(B).assetIds.length},get copyOptions(){return s(t)},onCopy:e=>void Pt(e),onReveal:()=>void Mt(s(B)?.targetAssetId??``),get onRename(){return s(n)},onDelete:()=>jt(s(B)?.assetIds??[]),onClose:()=>_(B,null)})}};r(tr,e=>{s(B)&&e(nr)});var rr=c(tr,2),ir=e=>{{let t=m(()=>s(G)?`Renaming…`:`Rename`),i=m(()=>!s(et));Le(e,{title:`Rename asset`,get confirmLabel(){return s(t)},get confirmDisabled(){return s(i)},get busy(){return s(G)},onConfirm:()=>void Lt(),onCancel:It,children:(e,t)=>{var i=kn(),a=k(i),o=c(l(a),2);ne(o),x(o,e=>_(Ve,e),()=>s(Ve)),D(a);var u=c(a,2),d=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(Qe))),f(e,t)};r(u,e=>{s(Qe)&&e(d)});var p=c(u,2),m=e=>{f(e,On())};r(p,e=>{s($e)&&e(m)});var h=c(p,2),v=e=>{var t=Dn(),r=l(t);D(t),g(e=>n(r,`Renaming leaves ${s(tt).length??``} reference(s) pointing to the old ID:
2
- ${e??``}`),[()=>s(tt).join(`, `)]),f(e,t)};r(h,e=>{s(tt).length>0&&e(v)});var y=c(h,2),b=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(K))),f(e,t)};r(y,e=>{s(K)&&e(b)}),g(()=>o.disabled=s(G)),ae(o,()=>s(H),e=>_(H,e)),f(e,i)},$$slots:{default:!0}})}};r(rr,e=>{s(V)!==null&&e(ir)});var ar=c(rr,2),or=e=>{{let t=m(()=>s(U).length===1?`Delete asset`:`Delete ${s(U).length} assets`),i=m(()=>s(G)?`Deleting…`:s(U).length===1?`Delete asset`:`Delete ${s(U).length} assets`);Le(e,{get title(){return s(t)},get confirmLabel(){return s(i)},danger:!0,get busy(){return s(G)},onConfirm:()=>void Rt(),onCancel:It,children:(e,t)=>{var i=An(),a=k(i),o=l(a);D(a);var u=c(a,2),d=e=>{var t=Dn(),r=l(t);D(t),g(e=>n(r,`This leaves ${s(rt).length??``} external reference(s) dangling:
3
- ${e??``}`),[()=>s(rt).join(`, `)]),f(e,t)};r(u,e=>{s(rt).length>0&&e(d)});var p=c(u,2),m=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(K))),f(e,t)};r(p,e=>{s(K)&&e(m)}),g(e=>n(o,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>s(U).join(`, `)]),f(e,i)},$$slots:{default:!0}})}};r(ar,e=>{s(U).length>0&&e(or)});var sr=c(ar,2),cr=e=>{Pe(e,{get file(){return s(ze)},get folder(){return s(Be)},onDone:e=>void Vt(e),onCancel:()=>_(ze,null)})};r(sr,e=>{s(ze)&&e(cr)});var lr=c(sr,2),ur=e=>{Me(e,{get folder(){return s(R)},onDone:e=>void Vt(e),onCancel:()=>_(R,null)})};r(lr,e=>{s(R)!==null&&e(ur)}),g(()=>{tn=b($t,1,`page svelte-1uha8ag`,null,tn,{dragging:s(L)}),A(Fn,`accept`,Xe),n(Wn,Ze)}),p(`contextmenu`,$t,Dt),i(`dragleave`,$t,e=>{e.relatedTarget===null&&_(L,!1)}),p(`click`,Nn,()=>Ct(s(j)??``)),p(`click`,Pn,()=>_(R,s(j)??``,!0)),p(`change`,Fn,Bt),p(`keydown`,Hn,e=>{e.key===`Escape`&&(e.stopPropagation(),s(F)===``?e.currentTarget.blur():_(F,``))}),ae(Hn,()=>s(F),e=>_(F,e)),ie(Kn,()=>s(I),e=>_(I,e)),f(e,Xt),oe()}d([`contextmenu`,`click`,`change`,`keydown`]);export{Mn as component};
@@ -1 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,H as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,V as p,X as m,Z as h,_ as ee,a as g,at as _,b as v,f as y,it as b,k as x,l as te,nt as S,ot as C,p as ne,q as w,s as re,tt as T,u as E}from"../chunks/NblqapDQ.js";import{c as D,t as O}from"../chunks/B9iWbZmZ.js";import"../chunks/xihTtKlq.js";import{t as k}from"../chunks/DrsNq6gf.js";import{H as A,J as j,O as ie,Q as ae,X as oe,a as se,c as ce,et as le,m as ue,n as de,nt as fe,p as pe,t as M,u as N}from"../chunks/DylBiD8l.js";import{t as me}from"../chunks/C7Cs5PXV.js";import{c as he,l as P,n as ge,o as _e,s as ve,t as ye,u as F}from"../chunks/Blpvahbd.js";function be(e,t,n){return n===t.revision?e??t:e}var xe=e(`<div class="center empty svelte-xy8zsr">Loading…</div>`),Se=e(`<div class="center empty svelte-xy8zsr"> </div>`),Ce=e(`<div class="empty svelte-xy8zsr"> </div>`),we=e(`<p class="warning svelte-xy8zsr"> </p>`),Te=e(`<p class="hint error svelte-xy8zsr"> </p>`),Ee=e(`<section class="svelte-xy8zsr"><!> <p class="hint source-label svelte-xy8zsr"> </p> <label class="source-field svelte-xy8zsr"><span>Selection link</span> <input class="control svelte-xy8zsr" type="url"/></label> <label class="source-field svelte-xy8zsr"><span>Export scale</span> <select class="control svelte-xy8zsr"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label> <div class="source-actions svelte-xy8zsr"><a class="control svelte-xy8zsr" target="_blank" rel="noreferrer">Open in Figma</a> <button> </button></div> <!></section>`),De=e(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),Oe=e(`<p class="hint svelte-xy8zsr">No references.</p>`),ke=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),Ae=e(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),je=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),Me=e(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Ne=e(`<!> <!>`,1),Pe=e(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!></section> <!> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <button class="control replace-raw svelte-xy8zsr"> </button> <!> <div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),I=e(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!> <!>`,1);function L(e,l){S(l,!0);let L=f(()=>k.params.id??``),R=f(()=>M.assetById(a(L))),Fe=f(()=>M.manifestNames),Ie=f(()=>a(R)?M.state?.presetNames[a(R).type]??[]:[]),z=f(()=>a(R)?he[a(R).type]??null:null),Le=f(()=>a(z)?.panel??null),Re=f(()=>a(z)?.editor??null),B=f(()=>{if(a(R)?.importSource?.importer!==`figma`)return null;let e=a(R).importSource.parameters;if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e;return typeof t.fileKey!=`string`||typeof t.nodeId!=`string`||!/^\d+:\d+$/.test(t.nodeId)||t.scale!==1&&t.scale!==2&&t.scale!==3&&t.scale!==4?null:{fileKey:t.fileKey,nodeId:t.nodeId,scale:t.scale,url:`https://www.figma.com/design/${encodeURIComponent(t.fileKey)}/fundus?node-id=${t.nodeId.replace(`:`,`-`)}`}}),V=h(null),ze=0,H=f(()=>a(R)?a(V)&&a(V).assetId===a(R).id?a(V).value:b(a(R)).parameters:null);function Be(e){a(R)&&m(V,{assetId:a(R).id,value:e,revision:++ze},!0)}let U=null,W=h(null),Ve=h(null),He=0,Ue=h(null),We=0,Ge=h(null),Ke=0,G=h(null),K=h(null),qe=h(``),Je=h(void 0),Ye=h(void 0),q=h(null),Xe=h(null),J=h(null),Y=h(null),Ze=h(null),X=h(``),Z=h(2),Qe=f(()=>a(B)!==null&&(a(X).trim()!==a(B).url||a(Z)!==a(B).scale));i(()=>{let e=a(B),t=a(R)&&e?`${a(R).id}|${e.fileKey}|${e.nodeId}|${e.scale}`:null;t!==a(Ze)&&(m(Ze,t,!0),m(X,e?.url??``,!0),m(Z,e?.scale??2,!0),m(Y,null))});let $e=pe().join(`,`),et=f(()=>a(R)?ue(a(R).type).join(`,`):``),tt=h(null),Q=f(()=>a(R)&&a(tt)?.assetId===a(R).id?a(tt).value:a(R)?.id??``),nt=f(()=>a(R)&&a(Q)!==a(R).id?ie(a(Q))??(M.assetById(a(Q))?`An asset with this ID already exists.`:null):null);async function rt(e){if(!a(R))return;let t=a(R).id,n=M.state?de(M.state,t,e):[`asset:${t}`];Be(e);let r=a(V),i=M.mutate(()=>oe(t,{parameters:e}),N(t,{parameters:e}),{dependencies:n});a(V)?.revision===r.revision&&m(V,null);try{await i}catch{m(V,be(a(V),r,ze),!0)}}async function it(e){if(!a(R))return;let t=a(R).id,n=a(R).manifests.includes(e)?a(R).manifests.filter(t=>t!==e):[...a(R).manifests,e];try{await M.mutate(()=>oe(t,{manifests:n}),N(t,{manifests:n}),{dependencies:[`asset:${t}`,...[...new Set([...n,e])].map(e=>`manifest:${e}`)]})}catch{}}async function at(){if(!a(R)||a(Q)===a(R).id||a(nt))return;let e=a(R).id,t=a(Q),n=M.mutate(()=>oe(e,{renameTo:t}),N(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});m(tt,null);let r=a(L)===e?O(D(`/asset/[id]`,{id:t}),{replaceState:!0}):Promise.resolve();try{await Promise.all([n,r])}catch{a(L)===t&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}),{replaceState:!0})}}async function ot(){if(!a(R))return;let e=a(R).id;if(!confirm(`Delete "${e}"? The raw file and its proxies are removed.`))return;let t=M.mutate(()=>A(e),se([e]),{dependencies:[`asset:${e}`],invalidatesOnFailure:[`asset:${e}`]}),n=a(L)===e?F.begin():null;U=null;let r=n===null?Promise.resolve():O(D(`/`));try{await Promise.all([t,r])}catch{n!==null&&F.isCurrent(n)&&k.url.pathname===D(`/`)&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}))}}async function st(e,t){let n=F.begin();U=t?{assetId:t,intent:n}:null;try{localStorage.setItem(`fundus.gallery.folder`,e??`__all__`)}catch{}await O(D(`/`))}async function ct(e){let t=U;t?.assetId!==e||!F.isCurrent(t.intent)||k.url.pathname!==D(`/`)||!M.assetById(e)||(U=null,await O(D(`/asset/[id]`,{id:e})))}async function lt(e){await st(e,a(L))}async function ut(e,t){let n=e.filter(e=>M.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=M.assetById(e)?.folder;return t===void 0?[]:[t]})])];try{await M.mutate(()=>j(n,t),ce(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]})}catch{}}function dt(e){He+=1,m(Ve,{id:He,parent:e},!0)}function ft(e){We+=1,m(Ue,{id:We,path:e},!0)}function pt(e){Ke+=1,m(Ge,{id:Ke,path:e},!0)}function mt(e){m(qe,e,!0),a(Je)?.click()}function ht(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&m(G,n,!0)}async function gt(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!a(R))return;let r=a(R).id;m(q,r,!0),m(Xe,null);try{await M.mutateFromServer(()=>le(r,n),{dependencies:[`asset:${r}`]})}catch(e){m(Xe,{assetId:r,message:e instanceof Error?e.message:String(e)},!0)}finally{a(q)===r&&m(q,null)}}function _t(){a(R)&&(a(R).importSource&&!confirm(`Replace file and disconnect Figma source? Future re-imports will no longer be available.`)||a(Ye)?.click())}async function vt(){if(!a(R)||!a(B))return;let e=a(R).id,t=a(X).trim();if(t.length===0){m(Y,{assetId:e,message:`Enter a Figma selection link.`},!0);return}m(J,e,!0),m(Y,null);let n=a(Qe)?{url:t,scale:a(Z)}:void 0;try{await M.mutateFromServer(()=>ae(e,n),{dependencies:[`asset:${e}`]}),m(Ze,null)}catch(t){m(Y,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{a(J)===e&&m(J,null)}}async function yt(e){m(G,null),m(K,null),await O(D(`/asset/[id]`,{id:e}))}async function bt(e){try{await fe(e),M.error=null}catch(e){M.error=e instanceof Error?e.message:String(e)}}var xt=I(),St=w(xt),Ct=s(St);{let e=f(()=>a(R)?.folder??null);ge(Ct,{get selectedFolder(){return a(e)},get activeAsset(){return a(R)},get createRequest(){return a(Ve)},get renameRequest(){return a(Ue)},get deleteRequest(){return a(Ge)},onSelect:e=>void st(e),onMoveAssets:(e,t)=>void ut(e,t),onActiveAssetDeleted:e=>void lt(e),onActiveAssetDeleteFailed:e=>void ct(e),onContextMenu:(e,t,n,r)=>{m(W,{x:e,y:t,parent:n,renamePath:r},!0)}})}var wt=o(Ct,2),Tt=e=>{u(e,xe())},Et=e=>{var t=Se(),r=s(t);C(t),p(()=>n(r,`No asset with id "${a(L)??``}".`)),u(e,t)},Dt=e=>{var i=Pe(),l=w(i),f=s(l),h=e=>{var t=x();v(w(t),()=>a(Re),(e,t)=>{t(e,{get asset(){return a(R)},get parameters(){return a(H)},onParametersChange:Be,onParametersCommit:e=>void rt(e)})}),u(e,t)},g=e=>{var t=Ce(),r=s(t);C(t),p(()=>n(r,`No editor registered for asset type "${a(R).type??``}".`)),u(e,t)};r(f,e=>{a(Re)&&a(H)!==null?e(h):e(g,-1)}),C(l);var b=o(l,2),S=s(b),T=s(S),O=s(T,!0);C(T);var k=o(T,2),A=s(k),j=o(A),ie=s(j,!0);C(j),C(k),t(o(k,2),16,()=>a(R).warnings,e=>e,(e,t)=>{var r=we(),i=s(r);C(r),p(()=>n(i,`⚠ ${t??``}`)),u(e,r)}),C(S);var ae=o(S,2),oe=e=>{var t=x();v(w(t),()=>a(Le),(e,t)=>{t(e,{get asset(){return a(R)},get parameters(){return a(H)},onParametersChange:e=>Be(e),onParametersCommit:e=>void rt(e),get presetNames(){return a(Ie)}})}),u(e,t)};r(ae,e=>{a(Le)&&a(H)!==null&&e(oe)});var se=o(ae,2),ce=e=>{var t=Ee(),i=s(t);P(i,{children:(e,t)=>{_(),u(e,c(`Source`))},$$slots:{default:!0}});var l=o(i,2),f=s(l);C(l);var h=o(l,2),g=o(s(h),2);te(g),C(h);var v=o(h,2),y=o(s(v),2),b=s(y);b.value=b.__value=1;var x=o(b);x.value=x.__value=2;var S=o(x);S.value=S.__value=3;var w=o(S);w.value=w.__value=4,C(y),C(v);var T=o(v,2),D=s(T),O=o(D,2);let k;var A=s(O,!0);C(O),C(T);var j=o(T,2),ie=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(Y).message)),u(e,t)};r(j,e=>{a(Y)?.assetId===a(R).id&&e(ie)}),C(t),p(e=>{n(f,`Figma · node ${a(B).nodeId??``}`),g.disabled=a(J)===a(R).id,y.disabled=a(J)===a(R).id,E(D,`href`,a(B).url),k=ee(O,1,`control svelte-xy8zsr`,null,k,{primary:a(Qe)}),O.disabled=e,n(A,a(J)===a(R).id?a(Qe)?`Reimporting…`:`Refreshing…`:a(Qe)?`Reimport from Figma`:`Refresh`)},[()=>a(J)===a(R).id||a(X).trim().length===0]),re(g,()=>a(X),e=>m(X,e)),ne(y,()=>a(Z),e=>m(Z,e)),d(`click`,O,()=>void vt()),u(e,t)};r(se,e=>{a(B)&&e(ce)});var le=o(se,2),ue=s(le);P(ue,{children:(e,t)=>{_(),u(e,c(`Manifests`))},$$slots:{default:!0}});var de=o(ue,2),fe=e=>{u(e,De())},pe=e=>{me(e,{get manifests(){return a(Fe)},get selected(){return a(R).manifests},get passive(){return a(R).passiveManifests},onToggle:e=>void it(e)})};r(de,e=>{a(Fe).length===0?e(fe):e(pe,-1)}),C(le);var M=o(le,2),N=s(M);P(N,{children:(e,t)=>{_(),u(e,c(`References`))},$$slots:{default:!0}});var he=o(N,2),ge=e=>{u(e,Oe())},_e=e=>{var i=Ne(),c=w(i),l=e=>{var r=Ae();t(o(w(r),2),17,()=>a(R).references.outgoing,e=>`${e.field}→${e.assetId}`,(e,t)=>{var r=ke(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).field),n(d,a(t).assetId)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(c,e=>{a(R).references.outgoing.length>0&&e(l)});var d=o(c,2),f=e=>{var r=Me();t(o(w(r),2),17,()=>a(R).references.incoming,e=>`${e.assetId}→${e.field}`,(e,t)=>{var r=je(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).assetId),n(d,a(t).field)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(d,e=>{a(R).references.incoming.length>0&&e(f)}),u(e,i)};r(he,e=>{a(R).references.outgoing.length===0&&a(R).references.incoming.length===0?e(ge):e(_e,-1)}),C(M);var ve=o(M,2),ye=s(ve);P(ye,{children:(e,t)=>{_(),u(e,c(`Asset`))},$$slots:{default:!0}});var F=o(ye,2),be=s(F,!0);C(F);var xe=o(F,2),Se=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(Xe).message)),u(e,t)};r(xe,e=>{a(Xe)?.assetId===a(R).id&&e(Se)});var I=o(xe,2),L=s(I);te(L);var z=o(L,2);C(I);var V=o(I,2),ze=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(nt))),u(e,t)};r(V,e=>{a(nt)&&e(ze)});var U=o(V,2);C(ve),C(b),p(()=>{n(O,a(R).id),n(A,`${a(R).type??``} · `),n(ie,a(R).raw),F.disabled=a(q)===a(R).id,n(be,a(q)===a(R).id?`Replacing…`:`Replace`),y(L,a(Q)),z.disabled=a(Q)===a(R).id||a(nt)!==null}),d(`click`,F,_t),d(`input`,L,e=>m(tt,{assetId:a(R).id,value:e.currentTarget.value},!0)),d(`click`,z,()=>void at()),d(`click`,U,()=>void ot()),u(e,i)};r(wt,e=>{M.loaded?a(R)?e(Dt,-1):e(Et,1):e(Tt)}),C(St);var Ot=o(St,2);g(Ot,e=>m(Je,e),()=>a(Je));var $=o(Ot,2);g($,e=>m(Ye,e),()=>a(Ye));var kt=o($,2),At=e=>{{let t=f(()=>a(W).renamePath===null?void 0:()=>ft(a(W)?.renamePath??``)),n=f(()=>a(W).renamePath===null?void 0:()=>pt(a(W)?.renamePath??``));ye(e,{get x(){return a(W).x},get y(){return a(W).y},onReveal:()=>void bt(a(W)?.renamePath??a(W)?.parent??``),onNewDirectory:()=>dt(a(W)?.parent??``),get onRenameDirectory(){return a(t)},onImportFile:()=>mt(a(W)?.parent??``),onImportFigma:()=>m(K,a(W)?.parent??``,!0),get onDeleteDirectory(){return a(n)},onClose:()=>m(W,null)})}};r(kt,e=>{a(W)&&e(At)});var jt=o(kt,2),Mt=e=>{ve(e,{get file(){return a(G)},get folder(){return a(qe)},onDone:e=>void yt(e),onCancel:()=>m(G,null)})};r(jt,e=>{a(G)&&e(Mt)});var Nt=o(jt,2),Pt=e=>{_e(e,{get folder(){return a(K)},onDone:e=>void yt(e),onCancel:()=>m(K,null)})};r(Nt,e=>{a(K)!==null&&e(Pt)}),p(()=>{E(Ot,`accept`,$e),E($,`accept`,a(et))}),d(`change`,Ot,ht),d(`change`,$,e=>void gt(e)),u(e,xt),T()}l([`click`,`input`,`change`]);export{L as component};