fundus 0.18.0 → 0.20.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 (168) hide show
  1. package/build/client/_app/immutable/assets/{3.C6xo25uI.css → 3.q3CUOEpz.css} +1 -1
  2. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.br +0 -0
  3. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{CrIZjnDr.js → BYFtzj-6.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BYFtzj-6.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BYFtzj-6.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/Bpdn9KsZ.js +1 -0
  8. package/build/client/_app/immutable/chunks/Bpdn9KsZ.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/Bpdn9KsZ.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{Br86nTYk.js → C84Cb3FT.js} +1 -1
  11. package/build/client/_app/immutable/chunks/C84Cb3FT.js.br +2 -0
  12. package/build/client/_app/immutable/chunks/C84Cb3FT.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{lw3KP4og.js → ShJqQdc9.js} +1 -1
  14. package/build/client/_app/immutable/chunks/ShJqQdc9.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/ShJqQdc9.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{DNjzOY31.js → qKhm3_BR.js} +1 -1
  17. package/build/client/_app/immutable/chunks/qKhm3_BR.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/qKhm3_BR.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.D5wDPF1W.js → app.xp6XP32Y.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.xp6XP32Y.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.xp6XP32Y.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.Du4Vvers.js +1 -0
  23. package/build/client/_app/immutable/entry/start.Du4Vvers.js.br +1 -0
  24. package/build/client/_app/immutable/entry/start.Du4Vvers.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{0.Du4H-PMh.js → 0.C1JztY6C.js} +1 -1
  26. package/build/client/_app/immutable/nodes/0.C1JztY6C.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/0.C1JztY6C.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.Cdec6pOD.js → 1.DBrMEpGF.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.DBrMEpGF.js.br +2 -0
  30. package/build/client/_app/immutable/nodes/1.DBrMEpGF.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{2.EttMTuPO.js → 2.DePWJalQ.js} +1 -1
  32. package/build/client/_app/immutable/nodes/2.DePWJalQ.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/2.DePWJalQ.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/3.CoDFK3_e.js +1 -0
  35. package/build/client/_app/immutable/nodes/3.CoDFK3_e.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/3.CoDFK3_e.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{4.B2w3TMXh.js → 4.B-qjHb3h.js} +1 -1
  38. package/build/client/_app/immutable/nodes/4.B-qjHb3h.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/4.B-qjHb3h.js.gz +0 -0
  40. package/build/client/_app/version.json +1 -1
  41. package/build/client/_app/version.json.br +0 -0
  42. package/build/client/_app/version.json.gz +0 -0
  43. package/build/handler.js +7 -7
  44. package/build/index.js +7 -7
  45. package/build/server/chunks/chunks/{context.js-e4GlFzy9.js → context.js-4TO_atTF.js} +92 -46
  46. package/build/server/chunks/chunks/context.js-4TO_atTF.js.map +1 -0
  47. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js +45 -0
  48. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js.map +1 -0
  49. package/build/server/chunks/chunks/{exports.js-DJIUHt8s.js → exports.js-D4wm01VC.js} +2 -2
  50. package/build/server/chunks/chunks/{exports.js-DJIUHt8s.js.map → exports.js-D4wm01VC.js.map} +1 -1
  51. package/build/server/chunks/chunks/{internal.js-Dt5KHjRW.js → internal.js-C1qRAVdt.js} +3 -3
  52. package/build/server/chunks/chunks/{internal.js-Dt5KHjRW.js.map → internal.js-C1qRAVdt.js.map} +1 -1
  53. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  54. package/build/server/chunks/chunks/{shared.js-x1Gq7Onx.js → shared.js-WozvTiX9.js} +2 -2
  55. package/build/server/chunks/chunks/{shared.js-x1Gq7Onx.js.map → shared.js-WozvTiX9.js.map} +1 -1
  56. package/build/server/chunks/chunks/{utils.js-C2ExAOTX.js → utils.js-UxJ7asYr.js} +3 -3
  57. package/build/server/chunks/chunks/{utils.js-C2ExAOTX.js.map → utils.js-UxJ7asYr.js.map} +1 -1
  58. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-DsRPehtR.js → _server.ts.js-Aa7zYzUB.js} +3 -2
  59. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-DsRPehtR.js.map → _server.ts.js-Aa7zYzUB.js.map} +1 -1
  60. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BWvGDvO7.js → _server.ts.js-CM73kt1H.js} +3 -2
  61. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BWvGDvO7.js.map → _server.ts.js-CM73kt1H.js.map} +1 -1
  62. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B9tNV200.js → _server.ts.js-CyiEsjc3.js} +3 -2
  63. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-B9tNV200.js.map → _server.ts.js-CyiEsjc3.js.map} +1 -1
  64. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-pSCuVSWc.js → _server.ts.js-Cpt_vVY0.js} +3 -2
  65. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-pSCuVSWc.js.map → _server.ts.js-Cpt_vVY0.js.map} +1 -1
  66. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Do91N0Y1.js → _server.ts.js-BVdeCRy0.js} +3 -2
  67. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Do91N0Y1.js.map → _server.ts.js-BVdeCRy0.js.map} +1 -1
  68. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CiAwadVe.js → _server.ts.js-QEa0nYZE.js} +3 -2
  69. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-CiAwadVe.js.map → _server.ts.js-QEa0nYZE.js.map} +1 -1
  70. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BM3m_ZAW.js → _server.ts.js-Dk0sFdoM.js} +3 -2
  71. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BM3m_ZAW.js.map → _server.ts.js-Dk0sFdoM.js.map} +1 -1
  72. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-CO8RZm3e.js +69 -0
  73. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-CO8RZm3e.js.map +1 -0
  74. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DfnwfGPe.js → _server.ts.js-8RzyUK6g.js} +3 -2
  75. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DfnwfGPe.js.map → _server.ts.js-8RzyUK6g.js.map} +1 -1
  76. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CLimVe_g.js → _server.ts.js-YWliM590.js} +3 -2
  77. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CLimVe_g.js.map → _server.ts.js-YWliM590.js.map} +1 -1
  78. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-D1U27fGU.js → _server.ts.js-CeXmOrwN.js} +3 -2
  79. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-D1U27fGU.js.map → _server.ts.js-CeXmOrwN.js.map} +1 -1
  80. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CO2rTBqC.js → _server.ts.js-DQaLSdGl.js} +3 -2
  81. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CO2rTBqC.js.map → _server.ts.js-DQaLSdGl.js.map} +1 -1
  82. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-D5avRgyS.js → _server.ts.js-BE_nYFP_.js} +3 -2
  83. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-D5avRgyS.js.map → _server.ts.js-BE_nYFP_.js.map} +1 -1
  84. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BapPH5zE.js → _server.ts.js-BGxvZ4EV.js} +3 -2
  85. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BapPH5zE.js.map → _server.ts.js-BGxvZ4EV.js.map} +1 -1
  86. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-zzPmtjqq.js → _server.ts.js-Cvwr9a0l.js} +3 -2
  87. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-zzPmtjqq.js.map → _server.ts.js-Cvwr9a0l.js.map} +1 -1
  88. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-4PAevg6t.js → _server.ts.js-DEMDXHsR.js} +3 -2
  89. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-4PAevg6t.js.map → _server.ts.js-DEMDXHsR.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-D5Ugx1s2.js → _server.ts.js-DoeEIUoG.js} +3 -2
  91. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-D5Ugx1s2.js.map → _server.ts.js-DoeEIUoG.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Kh5S2FF1.js → _server.ts.js-0hMtYoB1.js} +3 -2
  93. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Kh5S2FF1.js.map → _server.ts.js-0hMtYoB1.js.map} +1 -1
  94. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CrIuCzTz.js → _server.ts.js-B4YWmlkC.js} +3 -2
  95. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-CrIuCzTz.js.map → _server.ts.js-B4YWmlkC.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-BzYrNyZ9.js → _server.ts.js-dNLtLO2U.js} +3 -2
  97. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-BzYrNyZ9.js.map → _server.ts.js-dNLtLO2U.js.map} +1 -1
  98. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-Z2CJc6X2.js → _server.ts.js-BtCkf-hk.js} +3 -2
  99. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-Z2CJc6X2.js.map → _server.ts.js-BtCkf-hk.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-55wphoyh.js → _server.ts.js-CozrPtRv.js} +3 -2
  101. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-55wphoyh.js.map → _server.ts.js-CozrPtRv.js.map} +1 -1
  102. package/build/server/chunks/entries/{hooks.server.js-YOyVpyLh.js → hooks.server.js-Cnsi5KsE.js} +3 -2
  103. package/build/server/chunks/entries/{hooks.server.js-YOyVpyLh.js.map → hooks.server.js-Cnsi5KsE.js.map} +1 -1
  104. package/build/server/chunks/{handler-Byx45TKn.js → handler-Cy1Egoop.js} +5 -5
  105. package/build/server/chunks/{handler-Byx45TKn.js.map → handler-Cy1Egoop.js.map} +1 -1
  106. package/build/server/chunks/{index.js-BydliQ_Y.js → index.js-BThzb8OA.js} +5 -5
  107. package/build/server/chunks/{index.js-BydliQ_Y.js.map → index.js-BThzb8OA.js.map} +1 -1
  108. package/build/server/chunks/{manifest.js-F9H6_1w3.js → manifest.js-oxAZ63GO.js} +35 -28
  109. package/build/server/chunks/manifest.js-oxAZ63GO.js.map +1 -0
  110. package/build/server/chunks/nodes/{0.js-BcvXZmrQ.js → 0.js-CWkqtXV6.js} +2 -2
  111. package/build/server/chunks/nodes/{0.js-BcvXZmrQ.js.map → 0.js-CWkqtXV6.js.map} +1 -1
  112. package/build/server/chunks/nodes/1.js-CwYk7wO6.js +7 -0
  113. package/build/server/chunks/nodes/{1.js-Ba8f-0ma.js.map → 1.js-CwYk7wO6.js.map} +1 -1
  114. package/build/server/chunks/nodes/{2.js-BI_SZTL5.js → 2.js-CH87hyHV.js} +2 -2
  115. package/build/server/chunks/nodes/{2.js-BI_SZTL5.js.map → 2.js-CH87hyHV.js.map} +1 -1
  116. package/build/server/chunks/nodes/3.js-CSO0quMy.js +7 -0
  117. package/build/server/chunks/nodes/{3.js-DokN-j9-.js.map → 3.js-CSO0quMy.js.map} +1 -1
  118. package/build/server/chunks/nodes/4.js-Dc4P-6cG.js +7 -0
  119. package/build/server/chunks/nodes/{4.js-M9Y_zPEf.js.map → 4.js-Dc4P-6cG.js.map} +1 -1
  120. package/dist/core/api-types.d.ts +5 -0
  121. package/dist/core/dependencies.d.ts +15 -0
  122. package/dist/core/dependencies.js +8 -0
  123. package/dist/core/dependency-validation.d.ts +2 -2
  124. package/dist/core/dependency-validation.js +3 -2
  125. package/dist/core/index.d.ts +2 -2
  126. package/dist/core/index.js +1 -1
  127. package/dist/server/config-loader.d.ts +3 -3
  128. package/dist/server/config-loader.js +6 -4
  129. package/dist/server/context.d.ts +3 -0
  130. package/dist/server/context.js +2 -1
  131. package/dist/server/library-watcher.d.ts +8 -0
  132. package/dist/server/library-watcher.js +96 -0
  133. package/dist/server/operations.js +8 -1
  134. package/package.json +1 -1
  135. package/build/client/_app/immutable/assets/3.C6xo25uI.css.br +0 -0
  136. package/build/client/_app/immutable/assets/3.C6xo25uI.css.gz +0 -0
  137. package/build/client/_app/immutable/chunks/Br86nTYk.js.br +0 -0
  138. package/build/client/_app/immutable/chunks/Br86nTYk.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/CrIZjnDr.js.br +0 -0
  140. package/build/client/_app/immutable/chunks/CrIZjnDr.js.gz +0 -0
  141. package/build/client/_app/immutable/chunks/DNjzOY31.js.br +0 -0
  142. package/build/client/_app/immutable/chunks/DNjzOY31.js.gz +0 -0
  143. package/build/client/_app/immutable/chunks/Dtda93q6.js +0 -1
  144. package/build/client/_app/immutable/chunks/Dtda93q6.js.br +0 -0
  145. package/build/client/_app/immutable/chunks/Dtda93q6.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/lw3KP4og.js.br +0 -0
  147. package/build/client/_app/immutable/chunks/lw3KP4og.js.gz +0 -0
  148. package/build/client/_app/immutable/entry/app.D5wDPF1W.js.br +0 -0
  149. package/build/client/_app/immutable/entry/app.D5wDPF1W.js.gz +0 -0
  150. package/build/client/_app/immutable/entry/start.SSZ7q8lm.js +0 -1
  151. package/build/client/_app/immutable/entry/start.SSZ7q8lm.js.br +0 -1
  152. package/build/client/_app/immutable/entry/start.SSZ7q8lm.js.gz +0 -0
  153. package/build/client/_app/immutable/nodes/0.Du4H-PMh.js.br +0 -0
  154. package/build/client/_app/immutable/nodes/0.Du4H-PMh.js.gz +0 -0
  155. package/build/client/_app/immutable/nodes/1.Cdec6pOD.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/1.Cdec6pOD.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/2.EttMTuPO.js.br +0 -0
  158. package/build/client/_app/immutable/nodes/2.EttMTuPO.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/3.3npz09f1.js +0 -1
  160. package/build/client/_app/immutable/nodes/3.3npz09f1.js.br +0 -0
  161. package/build/client/_app/immutable/nodes/3.3npz09f1.js.gz +0 -0
  162. package/build/client/_app/immutable/nodes/4.B2w3TMXh.js.br +0 -0
  163. package/build/client/_app/immutable/nodes/4.B2w3TMXh.js.gz +0 -0
  164. package/build/server/chunks/chunks/context.js-e4GlFzy9.js.map +0 -1
  165. package/build/server/chunks/manifest.js-F9H6_1w3.js.map +0 -1
  166. package/build/server/chunks/nodes/1.js-Ba8f-0ma.js +0 -7
  167. package/build/server/chunks/nodes/3.js-DokN-j9-.js +0 -7
  168. package/build/server/chunks/nodes/4.js-M9Y_zPEf.js +0 -7
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Watches the library file and the raw directory for out-of-band changes — the
3
+ * CLI writing the library, or another process moving/renaming/deleting raw
4
+ * files — and notifies subscribers so the editor can reconcile without waiting
5
+ * for a window-focus refresh.
6
+ *
7
+ * Watching starts on the first subscriber and stops on the last, so a process
8
+ * that never subscribes (the CLI builds its own `FundusOperations`) never opens
9
+ * a file-system watch. A change the editor itself caused also fires here; the
10
+ * resulting reconcile is idempotent and coalesced, so a redundant refresh costs
11
+ * one no-op request — and that same property syncs edits made in one browser
12
+ * tab to every other open tab.
13
+ */
14
+ import { watch } from 'node:fs';
15
+ import { basename, dirname, resolve } from 'node:path';
16
+ /** How long to collect burst file-system events into a single notification. */
17
+ const DEBOUNCE_MS = 200;
18
+ export class LibraryWatcher {
19
+ #specs;
20
+ #listeners = new Set();
21
+ #watchers = [];
22
+ #debounce = null;
23
+ constructor(config) {
24
+ const libraryName = basename(config.library);
25
+ this.#specs = [
26
+ // The library file is replaced by a rename, which invalidates a watch on
27
+ // the file itself, so watch its directory and filter by name. The `.tmp`
28
+ // staging write is ignored; the final rename fires under the real name.
29
+ {
30
+ dir: dirname(config.library),
31
+ recursive: false,
32
+ accept: (filename) => filename === null || filename === libraryName
33
+ },
34
+ // The raw tree nests folders, so it needs a recursive watch; any entry
35
+ // there is a candidate raw move/rename/delete.
36
+ { dir: resolve(config.rawDir), recursive: true, accept: () => true }
37
+ ];
38
+ }
39
+ /** Register a listener, starting the watch on the first and stopping on the last. */
40
+ subscribe(listener) {
41
+ this.#listeners.add(listener);
42
+ if (this.#listeners.size === 1)
43
+ this.#start();
44
+ return () => {
45
+ if (!this.#listeners.delete(listener))
46
+ return;
47
+ if (this.#listeners.size === 0)
48
+ this.#stop();
49
+ };
50
+ }
51
+ #start() {
52
+ for (const spec of this.#specs) {
53
+ try {
54
+ // `persistent: false` keeps this convenience watcher from holding the
55
+ // process open on its own; the HTTP server keeps the loop alive.
56
+ const watcher = watch(spec.dir, { recursive: spec.recursive, persistent: false }, (_event, filename) => {
57
+ if (spec.accept(typeof filename === 'string' ? filename : null))
58
+ this.#schedule();
59
+ });
60
+ // A watched directory that is later removed emits an error; degrade to
61
+ // focus-based reconciliation rather than crashing the server.
62
+ watcher.on('error', () => { });
63
+ this.#watchers.push(watcher);
64
+ }
65
+ catch {
66
+ // The directory may not exist yet on a brand-new project. The editor
67
+ // still reconciles on window focus, so changes are not lost.
68
+ }
69
+ }
70
+ }
71
+ #stop() {
72
+ if (this.#debounce) {
73
+ clearTimeout(this.#debounce);
74
+ this.#debounce = null;
75
+ }
76
+ for (const watcher of this.#watchers)
77
+ watcher.close();
78
+ this.#watchers = [];
79
+ }
80
+ #schedule() {
81
+ if (this.#debounce)
82
+ clearTimeout(this.#debounce);
83
+ this.#debounce = setTimeout(() => {
84
+ this.#debounce = null;
85
+ for (const listener of [...this.#listeners]) {
86
+ try {
87
+ listener();
88
+ }
89
+ catch {
90
+ // One failing subscriber must not stop the others being notified.
91
+ }
92
+ }
93
+ }, DEBOUNCE_MS);
94
+ this.#debounce.unref?.();
95
+ }
96
+ }
@@ -947,6 +947,12 @@ export class FundusOperations {
947
947
  incomingByAsset.set(reference.assetId, incoming);
948
948
  }
949
949
  }
950
+ // Which dependency sources declare each asset id (D2), so the editor can
951
+ // flag required assets and warn before deleting one.
952
+ const requiredByAsset = new Map();
953
+ for (const dependency of this.#config.dependencies) {
954
+ requiredByAsset.set(dependency.id, [...dependency.sources]);
955
+ }
950
956
  const assets = [];
951
957
  for (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {
952
958
  const record = library.assets[assetId];
@@ -1005,7 +1011,8 @@ export class FundusOperations {
1005
1011
  assetId: reference.assetId
1006
1012
  })),
1007
1013
  incoming: incomingByAsset.get(assetId) ?? []
1008
- }
1014
+ },
1015
+ requiredBy: requiredByAsset.get(assetId) ?? []
1009
1016
  });
