@hiai-gg/docsmint 0.3.7 → 0.3.9

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 (210) hide show
  1. package/backend/src/lib/logger.ts +45 -15
  2. package/dist/backend/index.js +238 -150
  3. package/dist/client.d.ts +11 -0
  4. package/dist/client.js +9 -0
  5. package/dist/frontend/CategoryDialog-CxVyaBV5.js +611 -0
  6. package/dist/frontend/ConfirmDialog-NFGXRa3E.js +214 -0
  7. package/dist/frontend/CreateSnapshotDialog-BDgFTeFn.js +216 -0
  8. package/dist/frontend/DatePicker-BZRBluzF.js +256 -0
  9. package/dist/frontend/DeleteDialog-CvAr2WPu.js +174 -0
  10. package/dist/frontend/FolderNode-C6FJv99G.js +298 -0
  11. package/dist/frontend/FolderTreeSelector-CyB8y2Sm.js +103 -0
  12. package/dist/frontend/HiaiDocsExtensionProvider-DHWLzRUu.js +11 -0
  13. package/dist/frontend/Icon-CooFj4Ee.js +64 -0
  14. package/dist/frontend/SettingsDialog-BHh68rTB.js +1016 -0
  15. package/dist/frontend/ShareDialog-BUOkYSlw.js +165 -0
  16. package/dist/frontend/Sidebar-Cu3JrKDC.js +2021 -0
  17. package/dist/frontend/TagCreateDialog-B9YZBNHi.js +260 -0
  18. package/dist/frontend/api/settings.js +1 -1
  19. package/dist/frontend/app-shell.d.ts +8 -0
  20. package/dist/frontend/app-shell.js +291 -0
  21. package/dist/frontend/{bundle-mjs-CP6Owz-8.js → bundle-mjs-DllmqUxV.js} +583 -568
  22. package/dist/frontend/camera-iKXDOOWT.js +29 -0
  23. package/dist/frontend/check-D-UuvBuh.js +25 -0
  24. package/dist/frontend/chevron-down-CiPtYyFh.js +25 -0
  25. package/dist/frontend/circle-check-tSPE1V6t.js +29 -0
  26. package/dist/frontend/clock-DJHbHZb8.js +29 -0
  27. package/dist/frontend/components/category-dialog.js +1 -1
  28. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  29. package/dist/frontend/components/delete-dialog.js +1 -1
  30. package/dist/frontend/components/editor/document-editor.js +1367 -1356
  31. package/dist/frontend/components/editor/document-title.js +25 -25
  32. package/dist/frontend/components/editor/markdown-toggle.js +45 -45
  33. package/dist/frontend/components/folder-node.js +1 -1
  34. package/dist/frontend/components/folder-tree-selector.js +1 -1
  35. package/dist/frontend/components/save-as-dialog.js +169 -151
  36. package/dist/frontend/components/settings.js +1 -1
  37. package/dist/frontend/components/share-dialog.js +1 -1
  38. package/dist/frontend/components/sidebar.js +2 -2013
  39. package/dist/frontend/components/tag-create-dialog.js +1 -1
  40. package/dist/frontend/components/version-history.js +188 -187
  41. package/dist/frontend/confirm-dialog-C4jTRbiS.js +250 -0
  42. package/dist/frontend/copy-GppwRMjX.js +32 -0
  43. package/dist/frontend/dashboard.js +1187 -1155
  44. package/dist/frontend/dialog-Bevp9mmM.js +213 -0
  45. package/dist/frontend/{loader-circle-Bk-WFz9g.js → dist-C3857Spp.js} +93 -92
  46. package/dist/frontend/doc-tabs.js +2 -2
  47. package/dist/frontend/dropdown-menu-CRSby3e9.js +530 -0
  48. package/dist/frontend/extension.js +2 -11
  49. package/dist/frontend/{floating-layer-anchor-C51M4l6v.js → floating-layer-anchor-BDs7vO-M.js} +1414 -1412
  50. package/dist/frontend/folder-DeWhnD7O.js +45 -0
  51. package/dist/frontend/folder-refresh.js +1 -1
  52. package/dist/frontend/frontend.css +1 -1
  53. package/dist/frontend/i18n.js +2 -2
  54. package/dist/frontend/input-BWlOML_m.js +23 -0
  55. package/dist/frontend/keyboard.js +1 -1
  56. package/dist/frontend/{keyboard.svelte-D7H8DihC.js → keyboard.svelte-CApmX0vl.js} +53 -53
  57. package/dist/frontend/label-C2HfJNQ2.js +30 -0
  58. package/dist/frontend/{messages-BpYaLbzE.js → messages-C5Q890i2.js} +8 -8
  59. package/dist/frontend/rotate-ccw-B4Q7brmV.js +25 -0
  60. package/dist/frontend/search.js +673 -647
  61. package/dist/frontend/select-value-GXwx90Pr.js +1446 -0
  62. package/dist/frontend/{settings-blyobazp.js → settings-DSrUl4hW.js} +9 -9
  63. package/dist/frontend/shared-document.js +94 -94
  64. package/dist/frontend/subfolders-refresh-store.svelte-B2dKVmgz.js +65 -0
  65. package/dist/frontend/tag-HxRazVN_.js +54 -0
  66. package/dist/frontend/tag-store.svelte-CqrUXo0o.js +29 -0
  67. package/dist/frontend/textarea-DOAE-h42.js +23 -0
  68. package/dist/frontend/theme.js +1 -1
  69. package/dist/frontend/theme.svelte-DKfCy12k.js +49 -0
  70. package/dist/frontend/{utils-D8kmM3ub.js → utils-BPDRytUU.js} +2 -3
  71. package/dist/frontend/{utils-C0OW2678.js → utils-DrfHTcei.js} +2 -3
  72. package/dist/frontend/utils.js +1 -1
  73. package/dist/frontend/x-CzBsnJ2x.js +25 -0
  74. package/dist/frontend-ssr/api/attachments.js +2 -0
  75. package/dist/frontend-ssr/api/categories.js +2 -0
  76. package/dist/frontend-ssr/api/documents.js +2 -0
  77. package/dist/frontend-ssr/api/folders.js +2 -0
  78. package/dist/frontend-ssr/api/settings.js +2 -0
  79. package/dist/frontend-ssr/api/share.js +2 -0
  80. package/dist/frontend-ssr/api/tags.js +2 -0
  81. package/dist/frontend-ssr/app-shell.js +294 -0
  82. package/dist/frontend-ssr/assets/CategoryDialog-BcGW8-Kf.js +584 -0
  83. package/dist/frontend-ssr/assets/ConfirmDialog-DjMFKc0V.js +420 -0
  84. package/dist/frontend-ssr/assets/CreateSnapshotDialog-1bROJ-Rn.js +214 -0
  85. package/dist/frontend-ssr/assets/DatePicker-B1ML8OVz.js +312 -0
  86. package/dist/frontend-ssr/assets/DeleteDialog-tBYaP0L3.js +154 -0
  87. package/dist/frontend-ssr/assets/FolderNode-BZ0Q2QUS.js +171 -0
  88. package/dist/frontend-ssr/assets/FolderTreeSelector-DZNZ2oI6.js +147 -0
  89. package/dist/frontend-ssr/assets/HiaiDocsExtensionProvider-DAM-lX4R.js +13 -0
  90. package/dist/frontend-ssr/assets/Icon-B0Zqppjo.js +231 -0
  91. package/dist/frontend-ssr/assets/SettingsDialog-B8L_YqNA.js +1107 -0
  92. package/dist/frontend-ssr/assets/ShareDialog-vMvJLRfn.js +54 -0
  93. package/dist/frontend-ssr/assets/Sidebar-EHuUAx3W.js +2033 -0
  94. package/dist/frontend-ssr/assets/TagCreateDialog-B0DPEfmQ.js +264 -0
  95. package/dist/frontend-ssr/assets/api-keys-DFqX39MT.js +35 -0
  96. package/dist/frontend-ssr/assets/attachments-CWBxE3Vz.js +85 -0
  97. package/dist/frontend-ssr/assets/auth-client-x26kqY8Z.js +1286 -0
  98. package/dist/frontend-ssr/assets/camera-CdxscTw-.js +84 -0
  99. package/dist/frontend-ssr/assets/categories-AOqgcsn4.js +75 -0
  100. package/dist/frontend-ssr/assets/chevron-down-CSSNGNh_.js +80 -0
  101. package/dist/frontend-ssr/assets/chevron-right-B4p7Sk6X.js +80 -0
  102. package/dist/frontend-ssr/assets/circle-check-CI1v4vYh.js +84 -0
  103. package/dist/frontend-ssr/assets/client-DZMkDkDn.js +129 -0
  104. package/dist/frontend-ssr/assets/clipboard-CXOaoz2W.js +30 -0
  105. package/dist/frontend-ssr/assets/clock-IL-eX2di.js +84 -0
  106. package/dist/frontend-ssr/assets/confirm-dialog-BCthVwUY.js +429 -0
  107. package/dist/frontend-ssr/assets/context-jz1GGEUi.js +45 -0
  108. package/dist/frontend-ssr/assets/copy-CjV57nGQ.js +87 -0
  109. package/dist/frontend-ssr/assets/db-CnxeO66n.js +65 -0
  110. package/dist/frontend-ssr/assets/dialog-BOV1u6zP.js +157 -0
  111. package/dist/frontend-ssr/assets/dndzone-DMvTO_Jz.js +2114 -0
  112. package/dist/frontend-ssr/assets/document-drop-coordinator-CEaYACsC.js +109 -0
  113. package/dist/frontend-ssr/assets/documents-BnOTRdTY.js +108 -0
  114. package/dist/frontend-ssr/assets/dropdown-menu-Bj5rbqbB.js +555 -0
  115. package/dist/frontend-ssr/assets/editorExtensions-DUzwndMy.js +186 -0
  116. package/dist/frontend-ssr/assets/floating-layer-anchor-CYIE8Oj6.js +6114 -0
  117. package/dist/frontend-ssr/assets/folder-DChhG7qN.js +80 -0
  118. package/dist/frontend-ssr/assets/folders-CTfbS24J.js +127 -0
  119. package/dist/frontend-ssr/assets/identity-B3uHoDtf.js +99 -0
  120. package/dist/frontend-ssr/assets/input-DezGsU3y.js +19 -0
  121. package/dist/frontend-ssr/assets/keyboard.svelte-BgF47N3L.js +174 -0
  122. package/dist/frontend-ssr/assets/label-Bj8-TfFN.js +21 -0
  123. package/dist/frontend-ssr/assets/loader-circle-DZsrZ-er.js +80 -0
  124. package/dist/frontend-ssr/assets/markdown-CjqvGi5W.js +20 -0
  125. package/dist/frontend-ssr/assets/messages-CvqpZNJe.js +11125 -0
  126. package/dist/frontend-ssr/assets/resolve-BqHozBXl.js +32 -0
  127. package/dist/frontend-ssr/assets/rotate-ccw-BlgWwaiq.js +80 -0
  128. package/dist/frontend-ssr/assets/select-value-6Lk0ToYd.js +1526 -0
  129. package/dist/frontend-ssr/assets/settings-Bk5Hk9Vq.js +64 -0
  130. package/dist/frontend-ssr/assets/share-BTBJelxA.js +30 -0
  131. package/dist/frontend-ssr/assets/subfolders-refresh-store.svelte-DAh4gT16.js +77 -0
  132. package/dist/frontend-ssr/assets/tag-GZEuGWk1.js +166 -0
  133. package/dist/frontend-ssr/assets/tag-store.svelte-DPodKj6Z.js +21 -0
  134. package/dist/frontend-ssr/assets/tags-BId2wdYd.js +49 -0
  135. package/dist/frontend-ssr/assets/textarea-Dev-qSEc.js +21 -0
  136. package/dist/frontend-ssr/assets/theme.svelte-Co0-ssaD.js +67 -0
  137. package/dist/frontend-ssr/assets/utils-DtlPPXpJ.js +9 -0
  138. package/dist/frontend-ssr/assets/utils-DvZnctjz.js +23 -0
  139. package/dist/frontend-ssr/collaboration.js +39 -0
  140. package/dist/frontend-ssr/components/category-dialog.js +2 -0
  141. package/dist/frontend-ssr/components/create-snapshot-dialog.js +2 -0
  142. package/dist/frontend-ssr/components/delete-dialog.js +2 -0
  143. package/dist/frontend-ssr/components/editor/document-editor.js +2499 -0
  144. package/dist/frontend-ssr/components/editor/document-title.js +11 -0
  145. package/dist/frontend-ssr/components/editor/docx-serializer.js +186 -0
  146. package/dist/frontend-ssr/components/editor/extensions.js +2 -0
  147. package/dist/frontend-ssr/components/editor/markdown-toggle.js +20 -0
  148. package/dist/frontend-ssr/components/editor/markdown.js +2 -0
  149. package/dist/frontend-ssr/components/folder-node.js +2 -0
  150. package/dist/frontend-ssr/components/folder-tree-selector.js +2 -0
  151. package/dist/frontend-ssr/components/save-as-dialog.js +280 -0
  152. package/dist/frontend-ssr/components/settings.js +2 -0
  153. package/dist/frontend-ssr/components/share-dialog.js +2 -0
  154. package/dist/frontend-ssr/components/sidebar.js +2 -0
  155. package/dist/frontend-ssr/components/tag-create-dialog.js +2 -0
  156. package/dist/frontend-ssr/components/version-history.js +370 -0
  157. package/dist/frontend-ssr/dashboard.js +2542 -0
  158. package/dist/frontend-ssr/doc-tabs.js +23 -0
  159. package/dist/frontend-ssr/document-drop-coordinator.js +2 -0
  160. package/dist/frontend-ssr/extension.js +2 -0
  161. package/dist/frontend-ssr/folder-refresh.js +2 -0
  162. package/dist/frontend-ssr/i18n.js +10 -0
  163. package/dist/frontend-ssr/keyboard.js +2 -0
  164. package/dist/frontend-ssr/offline/identity.js +2 -0
  165. package/dist/frontend-ssr/search.js +332 -0
  166. package/dist/frontend-ssr/shared-document.js +273 -0
  167. package/dist/frontend-ssr/theme.js +9 -0
  168. package/dist/frontend-ssr/types.js +1 -0
  169. package/dist/frontend-ssr/utils/clipboard.js +2 -0
  170. package/dist/frontend-ssr/utils/dndzone.js +2 -0
  171. package/dist/frontend-ssr/utils.js +2 -0
  172. package/package.json +28 -1
  173. package/packages/cli/src/index.ts +1 -1
  174. package/packages/db/src/schema.ts +3 -0
  175. package/packages/mcp-server/src/index.ts +1 -1
  176. package/dist/frontend/CategoryDialog--rIE7FrH.js +0 -580
  177. package/dist/frontend/ConfirmDialog-Cpzyb55f.js +0 -212
  178. package/dist/frontend/CreateSnapshotDialog-CmkV-n2A.js +0 -216
  179. package/dist/frontend/DatePicker-Byynca7V.js +0 -257
  180. package/dist/frontend/DeleteDialog-ap6nOywZ.js +0 -174
  181. package/dist/frontend/FolderDialog-DmN_trV0.js +0 -247
  182. package/dist/frontend/FolderNode-C4B8a2fd.js +0 -317
  183. package/dist/frontend/FolderTreeSelector-D6ijiZTA.js +0 -100
  184. package/dist/frontend/Icon-DtNo0N1U.js +0 -64
  185. package/dist/frontend/SettingsDialog-2kTaTXAs.js +0 -992
  186. package/dist/frontend/ShareDialog-BBDGNF5n.js +0 -165
  187. package/dist/frontend/TagCreateDialog-DiLZnJo4.js +0 -258
  188. package/dist/frontend/camera-B7dAOd4s.js +0 -28
  189. package/dist/frontend/check-CDwRlG9T.js +0 -24
  190. package/dist/frontend/chevron-down-B7ZrjUmT.js +0 -24
  191. package/dist/frontend/circle-check-CDqeMB2d.js +0 -28
  192. package/dist/frontend/client-Bc5Fzx40.js +0 -2785
  193. package/dist/frontend/clock-Ck5Sn-Zl.js +0 -28
  194. package/dist/frontend/clsx-nmtDPO_P.js +0 -16
  195. package/dist/frontend/copy-CMAA6GP0.js +0 -31
  196. package/dist/frontend/dialog-BDkiG42a.js +0 -213
  197. package/dist/frontend/disclose-version-5I57E3LD.js +0 -3
  198. package/dist/frontend/ellipsis-vertical-BBuPldbW.js +0 -519
  199. package/dist/frontend/folder-TQjKY4yn.js +0 -44
  200. package/dist/frontend/index-client-jobkrWVL.js +0 -86
  201. package/dist/frontend/input-CBI6p4Xl.js +0 -23
  202. package/dist/frontend/label-C-GkhEp4.js +0 -30
  203. package/dist/frontend/rotate-ccw-CleZtJ5D.js +0 -24
  204. package/dist/frontend/select-value-CvrWRkXW.js +0 -1436
  205. package/dist/frontend/subfolders-refresh-store.svelte-BsheoQma.js +0 -65
  206. package/dist/frontend/tag-Dx3SmucJ.js +0 -53
  207. package/dist/frontend/tag-store.svelte-CIaF4sdZ.js +0 -29
  208. package/dist/frontend/textarea-Dfp78XlL.js +0 -23
  209. package/dist/frontend/theme.svelte-CROg1Hi5.js +0 -49
  210. package/dist/frontend/x-DaTdeDXv.js +0 -24
