fundus 0.28.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +41 -33
  2. package/build/client/_app/immutable/chunks/{OL1Dh1oP.js → BCmR1_e0.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BCmR1_e0.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BCmR1_e0.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{apKHI4vq.js → C0uU_Rhe.js} +2 -2
  6. package/build/client/_app/immutable/chunks/C0uU_Rhe.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/C0uU_Rhe.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{g2rma9Ym.js → CMJ10zbJ.js} +1 -1
  9. package/build/client/_app/immutable/chunks/CMJ10zbJ.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/CMJ10zbJ.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{QlQ-jeIO.js → kkVEh3_1.js} +1 -1
  12. package/build/client/_app/immutable/chunks/kkVEh3_1.js.br +2 -0
  13. package/build/client/_app/immutable/chunks/kkVEh3_1.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/wBLhaPea.js +1 -0
  15. package/build/client/_app/immutable/chunks/wBLhaPea.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/wBLhaPea.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/{app.DpZM49_s.js → app.DCXSqiQ1.js} +2 -2
  18. package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.br +0 -0
  19. package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.gz +0 -0
  20. package/build/client/_app/immutable/entry/start.BOUpxuMU.js +1 -0
  21. package/build/client/_app/immutable/entry/start.BOUpxuMU.js.br +0 -0
  22. package/build/client/_app/immutable/entry/start.BOUpxuMU.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{0.Wqvn8XD-.js → 0.CsqkK05g.js} +1 -1
  24. package/build/client/_app/immutable/nodes/0.CsqkK05g.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/0.CsqkK05g.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{1.Z-UvvLkP.js → 1.BVSXvtU9.js} +1 -1
  27. package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.br +2 -0
  28. package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{2.lu89W_qJ.js → 2.BJEXWmrT.js} +1 -1
  30. package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{3.Dt32EAoq.js → 3.BDMmDyL1.js} +1 -1
  33. package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{4.WipzcX8_.js → 4.dd49_qQE.js} +1 -1
  36. package/build/client/_app/immutable/nodes/4.dd49_qQE.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/4.dd49_qQE.js.gz +0 -0
  38. package/build/client/_app/version.json +1 -1
  39. package/build/client/_app/version.json.br +0 -0
  40. package/build/client/_app/version.json.gz +0 -0
  41. package/build/handler.js +7 -7
  42. package/build/index.js +7 -7
  43. package/build/server/chunks/chunks/{context.js-BZSZNuAd.js → context.js-DFZgDxCD.js} +157 -95
  44. package/build/server/chunks/chunks/context.js-DFZgDxCD.js.map +1 -0
  45. package/build/server/chunks/chunks/{contract.js-B4JdXFgm.js → contract.js-DGZXpcNX.js} +7 -7
  46. package/build/server/chunks/chunks/{contract.js-B4JdXFgm.js.map → contract.js-DGZXpcNX.js.map} +1 -1
  47. package/build/server/chunks/chunks/{core.js-BHxa3VBo.js → core.js-AGKlECJ0.js} +32 -32
  48. package/build/server/chunks/chunks/core.js-AGKlECJ0.js.map +1 -0
  49. package/build/server/chunks/chunks/{exports.js-D0dALD2Q.js → exports.js-BsVKSGJk.js} +2 -2
  50. package/build/server/chunks/chunks/{exports.js-D0dALD2Q.js.map → exports.js-BsVKSGJk.js.map} +1 -1
  51. package/build/server/chunks/chunks/{http.js-DYYKvppy.js → http.js-BQhjMaW9.js} +2 -2
  52. package/build/server/chunks/chunks/{http.js-DYYKvppy.js.map → http.js-BQhjMaW9.js.map} +1 -1
  53. package/build/server/chunks/chunks/{internal.js-CJkB_gzV.js → internal.js-DJGcNryj.js} +3 -3
  54. package/build/server/chunks/chunks/{internal.js-CJkB_gzV.js.map → internal.js-DJGcNryj.js.map} +1 -1
  55. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  56. package/build/server/chunks/chunks/{manifest-membership.js-BkrPsM_r.js → manifest-membership.js-DkHaPk2F.js} +2 -2
  57. package/build/server/chunks/chunks/{manifest-membership.js-BkrPsM_r.js.map → manifest-membership.js-DkHaPk2F.js.map} +1 -1
  58. package/build/server/chunks/chunks/{raw-reconciliation.js-DPnNXe0b.js → raw-reconciliation.js-D2sI2C-t.js} +3 -3
  59. package/build/server/chunks/chunks/raw-reconciliation.js-D2sI2C-t.js.map +1 -0
  60. package/build/server/chunks/chunks/{raw-reconciliation2.js-DKOpJ8if.js → raw-reconciliation2.js-CMpUvuMd.js} +2 -2
  61. package/build/server/chunks/chunks/{raw-reconciliation2.js-DKOpJ8if.js.map → raw-reconciliation2.js-CMpUvuMd.js.map} +1 -1
  62. package/build/server/chunks/chunks/{shared.js-D3ZDVUlh.js → shared.js-BtmYg0tL.js} +2 -2
  63. package/build/server/chunks/chunks/{shared.js-D3ZDVUlh.js.map → shared.js-BtmYg0tL.js.map} +1 -1
  64. package/build/server/chunks/chunks/{utils.js-CqWW_v-5.js → utils.js-CqXk0Ug6.js} +3 -3
  65. package/build/server/chunks/chunks/{utils.js-CqWW_v-5.js.map → utils.js-CqXk0Ug6.js.map} +1 -1
  66. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Dw2MW5Tm.js → _server.ts.js-DKGD9Jk2.js} +6 -6
  67. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Dw2MW5Tm.js.map → _server.ts.js-DKGD9Jk2.js.map} +1 -1
  68. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-GQDuJGug.js → _server.ts.js-C1UfF0EO.js} +7 -7
  69. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-GQDuJGug.js.map → _server.ts.js-C1UfF0EO.js.map} +1 -1
  70. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-JbLSv7Xx.js → _server.ts.js-DpASkk00.js} +7 -7
  71. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-JbLSv7Xx.js.map → _server.ts.js-DpASkk00.js.map} +1 -1
  72. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BPae-BYF.js → _server.ts.js-C3jU2vC8.js} +7 -7
  73. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BPae-BYF.js.map → _server.ts.js-C3jU2vC8.js.map} +1 -1
  74. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-BafrrUxu.js → _server.ts.js-B7OwufF3.js} +7 -7
  75. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-BafrrUxu.js.map → _server.ts.js-B7OwufF3.js.map} +1 -1
  76. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-UOlSNEi9.js → _server.ts.js-COhg1nYk.js} +7 -7
  77. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-UOlSNEi9.js.map → _server.ts.js-COhg1nYk.js.map} +1 -1
  78. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-QE1vUuAx.js → _server.ts.js-DAEE17eM.js} +7 -7
  79. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-QE1vUuAx.js.map → _server.ts.js-DAEE17eM.js.map} +1 -1
  80. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-DIVfppGt.js → _server.ts.js-BrZSS4gm.js} +7 -7
  81. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-DIVfppGt.js.map → _server.ts.js-BrZSS4gm.js.map} +1 -1
  82. package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-B6R_kqP8.js → _server.ts.js-Cfst-Brd.js} +7 -7
  83. package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-B6R_kqP8.js.map → _server.ts.js-Cfst-Brd.js.map} +1 -1
  84. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-CertbDsH.js → _server.ts.js-aN_h2Ifo.js} +7 -7
  85. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-CertbDsH.js.map → _server.ts.js-aN_h2Ifo.js.map} +1 -1
  86. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DEIF3Hu2.js → _server.ts.js-CX2A66ij.js} +7 -7
  87. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DEIF3Hu2.js.map → _server.ts.js-CX2A66ij.js.map} +1 -1
  88. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-DNFsNGr4.js → _server.ts.js-CwTiaheP.js} +7 -7
  89. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-DNFsNGr4.js.map → _server.ts.js-CwTiaheP.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DDW8XRPe.js → _server.ts.js-fIbsr_2e.js} +7 -7
  91. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DDW8XRPe.js.map → _server.ts.js-fIbsr_2e.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-C222-xli.js → _server.ts.js-Dvo1bsLi.js} +7 -7
  93. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-C222-xli.js.map → _server.ts.js-Dvo1bsLi.js.map} +1 -1
  94. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-CI1P1uyd.js → _server.ts.js-VLg1G3mN.js} +7 -7
  95. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-CI1P1uyd.js.map → _server.ts.js-VLg1G3mN.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DpiUwaSh.js → _server.ts.js-DqctsOop.js} +7 -7
  97. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DpiUwaSh.js.map → _server.ts.js-DqctsOop.js.map} +1 -1
  98. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DT0VPqPT.js → _server.ts.js-CoxSU5iO.js} +7 -7
  99. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DT0VPqPT.js.map → _server.ts.js-CoxSU5iO.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-DBpHM42g.js → _server.ts.js-wUxsLZdr.js} +7 -7
  101. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-DBpHM42g.js.map → _server.ts.js-wUxsLZdr.js.map} +1 -1
  102. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Cxu5b6Au.js → _server.ts.js-BKsF0Oit.js} +7 -7
  103. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Cxu5b6Au.js.map → _server.ts.js-BKsF0Oit.js.map} +1 -1
  104. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-W4dhMo8Y.js → _server.ts.js-Dk9oOZwM.js} +7 -7
  105. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-W4dhMo8Y.js.map → _server.ts.js-Dk9oOZwM.js.map} +1 -1
  106. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DJ_adxbT.js → _server.ts.js-DxjNmmtL.js} +7 -7
  107. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DJ_adxbT.js.map → _server.ts.js-DxjNmmtL.js.map} +1 -1
  108. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BisoHihD.js → _server.ts.js-DD0b38VV.js} +6 -6
  109. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BisoHihD.js.map → _server.ts.js-DD0b38VV.js.map} +1 -1
  110. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-D4jLLuko.js → _server.ts.js-DId6F2i_.js} +7 -7
  111. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-D4jLLuko.js.map → _server.ts.js-DId6F2i_.js.map} +1 -1
  112. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Dfv2ItjT.js → _server.ts.js-DKKkGoK2.js} +7 -7
  113. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Dfv2ItjT.js.map → _server.ts.js-DKKkGoK2.js.map} +1 -1
  114. package/build/server/chunks/entries/{hooks.server.js-oHJX5INm.js → hooks.server.js-B5Ctvorj.js} +6 -6
  115. package/build/server/chunks/entries/{hooks.server.js-oHJX5INm.js.map → hooks.server.js-B5Ctvorj.js.map} +1 -1
  116. package/build/server/chunks/{handler-BAe0c9yw.js → handler-DwVfBx6r.js} +5 -5
  117. package/build/server/chunks/{handler-BAe0c9yw.js.map → handler-DwVfBx6r.js.map} +1 -1
  118. package/build/server/chunks/{index.js-DUYD4JB0.js → index.js-DgPuPQJn.js} +5 -5
  119. package/build/server/chunks/{index.js-DUYD4JB0.js.map → index.js-DgPuPQJn.js.map} +1 -1
  120. package/build/server/chunks/{manifest.js-zwun-T7O.js → manifest.js-B054EcAf.js} +31 -31
  121. package/build/server/chunks/{manifest.js-zwun-T7O.js.map → manifest.js-B054EcAf.js.map} +1 -1
  122. package/build/server/chunks/nodes/{0.js-BmkXwDRY.js → 0.js-DoHZTmnT.js} +2 -2
  123. package/build/server/chunks/nodes/{0.js-BmkXwDRY.js.map → 0.js-DoHZTmnT.js.map} +1 -1
  124. package/build/server/chunks/nodes/1.js-BcPlsloO.js +7 -0
  125. package/build/server/chunks/nodes/{1.js-xbOwEHCW.js.map → 1.js-BcPlsloO.js.map} +1 -1
  126. package/build/server/chunks/nodes/{2.js-BuNw1vTZ.js → 2.js-5qCXkvzl.js} +2 -2
  127. package/build/server/chunks/nodes/{2.js-BuNw1vTZ.js.map → 2.js-5qCXkvzl.js.map} +1 -1
  128. package/build/server/chunks/nodes/3.js-D6fAMX1w.js +7 -0
  129. package/build/server/chunks/nodes/{3.js-Dpr_DvNU.js.map → 3.js-D6fAMX1w.js.map} +1 -1
  130. package/build/server/chunks/nodes/4.js-CGkeT0SQ.js +7 -0
  131. package/build/server/chunks/nodes/{4.js-14Lypd4o.js.map → 4.js-CGkeT0SQ.js.map} +1 -1
  132. package/dist/cli.js +3 -4
  133. package/dist/core/figma-tag-links.d.ts +66 -0
  134. package/dist/core/figma-tag-links.js +97 -0
  135. package/dist/core/index.d.ts +2 -2
  136. package/dist/core/index.js +1 -1
  137. package/dist/server/cli-commands.d.ts +1 -1
  138. package/dist/server/cli-commands.js +1 -1
  139. package/dist/server/cli-figma-tags.d.ts +1 -1
  140. package/dist/server/cli-figma-tags.js +149 -88
  141. package/dist/server/figma-tags.d.ts +72 -24
  142. package/dist/server/figma-tags.js +130 -79
  143. package/dist/server/importers/figma.d.ts +20 -15
  144. package/dist/server/importers/figma.js +172 -92
  145. package/package.json +1 -1
  146. package/build/client/_app/immutable/chunks/Bsj1ssvc.js +0 -1
  147. package/build/client/_app/immutable/chunks/Bsj1ssvc.js.br +0 -0
  148. package/build/client/_app/immutable/chunks/Bsj1ssvc.js.gz +0 -0
  149. package/build/client/_app/immutable/chunks/OL1Dh1oP.js.br +0 -0
  150. package/build/client/_app/immutable/chunks/OL1Dh1oP.js.gz +0 -0
  151. package/build/client/_app/immutable/chunks/QlQ-jeIO.js.br +0 -2
  152. package/build/client/_app/immutable/chunks/QlQ-jeIO.js.gz +0 -0
  153. package/build/client/_app/immutable/chunks/apKHI4vq.js.br +0 -0
  154. package/build/client/_app/immutable/chunks/apKHI4vq.js.gz +0 -0
  155. package/build/client/_app/immutable/chunks/g2rma9Ym.js.br +0 -0
  156. package/build/client/_app/immutable/chunks/g2rma9Ym.js.gz +0 -0
  157. package/build/client/_app/immutable/entry/app.DpZM49_s.js.br +0 -0
  158. package/build/client/_app/immutable/entry/app.DpZM49_s.js.gz +0 -0
  159. package/build/client/_app/immutable/entry/start.B3EMVPEN.js +0 -1
  160. package/build/client/_app/immutable/entry/start.B3EMVPEN.js.br +0 -0
  161. package/build/client/_app/immutable/entry/start.B3EMVPEN.js.gz +0 -0
  162. package/build/client/_app/immutable/nodes/0.Wqvn8XD-.js.br +0 -0
  163. package/build/client/_app/immutable/nodes/0.Wqvn8XD-.js.gz +0 -0
  164. package/build/client/_app/immutable/nodes/1.Z-UvvLkP.js.br +0 -0
  165. package/build/client/_app/immutable/nodes/1.Z-UvvLkP.js.gz +0 -0
  166. package/build/client/_app/immutable/nodes/2.lu89W_qJ.js.br +0 -0
  167. package/build/client/_app/immutable/nodes/2.lu89W_qJ.js.gz +0 -0
  168. package/build/client/_app/immutable/nodes/3.Dt32EAoq.js.br +0 -0
  169. package/build/client/_app/immutable/nodes/3.Dt32EAoq.js.gz +0 -0
  170. package/build/client/_app/immutable/nodes/4.WipzcX8_.js.br +0 -0
  171. package/build/client/_app/immutable/nodes/4.WipzcX8_.js.gz +0 -0
  172. package/build/server/chunks/chunks/context.js-BZSZNuAd.js.map +0 -1
  173. package/build/server/chunks/chunks/core.js-BHxa3VBo.js.map +0 -1
  174. package/build/server/chunks/chunks/raw-reconciliation.js-DPnNXe0b.js.map +0 -1
  175. package/build/server/chunks/nodes/1.js-xbOwEHCW.js +0 -7
  176. package/build/server/chunks/nodes/3.js-Dpr_DvNU.js +0 -7
  177. package/build/server/chunks/nodes/4.js-14Lypd4o.js +0 -7
  178. package/dist/core/figma-tag-script.d.ts +0 -154
  179. package/dist/core/figma-tag-script.js +0 -248
package/README.md CHANGED
@@ -411,8 +411,9 @@ expire with the one-shot CLI process.
411
411
  ## Figma import
412
412
 
413
413
  Fundus can import one selected Figma node as a PNG at 1x–4x and process it as an
414
- Image or Slice. Create a personal access token with `file_content:read` and keep
415
- it in an environment variable:
414
+ Image or Slice. Create a personal access token with `file_content:read` and
415
+ `file_dev_resources:read` (add `file_dev_resources:write` to tag nodes with
416
+ `fundus figma set-tag` and `delete-tag`) and keep it in an environment variable:
416
417
 
417
418
  ```ts
418
419
  import { defineConfig } from 'fundus/config';
@@ -448,12 +449,15 @@ Figma source.
448
449
 
449
450
  ### Reference by tag instead of node id
450
451
 
451
- Node ids are brittle: restructuring a frame or importing from a copied document
452
- can change them. Instead you can reference a node by a **tag** — a stable Fundus
453
- asset id stored in Figma as shared plugin data (`fundus.assetId`). Fundus
454
- resolves the tag to the current node through the REST API at import time, so the
455
- reference survives node moves and file copies, and you can see in Figma which
456
- frames are wired to Fundus.
452
+ Node ids are brittle: restructuring or recreating a frame changes them. Instead
453
+ you can reference a node by a **tag** — a stable Fundus asset id attached to the
454
+ node as a Dev Resources link with the URL
455
+ `https://fundus.invalid/asset/<tag>`, named `Fundus: <tag>`. The Fundus Figma
456
+ plugin (`figma-plugin/`) or the CLI below sets it. At import time Fundus lists
457
+ the file's links through the REST API in one small request and exports the node
458
+ carrying the tag, so the reference survives node moves and _file duplication_,
459
+ and the plugin shows each tag as a Dev Mode annotation. A tag on no node fails
460
+ with `not-found`, a tag on more than one node with `ambiguous-tag`.
457
461
 
458
462
  In tag mode **the tag is the asset id** — you do not choose a separate id. You do
459
463
  not rename such an asset directly; instead you change its tag, which renames the
@@ -466,7 +470,7 @@ file: pass `--figma-file` (a file key or a link) or set
466
470
  # Import by tag (id = the tag); uses defaultFileKey when --figma-file is omitted.
467
471
  npx fundus asset ingest --from figma --figma-tag navigationPanel --type slice \
468
472
  --figma-file 'https://www.figma.com/design/abc/UI' --scale 3
