fundus 0.5.0 → 0.7.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 (240) hide show
  1. package/README.md +137 -130
  2. package/build/client/_app/immutable/assets/0.CHekvMpo.css +1 -0
  3. package/build/client/_app/immutable/assets/0.CHekvMpo.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.CHekvMpo.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css +1 -0
  6. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.br +0 -0
  7. package/build/client/_app/immutable/assets/2.Bf0JkVBM.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css +1 -0
  9. package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.br +0 -0
  10. package/build/client/_app/immutable/assets/FileChangeBadge.C6wwUZJS.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css +1 -0
  12. package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.br +0 -0
  13. package/build/client/_app/immutable/assets/LibraryContextMenu.BSnKt_Is.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css +1 -0
  15. package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.br +0 -0
  16. package/build/client/_app/immutable/assets/ManifestSelector.Cue3sCA1.css.gz +0 -0
  17. package/build/client/_app/immutable/chunks/B9iWbZmZ.js +1 -0
  18. package/build/client/_app/immutable/chunks/B9iWbZmZ.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/B9iWbZmZ.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/BD3hQKzV.js +1 -0
  21. package/build/client/_app/immutable/chunks/BD3hQKzV.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BD3hQKzV.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/Blpvahbd.js +108 -0
  24. package/build/client/_app/immutable/chunks/Blpvahbd.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/Blpvahbd.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/C7Cs5PXV.js +1 -0
  27. package/build/client/_app/immutable/chunks/C7Cs5PXV.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/C7Cs5PXV.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/DPZDGjcn.js +1 -0
  30. package/build/client/_app/immutable/chunks/DPZDGjcn.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/DPZDGjcn.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{CN-G-m-B.js → DrsNq6gf.js} +1 -1
  33. package/build/client/_app/immutable/chunks/DrsNq6gf.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/DrsNq6gf.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/DylBiD8l.js +1 -0
  36. package/build/client/_app/immutable/chunks/DylBiD8l.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/DylBiD8l.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/NblqapDQ.js +3 -0
  39. package/build/client/_app/immutable/chunks/NblqapDQ.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/NblqapDQ.js.gz +0 -0
  41. package/build/client/_app/immutable/entry/app.CFPPKVrc.js +2 -0
  42. package/build/client/_app/immutable/entry/app.CFPPKVrc.js.br +0 -0
  43. package/build/client/_app/immutable/entry/app.CFPPKVrc.js.gz +0 -0
  44. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js +1 -0
  45. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.br +0 -0
  46. package/build/client/_app/immutable/entry/start.tn-ZAKbY.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/0.BS8VwNas.js +2 -0
  48. package/build/client/_app/immutable/nodes/0.BS8VwNas.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/0.BS8VwNas.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/1.Dpaug5O_.js +1 -0
  51. package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.br +2 -0
  52. package/build/client/_app/immutable/nodes/1.Dpaug5O_.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js +3 -0
  54. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/2.KyqEUB3M.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js +1 -0
  57. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/3.j8JVBjzd.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/4.CiYE8hwS.js +2 -0
  60. package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/4.CiYE8hwS.js.gz +0 -0
  62. package/build/client/_app/version.json +1 -1
  63. package/build/client/_app/version.json.br +0 -0
  64. package/build/client/_app/version.json.gz +0 -0
  65. package/build/handler.js +7 -7
  66. package/build/index.js +7 -7
  67. package/build/server/chunks/chunks/{context.js-bXe5hzjI.js → context.js-CLnT3cF3.js} +124 -7
  68. package/build/server/chunks/chunks/context.js-CLnT3cF3.js.map +1 -0
  69. package/build/server/chunks/chunks/{contract.js-sHny3b-s.js → contract.js-DGMufT2e.js} +191 -178
  70. package/build/server/chunks/chunks/contract.js-DGMufT2e.js.map +1 -0
  71. package/build/server/chunks/chunks/{core.js-Clg1CHb6.js → core.js-DNIuZ9y-.js} +88 -2
  72. package/build/server/chunks/chunks/core.js-DNIuZ9y-.js.map +1 -0
  73. package/build/server/chunks/chunks/{exports.js-FRj9eAnR.js → exports.js-CAJ9ZQQx.js} +2 -2
  74. package/build/server/chunks/chunks/{exports.js-FRj9eAnR.js.map → exports.js-CAJ9ZQQx.js.map} +1 -1
  75. package/build/server/chunks/chunks/{http.js--6sDZFfm.js → http.js-DWYlsbZd.js} +2 -2
  76. package/build/server/chunks/chunks/{http.js--6sDZFfm.js.map → http.js-DWYlsbZd.js.map} +1 -1
  77. package/build/server/chunks/chunks/{internal.js-D2Tk-vi1.js → internal.js-CdY4S4Uy.js} +3 -3
  78. package/build/server/chunks/chunks/{internal.js-D2Tk-vi1.js.map → internal.js-CdY4S4Uy.js.map} +1 -1
  79. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  80. package/build/server/chunks/chunks/manifest-membership.js-CJnQXrL4.js +213 -0
  81. package/build/server/chunks/chunks/manifest-membership.js-CJnQXrL4.js.map +1 -0
  82. package/build/server/chunks/chunks/raw-reconciliation.js-_D9lZ_sc.js +11 -0
  83. package/build/server/chunks/chunks/raw-reconciliation.js-_D9lZ_sc.js.map +1 -0
  84. package/build/server/chunks/chunks/{raw-reconciliation.js-DOFtjkgu.js → raw-reconciliation2.js-C2No1QIL.js} +3 -34
  85. package/build/server/chunks/chunks/raw-reconciliation2.js-C2No1QIL.js.map +1 -0
  86. package/build/server/chunks/chunks/{shared.js-hvokB2mY.js → shared.js-C34rGnTQ.js} +2 -2
  87. package/build/server/chunks/chunks/{shared.js-hvokB2mY.js.map → shared.js-C34rGnTQ.js.map} +1 -1
  88. package/build/server/chunks/chunks/{utils.js-VGlYdWt0.js → utils.js-BMCQVogA.js} +3 -3
  89. package/build/server/chunks/chunks/{utils.js-VGlYdWt0.js.map → utils.js-BMCQVogA.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CkSErIdC.js → _server.ts.js-Bmyh2WUa.js} +7 -6
  91. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CkSErIdC.js.map → _server.ts.js-Bmyh2WUa.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-Csnt5ISN.js → _server.ts.js-IMleqOQb.js} +8 -7
  93. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-Csnt5ISN.js.map → _server.ts.js-IMleqOQb.js.map} +1 -1
  94. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BVEQaFEu.js → _server.ts.js-DzFoWnCN.js} +8 -7
  95. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BVEQaFEu.js.map → _server.ts.js-DzFoWnCN.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-DIaT5h8R.js → _server.ts.js-0LjvQ5dF.js} +8 -7
  97. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-DIaT5h8R.js.map → _server.ts.js-0LjvQ5dF.js.map} +1 -1
  98. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-CgCr-jFC.js → _server.ts.js-BUbO2k7N.js} +8 -7
  99. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-CgCr-jFC.js.map → _server.ts.js-BUbO2k7N.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BCvv4wq4.js → _server.ts.js-CwFLvCzR.js} +8 -7
  101. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BCvv4wq4.js.map → _server.ts.js-CwFLvCzR.js.map} +1 -1
  102. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-GbxbM9uI.js → _server.ts.js-BA6bgOR_.js} +8 -7
  103. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-GbxbM9uI.js.map → _server.ts.js-BA6bgOR_.js.map} +1 -1
  104. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BGjOvpRm.js → _server.ts.js-CzzmQqXq.js} +8 -7
  105. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BGjOvpRm.js.map → _server.ts.js-CzzmQqXq.js.map} +1 -1
  106. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CJuzJXPs.js → _server.ts.js-aqJkae-h.js} +8 -7
  107. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CJuzJXPs.js.map → _server.ts.js-aqJkae-h.js.map} +1 -1
  108. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BYp42p6V.js → _server.ts.js-CGsIZ1tO.js} +8 -7
  109. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BYp42p6V.js.map → _server.ts.js-CGsIZ1tO.js.map} +1 -1
  110. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-l_tkhnQ-.js → _server.ts.js-DbaeknBw.js} +8 -7
  111. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-l_tkhnQ-.js.map → _server.ts.js-DbaeknBw.js.map} +1 -1
  112. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-B-VXO3Xr.js → _server.ts.js-BhY5m7VP.js} +8 -7
  113. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-B-VXO3Xr.js.map → _server.ts.js-BhY5m7VP.js.map} +1 -1
  114. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-DV7s20GV.js → _server.ts.js-PT92H6EE.js} +8 -7
  115. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-DV7s20GV.js.map → _server.ts.js-PT92H6EE.js.map} +1 -1
  116. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CYgOpWYC.js → _server.ts.js-DtiUkpdM.js} +8 -7
  117. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CYgOpWYC.js.map → _server.ts.js-DtiUkpdM.js.map} +1 -1
  118. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-7loll6HR.js → _server.ts.js-tVkpwUwF.js} +8 -7
  119. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-7loll6HR.js.map → _server.ts.js-tVkpwUwF.js.map} +1 -1
  120. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-CdxeTMZj.js → _server.ts.js-Cq85RWhU.js} +8 -7
  121. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-CdxeTMZj.js.map → _server.ts.js-Cq85RWhU.js.map} +1 -1
  122. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-CZWIskM4.js → _server.ts.js-DDdYWvN4.js} +8 -7
  123. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-CZWIskM4.js.map → _server.ts.js-DDdYWvN4.js.map} +1 -1
  124. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CZFfpJkl.js → _server.ts.js-DxSPXWoT.js} +8 -7
  125. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CZFfpJkl.js.map → _server.ts.js-DxSPXWoT.js.map} +1 -1
  126. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DB3i4juR.js → _server.ts.js-DVtQlFHS.js} +7 -6
  127. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DB3i4juR.js.map → _server.ts.js-DVtQlFHS.js.map} +1 -1
  128. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BqarqenW.js → _server.ts.js-DuStxYsU.js} +8 -7
  129. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-BqarqenW.js.map → _server.ts.js-DuStxYsU.js.map} +1 -1
  130. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CXbrUCmh.js → _server.ts.js-CxoKyl-h.js} +8 -7
  131. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-CXbrUCmh.js.map → _server.ts.js-CxoKyl-h.js.map} +1 -1
  132. package/build/server/chunks/entries/{hooks.server.js-6Yf-GF0J.js → hooks.server.js-DLJAlp7i.js} +7 -6
  133. package/build/server/chunks/entries/{hooks.server.js-6Yf-GF0J.js.map → hooks.server.js-DLJAlp7i.js.map} +1 -1
  134. package/build/server/chunks/{handler-DHAu99Rv.js → handler-Bn4TsL93.js} +5 -5
  135. package/build/server/chunks/{handler-DHAu99Rv.js.map → handler-Bn4TsL93.js.map} +1 -1
  136. package/build/server/chunks/{index.js-Bm1XIAPD.js → index.js-DzYQtf0T.js} +5 -5
  137. package/build/server/chunks/{index.js-Bm1XIAPD.js.map → index.js-DzYQtf0T.js.map} +1 -1
  138. package/build/server/chunks/{manifest.js-CCc26-hb.js → manifest.js-DewM2Q1D.js} +28 -28
  139. package/build/server/chunks/{manifest.js-CCc26-hb.js.map → manifest.js-DewM2Q1D.js.map} +1 -1
  140. package/build/server/chunks/nodes/0.js-CZe1W9_P.js +11 -0
  141. package/build/server/chunks/nodes/0.js-CZe1W9_P.js.map +1 -0
  142. package/build/server/chunks/nodes/1.js-DKVH5bGU.js +7 -0
  143. package/build/server/chunks/nodes/{1.js-CXgbNa8h.js.map → 1.js-DKVH5bGU.js.map} +1 -1
  144. package/build/server/chunks/nodes/2.js-BpN0Hxjo.js +7 -0
  145. package/build/server/chunks/nodes/2.js-BpN0Hxjo.js.map +1 -0
  146. package/build/server/chunks/nodes/3.js-D3kgOm0S.js +7 -0
  147. package/build/server/chunks/nodes/3.js-D3kgOm0S.js.map +1 -0
  148. package/build/server/chunks/nodes/4.js-CZwje1Lo.js +7 -0
  149. package/build/server/chunks/nodes/{4.js-BUgaRCEY.js.map → 4.js-CZwje1Lo.js.map} +1 -1
  150. package/dist/core/api-types.d.ts +4 -0
  151. package/dist/core/index.d.ts +2 -2
  152. package/dist/core/index.js +1 -1
  153. package/dist/core/plugins/slice.d.ts +28 -4
  154. package/dist/core/plugins/slice.js +50 -0
  155. package/dist/server/cli-commands.d.ts +1 -1
  156. package/dist/server/cli-commands.js +125 -11
  157. package/dist/server/config-loader.d.ts +2 -0
  158. package/dist/server/config-loader.js +1 -0
  159. package/dist/server/git.d.ts +9 -0
  160. package/dist/server/git.js +121 -0
  161. package/dist/server/library-store.d.ts +1 -1
  162. package/dist/server/library-store.js +5 -1
  163. package/dist/server/operations.js +28 -2
  164. package/dist/server/plugins/slice.d.ts +3 -2
  165. package/dist/server/plugins/slice.js +21 -9
  166. package/dist/server/processing/slice-processing.d.ts +14 -0
  167. package/dist/server/processing/slice-processing.js +148 -0
  168. package/package.json +1 -1
  169. package/build/client/_app/immutable/assets/0.inkPq3ni.css +0 -1
  170. package/build/client/_app/immutable/assets/0.inkPq3ni.css.br +0 -0
  171. package/build/client/_app/immutable/assets/0.inkPq3ni.css.gz +0 -0
  172. package/build/client/_app/immutable/assets/2.DLP0pEak.css +0 -1
  173. package/build/client/_app/immutable/assets/2.DLP0pEak.css.br +0 -0
  174. package/build/client/_app/immutable/assets/2.DLP0pEak.css.gz +0 -0
  175. package/build/client/_app/immutable/assets/LibraryContextMenu.CVb-Lqdf.css +0 -1
  176. package/build/client/_app/immutable/assets/LibraryContextMenu.CVb-Lqdf.css.br +0 -0
  177. package/build/client/_app/immutable/assets/LibraryContextMenu.CVb-Lqdf.css.gz +0 -0
  178. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css +0 -1
  179. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.br +0 -0
  180. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.gz +0 -0
  181. package/build/client/_app/immutable/chunks/B1UabfW7.js +0 -1
  182. package/build/client/_app/immutable/chunks/B1UabfW7.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/B1UabfW7.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/BmCZn5E-.js +0 -108
  185. package/build/client/_app/immutable/chunks/BmCZn5E-.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/BmCZn5E-.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/BoEHtxM8.js +0 -1
  188. package/build/client/_app/immutable/chunks/BoEHtxM8.js.br +0 -0
  189. package/build/client/_app/immutable/chunks/BoEHtxM8.js.gz +0 -0
  190. package/build/client/_app/immutable/chunks/C-T1_s5P.js +0 -1
  191. package/build/client/_app/immutable/chunks/C-T1_s5P.js.br +0 -0
  192. package/build/client/_app/immutable/chunks/C-T1_s5P.js.gz +0 -0
  193. package/build/client/_app/immutable/chunks/CN-G-m-B.js.br +0 -4
  194. package/build/client/_app/immutable/chunks/CN-G-m-B.js.gz +0 -0
  195. package/build/client/_app/immutable/chunks/D5sQSsUv.js +0 -1
  196. package/build/client/_app/immutable/chunks/D5sQSsUv.js.br +0 -0
  197. package/build/client/_app/immutable/chunks/D5sQSsUv.js.gz +0 -0
  198. package/build/client/_app/immutable/chunks/D65cSBhe.js +0 -3
  199. package/build/client/_app/immutable/chunks/D65cSBhe.js.br +0 -0
  200. package/build/client/_app/immutable/chunks/D65cSBhe.js.gz +0 -0
  201. package/build/client/_app/immutable/chunks/D6VoU_x4.js +0 -1
  202. package/build/client/_app/immutable/chunks/D6VoU_x4.js.br +0 -0
  203. package/build/client/_app/immutable/chunks/D6VoU_x4.js.gz +0 -0
  204. package/build/client/_app/immutable/entry/app.fVDDVV_y.js +0 -2
  205. package/build/client/_app/immutable/entry/app.fVDDVV_y.js.br +0 -0
  206. package/build/client/_app/immutable/entry/app.fVDDVV_y.js.gz +0 -0
  207. package/build/client/_app/immutable/entry/start.BiWgLLju.js +0 -1
  208. package/build/client/_app/immutable/entry/start.BiWgLLju.js.br +0 -1
  209. package/build/client/_app/immutable/entry/start.BiWgLLju.js.gz +0 -0
  210. package/build/client/_app/immutable/nodes/0.BLnSe7Ya.js +0 -2
  211. package/build/client/_app/immutable/nodes/0.BLnSe7Ya.js.br +0 -0
  212. package/build/client/_app/immutable/nodes/0.BLnSe7Ya.js.gz +0 -0
  213. package/build/client/_app/immutable/nodes/1.DEw3d5yL.js +0 -1
  214. package/build/client/_app/immutable/nodes/1.DEw3d5yL.js.br +0 -0
  215. package/build/client/_app/immutable/nodes/1.DEw3d5yL.js.gz +0 -0
  216. package/build/client/_app/immutable/nodes/2.DnVTXPVk.js +0 -3
  217. package/build/client/_app/immutable/nodes/2.DnVTXPVk.js.br +0 -0
  218. package/build/client/_app/immutable/nodes/2.DnVTXPVk.js.gz +0 -0
  219. package/build/client/_app/immutable/nodes/3.1Hco6zU7.js +0 -1
  220. package/build/client/_app/immutable/nodes/3.1Hco6zU7.js.br +0 -0
  221. package/build/client/_app/immutable/nodes/3.1Hco6zU7.js.gz +0 -0
  222. package/build/client/_app/immutable/nodes/4.CKbcoBw2.js +0 -2
  223. package/build/client/_app/immutable/nodes/4.CKbcoBw2.js.br +0 -0
  224. package/build/client/_app/immutable/nodes/4.CKbcoBw2.js.gz +0 -0
  225. package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js +0 -48
  226. package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js.map +0 -1
  227. package/build/server/chunks/chunks/context.js-bXe5hzjI.js.map +0 -1
  228. package/build/server/chunks/chunks/contract.js-sHny3b-s.js.map +0 -1
  229. package/build/server/chunks/chunks/core.js-Clg1CHb6.js.map +0 -1
  230. package/build/server/chunks/chunks/raw-reconciliation.js-DOFtjkgu.js.map +0 -1
  231. package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js +0 -11
  232. package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js.map +0 -1
  233. package/build/server/chunks/nodes/0.js-Bpzcq6LZ.js +0 -11
  234. package/build/server/chunks/nodes/0.js-Bpzcq6LZ.js.map +0 -1
  235. package/build/server/chunks/nodes/1.js-CXgbNa8h.js +0 -7
  236. package/build/server/chunks/nodes/2.js-D56ryWAu.js +0 -7
  237. package/build/server/chunks/nodes/2.js-D56ryWAu.js.map +0 -1
  238. package/build/server/chunks/nodes/3.js-DMaZRwrN.js +0 -7
  239. package/build/server/chunks/nodes/3.js-DMaZRwrN.js.map +0 -1
  240. package/build/server/chunks/nodes/4.js-BUgaRCEY.js +0 -7