1010
1017
  }
1011
1018
  // Per manifest: the membership picture for the manifests view, and the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fundus",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- import{H as e,U as t,V as n,it as r,nt as i,r as a,t as o,tt as s}from"./Z8rcWjXZ.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_gomfax?.base??``,pe=globalThis.__sveltekit_gomfax?.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=`1787313662204`,_e=`sveltekit:snapshot`,ve=`sveltekit:scroll`,ye=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},E=location.origin;function be(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function O(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var xe={...T,"":T.hover};function Se(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ce(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Se(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||A(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===E&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function k(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=O(s,`preload-code`)),i===null&&(i=O(s,`preload-data`)),t===null&&(t=O(s,`keepfocus`)),n===null&&(n=O(s,`noscroll`)),a===null&&(a=O(s,`reload`)),o===null&&(o=O(s,`replacestate`)),s=Se(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:xe[r??`off`],preload_data:xe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Te(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:t}=r(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==ge;return n&&(e(!0),Ee.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function A(e,t,n){return e.origin!==E||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Oe(e){}var ke=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...ke],[...new Set([...ke])];function Ae(e){return e.filter(e=>e!=null)}function j(e,t){return e+`/`+t}function je(e){return e instanceof c||e instanceof u?e.status:500}function Me(e){return e instanceof u?e.text:`Internal Error`}var M,N,P,Ne=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Pe=`a:`;Ne?(M={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},N={current:null},P={current:!1}):(M=new class{#e=i({});get data(){return n(this.#e)}set data(e){s(this.#e,e)}#t=i(null);get form(){return n(this.#t)}set form(e){s(this.#t,e)}#n=i(null);get error(){return n(this.#n)}set error(e){s(this.#n,e)}#r=i({});get params(){return n(this.#r)}set params(e){s(this.#r,e)}#i=i({id:null});get route(){return n(this.#i)}set route(e){s(this.#i,e)}#a=i({});get state(){return n(this.#a)}set state(e){s(this.#a,e)}#o=i(-1);get status(){return n(this.#o)}set status(e){s(this.#o,e)}#s=i(new URL(Pe));get url(){return n(this.#s)}set url(e){s(this.#s,e)}},N=new class{#e=i(null);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},P=new class{#e=i(!1);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=o,Re=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),F=null,I=de(`sveltekit:scroll`)??{},L=de(`sveltekit:snapshot`)??{},R={url:Te({}),page:Te({}),navigating:r(null),updated:De()};function ze(e){I[e]=D()}function Be(e,t){let n=e+1;for(;I[n];)delete I[n],n+=1;for(n=t+1;L[n];)delete L[n],n+=1}function z(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Ve(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var He,Ue,We,B,Ge,V,Ke={},qe={},Je=[],Ye=[],H=null;function Xe(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var Ze=new Map,Qe=new Set,$e=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},et=!1,tt=!1,nt=!0,G=!1,K=!1,rt=!1,it=!1,at,q,J,Y,ot=new Set,st=new Map,ct=new Map;async function lt(e,t,n){if(globalThis.__sveltekit_gomfax.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_gomfax.data;for(let t in e)Ke[t]=e[t];for(let e in n)Ke[e]=n[e];for(let e in r)Ke[e]=r[e];for(let e in t)qe[e]=t[e]}document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),He=ue(e),B=document.documentElement,Ge=t,Ue=e.nodes[0],We=e.nodes[1],Ue(),We(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=I[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await zt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Gt(new URL(location.href)):location.href),replace_state:!0}),i()),Rt()}function ut(){Je.length=0,it=!1}function dt(e){Ye.some(e=>e?.snapshot)&&(L[e]=Ye.map(e=>e?.snapshot?.capture()))}function ft(e){L[e]?.forEach((e,t)=>{Ye[t]?.snapshot?.restore(e)})}function pt(){ze(q),fe(ve,I),dt(J),fe(_e,L)}async function mt(e,n,r,i){let a,o;n.invalidateAll&&Xe(),await Z({type:`goto`,url:be(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){it=!0,a=new Set;for(let[e,t]of st)for(let[n,r]of t)r.resource?.reset(),a.add(j(e,n));o=new Set;for(let[e,t]of ct)for(let n of t.keys())o.add(j(e,n))}n.invalidate&&n.invalidate.forEach(Lt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of st)for(let[n,{resource:r}]of t)a?.has(j(e,n))&&r.start();for(let[e,t]of ct)for(let[n,{resource:r}]of t)o?.has(j(e,n))&&r.reconnect()})}async function ht(e){if(e.id!==H?.id){Xe();let t={};ot.add(t),H={id:e.id,token:t,promise:Tt({...e,preload:t}).then(e=>(ot.delete(t),e.type===`loaded`&&e.state.error&&Xe(),e)),fork:null}}return H.promise}async function gt(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function _t(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},Fe(e.props.page),at=new V.root({target:t,props:{...e.props,stores:R,components:Ye},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:I[q]??D()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}ft(J),tt=!0}async function vt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Ae(n).map(e=>e.node.component),page:Wt(M)}};s!==void 0&&(l.props.form=s);let u={},f=!M,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==M.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:M.data}),l}async function yt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function bt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:tt?y(r,i.href,t):te(r,t)}}function xt(e,t,n,r,i,a){if(it)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(Je.some(t=>t(new URL(e))))return!0;return!1}function St(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Ct(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function wt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Wt(M),constructors:[]}}}async function Tt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return ot.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=W.url?e!==At(W.url):!1,p=W.route?i.id!==W.route.id:!1,m=Ct(W.url,n),ee=!1,g=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!xt(ee,p,f,m,a.universal?.uses,r)?a:(ee=!0,yt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:St(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&ot.has(a))return wt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=je(t),u;if(t instanceof c)u=t.body;else{if(await R.updated.check())return await Ve(),await z(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await Et(e,_,o);return d?vt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Mt(n,{id:i.id},u,s)}else _.push(void 0);return vt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function Et(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Dt({status:e,error:t,url:n,route:r}){let i={};try{return vt({url:n,params:i,branch:[await yt({loader:Ue,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:St(null)}),{node:await We(),loader:We,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await mt(new URL(t.location,location.href),{},0);return}let a=await V.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ot(e){let t=e.href;if(Ze.has(t))return Ze.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>bt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();Ze.set(t,r),n=await r}catch{Ze.delete(t);return}return n}async function X(e,t){if(e&&!A(e,S,V.hash)){let n=await Ot(e);if(!n)return;let r=kt(n);for(let n of He){let i=n.exec(r);if(i)return{id:At(e),invalidating:t,route:n,params:p(i),url:e}}}}function kt(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function At(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function jt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Ut(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||Qe.forEach(e=>e(c)),o?null:s}async function Z({type:n,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let ee=Y;Y=d;let g=await X(r,!1),_=n===`enter`?Ut(W,g,r,n):jt({url:r,type:n,delta:i?.delta,intent:g,scroll:i?.scroll,event:m});if(!_){p(),Y===d&&(Y=ee);return}let v=q,te=J;f(),G=!0,tt&&_.navigation.type!==`enter`&&R.navigating.set(N.current=_.navigation);let y=g&&await Tt(g);if(!y){if(A(r,S,V.hash))return await z(r,s);y=await Mt(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=g?.url||r,Y!==d){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:n,url:new URL(y.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),_.fulfil(void 0);return}if(y=await Dt({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await R.updated.check())return await Ve(),await z(r,s);if(ut(),ze(v),dt(te),y.props.page.url.pathname!==r.pathname&&(r.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:q+=e,[w]:J+=e,[ye]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Be(q,J)}let b=g&&H?.id===g.id?H.fork:null;H?.fork&&!b?Xe():(H=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let ne;if(tt){let t=(await Promise.all(Array.from($e,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{U.delete(e)})}t.push(e),t.forEach(e=>{U.add(e)})}let n=_.navigation.to;W={...y.state,nav:{params:n.params,route:n.route,url:n.url}},y.props.page&&(y.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=b&&await b;i?ne=i.commit():(F=null,at.$set(y.props),F&&Object.assign(y.props.page,F),Fe(y.props.page),ne=e?.()),rt=!0}else await _t(y,Ge,!1);let{activeElement:re}=document;if(await ne,await t(),await t(),Y!==d){_.reject(Error(`navigation aborted`));return}y.props.page&&F&&Object.assign(y.props.page,F);let x=null;if(nt){let e=i?i.scroll:o?D():null;e?scrollTo(e.x,e.y):(x=r.hash&&document.getElementById(Kt(r)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Ht(r,!x),nt=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=D()),U.forEach(e=>e(_.navigation)),n===`popstate`&&ft(J),R.navigating.set(N.current=null)}async function Mt(e,t,n,r,i){return e.origin===E&&e.pathname===location.pathname&&!et?await Dt({status:r,error:n,url:e,route:t}):await z(e,i)}var Q={element:void 0,href:void 0};function Nt(){let e,t;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}B.addEventListener(`mousedown`,n),B.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(gt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ce(e,B),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=we(r,S,V.hash);if(o||s)return;let c=k(r),l=a&&At(W.url)===At(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await X(a,!1);if(!e)return;ht(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,gt(a))}function a(){r.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:i}=we(e,S,V.hash);if(n||i)continue;let a=k(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&gt(t))}}U.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=je(e),r=Me(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Pt(e,t){Ie(()=>(e.add(t),()=>{e.delete(t)}))}function Ft(e){Pt(U,e)}function It(e,t={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Lt(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function Rt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Ut(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&pt()}),navigator.connection?.saveData||Nt(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ce(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=we(n,S,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=k(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){jt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,ze(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(A(r,S,!1))return;let i=e.target,a=k(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Vt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=I[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=W.url?m(location)===m(W.url):!1;if(o===J&&(rt||s)){i!==M.state&&(M.state=i),e(a),I[q]=D(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Re.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&R.navigating.set(N.current=null)});function e(e){W.url=M.url=e,R.page.set(Wt(M)),R.page.notify()}}async function zt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){et=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=He.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Bt(r.uses)),yt({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:St(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await vt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await z(new URL(t.location,location.href));f=await Dt({status:je(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await _t(f,e,p))}function Bt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Vt=!1;function Ht(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Kt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;Vt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Vt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Ut(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Wt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Gt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Kt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{N as a,Oe as c,R as i,he as l,It as n,M as o,lt as r,P as s,Ft as t};
@@ -1 +0,0 @@
1
- import{c as e,r as t}from"../chunks/Dtda93q6.js";export{e as load_css,t as start};
@@ -1 +0,0 @@
1
- �(�import{c as e,r as t}from"../chunks/Dtda93q6.js";export{e as load_css,t as start};
@@ -1 +0,0 @@
1
- import{$ as e,A as t,D as n,I as r,K as i,L as a,M as o,N as s,P as c,Q as l,R as u,V as d,X as f,Z as p,b as m,dt as h,et as g,f as _,g as v,h as y,j as b,l as x,lt as S,nt as C,ot as w,p as T,q as E,rt as D,s as O,st as k,tt as A,ut as j,w as M,z as N}from"../chunks/Z8rcWjXZ.js";import{l as P,n as F,t as I}from"../chunks/Dtda93q6.js";import"../chunks/xihTtKlq.js";import{t as L}from"../chunks/Br86nTYk.js";import{H as R,O as z,Q as ee,Y as te,Z as B,d as ne,et as re,h as ie,it as ae,l as oe,m as se,nt as ce,o as le,ot as ue,q as de,r as fe,t as V}from"../chunks/lw3KP4og.js";import{_ as pe,c as me,d as he,f as H,i as ge,l as _e,m as ve,n as ye,p as U,r as be,t as xe,u as Se,v as Ce}from"../chunks/DNjzOY31.js";import{a as we,t as Te}from"../chunks/CrIZjnDr.js";import{t as Ee}from"../chunks/BmOjTxFk.js";function De(e,t){return!t.cameFromBrowser||t.blocked||e.defaultPrevented||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||e.key!==`Escape`?null:`back`}var Oe=`/`;function ke(e,t){return t.type===`enter`?!1:t.fromRouteId===Oe||t.type===`goto`&&e}function Ae(e,t,n){return n===t.revision?e??t:e}var je=class{#e=0;#t=null;#n;constructor(e){this.#n=e}bindAsset(e){e!==this.#t&&(this.#t=e,this.#e++,this.#n({status:`idle`}))}cancel(){this.#e++,this.#n({status:`idle`})}async open(e,t,n){this.bindAsset(e);let r=++this.#e;this.#n({status:`opening`,assetId:e,referenceId:t});try{await n(),r===this.#e&&e===this.#t&&this.#n({status:`idle`})}catch(t){r===this.#e&&e===this.#t&&this.#n({status:`failed`,assetId:e,error:t instanceof Error?t.message:String(t)})}}};function Me(e){return e.references.map(t=>({reference:t,roots:e.roots.filter(e=>e.result.status===`resolved`&&e.result.referenceIds.includes(t.id))}))}function Ne(e,t){return[...e].reverse().map((e,n,r)=>n===r.length-1?`${t}.${e}`:e).join(` <- `)}function Pe(e,t=2){let n=[...new Set(e.roots.flatMap(e=>e.paths.map(t=>Ne(t,e.manifest))))],r=Math.max(0,t),i=e.roots.reduce((e,t)=>e+BigInt(t.additionalPathCount??`0`),0n);return{visible:n.slice(0,r),additionalCount:BigInt(Math.max(0,n.length-r))+i}}function W(e,t=3){let n=e.replaceAll(`\\`,`/`),r=n.split(`/`).filter(Boolean);return r.length<=t?n:`…/${r.slice(-t).join(`/`)}`}var G=c(`<button type="button" class="control usages-trigger svelte-13vzy7a" aria-haspopup="dialog"> <svg viewBox="0 0 12 12" aria-hidden="true"><path d="m3 4.5 3 3 3-3"></path></svg></button>`),Fe=c(`<small class="svelte-13vzy7a"> </small>`),Ie=c(`<span class="reference-paths svelte-13vzy7a"> </span>`),Le=c(`<button type="button" class="usage-reference svelte-13vzy7a"><span class="reference-location svelte-13vzy7a"><span class="reference-file svelte-13vzy7a"> </span> <span class="reference-position svelte-13vzy7a"> </span></span> <!> <!></button>`),K=c(`<div class="usage-popover svelte-13vzy7a"><div class="popover-heading svelte-13vzy7a"><span class="svelte-13vzy7a">Code usages</span> <span class="svelte-13vzy7a"> </span></div> <div class="usage-list svelte-13vzy7a"></div></div>`),Re=c(`<p class="hint svelte-13vzy7a">Not reachable from a generated manifest member.</p>`),ze=c(`<p class="hint svelte-13vzy7a">Referenced from project code.</p>`),Be=c(`<p class="hint svelte-13vzy7a">No code references found.</p>`),Ve=c(`<p class="hint error svelte-13vzy7a"> </p>`),q=c(`<p class="hint error svelte-13vzy7a" role="alert"> </p>`),He=c(`<div class="usage-header svelte-13vzy7a"><div class="usage-status svelte-13vzy7a"><span></span> <span> </span></div> <div class="usage-actions svelte-13vzy7a"><!> <button type="button" class="control svelte-13vzy7a"> </button></div></div> <!> <!>`,1);function Ue(r,a){k(a,!0);let s=C(!1),c=D(()=>Me(a.usage)),f=D(()=>[...new Set(a.usage.roots.flatMap(e=>e.result.status===`unknown`?[e.result.reason??`Usage could not be resolved.`]:[]))]);function g(e){A(s,!1),a.onOpen(e)}var _=He(),v=l(_),y=p(v),x=p(y);let S;var E=e(x,2),O=p(E,!0);h(E),h(y);var j=e(y,2),M=p(j),N=r=>{Ee(r,{align:`right`,portal:!0,get label(){return`Code usages for ${a.usage.assetId??``}`},get open(){return d(s)},set open(e){A(s,e,!0)},trigger:(t,n)=>{let r=()=>(n?.()).toggle,s=()=>(n?.()).open;var c=G(),l=p(c),d=e(l);let f;h(c),i(()=>{T(c,`aria-expanded`,s()),b(l,`${a.usage.references.length??``} usage${a.usage.references.length===1?``:`s`} `),f=m(d,0,`chevron svelte-13vzy7a`,null,f,{open:s()})}),u(`click`,c,function(...e){r()?.apply(this,e)}),o(t,c)},children:(r,s)=>{var l=K(),f=p(l),m=e(p(f),2),_=p(m,!0);h(m),h(f);var v=e(f,2);n(v,21,()=>d(c),e=>e.reference.id,(n,r)=>{let s=D(()=>d(r).reference),c=D(()=>Pe(d(r)));var l=Le(),f=p(l),m=p(f),_=p(m,!0);h(m);var v=e(m,2),y=p(v);h(v),h(f);var x=e(f,2),S=e=>{var t=Fe(),n=p(t,!0);h(t),i(()=>b(n,d(s).label)),o(e,t)};t(x,e=>{d(s).label&&e(S)});var C=e(x,2),w=e=>{var t=Ie(),n=p(t);h(t),i(e=>b(n,`${e??``}${d(c).additionalCount>0n?` · +${d(c).additionalCount} more`:``}`),[()=>d(c).visible.join(` · `)]),o(e,t)};t(C,e=>{d(c).visible.length>0&&e(w)}),h(l),i(e=>{l.disabled=a.openState.status===`opening`,T(l,`title`,d(s).file),T(l,`aria-label`,`Open ${d(s).file} at line ${d(s).line}, column ${d(s).column}`),b(_,e),b(y,`${d(s).line??``}:${d(s).column??``}`)},[()=>W(d(s).file)]),u(`click`,l,()=>g(d(s))),o(n,l)}),h(v),h(l),i(()=>b(_,a.usage.references.length)),o(r,l)},$$slots:{trigger:!0,default:!0}})};t(M,e=>{a.usage.references.length>0&&e(N)});var P=e(M,2),F=p(P,!0);h(P),h(j),h(v);var I=e(v,2),L=e=>{o(e,Re())},R=e=>{o(e,ze())},z=e=>{o(e,Be())},ee=e=>{var t=Ve(),n=p(t,!0);h(t),i(()=>b(n,d(f)[0])),o(e,t)};t(I,e=>{a.usage.roots.length===0?e(L):a.usage.status===`used`?e(R,1):a.usage.status===`unused`?e(z,2):d(f).length>0&&e(ee,3)});var te=e(I,2),B=e=>{var t=q(),n=p(t);h(t),i(()=>b(n,`${a.openState.error??``} Refresh usage and try again.`)),o(e,t)};t(te,e=>{a.openState.status===`failed`&&e(B)}),i(()=>{S=m(x,1,`status-dot svelte-13vzy7a`,null,S,{used:a.usage.status===`used`,unknown:a.usage.status===`unknown`}),b(O,a.usage.status===`used`?`Used`:a.usage.status===`unused`?`Unused`:`Unknown`),P.disabled=a.refreshing,T(P,`aria-busy`,a.refreshing),b(F,a.usage.status===`unknown`?`Retry`:`Refresh`)}),u(`click`,P,function(...e){a.onRefresh?.apply(this,e)}),o(r,_),w()}a([`click`]);var We=c(`<p class="hint error refresh-error svelte-1xvalv3" role="alert"> </p>`),Ge=c(`<!> <!>`,1),Ke=c(`<p class="hint svelte-1xvalv3" role="status">Analyzing asset usage…</p>`),qe=c(`<p class="hint error svelte-1xvalv3" role="alert"> </p> <button class="control">Retry</button>`,1),Je=c(`<section class="usage-section svelte-1xvalv3"><!> <!></section>`);function Ye(n,a){k(a,!0);let c=C(g({status:`idle`})),f=new Ce(e=>A(c,e,!0)),m=C(g({status:`idle`})),_=new je(e=>A(m,e,!0)),v=V.usageRefreshRevision,y=D(()=>d(c).status===`resolved`||d(c).status===`refreshing`||d(c).status===`failed`?d(c).value?.assets[0]??null:null);E(()=>{if(_.bindAsset(a.assetId),!a.available||!a.assetId){f.cancel(),_.cancel();return}return f.run(()=>de({assetId:a.assetId})),()=>{f.cancel(),_.cancel()}}),E(()=>{let e=V.usageRefreshRevision;e!==v&&(v=e,a.available&&a.assetId&&x())});function x(){_.cancel(),f.run(()=>de({assetId:a.assetId,forceFresh:!0}),{retainResult:!0})}async function S(e,t){await _.open(a.assetId,e,()=>B(t))}var T=s(),O=l(T),M=n=>{var a=Je(),s=p(a);H(s,{children:(e,t)=>{j(),o(e,r(`Usage`))},$$slots:{default:!0}});var f=e(s,2),g=n=>{var r=Ge(),a=l(r);{let e=D(()=>d(c).status===`refreshing`);Ue(a,{get usage(){return d(y)},get openState(){return d(m)},get refreshing(){return d(e)},onRefresh:x,onOpen:e=>void S(e.id,e.openToken)})}var s=e(a,2),u=e=>{var t=We(),n=p(t,!0);h(t),i(()=>b(n,d(c).error)),o(e,t)};t(s,e=>{d(c).status===`failed`&&e(u)}),o(n,r)},_=e=>{o(e,Ke())},v=t=>{var n=qe(),r=l(n),a=p(r,!0);h(r);var s=e(r,2);i(()=>b(a,d(c).error)),u(`click`,s,x),o(t,n)};t(f,e=>{d(y)?e(g):d(c).status===`idle`||d(c).status===`loading`?e(_,1):d(c).status===`failed`&&e(v,2)}),h(a),o(n,a)};t(O,e=>{a.available&&e(M)}),o(n,T),w()}a([`click`]);var Xe=c(`<div class="center empty svelte-xy8zsr">Loading…</div>`),Ze=c(`<div class="center empty svelte-xy8zsr"> </div>`),Qe=c(`<div class="empty svelte-xy8zsr"> </div>`),$e=c(`<p class="warning svelte-xy8zsr"> </p>`),et=c(`<a class="duplicate-row svelte-xy8zsr"><img alt="" class="svelte-xy8zsr"/> <span class="svelte-xy8zsr"> </span></a>`),tt=c(`<div class="duplicate-warning svelte-xy8zsr"><strong class="svelte-xy8zsr"> </strong> <!></div>`),nt=c(`<p class="hint error svelte-xy8zsr"> </p>`),rt=c(`<section class="svelte-xy8zsr"><!> <p class="hint source-label svelte-xy8zsr"> </p> <label class="source-field svelte-xy8zsr"><span>Tag</span> <input class="control svelte-xy8zsr" type="text" spellcheck="false"/></label> <!> <label class="source-field svelte-xy8zsr"><span>File key</span> <input class="control svelte-xy8zsr" type="text" spellcheck="false"/></label> <!> <label class="source-field svelte-xy8zsr"><span>Export scale</span> <select class="control svelte-xy8zsr"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label> <div class="source-actions svelte-xy8zsr"><a class="control svelte-xy8zsr" target="_blank" rel="noreferrer">Open in Figma</a> <button> </button></div> <!></section>`),it=c(`<section class="svelte-xy8zsr"><!> <p class="hint source-label svelte-xy8zsr"> </p> <label class="source-field svelte-xy8zsr"><span>Selection link</span> <input class="control svelte-xy8zsr" type="url"/></label> <label class="source-field svelte-xy8zsr"><span>Export scale</span> <select class="control svelte-xy8zsr"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label> <div class="source-actions svelte-xy8zsr"><a class="control svelte-xy8zsr" target="_blank" rel="noreferrer">Open in Figma</a> <button> </button></div> <!></section>`),at=c(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),ot=c(`<p class="hint svelte-xy8zsr">No references.</p>`),st=c(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),ct=c(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),lt=c(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),ut=c(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),dt=c(`<!> <!>`,1),ft=c(`<button type="button" class="control replace-raw svelte-xy8zsr" aria-haspopup="dialog"><span> </span> <!></button>`),pt=c(`<div class="replace-picker svelte-xy8zsr"><!></div>`),mt=c(`<button class="control replace-raw svelte-xy8zsr"> </button>`),ht=c(`<div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!>`,1),gt=c(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!> <!></section> <!> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <!> <section class="svelte-xy8zsr"><!> <!> <!> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),_t=c(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!> <!> <!>`,1);function vt(a,c){k(c,!0);let g=D(()=>L.params.id??``),B=D(()=>V.assetById(d(g))),de=D(()=>d(B)?d(B).duplicateIds.flatMap(e=>{let t=V.assetById(e);return t?[t]:[]}):[]),Ce=D(()=>V.manifestNames),Oe=D(()=>d(B)?V.state?.presetNames[d(B).type]??[]:[]),je=D(()=>d(B)?V.state?.presetCapabilities[d(B).type]??{}:{}),Me=D(()=>d(B)?he[d(B).type]??null:null),Ne=D(()=>d(Me)?.panel??null),Pe=D(()=>d(Me)?.editor??null),W=D(()=>{if(d(B)?.importSource?.importer!==`figma`)return null;let e=d(B).importSource.parameters;if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e;return typeof t.fileKey!=`string`||typeof t.nodeId!=`string`||!/^\d+:\d+$/.test(t.nodeId)||t.scale!==1&&t.scale!==2&&t.scale!==3&&t.scale!==4?null:{fileKey:t.fileKey,nodeId:t.nodeId,scale:t.scale,url:`https://www.figma.com/design/${encodeURIComponent(t.fileKey)}/fundus?node-id=${t.nodeId.replace(`:`,`-`)}`}}),G=D(()=>d(B)?be(d(B)):!1),Fe=D(()=>{if(!d(B)||!be(d(B)))return null;let e=d(B).importSource?.parameters??null;return typeof e?.fundusTag==`string`?e.fundusTag:null}),Ie=C(!1);I(e=>{A(Ie,ke(d(Ie),{type:e.type,fromRouteId:e.from?.route?.id}),!0)});function Le(e){let t=e.target,n=t instanceof Element&&t.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="menu"], [role="dialog"]`)!==null||document.querySelector(`[role="dialog"]`)!==null;De(e,{cameFromBrowser:d(Ie),blocked:n})!==null&&(e.preventDefault(),history.back())}let K=C(null),Re=0,ze=D(()=>d(B)?d(K)&&d(K).assetId===d(B).id?d(K).value:S(d(B)).parameters:null);function Be(e){d(B)&&A(K,{assetId:d(B).id,value:e,revision:++Re},!0)}let Ve=null,q=C(null),He=C(null),Ue=0,We=C(null),Ge=0,Ke=C(null),qe=0,Je=C(null),vt=C(null),yt=C(``),bt=C(void 0),xt=C(void 0),St=C(!1),Ct=C(null),J=C(null),wt=C(null),Y=C(null),X=C(null),Tt=C(null),Et=C(``),Z=C(2),Q=C(``),Dt=C(``),Ot=D(()=>d(W)!==null&&(d(Et).trim()!==d(W).url||d(Z)!==d(W).scale)),kt=D(()=>!d(B)||!d(G)?null:z(d(Q))??(d(Q)!==d(B).id&&V.assetById(d(Q))?`An asset with this ID already exists.`:null)),At=D(()=>_e(d(Dt))),jt=D(()=>`error`in d(At)?d(At).error:null),Mt=D(()=>`key`in d(At)?d(At).key:``),Nt=D(()=>d(jt)!==null||d(Mt).trim()===``),Pt=D(()=>d(G)&&d(W)!==null&&d(B)!==null&&(d(Q)!==d(B).id||d(Mt)!==d(W).fileKey||d(Z)!==d(W).scale));E(()=>{let e=d(W),t=d(B)&&e?`${d(B).id}|${e.fileKey}|${e.nodeId}|${e.scale}`:null;t!==d(Tt)&&(A(Tt,t,!0),A(Et,e?.url??``,!0),A(Z,e?.scale??2,!0),A(Q,d(Fe)??d(B)?.id??``,!0),A(Dt,e?.fileKey??``,!0),A(X,null))});let Ft=se().join(`,`),It=D(()=>d(B)?ie(d(B).type).join(`,`):``),Lt=D(()=>d(B)?.type===`image`||d(B)?.type===`slice`),Rt=C(null),$=D(()=>d(B)&&d(Rt)?.assetId===d(B).id?d(Rt).value:d(B)?.id??``),zt=D(()=>d(B)&&d($)!==d(B).id?z(d($))??(V.assetById(d($))?`An asset with this ID already exists.`:null):null);async function Bt(e){if(!d(B))return;let t=d(B).id,n=V.state?fe(V.state,t,e):[`asset:${t}`];Be(e);let r=d(K),i=V.mutate(()=>ee(t,{parameters:e}),ne(t,{parameters:e}),{dependencies:n});d(K)?.revision===r.revision&&A(K,null);try{await i}catch{A(K,Ae(d(K),r,Re),!0)}}async function Vt(e){if(!d(B))return;let t=d(B).id,n=d(B).manifests.includes(e)?d(B).manifests.filter(t=>t!==e):[...d(B).manifests,e];try{await V.mutate(()=>ee(t,{manifests:n}),ne(t,{manifests:n}),{dependencies:[`asset:${t}`,...[...new Set([...n,e])].map(e=>`manifest:${e}`)]})}catch{}}async function Ht(){if(!d(B)||d($)===d(B).id||d(zt))return;let e=d(B).id,t=d($),n=V.mutate(()=>ee(e,{renameTo:t}),ne(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});A(Rt,null);let r=d(g)===e?F(P(`/asset/[id]`,{id:t}),{replaceState:!0}):Promise.resolve();try{await Promise.all([n,r])}catch{d(g)===t&&V.assetById(e)&&await F(P(`/asset/[id]`,{id:e}),{replaceState:!0})}}async function Ut(){if(!d(B))return;let e=d(B).id,t=d(B).folder;if(!confirm(`Delete "${e}"? The raw file and its proxies are removed.`))return;let n=V.mutate(()=>R(e),le([e]),{dependencies:[`asset:${e}`],invalidatesOnFailure:[`asset:${e}`]}),r=d(g)===e?U.begin():null;Ve=null;let i=r===null?Promise.resolve():F(Gt(t));try{await Promise.all([n,i])}catch{r!==null&&U.isCurrent(r)&&L.url.pathname===P(`/`)&&V.assetById(e)&&await F(P(`/asset/[id]`,{id:e}))}}async function Wt(e,t){let n=U.begin();Ve=t?{assetId:t,intent:n}:null,await F(Gt(e))}function Gt(e){let t=new URL(P(`/`),L.url);return t.search=``,pe(t,{...ve,folder:e})}async function Kt(e){let t=Ve;t?.assetId!==e||!U.isCurrent(t.intent)||L.url.pathname!==P(`/`)||!V.assetById(e)||(Ve=null,await F(P(`/asset/[id]`,{id:e})))}async function qt(e){await Wt(e,d(g))}async function Jt(e,t){let n=e.filter(e=>V.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=V.assetById(e)?.folder;return t===void 0?[]:[t]})])];try{await V.mutate(()=>te(n,t),oe(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]})}catch{}}function Yt(e){Ue+=1,A(He,{id:Ue,parent:e},!0)}function Xt(e){Ge+=1,A(We,{id:Ge,path:e},!0)}function Zt(e){qe+=1,A(Ke,{id:qe,path:e},!0)}function Qt(e){A(yt,e,!0),d(bt)?.click()}function $t(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&A(Je,n,!0)}async function en(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!d(B))return;let r=d(B).id;A(J,r,!0),A(wt,null);try{await V.mutateFromServer(()=>ce(r,n),{dependencies:[`asset:${r}`]})}catch(e){A(wt,{assetId:r,message:e instanceof Error?e.message:String(e)},!0)}finally{d(J)===r&&A(J,null)}}function tn(){d(B)&&(d(B).importSource&&!confirm(`Replace file and disconnect Figma source? Future re-imports will no longer be available.`)||d(xt)?.click())}function nn(){!d(B)||d(B).type!==`image`&&d(B).type!==`slice`||(A(wt,null),A(Ct,{id:d(B).id,type:d(B).type},!0))}function rn(){A(Ct,null)}async function an(){if(!d(B)||!d(W))return;let e=d(B).id,t=d(Et).trim();if(t.length===0){A(X,{assetId:e,message:`Enter a Figma selection link.`},!0);return}A(Y,e,!0),A(X,null);let n=d(Ot)?{url:t,scale:d(Z)}:void 0;try{await V.mutateFromServer(()=>re(e,n),{dependencies:[`asset:${e}`]}),A(Tt,null)}catch(t){A(X,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{d(Y)===e&&A(Y,null)}}async function on(){if(!d(B)||!d(W)||!d(G)||d(kt)!==null||d(Nt))return;let e=d(B).id,t=d(Q),n=d(Mt),r=d(Z),i=t!==e;A(Y,e,!0),A(X,null);try{await V.mutateFromServer(()=>ae(e,{tag:t,fileKey:n,scale:r}),{dependencies:i?[`asset:${e}`,`asset:${t}`]:[`asset:${e}`]}),A(Tt,null),i&&d(g)===e&&await F(P(`/asset/[id]`,{id:t}),{replaceState:!0})}catch(t){A(X,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{d(Y)===e&&A(Y,null)}}async function sn(e){A(Je,null),A(vt,null),await F(P(`/asset/[id]`,{id:e}))}async function cn(e){try{await ue(e),V.error=null}catch(e){V.error=e instanceof Error?e.message:String(e)}}var ln=_t();N(`keydown`,f,Le);var un=l(ln),dn=p(un);{let e=D(()=>d(B)?.folder??null);ge(dn,{get selectedFolder(){return d(e)},get activeAsset(){return d(B)},get createRequest(){return d(He)},get renameRequest(){return d(We)},get deleteRequest(){return d(Ke)},onSelect:e=>void Wt(e),onMoveAssets:(e,t)=>void Jt(e,t),onActiveAssetDeleted:e=>void qt(e),onActiveAssetDeleteFailed:e=>void Kt(e),onContextMenu:(e,t,n,r)=>{A(q,{x:e,y:t,parent:n,renamePath:r},!0)}})}var fn=e(dn,2),pn=e=>{o(e,Xe())},mn=e=>{var t=Ze(),n=p(t);h(t),i(()=>b(n,`No asset with id "${d(g)??``}".`)),o(e,t)},hn=a=>{var c=gt(),f=l(c),g=p(f),S=e=>{var t=s();M(l(t),()=>d(Pe),(e,t)=>{t(e,{get asset(){return d(B)},get parameters(){return d(ze)},onParametersChange:Be,onParametersCommit:e=>void Bt(e)})}),o(e,t)},C=e=>{var t=Qe(),n=p(t);h(t),i(()=>b(n,`No editor registered for asset type "${d(B).type??``}".`)),o(e,t)};t(g,e=>{d(Pe)&&d(ze)!==null?e(S):e(C,-1)}),h(f);var w=e(f,2),E=p(w),O=p(E),k=p(O,!0);h(O);var N=e(O,2),F=p(N),I=e(F),L=p(I,!0);h(I),h(N);var R=e(N,2);n(R,16,()=>d(B).warnings,e=>e,(e,t)=>{var n=$e(),r=p(n);h(n),i(()=>b(r,`⚠ ${t??``}`)),o(e,n)});var z=e(R,2),ee=t=>{var r=tt(),a=p(r),s=p(a);h(a),n(e(a,2),17,()=>d(de),e=>e.id,(t,n)=>{var r=et(),a=p(r),s=e(a,2),c=p(s,!0);h(s),h(r),i(e=>{T(r,`href`,e),T(a,`src`,d(n).proxy?.url??d(n).rawUrl),b(c,d(n).id)},[()=>P(`/asset/[id]`,{id:d(n).id})]),o(t,r)}),h(r),i(()=>b(s,`Potential duplicate${d(de).length===1?``:`s`}`)),o(t,r)};t(z,e=>{d(de).length>0&&e(ee)}),h(E);var te=e(E,2),ne=e=>{var t=s();M(l(t),()=>d(Ne),(e,t)=>{t(e,{get asset(){return d(B)},get parameters(){return d(ze)},onParametersChange:e=>Be(e),onParametersCommit:e=>void Bt(e),get presetNames(){return d(Oe)},get presetCapabilities(){return d(je)}})}),o(e,t)};t(te,e=>{d(Ne)&&d(ze)!==null&&e(ne)});var re=e(te,2),ie=n=>{var a=rt(),s=p(a);H(s,{children:(e,t)=>{j(),o(e,r(`Source`))},$$slots:{default:!0}});var c=e(s,2),l=p(c);h(c);var f=e(c,2),g=e(p(f),2);_(g),h(f);var y=e(f,2),S=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(kt))),o(e,t)};t(y,e=>{d(kt)&&e(S)});var C=e(y,2),w=e(p(C),2);_(w),h(C);var E=e(C,2),D=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(jt))),o(e,t)};t(E,e=>{d(jt)&&e(D)});var O=e(E,2),k=e(p(O),2),M=p(k);M.value=M.__value=1;var N=e(M);N.value=N.__value=2;var P=e(N);P.value=P.__value=3;var F=e(P);F.value=F.__value=4,h(k),h(O);var I=e(O,2),L=p(I),R=e(L,2);let z;var ee=p(R,!0);h(R),h(I);var te=e(I,2),ne=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(X).message)),o(e,t)};t(te,e=>{d(X)?.assetId===d(B).id&&e(ne)}),h(a),i(()=>{b(l,`Figma tag · node ${d(W).nodeId??``}`),g.disabled=d(Y)===d(B).id,T(w,`placeholder`,d(W).fileKey),w.disabled=d(Y)===d(B).id,k.disabled=d(Y)===d(B).id,T(L,`href`,d(W).url),z=m(R,1,`control svelte-xy8zsr`,null,z,{primary:d(Pt)}),R.disabled=d(Y)===d(B).id||d(kt)!==null||d(Nt),b(ee,d(Y)===d(B).id?d(Pt)?`Reimporting…`:`Refreshing…`:d(Pt)?`Reimport`:`Refresh`)}),x(g,()=>d(Q),e=>A(Q,e)),x(w,()=>d(Dt),e=>A(Dt,e)),v(k,()=>d(Z),e=>A(Z,e)),u(`click`,R,()=>void on()),o(n,a)},ae=n=>{var a=it(),s=p(a);H(s,{children:(e,t)=>{j(),o(e,r(`Source`))},$$slots:{default:!0}});var c=e(s,2),l=p(c);h(c);var f=e(c,2),g=e(p(f),2);_(g),h(f);var y=e(f,2),S=e(p(y),2),C=p(S);C.value=C.__value=1;var w=e(C);w.value=w.__value=2;var E=e(w);E.value=E.__value=3;var D=e(E);D.value=D.__value=4,h(S),h(y);var O=e(y,2),k=p(O),M=e(k,2);let N;var P=p(M,!0);h(M),h(O);var F=e(O,2),I=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(X).message)),o(e,t)};t(F,e=>{d(X)?.assetId===d(B).id&&e(I)}),h(a),i(e=>{b(l,`Figma · node ${d(W).nodeId??``}`),g.disabled=d(Y)===d(B).id,S.disabled=d(Y)===d(B).id,T(k,`href`,d(W).url),N=m(M,1,`control svelte-xy8zsr`,null,N,{primary:d(Ot)}),M.disabled=e,b(P,d(Y)===d(B).id?d(Ot)?`Reimporting…`:`Refreshing…`:d(Ot)?`Reimport`:`Refresh`)},[()=>d(Y)===d(B).id||d(Et).trim().length===0]),x(g,()=>d(Et),e=>A(Et,e)),v(S,()=>d(Z),e=>A(Z,e)),u(`click`,M,()=>void an()),o(n,a)};t(re,e=>{d(W)&&d(G)?e(ie):d(W)&&e(ae,1)});var oe=e(re,2),se=p(oe);H(se,{children:(e,t)=>{j(),o(e,r(`Manifests`))},$$slots:{default:!0}});var ce=e(se,2),le=e=>{o(e,at())},ue=e=>{Te(e,{get manifests(){return d(Ce)},get selected(){return d(B).manifests},get passive(){return d(B).passiveManifests},onToggle:e=>void Vt(e)})};t(ce,e=>{d(Ce).length===0?e(le):e(ue,-1)}),h(oe);var fe=e(oe,2),pe=p(fe);H(pe,{children:(e,t)=>{j(),o(e,r(`References`))},$$slots:{default:!0}});var me=e(pe,2),he=e=>{o(e,ot())},ge=r=>{var a=dt(),s=l(a),c=t=>{var r=ct();n(e(l(r),2),17,()=>d(B).references.outgoing,e=>`${e.field}→${e.assetId}`,(t,n)=>{var r=st(),a=p(r),s=p(a,!0);h(a);var c=e(a,4),l=p(c,!0);h(c),h(r),i(e=>{T(r,`href`,e),b(s,d(n).field),b(l,d(n).assetId)},[()=>P(`/asset/[id]`,{id:d(n).assetId})]),o(t,r)}),o(t,r)};t(s,e=>{d(B).references.outgoing.length>0&&e(c)});var u=e(s,2),f=t=>{var r=ut();n(e(l(r),2),17,()=>d(B).references.incoming,e=>`${e.assetId}→${e.field}`,(t,n)=>{var r=lt(),a=p(r),s=p(a,!0);h(a);var c=e(a,4),l=p(c,!0);h(c),h(r),i(e=>{T(r,`href`,e),b(s,d(n).assetId),b(l,d(n).field)},[()=>P(`/asset/[id]`,{id:d(n).assetId})]),o(t,r)}),o(t,r)};t(u,e=>{d(B).references.incoming.length>0&&e(f)}),o(r,a)};t(me,e=>{d(B).references.outgoing.length===0&&d(B).references.incoming.length===0?e(he):e(ge,-1)}),h(fe);var _e=e(fe,2);{let e=D(()=>V.usageAvailable===!0);Ye(_e,{get available(){return d(e)},get assetId(){return d(B).id}})}var ve=e(_e,2),ye=p(ve);H(ye,{children:(e,t)=>{j(),o(e,r(`Asset`))},$$slots:{default:!0}});var U=e(ye,2),be=t=>{var n=pt(),r=p(n);{let t=(t,n)=>{let r=()=>(n?.()).toggle,a=()=>(n?.()).open;var s=ft(),c=p(s),l=p(c,!0);h(c),we(e(c,2),{name:`chevron-down`,size:12}),h(s),i(()=>{T(s,`aria-expanded`,a()),s.disabled=d(J)===d(B).id,b(l,d(J)===d(B).id?`Replacing…`:`Replace`)}),u(`click`,s,function(...e){r()?.apply(this,e)}),o(t,s)},n=D(()=>`Replace ${d(B).id}`);Ee(r,{align:`left`,portal:!0,matchTriggerWidth:!0,padding:`compact`,get label(){return d(n)},get open(){return d(St)},set open(e){A(St,e,!0)},trigger:t,children:(e,t)=>{xe(e,{fileDescription:`Choose a replacement from your computer`,figmaDescription:`Replace with a frame or component by URL`,onFile:()=>{A(St,!1),tn()},onFigma:()=>{A(St,!1),nn()}})},$$slots:{trigger:!0,default:!0}})}h(n),o(t,n)},Se=e=>{var t=mt(),n=p(t,!0);h(t),i(()=>{t.disabled=d(J)===d(B).id,b(n,d(J)===d(B).id?`Replacing…`:`Replace`)}),u(`click`,t,tn),o(e,t)};t(U,e=>{d(Lt)?e(be):e(Se,-1)});var De=e(U,2),ke=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(wt).message)),o(e,t)};t(De,e=>{d(wt)?.assetId===d(B).id&&e(ke)});var Ae=e(De,2),Me=n=>{var r=ht(),a=l(r),s=p(a);_(s);var c=e(s,2);h(a);var f=e(a,2),m=e=>{var t=nt(),n=p(t,!0);h(t),i(()=>b(n,d(zt))),o(e,t)};t(f,e=>{d(zt)&&e(m)}),i(()=>{y(s,d($)),c.disabled=d($)===d(B).id||d(zt)!==null}),u(`input`,s,e=>A(Rt,{assetId:d(B).id,value:e.currentTarget.value},!0)),u(`click`,c,()=>void Ht()),o(n,r)};t(Ae,e=>{d(G)||e(Me)});var Fe=e(Ae,2);h(ve),h(w),i(()=>{b(k,d(B).id),b(F,`${d(B).type??``} · `),b(L,d(B).raw)}),u(`click`,Fe,()=>void Ut()),o(a,c)};t(fn,e=>{V.loaded?d(B)?e(hn,-1):e(mn,1):e(pn)}),h(un);var gn=e(un,2);O(gn,e=>A(bt,e),()=>d(bt));var _n=e(gn,2);O(_n,e=>A(xt,e),()=>d(xt));var vn=e(_n,2),yn=e=>{{let t=D(()=>d(q).renamePath===null?void 0:()=>Xt(d(q)?.renamePath??``)),n=D(()=>d(q).renamePath===null?void 0:()=>Zt(d(q)?.renamePath??``));ye(e,{get x(){return d(q).x},get y(){return d(q).y},onReveal:()=>void cn(d(q)?.renamePath??d(q)?.parent??``),onNewDirectory:()=>Yt(d(q)?.parent??``),get onRenameDirectory(){return d(t)},onImportFile:()=>Qt(d(q)?.parent??``),onImportFigma:()=>A(vt,d(q)?.parent??``,!0),get onDeleteDirectory(){return d(n)},onClose:()=>A(q,null)})}};t(vn,e=>{d(q)&&e(yn)});var bn=e(vn,2),xn=e=>{Se(e,{get file(){return d(Je)},get folder(){return d(yt)},onDone:e=>void sn(e),onCancel:()=>A(Je,null)})};t(bn,e=>{d(Je)&&e(xn)});var Sn=e(bn,2),Cn=e=>{me(e,{get folder(){return d(vt)},onDone:e=>void sn(e),onCancel:()=>A(vt,null)})};t(Sn,e=>{d(vt)!==null&&e(Cn)});var wn=e(Sn,2),Tn=e=>{me(e,{get replacement(){return d(Ct)},onDone:rn,onCancel:()=>A(Ct,null)})};t(wn,e=>{d(Ct)&&e(Tn)}),i(()=>{T(gn,`accept`,Ft),T(_n,`accept`,d(It))}),u(`change`,gn,$t),u(`change`,_n,e=>void en(e)),o(a,ln),w()}a([`click`,`input`,`change`]);export{vt as component};