package/dist/client.d.ts CHANGED
@@ -126,6 +126,17 @@ export declare class DocsClient {
126
126
  success: true;
127
127
  }>;
128
128
  search(query: string, options?: DocsSearchOptions, context?: DocsRequestContext): Promise<DocsSearchResponse>;
129
+ /**
130
+ * Product-facing search contract. The retrieval choice is explicitly typed
131
+ * so server-side callers do not need to synthesize browser-only headers.
132
+ * `graph` retains hybrid lexical/vector retrieval and enables AGE expansion;
133
+ * `rag` keeps the lexical/vector channels while disabling graph traversal.
134
+ */
135
+ searchDocuments(input: {
136
+ query: string;
137
+ retrievalMode: "graph" | "rag";
138
+ options?: Omit<DocsSearchOptions, "graph">;
139
+ }, context?: DocsRequestContext): Promise<DocsSearchResponse>;
129
140
  suggest(query: string, context?: DocsRequestContext): Promise<DocsSearchSuggestItem[]>;
130
141
  /** Return entities linked to a document through the AGE graph. */
131
142
  getGraphEntities(docId: string, context?: DocsRequestContext): Promise<DocsGraphEntitiesResponse>;
package/dist/client.js CHANGED
@@ -234,6 +234,15 @@ export class DocsClient {
234
234
  }),