469
- # A plain reimport re-resolves the tag (picks up a moved node).
473
+ # A plain reimport looks up the node carrying the tag again (picks up a moved node).
470
474
  npx fundus asset reimport navigationPanel
471
475
  # Re-point in place to another file and/or scale (the tag, hence the id, stays).
472
476
  npx fundus asset reimport navigationPanel --figma-file def456 --scale 3
@@ -476,37 +480,41 @@ npx fundus asset reimport navigationPanel --figma-tag mainNavigationPanel
476
480
  npx fundus asset replace navigationPanel --from figma --figma-tag navigationPanel
477
481
  ```
478
482
 
479
- ### Tagging nodes from an agent
483
+ The editor import dialog offers the same choice through a **Link / Tag** switch
484
+ and remembers the last one used. On a tag asset's page, the Source section edits
485
+ the tag, file key, and scale in place — changing the tag renames the asset.
486
+
487
+ Known limits:
488
+
489
+ - Pasting a node into another file drops its tag; tag it again there.
490
+ - Branch files are not supported.
491
+ - Figma keeps listing the links of deleted nodes; Fundus ignores them.
492
+ - Undoing a node deletion revives its old link, which can make the tag
493
+ `ambiguous-tag`; `set-tag --force` on the node that should keep it fixes that.
480
494
 
481
- Tags are normally set with the Fundus Figma plugin. Agents
482
- can set them through Figma's MCP `use_figma` tool instead. The Figma REST API
483
- cannot write plugin data, so Fundus prepares the write and the agent runs it:
495
+ ### Tagging nodes from the CLI
484
496
 
485
497
  ```bash
486
- # Checks the tag (asset-id rules, unused in the file, no colliding Fundus asset)
487
- # and prints {"ok": true, "code": "…"}; a taken tag prints the file's existing tags.
488
- npx fundus figma prepare-set-tag --file 'https://www.figma.com/design/abc/UI' \
498
+ # Checks the tag (asset-id rules, a taggable node that exists, not on another
499
+ # node, no colliding Fundus asset), then writes the link; a taken tag prints the
500
+ # file's tags.
501
+ npx fundus figma set-tag --file 'https://www.figma.com/design/abc/UI' \
489
502
  --node-id 12-34 --tag navigationPanel --json