package/README.md CHANGED
@@ -1,22 +1,59 @@
1
1
  # Fundus
2
2
 
3
- Fundus is an AI-first, end-to-end asset management platform for Svelte mobile
4
- apps. It gives developers and coding agents one local workflow to import,
5
- organize, process, deliver, and render production assets.
3
+ > **Fundus** /ˈfʊndʊs/ _German noun_ a stock, collection, or reservoir to draw
4
+ > from.
5
+
6
+ [![npm](https://img.shields.io/npm/v/fundus.svg)](https://www.npmjs.com/package/fundus)
7
+ [![CI](https://github.com/grischaerbe/fundus/actions/workflows/CI.yaml/badge.svg)](https://github.com/grischaerbe/fundus/actions/workflows/CI.yaml)
8
+
9
+ Fundus is a local, typed asset pipeline for SvelteKit. It turns source images,
10
+ slices, video, chroma-key video, and audio into optimized files and generated
11
+ TypeScript manifests. One package contains the visual editor, headless CLI,
12
+ Sharp and FFmpeg processing, and Svelte 5 runtime components.
13
+
14
+ Originals stay intact. Outputs are deterministic and git-friendly. No mystery
15
+ CDN, no dashboard account, no `final-final-2x-really-final.png` archaeology.
16
+
17
+ ## Why Fundus?
18
+
19
+ - **One source of truth.** The editor and CLI mutate the same local library and
20
+ run the same processing pipeline.
21
+ - **Typed delivery.** Assets become properties such as `main.logo`; a rename or
22
+ deletion becomes a compiler error instead of a broken URL in production.
23
+ - **Explicit budgets.** Manifests define what ships and preloads for a screen,
24
+ route, or feature. Unassigned assets do not quietly hitch a ride.
25
+ - **Boring builds.** Raw inputs, optimized proxies, and generated modules can
26
+ all live in git. `fundus check` proves they agree without writing anything.
27
+
28
+ ## The workflow
29
+
30
+ ```text
31
+ file or Figma node
32
+
33
+ raw original + library record
34
+
35
+ type, parameters, manifest membership
36
+
37
+ optimized proxy + typed manifest
38
+
39
+ Svelte component
40
+ ```
6
41
 
7
- ## Features
42
+ 1. Import in the editor or CLI, or place a supported file in the raw directory.
43
+ 2. Choose its stable id, asset type, processing settings, folder, and manifest.
44
+ 3. Fundus saves the library, processes affected assets, and regenerates manifest
45
+ modules as one operation.
46
+ 4. Import the generated manifest in Svelte and render the typed entry.
47
+ 5. Run `fundus check` in CI to catch stale proxies, invalid references,
48
+ out-of-sync modules, and unresolved raw-file drift.
8
49
 
9
- - AI-ready CLI with structured JSON output for reliable agent workflows
10
- - Local visual editor for managing assets, folders, manifests, and processing
11
- - Images, slices, video, chroma-key video, and audio in one pipeline
12
- - Automatic optimization with Sharp and FFmpeg
13
- - Typed manifests that turn missing assets into compile-time errors
14
- - Svelte 5 components for rendering assets as authored
15
- - Deterministic, git-friendly output with originals kept intact
50
+ Only manifest members and the assets they reference are processed and shipped.
51
+ Manifests also preload and release their complete delivery set.
16
52
 
17
- ## Install and run
53
+ ## Quick start
18
54
 
19
- Fundus requires Node.js 20.19 or newer. From your Svelte project:
55
+ Fundus requires Node.js 20.19 or newer, Svelte 5, and an existing SvelteKit
56
+ project.
20
57
 
21
58
  ```bash
22
59
  npm install fundus
@@ -24,156 +61,126 @@ npx fundus init
24
61
  npx fundus start
25
62
  ```
26
63
 
27
- `fundus init` creates `fundus.config.ts` and an asset library with a default
28
- `main` manifest. It refuses to run if a Fundus config already exists. `fundus
29
- start` launches the packaged SvelteKit Node application on
30
- `http://127.0.0.1:7583`; the client-rendered editor, asset API, and raw/proxy file
31
- endpoints share one local origin. Fundus opens the editor in your default browser
32
- once the server is ready. Pass `--port 8080` to choose another port, or
33
- `--no-open` to start without opening a browser.
64
+ `init` creates `fundus.config.ts`, a local library, a raw asset directory, and a
65
+ default manifest named `main`. `start` opens the editor at
66
+ `http://127.0.0.1:7583`; add `--no-open` or `--port 8080` when appropriate.
34
67
 
35
- For editor development against a host project, provide its absolute path:
68
+ Add assets, assign them to `main`, then use the generated module:
36
69
 
37
- ```bash
38
- FUNDUS_PROJECT_ROOT=/absolute/path/to/host npm run dev
70
+ ```svelte
71
+ <script lang="ts">
72
+ import { Image, Slice } from 'fundus';
73
+ import { main } from '$lib/fundus/main.generated';
74
+ </script>
75
+
76
+ <Image src={main.logo} alt="Acme" />
77
+ <Slice src={main.dialogFrame} />
39
78
  ```
40
79
 
41
- To verify the complete consumer setup against a freshly generated SvelteKit
42
- app, run:
80
+ For changes made outside the editor:
43
81
 
44
82
  ```bash
45
- npm run smoke:e2e
83
+ npx fundus build # write current proxies and manifest modules
84
+ npx fundus check # verify without writing; ideal for CI
46
85
  ```
47
86
 
48
- This uses the current `sv` CLI, installs a locally packed Fundus artifact, runs
49
- `fundus init`, checks and builds both projects, boots the generated host, and
50
- boots the packaged editor and API, opens the editor in your default browser, and
51
- keeps it running until you press Ctrl+C. The generated host remains under the
52
- gitignored `.fundus-e2e/app` directory for inspection and is recreated on every
53
- run. Set `SV_VERSION` to test a specific CLI release instead of `latest`.
87
+ Commit the config, library, raw originals, processed proxies, and generated
88
+ modules. With the default config, those live in `fundus.config.ts`, `assets/`,
89
+ `static/fundus/`, and `src/lib/fundus/`.
54
90
 
55
- Build optimized assets and generated manifests, then verify everything is in
56
- sync:
91
+ ## Supported assets
92
+
93
+ | Type | Processing | Runtime |
94
+ | ---------------- | ------------------------------------------------ | --------------------------------------- |
95
+ | Image | WebP, PNG, AVIF, or JPEG; optional width | `<Image>` |
96
+ | Slice | 1-, 3-, or 9-slice; optional stretch compression | `<Slice>` |
97
+ | Video | H.264 MP4; optional width cap | `<Video>` |
98
+ | Chroma-key video | H.264 MP4 with WebGL2 keying, mask, and fallback | `<ChromaKeyVideo>` |
99
+ | Audio | Opus/WebM or AAC/M4A | Your audio engine via `audioSourceOf()` |
100
+
101
+ Named presets in `fundus.config.ts` keep encoding choices consistent. Each asset
102
+ currently produces one processed proxy, which is often exactly what an app wants
103
+ and refreshingly unlike configuring a small television network.
104
+
105
+ ## Editor and CLI
106
+
107
+ Use the editor for visual work: organize assets, author slices and chroma keys,
108
+ tune processing, manage manifests, and inspect delivered bytes.
109
+
110
+ Use the CLI for scripts, CI, and coding agents:
57
111
 
58
112
  ```bash
59
- npx fundus build
113
+ npx fundus state --json
114
+ npx fundus asset ingest ./exports/panel.png --type slice --manifests main \
115
+ --compression-x 75 --compression-y 25
116
+ npx fundus asset replace panel ./exports/panel-v2.png
60
117
  npx fundus check
61
118
  ```
62
119
 
63
- ### Import from Figma
120
+ Slice stretch compression is specified per axis as a percentage from 0 to 100.
121
+ Use `asset set panel --compression-x 50` to change one axis while preserving the
122
+ other; setting both axes to `0` removes compression.
123
+
124
+ Every command except `start` supports `--json` and emits one JSON document on
125
+ stdout. Run `npx fundus --help` or `npx fundus asset ingest --help` for the full
126
+ surface.
127
+
128
+ Fundus serializes writes inside one editor server, but does not lock across
129
+ processes. Do not run mutating CLI commands while the editor is changing the
130
+ same project. Two writers remain one writer too many.
64
131
 
65
- Fundus separates acquisition from asset processing: a file or Figma importer
66
- materializes a raw file, then the selected Image or Slice asset type processes
67
- it through the same existing pipeline. Raw files remain committed, offline
68
- build inputs; builds and checks never contact Figma.
132
+ ## Figma import
69
133
 
70
- Create a Figma personal access token with `file_content:read`, pass it through
71
- the server-side config, and choose **Import from Figma** in the editor. Prefer
72
- an environment variable so the secret is never committed:
134
+ Fundus can import one selected Figma node as a PNG at 1x–4x and process it as an
135
+ Image or Slice. Create a personal access token with `file_content:read` and keep
136
+ it in an environment variable:
73
137
 
74
138
  ```ts
139
+ import { defineConfig } from 'fundus/config';
140
+
75
141
  export default defineConfig({
76
- // existing paths…
142
+ // paths created by `fundus init`...
77
143
  import: {
78
144
  figma: {
79
145
  token: process.env.FIGMA_ACCESS_TOKEN,
80
- defaults: { scale: 3 }
146
+ defaults: { scale: 2 }
81
147
  }
82
148
  }
83
149
  });
84
150
  ```
85
151
 
86
- Fundus never exposes this token through editor state, API responses, or the
87
- library file. The default scale is optional and falls back to 2.
152
+ ```bash
153
+ npx fundus asset ingest 'https://www.figma.com/design/abc/UI?node-id=12-34' \
154
+ --from figma --type slice --id navigationPanel --scale 3
155
+ npx fundus asset reimport navigationPanel
156
+ ```
88
157
 
89
- The editor, API, and CLI use the same importer pipeline and configuration. In
90
- the CLI, acquisition is explicit: ordinary file ingest remains the default,
91
- while `--from figma` requires a selection link, asset type, and id:
158
+ For Slice assets, the pixel ratio defaults to the chosen Figma export scale.
159
+ Changing the saved link or scale and reimporting synchronizes that ratio, while
160
+ refreshing the unchanged source preserves a manually authored value. The editor
161
+ offers Figma import from both its main controls and folder context menus.
92
162
 
93
- ```sh
94
- fundus asset ingest ./exports/navigation_panel.png --type slice
95
- fundus asset ingest 'https://www.figma.com/design/abc/UI?node-id=12-34' \
96
- --from figma --type slice --id navigationPanel --scale 3
163
+ Fundus persists the stable Figma file and node identifiers, never the token or
164
+ temporary URL. The downloaded original stays local, so builds remain offline.
165
+ Replacing or accepting an external edit to it intentionally disconnects the
166
+ Figma source.
97
167
 
98
- fundus asset reimport navigationPanel
99
- fundus asset reimport navigationPanel --scale 4
100
- fundus asset reimport navigationPanel \
101
- --figma-link 'https://www.figma.com/design/def/UI?node-id=56-78'
102
- ```
168
+ ## Is Fundus for me?
103
169
 
104
- Omit `--scale` to use `import.figma.defaults.scale`. During re-import, link and
105
- scale overrides are independent; an omitted value stays unchanged.
106
-
107
- The MVP imports one node from a Figma design, file, or prototype selection
108
- link as PNG at 1x–4x (2x by default unless configured). Select Image or Slice
109
- independently of the importer. Figma export scale is not Slice `pixelRatio`;
110
- initial Slice parameters conservatively start at pixel ratio 1.
111
-
112
- Fundus stores only the file key, node id, PNG format, and scale. The token and
113
- temporary download URL are never persisted. Re-import renders the same stable
114
- node id again while preserving the asset id, type, parameters, folder, and
115
- manifest memberships. Renaming or editing a Figma node normally preserves its
116
- id; deleting/recreating it or copying it to another file does not.
117
-
118
- Local raw-file drift blocks re-import instead of being overwritten. Applying
119
- an external edit or manually replacing the raw file disconnects the Figma
120
- source. Figma rate limits are surfaced without automatic retries, and Figma
121
- may downscale exports above 32 megapixels.
122
-
123
- The first persisted Figma source upgrades that project library lazily from
124
- version 1 to version 2. Source-free projects remain version 1, but older Fundus
125
- versions cannot open a library after this upgrade.
126
-
127
- ### External raw-file management
128
-
129
- You can also add, move, edit, or delete files directly in the configured raw
130
- directory. The editor reconciles the directory when it starts and whenever its
131
- window regains focus. Unambiguous same-content moves are adopted automatically,
132
- and externally deleted records disappear silently; ordinary validation still
133
- reports references that now point at a deleted asset.
134
-
135
- New files with a supported extension and edited managed files appear in the
136
- editor's ingestion queue. Choose any compatible asset type, then import a new
137
- file or reimport an edited one. Reimporting resets and reseeds its parameters;
138
- applying the external edit instead keeps its current type and parameters while
139
- accepting the new content hash. Either choice disconnects a repeatable import
140
- source because the accepted local bytes become authoritative. Regular files
141
- whose extension no registered asset type accepts are ignored entirely.
142
-
143
- `fundus check` is the read-only CI gate for this workflow. Unmanaged, missing,
144
- edited, invalid, symlinked, and otherwise unsafe raw entries are hard errors
145
- even with `--allow-warnings`. Ambiguous duplicate-content moves are not guessed;
146
- reconciliation treats them as a deletion plus new ingestion items.
147
-
148
- Externally named raw files may contain NFC-normalized Unicode and spaces. For
149
- portable repositories Fundus rejects traversal and separators, control or
150
- Windows-reserved characters and names, trailing dots/whitespace, `.gitkeep`,
151
- portable case/normalization collisions, and Fundus transaction names. New
152
- external subfolders are registered and mirrored with `.gitkeep` when a file is
153
- adopted or moved into them.
154
-
155
- Fundus serializes requests inside one running editor server. It does not provide
156
- cross-process filesystem locking, so do not run editor and CLI mutations at the
157
- same time.
158
-
159
- Replace an asset's source file without changing its id, type, parameters,
160
- folder, or manifest memberships from the editor's asset inspector, or via CLI:
170
+ Fundus fits SvelteKit apps that keep product assets in git and want repeatable
171
+ processing, typed references, visual authoring, and agent-friendly automation.
161
172
 
162
- ```bash
163
- npx fundus asset replace navigationPanel ./exports/navigation-panel-v2.png
164
- ```
173
+ It is not a cloud DAM, CDN, hosted collaboration service, or runtime media CMS.
174
+ It does not currently handle SVG, fonts, responsive `srcset` generation,
175
+ platform variants, or concurrent writers. Figma support is deliberate one-node
176
+ import and reimport, not two-way sync.
165
177
 
166
- Use the generated manifests with Fundus runtime components:
178
+ ## Contributing
167
179
 
168
- ```svelte
169
- <script lang="ts">
170
- import { Image, Slice } from 'fundus';
171
- import { appAssets } from '$lib/fundus/app-assets.generated';
172
- </script>
180
+ Run `npm install`, `npm test`, `npm run check`, and `npm run lint`. Public
181
+ package changes also need `npm run changeset`. See [CHANGELOG.md](CHANGELOG.md)
182
+ for release history and [RELEASING.md](RELEASING.md) for publishing notes.
173
183
 
174
- <Image src={appAssets.logo} />
175
- <Slice src={appAssets.panel} />
176
- ```
184
+ ## License
177
185
 
178
- Fundus keeps the full asset workflow in your project, under your control, and
179
- ready for people and agents to build with together.
186
+ Fundus does not currently include a license file.
@@ -0,0 +1 @@
1
+ :root{--panel:#2c2c2c;--panel-raised:#383838;--canvas:#1e1e1e;--border:#444;--border-soft:#383838;--text:#fff;--text-dim:#a0a0a0;--text-faint:#7a7a7a;--accent:#0d99ff;--accent-soft:#0d99ff29;--warning:#ffcd29;--warning-soft:#ffcd2924;--danger:#f24822;--ok:#14ae5c;--radius:6px;--radius-small:4px;--radius-large:8px;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--canvas);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:12px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.control{background:var(--panel-raised);border-radius:var(--radius);border:1px solid #0000;height:28px;padding:4px 8px}.control:hover{border-color:var(--border)}.control:focus,.control:focus-visible{border-color:var(--accent);outline:none}.control.primary{background:var(--accent);color:var(--text)}.control.primary:disabled{opacity:.4;cursor:not-allowed}.control.danger{color:var(--danger)}.control.danger:hover{border-color:var(--danger)}.checkerboard{background-color:var(--canvas);background-image:linear-gradient(45deg, var(--panel) 25%, transparent 25%), linear-gradient(-45deg, var(--panel) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--panel) 75%), linear-gradient(-45deg, transparent 75%, var(--panel) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.queue.svelte-1rcmmyd{background:color-mix(in srgb, var(--accent) 8%, var(--panel));border-bottom:1px solid var(--border);flex:none;padding:10px 16px}.heading.svelte-1rcmmyd,.identity.svelte-1rcmmyd{align-items:center;gap:10px;display:flex}.heading.svelte-1rcmmyd{justify-content:space-between;margin-bottom:8px}.heading.svelte-1rcmmyd span:where(.svelte-1rcmmyd),p.svelte-1rcmmyd{color:var(--text-dim);font-size:11px}.items.svelte-1rcmmyd{gap:6px;display:grid}.item.svelte-1rcmmyd{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.identity.svelte-1rcmmyd>span.unsupported:where(.svelte-1rcmmyd){background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger);text-transform:uppercase;border-radius:999px;padding:2px 6px;font-size:10px}.identity.svelte-1rcmmyd h2:where(.svelte-1rcmmyd){word-break:break-all;margin:0;font-size:13px}.raw.svelte-1rcmmyd{color:var(--text-dim);word-break:break-all;margin:8px 0 0;font-size:12px}.form-controls.svelte-1rcmmyd{gap:8px;width:min(100%,326px);display:grid}.new-form.svelte-1rcmmyd{margin-top:10px}.edited-form.svelte-1rcmmyd{margin-top:6px}.form-controls.svelte-1rcmmyd label:where(.svelte-1rcmmyd),.manifest-row.svelte-1rcmmyd{grid-template-columns:69px minmax(0,1fr);gap:10px;width:100%;display:grid}.form-controls.svelte-1rcmmyd label:where(.svelte-1rcmmyd){align-items:center}.manifest-row.svelte-1rcmmyd>span:where(.svelte-1rcmmyd){color:var(--text-dim);font-size:11px;line-height:28px}.manifest-row.svelte-1rcmmyd p:where(.svelte-1rcmmyd){color:var(--text-faint);margin:0;line-height:28px}.manifest-list.svelte-1rcmmyd{max-height:96px;overflow-y:auto}.form-controls.svelte-1rcmmyd input:where(.svelte-1rcmmyd),.form-controls.svelte-1rcmmyd select:where(.svelte-1rcmmyd){box-sizing:border-box;width:100%;min-width:0}.actions.svelte-1rcmmyd{align-items:center;gap:10px;display:flex}label.svelte-1rcmmyd{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:inline-flex}input.svelte-1rcmmyd,select.svelte-1rcmmyd{min-width:150px;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:4px;padding:4px 6px}button.svelte-1rcmmyd{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:4px;padding:5px 10px}button.secondary.svelte-1rcmmyd{background:var(--panel-raised);color:var(--text);border:1px solid var(--border)}button.svelte-1rcmmyd:disabled{opacity:.45;cursor:default}p.error.svelte-1rcmmyd{color:var(--danger);margin:6px 0 0}.shell.svelte-12qhfyh{flex-direction:column;height:100vh;display:flex}.topbar.svelte-12qhfyh{background:var(--panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:24px;height:40px;padding:0 16px;display:flex}.brand.svelte-12qhfyh{align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.logo.svelte-12qhfyh{color:var(--accent)}nav.svelte-12qhfyh{gap:4px;display:flex}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){border-radius:var(--radius);color:var(--text-dim);padding:4px 10px}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{color:var(--text)}nav.svelte-12qhfyh a.active:where(.svelte-12qhfyh){background:var(--accent-soft);color:var(--accent)}.header-meta.svelte-12qhfyh{align-items:center;gap:12px;min-width:0;margin-left:auto;display:inline-flex}.branch.svelte-12qhfyh,.status.svelte-12qhfyh{color:var(--text-dim);align-items:center;gap:6px;display:inline-flex}.branch.svelte-12qhfyh{min-width:0;max-width:240px}.status.svelte-12qhfyh:has(+.branch:where(.svelte-12qhfyh)){border-right:1px solid var(--border);padding-right:12px}.branch.svelte-12qhfyh .icon{flex:none}.branch-name.svelte-12qhfyh{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-text.error.svelte-12qhfyh{color:var(--danger)}.dot.svelte-12qhfyh{background:var(--text-faint);border-radius:50%;width:7px;height:7px}.dot.ok.svelte-12qhfyh{background:var(--ok)}.dot.bad.svelte-12qhfyh{background:var(--danger)}.dot.saving.svelte-12qhfyh{background:var(--accent);animation:.8s ease-in-out infinite svelte-12qhfyh-pulse}@keyframes svelte-12qhfyh-pulse{0%,to{opacity:.35}50%{opacity:1}}.notice.svelte-12qhfyh{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);margin:24px;padding:12px 16px}.issue-banner.svelte-12qhfyh{background:color-mix(in srgb, var(--danger) 14%, var(--panel));border-bottom:1px solid var(--danger);color:var(--text);flex-direction:column;gap:4px;padding:8px 16px;display:flex}code.svelte-12qhfyh{background:var(--panel-raised);border-radius:4px;padding:1px 5px}
@@ -0,0 +1 @@
1
+ .submenu-anchor.svelte-13hq4tl{position:relative}button.svelte-13hq4tl{width:100%;color:var(--text);font:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-13hq4tl:hover,button.svelte-13hq4tl:focus-visible{background:var(--accent-soft);outline:none}.submenu-anchor.svelte-13hq4tl:has(.submenu:where(.svelte-13hq4tl))>.submenu-trigger:where(.svelte-13hq4tl){background:var(--accent-soft);outline:none}.submenu-trigger.svelte-13hq4tl{justify-content:space-between;align-items:center;gap:12px;display:flex}.arrow.svelte-13hq4tl{color:var(--text-faint);font-size:16px;line-height:12px}.submenu.svelte-13hq4tl{z-index:1;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;min-width:168px;max-width:320px;padding:4px;position:absolute;top:-5px;left:calc(100% - 4px);overflow-y:auto;box-shadow:0 8px 24px #00000073}.submenu.opens-left.svelte-13hq4tl{left:auto;right:calc(100% - 4px)}.submenu.svelte-13hq4tl button:where(.svelte-13hq4tl){text-overflow:ellipsis;overflow:hidden}hr.svelte-13hq4tl{background:var(--border);border:0;height:1px;margin:4px 8px}.context-menu.svelte-109nkvw{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-109nkvw{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-109nkvw:hover,button.svelte-109nkvw:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-109nkvw{color:var(--danger)}hr.svelte-109nkvw{background:var(--border);border:0;height:1px;margin:4px 8px}.manifest-label.svelte-1b4m5oj{align-items:center;gap:4px;min-width:0;display:inline-flex}.emoji.svelte-1b4m5oj{flex:none;line-height:1}.name.svelte-1b4m5oj{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip.svelte-1b4m5oj{background:color-mix(in srgb, var(--manifest-color) 20%, transparent);color:var(--manifest-color);border-radius:4px;padding:0 5px;font-size:10px}.chip.passive.svelte-1b4m5oj{border:1px dashed var(--manifest-color);background:0 0}.browse-select.svelte-dr99ka{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0 6px 0 0;display:inline-flex}.browse-select.svelte-dr99ka:focus-within{border-color:var(--accent)}.icon-slot.svelte-dr99ka{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:flex}select.svelte-dr99ka{background:0 0;border:0;outline:none;min-width:0;height:100%;margin:0;padding:0 6px 0 0}.library-view.svelte-1uha8ag{flex:1;min-height:0;display:flex}.page.svelte-1uha8ag{flex:1;min-height:0;padding:16px;position:relative;overflow-y:auto}.selection-bar.svelte-1uha8ag,.filter-bar.svelte-1uha8ag{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.selection-bar.svelte-1uha8ag{margin-bottom:8px}.filter-bar.svelte-1uha8ag{margin-bottom:16px}.selection-summary.svelte-1uha8ag{color:var(--accent);white-space:nowrap;font-weight:600}.toggle.svelte-1uha8ag{color:var(--text-dim);align-items:center;gap:6px;display:inline-flex}.search.svelte-1uha8ag{border-radius:4px;align-items:center;gap:4px;width:220px;height:24px;padding:0 6px 0 0;display:flex}.search.svelte-1uha8ag:focus-within{border-color:var(--accent)}.search-icon-slot.svelte-1uha8ag{width:24px;height:24px;color:var(--text-dim);flex:none;justify-content:center;align-items:center;display:flex}.search-icon.svelte-1uha8ag{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;flex:none;width:14px;height:14px}.search-input.svelte-1uha8ag{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0}.search.svelte-1uha8ag kbd:where(.svelte-1uha8ag){border:1px solid var(--border);color:var(--text-faint);border-radius:3px;flex:none;padding:1px 4px;font:9px/14px system-ui,sans-serif}.import.svelte-1uha8ag{background:var(--accent);color:var(--text);margin-left:auto}.section.svelte-1uha8ag{margin-bottom:24px}.section.svelte-1uha8ag:last-child{margin-bottom:0}.section-emoji.svelte-1uha8ag{margin-right:6px}.grid.svelte-1uha8ag,.folder-grid.svelte-1uha8ag{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.folder-card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);min-width:0;height:60px;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.folder-card.svelte-1uha8ag:hover,.folder-card.svelte-1uha8ag:focus-visible{border-color:var(--accent);outline:none}.folder-card.drop-target.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.folder-card.dragging-folder.svelte-1uha8ag{opacity:.55}.folder-card-icon.svelte-1uha8ag{color:var(--text-dim);flex:none;align-items:center;display:flex}.folder-card-details.svelte-1uha8ag{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.folder-card-details.svelte-1uha8ag strong:where(.svelte-1uha8ag){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-card-details.svelte-1uha8ag span:where(.svelte-1uha8ag),.folder-card-arrow.svelte-1uha8ag{color:var(--text-faint)}.folder-card-arrow.svelte-1uha8ag{flex:none;font-size:18px}.card.svelte-1uha8ag{background:var(--panel);border:1px solid var(--border-soft);border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex;position:relative}.card.selected.svelte-1uha8ag{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-select.svelte-1uha8ag{z-index:1;width:16px;height:16px;accent-color:var(--accent);position:absolute;top:12px;left:12px}.card.svelte-1uha8ag:hover{border-color:var(--accent)}.thumbnail.svelte-1uha8ag{border-radius:var(--radius);justify-content:center;align-items:center;height:96px;display:flex;overflow:hidden}.meta.svelte-1uha8ag{align-items:center;gap:6px;min-width:0;display:flex}.id.svelte-1uha8ag{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.type-badge.svelte-1uha8ag{color:var(--text-dim);border:1px solid var(--border);border-radius:4px;flex:none;margin-left:auto;padding:0 5px;font-size:10px}.badges.svelte-1uha8ag{flex-wrap:wrap;gap:4px;min-height:16px;display:flex}.badge.svelte-1uha8ag{border-radius:4px;padding:0 5px;font-size:10px}.badge.warning.svelte-1uha8ag{background:var(--warning-soft);color:var(--warning)}.empty.svelte-1uha8ag{color:var(--text-dim);text-align:center;padding:48px}.dialog-row.svelte-1uha8ag{align-items:center;gap:8px;display:flex}.dialog-row.svelte-1uha8ag span:where(.svelte-1uha8ag){width:44px;color:var(--text-dim)}.dialog-row.svelte-1uha8ag input:where(.svelte-1uha8ag){flex:1}.dialog-text.svelte-1uha8ag,.dialog-warning.svelte-1uha8ag{margin:8px 0 0}.dialog-warning.svelte-1uha8ag{color:var(--warning)}.drop-hint.svelte-1uha8ag{border:2px dashed var(--accent);color:var(--accent);pointer-events:none;background:#0d99ff14;border-radius:12px;justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;inset:48px 8px 8px}
@@ -0,0 +1 @@
1
+ span.svelte-d2mzbr{color:var(--accent);text-transform:uppercase;background:#0e3959;border-radius:999px;padding:2px 6px;font-size:10px;line-height:normal}span.edited.svelte-d2mzbr{color:var(--warning);background:#4a432c}span.overlay.svelte-d2mzbr{z-index:2;border:1px solid var(--accent-soft);position:absolute;top:0;left:100%;transform:translate(-100%,-4px)translate(5px)}span.overlay.edited.svelte-d2mzbr{border-color:var(--warning-soft)}
@@ -0,0 +1 @@
1
+ .playback.svelte-nchstv{align-items:center;gap:6px;width:100%;display:flex}.btn.svelte-nchstv{background:var(--panel-raised);border-radius:var(--radius);width:28px;height:28px;color:var(--text);border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn.svelte-nchstv:hover:not(:disabled){border-color:var(--border)}.btn.svelte-nchstv:focus-visible{border-color:var(--accent);outline:none}.btn.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.btn.active.svelte-nchstv{background:var(--accent-soft);color:var(--accent)}.btn.svelte-nchstv svg:where(.svelte-nchstv){width:16px;height:16px;display:block}.time.svelte-nchstv{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.volume-group.svelte-nchstv{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.range.svelte-nchstv{appearance:none;background:var(--panel-raised);cursor:pointer;border-radius:999px;height:4px}.range.scrub.svelte-nchstv{flex:1;min-width:0;margin:0 2px}.range.volume.svelte-nchstv{flex:none;width:72px}.range.svelte-nchstv:disabled{opacity:.4;cursor:not-allowed}.range.svelte-nchstv::-webkit-slider-thumb{appearance:none;background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:12px;height:12px}.range.svelte-nchstv:focus-visible{outline:none}.range.svelte-nchstv:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.range.svelte-nchstv:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.audio-waveform.svelte-1liihyn{flex-direction:column;gap:8px;width:100%;height:100%;min-height:0;display:flex}.wave.svelte-1liihyn{cursor:pointer;touch-action:none;flex:1;width:100%;min-height:0;display:block}.footer.svelte-1liihyn{flex:none;align-items:center;display:flex}.stage.svelte-1ww4cvx{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.audio-frame.svelte-1ww4cvx{width:min(90%,480px);height:128px}p.svelte-1ww4cvx{color:var(--text-dim)}.scrub-number.svelte-nhap92{flex:1;min-width:0;display:flex;position:relative}.input.svelte-nhap92{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}.scrub-number.with-suffix.svelte-nhap92 .input:where(.svelte-nhap92){flex:none}.suffix.svelte-nhap92{color:var(--text-dim);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex:none;margin-left:2px;font-size:11px}.scrub-number.right.svelte-nhap92 .input:where(.svelte-nhap92){text-align:right}.input.svelte-nhap92::-webkit-outer-spin-button{appearance:none;margin:0}.input.svelte-nhap92::-webkit-inner-spin-button{appearance:none;margin:0}.scrub-surface.svelte-nhap92{cursor:ew-resize;touch-action:none;position:absolute;inset:0}.number-field.svelte-368zap{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-368zap{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.number-input.svelte-368zap{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex;position:relative;overflow:hidden}.number-input.svelte-368zap:focus-within{border-color:var(--accent)}.fill.svelte-368zap{pointer-events:none;z-index:0;background:#4a4a4a;height:100%;position:absolute;top:0;left:0}.icon-slot.svelte-368zap{z-index:1;width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex;position:relative}.number-input.svelte-368zap .scrub-number{z-index:1}h3.svelte-1ol624f{letter-spacing:0;text-transform:none;color:#fff;margin:0 0 10px;font-size:11px;font-weight:400}.select-field.svelte-bczi6w{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-bczi6w{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.select-input.svelte-bczi6w{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.select-input.svelte-bczi6w:focus-within{border-color:var(--accent)}.icon-slot.svelte-bczi6w{width:24px;height:24px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex}select.svelte-bczi6w{width:100%;min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-m9vwwu{border-bottom:1px solid var(--border-soft);padding:12px}.hint.svelte-m9vwwu{color:var(--text-faint);margin:4px 0 0;font-size:11px}.info.svelte-m9vwwu{font-variant-numeric:tabular-nums;margin:0}.file.svelte-m9vwwu{color:var(--text-dim);word-break:break-all}section.svelte-1by8n8t{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-1by8n8t{margin-bottom:8px}.fundus-slice.svelte-1820t2z{width:100%;height:100%;position:relative;overflow:hidden}.fundus-slice--overdraw.svelte-1820t2z{overflow:visible}.fundus-slice__cell.svelte-1820t2z{position:absolute;overflow:hidden}.fundus-slice__cell.svelte-1820t2z img:where(.svelte-1820t2z){pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;max-height:none;position:absolute}.fundus-slice-canvas.svelte-xdsbrz{width:100%;height:100%;position:relative}canvas.svelte-xdsbrz{pointer-events:none;display:block;position:absolute}.fundus-chroma-key-video.svelte-r30mxh{width:100%;height:100%;position:relative}canvas.svelte-r30mxh,img.svelte-r30mxh{width:100%;height:100%;display:block}video.svelte-r30mxh{visibility:hidden;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stage.svelte-10eps7e{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.stage.svelte-10eps7e img{object-fit:contain;max-width:90%;max-height:90%}img.svelte-gdduef{object-fit:contain;max-width:100%;max-height:100%}section.svelte-1yd7n22{border-bottom:1px solid var(--border-soft);padding:12px}.modes.svelte-1yd7n22{flex-direction:column;gap:4px;display:flex}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22){text-align:left;background:var(--panel-raised);color:var(--text);border-radius:var(--radius);border:1px solid #0000;padding:6px 10px}.modes.svelte-1yd7n22 button:where(.svelte-1yd7n22):hover{border-color:var(--border)}.modes.svelte-1yd7n22 button.on:where(.svelte-1yd7n22){background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.insets.svelte-1yd7n22{grid-template-columns:1fr 1fr;gap:8px;min-width:0;display:grid}.insets.single.svelte-1yd7n22{grid-template-columns:1fr}.preview-panel.svelte-1mjaycs{flex-direction:column;height:100%;min-height:0;display:flex}.bar.svelte-1mjaycs{flex:none;align-items:center;gap:10px;padding:8px 0;display:flex}.size.svelte-1mjaycs{color:var(--text-dim);font-variant-numeric:tabular-nums}.backends.svelte-1mjaycs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:2px;margin-left:auto;padding:2px;display:inline-flex}.backends.svelte-1mjaycs button:where(.svelte-1mjaycs){color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:2px 8px}.backends.svelte-1mjaycs button.on:where(.svelte-1mjaycs){background:var(--accent-soft);color:var(--accent);font-weight:600}.reset.svelte-1mjaycs{background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.reset.svelte-1mjaycs:hover{border-color:var(--accent)}.stage.svelte-1mjaycs{border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;padding:24px;overflow:auto}.box.svelte-1mjaycs{position:relative;box-shadow:0 0 0 1px #ffffff1f}.box.svelte-1mjaycs .fill{position:absolute;inset:0}.handle.svelte-1mjaycs{touch-action:none;background:0 0;position:absolute}.handle.edge-right.svelte-1mjaycs{cursor:ew-resize;width:10px;height:100%;top:0;right:-4px}.handle.edge-bottom.svelte-1mjaycs{cursor:ns-resize;width:100%;height:10px;bottom:-4px;left:0}.handle.corner.svelte-1mjaycs{cursor:nwse-resize;background:var(--accent);width:16px;height:16px;box-shadow:0 0 0 2px var(--canvas);border-radius:3px;bottom:-6px;right:-6px}.canvas.svelte-1jfrg6d{flex-direction:column;height:100%;min-height:0;display:flex}.toolbar.svelte-1jfrg6d{flex:none;align-items:center;gap:8px;padding:8px 0;display:flex}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d){background:var(--panel-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 10px}.toolbar.svelte-1jfrg6d button:where(.svelte-1jfrg6d):hover{border-color:var(--accent)}.toolbar.svelte-1jfrg6d button.active:where(.svelte-1jfrg6d){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.zoom.svelte-1jfrg6d{text-align:center;min-width:44px;color:var(--text-dim);font-variant-numeric:tabular-nums}.dims.svelte-1jfrg6d{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-left:auto}.viewport.svelte-1jfrg6d{touch-action:none;cursor:grab;border:1px solid var(--border);border-radius:var(--radius-large);flex:1;min-height:0;position:relative;overflow:hidden}.viewport.panning.svelte-1jfrg6d{cursor:grabbing}.image-wrap.svelte-1jfrg6d{transform-origin:0 0;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #ffffff14}.image-wrap.svelte-1jfrg6d img:where(.svelte-1jfrg6d){width:100%;height:100%;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.center-rect.svelte-1jfrg6d{pointer-events:none;position:absolute}.center-rect.side-edges.svelte-1jfrg6d{border-left:1px dashed #0d99ff99;border-right:1px dashed #0d99ff99}.center-rect.cap-edges.svelte-1jfrg6d{border-top:1px dashed #0d99ff99;border-bottom:1px dashed #0d99ff99}.overdraw-band.svelte-1jfrg6d{pointer-events:none;background:#38bdf829;position:absolute}.line.svelte-1jfrg6d{background:var(--accent);touch-action:none;position:absolute}.line.overdraw-line.svelte-1jfrg6d{background:#38bdf8 padding-box content-box}.line.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){background:#38bdf8}.line.v.svelte-1jfrg6d{cursor:ew-resize;box-sizing:content-box;background-clip:content-box;width:1px;height:100%;margin-left:-.5px;padding:0 7px;top:0;transform:translate(-7px)}.line.h.svelte-1jfrg6d{cursor:ns-resize;box-sizing:content-box;background-clip:content-box;width:100%;height:1px;margin-top:-.5px;padding:7px 0;left:0;transform:translateY(-7px)}.line.active.svelte-1jfrg6d{background-color:var(--text);background-clip:content-box}.tag.svelte-1jfrg6d{background:var(--accent);color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600;position:absolute}.line.v.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:4px;left:50%;transform:translate(-50%)}.line.h.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:50%;left:4px;transform:translateY(-50%)}.line.v.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){top:auto;bottom:4px}.line.h.overdraw-line.svelte-1jfrg6d .tag:where(.svelte-1jfrg6d){left:auto;right:4px}.editor.svelte-1ea2lvt{flex-direction:column;flex:1;min-height:0;display:flex}.tabs.svelte-1ea2lvt{flex:none;gap:4px;margin-bottom:4px;display:inline-flex}.tabs.svelte-1ea2lvt button:where(.svelte-1ea2lvt){border-radius:var(--radius);color:var(--text-dim);background:0 0;border:none;padding:4px 10px}.tabs.svelte-1ea2lvt button.on:where(.svelte-1ea2lvt){background:var(--accent-soft);color:var(--accent)}.pane.svelte-1ea2lvt{flex:1;min-height:0}.empty.svelte-1ea2lvt{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}section.svelte-ij1927{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-ij1927{margin-bottom:8px}.stage.svelte-qls820{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-qls820{flex-direction:column;align-items:center;gap:8px;display:flex}.video-frame.svelte-qls820{width:min(90%,480px)}.video-frame.svelte-qls820 video{width:100%;height:100%}p.svelte-qls820{color:var(--text-dim)}video.svelte-ejgo9x{object-fit:contain;max-width:100%;max-height:100%}.picker.svelte-56kutb{flex-direction:column;gap:4px;min-width:0;margin-bottom:8px;display:flex}.caption.svelte-56kutb{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.reference-input.svelte-56kutb{border-radius:4px;align-items:center;min-width:0;height:24px;padding:0;display:flex;position:relative}.reference-input.svelte-56kutb:focus-within{border-color:var(--accent)}.current.svelte-56kutb{min-width:0;height:100%;color:var(--text);text-align:left;background:0 0;border:none;outline:none;flex:1;align-items:center;gap:4px;padding:0 6px 0 0;display:flex}.current.empty.svelte-56kutb{color:var(--text-faint)}.preview-slot.svelte-56kutb{box-sizing:border-box;background:#4a4a4a;border-radius:3px 0 0 3px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;margin-left:-1px;padding:2px;display:flex;overflow:hidden}.preview.svelte-56kutb{object-fit:contain;width:100%;height:100%}.missing-preview.svelte-56kutb{color:var(--warning);font-weight:700}.clear.svelte-56kutb{border:none;border-left:1px solid var(--border-soft);width:24px;height:24px;color:var(--text-dim);background:0 0;border-radius:0 3px 3px 0;outline:none;flex:none;padding:0}.clear.svelte-56kutb:hover{color:var(--danger)}.id.svelte-56kutb,.placeholder.svelte-56kutb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dangling.svelte-56kutb{color:var(--warning)}.dropdown.svelte-56kutb{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.option.svelte-56kutb{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.option.svelte-56kutb .thumbnail:where(.svelte-56kutb){object-fit:contain;background:var(--canvas);border-radius:3px;flex:none;width:24px;height:24px}.option.svelte-56kutb:hover{background:var(--panel-raised)}.option.selected.svelte-56kutb{background:var(--accent-soft);color:var(--accent)}.hint.svelte-56kutb{color:var(--text-faint);margin:4px;font-size:11px}.color-field.svelte-gjs979{flex-direction:column;gap:4px;min-width:0;display:flex}.caption.svelte-gjs979{letter-spacing:.27px;color:#ffffffb2;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:500;line-height:14px}.color-input.svelte-gjs979{border-radius:4px;align-items:center;gap:4px;min-width:0;height:24px;padding:0 6px 0 0;display:flex}.color-input.svelte-gjs979:focus-within{border-color:var(--accent)}.swatch-slot.svelte-gjs979{flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.swatch.svelte-gjs979{cursor:pointer;background:0 0;border:1px solid #ffffff3d;border-radius:3px;width:16px;height:16px;margin:0;padding:0;overflow:hidden}.swatch.svelte-gjs979::-webkit-color-swatch-wrapper{padding:0}.swatch.svelte-gjs979::-webkit-color-swatch{border:none}.hex-input.svelte-gjs979{width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;text-transform:uppercase;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-size:11px}section.svelte-rsjkek{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-rsjkek{margin-bottom:8px}.stage.svelte-1y3xro5{border:1px solid var(--border);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.preview-column.svelte-1y3xro5{flex-direction:column;align-items:center;gap:8px;display:flex}.compare-row.svelte-1y3xro5{justify-content:center;align-items:flex-start;gap:16px;width:100%;max-width:760px;display:flex}figure.svelte-1y3xro5{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;margin:0;display:flex}figcaption.svelte-1y3xro5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px}.video-frame.svelte-1y3xro5{width:100%}.video-frame.svelte-1y3xro5 video{width:100%;height:100%}p.svelte-1y3xro5{color:var(--text-dim)}section.svelte-3jblpy{border-bottom:1px solid var(--border-soft);padding:12px}.field.svelte-3jblpy{margin-bottom:8px}.backdrop.svelte-1f5yh58{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-1f5yh58{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:360px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-1f5yh58{margin:0 0 4px;font-size:12px}.file-name.svelte-1f5yh58{color:var(--text-dim);font-variant-numeric:tabular-nums;margin:0}.destination.svelte-1f5yh58{color:var(--text-faint);margin:2px 0 16px}.row.svelte-1f5yh58{align-items:center;gap:8px;margin-bottom:8px;display:flex}.label.svelte-1f5yh58{width:64px;color:var(--text-dim);flex:none}.row.svelte-1f5yh58 input:where(.svelte-1f5yh58){flex:1}.row.manifests.svelte-1f5yh58{align-items:flex-start}.row.manifests.svelte-1f5yh58>.label:where(.svelte-1f5yh58){line-height:28px}.manifest-list.svelte-1f5yh58{flex:1;max-height:132px;overflow-y:auto}.empty-manifests.svelte-1f5yh58{color:var(--text-faint);margin:0;font-size:11px}.segmented.svelte-1f5yh58{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented.svelte-1f5yh58 button:where(.svelte-1f5yh58){background:var(--panel-raised);color:var(--text-dim);border:none;padding:4px 12px}.segmented.svelte-1f5yh58 button.on:where(.svelte-1f5yh58){background:var(--accent);color:var(--text)}.hint.svelte-1f5yh58{color:var(--text-dim);margin:4px 0 0;font-size:11px}.hint.warn.svelte-1f5yh58,.error.svelte-1f5yh58{color:var(--warning)}.actions.svelte-1f5yh58{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.backdrop.svelte-n5o24b{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-n5o24b{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:420px;padding:16px;box-shadow:0 12px 32px #00000080}h2.svelte-n5o24b{margin:0 0 4px;font-size:12px}.destination.svelte-n5o24b{color:var(--text-faint);margin:0 0 16px}.row.svelte-n5o24b{gap:12px;display:flex}.field.svelte-n5o24b{color:var(--text-dim);flex-direction:column;flex:1;gap:4px;margin-bottom:10px;display:flex}.field.wide.svelte-n5o24b{width:100%}.warning.svelte-n5o24b{color:var(--warning);margin:6px 0 0;font-size:11px}.actions.svelte-n5o24b{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.directory.svelte-ftwms1{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:220px;min-width:180px;max-width:320px;min-height:0;display:flex}header.svelte-ftwms1{border-bottom:1px solid var(--border-soft);align-items:center;height:40px;padding:0 8px 0 12px;display:flex}header.svelte-ftwms1 strong:where(.svelte-ftwms1){font-size:11px}.actions.svelte-ftwms1{margin-left:auto;display:flex}.icon-button.svelte-ftwms1{width:24px;height:24px;color:var(--text-dim);border-radius:var(--radius-small);background:0 0;border:0}.icon-button.svelte-ftwms1:hover:not(:disabled){background:var(--panel-raised);color:var(--text)}.icon-button.danger.svelte-ftwms1:hover:not(:disabled){color:var(--danger)}.icon-button.svelte-ftwms1:disabled{opacity:.3;cursor:default}.tree.svelte-ftwms1{padding:6px 4px;overflow:auto}.folder-row.svelte-ftwms1,.asset-row.svelte-ftwms1{padding-left:calc((var(--depth) + 2) * 14px);display:flex}.row.svelte-ftwms1{color:var(--text-dim);border-radius:var(--radius-small);text-align:left;background:0 0;border:0;align-items:center;gap:6px;min-width:0;height:28px;display:flex}.row.special.svelte-ftwms1{width:100%;padding:0 8px}.row.folder.svelte-ftwms1{flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1{cursor:grab;flex:1;padding:0 8px 0 2px}.row.asset.svelte-ftwms1:active{cursor:grabbing}.row.svelte-ftwms1:hover,.row.selected.svelte-ftwms1{background:var(--panel-raised);color:var(--text)}.row.asset.current.svelte-ftwms1,.row.selected.svelte-ftwms1{background:var(--accent-soft);color:var(--accent)}.row.drop-target.svelte-ftwms1{outline:1px solid var(--accent);background:var(--accent-soft)}.glyph.svelte-ftwms1{width:14px;color:var(--text-faint);flex:none;justify-content:center;align-items:center;display:flex}.asset-glyph.svelte-ftwms1{font-size:7px}.asset-warning.svelte-ftwms1{color:var(--warning);flex:none;margin-left:auto}.label.svelte-ftwms1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.count.svelte-ftwms1{color:var(--text-faint);margin-left:auto;font-size:10px}.dialog-row.svelte-ftwms1{align-items:center;gap:8px;display:flex}.dialog-row.svelte-ftwms1 span:where(.svelte-ftwms1){width:44px;color:var(--text-dim)}.dialog-row.svelte-ftwms1 input:where(.svelte-ftwms1){flex:1}.dialog-path.svelte-ftwms1,.dialog-text.svelte-ftwms1,.dialog-warning.svelte-ftwms1{margin:8px 0 0}.dialog-path.svelte-ftwms1{color:var(--text-faint)}.dialog-warning.svelte-ftwms1{color:var(--warning)}.context-menu.svelte-10jgqdh{z-index:200;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;width:168px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000073}button.svelte-10jgqdh{width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}button.svelte-10jgqdh:hover,button.svelte-10jgqdh:focus-visible{background:var(--accent-soft);outline:none}button.danger.svelte-10jgqdh{color:var(--danger)}hr.svelte-10jgqdh{background:var(--border);border:0;height:1px;margin:4px 8px}
@@ -0,0 +1 @@
1
+ .icon.svelte-jamecx{display:block}.manifest-selector.svelte-151zph4{flex-direction:column;gap:4px;width:100%;display:flex}.manifest-option.svelte-151zph4{border-color:var(--border-soft);width:100%;height:28px;color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:2px 7px;display:flex}.manifest-option.svelte-151zph4:hover{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 10%, var(--panel-raised));color:var(--text)}.manifest-option.svelte-151zph4:focus-within{border-color:var(--manifest-color)}.manifest-option.selected.svelte-151zph4{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 20%, var(--panel-raised));color:var(--text)}.manifest-option.passive.svelte-151zph4{border-color:var(--manifest-color);border-style:dashed}.manifest-option.disabled.svelte-151zph4{cursor:default;opacity:.6}.manifest-option.disabled.svelte-151zph4:hover{border-color:var(--border-soft);background:var(--panel-raised);color:var(--text-dim)}input.svelte-151zph4{width:14px;height:14px;accent-color:var(--manifest-color);flex:none;margin:0}.marker.svelte-151zph4{border:1px solid color-mix(in srgb, var(--manifest-color) 70%, var(--border));background:color-mix(in srgb, var(--manifest-color) 24%, var(--panel));border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:inline-flex}.color-dot.svelte-151zph4{background:var(--manifest-color);border-radius:50%;width:8px;height:8px}.name.svelte-151zph4,.via.svelte-151zph4{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.name.svelte-151zph4{font-size:11px;font-weight:500}.via.svelte-151zph4{color:var(--text-faint);margin-left:auto;font-size:9px}
@@ -0,0 +1 @@
1
+ import{$ as e,I as t,L as n,R as r,X as i,Z as a,n as o,t as s}from"./NblqapDQ.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_qgalz1?.base??``,pe=globalThis.__sveltekit_qgalz1?.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=`1784274554403`,_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(t){let n=e(t),r=!0;function i(){r=!0,n.update(e=>e)}function a(e){r=!1,n.set(e)}function o(e){let t;return n.subscribe(n=>{(t===void 0||r&&n!==t)&&e(t=n)})}return{notify:i,set:a,subscribe:o}}var Ee={v:h};function De(){let{set:t,subscribe:n}=e(!1);async function r(){clearTimeout(void 0);try{let e=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!e.ok)return!1;let n=(await e.json()).version!==ge;return n&&(t(!0),Ee.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:n,check:r}}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=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.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=a({});get data(){return t(this.#e)}set data(e){i(this.#e,e)}#t=a(null);get form(){return t(this.#t)}set form(e){i(this.#t,e)}#n=a(null);get error(){return t(this.#n)}set error(e){i(this.#n,e)}#r=a({});get params(){return t(this.#r)}set params(e){i(this.#r,e)}#i=a({id:null});get route(){return t(this.#i)}set route(e){i(this.#i,e)}#a=a({});get state(){return t(this.#a)}set state(e){i(this.#a,e)}#o=a(-1);get status(){return t(this.#o)}set status(e){i(this.#o,e)}#s=a(new URL(Pe));get url(){return t(this.#s)}set url(e){i(this.#s,e)}},N=new class{#e=a(null);get current(){return t(this.#e)}set current(e){i(this.#e,e)}},P=new class{#e=a(!1);get current(){return t(this.#e)}set current(e){i(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=s,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:e(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_qgalz1.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_qgalz1.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 Lt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Ut(new URL(location.href)):location.href),replace_state:!0}),i()),It()}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,t,n,i){let a,o;t.invalidateAll&&Xe(),await Z({type:`goto`,url:be(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:i,accept:()=>{if(t.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))}t.invalidate&&t.invalidate.forEach(Ft)}}),t.invalidateAll&&r().then(r).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:Ht(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:Ht(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=Vt(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:e,url:t,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(t,!1),_=e===`enter`?Vt(W,g,t,e):jt({url:t,type:e,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(t,S,V.hash))return await z(t,s);y=await Mt(t,{id:null},await $(new u(404,`Not Found`,`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=g?.url||t,Y!==d){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:e,url:new URL(y.location,t),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:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await R.updated.check())return await Ve(),await z(t,s);if(ut(),ze(v),dt(te),y.props.page.url.pathname!==t.pathname&&(t.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,n={[C]:q+=e,[w]:J+=e,[ye]:c};(s?history.replaceState:history.pushState).call(history,n,``,t),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 e=(await Promise.all(Array.from($e,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{U.delete(e)})}e.push(t),e.forEach(e=>{U.add(e)})}let r=_.navigation.to;W={...y.state,nav:{params:r.params,route:r.route,url:r.url}},y.props.page&&(y.props.page.url=t),!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=n?.()),rt=!0}else await _t(y,Ge,!1);let{activeElement:re}=document;if(await ne,await r(),await r(),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=t.hash&&document.getElementById(Wt(t)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Bt(t,!x),nt=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=D()),U.forEach(e=>e(_.navigation)),e===`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={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Ft(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function It(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Vt(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(!zt)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(Ht(M)),R.page.notify()}}async function Lt(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=Rt(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 Rt(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 zt=!1;function Bt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Wt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;zt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),zt=!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 Vt(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 Ht(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 Ut(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Wt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{M as a,he as c,N as i,lt as n,P as o,R as r,Oe as s,Pt as t};
@@ -0,0 +1 @@
1
+ import{A as e,D as t,F as n,G as r,J as i,K as a,N as o,O as s,P as c,V as l,_ as u,i as d,nt as f,ot as p,tt as m,u as h,x as g}from"./NblqapDQ.js";import"./xihTtKlq.js";function _(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} kB`:`${(e/(1024*1024)).toFixed(2)} MB`}function v(e){return`${(e/1e3).toFixed(2)} s`}function y(e,t){let{maxWidth:n,...r}=e;return t===null||!Number.isFinite(t)||t<=0?r:{...r,maxWidth:Math.round(t)}}function b(e,t){return e.defaultPrevented||e.isComposing||t.busy?null:e.key===`Escape`?`cancel`:e.key===`Enter`&&!t.confirmDisabled?`confirm`:null}function x(e){return e instanceof Element&&e.closest(`button, select, textarea, [contenteditable]:not([contenteditable="false"])`)!==null}function S(e,t){let n=b(e,t);n===null||n===`confirm`&&x(e.target)||(e.preventDefault(),e.stopPropagation(),n===`confirm`?t.onConfirm():t.onCancel())}var C=e(`<div class="backdrop svelte-oozc38" role="presentation"><div class="dialog svelte-oozc38" role="dialog" tabindex="-1"><h2 class="svelte-oozc38"> </h2> <!> <div class="actions svelte-oozc38"><button class="control">Cancel</button> <button> </button></div></div></div>`);function w(e,o){f(o,!0);let _=d(o,`danger`,3,!1),v=d(o,`confirmDisabled`,3,!1),y=d(o,`busy`,3,!1);var b=C();n(`keydown`,r,e=>S(e,{busy:y(),confirmDisabled:v(),onConfirm:o.onConfirm,onCancel:o.onCancel}));var x=a(b),w=a(x),T=a(w,!0);p(w);var E=i(w,2);g(E,()=>o.children);var D=i(E,2),O=a(D),k=i(O,2);let A;var j=a(k,!0);p(k),p(D),p(x),p(b),l(()=>{h(x,`aria-label`,o.title),t(T,o.title),O.disabled=y(),A=u(k,1,`control`,null,A,{primary:!_(),danger:_()}),k.disabled=v()||y(),t(j,o.confirmLabel)}),c(`click`,b,e=>{e.target===e.currentTarget&&!y()&&o.onCancel()}),c(`click`,O,function(...e){o.onCancel?.apply(this,e)}),c(`click`,k,function(...e){o.onConfirm?.apply(this,e)}),s(e,b),m()}o([`click`]);export{y as a,v as i,S as n,_ as r,w as t};