235
235
  }, context);
236
236
  }
237
+ /**
238
+ * Product-facing search contract. The retrieval choice is explicitly typed
239
+ * so server-side callers do not need to synthesize browser-only headers.
240
+ * `graph` retains hybrid lexical/vector retrieval and enables AGE expansion;
241
+ * `rag` keeps the lexical/vector channels while disabling graph traversal.
242
+ */
243
+ async searchDocuments(input, context) {
244
+ return this.search(input.query, { ...input.options, graph: input.retrievalMode === "graph" }, context);
245
+ }
237
246
  async suggest(query, context) {
238
247
  return this.request("GET", "/api/search/suggest", {
239
248
  query: this.cleanQuery({ q: query }),
@@ -0,0 +1,611 @@
1
+ import { t as e } from "./copy-GppwRMjX.js";
2
+ import { t } from "./circle-check-tSPE1V6t.js";
3
+ import { n } from "./dist-C3857Spp.js";
4
+ import { $n as r, S as i, _ as a, b as o, g as s, h as c, m as l, nr as u, p as d, rr as f, tr as p, v as m, x as h, y as g } from "./messages-C5Q890i2.js";
5
+ import { a as ee, i as _, n as te, o as v, r as ne, t as re } from "./dialog-Bevp9mmM.js";
6
+ import { t as ie } from "./input-BWlOML_m.js";
7
+ import { t as y } from "./label-C2HfJNQ2.js";
8
+ import { a as ae, n as oe, o as se, r as b, s as ce, t as le } from "./api-keys-CpkrA8rD.js";
9
+ import { a as ue, i as de, n as fe, r as pe, t as me } from "./select-value-GXwx90Pr.js";
10
+ import "svelte/internal/disclose-version";
11
+ import * as x from "svelte/internal/client";
12
+ //#region src/lib/components/sidebar/category-dialog-feedback.ts
13
+ function S(e, t) {
14
+ return typeof e == "object" && e && "status" in e && e.status === 409 ? "A category with this name already exists." : e instanceof Error && e.message.trim().length > 0 ? e.message : t;
15
+ }
16
+ //#endregion
17
+ //#region src/lib/components/sidebar/CategoryDialog.svelte
18
+ var he = x.from_html("<span class=\"font-medium text-foreground\"> </span> ", 1), ge = x.from_html("Delete <span class=\"font-medium text-foreground\"> </span> ", 1), C = x.from_html("<!> <!>", 1), _e = x.from_html("<div class=\"flex items-start gap-3 rounded-lg border border-primary/30 bg-primary/10 p-4\" role=\"status\" aria-live=\"polite\"><!> <div><p class=\"text-sm font-medium text-foreground\"> </p> <p class=\"text-sm text-muted-foreground\"><span class=\"font-medium text-foreground\"> </span> </p></div></div>"), ve = x.from_html("<!> Copy API key", 1), ye = x.from_html("<div class=\"rounded-md border border-primary/20 bg-background/80 p-3\"><p class=\"text-xs font-medium text-foreground\">Copy the API key now. It remains available in Settings → API.</p> <code class=\"mt-2 block break-all rounded bg-muted p-2 text-xs text-foreground\"> </code> <!></div>"), w = x.from_html("<p class=\"text-xs text-destructive\" role=\"alert\"> </p>"), be = x.from_html("<div class=\"space-y-3 rounded-lg border border-primary/30 bg-primary/10 p-4\" role=\"status\" aria-live=\"polite\"><div class=\"flex items-start gap-3\"><!> <div><p class=\"text-sm font-medium text-foreground\">Category created</p> <p class=\"text-sm text-muted-foreground\"> </p></div></div> <!> <!></div>"), xe = x.from_html("<p id=\"category-dialog-name-error\" class=\"text-xs text-destructive\" role=\"alert\"> </p>"), T = x.from_html("<!> <!> <!>", 1), Se = x.from_html("<div class=\"space-y-3 rounded-md border border-border/70 bg-muted/30 p-3\"><div class=\"flex flex-wrap items-center justify-between gap-2\"><!> <div class=\"flex flex-wrap gap-2\"><!> <!></div></div> <div class=\"grid gap-2 sm:grid-cols-3\"><label class=\"flex items-center gap-2 rounded-md border border-border/60 bg-background px-3 py-2 text-sm\"><input type=\"checkbox\" class=\"size-4 rounded border-input\"/> <span>Read</span></label> <label class=\"flex items-center gap-2 rounded-md border border-border/60 bg-background px-3 py-2 text-sm\"><input type=\"checkbox\" class=\"size-4 rounded border-input\"/> <span>Edit</span></label> <label class=\"flex items-center gap-2 rounded-md border border-border/60 bg-background px-3 py-2 text-sm\"><input type=\"checkbox\" class=\"size-4 rounded border-input\"/> <span>Write</span></label></div></div>"), Ce = x.from_html("<p class=\"text-xs text-muted-foreground\">Save Category API access first, then reopen settings to issue a key.</p>"), we = x.from_html("<div class=\"rounded-lg border border-primary/30 bg-primary/10 p-3 text-primary\"><p class=\"text-xs font-medium\">Copy now — this raw key is shown once.</p> <code class=\"mt-1 block break-all rounded bg-background/80 p-2 text-xs text-foreground\"> </code> <!></div>"), Te = x.from_html("<div class=\"flex items-center justify-between gap-3 rounded-md bg-muted/40 px-3 py-2 text-xs\"><span> </span> <div class=\"flex shrink-0 gap-2\"><!> <!></div></div>"), Ee = x.from_html("<div class=\"space-y-3 rounded-md border border-border/70 p-3\"><div class=\"flex items-center justify-between gap-2\"><div><!><p class=\"text-xs text-muted-foreground\">Keys inherit the saved permissions above.</p></div> <!></div> <!> <!> <div class=\"max-h-48 space-y-2 overflow-y-auto pr-1\"></div></div>"), E = x.from_html("<form class=\"space-y-4\"><div class=\"space-y-2\"><!> <!> <!></div> <div class=\"space-y-2\"><!> <!></div> <!> <!></form>"), D = x.from_html("<!> ", 1);
19
+ function O(O, k) {
20
+ x.push(k, !0);
21
+ let A = {
22
+ Root: ue,
23
+ Content: de,
24
+ Item: pe,
25
+ Trigger: fe,
26
+ Value: me
27
+ }, j = x.prop(k, "open", 15, !1), M = x.state(""), N = x.state(null), P = x.state(!1), F = x.state("unavailable"), I = x.state(!1), L = x.state(!1), R = x.state(!1), z = x.state(x.proxy([])), B = x.state(x.proxy({})), V = x.state(null), H = x.state(!1), U = x.state(null), W = x.state(null), G = x.state(null), K = x.derived(() => x.get(V) ? x.get(B)[x.get(V)] : void 0);
28
+ async function q(e) {
29
+ let t = await ae();
30
+ x.set(z, t.keys.filter((t) => oe(t.scopes) === e), !0);
31
+ }
32
+ async function De() {
33
+ if (k.category?.id) {
34
+ x.set(H, !0);
35
+ try {
36
+ let e = await b(k.category.id);
37
+ x.set(B, {
38
+ ...x.get(B),
39
+ [e.id]: e.key
40
+ }, !0), x.set(V, e.id, !0), await q(k.category.id);
41
+ } catch (e) {
42
+ x.set(N, e instanceof Error ? e.message : "Failed to create category API key", !0);
43
+ } finally {
44
+ x.set(H, !1);
45
+ }
46
+ }
47
+ }
48
+ async function Oe(e) {
49
+ if (k.category?.id) {
50
+ x.set(H, !0);
51
+ try {
52
+ await ce(e);
53
+ let { [e]: t, ...n } = x.get(B);
54
+ x.set(B, n, !0), x.get(V) === e && x.set(V, null), await q(k.category.id);
55
+ } finally {
56
+ x.set(H, !1);
57
+ }
58
+ }
59
+ }
60
+ async function ke(e) {
61
+ let t = x.get(B)[e.id] ?? await se(e.id);
62
+ await navigator.clipboard.writeText(le(e, t));
63
+ }
64
+ x.user_effect(() => {
65
+ if (!j()) return;
66
+ x.set(M, k.category?.name ?? "", !0);
67
+ let e = k.category?.apiMode === "category" ? "category" : k.category?.apiMode === "global" || k.category?.apiMode === "general" ? "global" : "unavailable";
68
+ x.set(F, e, !0), x.set(I, !!k.category?.apiPermissionRead, !0), x.set(L, !!k.category?.apiPermissionEdit, !0), x.set(R, !!k.category?.apiPermissionWrite, !0), e === "unavailable" && (x.set(I, !1), x.set(L, !1), x.set(R, !1)), x.set(B, {}, !0), x.set(V, null), x.set(z, [], !0), x.set(U, null), x.set(W, null), x.set(G, null), k.mode === "edit" && k.category?.id && q(k.category.id), x.set(N, null);
69
+ });
70
+ let J = x.derived(() => x.get(M).trim()), Y = x.derived(() => k.mode === "delete"), Ae = x.derived(() => x.get(I) || x.get(L) || x.get(R)), X = x.derived(() => x.get(G) ? l() : x.get(Y) ? s() : k.mode === "edit" ? h() : i()), je = x.derived(() => x.get(Y) ? p() : k.mode === "edit" ? f() : r());
71
+ function Me(e) {
72
+ return e === "category" ? "category" : e === "global" ? "global" : "unavailable";
73
+ }
74
+ function Z(e) {
75
+ if (e === "read") {
76
+ x.set(I, !0), x.set(L, !1), x.set(R, !1);
77
+ return;
78
+ }
79
+ if (e === "write") {
80
+ x.set(I, !1), x.set(L, !1), x.set(R, !0);
81
+ return;
82
+ }
83
+ if (e === "read-write") {
84
+ x.set(I, !0), x.set(L, !1), x.set(R, !0);
85
+ return;
86
+ }
87
+ x.set(I, !0), x.set(L, !0), x.set(R, !0);
88
+ }
89
+ async function Q(e) {
90
+ if (e?.preventDefault(), !x.get(P)) {
91
+ if (x.get(Y)) {
92
+ if (!k.onDelete) {
93
+ $();
94
+ return;
95
+ }
96
+ x.set(P, !0);
97
+ try {
98
+ await k.onDelete(), x.set(G, k.category?.name ?? "Category", !0);
99
+ } catch (e) {
100
+ console.error("CategoryDialog: delete failed", e), x.set(N, e instanceof Error ? e.message : a(), !0);
101
+ } finally {
102
+ x.set(P, !1);
103
+ }
104
+ return;
105
+ }
106
+ if (x.get(J).length === 0) {
107
+ x.set(N, "Name is required");
108
+ return;
109
+ }
110
+ if (x.get(F) !== "unavailable" && !x.get(Ae)) {
111
+ x.set(N, "Select at least one permission");
112
+ return;
113
+ }
114
+ if (!k.onSave) {
115
+ $();
116
+ return;
117
+ }
118
+ x.set(N, null), x.set(P, !0);
119
+ try {
120
+ let e = await k.onSave({
121
+ name: x.get(J),
122
+ apiMode: Me(x.get(F)),
123
+ apiPermissionRead: x.get(F) === "unavailable" ? !1 : x.get(I),
124
+ apiPermissionEdit: x.get(F) === "unavailable" ? !1 : x.get(L),
125
+ apiPermissionWrite: x.get(F) === "unavailable" ? !1 : x.get(R)
126
+ });
127
+ if (k.mode === "create" && e) {
128
+ if (x.set(U, e.name, !0), x.get(F) === "category") try {
129
+ let t = await b(e.id);
130
+ x.set(W, t.key, !0);
131
+ } catch (e) {
132
+ x.set(N, `Category created, but its API key could not be created: ${S(e, "Unknown error")}`);
133
+ }
134
+ return;
135
+ }
136
+ $();
137
+ } catch (e) {
138
+ console.error("CategoryDialog: save failed", e), x.set(N, S(e, k.mode === "edit" ? m() : g()), !0);
139
+ } finally {
140
+ x.set(P, !1);
141
+ }
142
+ }
143
+ }
144
+ function $() {
145
+ x.get(P) || (j(!1), k.onClose?.());
146
+ }
147
+ function Ne(e) {
148
+ if (!e && x.get(P)) {
149
+ j(!0);
150
+ return;
151
+ }
152
+ e || $();
153
+ }
154
+ ee(O, {
155
+ onOpenChange: Ne,
156
+ get open() {
157
+ return j();
158
+ },
159
+ set open(e) {
160
+ j(e);
161
+ },
162
+ children: (r, i) => {
163
+ var a = T(), s = x.first_child(a);
164
+ te(s, {
165
+ children: (e, t) => {
166
+ var n = C(), r = x.first_child(n);
167
+ re(r, {
168
+ children: (e, t) => {
169
+ x.next();
170
+ var n = x.text();
171
+ x.template_effect(() => x.set_text(n, x.get(X))), x.append(e, n);
172
+ },
173
+ $$slots: { default: !0 }
174
+ });
175
+ var i = x.sibling(r, 2), a = (e) => {
176
+ _(e, {
177
+ children: (e, t) => {
178
+ var n = he(), r = x.first_child(n), i = x.child(r);
179
+ x.reset(r);
180
+ var a = x.sibling(r);
181
+ x.template_effect((e) => {
182
+ x.set_text(i, `“${x.get(G) ?? ""}”`), x.set_text(a, ` ${e ?? ""}`);
183
+ }, [() => d()]), x.append(e, n);
184
+ },
185
+ $$slots: { default: !0 }
186
+ });
187
+ }, s = (e) => {
188
+ _(e, {
189
+ children: (e, t) => {
190
+ x.next();
191
+ var n = ge(), r = x.sibling(x.first_child(n)), i = x.child(r);
192
+ x.reset(r);
193
+ var a = x.sibling(r);
194
+ x.template_effect((e) => {
195
+ x.set_text(i, `“${k.category?.name ?? "Category" ?? ""}”`), x.set_text(a, `?
196
+ ${e ?? ""}`);
197
+ }, [() => c()]), x.append(e, n);
198
+ },
199
+ $$slots: { default: !0 }
200
+ });
201
+ }, l = (e) => {
202
+ _(e, {
203
+ children: (e, t) => {
204
+ x.next();
205
+ var n = x.text();
206
+ x.template_effect((e) => x.set_text(n, e), [() => o()]), x.append(e, n);
207
+ },
208
+ $$slots: { default: !0 }
209
+ });
210
+ };
211
+ x.if(i, (e) => {
212
+ x.get(G) ? e(a) : x.get(Y) ? e(s, 1) : e(l, -1);
213
+ }), x.append(e, n);
214
+ },
215
+ $$slots: { default: !0 }
216
+ });
217
+ var f = x.sibling(s, 2), p = (e) => {
218
+ var n = _e(), r = x.child(n);
219
+ t(r, { class: "mt-0.5 size-5 shrink-0 text-primary" });
220
+ var i = x.sibling(r, 2), a = x.child(i), o = x.child(a, !0);
221
+ x.reset(a);
222
+ var s = x.sibling(a, 2), c = x.child(s), u = x.child(c);
223
+ x.reset(c);
224
+ var f = x.sibling(c);
225
+ x.reset(s), x.reset(i), x.reset(n), x.template_effect((e, t) => {
226
+ x.set_text(o, e), x.set_text(u, `“${x.get(G) ?? ""}”`), x.set_text(f, ` ${t ?? ""}`);
227
+ }, [() => l(), () => d()]), x.append(e, n);
228
+ }, m = (n) => {
229
+ var r = be(), i = x.child(r), a = x.child(i);
230
+ t(a, { class: "mt-0.5 size-5 shrink-0 text-primary" });
231
+ var o = x.sibling(a, 2), s = x.sibling(x.child(o), 2), c = x.child(s);
232
+ x.reset(s), x.reset(o), x.reset(i);
233
+ var l = x.sibling(i, 2), u = (t) => {
234
+ var n = ye(), r = x.sibling(x.child(n), 2), i = x.child(r, !0);
235
+ x.reset(r), v(x.sibling(r, 2), {
236
+ type: "button",
237
+ size: "sm",
238
+ variant: "outline",
239
+ class: "mt-2",
240
+ onclick: () => navigator.clipboard.writeText(x.get(W) ?? ""),
241
+ children: (t, n) => {
242
+ var r = ve();
243
+ e(x.first_child(r), { class: "mr-1 size-3.5" }), x.next(), x.append(t, r);
244
+ },
245
+ $$slots: { default: !0 }
246
+ }), x.reset(n), x.template_effect(() => x.set_text(i, x.get(W))), x.append(t, n);
247
+ };
248
+ x.if(l, (e) => {
249
+ x.get(W) && e(u);
250
+ });
251
+ var d = x.sibling(l, 2), f = (e) => {
252
+ var t = w(), n = x.child(t, !0);
253
+ x.reset(t), x.template_effect(() => x.set_text(n, x.get(N))), x.append(e, t);
254
+ };
255
+ x.if(d, (e) => {
256
+ x.get(N) && e(f);
257
+ }), x.reset(r), x.template_effect(() => x.set_text(c, `${x.get(U) ?? ""} is ready to use.`)), x.append(n, r);
258
+ }, h = (e) => {
259
+ var t = E(), n = x.child(t), r = x.child(n);
260
+ y(r, {
261
+ for: "category-dialog-name",
262
+ children: (e, t) => {
263
+ x.next();
264
+ var n = x.text();
265
+ x.template_effect((e) => x.set_text(n, e), [() => o()]), x.append(e, n);
266
+ },
267
+ $$slots: { default: !0 }
268
+ });
269
+ var i = x.sibling(r, 2);
270
+ {
271
+ let e = x.derived(() => o()), t = x.derived(() => x.get(N) ? "true" : void 0), n = x.derived(() => x.get(N) ? "category-dialog-name-error" : void 0);
272
+ ie(i, {
273
+ id: "category-dialog-name",
274
+ name: "name",
275
+ type: "text",
276
+ get placeholder() {
277
+ return x.get(e);
278
+ },
279
+ maxlength: 255,
280
+ required: !0,
281
+ get disabled() {
282
+ return x.get(P);
283
+ },
284
+ get "aria-invalid"() {
285
+ return x.get(t);
286
+ },
287
+ get "aria-describedby"() {
288
+ return x.get(n);
289
+ },
290
+ autocomplete: "off",
291
+ get value() {
292
+ return x.get(M);
293
+ },
294
+ set value(e) {
295
+ x.set(M, e, !0);
296
+ }
297
+ });
298
+ }
299
+ var a = x.sibling(i, 2), s = (e) => {
300
+ var t = xe(), n = x.child(t, !0);
301
+ x.reset(t), x.template_effect(() => x.set_text(n, x.get(N))), x.append(e, t);
302
+ };
303
+ x.if(a, (e) => {
304
+ x.get(N) && e(s);
305
+ }), x.reset(n);
306
+ var c = x.sibling(n, 2), l = x.child(c);
307
+ y(l, {
308
+ for: "category-dialog-api-mode",
309
+ children: (e, t) => {
310
+ x.next();
311
+ var n = x.text("API access");
312
+ x.append(e, n);
313
+ },
314
+ $$slots: { default: !0 }
315
+ });
316
+ var u = x.sibling(l, 2);
317
+ x.component(u, () => A.Root, (e, t) => {
318
+ t(e, {
319
+ type: "single",
320
+ get value() {
321
+ return x.get(F);
322
+ },
323
+ get disabled() {
324
+ return x.get(P);
325
+ },
326
+ onValueChange: (e) => {
327
+ (e === "unavailable" || e === "global" || e === "category") && x.set(F, e, !0);
328
+ },
329
+ children: (e, t) => {
330
+ var n = C(), r = x.first_child(n);
331
+ x.component(r, () => A.Trigger, (e, t) => {
332
+ t(e, {
333
+ id: "category-dialog-api-mode",
334
+ class: "h-10 w-full",
335
+ children: (e, t) => {
336
+ var n = x.comment(), r = x.first_child(n);
337
+ x.component(r, () => A.Value, (e, t) => {
338
+ t(e, {
339
+ placeholder: "Select API access",
340
+ children: (e, t) => {
341
+ x.next();
342
+ var n = x.text();
343
+ x.template_effect(() => x.set_text(n, x.get(F) === "unavailable" ? "Unavailable" : x.get(F) === "global" ? "Global" : "Category API")), x.append(e, n);
344
+ },
345
+ $$slots: { default: !0 }
346
+ });
347
+ }), x.append(e, n);
348
+ },
349
+ $$slots: { default: !0 }
350
+ });
351
+ });
352
+ var i = x.sibling(r, 2);
353
+ x.component(i, () => A.Content, (e, t) => {
354
+ t(e, {
355
+ children: (e, t) => {
356
+ var n = T(), r = x.first_child(n);
357
+ x.component(r, () => A.Item, (e, t) => {
358
+ t(e, {
359
+ value: "unavailable",
360
+ children: (e, t) => {
361
+ x.next();
362
+ var n = x.text("Unavailable");
363
+ x.append(e, n);
364
+ },
365
+ $$slots: { default: !0 }
366
+ });
367
+ });
368
+ var i = x.sibling(r, 2);
369
+ x.component(i, () => A.Item, (e, t) => {
370
+ t(e, {
371
+ value: "global",
372
+ children: (e, t) => {
373
+ x.next();
374
+ var n = x.text("Global");
375
+ x.append(e, n);
376
+ },
377
+ $$slots: { default: !0 }
378
+ });
379
+ });
380
+ var a = x.sibling(i, 2);
381
+ x.component(a, () => A.Item, (e, t) => {
382
+ t(e, {
383
+ value: "category",
384
+ children: (e, t) => {
385
+ x.next();
386
+ var n = x.text("Category API");
387
+ x.append(e, n);
388
+ },
389
+ $$slots: { default: !0 }
390
+ });
391
+ }), x.append(e, n);
392
+ },
393
+ $$slots: { default: !0 }
394
+ });
395
+ }), x.append(e, n);
396
+ },
397
+ $$slots: { default: !0 }
398
+ });
399
+ }), x.reset(c);
400
+ var d = x.sibling(c, 2), f = (e) => {
401
+ var t = Se(), n = x.child(t), r = x.child(n);
402
+ y(r, {
403
+ class: "text-sm",
404
+ children: (e, t) => {
405
+ x.next();
406
+ var n = x.text("Permissions");
407
+ x.append(e, n);
408
+ },
409
+ $$slots: { default: !0 }
410
+ });
411
+ var i = x.sibling(r, 2), a = x.child(i);
412
+ v(a, {
413
+ type: "button",
414
+ variant: "outline",
415
+ size: "sm",
416
+ onclick: () => Z("read-write"),
417
+ children: (e, t) => {
418
+ x.next();
419
+ var n = x.text("Read / Write");
420
+ x.append(e, n);
421
+ },
422
+ $$slots: { default: !0 }
423
+ }), v(x.sibling(a, 2), {
424
+ type: "button",
425
+ variant: "outline",
426
+ size: "sm",
427
+ onclick: () => Z("read-edit-write"),
428
+ children: (e, t) => {
429
+ x.next();
430
+ var n = x.text("Read / Edit / Write");
431
+ x.append(e, n);
432
+ },
433
+ $$slots: { default: !0 }
434
+ }), x.reset(i), x.reset(n);
435
+ var o = x.sibling(n, 2), s = x.child(o), c = x.child(s);
436
+ x.remove_input_defaults(c), x.next(2), x.reset(s);
437
+ var l = x.sibling(s, 2), u = x.child(l);
438
+ x.remove_input_defaults(u), x.next(2), x.reset(l);
439
+ var d = x.sibling(l, 2), f = x.child(d);
440
+ x.remove_input_defaults(f), x.next(2), x.reset(d), x.reset(o), x.reset(t), x.template_effect(() => {
441
+ c.disabled = x.get(P), u.disabled = x.get(P), f.disabled = x.get(P);
442
+ }), x.bind_checked(c, () => x.get(I), (e) => x.set(I, e)), x.bind_checked(u, () => x.get(L), (e) => x.set(L, e)), x.bind_checked(f, () => x.get(R), (e) => x.set(R, e)), x.append(e, t);
443
+ };
444
+ x.if(d, (e) => {
445
+ x.get(F) !== "unavailable" && e(f);
446
+ });
447
+ var p = x.sibling(d, 2), m = (e) => {
448
+ var t = Ee(), n = x.child(t), r = x.child(n);
449
+ y(x.child(r), {
450
+ children: (e, t) => {
451
+ x.next();
452
+ var n = x.text("Category API keys");
453
+ x.append(e, n);
454
+ },
455
+ $$slots: { default: !0 }
456
+ }), x.next(), x.reset(r);
457
+ var i = x.sibling(r, 2);
458
+ {
459
+ let e = x.derived(() => x.get(P) || x.get(H) || k.category.apiMode !== "category");
460
+ v(i, {
461
+ type: "button",
462
+ size: "sm",
463
+ onclick: De,
464
+ get disabled() {
465
+ return x.get(e);
466
+ },
467
+ children: (e, t) => {
468
+ x.next();
469
+ var n = x.text("Create key");
470
+ x.append(e, n);
471
+ },
472
+ $$slots: { default: !0 }
473
+ });
474
+ }
475
+ x.reset(n);
476
+ var a = x.sibling(n, 2), o = (e) => {
477
+ var t = Ce();
478
+ x.append(e, t);
479
+ };
480
+ x.if(a, (e) => {
481
+ k.category.apiMode !== "category" && e(o);
482
+ });
483
+ var s = x.sibling(a, 2), c = (e) => {
484
+ var t = we(), n = x.sibling(x.child(t), 2), r = x.child(n, !0);
485
+ x.reset(n), v(x.sibling(n, 2), {
486
+ type: "button",
487
+ size: "sm",
488
+ variant: "outline",
489
+ class: "mt-2",
490
+ onclick: () => navigator.clipboard.writeText(x.get(K)),
491
+ children: (e, t) => {
492
+ x.next();
493
+ var n = x.text("Copy key");
494
+ x.append(e, n);
495
+ },
496
+ $$slots: { default: !0 }
497
+ }), x.reset(t), x.template_effect(() => x.set_text(r, x.get(K))), x.append(e, t);
498
+ };
499
+ x.if(s, (e) => {
500
+ x.get(K) && e(c);
501
+ });
502
+ var l = x.sibling(s, 2);
503
+ x.each(l, 21, () => x.get(z), (e) => e.id, (e, t) => {
504
+ var n = Te(), r = x.child(n), i = x.child(r);
505
+ x.reset(r);
506
+ var a = x.sibling(r, 2), o = x.child(a);
507
+ {
508
+ let e = x.derived(() => !x.get(t).recoverable && !x.get(B)[x.get(t).id]);
509
+ v(o, {
510
+ type: "button",
511
+ size: "sm",
512
+ variant: "outline",
513
+ onclick: () => ke(x.get(t)),
514
+ get disabled() {
515
+ return x.get(e);
516
+ },
517
+ children: (e, n) => {
518
+ x.next();
519
+ var r = x.text();
520
+ x.template_effect(() => x.set_text(r, x.get(t).recoverable || x.get(B)[x.get(t).id] ? "Copy key" : "Rotate to enable copy")), x.append(e, r);
521
+ },
522
+ $$slots: { default: !0 }
523
+ });
524
+ }
525
+ v(x.sibling(o, 2), {
526
+ type: "button",
527
+ size: "sm",
528
+ variant: "destructive",
529
+ onclick: () => Oe(x.get(t).id),
530
+ get disabled() {
531
+ return x.get(H);
532
+ },
533
+ children: (e, t) => {
534
+ x.next();
535
+ var n = x.text("Revoke");
536
+ x.append(e, n);
537
+ },
538
+ $$slots: { default: !0 }
539
+ }), x.reset(a), x.reset(n), x.template_effect(() => x.set_text(i, `${x.get(t).name ?? ""} · ${x.get(t).prefix ?? ""}…`)), x.append(e, n);
540
+ }), x.reset(l), x.reset(t), x.append(e, t);
541
+ };
542
+ x.if(p, (e) => {
543
+ k.mode === "edit" && x.get(F) === "category" && k.category?.id && e(m);
544
+ }), x.reset(t), x.event("submit", t, Q), x.append(e, t);
545
+ }, g = (e) => {
546
+ var t = w(), n = x.child(t, !0);
547
+ x.reset(t), x.template_effect(() => x.set_text(n, x.get(N))), x.append(e, t);
548
+ };
549
+ x.if(f, (e) => {
550
+ x.get(G) ? e(p) : x.get(U) ? e(m, 1) : x.get(Y) ? x.get(N) && e(g, 3) : e(h, 2);
551
+ }), ne(x.sibling(f, 2), {
552
+ class: "gap-2 max-sm:flex-col max-sm:items-stretch",
553
+ children: (e, t) => {
554
+ var r = C(), i = x.first_child(r), a = (e) => {
555
+ v(e, {
556
+ variant: "outline",
557
+ type: "button",
558
+ onclick: $,
559
+ get disabled() {
560
+ return x.get(P);
561
+ },
562
+ children: (e, t) => {
563
+ x.next();
564
+ var n = x.text();
565
+ x.template_effect((e) => x.set_text(n, e), [() => u()]), x.append(e, n);
566
+ },
567
+ $$slots: { default: !0 }
568
+ });
569
+ };
570
+ x.if(i, (e) => {
571
+ !x.get(U) && !x.get(G) && e(a);
572
+ });
573
+ var o = x.sibling(i, 2);
574
+ {
575
+ let e = x.derived(() => x.get(Y) ? "button" : "submit"), t = x.derived(() => x.get(Y) ? "destructive" : "default"), r = x.derived(() => x.get(U) || x.get(G) ? $ : Q), i = x.derived(() => x.get(P) || !x.get(Y) && !x.get(U) && !x.get(G) && x.get(J).length === 0);
576
+ v(o, {
577
+ get type() {
578
+ return x.get(e);
579
+ },
580
+ get variant() {
581
+ return x.get(t);
582
+ },
583
+ get onclick() {
584
+ return x.get(r);
585
+ },
586
+ get disabled() {
587
+ return x.get(i);
588
+ },
589
+ children: (e, t) => {
590
+ var r = D(), i = x.first_child(r), a = (e) => {
591
+ n(e, { class: "mr-1 size-4 animate-spin" });
592
+ };
593
+ x.if(i, (e) => {
594
+ x.get(P) && e(a);
595
+ });
596
+ var o = x.sibling(i);
597
+ x.template_effect(() => x.set_text(o, ` ${(x.get(U) || x.get(G) ? "Done" : x.get(je)) ?? ""}`)), x.append(e, r);
598
+ },
599
+ $$slots: { default: !0 }
600
+ });
601
+ }
602
+ x.append(e, r);
603
+ },
604
+ $$slots: { default: !0 }
605
+ }), x.append(r, a);
606
+ },
607
+ $$slots: { default: !0 }
608
+ }), x.pop();
609
+ }
610
+ //#endregion
611
+ export { O as t };