490
- # Removing a tag works the same way.
491
- npx fundus figma prepare-delete-tag --tag navigationPanel --json
503
+ npx fundus figma delete-tag --tag navigationPanel --json
492
504
  ```
493
505
 
494
- The agent passes `code` unchanged to `use_figma`. The set script re-checks every
495
- page of the live document (loading them all, which takes a few seconds on large
496
- files), writes the tag and its Dev Mode annotation exactly like the plugin, and
497
- returns the result, or throws without writing when the document changed.
498
- `--force` always sets the tag: it replaces a tag the node already carries, moves
499
- the tag away from any other node carrying it (tags stay unique), and overrides a
500
- Fundus asset of that id from another source. To move an asset imported by node id to a tag, tag
501
- its node with the asset's id (no `--force` needed), then run
502
- `fundus asset replace <id> --from figma --figma-tag <id> --scale <saved scale>`.
506
+ Both commands write the links directly over the REST API. A node that already
507
+ carries the tag is left as is. `--force` replaces another tag on the node, moves
508
+ the tag away from other nodes (which also resolves `ambiguous-tag`), and tags
509
+ despite a Fundus asset of that id from another source. The new link is written
510
+ before any old one is deleted, so an interrupted run can leave the tag on two
511
+ nodes but never loses it; rerun the command to finish. To move an asset imported
512
+ by node id to a tag, tag its node with the asset's id (no `--force` needed), then
513
+ run `fundus asset replace <id> --from figma --figma-tag <id> --scale <saved scale>`.
503
514
  Without `--scale` the replace exports at `import.figma.defaults.scale`, which
504
- also resets a slice's `pixelRatio`; the follow-up that `prepare-set-tag` prints
505
- already carries the asset's saved scale.
506
-
507
- The editor import dialog offers the same choice through a **Link / Tag** switch
508
- and remembers the last one used. On a tag asset's page, the Source section edits
509
- the tag, file key, and scale in place — changing the tag renames the asset.
515
+ also resets a slice's `pixelRatio`; the follow-up that `set-tag` prints already
516
+ carries the asset's saved scale. The Dev Mode annotation appears once the Fundus
517
+ Figma plugin opens the node's page.
510
518
 
511
519
  ## Is Fundus for me?
512
520
 
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,D as r,F as i,I as a,K as o,L as s,M as c,N as l,O as u,P as d,Q as f,R as p,T as m,U as h,V as g,W as _,X as v,Z as y,_ as b,a as x,b as S,d as C,dt as w,et as T,f as E,g as D,h as O,j as k,k as A,l as j,n as M,nt as N,o as P,ot as F,p as I,q as L,r as R,rt as z,s as B,st as V,tt as H,ut as U,v as W,x as G,y as K,z as q}from"./DLEDBLL1.js";import"./Bsj1ssvc.js";import"./xihTtKlq.js";import{C as J,D as Y,E as ee,F as te,G as ne,I as re,L as ie,M as ae,O as oe,P as X,R as Z,S as se,T as ce,V as le,Y as ue,Z as de,_ as fe,b as pe,ct as me,g as he,i as ge,it as _e,j as ve,k as ye,nt as be,p as xe,s as Se,t as Q,u as Ce,v as we,w as Te,x as Ee,y as De}from"./apKHI4vq.js";import{a as Oe,n as ke,t as Ae}from"./g2rma9Ym.js";import{a as je,i as Me,n as Ne,o as Pe,r as Fe}from"./CzxolZCO.js";function Ie(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`}var $=class{#e=0;#t=!1;#n;#r;constructor(e){this.#r=e}async run(e,t={}){let n=++this.#e,r=t.retainResult&&this.#t?this.#n:void 0;this.#r(t.retainResult&&this.#t?{status:`refreshing`,value:this.#n}:{status:`loading`});try{let t=await e();n===this.#e&&(this.#t=!0,this.#n=t,this.#r({status:`resolved`,value:t}))}catch(e){n===this.#e&&this.#r({status:`failed`,error:e instanceof Error?e.message:String(e),...t.retainResult&&this.#t?{value:r}:{}})}}cancel(){this.#e++,this.#t=!1,this.#r({status:`idle`})}},Le={folder:null,sort:`alphabetical`,type:[],manifest:[],changes:[],usage:`all`,query:``,warningsOnly:!1,view:`all`},Re=[`folder`,`sort`,`type`,`manifest`,`changes`,`usage`,`q`,`warnings`,`view`],ze=new Set([`alphabetical`,`type`,`manifest`]),Be=new Set([`changed`,`new`]),Ve=new Set([`all`,`unused`]),He=new Set([`all`,`duplicates`]);function Ue(e){let t=e.searchParams.get(`sort`),n=e.searchParams.get(`usage`);return{folder:e.searchParams.has(`folder`)?e.searchParams.get(`folder`)??``:null,sort:ze.has(t)?t:`alphabetical`,type:We(e,`type`),manifest:We(e,`manifest`),changes:Ge(e),usage:Ve.has(n)?n:`all`,query:e.searchParams.get(`q`)??``,warningsOnly:e.searchParams.get(`warnings`)===`1`,view:He.has(e.searchParams.get(`view`))?e.searchParams.get(`view`):`all`}}function We(e,t){return[...new Set(e.searchParams.getAll(t).filter(e=>e!==``&&e!==`all`))]}function Ge(e){let t=e.searchParams.getAll(`changes`),n=new Set;for(let e of t)e===`changed-and-new`?(n.add(`changed`),n.add(`new`)):Be.has(e)&&n.add(e);return[`changed`,`new`].filter(e=>n.has(e))}function Ke(e,t){let n=new URL(e);for(let e of Re)n.searchParams.delete(e);t.folder!==null&&n.searchParams.set(`folder`,t.folder),t.sort!==`alphabetical`&&n.searchParams.set(`sort`,t.sort);for(let e of t.type)n.searchParams.append(`type`,e);for(let e of t.manifest)n.searchParams.append(`manifest`,e);for(let e of t.changes)n.searchParams.append(`changes`,e);return t.usage!==`all`&&n.searchParams.set(`usage`,t.usage),t.query.trim()!==``&&n.searchParams.set(`q`,t.query),t.warningsOnly&&n.searchParams.set(`warnings`,`1`),t.view!==`all`&&n.searchParams.set(`view`,t.view),n}function qe(e,t,n){return e===t?n:{selectedAssetIds:[],lastSelectedAssetId:null}}function Je(e){return e.importSource?.importer===`figma`}function Ye(e){return e.length>0&&e.every(e=>e!==null&&Je(e))}function Xe(e){return Je(e)?Ze(e)?`figma-tag`:`figma-link`:`file`}function Ze(e){let t=e.importSource;if(!Je(e)||!t)return!1;let n=t.parameters;return typeof n!=`object`||!n||Array.isArray(n)?!1:n.mode===`tag`}var Qe=new class{#e=0;begin(){return++this.#e}isCurrent(e){return e===this.#e}};function $e(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var et=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4.5" y="3.5" width="2.5" height="9" fill="currentColor"></rect><rect x="9" y="3.5" width="2.5" height="9" fill="currentColor"></rect></svg>`),tt=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M5 3.3v9.4l7-4.7z" fill="currentColor"></path></svg>`),nt=d(`<span class="time svelte-nchstv"> </span> <input class="range scrub svelte-nchstv" type="range" min="0" step="0.01" aria-label="Seek"/> <span class="time svelte-nchstv"> </span>`,1),rt=d(`<span class="time svelte-nchstv"> </span>`),it=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 6l3.5 4M13.5 6 10 10" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),at=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 5.6a3.4 3.4 0 0 1 0 4.8" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path><path d="M11.8 3.9a6 6 0 0 1 0 8.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),ot=d(`<div class="volume-group svelte-nchstv"><button class="btn svelte-nchstv" type="button"><!></button> <input class="range volume svelte-nchstv" type="range" min="0" max="1" step="0.01" aria-label="Volume"/></div>`),st=d(`<div><button class="btn svelte-nchstv" type="button"><!></button> <button class="btn svelte-nchstv" type="button" aria-label="Stop"><svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4" y="4" width="8" height="8" rx="1" fill="currentColor"></rect></svg></button> <button type="button" aria-label="Loop"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="svelte-nchstv"><path d="M4.4 4.5H9A3.5 3.5 0 0 1 12.5 8"></path><path d="M2.4 6.4 4.3 4.4 6.3 6.1"></path><path d="M11.6 11.5H7A3.5 3.5 0 0 1 3.5 8"></path><path d="M13.6 9.6 11.7 11.6 9.7 9.9"></path></svg></button> <!> <!></div>`);function ct(n,r){V(r,!0);let i=x(r,`media`,7),a=x(r,`showScrub`,3,!1),s=x(r,`showVolume`,3,!0),l=N(!1),u=N(0),d=N(0),m=N(!1),h=N(1),_=N(!1),v=N(!1),b=!1,C=null,T=z(()=>$e(g(u))),D=z(()=>$e(g(d))),A=z(()=>g(d)>0),j=z(()=>g(_)?0:g(h));L(()=>{if(!i()){H(l,!1);return}let e=i();H(l,!e.paused),H(u,e.currentTime,!0),H(d,Number.isFinite(e.duration)?e.duration:0,!0),H(m,e.loop,!0),H(h,e.volume,!0),H(_,e.muted,!0);function t(){H(l,!0)}function n(){H(l,!1)}function r(){g(v)||H(u,e.currentTime,!0)}function a(){H(d,Number.isFinite(e.duration)?e.duration:0,!0)}function o(){H(h,e.volume,!0),H(_,e.muted,!0)}return e.addEventListener(`play`,t),e.addEventListener(`playing`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`timeupdate`,r),e.addEventListener(`seeked`,r),e.addEventListener(`loadedmetadata`,a),e.addEventListener(`durationchange`,a),e.addEventListener(`volumechange`,o),()=>{C===e&&(H(v,!1),b=!1,C=null),e.removeEventListener(`play`,t),e.removeEventListener(`playing`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`timeupdate`,r),e.removeEventListener(`seeked`,r),e.removeEventListener(`loadedmetadata`,a),e.removeEventListener(`durationchange`,a),e.removeEventListener(`volumechange`,o)}});function M(){i()&&(i().paused?i().play():i().pause())}function P(){i()&&(i().pause(),i().currentTime=0)}function R(){i()&&(i().loop=!i().loop,H(m,i().loop,!0))}function B(){i()&&(i().muted=!i().muted)}function U(e){if(!i())return;let t=e.currentTarget.valueAsNumber;i().volume=t,i().muted=t===0}function W(){!i()||g(v)||(H(v,!0),b=!i().paused,C=i(),i().pause())}function G(e){let t=C??i();if(!t)return;let n=e.currentTarget.valueAsNumber;Number.isFinite(t.duration)&&(t.currentTime=n),H(u,n,!0)}function K(){if(!g(v))return;let e=C;H(v,!1),b&&e&&i()===e&&e.play(),b=!1,C=null}L(()=>{if(g(v))return window.addEventListener(`pointerup`,K),window.addEventListener(`pointercancel`,K),()=>{window.removeEventListener(`pointerup`,K),window.removeEventListener(`pointercancel`,K)}});var q=st(),J=y(q),Y=y(J),ee=e=>{c(e,et())},te=e=>{c(e,tt())};t(Y,e=>{g(l)?e(ee):e(te,-1)}),w(J);var ne=e(J,2),re=e(ne,2);let ie;var ae=e(re,2),oe=t=>{var n=nt(),r=f(n),a=y(r,!0);w(r);var s=e(r,2);E(s);var l=e(s,2),m=y(l,!0);w(l),o(()=>{k(a,g(T)),I(s,`max`,g(A)?g(d):0),O(s,g(u)),s.disabled=!i()||!g(A),k(m,g(D))}),p(`pointerdown`,s,W),p(`input`,s,G),c(t,n)},X=e=>{var t=rt(),n=y(t);w(t),o(()=>k(n,`${g(T)??``} / ${g(D)??``}`)),c(e,t)};t(ae,e=>{a()?e(oe):g(A)&&e(X,1)});var Z=e(ae,2),se=n=>{var r=ot(),a=y(r),s=y(a),l=e=>{c(e,it())},u=e=>{c(e,at())};t(s,e=>{g(_)||g(h)===0?e(l):e(u,-1)}),w(a);var d=e(a,2);E(d),w(r),o(()=>{a.disabled=!i(),I(a,`aria-label`,g(_)?`Unmute`:`Mute`),O(d,g(j)),d.disabled=!i()}),p(`click`,a,B),p(`input`,d,U),c(n,r)};t(Z,e=>{s()&&e(se)}),w(q),o(()=>{S(q,1,`playback ${r.class??``??``}`,`svelte-nchstv`),J.disabled=!i(),I(J,`aria-label`,g(l)?`Pause`:`Play`),ne.disabled=!i(),ie=S(re,1,`btn svelte-nchstv`,null,ie,{active:g(m)}),re.disabled=!i(),I(re,`aria-pressed`,g(m))}),p(`click`,J,M),p(`click`,ne,P),p(`click`,re,R),c(n,q),F()}s([`click`,`pointerdown`,`input`]);var lt=null;function ut(){return lt||=new AudioContext,lt}var dt=null;function ft(e){let t=e.numberOfChannels;if(t===1)return e.getChannelData(0);let n=e.length,r=new Float32Array(n);for(let i=0;i<t;i++){let t=e.getChannelData(i);for(let e=0;e<n;e++)r[e]+=t[e]}for(let e=0;e<n;e++)r[e]/=t;return r}function pt(e,t){let n=new Float32Array(t),r=new Float32Array(t),i=e.length/t;for(let a=0;a<t;a++){let t=Math.floor(a*i),o=Math.min(e.length,Math.floor((a+1)*i)),s=0,c=0;for(let n=t;n<o;n++){let t=e[n];t<s&&(s=t),t>c&&(c=t)}n[a]=s,r[a]=c}return{min:n,max:r}}function mt(e,t,n){return Math.min(n,Math.max(t,e))}var ht=d(`<div class="footer svelte-1liihyn"><!></div>`),gt=d(`<div><canvas class="wave svelte-1liihyn" role="button" tabindex="0" aria-label="Audio waveform — click or press Enter to play; arrow keys scrub"></canvas> <!></div>`);function _t(n,r){V(r,!0);let i=x(r,`loop`,3,!1),a=x(r,`showControls`,3,!1),s=N(void 0),l=N(null),u=N(!1),d=N(0),f=N(0),m=`idle`,h=null,v=null,b=0,C=1,T=`#0d99ff`,E=`#7a7a7a`,D=`#f24822`,O=0;function k(){if(!g(s))return;let e=getComputedStyle(g(s));T=e.getPropertyValue(`--accent`).trim()||T,E=e.getPropertyValue(`--text-faint`).trim()||E,D=e.getPropertyValue(`--danger`).trim()||D}function A(){if(!g(s))return;let e=g(s).getBoundingClientRect();C=window.devicePixelRatio||1;let t=Math.max(1,Math.round(e.width*C)),n=Math.max(1,Math.round(e.height*C));(g(s).width!==t||g(s).height!==n)&&(g(s).width=t,g(s).height=n,v=null),k()}function j(){if(!g(s))return;let e=g(s).getContext(`2d`);if(!e)return;let t=g(s).width,n=g(s).height,r=n/2;if(e.clearRect(0,0,t,n),m!==`ready`||!h){e.strokeStyle=m===`error`?D:E,e.lineWidth=Math.max(1,C),e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke();return}let i=Math.max(1,Math.floor(t));(!v||b!==i)&&(v=pt(h,i),b=i);let a=g(f)>0?mt(g(d)/g(f),0,1):0,o=a*t,c=r*.9,l=t/i;e.lineWidth=1;for(let t=0;t<i;t++){let n=t*l,i=r-v.max[t]*c,a=r-v.min[t]*c;e.strokeStyle=n<=o?T:E,e.beginPath(),e.moveTo(n+.5,Math.min(i,r-.5)),e.lineTo(n+.5,Math.max(a,r+.5)),e.stroke()}a>0&&(e.strokeStyle=T,e.lineWidth=Math.max(1,C),e.beginPath(),e.moveTo(o,0),e.lineTo(o,n),e.stroke())}function M(){O&&=(cancelAnimationFrame(O),0)}function P(){g(l)&&H(d,g(l).currentTime,!0),j(),g(u)&&(O=requestAnimationFrame(P))}async function I(e){m=`loading`,j();try{let t=await(await fetch(e)).arrayBuffer(),n=await ut().decodeAudioData(t);if(e!==r.src)return;h=ft(n),g(f)||H(f,n.duration,!0),m=`ready`,v=null,j()}catch{if(e!==r.src)return;m=`error`,j()}}function R(e){if(e.preventDefault(),e.stopPropagation(),!g(s)||!g(l))return;let t=g(s).getBoundingClientRect(),n=mt((e.clientX-t.left)/t.width,0,1),r=g(l).duration;Number.isFinite(r)&&r>0&&(g(l).currentTime=n*r),g(l).play()}function z(){g(l)&&(g(l).paused?g(l).play():g(l).pause())}function U(e){if(g(l)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),z();return}if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=g(l).duration;if(!Number.isFinite(t)||t<=0)return;e.preventDefault();let n=e.key===`ArrowRight`?5:-5;g(l).currentTime=mt(g(l).currentTime+n,0,t)}}}L(()=>{let e=g(l);e&&(e.loop=i())}),L(()=>{let e=r.src,t=g(s);if(!t)return;m=`idle`,h=null,v=null,b=0,H(d,0),H(f,0),H(u,!1);let n=new Audio(e);n.preload=`metadata`,n.loop=_(()=>i());function a(){dt&&dt!==n&&dt.pause(),dt=n,H(u,!0),M(),O=requestAnimationFrame(P)}function o(){dt===n&&(dt=null),H(u,!1),M(),j()}function c(){dt===n&&(dt=null),H(u,!1),M(),j()}function p(){H(d,n.currentTime,!0),g(u)||j()}function y(){Number.isFinite(n.duration)&&H(f,n.duration,!0),j()}n.addEventListener(`play`,a),n.addEventListener(`pause`,o),n.addEventListener(`ended`,c),n.addEventListener(`timeupdate`,p),n.addEventListener(`loadedmetadata`,y),n.addEventListener(`durationchange`,y),n.addEventListener(`seeked`,p),H(l,n,!0);let x=new ResizeObserver(()=>{A(),j()});x.observe(t);let S=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(S.disconnect(),I(e))});return S.observe(t),A(),j(),()=>{M(),x.disconnect(),S.disconnect(),n.removeEventListener(`play`,a),n.removeEventListener(`pause`,o),n.removeEventListener(`ended`,c),n.removeEventListener(`timeupdate`,p),n.removeEventListener(`loadedmetadata`,y),n.removeEventListener(`durationchange`,y),n.removeEventListener(`seeked`,p),n.pause(),dt===n&&(dt=null),n.removeAttribute(`src`),n.load(),H(l,null)}});var W=gt(),G=y(W);B(G,e=>H(s,e),()=>g(s));var K=e(G,2),q=e=>{var t=ht();ct(y(t),{get media(){return g(l)}}),w(t),c(e,t)};t(K,e=>{a()&&e(q)}),w(W),o(()=>S(W,1,`audio-waveform ${r.class??``??``}`,`svelte-1liihyn`)),p(`click`,G,R),p(`keydown`,G,U),c(n,W),F()}s([`click`,`keydown`]);var vt=d(`<div class="audio-frame svelte-1ww4cvx"><!></div>`),yt=d(`<p class="svelte-1ww4cvx">No proxy yet — add the asset to a manifest to process it.</p>`),bt=d(`<div class="stage checkerboard svelte-1ww4cvx"><!></div>`);function xt(e,n){V(n,!0);var r=bt(),i=y(r),a=e=>{var t=vt();A(y(t),()=>n.asset.proxy.url,e=>{_t(e,{get src(){return n.asset.proxy.url},showControls:!0})}),w(t),c(e,t)},o=e=>{c(e,yt())};t(i,e=>{n.asset.proxy?e(a):e(o,-1)}),w(r),c(e,r),F()}function St(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function Ct(e,t){return t.coarse?e*10:t.fine?e*.1:e}function wt(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function Tt(e,t){let n=10**t;return Math.round(e*n)/n}function Et(e){let t=Ct(e.step,e.modifiers),n=Tt(e.startValue+e.deltaX*t,wt(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function Dt(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function Ot(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var kt=d(`<span class="suffix svelte-nhap92" aria-hidden="true"> </span>`),At=d(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),jt=d(`<span><input class="input svelte-nhap92" type="number"/> <!> <!></span>`);function Mt(n,r){V(r,!0);let i=x(r,`step`,3,1),a=x(r,`placeholder`,3,``),s=x(r,`allowNull`,3,!1),l=x(r,`align`,3,`left`),u=N(null),d=N(!1),f=N(null),m=N(null),h=z(()=>g(u)?.activated?g(u).currentValue:r.value),_=z(()=>Math.max(1,g(m)??String(g(h)??a()).length));function b(e){return{coarse:e.shiftKey,fine:e.altKey}}function C(e){e.preventDefault(),Dt(e.currentTarget,e),H(u,{pointerId:e.pointerId,startX:e.clientX,startValue:r.value,currentValue:null,activated:!1},!0)}function T(e){if(!g(u)||e.pointerId!==g(u).pointerId)return;let t=e.clientX-g(u).startX;if(!g(u).activated){if(Math.abs(t)<3)return;g(u).activated=!0,document.body.style.cursor=`ew-resize`}let n=Et({startValue:g(u).startValue??r.min??0,deltaX:t,step:i(),modifiers:b(e),min:r.min,max:r.max});n!==g(u).currentValue&&(g(u).currentValue=n,r.onChange?.(n))}function D(e){if(!g(u)||e.pointerId!==g(u).pointerId)return;Ot(e.currentTarget,e.pointerId);let t=g(u).activated,n=g(u).startValue,i=g(u).currentValue;if(H(u,null),document.body.style.cursor=``,!t){M();return}let a=St({startValue:n,scrubbedValue:i,min:r.min});a.commit===void 0?`rollbackTo`in a&&r.onChange?.(a.rollbackTo??null):r.onCommit(a.commit)}function A(){if(!g(u))return;let e=g(u).startValue,t=g(u).activated;H(u,null),document.body.style.cursor=``,t&&r.onChange?.(e)}function j(e){g(u)&&e.key===`Escape`&&(e.preventDefault(),A())}L(()=>()=>{g(u)&&(document.body.style.cursor=``)});function M(){H(d,!0),queueMicrotask(()=>{g(f)?.focus(),g(f)?.select()})}function P(e){let t=e.currentTarget.valueAsNumber;Number.isFinite(t)?r.onCommit(t):r.onCommit(s()?null:r.min??0)}function R(e){H(m,e.currentTarget.value.length,!0)}function U(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=g(h)===null?``:String(g(h)),e.currentTarget.blur())}var W=jt();q(`keydown`,v,j);let G;var J=y(W);E(J);let Y;B(J,e=>H(f,e),()=>g(f));var ee=e(J,2),te=e=>{var t=kt(),n=y(t,!0);w(t),o(()=>k(n,r.suffix)),c(e,t)};t(ee,e=>{r.suffix!==void 0&&e(te)});var ne=e(ee,2),re=e=>{var t=At();p(`pointerdown`,t,C),p(`pointermove`,t,T),p(`pointerup`,t,D),q(`pointercancel`,t,A),c(e,t)};t(ne,e=>{g(d)||e(re)}),w(W),o(()=>{G=S(W,1,`scrub-number svelte-nhap92`,null,G,{right:l()===`right`,"with-suffix":r.suffix!==void 0}),I(J,`aria-label`,r.ariaLabel),I(J,`min`,r.min),I(J,`max`,r.max),I(J,`step`,i()),I(J,`placeholder`,a()),O(J,g(h)??``),Y=K(J,``,Y,{width:r.suffix===void 0?void 0:`${g(_)}ch`})}),q(`focus`,J,e=>{H(d,!0),H(m,e.currentTarget.value.length,!0)}),q(`blur`,J,()=>{H(d,!1),H(m,null)}),p(`input`,J,R),p(`change`,J,P),p(`keydown`,J,U),c(n,W),F()}s([`input`,`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var Nt=d(`<span class="caption svelte-368zap"> </span>`),Pt=d(`<span class="fill svelte-368zap"></span>`),Ft=d(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function It(n,r){let i=x(r,`step`,3,1),s=x(r,`placeholder`,3,``),u=x(r,`rangeFill`,3,!0),d=z(()=>!u()||r.min===void 0||r.max===void 0||r.value===null||r.max<=r.min?null:Math.max(0,Math.min(100,(r.value-r.min)/(r.max-r.min)*100)));var p=Ft(),h=y(p),_=e=>{var t=Nt(),n=y(t,!0);w(t),o(()=>k(n,r.caption)),c(e,t)};t(h,e=>{r.caption&&e(_)});var v=e(h,2),b=y(v),S=e=>{var t=Pt();o(()=>K(t,`width: ${g(d)??``}%`)),c(e,t)};t(b,e=>{g(d)!==null&&e(S)});var C=e(b,2),T=y(C),E=e=>{var t=l();m(f(t),()=>r.icon),c(e,t)},D=e=>{var t=a();o(()=>k(t,r.label)),c(e,t)};t(T,e=>{r.icon?e(E):e(D,-1)}),w(C),Mt(e(C,2),{get value(){return r.value},get min(){return r.min},get max(){return r.max},get step(){return i()},get placeholder(){return s()},get suffix(){return r.suffix},allowNull:!0,get ariaLabel(){return r.label},get onChange(){return r.onChange},get onCommit(){return r.onCommit}}),w(v),w(p),o(()=>I(C,`title`,r.label)),c(n,p)}var Lt=d(`<h3 class="svelte-1ol624f"><!></h3>`);function Rt(e,t){var n=Lt();m(y(n),()=>t.children),w(n),c(e,n)}var zt=d(`<span class="caption svelte-bczi6w"> </span>`),Bt=d(`<option> </option>`),Vt=d(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function Ht(n,i){V(i,!0);var s=Vt(),u=y(s),d=e=>{var t=zt(),n=y(t,!0);w(t),o(()=>k(n,i.caption)),c(e,t)};t(u,e=>{i.caption&&e(d)});var h=e(u,2),g=y(h),_=y(g),v=e=>{var t=l();m(f(t),()=>i.icon),c(e,t)},x=e=>{var t=a();o(e=>k(t,e),[()=>i.label.slice(0,1)]),c(e,t)};t(_,e=>{i.icon?e(v):e(x,-1)}),w(g);var S=e(g,2);r(S,20,()=>i.options,e=>e,(e,t)=>{var n=Bt(),r=y(n,!0);w(n);var i={};o(()=>{k(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),c(e,n)}),w(S);var C;b(S),w(h),w(s),o(()=>{I(g,`title`,i.label),I(S,`aria-label`,i.label),C!==(C=i.value)&&(S.value=(S.__value=i.value)??``,W(S,i.value))}),p(`change`,S,e=>i.onChange(e.currentTarget.value)),c(n,s),F()}s([`change`]);var Ut=d(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),Wt=d(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),Gt=d(`<section class="svelte-m9vwwu"><!> <!></section>`);function Kt(n,r){V(r,!0);let i=x(r,`showDimensions`,3,!1),s=x(r,`showDuration`,3,!1);var l=Gt(),u=y(l);Rt(u,{children:(e,t)=>{U(),c(e,a(`Output`))},$$slots:{default:!0}});var d=e(u,2),f=n=>{var l=Ut(),u=y(l),d=e=>{var t=a();o(()=>k(t,`${r.proxy.width??``} × ${r.proxy.height??``} px ·`)),c(e,t)};t(u,e=>{i()&&r.proxy.width!==void 0&&r.proxy.height!==void 0&&e(d)});var f=e(u,2),p=e=>{var t=a();o(e=>k(t,`${e??``} ·`),[()=>je(r.proxy.durationMs)]),c(e,t)};t(f,e=>{s()&&r.proxy.durationMs!==void 0&&e(p)});var m=e(f),h=e(m,3),g=y(h,!0);w(h),w(l),o(e=>{k(m,` ${e??``} `),k(g,r.proxy.fileName)},[()=>Me(r.proxy.fileSize)]),c(n,l)},p=e=>{c(e,Wt())};t(d,e=>{r.proxy?e(f):e(p,-1)}),w(l),c(n,l),F()}var qt=d(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function Jt(t,n){V(n,!0);let r=z(()=>Te.validateParameters(n.parameters));function i(e){n.onParametersCommit(e)}function o(e){i({...g(r),preset:e})}function s(e){let{targetWidth:t,...n}=g(r);return e===null||!Number.isFinite(e)||e<=0?n:{...n,targetWidth:Math.round(e)}}function l(e,t){let r=s(e);t?i(r):n.onParametersChange(r)}var u=qt(),d=f(u),p=y(d);Rt(p,{children:(e,t)=>{U(),c(e,a(`Image`))},$$slots:{default:!0}});var m=e(p,2);Ht(y(m),{label:`Preset`,caption:`Preset`,get value(){return g(r).preset},get options(){return n.presetNames},onChange:o,icon:e=>{Oe(e,{name:`preset`})},$$slots:{icon:!0}}),w(m);var h=e(m,2),_=y(h);{let e=e=>{Oe(e,{name:`width`})},t=z(()=>g(r).targetWidth??null);It(_,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return g(t)},onChange:e=>l(e,!1),onCommit:e=>l(e,!0),icon:e,$$slots:{icon:!0}})}w(h),w(d),Kt(e(d,2),{get proxy(){return n.asset.proxy},showDimensions:!0}),c(t,u),F()}new Set([...new Set([`video`,`chroma-key-video`,`audio`])].filter(e=>fe.has(e)));function Yt(e){if(e.ok)return!0;if(e.status!==0||e.type!==`basic`)return!1;try{let t=new URL(e.url).protocol;return t!==`http:`&&t!==`https:`}catch{return!1}}async function Xt(e){let t=await fetch(e);if(!Yt(t))throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function Zt(e,t,n){if(n!==t)throw Error(`Preloading "${e}" failed: expected ${t} bytes, received ${n}.`)}var Qt={async preload(e,t){if(Zt(e,t,(await(await Xt(e)).arrayBuffer()).byteLength),typeof globalThis.Image==`function`){let t=new globalThis.Image;return t.src=e,await t.decode(),{image:t}}return{}}},$t={async preload(e,t,n){let r=await(await Xt(e)).blob();if(Zt(e,t,r.size),n?.slicing?.mode!==`one`&&typeof globalThis.createImageBitmap==`function`)return{imageBitmap:await globalThis.createImageBitmap(r,{premultiplyAlpha:`premultiply`})};if(typeof globalThis.Image==`function`){let t=new globalThis.Image;return t.src=e,await t.decode(),{image:t}}return{}},release(e){e.imageBitmap?.close()}},en={async preload(e,t){let n=await(await Xt(e)).blob();return Zt(e,t,n.size),typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(n)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}},tn={image:Qt,slice:$t,video:en,"chroma-key-video":en,audio:en};new Map(Object.entries(fe.project(tn,`runtime handler`)));var nn=new Map;function rn(e){return nn.get(e)?.resources?.objectUrl??e}function an(e){let t=nn.get(e)?.resources;return t?.imageBitmap??t?.image??null}function on(e,t,n){return Math.max(t,Math.min(n,e))}function sn(e){let{mode:t,insets:n}=e.slicing,r=J(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function cn(e){let t=e.slicing.overdraw;if(!t)return pe();let n=e.sourceWidth,r=e.sourceHeight,i=on(t.left,0,Math.max(0,n-1)),a=on(t.right,0,Math.max(0,n-i-1)),o=on(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:on(t.bottom,0,Math.max(0,r-o-1)),left:i}}function ln(e,t,n){let r=cn(e);return{width:Math.max(1,t-r.left-r.right),height:Math.max(1,n-r.top-r.bottom)}}function un(e,t,n){let r=cn(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=ln(e,e.sourceWidth,e.sourceHeight),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function dn(e,t,n,r){let i=t>0?Math.max(1,Math.round(t)):0,a=n>0?Math.max(1,Math.round(n)):0,o=un(e,i,a),s=i+o.left+o.right,c=a+o.top+o.bottom,l=i>0?t/i:1,u=a>0?n/a:1;return{renderWidth:i,renderHeight:a,cssLeft:-o.left*l+0,cssTop:-o.top*u+0,cssWidth:s*l,cssHeight:c*u,backingWidth:s*r,backingHeight:c*r,originX:o.left*r,originY:o.top*r}}function fn(e,t){return[t(e[0]),t(e[1]),t(e[2]),t(e[3])]}function pn(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function mn(e,t,n){let r=un(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=sn(e),d=on(u.left,0,o),f=on(u.right,0,Math.max(0,o-d)),p=on(u.top,0,s),m=on(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=pn([_,y,v]),w=pn([b,S,x]);return{sourceX:[0,d,d+h,d+h+f],sourceY:[0,p,p+g,p+g+m],destX:fn(C,e=>e-r.left),destY:fn(w,e=>e-r.top)}}function hn(e,t,n,r,i){if(![t,n,r,i].every(Number.isFinite))throw RangeError(`Slice grid coordinates and dimensions must be finite.`);let a=r>0?Math.max(1,Math.round(r)):0,o=i>0?Math.max(1,Math.round(i)):0,s=mn(e,a,o),c=(e,t,n,r)=>{if(r===0)return[t,t,t,t];let i=n/r;return fn(e,e=>t+e*i)};return{sourceX:s.sourceX,sourceY:s.sourceY,destX:c(s.destX,t,r,a),destY:c(s.destY,n,i,o)}}function gn(e,t,n,r,i,a,o){let{sourceX:s,sourceY:c,destX:l,destY:u}=hn(t,r,i,a,o);for(let t=0;t<3;t++){let r=c[t+1]-c[t],i=u[t+1]-u[t];if(!(r<=0||i<=0))for(let a=0;a<3;a++){let o=s[a+1]-s[a],d=l[a+1]-l[a];o<=0||d<=0||e.drawImage(n,s[a],c[t],o,r,l[a],u[t],d,i)}}}var _n=new Set([`$$slots`,`$$events`,`$$legacy`,`src`]),vn=d(`<img/>`);function yn(e,t){V(t,!0);let r=P(t,_n);L(()=>(t.src,void 0));var i=vn();C(i,()=>({src:t.src.src,width:t.src.width,height:t.src.height,...r})),n(i),c(e,i),F()}function bn(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(r?.inlineSize??e.offsetWidth,r?.blockSize??e.offsetHeight)});return n.observe(e),()=>n.disconnect()}function xn(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap&&e.width===0}function Sn(e){let t=new Image;return t.decoding=`async`,t.src=e,t.decode().then(()=>t)}var Cn=class{#e;#t;#n;#r=null;#i=null;#a=new Map;#o=!1;constructor(e,t=Sn,n=an){this.#n=e,this.#e=t,this.#t=n}request(e){if(this.#o)return;this.#r=e;let t=this.#i;if(t?.entry.src===e.src&&!xn(t.image)){this.#l({entry:e,image:t.image});return}let n=this.#t(e.src);if(n){this.#l({entry:e,image:n});return}if(this.#a.has(e.src))return;let r;try{r=Promise.resolve(this.#e(e.src))}catch(e){r=Promise.reject(e)}let i={promise:r};this.#a.set(e.src,i),r.then(t=>this.#s(e.src,i,t),()=>this.#c(e.src,i))}dispose(){this.#o||(this.#o=!0,this.#r=null,this.#i=null,this.#a.clear())}#s(e,t,n){if(this.#a.get(e)!==t||(this.#a.delete(e),this.#o))return;let r=this.#r;!r||r.src!==e||this.#l({entry:r,image:n})}#c(e,t){this.#a.get(e)===t&&this.#a.delete(e)}#l(e){this.#o||(this.#i=e,this.#n(e))}},wn=d(`<img class="svelte-3n5l3f"/>`),Tn=d(`<canvas class="svelte-3n5l3f"></canvas>`),En=d(`<div><!></div>`);function Dn(e,n){V(n,!0);let r=x(n,`maxDpr`,3,2),i=x(n,`alt`,3,``),a=x(n,`class`,3,``),s=N(null),l=new Cn(e=>{H(s,e)});L(()=>{l.request(n.src)}),L(()=>(n.src,void 0)),M(()=>l.dispose());let u=N(void 0),d=N(void 0),f=N(0),p=N(0),m=N(1),h=N(0);L(()=>{let e=g(m),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{H(m,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),L(()=>{let e=g(u);if(e)return bn(e,(e,t)=>{H(f,e,!0),H(p,t,!0)})});let _={renderWidth:0,renderHeight:0,cssLeft:0,cssTop:0,cssWidth:0,cssHeight:0,backingWidth:0,backingHeight:0,originX:0,originY:0},b=z(()=>{let e=Math.max(1,Math.floor(r()));return Math.min(e,Math.max(1,Math.floor(g(m))))}),C=z(()=>{let e=g(s);return e?dn(e.entry,g(f),g(p),g(b)):_});L(()=>{let e=g(s),t=g(C);g(h),T(e,t)});function T(e,t){let r=g(d);if(!r||e?.entry.slicing.mode===`one`)return;if(!e||g(f)===0||g(p)===0){r.width=0,r.height=0;return}if(xn(e.image)){l.request(n.src);return}r.width=t.backingWidth,r.height=t.backingHeight;let i=r.getContext(`2d`);i&&(i.setTransform(g(b),0,0,g(b),t.originX,t.originY),i.clearRect(t.cssLeft,t.cssTop,t.cssWidth,t.cssHeight),gn(i,e.entry,e.image,0,0,t.renderWidth,t.renderHeight))}var E=En();q(`resize`,v,()=>H(h,g(h)+1));var D=y(E),O=e=>{var t=wn();let n;o(()=>{I(t,`src`,g(s).entry.src),I(t,`alt`,i()),n=K(t,``,n,{left:`${g(C).cssLeft??``}px`,top:`${g(C).cssTop??``}px`,width:`${g(C).cssWidth??``}px`,height:`${g(C).cssHeight??``}px`})}),c(e,t)},k=e=>{var t=Tn();let n;B(t,e=>H(d,e),()=>g(d)),o(()=>n=K(t,``,n,{left:`${g(C).cssLeft??``}px`,top:`${g(C).cssTop??``}px`,width:`${g(C).cssWidth??``}px`,height:`${g(C).cssHeight??``}px`})),c(e,t)};t(D,e=>{g(s)?.entry.slicing.mode===`one`?e(O):g(s)&&e(k,1)}),w(E),B(E,e=>H(u,e),()=>g(u)),o(()=>{S(E,1,`fundus-slice ${a()??``}`,`svelte-3n5l3f`),K(E,n.style),I(E,`role`,g(s)?.entry.slicing.mode===`one`?void 0:i()?`img`:void 0),I(E,`aria-label`,g(s)?.entry.slicing.mode===`one`?void 0:i()||void 0)}),c(e,E),F()}var On=d(`<video playsinline="" preload="auto"></video>`,2);function kn(e,t){V(t,!0);let n=x(t,`loop`,3,!1),r=x(t,`playing`,3,!0),i=x(t,`muted`,3,!0),a=x(t,`controls`,3,!1),s=x(t,`videoElement`,15),l=x(t,`class`,3,``),u=z(()=>rn(t.src.src));L(()=>(t.src,void 0)),L(()=>{let e=s();e&&(r()?e.play().catch(()=>{}):e.pause())});var d=On();B(d,e=>s(e),()=>s()),o(()=>{I(d,`src`,g(u)),I(d,`width`,t.src.width),I(d,`height`,t.src.height),d.loop=n(),d.muted=i(),d.controls=a(),S(d,1,G(l())),K(d,t.style)}),c(e,d),F()}var An=`#version 300 es
1
+ import{$ as e,A as t,B as n,D as r,F as i,I as a,K as o,L as s,M as c,N as l,O as u,P as d,Q as f,R as p,T as m,U as h,V as g,W as _,X as v,Z as y,_ as b,a as x,b as S,d as C,dt as w,et as T,f as E,g as D,h as O,j as k,k as A,l as j,n as M,nt as N,o as P,ot as F,p as I,q as L,r as R,rt as z,s as B,st as V,tt as H,ut as U,v as W,x as G,y as K,z as q}from"./DLEDBLL1.js";import"./wBLhaPea.js";import"./xihTtKlq.js";import{C as J,D as Y,E as ee,F as te,G as ne,I as re,L as ie,M as ae,O as oe,P as X,R as Z,S as se,T as ce,V as le,Y as ue,Z as de,_ as fe,b as pe,ct as me,g as he,i as ge,it as _e,j as ve,k as ye,nt as be,p as xe,s as Se,t as Q,u as Ce,v as we,w as Te,x as Ee,y as De}from"./C0uU_Rhe.js";import{a as Oe,n as ke,t as Ae}from"./CMJ10zbJ.js";import{a as je,i as Me,n as Ne,o as Pe,r as Fe}from"./CzxolZCO.js";function Ie(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`}var $=class{#e=0;#t=!1;#n;#r;constructor(e){this.#r=e}async run(e,t={}){let n=++this.#e,r=t.retainResult&&this.#t?this.#n:void 0;this.#r(t.retainResult&&this.#t?{status:`refreshing`,value:this.#n}:{status:`loading`});try{let t=await e();n===this.#e&&(this.#t=!0,this.#n=t,this.#r({status:`resolved`,value:t}))}catch(e){n===this.#e&&this.#r({status:`failed`,error:e instanceof Error?e.message:String(e),...t.retainResult&&this.#t?{value:r}:{}})}}cancel(){this.#e++,this.#t=!1,this.#r({status:`idle`})}},Le={folder:null,sort:`alphabetical`,type:[],manifest:[],changes:[],usage:`all`,query:``,warningsOnly:!1,view:`all`},Re=[`folder`,`sort`,`type`,`manifest`,`changes`,`usage`,`q`,`warnings`,`view`],ze=new Set([`alphabetical`,`type`,`manifest`]),Be=new Set([`changed`,`new`]),Ve=new Set([`all`,`unused`]),He=new Set([`all`,`duplicates`]);function Ue(e){let t=e.searchParams.get(`sort`),n=e.searchParams.get(`usage`);return{folder:e.searchParams.has(`folder`)?e.searchParams.get(`folder`)??``:null,sort:ze.has(t)?t:`alphabetical`,type:We(e,`type`),manifest:We(e,`manifest`),changes:Ge(e),usage:Ve.has(n)?n:`all`,query:e.searchParams.get(`q`)??``,warningsOnly:e.searchParams.get(`warnings`)===`1`,view:He.has(e.searchParams.get(`view`))?e.searchParams.get(`view`):`all`}}function We(e,t){return[...new Set(e.searchParams.getAll(t).filter(e=>e!==``&&e!==`all`))]}function Ge(e){let t=e.searchParams.getAll(`changes`),n=new Set;for(let e of t)e===`changed-and-new`?(n.add(`changed`),n.add(`new`)):Be.has(e)&&n.add(e);return[`changed`,`new`].filter(e=>n.has(e))}function Ke(e,t){let n=new URL(e);for(let e of Re)n.searchParams.delete(e);t.folder!==null&&n.searchParams.set(`folder`,t.folder),t.sort!==`alphabetical`&&n.searchParams.set(`sort`,t.sort);for(let e of t.type)n.searchParams.append(`type`,e);for(let e of t.manifest)n.searchParams.append(`manifest`,e);for(let e of t.changes)n.searchParams.append(`changes`,e);return t.usage!==`all`&&n.searchParams.set(`usage`,t.usage),t.query.trim()!==``&&n.searchParams.set(`q`,t.query),t.warningsOnly&&n.searchParams.set(`warnings`,`1`),t.view!==`all`&&n.searchParams.set(`view`,t.view),n}function qe(e,t,n){return e===t?n:{selectedAssetIds:[],lastSelectedAssetId:null}}function Je(e){return e.importSource?.importer===`figma`}function Ye(e){return e.length>0&&e.every(e=>e!==null&&Je(e))}function Xe(e){return Je(e)?Ze(e)?`figma-tag`:`figma-link`:`file`}function Ze(e){let t=e.importSource;if(!Je(e)||!t)return!1;let n=t.parameters;return typeof n!=`object`||!n||Array.isArray(n)?!1:n.mode===`tag`}var Qe=new class{#e=0;begin(){return++this.#e}isCurrent(e){return e===this.#e}};function $e(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var et=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4.5" y="3.5" width="2.5" height="9" fill="currentColor"></rect><rect x="9" y="3.5" width="2.5" height="9" fill="currentColor"></rect></svg>`),tt=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M5 3.3v9.4l7-4.7z" fill="currentColor"></path></svg>`),nt=d(`<span class="time svelte-nchstv"> </span> <input class="range scrub svelte-nchstv" type="range" min="0" step="0.01" aria-label="Seek"/> <span class="time svelte-nchstv"> </span>`,1),rt=d(`<span class="time svelte-nchstv"> </span>`),it=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 6l3.5 4M13.5 6 10 10" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),at=i(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 5.6a3.4 3.4 0 0 1 0 4.8" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path><path d="M11.8 3.9a6 6 0 0 1 0 8.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),ot=d(`<div class="volume-group svelte-nchstv"><button class="btn svelte-nchstv" type="button"><!></button> <input class="range volume svelte-nchstv" type="range" min="0" max="1" step="0.01" aria-label="Volume"/></div>`),st=d(`<div><button class="btn svelte-nchstv" type="button"><!></button> <button class="btn svelte-nchstv" type="button" aria-label="Stop"><svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4" y="4" width="8" height="8" rx="1" fill="currentColor"></rect></svg></button> <button type="button" aria-label="Loop"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="svelte-nchstv"><path d="M4.4 4.5H9A3.5 3.5 0 0 1 12.5 8"></path><path d="M2.4 6.4 4.3 4.4 6.3 6.1"></path><path d="M11.6 11.5H7A3.5 3.5 0 0 1 3.5 8"></path><path d="M13.6 9.6 11.7 11.6 9.7 9.9"></path></svg></button> <!> <!></div>`);function ct(n,r){V(r,!0);let i=x(r,`media`,7),a=x(r,`showScrub`,3,!1),s=x(r,`showVolume`,3,!0),l=N(!1),u=N(0),d=N(0),m=N(!1),h=N(1),_=N(!1),v=N(!1),b=!1,C=null,T=z(()=>$e(g(u))),D=z(()=>$e(g(d))),A=z(()=>g(d)>0),j=z(()=>g(_)?0:g(h));L(()=>{if(!i()){H(l,!1);return}let e=i();H(l,!e.paused),H(u,e.currentTime,!0),H(d,Number.isFinite(e.duration)?e.duration:0,!0),H(m,e.loop,!0),H(h,e.volume,!0),H(_,e.muted,!0);function t(){H(l,!0)}function n(){H(l,!1)}function r(){g(v)||H(u,e.currentTime,!0)}function a(){H(d,Number.isFinite(e.duration)?e.duration:0,!0)}function o(){H(h,e.volume,!0),H(_,e.muted,!0)}return e.addEventListener(`play`,t),e.addEventListener(`playing`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`timeupdate`,r),e.addEventListener(`seeked`,r),e.addEventListener(`loadedmetadata`,a),e.addEventListener(`durationchange`,a),e.addEventListener(`volumechange`,o),()=>{C===e&&(H(v,!1),b=!1,C=null),e.removeEventListener(`play`,t),e.removeEventListener(`playing`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`timeupdate`,r),e.removeEventListener(`seeked`,r),e.removeEventListener(`loadedmetadata`,a),e.removeEventListener(`durationchange`,a),e.removeEventListener(`volumechange`,o)}});function M(){i()&&(i().paused?i().play():i().pause())}function P(){i()&&(i().pause(),i().currentTime=0)}function R(){i()&&(i().loop=!i().loop,H(m,i().loop,!0))}function B(){i()&&(i().muted=!i().muted)}function U(e){if(!i())return;let t=e.currentTarget.valueAsNumber;i().volume=t,i().muted=t===0}function W(){!i()||g(v)||(H(v,!0),b=!i().paused,C=i(),i().pause())}function G(e){let t=C??i();if(!t)return;let n=e.currentTarget.valueAsNumber;Number.isFinite(t.duration)&&(t.currentTime=n),H(u,n,!0)}function K(){if(!g(v))return;let e=C;H(v,!1),b&&e&&i()===e&&e.play(),b=!1,C=null}L(()=>{if(g(v))return window.addEventListener(`pointerup`,K),window.addEventListener(`pointercancel`,K),()=>{window.removeEventListener(`pointerup`,K),window.removeEventListener(`pointercancel`,K)}});var q=st(),J=y(q),Y=y(J),ee=e=>{c(e,et())},te=e=>{c(e,tt())};t(Y,e=>{g(l)?e(ee):e(te,-1)}),w(J);var ne=e(J,2),re=e(ne,2);let ie;var ae=e(re,2),oe=t=>{var n=nt(),r=f(n),a=y(r,!0);w(r);var s=e(r,2);E(s);var l=e(s,2),m=y(l,!0);w(l),o(()=>{k(a,g(T)),I(s,`max`,g(A)?g(d):0),O(s,g(u)),s.disabled=!i()||!g(A),k(m,g(D))}),p(`pointerdown`,s,W),p(`input`,s,G),c(t,n)},X=e=>{var t=rt(),n=y(t);w(t),o(()=>k(n,`${g(T)??``} / ${g(D)??``}`)),c(e,t)};t(ae,e=>{a()?e(oe):g(A)&&e(X,1)});var Z=e(ae,2),se=n=>{var r=ot(),a=y(r),s=y(a),l=e=>{c(e,it())},u=e=>{c(e,at())};t(s,e=>{g(_)||g(h)===0?e(l):e(u,-1)}),w(a);var d=e(a,2);E(d),w(r),o(()=>{a.disabled=!i(),I(a,`aria-label`,g(_)?`Unmute`:`Mute`),O(d,g(j)),d.disabled=!i()}),p(`click`,a,B),p(`input`,d,U),c(n,r)};t(Z,e=>{s()&&e(se)}),w(q),o(()=>{S(q,1,`playback ${r.class??``??``}`,`svelte-nchstv`),J.disabled=!i(),I(J,`aria-label`,g(l)?`Pause`:`Play`),ne.disabled=!i(),ie=S(re,1,`btn svelte-nchstv`,null,ie,{active:g(m)}),re.disabled=!i(),I(re,`aria-pressed`,g(m))}),p(`click`,J,M),p(`click`,ne,P),p(`click`,re,R),c(n,q),F()}s([`click`,`pointerdown`,`input`]);var lt=null;function ut(){return lt||=new AudioContext,lt}var dt=null;function ft(e){let t=e.numberOfChannels;if(t===1)return e.getChannelData(0);let n=e.length,r=new Float32Array(n);for(let i=0;i<t;i++){let t=e.getChannelData(i);for(let e=0;e<n;e++)r[e]+=t[e]}for(let e=0;e<n;e++)r[e]/=t;return r}function pt(e,t){let n=new Float32Array(t),r=new Float32Array(t),i=e.length/t;for(let a=0;a<t;a++){let t=Math.floor(a*i),o=Math.min(e.length,Math.floor((a+1)*i)),s=0,c=0;for(let n=t;n<o;n++){let t=e[n];t<s&&(s=t),t>c&&(c=t)}n[a]=s,r[a]=c}return{min:n,max:r}}function mt(e,t,n){return Math.min(n,Math.max(t,e))}var ht=d(`<div class="footer svelte-1liihyn"><!></div>`),gt=d(`<div><canvas class="wave svelte-1liihyn" role="button" tabindex="0" aria-label="Audio waveform — click or press Enter to play; arrow keys scrub"></canvas> <!></div>`);function _t(n,r){V(r,!0);let i=x(r,`loop`,3,!1),a=x(r,`showControls`,3,!1),s=N(void 0),l=N(null),u=N(!1),d=N(0),f=N(0),m=`idle`,h=null,v=null,b=0,C=1,T=`#0d99ff`,E=`#7a7a7a`,D=`#f24822`,O=0;function k(){if(!g(s))return;let e=getComputedStyle(g(s));T=e.getPropertyValue(`--accent`).trim()||T,E=e.getPropertyValue(`--text-faint`).trim()||E,D=e.getPropertyValue(`--danger`).trim()||D}function A(){if(!g(s))return;let e=g(s).getBoundingClientRect();C=window.devicePixelRatio||1;let t=Math.max(1,Math.round(e.width*C)),n=Math.max(1,Math.round(e.height*C));(g(s).width!==t||g(s).height!==n)&&(g(s).width=t,g(s).height=n,v=null),k()}function j(){if(!g(s))return;let e=g(s).getContext(`2d`);if(!e)return;let t=g(s).width,n=g(s).height,r=n/2;if(e.clearRect(0,0,t,n),m!==`ready`||!h){e.strokeStyle=m===`error`?D:E,e.lineWidth=Math.max(1,C),e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke();return}let i=Math.max(1,Math.floor(t));(!v||b!==i)&&(v=pt(h,i),b=i);let a=g(f)>0?mt(g(d)/g(f),0,1):0,o=a*t,c=r*.9,l=t/i;e.lineWidth=1;for(let t=0;t<i;t++){let n=t*l,i=r-v.max[t]*c,a=r-v.min[t]*c;e.strokeStyle=n<=o?T:E,e.beginPath(),e.moveTo(n+.5,Math.min(i,r-.5)),e.lineTo(n+.5,Math.max(a,r+.5)),e.stroke()}a>0&&(e.strokeStyle=T,e.lineWidth=Math.max(1,C),e.beginPath(),e.moveTo(o,0),e.lineTo(o,n),e.stroke())}function M(){O&&=(cancelAnimationFrame(O),0)}function P(){g(l)&&H(d,g(l).currentTime,!0),j(),g(u)&&(O=requestAnimationFrame(P))}async function I(e){m=`loading`,j();try{let t=await(await fetch(e)).arrayBuffer(),n=await ut().decodeAudioData(t);if(e!==r.src)return;h=ft(n),g(f)||H(f,n.duration,!0),m=`ready`,v=null,j()}catch{if(e!==r.src)return;m=`error`,j()}}function R(e){if(e.preventDefault(),e.stopPropagation(),!g(s)||!g(l))return;let t=g(s).getBoundingClientRect(),n=mt((e.clientX-t.left)/t.width,0,1),r=g(l).duration;Number.isFinite(r)&&r>0&&(g(l).currentTime=n*r),g(l).play()}function z(){g(l)&&(g(l).paused?g(l).play():g(l).pause())}function U(e){if(g(l)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),z();return}if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=g(l).duration;if(!Number.isFinite(t)||t<=0)return;e.preventDefault();let n=e.key===`ArrowRight`?5:-5;g(l).currentTime=mt(g(l).currentTime+n,0,t)}}}L(()=>{let e=g(l);e&&(e.loop=i())}),L(()=>{let e=r.src,t=g(s);if(!t)return;m=`idle`,h=null,v=null,b=0,H(d,0),H(f,0),H(u,!1);let n=new Audio(e);n.preload=`metadata`,n.loop=_(()=>i());function a(){dt&&dt!==n&&dt.pause(),dt=n,H(u,!0),M(),O=requestAnimationFrame(P)}function o(){dt===n&&(dt=null),H(u,!1),M(),j()}function c(){dt===n&&(dt=null),H(u,!1),M(),j()}function p(){H(d,n.currentTime,!0),g(u)||j()}function y(){Number.isFinite(n.duration)&&H(f,n.duration,!0),j()}n.addEventListener(`play`,a),n.addEventListener(`pause`,o),n.addEventListener(`ended`,c),n.addEventListener(`timeupdate`,p),n.addEventListener(`loadedmetadata`,y),n.addEventListener(`durationchange`,y),n.addEventListener(`seeked`,p),H(l,n,!0);let x=new ResizeObserver(()=>{A(),j()});x.observe(t);let S=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(S.disconnect(),I(e))});return S.observe(t),A(),j(),()=>{M(),x.disconnect(),S.disconnect(),n.removeEventListener(`play`,a),n.removeEventListener(`pause`,o),n.removeEventListener(`ended`,c),n.removeEventListener(`timeupdate`,p),n.removeEventListener(`loadedmetadata`,y),n.removeEventListener(`durationchange`,y),n.removeEventListener(`seeked`,p),n.pause(),dt===n&&(dt=null),n.removeAttribute(`src`),n.load(),H(l,null)}});var W=gt(),G=y(W);B(G,e=>H(s,e),()=>g(s));var K=e(G,2),q=e=>{var t=ht();ct(y(t),{get media(){return g(l)}}),w(t),c(e,t)};t(K,e=>{a()&&e(q)}),w(W),o(()=>S(W,1,`audio-waveform ${r.class??``??``}`,`svelte-1liihyn`)),p(`click`,G,R),p(`keydown`,G,U),c(n,W),F()}s([`click`,`keydown`]);var vt=d(`<div class="audio-frame svelte-1ww4cvx"><!></div>`),yt=d(`<p class="svelte-1ww4cvx">No proxy yet — add the asset to a manifest to process it.</p>`),bt=d(`<div class="stage checkerboard svelte-1ww4cvx"><!></div>`);function xt(e,n){V(n,!0);var r=bt(),i=y(r),a=e=>{var t=vt();A(y(t),()=>n.asset.proxy.url,e=>{_t(e,{get src(){return n.asset.proxy.url},showControls:!0})}),w(t),c(e,t)},o=e=>{c(e,yt())};t(i,e=>{n.asset.proxy?e(a):e(o,-1)}),w(r),c(e,r),F()}function St(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function Ct(e,t){return t.coarse?e*10:t.fine?e*.1:e}function wt(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function Tt(e,t){let n=10**t;return Math.round(e*n)/n}function Et(e){let t=Ct(e.step,e.modifiers),n=Tt(e.startValue+e.deltaX*t,wt(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function Dt(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function Ot(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var kt=d(`<span class="suffix svelte-nhap92" aria-hidden="true"> </span>`),At=d(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),jt=d(`<span><input class="input svelte-nhap92" type="number"/> <!> <!></span>`);function Mt(n,r){V(r,!0);let i=x(r,`step`,3,1),a=x(r,`placeholder`,3,``),s=x(r,`allowNull`,3,!1),l=x(r,`align`,3,`left`),u=N(null),d=N(!1),f=N(null),m=N(null),h=z(()=>g(u)?.activated?g(u).currentValue:r.value),_=z(()=>Math.max(1,g(m)??String(g(h)??a()).length));function b(e){return{coarse:e.shiftKey,fine:e.altKey}}function C(e){e.preventDefault(),Dt(e.currentTarget,e),H(u,{pointerId:e.pointerId,startX:e.clientX,startValue:r.value,currentValue:null,activated:!1},!0)}function T(e){if(!g(u)||e.pointerId!==g(u).pointerId)return;let t=e.clientX-g(u).startX;if(!g(u).activated){if(Math.abs(t)<3)return;g(u).activated=!0,document.body.style.cursor=`ew-resize`}let n=Et({startValue:g(u).startValue??r.min??0,deltaX:t,step:i(),modifiers:b(e),min:r.min,max:r.max});n!==g(u).currentValue&&(g(u).currentValue=n,r.onChange?.(n))}function D(e){if(!g(u)||e.pointerId!==g(u).pointerId)return;Ot(e.currentTarget,e.pointerId);let t=g(u).activated,n=g(u).startValue,i=g(u).currentValue;if(H(u,null),document.body.style.cursor=``,!t){M();return}let a=St({startValue:n,scrubbedValue:i,min:r.min});a.commit===void 0?`rollbackTo`in a&&r.onChange?.(a.rollbackTo??null):r.onCommit(a.commit)}function A(){if(!g(u))return;let e=g(u).startValue,t=g(u).activated;H(u,null),document.body.style.cursor=``,t&&r.onChange?.(e)}function j(e){g(u)&&e.key===`Escape`&&(e.preventDefault(),A())}L(()=>()=>{g(u)&&(document.body.style.cursor=``)});function M(){H(d,!0),queueMicrotask(()=>{g(f)?.focus(),g(f)?.select()})}function P(e){let t=e.currentTarget.valueAsNumber;Number.isFinite(t)?r.onCommit(t):r.onCommit(s()?null:r.min??0)}function R(e){H(m,e.currentTarget.value.length,!0)}function U(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=g(h)===null?``:String(g(h)),e.currentTarget.blur())}var W=jt();q(`keydown`,v,j);let G;var J=y(W);E(J);let Y;B(J,e=>H(f,e),()=>g(f));var ee=e(J,2),te=e=>{var t=kt(),n=y(t,!0);w(t),o(()=>k(n,r.suffix)),c(e,t)};t(ee,e=>{r.suffix!==void 0&&e(te)});var ne=e(ee,2),re=e=>{var t=At();p(`pointerdown`,t,C),p(`pointermove`,t,T),p(`pointerup`,t,D),q(`pointercancel`,t,A),c(e,t)};t(ne,e=>{g(d)||e(re)}),w(W),o(()=>{G=S(W,1,`scrub-number svelte-nhap92`,null,G,{right:l()===`right`,"with-suffix":r.suffix!==void 0}),I(J,`aria-label`,r.ariaLabel),I(J,`min`,r.min),I(J,`max`,r.max),I(J,`step`,i()),I(J,`placeholder`,a()),O(J,g(h)??``),Y=K(J,``,Y,{width:r.suffix===void 0?void 0:`${g(_)}ch`})}),q(`focus`,J,e=>{H(d,!0),H(m,e.currentTarget.value.length,!0)}),q(`blur`,J,()=>{H(d,!1),H(m,null)}),p(`input`,J,R),p(`change`,J,P),p(`keydown`,J,U),c(n,W),F()}s([`input`,`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var Nt=d(`<span class="caption svelte-368zap"> </span>`),Pt=d(`<span class="fill svelte-368zap"></span>`),Ft=d(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function It(n,r){let i=x(r,`step`,3,1),s=x(r,`placeholder`,3,``),u=x(r,`rangeFill`,3,!0),d=z(()=>!u()||r.min===void 0||r.max===void 0||r.value===null||r.max<=r.min?null:Math.max(0,Math.min(100,(r.value-r.min)/(r.max-r.min)*100)));var p=Ft(),h=y(p),_=e=>{var t=Nt(),n=y(t,!0);w(t),o(()=>k(n,r.caption)),c(e,t)};t(h,e=>{r.caption&&e(_)});var v=e(h,2),b=y(v),S=e=>{var t=Pt();o(()=>K(t,`width: ${g(d)??``}%`)),c(e,t)};t(b,e=>{g(d)!==null&&e(S)});var C=e(b,2),T=y(C),E=e=>{var t=l();m(f(t),()=>r.icon),c(e,t)},D=e=>{var t=a();o(()=>k(t,r.label)),c(e,t)};t(T,e=>{r.icon?e(E):e(D,-1)}),w(C),Mt(e(C,2),{get value(){return r.value},get min(){return r.min},get max(){return r.max},get step(){return i()},get placeholder(){return s()},get suffix(){return r.suffix},allowNull:!0,get ariaLabel(){return r.label},get onChange(){return r.onChange},get onCommit(){return r.onCommit}}),w(v),w(p),o(()=>I(C,`title`,r.label)),c(n,p)}var Lt=d(`<h3 class="svelte-1ol624f"><!></h3>`);function Rt(e,t){var n=Lt();m(y(n),()=>t.children),w(n),c(e,n)}var zt=d(`<span class="caption svelte-bczi6w"> </span>`),Bt=d(`<option> </option>`),Vt=d(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function Ht(n,i){V(i,!0);var s=Vt(),u=y(s),d=e=>{var t=zt(),n=y(t,!0);w(t),o(()=>k(n,i.caption)),c(e,t)};t(u,e=>{i.caption&&e(d)});var h=e(u,2),g=y(h),_=y(g),v=e=>{var t=l();m(f(t),()=>i.icon),c(e,t)},x=e=>{var t=a();o(e=>k(t,e),[()=>i.label.slice(0,1)]),c(e,t)};t(_,e=>{i.icon?e(v):e(x,-1)}),w(g);var S=e(g,2);r(S,20,()=>i.options,e=>e,(e,t)=>{var n=Bt(),r=y(n,!0);w(n);var i={};o(()=>{k(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),c(e,n)}),w(S);var C;b(S),w(h),w(s),o(()=>{I(g,`title`,i.label),I(S,`aria-label`,i.label),C!==(C=i.value)&&(S.value=(S.__value=i.value)??``,W(S,i.value))}),p(`change`,S,e=>i.onChange(e.currentTarget.value)),c(n,s),F()}s([`change`]);var Ut=d(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),Wt=d(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),Gt=d(`<section class="svelte-m9vwwu"><!> <!></section>`);function Kt(n,r){V(r,!0);let i=x(r,`showDimensions`,3,!1),s=x(r,`showDuration`,3,!1);var l=Gt(),u=y(l);Rt(u,{children:(e,t)=>{U(),c(e,a(`Output`))},$$slots:{default:!0}});var d=e(u,2),f=n=>{var l=Ut(),u=y(l),d=e=>{var t=a();o(()=>k(t,`${r.proxy.width??``} × ${r.proxy.height??``} px ·`)),c(e,t)};t(u,e=>{i()&&r.proxy.width!==void 0&&r.proxy.height!==void 0&&e(d)});var f=e(u,2),p=e=>{var t=a();o(e=>k(t,`${e??``} ·`),[()=>je(r.proxy.durationMs)]),c(e,t)};t(f,e=>{s()&&r.proxy.durationMs!==void 0&&e(p)});var m=e(f),h=e(m,3),g=y(h,!0);w(h),w(l),o(e=>{k(m,` ${e??``} `),k(g,r.proxy.fileName)},[()=>Me(r.proxy.fileSize)]),c(n,l)},p=e=>{c(e,Wt())};t(d,e=>{r.proxy?e(f):e(p,-1)}),w(l),c(n,l),F()}var qt=d(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function Jt(t,n){V(n,!0);let r=z(()=>Te.validateParameters(n.parameters));function i(e){n.onParametersCommit(e)}function o(e){i({...g(r),preset:e})}function s(e){let{targetWidth:t,...n}=g(r);return e===null||!Number.isFinite(e)||e<=0?n:{...n,targetWidth:Math.round(e)}}function l(e,t){let r=s(e);t?i(r):n.onParametersChange(r)}var u=qt(),d=f(u),p=y(d);Rt(p,{children:(e,t)=>{U(),c(e,a(`Image`))},$$slots:{default:!0}});var m=e(p,2);Ht(y(m),{label:`Preset`,caption:`Preset`,get value(){return g(r).preset},get options(){return n.presetNames},onChange:o,icon:e=>{Oe(e,{name:`preset`})},$$slots:{icon:!0}}),w(m);var h=e(m,2),_=y(h);{let e=e=>{Oe(e,{name:`width`})},t=z(()=>g(r).targetWidth??null);It(_,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return g(t)},onChange:e=>l(e,!1),onCommit:e=>l(e,!0),icon:e,$$slots:{icon:!0}})}w(h),w(d),Kt(e(d,2),{get proxy(){return n.asset.proxy},showDimensions:!0}),c(t,u),F()}new Set([...new Set([`video`,`chroma-key-video`,`audio`])].filter(e=>fe.has(e)));function Yt(e){if(e.ok)return!0;if(e.status!==0||e.type!==`basic`)return!1;try{let t=new URL(e.url).protocol;return t!==`http:`&&t!==`https:`}catch{return!1}}async function Xt(e){let t=await fetch(e);if(!Yt(t))throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function Zt(e,t,n){if(n!==t)throw Error(`Preloading "${e}" failed: expected ${t} bytes, received ${n}.`)}var Qt={async preload(e,t){if(Zt(e,t,(await(await Xt(e)).arrayBuffer()).byteLength),typeof globalThis.Image==`function`){let t=new globalThis.Image;return t.src=e,await t.decode(),{image:t}}return{}}},$t={async preload(e,t,n){let r=await(await Xt(e)).blob();if(Zt(e,t,r.size),n?.slicing?.mode!==`one`&&typeof globalThis.createImageBitmap==`function`)return{imageBitmap:await globalThis.createImageBitmap(r,{premultiplyAlpha:`premultiply`})};if(typeof globalThis.Image==`function`){let t=new globalThis.Image;return t.src=e,await t.decode(),{image:t}}return{}},release(e){e.imageBitmap?.close()}},en={async preload(e,t){let n=await(await Xt(e)).blob();return Zt(e,t,n.size),typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(n)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}},tn={image:Qt,slice:$t,video:en,"chroma-key-video":en,audio:en};new Map(Object.entries(fe.project(tn,`runtime handler`)));var nn=new Map;function rn(e){return nn.get(e)?.resources?.objectUrl??e}function an(e){let t=nn.get(e)?.resources;return t?.imageBitmap??t?.image??null}function on(e,t,n){return Math.max(t,Math.min(n,e))}function sn(e){let{mode:t,insets:n}=e.slicing,r=J(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function cn(e){let t=e.slicing.overdraw;if(!t)return pe();let n=e.sourceWidth,r=e.sourceHeight,i=on(t.left,0,Math.max(0,n-1)),a=on(t.right,0,Math.max(0,n-i-1)),o=on(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:on(t.bottom,0,Math.max(0,r-o-1)),left:i}}function ln(e,t,n){let r=cn(e);return{width:Math.max(1,t-r.left-r.right),height:Math.max(1,n-r.top-r.bottom)}}function un(e,t,n){let r=cn(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=ln(e,e.sourceWidth,e.sourceHeight),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function dn(e,t,n,r){let i=t>0?Math.max(1,Math.round(t)):0,a=n>0?Math.max(1,Math.round(n)):0,o=un(e,i,a),s=i+o.left+o.right,c=a+o.top+o.bottom,l=i>0?t/i:1,u=a>0?n/a:1;return{renderWidth:i,renderHeight:a,cssLeft:-o.left*l+0,cssTop:-o.top*u+0,cssWidth:s*l,cssHeight:c*u,backingWidth:s*r,backingHeight:c*r,originX:o.left*r,originY:o.top*r}}function fn(e,t){return[t(e[0]),t(e[1]),t(e[2]),t(e[3])]}function pn(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function mn(e,t,n){let r=un(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=sn(e),d=on(u.left,0,o),f=on(u.right,0,Math.max(0,o-d)),p=on(u.top,0,s),m=on(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=pn([_,y,v]),w=pn([b,S,x]);return{sourceX:[0,d,d+h,d+h+f],sourceY:[0,p,p+g,p+g+m],destX:fn(C,e=>e-r.left),destY:fn(w,e=>e-r.top)}}function hn(e,t,n,r,i){if(![t,n,r,i].every(Number.isFinite))throw RangeError(`Slice grid coordinates and dimensions must be finite.`);let a=r>0?Math.max(1,Math.round(r)):0,o=i>0?Math.max(1,Math.round(i)):0,s=mn(e,a,o),c=(e,t,n,r)=>{if(r===0)return[t,t,t,t];let i=n/r;return fn(e,e=>t+e*i)};return{sourceX:s.sourceX,sourceY:s.sourceY,destX:c(s.destX,t,r,a),destY:c(s.destY,n,i,o)}}function gn(e,t,n,r,i,a,o){let{sourceX:s,sourceY:c,destX:l,destY:u}=hn(t,r,i,a,o);for(let t=0;t<3;t++){let r=c[t+1]-c[t],i=u[t+1]-u[t];if(!(r<=0||i<=0))for(let a=0;a<3;a++){let o=s[a+1]-s[a],d=l[a+1]-l[a];o<=0||d<=0||e.drawImage(n,s[a],c[t],o,r,l[a],u[t],d,i)}}}var _n=new Set([`$$slots`,`$$events`,`$$legacy`,`src`]),vn=d(`<img/>`);function yn(e,t){V(t,!0);let r=P(t,_n);L(()=>(t.src,void 0));var i=vn();C(i,()=>({src:t.src.src,width:t.src.width,height:t.src.height,...r})),n(i),c(e,i),F()}function bn(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(r?.inlineSize??e.offsetWidth,r?.blockSize??e.offsetHeight)});return n.observe(e),()=>n.disconnect()}function xn(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap&&e.width===0}function Sn(e){let t=new Image;return t.decoding=`async`,t.src=e,t.decode().then(()=>t)}var Cn=class{#e;#t;#n;#r=null;#i=null;#a=new Map;#o=!1;constructor(e,t=Sn,n=an){this.#n=e,this.#e=t,this.#t=n}request(e){if(this.#o)return;this.#r=e;let t=this.#i;if(t?.entry.src===e.src&&!xn(t.image)){this.#l({entry:e,image:t.image});return}let n=this.#t(e.src);if(n){this.#l({entry:e,image:n});return}if(this.#a.has(e.src))return;let r;try{r=Promise.resolve(this.#e(e.src))}catch(e){r=Promise.reject(e)}let i={promise:r};this.#a.set(e.src,i),r.then(t=>this.#s(e.src,i,t),()=>this.#c(e.src,i))}dispose(){this.#o||(this.#o=!0,this.#r=null,this.#i=null,this.#a.clear())}#s(e,t,n){if(this.#a.get(e)!==t||(this.#a.delete(e),this.#o))return;let r=this.#r;!r||r.src!==e||this.#l({entry:r,image:n})}#c(e,t){this.#a.get(e)===t&&this.#a.delete(e)}#l(e){this.#o||(this.#i=e,this.#n(e))}},wn=d(`<img class="svelte-3n5l3f"/>`),Tn=d(`<canvas class="svelte-3n5l3f"></canvas>`),En=d(`<div><!></div>`);function Dn(e,n){V(n,!0);let r=x(n,`maxDpr`,3,2),i=x(n,`alt`,3,``),a=x(n,`class`,3,``),s=N(null),l=new Cn(e=>{H(s,e)});L(()=>{l.request(n.src)}),L(()=>(n.src,void 0)),M(()=>l.dispose());let u=N(void 0),d=N(void 0),f=N(0),p=N(0),m=N(1),h=N(0);L(()=>{let e=g(m),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{H(m,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),L(()=>{let e=g(u);if(e)return bn(e,(e,t)=>{H(f,e,!0),H(p,t,!0)})});let _={renderWidth:0,renderHeight:0,cssLeft:0,cssTop:0,cssWidth:0,cssHeight:0,backingWidth:0,backingHeight:0,originX:0,originY:0},b=z(()=>{let e=Math.max(1,Math.floor(r()));return Math.min(e,Math.max(1,Math.floor(g(m))))}),C=z(()=>{let e=g(s);return e?dn(e.entry,g(f),g(p),g(b)):_});L(()=>{let e=g(s),t=g(C);g(h),T(e,t)});function T(e,t){let r=g(d);if(!r||e?.entry.slicing.mode===`one`)return;if(!e||g(f)===0||g(p)===0){r.width=0,r.height=0;return}if(xn(e.image)){l.request(n.src);return}r.width=t.backingWidth,r.height=t.backingHeight;let i=r.getContext(`2d`);i&&(i.setTransform(g(b),0,0,g(b),t.originX,t.originY),i.clearRect(t.cssLeft,t.cssTop,t.cssWidth,t.cssHeight),gn(i,e.entry,e.image,0,0,t.renderWidth,t.renderHeight))}var E=En();q(`resize`,v,()=>H(h,g(h)+1));var D=y(E),O=e=>{var t=wn();let n;o(()=>{I(t,`src`,g(s).entry.src),I(t,`alt`,i()),n=K(t,``,n,{left:`${g(C).cssLeft??``}px`,top:`${g(C).cssTop??``}px`,width:`${g(C).cssWidth??``}px`,height:`${g(C).cssHeight??``}px`})}),c(e,t)},k=e=>{var t=Tn();let n;B(t,e=>H(d,e),()=>g(d)),o(()=>n=K(t,``,n,{left:`${g(C).cssLeft??``}px`,top:`${g(C).cssTop??``}px`,width:`${g(C).cssWidth??``}px`,height:`${g(C).cssHeight??``}px`})),c(e,t)};t(D,e=>{g(s)?.entry.slicing.mode===`one`?e(O):g(s)&&e(k,1)}),w(E),B(E,e=>H(u,e),()=>g(u)),o(()=>{S(E,1,`fundus-slice ${a()??``}`,`svelte-3n5l3f`),K(E,n.style),I(E,`role`,g(s)?.entry.slicing.mode===`one`?void 0:i()?`img`:void 0),I(E,`aria-label`,g(s)?.entry.slicing.mode===`one`?void 0:i()||void 0)}),c(e,E),F()}var On=d(`<video playsinline="" preload="auto"></video>`,2);function kn(e,t){V(t,!0);let n=x(t,`loop`,3,!1),r=x(t,`playing`,3,!0),i=x(t,`muted`,3,!0),a=x(t,`controls`,3,!1),s=x(t,`videoElement`,15),l=x(t,`class`,3,``),u=z(()=>rn(t.src.src));L(()=>(t.src,void 0)),L(()=>{let e=s();e&&(r()?e.play().catch(()=>{}):e.pause())});var d=On();B(d,e=>s(e),()=>s()),o(()=>{I(d,`src`,g(u)),I(d,`width`,t.src.width),I(d,`height`,t.src.height),d.loop=n(),d.muted=i(),d.controls=a(),S(d,1,G(l())),K(d,t.style)}),c(e,d),F()}var An=`#version 300 es
2
2
  in vec2 a_pos;
3
3
  out vec2 v_uv;
4
4
  void main() {
@@ -1,2 +1,2 @@
1
- import{V as e,nt as t,tt as n}from"./DLEDBLL1.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(e){if(!e.ok)throw await a(e),new r(e.status,e.statusText);return await e.json()}async function s(){let e=await fetch(`/api/usage`,{method:`HEAD`,cache:`no-store`}),t=e.headers.get(`x-fundus-usage-capability`);if(e.status===204&&t===`available`)return!0;if(e.status===404&&t===`unavailable`)return!1;throw new r(e.status,`Could not discover usage capability (${e.status}, ${t??`missing header`}).`)}async function c(e={}){let t=new URLSearchParams;e.assetId&&t.set(`assetId`,e.assetId),e.forceFresh&&t.set(`fresh`,`1`);let n=t.size>0?`?${t}`:``;return o(await fetch(`/api/usage${n}`,{cache:`no-store`}))}async function l(e){await a(await fetch(`/api/usage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function u(){return i(await fetch(`/api/state`,{cache:`no-store`}))}async function d(){return i(await fetch(`/api/reconcile`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})}))}async function f(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 ee(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 te(e){return i(await fetch(`/api/raw/edited/dismiss`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function ne(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 re(e){let t=e.mode===`tag`?{importer:`figma`,input:{mode:`tag`,tag:e.tag,format:`png`,...e.fileKey?{fileKey:e.fileKey}:{},scale:e.scale},type:e.type,id:e.tag,folder:e.folder,manifests:e.manifests}:{importer:`figma`,input:{url:e.url,format:`png`,scale:e.scale},type:e.type,id:e.id,folder:e.folder,manifests:e.manifests};return i(await fetch(`/api/imports`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function ie(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 ae(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}/retag`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function oe(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 se(e,t){let n=t.mode===`tag`?{mode:`tag`,tag:t.tag,format:`png`,...t.fileKey?{fileKey:t.fileKey}:{},scale:t.scale}:{url:t.url,scale:t.scale,format:`png`};return i(await fetch(`/api/assets/${encodeURIComponent(e)}/raw`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({importer:`figma`,input:n})}))}async function ce(e){return i(await fetch(`/api/folders`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}))}async function le(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t})}))}async function ue(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({parent:t})}))}async function de(e){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function fe(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function pe(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 me(e){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function he(e){return i(await fetch(`/api/assets/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e})}))}async function ge(e,t){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetId:e,kind:t})}))}async function _e(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:e})}))}async function ve(e){return i(await fetch(`/api/manifests`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}))}async function ye(e){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function be(e,t){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}var xe=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 Se=/[\u0000-\u001f\u007f]/,Ce=/[<>:"|?*]/,we=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function Te(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.`:Se.test(e)?`Folder names must not contain control characters.`:Ce.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.`:we.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function Ee(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function m(e){return Ee(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 De(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").`}var Oe=`await.break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.instanceof.new.null.return.super.switch.this.throw.true.try.typeof.var.void.while.with.yield.implements.interface.let.package.private.protected.public.static.arguments.eval.createManifest`.split(`.`);function ke(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:Oe.includes(e)?`"${e}" is reserved (it cannot name the generated manifest export).`: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 Ae(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,despillCoverage:1},je=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function D(e){return Math.min(1,Math.max(0,e))}function Me(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 je){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)}let i=t.despillCoverage;if(i!==void 0){if(typeof i!=`number`||!Number.isFinite(i))throw Error(`"chromaKey.despillCoverage" must be a number (0–1).`);r.despillCoverage=D(i)}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(!Ae(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=Me(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 Ne(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 Pe(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 Fe(e){return e?e.top>0||e.right>0||e.bottom>0||e.left>0:!1}function Ie(e,t,n){let r=t.width!==n.width||t.height!==n.height;return{slicing:{mode:e.mode,insets:Pe({...e,...t}),pixelRatio:e.pixelRatio,...Fe(e.overdraw)?{overdraw:e.overdraw}:{}},sourceWidth:t.width,sourceHeight:t.height,...r?{uncompressedWidth:n.width,uncompressedHeight:n.height}:{}}}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 Le(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:Le(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 Re(e=U){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function ze(e,t=U){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function Be(e,t=U){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}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 Ve(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 He(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 Ue(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 He([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 We(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 Ge(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,duplicateIds:t.duplicateIds,passiveManifests:t.passiveManifests,references:t.references}:e}),gitBranch:t.gitBranch,importDefaults:t.importDefaults,issues:t.issues,presetNames:t.presetNames,presetCapabilities:t.presetCapabilities,rawIngestionQueue:t.rawIngestionQueue};return X(r,r.library)}function Ke(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=Ve(t,J),o=Ue(t,a),s=qe(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,o])=>{let l=r.get(i.get(e)??e);return l?{...l,id:e,raw:o.raw,folder:v(o.raw),parameters:o.parameters,manifests:o.manifests,duplicateIds:l.duplicateIds.map(e=>n.get(e)??e).filter(e=>Object.hasOwn(t.assets,e)).sort(),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 qe(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 Je(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 Ye(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 Xe(e){return Z(t=>{for(let n of new Set(e))delete t.assets[n]})}function Ze(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 Qe(e,t){return Q(e,_(h(e),t))}function $e(e,t){return Q(e,_(t,g(e)))}function et(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 tt(e){return Z(t=>{Object.hasOwn(t.manifests,e)||(t.manifests[e]={})})}function nt(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 rt(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 it=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}},at=class{#e=null;#t;constructor(e){this.#t=e}discover(e){if(this.#e)return this.#e;let t=(async()=>{try{this.#t({available:await e(),error:null})}catch(e){this.#t({available:null,error:e instanceof Error?e.message:String(e)})}})();return this.#e=t.finally(()=>{this.#e=null}),this.#e}};function ot(e,t,n){return e??t??(n.length>0?n.join(`
2
- `):null)}var st=new class{#e=new it;#t=new xe;#n=0;#r=0;#i=[];#a=t(null);get state(){return e(this.#a)}set state(e){n(this.#a,e,!0)}#o=t(!1);get saving(){return e(this.#o)}set saving(e){n(this.#o,e,!0)}#s=t(null);get error(){return e(this.#s)}set error(e){n(this.#s,e,!0)}#c=t(null);get usageAvailable(){return e(this.#c)}set usageAvailable(e){n(this.#c,e,!0)}#l=t(null);get usageCapabilityError(){return e(this.#l)}set usageCapabilityError(e){n(this.#l,e,!0)}#u=t(0);get usageRefreshRevision(){return e(this.#u)}set usageRefreshRevision(e){n(this.#u,e,!0)}#d=new at(e=>{this.usageAvailable=e.available,this.usageCapabilityError=e.error});#f=t(!1);get loaded(){return e(this.#f)}set loaded(e){n(this.#f,e,!0)}async refresh(){return this.#p(u,{rebaseEditableState:!0})}discoverUsageCapability(){return this.#d.discover(s)}reconcile(){return this.#p(d,{coalesce:!0})}async reconcileOnFocus(){let e=this.usageRefreshRevision;await this.reconcile(),this.usageRefreshRevision===e&&this.usageRefreshRevision++}connectLibraryEvents(){if(typeof EventSource>`u`)return()=>{};let e=new EventSource(`/api/events`),t=()=>void this.reconcile();return e.addEventListener(`library-changed`,t),e.addEventListener(`open`,t),()=>{e.removeEventListener(`library-changed`,t),e.removeEventListener(`open`,t),e.close()}}#p(e,t={}){let n=async()=>{try{let n=await e();this.#t.value===null||t.rebaseEditableState?this.#t.replaceBase(n):this.#t.mergeBase(e=>Ke(e,n)),this.#h(),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.#m(e,t,n)}mutateFromServer(e,t){return this.#m(e,void 0,t)}#m(e,t,n={dependencies:[]}){let r=++this.#r,i=this.#t.value?.library,a=t?this.#t.add(t,n.dependencies):null,o=a===null?void 0:this.#t.value?.library;return a!==null&&this.#h(),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.#h()),new $;let t=await e();a===null?this.#t.replaceBase(t):this.#t.confirm(a,t,e=>Y(e,t)),this.#h()}catch(e){if(e instanceof $)throw this.error=e.message,e;let t=null;try{t=await u();let s=We(e,i,o,t.library);if(s===`committed`&&a!==null){let e=t;this.#t.confirm(a,e,t=>Y(t,e)),this.#h(),this.error=null;return}this.#t.replaceBase(t),s===`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.#h(),this.error=e instanceof Error?e.message:String(e),e}finally{--this.#n,this.saving=this.#n>0,this.#n===0&&(this.#i=[])}})}#h(){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{fe as $,ke as A,f as B,L as C,E as D,A as E,_ as F,de as G,ve as H,h as I,c as J,ye as K,m as L,g as M,v as N,T as O,b as P,l as Q,x as R,Ne as S,M as T,me as U,ce as V,he as W,pe as X,re as Y,ue as Z,H as _,tt as a,ae as at,I as b,rt as c,ne as ct,Je as d,be as et,nt as f,Be as g,ze as h,Ze as i,se as it,Te as j,De as k,Ye as l,Re as m,ot as n,le as nt,Xe as o,ge as ot,Qe as p,te as q,Ge as r,oe as rt,et as s,_e as st,st as t,ie as tt,$e as u,Ie as v,P as w,R as x,V as y,ee as z};
1
+ import{V as e,nt as t,tt as n}from"./DLEDBLL1.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(e){if(!e.ok)throw await a(e),new r(e.status,e.statusText);return await e.json()}async function s(){let e=await fetch(`/api/usage`,{method:`HEAD`,cache:`no-store`}),t=e.headers.get(`x-fundus-usage-capability`);if(e.status===204&&t===`available`)return!0;if(e.status===404&&t===`unavailable`)return!1;throw new r(e.status,`Could not discover usage capability (${e.status}, ${t??`missing header`}).`)}async function c(e={}){let t=new URLSearchParams;e.assetId&&t.set(`assetId`,e.assetId),e.forceFresh&&t.set(`fresh`,`1`);let n=t.size>0?`?${t}`:``;return o(await fetch(`/api/usage${n}`,{cache:`no-store`}))}async function l(e){await a(await fetch(`/api/usage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function u(){return i(await fetch(`/api/state`,{cache:`no-store`}))}async function d(){return i(await fetch(`/api/reconcile`,{method:`POST`,cache:`no-store`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})}))}async function f(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 ee(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 te(e){return i(await fetch(`/api/raw/edited/dismiss`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e})}))}async function ne(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 re(e){let t=e.mode===`tag`?{importer:`figma`,input:{mode:`tag`,tag:e.tag,format:`png`,...e.fileKey?{fileKey:e.fileKey}:{},scale:e.scale},type:e.type,id:e.tag,folder:e.folder,manifests:e.manifests}:{importer:`figma`,input:{url:e.url,format:`png`,scale:e.scale},type:e.type,id:e.id,folder:e.folder,manifests:e.manifests};return i(await fetch(`/api/imports`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function ie(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 ae(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}/retag`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function oe(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 se(e,t){let n=t.mode===`tag`?{mode:`tag`,tag:t.tag,format:`png`,...t.fileKey?{fileKey:t.fileKey}:{},scale:t.scale}:{url:t.url,scale:t.scale,format:`png`};return i(await fetch(`/api/assets/${encodeURIComponent(e)}/raw`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({importer:`figma`,input:n})}))}async function ce(e){return i(await fetch(`/api/folders`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}))}async function le(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t})}))}async function ue(e,t){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({parent:t})}))}async function de(e){return i(await fetch(`/api/folders/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function fe(e,t){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function pe(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 me(e){return i(await fetch(`/api/assets/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function he(e){return i(await fetch(`/api/assets/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetIds:e})}))}async function ge(e,t){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({assetId:e,kind:t})}))}async function _e(e){return a(await fetch(`/api/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:e})}))}async function ve(e){return i(await fetch(`/api/manifests`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}))}async function ye(e){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`DELETE`}))}async function be(e,t){return i(await fetch(`/api/manifests/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}var xe=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 Se=/[\u0000-\u001f\u007f]/,Ce=/[<>:"|?*]/,we=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function Te(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.`:Se.test(e)?`Folder names must not contain control characters.`:Ce.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.`:we.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function Ee(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function m(e){return Ee(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 De(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").`}var Oe=`await.break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.instanceof.new.null.return.super.switch.this.throw.true.try.typeof.var.void.while.with.yield.implements.interface.let.package.private.protected.public.static.arguments.eval.createManifest`.split(`.`);function ke(e){return w.test(e)?C.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:Oe.includes(e)?`"${e}" is reserved (it cannot name the generated manifest export).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}function T(e){return D(e)}function E(e,t){return e<t?-1:+(e>t)}function D(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(D).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)}:${D(t[e])}`);return`{${n.join(`,`)}}`}throw Error(`Cannot canonicalize a ${typeof e} value.`)}var O={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 Ae(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var k={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2,despillCoverage:1},je=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function A(e){return Math.min(1,Math.max(0,e))}function Me(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:[A(n[0]),A(n[1]),A(n[2])]};for(let e of je){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=A(n)}let i=t.despillCoverage;if(i!==void 0){if(typeof i!=`number`||!Number.isFinite(i))throw Error(`"chromaKey.despillCoverage" must be a number (0–1).`);r.despillCoverage=A(i)}return r}var j=[`mp4`,`mov`,`webm`,`m4v`];function M(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 N={type:`video`,accepts:[...j],defaultParameters:()=>({preset:`default`}),validateParameters(e){return M(`Video`,e)}};function P(e,t){if(t!==void 0){if(!Ae(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var F={type:`chroma-key-video`,accepts:[...j],defaultParameters:()=>({preset:`default`,chromaKey:{...k,keyColor:[...k.keyColor]}}),validateParameters(e){let t=M(`Chroma-key-video`,e),n=e,r=Me(n.chromaKey),i=P(`mask`,n.mask),a=P(`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}}}},I=[`png`,`jpg`,`jpeg`,`webp`,`avif`],L={type:`image`,accepts:[...I],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}}}},R=[`nine`,`three-horizontal`,`three-vertical`,`one`];function z(){return{top:0,right:0,bottom:0,left:0}}function B(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function V(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function Ne(e,t,n,r){return V(e,t,n,r)-1}function H(e,t,n){return Math.max(t,Math.min(n,e))}function Pe(e){let t=B(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=H(a,0,e.width),u=H(o,0,e.width-l),d=H(s,0,e.height);return{top:d,right:u,bottom:H(c,0,e.height-d),left:l}}function Fe(e){return e?e.top>0||e.right>0||e.bottom>0||e.left>0:!1}function Ie(e,t,n){let r=t.width!==n.width||t.height!==n.height;return{slicing:{mode:e.mode,insets:Pe({...e,...t}),pixelRatio:e.pixelRatio,...Fe(e.overdraw)?{overdraw:e.overdraw}:{}},sourceWidth:t.width,sourceHeight:t.height,...r?{uncompressedWidth:n.width,uncompressedHeight:n.height}:{}}}function U(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=z();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 Le(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 W={type:`slice`,accepts:[...I],defaultParameters:()=>({mode:`nine`,insets:z(),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`||!R.includes(t.mode))throw Error(`Slice "mode" must be one of ${R.map(e=>`'${e}'`).join(` | `)}.`);let n=U(`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:U(`overdraw`,t.overdraw),i=t.compression===void 0?void 0:Le(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}}},G=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}};G.register(L),G.register(W),G.register(N),G.register(F),G.register(O);var K=G.values();function Re(e=K){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function ze(e,t=K){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function Be(e,t=K){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function Ve(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 He(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 Ue(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(E)){let n=Object.entries(e.assets).filter(([,e])=>e.manifests.includes(i)).map(([e])=>e).sort(E),a=new Set(n),o=new Set(n),s=new Map;for(let e of n)for(let n of He([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)=>E(e.assetId,t.assetId)),deliveredAssetIds:o}}return r}function We(e,t,n,r){return n&&q(n,r)?`committed`:t&&q(t,r)?`rolled-back`:`unknown`}function q(e,t){return T(e)===T(t)}var J=Object.fromEntries(G.values().map(e=>[e.type,e]));function Ge(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,duplicateIds:t.duplicateIds,passiveManifests:t.passiveManifests,references:t.references}:e}),gitBranch:t.gitBranch,importDefaults:t.importDefaults,issues:t.issues,presetNames:t.presetNames,presetCapabilities:t.presetCapabilities,rawIngestionQueue:t.rawIngestionQueue};return X(r,r.library)}function Ke(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=Ve(t,J),o=Ue(t,a),s=qe(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,o])=>{let l=r.get(i.get(e)??e);return l?{...l,id:e,raw:o.raw,folder:v(o.raw),parameters:o.parameters,manifests:o.manifests,duplicateIds:l.duplicateIds.map(e=>n.get(e)??e).filter(e=>Object.hasOwn(t.assets,e)).sort(),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 qe(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 Je(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 Ye(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 Xe(e){return Z(t=>{for(let n of new Set(e))delete t.assets[n]})}function Ze(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 Qe(e,t){return Q(e,_(h(e),t))}function $e(e,t){return Q(e,_(t,g(e)))}function et(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 tt(e){return Z(t=>{Object.hasOwn(t.manifests,e)||(t.manifests[e]={})})}function nt(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 rt(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 it=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}},at=class{#e=null;#t;constructor(e){this.#t=e}discover(e){if(this.#e)return this.#e;let t=(async()=>{try{this.#t({available:await e(),error:null})}catch(e){this.#t({available:null,error:e instanceof Error?e.message:String(e)})}})();return this.#e=t.finally(()=>{this.#e=null}),this.#e}};function ot(e,t,n){return e??t??(n.length>0?n.join(`
2
+ `):null)}var st=new class{#e=new it;#t=new xe;#n=0;#r=0;#i=[];#a=t(null);get state(){return e(this.#a)}set state(e){n(this.#a,e,!0)}#o=t(!1);get saving(){return e(this.#o)}set saving(e){n(this.#o,e,!0)}#s=t(null);get error(){return e(this.#s)}set error(e){n(this.#s,e,!0)}#c=t(null);get usageAvailable(){return e(this.#c)}set usageAvailable(e){n(this.#c,e,!0)}#l=t(null);get usageCapabilityError(){return e(this.#l)}set usageCapabilityError(e){n(this.#l,e,!0)}#u=t(0);get usageRefreshRevision(){return e(this.#u)}set usageRefreshRevision(e){n(this.#u,e,!0)}#d=new at(e=>{this.usageAvailable=e.available,this.usageCapabilityError=e.error});#f=t(!1);get loaded(){return e(this.#f)}set loaded(e){n(this.#f,e,!0)}async refresh(){return this.#p(u,{rebaseEditableState:!0})}discoverUsageCapability(){return this.#d.discover(s)}reconcile(){return this.#p(d,{coalesce:!0})}async reconcileOnFocus(){let e=this.usageRefreshRevision;await this.reconcile(),this.usageRefreshRevision===e&&this.usageRefreshRevision++}connectLibraryEvents(){if(typeof EventSource>`u`)return()=>{};let e=new EventSource(`/api/events`),t=()=>void this.reconcile();return e.addEventListener(`library-changed`,t),e.addEventListener(`open`,t),()=>{e.removeEventListener(`library-changed`,t),e.removeEventListener(`open`,t),e.close()}}#p(e,t={}){let n=async()=>{try{let n=await e();this.#t.value===null||t.rebaseEditableState?this.#t.replaceBase(n):this.#t.mergeBase(e=>Ke(e,n)),this.#h(),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.#m(e,t,n)}mutateFromServer(e,t){return this.#m(e,void 0,t)}#m(e,t,n={dependencies:[]}){let r=++this.#r,i=this.#t.value?.library,a=t?this.#t.add(t,n.dependencies):null,o=a===null?void 0:this.#t.value?.library;return a!==null&&this.#h(),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.#h()),new $;let t=await e();a===null?this.#t.replaceBase(t):this.#t.confirm(a,t,e=>Y(e,t)),this.#h()}catch(e){if(e instanceof $)throw this.error=e.message,e;let t=null;try{t=await u();let s=We(e,i,o,t.library);if(s===`committed`&&a!==null){let e=t;this.#t.confirm(a,e,t=>Y(t,e)),this.#h(),this.error=null;return}this.#t.replaceBase(t),s===`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.#h(),this.error=e instanceof Error?e.message:String(e),e}finally{--this.#n,this.saving=this.#n>0,this.#n===0&&(this.#i=[])}})}#h(){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{fe as $,ke as A,f as B,B as C,k as D,N as E,_ as F,de as G,ve as H,h as I,c as J,ye as K,m as L,g as M,v as N,O,b as P,l as Q,x as R,Ne as S,F as T,me as U,ce as V,he as W,pe as X,re as Y,ue as Z,G as _,tt as a,ae as at,z as b,rt as c,ne as ct,Je as d,be as et,nt as f,Be as g,ze as h,Ze as i,se as it,Te as j,De as k,Ye as l,Re as m,ot as n,le as nt,Xe as o,ge as ot,Qe as p,te as q,Ge as r,oe as rt,et as s,_e as st,st as t,ie as tt,$e as u,Ie as v,L as w,V as x,W as y,ee as z};
@@ -1 +1 @@
1
- import{$ as e,A as t,D as n,E as r,F as i,I as a,K as o,L as s,M as c,P as l,R as u,V as d,Z as f,a as p,b as m,dt as h,f as g,j as _,m as v,ot as y,p as b,rt as x,st as S,y as C}from"./DLEDBLL1.js";import"./xihTtKlq.js";import{k as w,t as T}from"./apKHI4vq.js";var E={"arrow-up":`<path d="M12 19V5"/><path d="M6 11l6-6 6 6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="M13 6l6 6-6 6"/>`,"arrow-down":`<path d="M12 5v14"/><path d="M6 13l6 6 6-6"/>`,"arrow-left":`<path d="M19 12H5"/><path d="M11 6l-6 6 6 6"/>`,sort:`<path d="m3 16 4 4 4-4"/><path d="M7 20V4"/><path d="M11 4h10"/><path d="M11 8h7"/><path d="M11 12h4"/>`,"asset-type":`<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/>`,manifest:`<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><path d="M10 9H8"/><path d="M16 13H8"/><path d="M16 17H8"/>`,"git-branch":`<path d="M15 6a9 9 0 0 0-9 9V3"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/>`,images:`<path d="m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16"/><path d="M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2"/><circle cx="13" cy="7" r="1" fill="currentColor"/><rect x="8" y="2" width="14" height="14" rx="2"/>`,"file-search":`<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><circle cx="11.5" cy="14.5" r="2.5"/><path d="M13.3 16.3 15 18"/>`,"list-filter":`<path d="M3 6h18"/><path d="M7 12h10"/><path d="M10 18h4"/>`,plus:`<path d="M5 12h14"/><path d="M12 5v14"/>`,"chevron-down":`<path d="m6 9 6 6 6-6"/>`,copy:`<rect x="8" y="8" width="14" height="14" rx="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`,check:`<path d="M20 6 9 17l-5-5"/>`,"layout-grid":`<rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/>`,table:`<path d="M12 3v18"/><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18"/><path d="M3 15h18"/>`,width:`<path d="M3 12h18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>`,ratio:`<rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/>`,preset:`<path d="M4 7h10"/><circle cx="17" cy="7" r="2"/><path d="M20 17H10"/><circle cx="7" cy="17" r="2"/>`,cutoff:`<circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor" stroke="none"/>`,"color-feather":`<circle cx="12" cy="12" r="8" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,"mask-feather":`<rect x="4" y="4" width="16" height="16" rx="3" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,sharpen:`<path d="M4 18l8-12 8 12"/><path d="M4 18h16"/>`,despill:`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z"/>`,"despill-lum":`<path d="M12 3s5.5 5.5 5.5 10a5.5 5.5 0 0 1-11 0c0-4.5 5.5-10 5.5-10z"/><path d="M12 10v5M9.5 12.5h5"/>`,"despill-coverage":`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z" stroke-dasharray="1.5 3"/><circle cx="12" cy="14" r="2.5"/>`},D=i(`<svg class="icon svelte-jamecx" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg>`);function O(e,t){let n=p(t,`size`,3,16);var i=D();r(i,()=>E[t.name],!0),h(i),o(()=>{b(i,`width`,n()),b(i,`height`,n())}),c(e,i)}function k(e){return e.length===0?[]:[e.includes(`main`)?`main`:e[0]]}function A(e,t){return w(e)??(t.has(e)?`An asset with id "${e}" already exists.`:null)}function j(e,t,n=[]){let r=e;for(let i of t)i.kind===`unsupported`||Object.hasOwn(e,i.token)||(r===e&&(r={...e}),r[i.token]={id:i.kind===`new`?i.proposedId:i.assetId,type:i.kind===`new`?i.compatibleTypes[0]??``:i.compatibleTypes.includes(i.currentType)?i.currentType:``,manifests:i.kind===`new`?k(n):[],error:null,busy:!1});return r}var M=l(`<span class="color-dot svelte-151zph4"></span>`),N=l(`<span class="via svelte-151zph4"> </span>`),P=l(`<label><input type="checkbox" class="svelte-151zph4"/> <span class="marker svelte-151zph4" aria-hidden="true"><!></span> <span class="name svelte-151zph4"> </span> <!></label>`),F=l(`<div class="manifest-selector svelte-151zph4" role="group" aria-label="Manifest assignments"></div>`);function I(r,i){S(i,!0);let s=p(i,`disabled`,3,!1);function l(e){return i.passive.find(t=>t.manifest===e)}function w(e,t,n){return t?`${e}: explicitly assigned`:n?`${e}: passive member via ${n.via.join(`, `)}`:`${e}: not assigned`}var E=F();n(E,20,()=>i.manifests,e=>e,(n,r)=>{let p=x(()=>T.manifestAppearance(r)),y=x(()=>i.selected.includes(r)),S=x(()=>l(r)),E=x(()=>d(p).color??`var(--accent)`);var D=P();let O,k;var A=f(D);g(A);var j=e(A,2),F=f(j),I=e=>{var t=a();o(()=>_(t,d(p).emoji)),c(e,t)},L=e=>{c(e,M())};t(F,e=>{d(p).emoji?e(I):e(L,-1)}),h(j);var R=e(j,2),z=f(R,!0);h(R);var B=e(R,2),V=e=>{var t=N(),n=f(t);h(t),o(e=>_(n,`passive · via ${e??``}`),[()=>d(S).via.join(`, `)]),c(e,t)};t(B,e=>{d(S)&&!d(y)&&e(V)}),h(D),o((e,t)=>{O=m(D,1,`manifest-option control svelte-151zph4`,null,O,{selected:d(y),passive:d(S)!==void 0&&!d(y),disabled:s()}),b(D,`title`,e),k=C(D,``,k,{"--manifest-color":d(E)}),v(A,d(y)),A.disabled=s(),b(A,`aria-label`,t),_(z,r)},[()=>w(r,d(y),d(S)),()=>w(r,d(y),d(S))]),u(`change`,A,()=>i.onToggle(r)),c(n,D)}),h(E),c(r,E),y()}s([`change`]);export{O as a,A as i,k as n,j as r,I as t};
1
+ import{$ as e,A as t,D as n,E as r,F as i,I as a,K as o,L as s,M as c,P as l,R as u,V as d,Z as f,a as p,b as m,dt as h,f as g,j as _,m as v,ot as y,p as b,rt as x,st as S,y as C}from"./DLEDBLL1.js";import"./xihTtKlq.js";import{k as w,t as T}from"./C0uU_Rhe.js";var E={"arrow-up":`<path d="M12 19V5"/><path d="M6 11l6-6 6 6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="M13 6l6 6-6 6"/>`,"arrow-down":`<path d="M12 5v14"/><path d="M6 13l6 6 6-6"/>`,"arrow-left":`<path d="M19 12H5"/><path d="M11 6l-6 6 6 6"/>`,sort:`<path d="m3 16 4 4 4-4"/><path d="M7 20V4"/><path d="M11 4h10"/><path d="M11 8h7"/><path d="M11 12h4"/>`,"asset-type":`<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/>`,manifest:`<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><path d="M10 9H8"/><path d="M16 13H8"/><path d="M16 17H8"/>`,"git-branch":`<path d="M15 6a9 9 0 0 0-9 9V3"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/>`,images:`<path d="m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16"/><path d="M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2"/><circle cx="13" cy="7" r="1" fill="currentColor"/><rect x="8" y="2" width="14" height="14" rx="2"/>`,"file-search":`<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><circle cx="11.5" cy="14.5" r="2.5"/><path d="M13.3 16.3 15 18"/>`,"list-filter":`<path d="M3 6h18"/><path d="M7 12h10"/><path d="M10 18h4"/>`,plus:`<path d="M5 12h14"/><path d="M12 5v14"/>`,"chevron-down":`<path d="m6 9 6 6 6-6"/>`,copy:`<rect x="8" y="8" width="14" height="14" rx="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`,check:`<path d="M20 6 9 17l-5-5"/>`,"layout-grid":`<rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/>`,table:`<path d="M12 3v18"/><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18"/><path d="M3 15h18"/>`,width:`<path d="M3 12h18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>`,ratio:`<rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/>`,preset:`<path d="M4 7h10"/><circle cx="17" cy="7" r="2"/><path d="M20 17H10"/><circle cx="7" cy="17" r="2"/>`,cutoff:`<circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor" stroke="none"/>`,"color-feather":`<circle cx="12" cy="12" r="8" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,"mask-feather":`<rect x="4" y="4" width="16" height="16" rx="3" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,sharpen:`<path d="M4 18l8-12 8 12"/><path d="M4 18h16"/>`,despill:`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z"/>`,"despill-lum":`<path d="M12 3s5.5 5.5 5.5 10a5.5 5.5 0 0 1-11 0c0-4.5 5.5-10 5.5-10z"/><path d="M12 10v5M9.5 12.5h5"/>`,"despill-coverage":`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z" stroke-dasharray="1.5 3"/><circle cx="12" cy="14" r="2.5"/>`},D=i(`<svg class="icon svelte-jamecx" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg>`);function O(e,t){let n=p(t,`size`,3,16);var i=D();r(i,()=>E[t.name],!0),h(i),o(()=>{b(i,`width`,n()),b(i,`height`,n())}),c(e,i)}function k(e){return e.length===0?[]:[e.includes(`main`)?`main`:e[0]]}function A(e,t){return w(e)??(t.has(e)?`An asset with id "${e}" already exists.`:null)}function j(e,t,n=[]){let r=e;for(let i of t)i.kind===`unsupported`||Object.hasOwn(e,i.token)||(r===e&&(r={...e}),r[i.token]={id:i.kind===`new`?i.proposedId:i.assetId,type:i.kind===`new`?i.compatibleTypes[0]??``:i.compatibleTypes.includes(i.currentType)?i.currentType:``,manifests:i.kind===`new`?k(n):[],error:null,busy:!1});return r}var M=l(`<span class="color-dot svelte-151zph4"></span>`),N=l(`<span class="via svelte-151zph4"> </span>`),P=l(`<label><input type="checkbox" class="svelte-151zph4"/> <span class="marker svelte-151zph4" aria-hidden="true"><!></span> <span class="name svelte-151zph4"> </span> <!></label>`),F=l(`<div class="manifest-selector svelte-151zph4" role="group" aria-label="Manifest assignments"></div>`);function I(r,i){S(i,!0);let s=p(i,`disabled`,3,!1);function l(e){return i.passive.find(t=>t.manifest===e)}function w(e,t,n){return t?`${e}: explicitly assigned`:n?`${e}: passive member via ${n.via.join(`, `)}`:`${e}: not assigned`}var E=F();n(E,20,()=>i.manifests,e=>e,(n,r)=>{let p=x(()=>T.manifestAppearance(r)),y=x(()=>i.selected.includes(r)),S=x(()=>l(r)),E=x(()=>d(p).color??`var(--accent)`);var D=P();let O,k;var A=f(D);g(A);var j=e(A,2),F=f(j),I=e=>{var t=a();o(()=>_(t,d(p).emoji)),c(e,t)},L=e=>{c(e,M())};t(F,e=>{d(p).emoji?e(I):e(L,-1)}),h(j);var R=e(j,2),z=f(R,!0);h(R);var B=e(R,2),V=e=>{var t=N(),n=f(t);h(t),o(e=>_(n,`passive · via ${e??``}`),[()=>d(S).via.join(`, `)]),c(e,t)};t(B,e=>{d(S)&&!d(y)&&e(V)}),h(D),o((e,t)=>{O=m(D,1,`manifest-option control svelte-151zph4`,null,O,{selected:d(y),passive:d(S)!==void 0&&!d(y),disabled:s()}),b(D,`title`,e),k=C(D,``,k,{"--manifest-color":d(E)}),v(A,d(y)),A.disabled=s(),b(A,`aria-label`,t),_(z,r)},[()=>w(r,d(y),d(S)),()=>w(r,d(y),d(S))]),u(`change`,A,()=>i.onToggle(r)),c(n,D)}),h(E),c(r,E),y()}s([`change`]);export{O as a,A as i,k as n,j as r,I as t};
@@ -1 +1 @@
1
- import"./DLEDBLL1.js";import{i as e,o as t}from"./Bsj1ssvc.js";var n={get data(){return t.data},get error(){return t.error},get form(){return t.form},get params(){return t.params},get route(){return t.route},get state(){return t.state},get status(){return t.status},get url(){return t.url}};e.updated.check;var r=n;export{r as t};
1
+ import"./DLEDBLL1.js";import{i as e,o as t}from"./wBLhaPea.js";var n={get data(){return t.data},get error(){return t.error},get form(){return t.form},get params(){return t.params},get route(){return t.route},get state(){return t.state},get status(){return t.status},get url(){return t.url}};e.updated.check;var r=n;export{r as t};
@@ -0,0 +1,2 @@
1
+ I@ds.e{S������I���;������j ~��I�hz�+M�;Zs�/R�ed%����"M�����I����k[�ˋ�<�s�j_̯�����(#���( v�K�o�bH�T@�`��W
2
+ 2(�C������S�����0�O���T
@@ -0,0 +1 @@
1
+ import{H as e,U as t,V as n,it as r,nt as i,r as a,t as o,tt as s}from"./DLEDBLL1.js";var c=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function ee(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function g(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var _=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),_(e,t));var v=new Map;function te(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=g(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function y(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${ee(...e)}"]`}return n}var ne=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,re=/^\/\((?:[^)]+)\)$/;function x(e){let t=[];return{pattern:e===`/`||re.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}var ce=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function le(e,t){let n=ae(e),r=e!=`/`&&e.endsWith(`/`);return`/`+n.map(n=>n.replace(ce,(n,r,i,a)=>{let o=t[a];if(!o){if(r||i&&o!==void 0)return``;throw Error(`Missing parameter '${a}' in route ${e}`)}if(o.startsWith(`/`)||o.endsWith(`/`))throw Error(`Parameter '${a}' in route ${e} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return o})).filter(Boolean).join(`/`)+(r?`/`:``)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=x(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_191oeer?.base??``,pe=globalThis.__sveltekit_191oeer?.assets??S??``,me=``;function he(...e){if(!e[0].startsWith(`/`))throw Error(`Cannot use \`resolve(...)\` with a non-absolute pathname or route ID (got "${e[0]}"). \`resolve\` is only for internal pathnames and route IDs; external URLs should be used directly.`);return S+me+le(e[0],e[1])}var ge=`1790767052989`,_e=`sveltekit:snapshot`,ve=`sveltekit:scroll`,ye=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},E=location.origin;function be(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function O(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var xe={...T,"":T.hover};function Se(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ce(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Se(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||A(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===E&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function k(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=O(s,`preload-code`)),i===null&&(i=O(s,`preload-data`)),t===null&&(t=O(s,`keepfocus`)),n===null&&(n=O(s,`noscroll`)),a===null&&(a=O(s,`reload`)),o===null&&(o=O(s,`replacestate`)),s=Se(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:xe[r??`off`],preload_data:xe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Te(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:t}=r(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==ge;return n&&(e(!0),Ee.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function A(e,t,n){return e.origin!==E||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Oe(e){}var ke=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...ke],[...new Set([...ke])];function Ae(e){return e.filter(e=>e!=null)}function j(e,t){return e+`/`+t}function je(e){return e instanceof c||e instanceof u?e.status:500}function Me(e){return e instanceof u?e.text:`Internal Error`}var M,N,P,Ne=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Pe=`a:`;Ne?(M={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},N={current:null},P={current:!1}):(M=new class{#e=i({});get data(){return n(this.#e)}set data(e){s(this.#e,e)}#t=i(null);get form(){return n(this.#t)}set form(e){s(this.#t,e)}#n=i(null);get error(){return n(this.#n)}set error(e){s(this.#n,e)}#r=i({});get params(){return n(this.#r)}set params(e){s(this.#r,e)}#i=i({id:null});get route(){return n(this.#i)}set route(e){s(this.#i,e)}#a=i({});get state(){return n(this.#a)}set state(e){s(this.#a,e)}#o=i(-1);get status(){return n(this.#o)}set status(e){s(this.#o,e)}#s=i(new URL(Pe));get url(){return n(this.#s)}set url(e){s(this.#s,e)}},N=new class{#e=i(null);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},P=new class{#e=i(!1);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=o,Re=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),F=null,I=de(`sveltekit:scroll`)??{},L=de(`sveltekit:snapshot`)??{},R={url:Te({}),page:Te({}),navigating:r(null),updated:De()};function ze(e){I[e]=D()}function Be(e,t){let n=e+1;for(;I[n];)delete I[n],n+=1;for(n=t+1;L[n];)delete L[n],n+=1}function z(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Ve(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var He,Ue,We,B,Ge,V,Ke={},qe={},Je=[],Ye=[],H=null;function Xe(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var Ze=new Map,Qe=new Set,$e=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},et=!1,tt=!1,nt=!0,G=!1,K=!1,rt=!1,it=!1,at,q,J,Y,ot=new Set,st=new Map,ct=new Map;async function lt(e,t,n){if(globalThis.__sveltekit_191oeer.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_191oeer.data;for(let t in e)Ke[t]=e[t];for(let e in n)Ke[e]=n[e];for(let e in r)Ke[e]=r[e];for(let e in t)qe[e]=t[e]}document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),He=ue(e),B=document.documentElement,Ge=t,Ue=e.nodes[0],We=e.nodes[1],Ue(),We(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=I[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await zt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Gt(new URL(location.href)):location.href),replace_state:!0}),i()),Rt()}function ut(){Je.length=0,it=!1}function dt(e){Ye.some(e=>e?.snapshot)&&(L[e]=Ye.map(e=>e?.snapshot?.capture()))}function ft(e){L[e]?.forEach((e,t)=>{Ye[t]?.snapshot?.restore(e)})}function pt(){ze(q),fe(ve,I),dt(J),fe(_e,L)}async function mt(e,n,r,i){let a,o;n.invalidateAll&&Xe(),await Z({type:`goto`,url:be(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){it=!0,a=new Set;for(let[e,t]of st)for(let[n,r]of t)r.resource?.reset(),a.add(j(e,n));o=new Set;for(let[e,t]of ct)for(let n of t.keys())o.add(j(e,n))}n.invalidate&&n.invalidate.forEach(Lt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of st)for(let[n,{resource:r}]of t)a?.has(j(e,n))&&r.start();for(let[e,t]of ct)for(let[n,{resource:r}]of t)o?.has(j(e,n))&&r.reconnect()})}async function ht(e){if(e.id!==H?.id){Xe();let t={};ot.add(t),H={id:e.id,token:t,promise:Tt({...e,preload:t}).then(e=>(ot.delete(t),e.type===`loaded`&&e.state.error&&Xe(),e)),fork:null}}return H.promise}async function gt(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function _t(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},Fe(e.props.page),at=new V.root({target:t,props:{...e.props,stores:R,components:Ye},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:I[q]??D()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}ft(J),tt=!0}async function vt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Ae(n).map(e=>e.node.component),page:Wt(M)}};s!==void 0&&(l.props.form=s);let u={},f=!M,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==M.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:M.data}),l}async function yt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function bt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:tt?y(r,i.href,t):te(r,t)}}function xt(e,t,n,r,i,a){if(it)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(Je.some(t=>t(new URL(e))))return!0;return!1}function St(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Ct(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function wt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Wt(M),constructors:[]}}}async function Tt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return ot.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=W.url?e!==At(W.url):!1,p=W.route?i.id!==W.route.id:!1,m=Ct(W.url,n),ee=!1,g=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!xt(ee,p,f,m,a.universal?.uses,r)?a:(ee=!0,yt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:St(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&ot.has(a))return wt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=je(t),u;if(t instanceof c)u=t.body;else{if(await R.updated.check())return await Ve(),await z(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await Et(e,_,o);return d?vt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Mt(n,{id:i.id},u,s)}else _.push(void 0);return vt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function Et(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Dt({status:e,error:t,url:n,route:r}){let i={};try{return vt({url:n,params:i,branch:[await yt({loader:Ue,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:St(null)}),{node:await We(),loader:We,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await mt(new URL(t.location,location.href),{},0);return}let a=await V.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ot(e){let t=e.href;if(Ze.has(t))return Ze.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>bt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();Ze.set(t,r),n=await r}catch{Ze.delete(t);return}return n}async function X(e,t){if(e&&!A(e,S,V.hash)){let n=await Ot(e);if(!n)return;let r=kt(n);for(let n of He){let i=n.exec(r);if(i)return{id:At(e),invalidating:t,route:n,params:p(i),url:e}}}}function kt(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function At(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function jt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Ut(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||Qe.forEach(e=>e(c)),o?null:s}async function Z({type:n,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let ee=Y;Y=d;let g=await X(r,!1),_=n===`enter`?Ut(W,g,r,n):jt({url:r,type:n,delta:i?.delta,intent:g,scroll:i?.scroll,event:m});if(!_){p(),Y===d&&(Y=ee);return}let v=q,te=J;f(),G=!0,tt&&_.navigation.type!==`enter`&&R.navigating.set(N.current=_.navigation);let y=g&&await Tt(g);if(!y){if(A(r,S,V.hash))return await z(r,s);y=await Mt(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=g?.url||r,Y!==d){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:n,url:new URL(y.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),_.fulfil(void 0);return}if(y=await Dt({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await R.updated.check())return await Ve(),await z(r,s);if(ut(),ze(v),dt(te),y.props.page.url.pathname!==r.pathname&&(r.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:q+=e,[w]:J+=e,[ye]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Be(q,J)}let b=g&&H?.id===g.id?H.fork:null;H?.fork&&!b?Xe():(H=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let ne;if(tt){let t=(await Promise.all(Array.from($e,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{U.delete(e)})}t.push(e),t.forEach(e=>{U.add(e)})}let n=_.navigation.to;W={...y.state,nav:{params:n.params,route:n.route,url:n.url}},y.props.page&&(y.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=b&&await b;i?ne=i.commit():(F=null,at.$set(y.props),F&&Object.assign(y.props.page,F),Fe(y.props.page),ne=e?.()),rt=!0}else await _t(y,Ge,!1);let{activeElement:re}=document;if(await ne,await t(),await t(),Y!==d){_.reject(Error(`navigation aborted`));return}y.props.page&&F&&Object.assign(y.props.page,F);let x=null;if(nt){let e=i?i.scroll:o?D():null;e?scrollTo(e.x,e.y):(x=r.hash&&document.getElementById(Kt(r)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Ht(r,!x),nt=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=D()),U.forEach(e=>e(_.navigation)),n===`popstate`&&ft(J),R.navigating.set(N.current=null)}async function Mt(e,t,n,r,i){return e.origin===E&&e.pathname===location.pathname&&!et?await Dt({status:r,error:n,url:e,route:t}):await z(e,i)}var Q={element:void 0,href:void 0};function Nt(){let e,t;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}B.addEventListener(`mousedown`,n),B.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(gt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ce(e,B),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=we(r,S,V.hash);if(o||s)return;let c=k(r),l=a&&At(W.url)===At(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await X(a,!1);if(!e)return;ht(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,gt(a))}function a(){r.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:i}=we(e,S,V.hash);if(n||i)continue;let a=k(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&gt(t))}}U.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=je(e),r=Me(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Pt(e,t){Ie(()=>(e.add(t),()=>{e.delete(t)}))}function Ft(e){Pt(U,e)}function It(e,t={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Lt(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function Rt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Ut(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&pt()}),navigator.connection?.saveData||Nt(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ce(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=we(n,S,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=k(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){jt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,ze(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(A(r,S,!1))return;let i=e.target,a=k(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Vt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=I[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=W.url?m(location)===m(W.url):!1;if(o===J&&(rt||s)){i!==M.state&&(M.state=i),e(a),I[q]=D(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Re.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&R.navigating.set(N.current=null)});function e(e){W.url=M.url=e,R.page.set(Wt(M)),R.page.notify()}}async function zt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){et=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=He.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Bt(r.uses)),yt({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:St(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await vt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await z(new URL(t.location,location.href));f=await Dt({status:je(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await _t(f,e,p))}function Bt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Vt=!1;function Ht(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Kt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;Vt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Vt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Ut(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Wt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Gt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Kt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{N as a,Oe as c,R as i,he as l,It as n,M as o,lt as r,P as s,Ft as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Wqvn8XD-.js","../chunks/DLEDBLL1.js","../chunks/Bsj1ssvc.js","../chunks/xihTtKlq.js","../chunks/QlQ-jeIO.js","../chunks/apKHI4vq.js","../chunks/g2rma9Ym.js","../assets/ManifestSelector.Cue3sCA1.css","../chunks/BhqXGxdj.js","../assets/FileChangeBadge.C6wwUZJS.css","../assets/0.CHekvMpo.css","../nodes/1.Z-UvvLkP.js","../nodes/2.lu89W_qJ.js","../chunks/OL1Dh1oP.js","../chunks/CzxolZCO.js","../assets/Popover.CCTioPJZ.css","../assets/AssetSourceMenu.DWPxyX6L.css","../assets/2.CnYmQjo0.css","../nodes/3.Dt32EAoq.js","../assets/3.Dfl33dj0.css","../nodes/4.WipzcX8_.js","../assets/4.C0QkCMQ4.css"])))=>i.map(i=>d[i]);
2
- import{$ as e,A as t,I as n,J as r,K as i,M as a,N as o,P as s,Q as c,U as l,V as u,Z as d,a as f,dt as p,i as m,j as h,nt as g,ot as _,q as v,r as y,rt as b,s as x,st as S,tt as C,w}from"../chunks/DLEDBLL1.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=s(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=s(`<!> <!>`,1);function M(s,m){S(m,!0);let T=f(m,`components`,23,()=>[]),E=f(m,`data_0`,3,null),D=f(m,`data_1`,3,null);r(()=>m.stores.page.set(m.page)),v(()=>{m.stores,m.page,m.constructors,T(),m.form,E(),D(),m.stores.page.notify()});let O=g(!1),k=g(!1),M=g(null);y(()=>{let e=m.stores.page.subscribe(()=>{u(O)&&(C(k,!0),l().then(()=>{C(M,document.title||`untitled page`,!0)}))});return C(O,!0),e});let N=b(()=>m.constructors[1]);var P=j(),F=c(P),I=e=>{let t=b(()=>m.constructors[0]);var n=o();w(c(n),()=>u(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return m.form},get params(){return m.page.params},children:(e,t)=>{var n=o();w(c(n),()=>u(N),(e,t)=>{x(t(e,{get data(){return D()},get form(){return m.form},get params(){return m.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,n)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)},L=e=>{let t=b(()=>m.constructors[0]);var n=o();w(c(n),()=>u(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return m.form},get params(){return m.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)};t(F,e=>{m.constructors[1]?e(I):e(L,-1)});var R=e(F,2),z=e=>{var r=A(),o=d(r),s=e=>{var t=n();i(()=>h(t,u(M))),a(e,t)};t(o,e=>{u(k)&&e(s)}),p(r),a(e,r)};t(R,e=>{u(O)&&e(z)}),a(s,P),_()}var N=m(M),P=[()=>O(()=>import(`../nodes/0.Wqvn8XD-.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url),()=>O(()=>import(`../nodes/1.Z-UvvLkP.js`),__vite__mapDeps([11,1,3,4,2]),import.meta.url),()=>O(()=>import(`../nodes/2.lu89W_qJ.js`),__vite__mapDeps([12,1,2,3,4,5,13,6,7,14,15,16,8,9,17]),import.meta.url),()=>O(()=>import(`../nodes/3.Dt32EAoq.js`),__vite__mapDeps([18,1,2,3,4,5,13,6,7,14,15,16,19]),import.meta.url),()=>O(()=>import(`../nodes/4.WipzcX8_.js`),__vite__mapDeps([20,1,2,3,5,14,15,21]),import.meta.url)],F=[],I={"/":[2],"/asset/[id]":[3],"/manifests":[4]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CsqkK05g.js","../chunks/DLEDBLL1.js","../chunks/wBLhaPea.js","../chunks/xihTtKlq.js","../chunks/kkVEh3_1.js","../chunks/C0uU_Rhe.js","../chunks/CMJ10zbJ.js","../assets/ManifestSelector.Cue3sCA1.css","../chunks/BhqXGxdj.js","../assets/FileChangeBadge.C6wwUZJS.css","../assets/0.CHekvMpo.css","../nodes/1.BVSXvtU9.js","../nodes/2.BJEXWmrT.js","../chunks/BCmR1_e0.js","../chunks/CzxolZCO.js","../assets/Popover.CCTioPJZ.css","../assets/AssetSourceMenu.DWPxyX6L.css","../assets/2.CnYmQjo0.css","../nodes/3.BDMmDyL1.js","../assets/3.Dfl33dj0.css","../nodes/4.dd49_qQE.js","../assets/4.C0QkCMQ4.css"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,I as n,J as r,K as i,M as a,N as o,P as s,Q as c,U as l,V as u,Z as d,a as f,dt as p,i as m,j as h,nt as g,ot as _,q as v,r as y,rt as b,s as x,st as S,tt as C,w}from"../chunks/DLEDBLL1.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=s(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=s(`<!> <!>`,1);function M(s,m){S(m,!0);let T=f(m,`components`,23,()=>[]),E=f(m,`data_0`,3,null),D=f(m,`data_1`,3,null);r(()=>m.stores.page.set(m.page)),v(()=>{m.stores,m.page,m.constructors,T(),m.form,E(),D(),m.stores.page.notify()});let O=g(!1),k=g(!1),M=g(null);y(()=>{let e=m.stores.page.subscribe(()=>{u(O)&&(C(k,!0),l().then(()=>{C(M,document.title||`untitled page`,!0)}))});return C(O,!0),e});let N=b(()=>m.constructors[1]);var P=j(),F=c(P),I=e=>{let t=b(()=>m.constructors[0]);var n=o();w(c(n),()=>u(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return m.form},get params(){return m.page.params},children:(e,t)=>{var n=o();w(c(n),()=>u(N),(e,t)=>{x(t(e,{get data(){return D()},get form(){return m.form},get params(){return m.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,n)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)},L=e=>{let t=b(()=>m.constructors[0]);var n=o();w(c(n),()=>u(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return m.form},get params(){return m.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)};t(F,e=>{m.constructors[1]?e(I):e(L,-1)});var R=e(F,2),z=e=>{var r=A(),o=d(r),s=e=>{var t=n();i(()=>h(t,u(M))),a(e,t)};t(o,e=>{u(k)&&e(s)}),p(r),a(e,r)};t(R,e=>{u(O)&&e(z)}),a(s,P),_()}var N=m(M),P=[()=>O(()=>import(`../nodes/0.CsqkK05g.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url),()=>O(()=>import(`../nodes/1.BVSXvtU9.js`),__vite__mapDeps([11,1,3,4,2]),import.meta.url),()=>O(()=>import(`../nodes/2.BJEXWmrT.js`),__vite__mapDeps([12,1,2,3,4,5,13,6,7,14,15,16,8,9,17]),import.meta.url),()=>O(()=>import(`../nodes/3.BDMmDyL1.js`),__vite__mapDeps([18,1,2,3,4,5,13,6,7,14,15,16,19]),import.meta.url),()=>O(()=>import(`../nodes/4.dd49_qQE.js`),__vite__mapDeps([20,1,2,3,5,14,15,21]),import.meta.url)],F=[],I={"/":[2],"/asset/[id]":[3],"/manifests":[4]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads};