@hiai-gg/docsmint 0.4.8 → 0.5.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 (137) hide show
  1. package/backend/src/lib/api-key-facade.ts +1 -0
  2. package/dist/backend/index.js +38379 -18500
  3. package/dist/backend-api-key-facade.js +772 -0
  4. package/dist/client.js +2 -7
  5. package/dist/frontend/{CategoryDialog-CxVyaBV5.js → CategoryDialog-DyytjQn6.js} +109 -108
  6. package/dist/frontend/ConfirmDialog-DgMTQBq4.js +134 -0
  7. package/dist/frontend/{CreateSnapshotDialog-BDgFTeFn.js → CreateSnapshotDialog-CXW4sCuf.js} +29 -29
  8. package/dist/frontend/{DatePicker-BZRBluzF.js → DatePicker-BkaaNS1l.js} +34 -34
  9. package/dist/frontend/{DeleteDialog-CvAr2WPu.js → DeleteDialog-8k6JYWCx.js} +3 -3
  10. package/dist/frontend/{FolderNode--l1g8bcL.js → FolderNode-DAGPgi-M.js} +8 -8
  11. package/dist/frontend/{FolderTreeSelector-CyB8y2Sm.js → FolderTreeSelector-BMB1MS9N.js} +3 -3
  12. package/dist/frontend/{Icon-CooFj4Ee.js → Icon-Db-o32_E.js} +1 -1
  13. package/dist/frontend/{SettingsDialog-BB7h7GWw.js → SettingsDialog-DEx1eEZm.js} +290 -290
  14. package/dist/frontend/ShareDialog-ChZogJtW.js +166 -0
  15. package/dist/frontend/Sidebar-BdB8CfXS.js +2037 -0
  16. package/dist/frontend/TagCreateDialog-Bb0-Vtzh.js +261 -0
  17. package/dist/frontend/api/attachments.js +1 -1
  18. package/dist/frontend/api/categories.d.ts +3 -3
  19. package/dist/frontend/api/categories.js +1 -1
  20. package/dist/frontend/api/documents.js +1 -1
  21. package/dist/frontend/api/share.js +1 -1
  22. package/dist/frontend/api/tags.js +1 -1
  23. package/dist/frontend/{api-keys-CpkrA8rD.js → api-keys-DIwAdYkg.js} +10 -10
  24. package/dist/frontend/app-shell.d.ts +5 -1
  25. package/dist/frontend/app-shell.js +83 -72
  26. package/dist/frontend/{attachments-BuILSs56.js → attachments-C2DBzU-r.js} +13 -13
  27. package/dist/frontend/{camera-iKXDOOWT.js → camera-CzCxBOpc.js} +2 -2
  28. package/dist/frontend/{categories-Drnns7N6.js → categories-X7gK8azc.js} +0 -2
  29. package/dist/frontend/{check-D-UuvBuh.js → check-BIi-Ghti.js} +2 -2
  30. package/dist/frontend/{chevron-down-CiPtYyFh.js → chevron-down-C2ft7XUV.js} +2 -2
  31. package/dist/frontend/{circle-check-tSPE1V6t.js → circle-check-BrqfiQH1.js} +2 -2
  32. package/dist/frontend/{clock-DJHbHZb8.js → clock-Dz86E4Kz.js} +2 -2
  33. package/dist/frontend/collaboration.d.ts +4 -2
  34. package/dist/frontend/collaboration.js +114 -89
  35. package/dist/frontend/components/category-dialog.js +1 -1
  36. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  37. package/dist/frontend/components/delete-dialog.js +1 -1
  38. package/dist/frontend/components/editor/document-editor.js +1169 -1168
  39. package/dist/frontend/components/editor/document-title.js +2 -2
  40. package/dist/frontend/components/editor/markdown-toggle.js +4 -4
  41. package/dist/frontend/components/folder-node.js +1 -1
  42. package/dist/frontend/components/folder-tree-selector.js +1 -1
  43. package/dist/frontend/components/save-as-dialog.js +145 -144
  44. package/dist/frontend/components/settings.js +1 -1
  45. package/dist/frontend/components/share-dialog.js +1 -1
  46. package/dist/frontend/components/sidebar.js +1 -1
  47. package/dist/frontend/components/tag-create-dialog.js +1 -1
  48. package/dist/frontend/components/version-history.js +34 -34
  49. package/dist/frontend/{confirm-dialog-C4jTRbiS.js → confirm-dialog-CzmoZw3a.js} +20 -20
  50. package/dist/frontend/{copy-GppwRMjX.js → copy-CvCh4ZVt.js} +2 -2
  51. package/dist/frontend/dashboard.js +1025 -1011
  52. package/dist/frontend/{dialog-Bevp9mmM.js → dialog-Ce79C9fd.js} +1 -1
  53. package/dist/frontend/{dist-C3857Spp.js → dist-DQa_OHOa.js} +2 -2
  54. package/dist/frontend/{documents-Bc7b_MSZ.js → documents-CwCs1rA7.js} +52 -12
  55. package/dist/frontend/{dropdown-menu-CRSby3e9.js → dropdown-menu-Cre80-CJ.js} +2 -2
  56. package/dist/frontend/{folder-DeWhnD7O.js → folder-Cx60MRpi.js} +3 -3
  57. package/dist/frontend/i18n.js +3 -3
  58. package/dist/frontend/{messages-C5Q890i2.js → messages-DIovIZrK.js} +46 -44
  59. package/dist/frontend/{rotate-ccw-B4Q7brmV.js → rotate-ccw-ta4NosZ0.js} +2 -2
  60. package/dist/frontend/{route-context-BqQQ5c4i.js → route-context-DYQlUfzL.js} +14 -11
  61. package/dist/frontend/search.js +99 -99
  62. package/dist/frontend/{share-Cu7SSJuJ.js → share-D7JtkC85.js} +2 -2
  63. package/dist/frontend/{tag-HxRazVN_.js → tag-DhVFHMcV.js} +3 -3
  64. package/dist/frontend/{tag-store.svelte-CG7RrlDT.js → tag-store.svelte-ogVCMCbv.js} +1 -1
  65. package/dist/frontend/{tags-CtCV0Djo.js → tags-BdCaMGfj.js} +18 -18
  66. package/dist/frontend/{x-CzBsnJ2x.js → x-cfdlccjs.js} +2 -2
  67. package/dist/frontend-ssr/api/attachments.js +1 -1
  68. package/dist/frontend-ssr/api/categories.js +1 -1
  69. package/dist/frontend-ssr/api/documents.js +1 -1
  70. package/dist/frontend-ssr/api/share.js +1 -1
  71. package/dist/frontend-ssr/api/tags.js +1 -1
  72. package/dist/frontend-ssr/app-shell.js +30 -26
  73. package/dist/frontend-ssr/assets/{CategoryDialog-BcGW8-Kf.js → CategoryDialog-CLAGMZPz.js} +12 -10
  74. package/dist/frontend-ssr/assets/ConfirmDialog-BhAelejz.js +131 -0
  75. package/dist/frontend-ssr/assets/{CreateSnapshotDialog-1bROJ-Rn.js → CreateSnapshotDialog-DNAjd4eD.js} +2 -2
  76. package/dist/frontend-ssr/assets/{DatePicker-B1ML8OVz.js → DatePicker-Cp6Qmgdb.js} +17 -29
  77. package/dist/frontend-ssr/assets/{DeleteDialog-tBYaP0L3.js → DeleteDialog-DG9Lm38J.js} +2 -2
  78. package/dist/frontend-ssr/assets/{FolderNode-CpHrpOED.js → FolderNode-Ty6fMbDu.js} +5 -5
  79. package/dist/frontend-ssr/assets/{FolderTreeSelector-DZNZ2oI6.js → FolderTreeSelector-Bxi8EqMm.js} +8 -12
  80. package/dist/frontend-ssr/assets/{Icon-B0Zqppjo.js → Icon-QwirKi9Y.js} +16 -28
  81. package/dist/frontend-ssr/assets/{SettingsDialog-C2SMWJL8.js → SettingsDialog-BymUxBgg.js} +20 -27
  82. package/dist/frontend-ssr/assets/{ShareDialog-vMvJLRfn.js → ShareDialog-C-9VDKSz.js} +3 -1
  83. package/dist/frontend-ssr/assets/{Sidebar-DKqmwreh.js → Sidebar-DzbIUZFc.js} +45 -55
  84. package/dist/frontend-ssr/assets/{TagCreateDialog-B0DPEfmQ.js → TagCreateDialog-B7wDbVqG.js} +7 -5
  85. package/dist/frontend-ssr/assets/{api-keys-DFqX39MT.js → api-keys-DIbclwj5.js} +10 -10
  86. package/dist/frontend-ssr/assets/{attachments-CWBxE3Vz.js → attachments-CXgatN0B.js} +9 -9
  87. package/dist/frontend-ssr/assets/{camera-CdxscTw-.js → camera-D6s20LDi.js} +6 -10
  88. package/dist/frontend-ssr/assets/{categories-CTCtdv7V.js → categories-av9xjeg5.js} +0 -2
  89. package/dist/frontend-ssr/assets/{chevron-down-CSSNGNh_.js → chevron-down-CvqKATjM.js} +6 -10
  90. package/dist/frontend-ssr/assets/{chevron-right-B4p7Sk6X.js → chevron-right-DKD7WXjz.js} +6 -10
  91. package/dist/frontend-ssr/assets/{circle-check-CI1v4vYh.js → circle-check-CPS9dKEo.js} +6 -10
  92. package/dist/frontend-ssr/assets/{clock-IL-eX2di.js → clock-CzsE58TH.js} +6 -10
  93. package/dist/frontend-ssr/assets/{confirm-dialog-BCthVwUY.js → confirm-dialog-B3C0WeMn.js} +20 -32
  94. package/dist/frontend-ssr/assets/{copy-CjV57nGQ.js → copy-DkkCPkBL.js} +6 -10
  95. package/dist/frontend-ssr/assets/{documents-PObdTOiT.js → documents-CZ-wQohy.js} +58 -12
  96. package/dist/frontend-ssr/assets/{dropdown-menu-Bj5rbqbB.js → dropdown-menu-CGkf8-rb.js} +6 -10
  97. package/dist/frontend-ssr/assets/{folder-DChhG7qN.js → folder-DYIE-XPP.js} +6 -10
  98. package/dist/frontend-ssr/assets/{loader-circle-DZsrZ-er.js → loader-circle-CIEWGyfP.js} +6 -10
  99. package/dist/frontend-ssr/assets/{messages-CvqpZNJe.js → messages-D-auzk9H.js} +23 -1
  100. package/dist/frontend-ssr/assets/{rotate-ccw-BlgWwaiq.js → rotate-ccw-dJSqPyTd.js} +6 -10
  101. package/dist/frontend-ssr/assets/{route-context-uca_b2Px.js → route-context-BPRerEtZ.js} +11 -8
  102. package/dist/frontend-ssr/assets/{share-BTBJelxA.js → share-qTqvd6Lu.js} +2 -2
  103. package/dist/frontend-ssr/assets/{tag-GZEuGWk1.js → tag-BmiVU_Ej.js} +11 -19
  104. package/dist/frontend-ssr/assets/{tag-store.svelte-DvgUduhd.js → tag-store.svelte-BM1lUI_P.js} +1 -1
  105. package/dist/frontend-ssr/assets/{tags-BId2wdYd.js → tags-BQsI_6OW.js} +12 -12
  106. package/dist/frontend-ssr/collaboration.js +37 -12
  107. package/dist/frontend-ssr/components/category-dialog.js +1 -1
  108. package/dist/frontend-ssr/components/create-snapshot-dialog.js +1 -1
  109. package/dist/frontend-ssr/components/delete-dialog.js +1 -1
  110. package/dist/frontend-ssr/components/editor/document-editor.js +108 -186
  111. package/dist/frontend-ssr/components/editor/document-title.js +1 -1
  112. package/dist/frontend-ssr/components/editor/markdown-toggle.js +2 -2
  113. package/dist/frontend-ssr/components/folder-node.js +1 -1
  114. package/dist/frontend-ssr/components/folder-tree-selector.js +1 -1
  115. package/dist/frontend-ssr/components/save-as-dialog.js +7 -5
  116. package/dist/frontend-ssr/components/settings.js +1 -1
  117. package/dist/frontend-ssr/components/share-dialog.js +1 -1
  118. package/dist/frontend-ssr/components/sidebar.js +1 -1
  119. package/dist/frontend-ssr/components/tag-create-dialog.js +1 -1
  120. package/dist/frontend-ssr/components/version-history.js +19 -27
  121. package/dist/frontend-ssr/dashboard.js +78 -113
  122. package/dist/frontend-ssr/i18n.js +1 -1
  123. package/dist/frontend-ssr/search.js +15 -19
  124. package/dist/index.d.ts +1 -1
  125. package/dist/index.js +1 -1
  126. package/dist/types.d.ts +1 -3
  127. package/dist/workspace.d.ts +0 -2
  128. package/dist/workspace.js +0 -2
  129. package/package.json +2 -2
  130. package/packages/cli/src/index.ts +1 -1
  131. package/packages/db/src/with-tenant.ts +2 -0
  132. package/packages/mcp-server/src/index.ts +1 -1
  133. package/dist/frontend/ConfirmDialog-NFGXRa3E.js +0 -214
  134. package/dist/frontend/ShareDialog-BUOkYSlw.js +0 -165
  135. package/dist/frontend/Sidebar-fbtYC3qs.js +0 -2037
  136. package/dist/frontend/TagCreateDialog-B9YZBNHi.js +0 -260
  137. package/dist/frontend-ssr/assets/ConfirmDialog-DjMFKc0V.js +0 -420
@@ -1,2037 +0,0 @@
1
- import { t as e } from "./Icon-CooFj4Ee.js";
2
- import { t } from "./check-D-UuvBuh.js";
3
- import { t as n } from "./chevron-down-CiPtYyFh.js";
4
- import { n as r, t as i } from "./folder-DeWhnD7O.js";
5
- import { t as a } from "./clock-DJHbHZb8.js";
6
- import { t as o } from "./copy-GppwRMjX.js";
7
- import { n as s, r as c, t as l } from "./confirm-dialog-C4jTRbiS.js";
8
- import { t as u } from "./SettingsDialog-BB7h7GWw.js";
9
- import { n as d, t as f } from "./tag-HxRazVN_.js";
10
- import { t as p } from "./x-CzBsnJ2x.js";
11
- import { a as m, i as h, o as g, r as _, t as ee } from "./dropdown-menu-CRSby3e9.js";
12
- import { n as te } from "./dist-C3857Spp.js";
13
- import { $r as v, Ai as ne, C as y, Ci as re, D as b, Di as x, Ei as S, Fi as C, Gt as w, Ht as T, It as E, Jn as ie, Ni as ae, Oi as oe, Qr as D, Ti as O, Tr as k, Un as A, Wn as j, Wt as se, Xr as M, Yn as ce, Yr as N, Zr as P, _i as le, ar as ue, ci as de, er as fe, f as pe, fi as me, li as he, mi as ge, ni as F, nr as _e, rr as ve, tr as ye, ui as be, wi as xe } from "./messages-C5Q890i2.js";
14
- import { n as Se, o as I, r as Ce, t as we } from "./route-context-BqQQ5c4i.js";
15
- import { t as L } from "./utils-DrfHTcei.js";
16
- import { a as Te, i as Ee, n as De, o as Oe, r as ke, t as Ae } from "./dialog-Bevp9mmM.js";
17
- import { t as je } from "./input-BWlOML_m.js";
18
- import { t as Me } from "./label-C2HfJNQ2.js";
19
- import { n as Ne } from "./client-GbtOH90i.js";
20
- import { i as Pe, r as Fe, s as Ie } from "./categories-Drnns7N6.js";
21
- import { t as Le } from "./context-KLiM3QQ0.js";
22
- import { t as R } from "./resolve-BG4HgzpN.js";
23
- import { n as Re, t as ze } from "./dndzone-BzsOINtP.js";
24
- import { c as Be, i as Ve, r as He, s as Ue, t as We } from "./documents-Bc7b_MSZ.js";
25
- import { c as Ge, r as Ke, s as qe, t as Je } from "./folders-ONG03Dkv.js";
26
- import { t as Ye } from "./DeleteDialog-CvAr2WPu.js";
27
- import { t as Xe } from "./clipboard-Cgzxc0_R.js";
28
- import { t as Ze } from "./ShareDialog-BUOkYSlw.js";
29
- import { t as Qe } from "./CategoryDialog-CxVyaBV5.js";
30
- import { n as $e, t as et } from "./document-drop-coordinator-C4xHMjwC.js";
31
- import { a as tt, c as nt, f as rt, i as it, n as at, o as ot, p as st, r as ct, s as lt, t as ut, u as dt } from "./subfolders-refresh-store.svelte-B2dKVmgz.js";
32
- import { t as ft } from "./FolderNode--l1g8bcL.js";
33
- import { a as pt, i as z, n as B, o as V, s as mt, t as ht } from "./tag-store.svelte-CG7RrlDT.js";
34
- import { t as gt } from "./ConfirmDialog-NFGXRa3E.js";
35
- import { i as _t, o as vt } from "./tags-CtCV0Djo.js";
36
- import { t as yt } from "./TagCreateDialog-B9YZBNHi.js";
37
- import "svelte/internal/disclose-version";
38
- import * as H from "svelte/internal/client";
39
- import "svelte/internal/flags/legacy";
40
- import { onDestroy as bt, onMount as xt, untrack as St } from "svelte";
41
- import { page as Ct } from "$app/state";
42
- import { flip as wt } from "svelte/animate";
43
- //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/panel-left-close.svelte
44
- function Tt(t, n) {
45
- let r = H.legacy_rest_props(n, [
46
- "children",
47
- "$$slots",
48
- "$$events",
49
- "$$legacy"
50
- ]), i = [
51
- ["rect", {
52
- width: "18",
53
- height: "18",
54
- x: "3",
55
- y: "3",
56
- rx: "2"
57
- }],
58
- ["path", { d: "M9 3v18" }],
59
- ["path", { d: "m16 15-3-3 3-3" }]
60
- ];
61
- e(t, H.spread_props({ name: "panel-left-close" }, () => r, {
62
- get iconNode() {
63
- return i;
64
- },
65
- children: (e, t) => {
66
- var r = H.comment(), i = H.first_child(r);
67
- H.slot(i, n, "default", {}, null), H.append(e, r);
68
- },
69
- $$slots: { default: !0 }
70
- }));
71
- }
72
- //#endregion
73
- //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/panel-left-open.svelte
74
- function U(t, n) {
75
- let r = H.legacy_rest_props(n, [
76
- "children",
77
- "$$slots",
78
- "$$events",
79
- "$$legacy"
80
- ]), i = [
81
- ["rect", {
82
- width: "18",
83
- height: "18",
84
- x: "3",
85
- y: "3",
86
- rx: "2"
87
- }],
88
- ["path", { d: "M9 3v18" }],
89
- ["path", { d: "m14 9 3 3-3 3" }]
90
- ];
91
- e(t, H.spread_props({ name: "panel-left-open" }, () => r, {
92
- get iconNode() {
93
- return i;
94
- },
95
- children: (e, t) => {
96
- var r = H.comment(), i = H.first_child(r);
97
- H.slot(i, n, "default", {}, null), H.append(e, r);
98
- },
99
- $$slots: { default: !0 }
100
- }));
101
- }
102
- //#endregion
103
- //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/settings.svelte
104
- function W(t, n) {
105
- let r = H.legacy_rest_props(n, [
106
- "children",
107
- "$$slots",
108
- "$$events",
109
- "$$legacy"
110
- ]), i = [["path", { d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" }], ["circle", {
111
- cx: "12",
112
- cy: "12",
113
- r: "3"
114
- }]];
115
- e(t, H.spread_props({ name: "settings" }, () => r, {
116
- get iconNode() {
117
- return i;
118
- },
119
- children: (e, t) => {
120
- var r = H.comment(), i = H.first_child(r);
121
- H.slot(i, n, "default", {}, null), H.append(e, r);
122
- },
123
- $$slots: { default: !0 }
124
- }));
125
- }
126
- //#endregion
127
- //#region src/lib/components/SearchBar.svelte
128
- var Et = H.from_html("<button type=\"button\" class=\"absolute right-2 top-1/2 inline-flex size-5 -translate-y-1/2 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"><!></button>"), Dt = H.from_html("<div><!> <input type=\"text\"/> <!></div>");
129
- function Ot(e, t) {
130
- H.push(t, !0);
131
- let n = H.state(""), r = H.state(null), i = Se();
132
- function a() {
133
- H.set(n, ""), H.get(r)?.focus();
134
- }
135
- var o = Dt(), s = H.child(o);
136
- d(s, { class: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" });
137
- var c = H.sibling(s, 2);
138
- H.remove_input_defaults(c), H.bind_this(c, (e) => H.set(r, e), () => H.get(r));
139
- var l = H.sibling(c, 2), u = (e) => {
140
- var t = Et();
141
- p(H.child(t), { class: "size-3.5" }), H.reset(t), H.template_effect((e, n) => {
142
- H.set_attribute(t, "aria-label", e), H.set_attribute(t, "title", n);
143
- }, [() => E(), () => E()]), H.delegated("click", t, a), H.append(e, t);
144
- };
145
- H.if(l, (e) => {
146
- H.get(n) && e(u);
147
- }), H.reset(o), H.template_effect((e, t, n) => {
148
- H.set_class(o, 1, e), H.set_attribute(c, "placeholder", t), H.set_class(c, 1, n);
149
- }, [
150
- () => H.clsx(L("relative", t.class)),
151
- () => N(),
152
- () => H.clsx(L("flex h-9 w-full rounded-md border border-input bg-transparent pl-9 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", H.get(n) ? "pr-9" : "pr-3"))
153
- ]), H.delegated("keydown", c, (e) => {
154
- e.key === "Enter" && H.get(n).trim() && Ce(i, `/search?q=${encodeURIComponent(H.get(n).trim())}`);
155
- }), H.event("focus", c, () => {}), H.bind_value(c, () => H.get(n), (e) => H.set(n, e)), H.append(e, o), H.pop();
156
- }
157
- H.delegate(["keydown", "click"]);
158
- //#endregion
159
- //#region src/lib/components/sidebar/FolderTree.svelte
160
- var kt = (e, t = H.noop) => {
161
- var n = Pt(), r = H.sibling(H.child(n), 2);
162
- c(r, { class: "size-4 shrink-0 text-muted-foreground" });
163
- var i = H.sibling(r, 2), a = H.child(i, !0);
164
- H.reset(i), H.reset(n), H.template_effect((e) => {
165
- H.set_attribute(n, "href", `/docs/${t().id}`), H.set_class(n, 1, e), H.set_text(a, t().title);
166
- }, [() => H.clsx(L("flex w-full min-w-0 items-center gap-1.5 rounded-md px-2 py-1 text-sm transition-colors hover:bg-accent hover:text-accent-foreground", Ct.params.id === t().id && "bg-accent text-accent-foreground font-medium"))]), H.append(e, n);
167
- }, At = H.from_html("<button><!></button>"), jt = H.from_html("<!> <!> <!>", 1), Mt = H.from_html("<!> <!>", 1), Nt = H.from_html("<button type=\"button\"><!></button>"), Pt = H.from_html("<a data-sveltekit-noscroll=\"\"><span class=\"w-3.5 shrink-0\"></span> <!> <span class=\"min-w-0 truncate\"> </span></a>"), Ft = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), It = H.from_html("<!> <!> <!> <!> <!> <!>", 1), Lt = H.from_html("<div><!></div>"), Rt = H.from_html("<div class=\"group/doc flex w-full min-w-0 items-center gap-1\"><!> <!> <!></div>"), zt = H.from_html("<div class=\"ml-0.5 space-y-0.5 border-l border-border pl-0.5\"><div></div> <div></div></div>"), Bt = H.from_html("<div class=\"group/bucket\"><div class=\"flex w-full min-w-0 items-center gap-0.5\"><button type=\"button\"><!> <span class=\"min-w-0 truncate\"> </span></button> <!></div> <!></div>"), Vt = H.from_html("<div class=\"group/bucket\"><div class=\"flex w-full min-w-0 items-center gap-0.5\"><button type=\"button\"><!> <span class=\"min-w-0 truncate\"> </span></button></div> <!></div>"), Ht = H.from_html("<p id=\"rename-input-error\" class=\"text-xs text-destructive\" role=\"alert\"> </p>"), Ut = H.from_html("<!> <form class=\"space-y-4\"><div class=\"space-y-2\"><!> <!> <!></div></form> <!>", 1), Wt = H.from_html("<div class=\"space-y-1\"><div class=\"mb-2 flex items-center justify-between gap-1\"><a href=\"/\" class=\"block flex-1 px-2 text-xs font-medium uppercase tracking-wider text-muted-foreground transition-colors hover:text-foreground\"> </a> <button type=\"button\" class=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"><!></button></div> <!> <!> <div class=\"min-h-[8px] space-y-1\"></div> <!> <button type=\"button\" class=\"flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!> <span> </span></button></div> <!> <!> <!> <!> <!>", 1);
168
- function Gt(e, i) {
169
- H.push(i, !0);
170
- let a = (e, t = H.noop) => {
171
- m(e, {
172
- children: (e, n) => {
173
- var r = Mt(), i = H.first_child(r);
174
- ee(i, {
175
- child: (e, t) => {
176
- let n = () => (t?.()).props;
177
- var r = At(), i = (e) => {
178
- e.preventDefault(), e.stopPropagation();
179
- };
180
- H.attribute_effect(r, (e, t) => ({
181
- ...n(),
182
- type: "button",
183
- class: "inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-accent-foreground group-hover/doc:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
184
- "aria-label": e,
185
- title: t,
186
- onclick: i
187
- }), [() => w(), () => w()]), g(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
188
- },
189
- $$slots: { child: !0 }
190
- }), h(H.sibling(i, 2), {
191
- align: "end",
192
- children: (e, n) => {
193
- var r = jt(), i = H.first_child(r);
194
- _(i, {
195
- onSelect: () => rr("doc", t().id, t().title),
196
- children: (e, t) => {
197
- H.next();
198
- var n = H.text();
199
- H.template_effect((e) => H.set_text(n, e), [() => ge()]), H.append(e, n);
200
- },
201
- $$slots: { default: !0 }
202
- });
203
- var a = H.sibling(i, 2);
204
- _(a, {
205
- onSelect: () => sr(t().id, t().title),
206
- children: (e, t) => {
207
- H.next();
208
- var n = H.text();
209
- H.template_effect((e) => H.set_text(n, e), [() => xe()]), H.append(e, n);
210
- },
211
- $$slots: { default: !0 }
212
- }), _(H.sibling(a, 2), {
213
- class: "text-destructive focus:text-destructive",
214
- onSelect: () => or("doc", t().id, t().title),
215
- children: (e, t) => {
216
- H.next();
217
- var n = H.text();
218
- H.template_effect((e) => H.set_text(n, e), [() => ye()]), H.append(e, n);
219
- },
220
- $$slots: { default: !0 }
221
- }), H.append(e, r);
222
- },
223
- $$slots: { default: !0 }
224
- }), H.append(e, r);
225
- },
226
- $$slots: { default: !0 }
227
- });
228
- }, c = (e, n = H.noop) => {
229
- var r = Nt(), i = H.child(r), a = (e) => {
230
- te(e, { class: "size-3.5 animate-spin" });
231
- }, s = (e) => {
232
- t(e, { class: "size-3.5" });
233
- }, c = (e) => {
234
- o(e, { class: "size-3.5" });
235
- };
236
- H.if(i, (e) => {
237
- H.get(cn) === n().id ? e(a) : H.get(sn) === n().id ? e(s, 1) : e(c, -1);
238
- }), H.reset(r), H.template_effect((e, t) => {
239
- H.set_class(r, 1, `inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-accent-foreground group-hover/doc:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${H.get(sn) === n().id || H.get(cn) === n().id ? "opacity-100" : ""}`), H.set_attribute(r, "aria-label", e), H.set_attribute(r, "title", t), r.disabled = H.get(cn) === n().id;
240
- }, [() => se(), () => se()]), H.delegated("click", r, (e) => {
241
- e.preventDefault(), e.stopPropagation(), un(n().id);
242
- }), H.append(e, r);
243
- }, u = (e, t = H.noop) => {
244
- ft(e, {
245
- get folder() {
246
- return t();
247
- },
248
- get expandedFolderIds() {
249
- return H.get(D);
250
- },
251
- onToggleFolder: On,
252
- onRename: (e, t) => rr("folder", e, t),
253
- onDelete: (e, t) => or("folder", e, t),
254
- onCreateSubfolder: Nn,
255
- onShare: cr,
256
- get dragDisabled() {
257
- return H.get(F);
258
- },
259
- get isDraggingGlobal() {
260
- return H.get(I);
261
- },
262
- get isDraggingFolder() {
263
- return H.get(Le);
264
- },
265
- get isDraggingDoc() {
266
- return H.get(R);
267
- },
268
- get draggedDocId() {
269
- return H.get(z);
270
- },
271
- onScheduleFolderExpand: fn,
272
- onClearExpandTimer: dn,
273
- onConsiderDocs: In,
274
- onFinalizeDocs: Ln,
275
- onConsiderSubfolders: Gn,
276
- onFinalizeSubfolders: Kn,
277
- onDropOnFolder: Vn,
278
- get folderDocsMap() {
279
- return H.get(Ct);
280
- },
281
- folderFlipDurationMs: p,
282
- documentFlipDurationMs: v,
283
- get docRowInner() {
284
- return kt;
285
- },
286
- get copyButton() {
287
- return c;
288
- },
289
- get docMenu() {
290
- return a;
291
- }
292
- });
293
- }, d = Se(), f = we(), p = 200, v = 80, b = H.state(H.proxy([])), T = H.state(H.proxy([])), E = H.state(H.proxy([])), D = H.state(H.proxy(/* @__PURE__ */ new Set())), O = H.state(H.proxy(/* @__PURE__ */ new Set())), k = H.state(!0), j = H.state(null), M = H.state(null), N = null;
294
- function P(e) {
295
- H.set(M, e, !0), N &&= (clearTimeout(N), null), e !== null && (N = setTimeout(() => {
296
- H.set(M, null), N = null;
297
- }, 5e3));
298
- }
299
- let F = H.state(!1), I = H.state(!1), Le = H.state(!1), R = H.state(!1), z = H.state(null), V = 0, mt = H.state(!1), gt = H.state(!1), _t = 0, vt = Promise.resolve(), yt = H.state(H.proxy([])), Ct = H.state(H.proxy({})), Tt = H.state(H.proxy({})), U = H.state(H.proxy({})), W = H.state(H.proxy([])), Et = H.state(!1), Dt = H.state(null), Ot = H.state(null), Pt = H.state(!1), Gt = H.state(null), Kt = H.state(""), G = H.state(null), K = H.state(!1), qt = H.state(!1), q = H.state(null), Jt = H.state(!1), Yt = H.state(""), Xt = H.state(""), Zt = H.state(""), Qt = H.state(""), $t = H.state(""), en = H.state(""), tn = H.state(!1), nn = H.state("create"), J = H.state(null), rn = H.state(!1), Y = null, an = H.state(null), X = null, on = H.state(null), sn = H.state(null), cn = H.state(null), ln = null;
300
- async function un(e) {
301
- if (typeof window > "u") return;
302
- let t = H.get(E).find((t) => t.id === e), n = "";
303
- H.set(cn, e, !0);
304
- try {
305
- n = (await Ve(e, f.fetch)).content ?? "";
306
- } catch (e) {
307
- console.error("FolderTree: failed to fetch full document for copy", e), n = t?.excerpt ?? t?.content ?? "";
308
- } finally {
309
- H.set(cn, null);
310
- }
311
- n && await Xe(n) && (H.set(sn, e, !0), ln && clearTimeout(ln), ln = setTimeout(() => {
312
- H.set(sn, null), ln = null;
313
- }, 2e3));
314
- }
315
- function dn() {
316
- Y !== null && (clearTimeout(Y), Y = null), H.set(an, null);
317
- }
318
- function fn(e) {
319
- dn(), !H.get(D).has(e) && (H.set(an, e, !0), Y = setTimeout(() => {
320
- if (H.get(an) === e && !H.get(D).has(e)) {
321
- let t = new Set(H.get(D));
322
- t.add(e), H.set(D, t, !0);
323
- }
324
- Y = null, H.set(an, null);
325
- }, 400));
326
- }
327
- function pn() {
328
- X !== null && (clearTimeout(X), X = null), H.set(on, null);
329
- }
330
- function mn(e) {
331
- pn(), !(e === $ ? H.get(k) : H.get(O).has(e)) && (H.set(on, e, !0), X = setTimeout(() => {
332
- if (H.get(on) === e) if (e === $) H.set(k, !0);
333
- else {
334
- let t = new Set(H.get(O));
335
- t.add(e), H.set(O, t, !0);
336
- }
337
- X = null, H.set(on, null);
338
- }, 400));
339
- }
340
- function hn(e) {
341
- return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e && typeof e.id == "string") : [];
342
- }
343
- function gn(e) {
344
- let t = [], n = {}, r = {};
345
- for (let i of e) if (i.folderId) {
346
- let e = r[i.folderId] ?? [];
347
- e.push(i), r[i.folderId] = e;
348
- } else if (i.categoryId) {
349
- let e = n[i.categoryId] ?? [];
350
- e.push(i), n[i.categoryId] = e;
351
- } else t.push(i);
352
- return {
353
- root: t,
354
- byCategory: n,
355
- byFolder: r
356
- };
357
- }
358
- function _n() {
359
- let { root: e, byCategory: t, byFolder: n } = gn(H.get(E));
360
- H.set(yt, e, !0), H.set(Tt, t, !0), H.set(Ct, n, !0);
361
- }
362
- function vn() {
363
- let e = /* @__PURE__ */ new Map();
364
- for (let t of H.get(T)) e.set(t.id, []);
365
- let t = [];
366
- for (let n of H.get(b)) n.categoryId && e.has(n.categoryId) ? e.get(n.categoryId)?.push(n) : t.push(n);
367
- let n = {};
368
- for (let t of H.get(T)) n[t.id] = e.get(t.id) ?? [];
369
- n[$] = t, H.set(U, n, !0);
370
- }
371
- H.user_effect(() => {
372
- H.get(b), H.get(T), !(H.get(mt) || H.get(gt)) && (H.set(W, H.get(br).map((e) => ({
373
- id: e.id,
374
- category: e.category,
375
- folders: e.folders
376
- })), !0), vn());
377
- });
378
- async function yn() {
379
- try {
380
- let e = await qe(null, !1, f.fetch);
381
- H.set(b, (e[0]?.children ?? []).map((e) => (st(e.id, e.parentId ?? null, e.categoryId ?? null, e.order ?? 0), {
382
- id: e.id,
383
- name: e.name,
384
- categoryId: e.categoryId ?? null,
385
- parentId: e.parentId,
386
- order: e.order ?? 0
387
- })), !0), H.set(j, null);
388
- } catch (e) {
389
- console.error("FolderTree: failed to load folders", e), H.set(j, "Failed to load folders");
390
- }
391
- }
392
- async function bn() {
393
- try {
394
- let e = await Pe(f.fetch), t = /* @__PURE__ */ new Set();
395
- for (let n of e) {
396
- if (t.has(n.id)) throw Error(`Categories response contains duplicate id: ${n.id}`);
397
- t.add(n.id);
398
- }
399
- H.set(T, e, !0);
400
- } catch (e) {
401
- console.error("FolderTree: failed to load categories", e);
402
- }
403
- }
404
- let xn = 0;
405
- async function Sn() {
406
- let e = ++xn;
407
- try {
408
- let t = B(), n = await Ue({
409
- limit: 100,
410
- ...t ? { tag: t } : {}
411
- }, f.fetch);
412
- if (e !== xn) return;
413
- H.set(E, n.items.map((e) => nt(e.id) ? {
414
- ...e,
415
- folderId: nt(e.id)?.folderId ?? null,
416
- categoryId: nt(e.id)?.categoryId ?? null
417
- } : e), !0), H.get(E).forEach((e) => {
418
- e.id, e.title, e.categoryId, e.folderId, Object.keys(e), rt(e.id, e.folderId ?? null, e.categoryId ?? null);
419
- }), _n();
420
- } catch (e) {
421
- console.error("FolderTree: failed to load documents", e), H.set(j, "Failed to load documents");
422
- }
423
- }
424
- async function Z() {
425
- We(), await Promise.all([
426
- yn(),
427
- bn(),
428
- Sn()
429
- ]);
430
- }
431
- function Cn(e, t) {
432
- xn++, rt(e, t.folderId, t.categoryId), H.set(E, H.get(E).map((n) => n.id === e ? {
433
- ...n,
434
- ...t
435
- } : n), !0), _n();
436
- }
437
- let wn = $e({
438
- patch: (e, t) => Be(e, t, f.fetch),
439
- optimistic: (e, t) => dt(e, t.folderId, t.categoryId),
440
- acknowledge: ut,
441
- rollback: Cn,
442
- onError: (e) => {
443
- console.error("FolderTree: document move failed", e), P(e instanceof Error ? e.message : "Move failed");
444
- }
445
- });
446
- function Tn(e, t) {
447
- let n = ct(e);
448
- n && (n.folderId === t.folderId && n.categoryId === t.categoryId || wn(e, t, n).catch(() => void 0));
449
- }
450
- let Q = et({ persist: Tn });
451
- xt(() => {
452
- let e = setTimeout(() => {
453
- Z();
454
- }, 500);
455
- return () => clearTimeout(e);
456
- }), bt(() => {
457
- Q.cancel(), N &&= (clearTimeout(N), null), Y &&= (clearTimeout(Y), null), X &&= (clearTimeout(X), null);
458
- }), H.user_effect(() => {
459
- let e = ht(), t = ot();
460
- e === 0 && t === 0 || Z();
461
- }), H.user_effect(() => {
462
- if (it() === 0) return;
463
- let e = lt();
464
- e && St(() => {
465
- xn++;
466
- let t = H.get(E).findIndex((t) => t.id === e.id);
467
- t !== -1 && (H.set(E, H.get(E).map((n, r) => r === t ? {
468
- ...n,
469
- folderId: e.folderId,
470
- categoryId: e.categoryId
471
- } : n), !0), _n());
472
- });
473
- });
474
- let En = !0;
475
- H.user_effect(() => {
476
- if (B(), En) {
477
- En = !1;
478
- return;
479
- }
480
- Z();
481
- });
482
- async function Dn() {
483
- await Z();
484
- }
485
- function On(e) {
486
- let t = H.get(D).has(e), n = new Set(H.get(D));
487
- t ? n.delete(e) : n.add(e), H.set(D, n, !0), H.set(F, !0), typeof window < "u" && window.setTimeout(() => {
488
- H.set(F, !1);
489
- }, 250);
490
- }
491
- function kn(e) {
492
- let t = new Set(H.get(O));
493
- t.has(e) ? t.delete(e) : t.add(e), H.set(O, t, !0);
494
- }
495
- function An() {
496
- H.set(k, !H.get(k));
497
- }
498
- function jn() {
499
- H.set(Dt, null), H.set(Ot, null), H.set(Et, !0);
500
- }
501
- function Mn(e) {
502
- H.set(Dt, null), H.set(Ot, e, !0), H.set(Et, !0);
503
- }
504
- function Nn(e) {
505
- H.set(Dt, e, !0), H.set(Ot, null), H.set(Et, !0);
506
- }
507
- async function Pn(e) {
508
- let t = H.get(Dt), n = await Je({
509
- name: e,
510
- parentId: t,
511
- categoryId: H.get(Ot)
512
- }, f.fetch);
513
- return await yn(), t && (H.set(D, new Set(H.get(D)).add(t), !0), at(t)), n;
514
- }
515
- function Fn(e, t) {
516
- if (e.kind === "root") {
517
- H.set(yt, t, !0);
518
- return;
519
- }
520
- if (e.kind === "category") {
521
- H.set(Tt, {
522
- ...H.get(Tt),
523
- [e.id]: t
524
- }, !0);
525
- return;
526
- }
527
- H.set(Ct, {
528
- ...H.get(Ct),
529
- [e.id]: t
530
- }, !0);
531
- }
532
- function In(e) {
533
- return (t) => {
534
- t.stopPropagation();
535
- let n = !H.get(R);
536
- H.set(I, !0), H.set(R, !0), t.detail.info?.id && (H.set(z, t.detail.info.id, !0), n && Q.begin(t.detail.info.id, ++V)), Fn(e, hn(t.detail.items)), dn();
537
- };
538
- }
539
- function Ln(e) {
540
- return (t) => {
541
- t.stopPropagation(), Fn(e, hn(t.detail.items)), dn();
542
- let n = t.detail.info?.trigger === "droppedIntoAnother";
543
- t.detail.info?.trigger;
544
- let r = t.detail.info?.id ?? H.get(z);
545
- !n && r && Q.zone(r, Rn(e)), r && Q.end(r, V), H.set(I, !1), H.set(R, !1), typeof window < "u" ? window.setTimeout(() => {
546
- H.get(z) === r && H.set(z, null);
547
- }, 0) : H.set(z, null);
548
- };
549
- }
550
- function Rn(e) {
551
- return {
552
- folderId: e.kind === "folder" ? e.id : null,
553
- categoryId: e.kind === "category" ? e.id : e.kind === "root" ? null : tt(e.id)?.categoryId ?? null
554
- };
555
- }
556
- function zn(e) {
557
- (H.get(z) ?? Q.pendingId(V)) && (e.preventDefault(), e.dataTransfer && (e.dataTransfer.dropEffect = "move"));
558
- }
559
- function Bn(e, t) {
560
- let n = H.get(z) ?? Q.pendingId(V);
561
- if (!n) return;
562
- e.preventDefault(), e.stopPropagation();
563
- let r = t === $ ? null : t, i = ct(n);
564
- if (!i) return;
565
- let a = i.folderId !== null, o = i.categoryId !== r;
566
- (a || o) && Q.header(n, {
567
- folderId: null,
568
- categoryId: r
569
- }), H.set(z, null);
570
- }
571
- function Vn(e, t) {
572
- let n = H.get(z) ?? Q.pendingId(V);
573
- if (!n) return;
574
- e.preventDefault(), e.stopPropagation();
575
- let r = tt(t)?.categoryId ?? null, i = ct(n);
576
- i && (i.folderId !== t && Q.header(n, {
577
- folderId: t,
578
- categoryId: r
579
- }), H.set(z, null));
580
- }
581
- let Hn = "parent:";
582
- function Un(e) {
583
- return (t) => {
584
- t.stopPropagation(), H.set(I, !0), H.set(Le, !0);
585
- let n = qn(t.detail.items);
586
- e.startsWith(Hn) || H.set(U, {
587
- ...H.get(U),
588
- [e]: n
589
- }, !0);
590
- };
591
- }
592
- function Wn(e) {
593
- return (t) => {
594
- t.stopPropagation();
595
- let n = qn(t.detail.items), r = t.detail.info?.trigger === "droppedIntoAnother";
596
- e.startsWith(Hn) || H.set(U, {
597
- ...H.get(U),
598
- [e]: n
599
- }, !0), H.set(I, !1), H.set(Le, !1), r || Yn(e, n);
600
- };
601
- }
602
- function Gn(e) {
603
- return Un(`${Hn}${e}`);
604
- }
605
- function Kn(e) {
606
- return Wn(`${Hn}${e}`);
607
- }
608
- function qn(e) {
609
- return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e && typeof e.id == "string") : [];
610
- }
611
- function Jn(e) {
612
- let t = /* @__PURE__ */ new Set();
613
- if (!e) return t;
614
- let n = e;
615
- for (; n && !t.has(n);) t.add(n), n = tt(n)?.parentId ?? null;
616
- return t;
617
- }
618
- async function Yn(e, t) {
619
- let n = e.startsWith(Hn), r = n || e === $ ? null : e, i = n && e.slice(7) || null, a = /* @__PURE__ */ new Map(), o = n ? Jn(i) : /* @__PURE__ */ new Set();
620
- if (n) for (let e of t) {
621
- if (o.has(e.id)) continue;
622
- let t = tt(e.id);
623
- t && t.parentId !== i && (a.set(e.id, {
624
- folderId: e.id,
625
- parentId: i
626
- }), st(e.id, i, t.categoryId, t.order));
627
- }
628
- else for (let e of t) {
629
- let t = tt(e.id);
630
- if (!t) continue;
631
- let n = t.categoryId !== r, i = t.parentId !== null;
632
- if (n || i) {
633
- let o = { folderId: e.id };
634
- n && (o.categoryId = r), i && (o.parentId = null), a.set(e.id, o), st(e.id, null, r, t.order);
635
- }
636
- }
637
- t.forEach((e, t) => {
638
- if (n && o.has(e.id)) return;
639
- let r = tt(e.id);
640
- if (!r) return;
641
- let i = r.order !== t, s = a.get(e.id);
642
- s ? (s.order = t, st(e.id, s.parentId === void 0 ? r.parentId : s.parentId, s.categoryId === void 0 ? r.categoryId : s.categoryId, t)) : i && (a.set(e.id, {
643
- folderId: e.id,
644
- order: t
645
- }), st(e.id, r.parentId, r.categoryId, t));
646
- });
647
- let s = Array.from(a.values()), c = /* @__PURE__ */ new Set();
648
- if (n) {
649
- i && c.add(i);
650
- for (let e of t) {
651
- let t = e.parentId ?? null;
652
- t !== null && t !== i && c.add(t);
653
- }
654
- }
655
- if (s.length !== 0) try {
656
- await Promise.all(s.map((e) => {
657
- let { folderId: t, ...n } = e;
658
- return Ge(t, n, f.fetch);
659
- })), await Z(), vn();
660
- for (let e of c) at(e);
661
- } catch (e) {
662
- console.error("FolderTree: folder DnD persist failed", e), P(e instanceof Error ? `Move failed: ${e.message}` : "Move failed: unknown error");
663
- }
664
- }
665
- function Xn(e) {
666
- e.stopPropagation(), H.set(I, !0), H.set(mt, !0), H.set(W, Qn($n(e.detail.items)), !0);
667
- }
668
- function Zn(e) {
669
- e.stopPropagation();
670
- let t = Qn(er(e.detail.items));
671
- H.set(W, t, !0), H.set(I, !1), H.set(mt, !1), tr(t);
672
- }
673
- function Qn(e) {
674
- let t = e.filter((e) => e.id !== $), n = H.get(W).find((e) => e.id === $) ?? H.get(br).find((e) => e.id === $);
675
- return n ? [...t, n] : t;
676
- }
677
- function $n(e) {
678
- if (!Array.isArray(e)) return [];
679
- let t = [];
680
- for (let n of e) {
681
- if (typeof n != "object" || !n || typeof n.id != "string") continue;
682
- let e = n;
683
- t.push(e);
684
- }
685
- return t;
686
- }
687
- function er(e) {
688
- let t = $n(e), n = new Set(t.filter((e) => e[Re]).map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = new Map([...H.get(W), ...H.get(br)].map((e) => [e.id, e])), a = [];
689
- for (let e of t) {
690
- if (n.has(e.id) && !e.isDndShadowItem || r.has(e.id)) continue;
691
- r.add(e.id);
692
- let t = i.get(e.id) ?? e;
693
- a.push({
694
- id: t.id,
695
- category: t.category,
696
- folders: t.folders
697
- });
698
- }
699
- return a;
700
- }
701
- function tr(e) {
702
- let t = ++_t;
703
- H.set(gt, !0);
704
- let n = e.map((e) => ({ ...e }));
705
- vt = vt.catch(() => void 0).then(async () => {
706
- try {
707
- await nr(n);
708
- } catch (e) {
709
- console.error("FolderTree: category DnD persist failed", e), P(e instanceof Error ? `Reorder failed: ${e.message}` : "Reorder failed: unknown error");
710
- } finally {
711
- t === _t && (await Z(), H.set(gt, !1));
712
- }
713
- });
714
- }
715
- async function nr(e) {
716
- let t = [];
717
- if (e.forEach((e, n) => {
718
- e.category && t.push({
719
- id: e.category.id,
720
- order: n
721
- });
722
- }), t.length !== 0) for (let e of t) await Ie(e.id, { order: e.order }, f.fetch);
723
- }
724
- function rr(e, t, n) {
725
- H.set(Gt, {
726
- kind: e,
727
- id: t,
728
- name: n
729
- }, !0), H.set(Kt, n, !0), H.set(G, null), H.set(Pt, !0);
730
- }
731
- function ir() {
732
- H.set(Pt, !1), H.set(Gt, null), H.set(Kt, ""), H.set(G, null), H.set(K, !1);
733
- }
734
- async function ar(e) {
735
- e?.preventDefault();
736
- let t = H.get(Gt);
737
- if (!t) return;
738
- let n = H.get(Kt).trim();
739
- if (n.length === 0) {
740
- H.set(G, "Name is required");
741
- return;
742
- }
743
- H.set(K, !0);
744
- try {
745
- t.kind === "folder" ? await Ge(t.id, { name: n }, f.fetch) : await Be(t.id, { title: n }, f.fetch), ir(), await Z(), pt();
746
- } catch (e) {
747
- console.error("FolderTree: rename failed", e), H.set(G, e instanceof Error ? e.message : ue(), !0);
748
- } finally {
749
- H.set(K, !1);
750
- }
751
- }
752
- function or(e, t, n) {
753
- H.set(q, {
754
- kind: e,
755
- id: t,
756
- name: n
757
- }, !0), H.set(qt, !0);
758
- }
759
- function sr(e, t) {
760
- H.set(Yt, e, !0), H.set(Xt, ""), H.set($t, ""), H.set(Zt, t, !0), H.set(Qt, ""), H.set(en, ""), H.set(Jt, !0);
761
- }
762
- function cr(e, t) {
763
- H.set(Xt, e, !0), H.set(Yt, ""), H.set($t, ""), H.set(Qt, t, !0), H.set(Zt, ""), H.set(en, ""), H.set(Jt, !0);
764
- }
765
- function lr(e, t) {
766
- H.set($t, e, !0), H.set(Yt, ""), H.set(Xt, ""), H.set(en, t, !0), H.set(Zt, ""), H.set(Qt, ""), H.set(Jt, !0);
767
- }
768
- function ur() {
769
- H.set(qt, !1), H.set(q, null);
770
- }
771
- async function dr() {
772
- let e = H.get(q);
773
- e && (e.kind === "folder" ? await Ke(e.id, f.fetch) : await He(e.id, f.fetch), await Z(), pt());
774
- }
775
- function fr() {
776
- H.set(nn, "create"), H.set(J, null), H.set(tn, !0);
777
- }
778
- function pr(e) {
779
- H.set(nn, "edit"), H.set(J, e, !0), H.set(tn, !0);
780
- }
781
- function mr(e) {
782
- H.set(nn, "delete"), H.set(J, e, !0), H.set(tn, !0);
783
- }
784
- function hr() {
785
- H.get(rn) || (H.set(tn, !1), H.set(J, null), H.set(rn, !1));
786
- }
787
- async function gr(e) {
788
- H.set(rn, !0);
789
- try {
790
- let t = {
791
- name: e.name,
792
- apiMode: e.apiMode,
793
- apiPermissionRead: e.apiPermissionRead,
794
- apiPermissionEdit: e.apiPermissionEdit,
795
- apiPermissionWrite: e.apiPermissionWrite
796
- }, n;
797
- return n = H.get(nn) === "edit" && H.get(J) ? await Ne(`/api/categories/${encodeURIComponent(H.get(J).id)}`, {
798
- method: "PATCH",
799
- body: t
800
- }, f.fetch) : await Ne("/api/categories", {
801
- method: "POST",
802
- body: t
803
- }, f.fetch), await Z(), n;
804
- } finally {
805
- H.set(rn, !1);
806
- }
807
- }
808
- async function _r() {
809
- if (H.get(J)) {
810
- H.set(rn, !0);
811
- try {
812
- await Fe(H.get(J).id, f.fetch), await Z();
813
- } finally {
814
- H.set(rn, !1);
815
- }
816
- }
817
- }
818
- let $ = "__uncategorized__", vr = H.derived(() => H.get(W).filter((e) => e.id !== $ && e.category !== null)), yr = H.derived(() => H.get(W).find((e) => e.id === $) ?? null), br = H.derived(() => {
819
- let e = /* @__PURE__ */ new Map();
820
- for (let t of H.get(T)) e.set(t.id, []);
821
- let t = [];
822
- for (let n of H.get(b)) n.categoryId && e.has(n.categoryId) ? e.get(n.categoryId)?.push(n) : t.push(n);
823
- let n = [];
824
- for (let t of H.get(T)) n.push({
825
- id: t.id,
826
- category: t,
827
- folders: e.get(t.id) ?? []
828
- });
829
- return n.push({
830
- id: $,
831
- category: null,
832
- folders: t
833
- }), n;
834
- });
835
- var xr = { refreshFolderTree: Dn }, Sr = Wt(), Cr = H.first_child(Sr), wr = H.child(Cr), Tr = H.child(wr), Er = H.child(Tr, !0);
836
- H.reset(Tr);
837
- var Dr = H.sibling(Tr, 2);
838
- s(H.child(Dr), { class: "size-3.5" }), H.reset(Dr), H.reset(wr);
839
- var Or = H.sibling(wr, 2), kr = (e) => {
840
- var t = Ft(), n = H.child(t, !0);
841
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(j))), H.append(e, t);
842
- };
843
- H.if(Or, (e) => {
844
- H.get(j) && e(kr);
845
- });
846
- var Ar = H.sibling(Or, 2), jr = (e) => {
847
- var t = Ft(), n = H.child(t, !0);
848
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(M))), H.append(e, t);
849
- };
850
- H.if(Ar, (e) => {
851
- H.get(M) && e(jr);
852
- });
853
- var Mr = H.sibling(Ar, 2);
854
- H.each(Mr, 29, () => H.get(vr), (e) => `${e.id}:${e.isDndShadowItem ? "shadow" : "item"}`, (e, t) => {
855
- let i = H.derived(() => H.get(O).has(H.get(t).id));
856
- var o = Bt(), s = H.child(o), l = H.child(s), f = H.child(l), p = (e) => {
857
- n(e, { class: "size-3.5 shrink-0" });
858
- }, te = (e) => {
859
- r(e, { class: "size-3.5 shrink-0" });
860
- };
861
- H.if(f, (e) => {
862
- H.get(i) ? e(p) : e(te, -1);
863
- });
864
- var v = H.sibling(f, 2), ne = H.child(v, !0);
865
- H.reset(v), H.reset(l), m(H.sibling(l, 2), {
866
- children: (e, n) => {
867
- var r = Mt(), i = H.first_child(r);
868
- ee(i, {
869
- child: (e, t) => {
870
- let n = () => (t?.()).props;
871
- var r = At();
872
- H.attribute_effect(r, (e, t) => ({
873
- ...n(),
874
- type: "button",
875
- class: "inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-accent-foreground group-hover/bucket:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
876
- "aria-label": e,
877
- title: t
878
- }), [() => w(), () => w()]), g(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
879
- },
880
- $$slots: { child: !0 }
881
- }), h(H.sibling(i, 2), {
882
- align: "end",
883
- children: (e, n) => {
884
- var r = It(), i = H.first_child(r);
885
- _(i, {
886
- onSelect: () => Ce(d, `/?category=${H.get(t).category.id}`),
887
- children: (e, t) => {
888
- H.next();
889
- var n = H.text();
890
- H.template_effect((e) => H.set_text(n, e), [() => ce()]), H.append(e, n);
891
- },
892
- $$slots: { default: !0 }
893
- });
894
- var a = H.sibling(i, 2);
895
- _(a, {
896
- onSelect: () => Ce(d, `/docs/new?category=${H.get(t).category.id}`),
897
- children: (e, t) => {
898
- H.next();
899
- var n = H.text();
900
- H.template_effect((e) => H.set_text(n, e), [() => ae()]), H.append(e, n);
901
- },
902
- $$slots: { default: !0 }
903
- });
904
- var o = H.sibling(a, 2);
905
- _(o, {
906
- onSelect: () => Mn(H.get(t).category.id),
907
- children: (e, t) => {
908
- H.next();
909
- var n = H.text();
910
- H.template_effect((e) => H.set_text(n, e), [() => le()]), H.append(e, n);
911
- },
912
- $$slots: { default: !0 }
913
- });
914
- var s = H.sibling(o, 2);
915
- _(s, {
916
- onSelect: () => lr(H.get(t).category.id, H.get(t).category.name),
917
- children: (e, t) => {
918
- H.next();
919
- var n = H.text();
920
- H.template_effect((e) => H.set_text(n, e), [() => xe()]), H.append(e, n);
921
- },
922
- $$slots: { default: !0 }
923
- });
924
- var c = H.sibling(s, 2);
925
- _(c, {
926
- onSelect: () => pr(H.get(t).category),
927
- children: (e, t) => {
928
- H.next();
929
- var n = H.text();
930
- H.template_effect((e) => H.set_text(n, e), [() => fe()]), H.append(e, n);
931
- },
932
- $$slots: { default: !0 }
933
- }), _(H.sibling(c, 2), {
934
- class: "text-destructive focus:text-destructive",
935
- onSelect: () => mr(H.get(t).category),
936
- children: (e, t) => {
937
- H.next();
938
- var n = H.text();
939
- H.template_effect((e) => H.set_text(n, e), [() => ye()]), H.append(e, n);
940
- },
941
- $$slots: { default: !0 }
942
- }), H.append(e, r);
943
- },
944
- $$slots: { default: !0 }
945
- }), H.append(e, r);
946
- },
947
- $$slots: { default: !0 }
948
- }), H.reset(s);
949
- var y = H.sibling(s, 2), re = (e) => {
950
- let n = H.derived(() => H.get(U)[H.get(t).id] ?? []), r = H.derived(() => H.get(Tt)[H.get(t).id] ?? []);
951
- var i = zt(), o = H.child(i), s = H.derived(() => Un(H.get(t).id)), l = H.derived(() => Wn(H.get(t).id));
952
- H.each(o, 29, () => H.get(n), (e) => e.id, (e, t) => {
953
- var n = Lt();
954
- u(H.child(n), () => H.get(t)), H.reset(n), H.animation(n, () => wt, () => ({ duration: 200 })), H.append(e, n);
955
- }), H.reset(o), H.action(o, (e, t) => ze?.(e, t), () => ({
956
- items: H.get(n),
957
- flipDurationMs: 200,
958
- type: "folder",
959
- dropTargetStyle: {},
960
- dragDisabled: H.get(F)
961
- }));
962
- var d = H.sibling(o, 2), f = H.derived(() => In({
963
- kind: "category",
964
- id: H.get(t).id
965
- })), p = H.derived(() => Ln({
966
- kind: "category",
967
- id: H.get(t).id
968
- }));
969
- H.each(d, 29, () => H.get(r), (e) => e.id, (e, t) => {
970
- var n = Rt(), r = H.child(n);
971
- kt(r, () => H.get(t));
972
- var i = H.sibling(r, 2);
973
- c(i, () => H.get(t)), a(H.sibling(i, 2), () => H.get(t)), H.reset(n), H.animation(n, () => wt, () => ({ duration: 80 })), H.append(e, n);
974
- }), H.reset(d), H.action(d, (e, t) => ze?.(e, t), () => ({
975
- items: H.get(r),
976
- flipDurationMs: 80,
977
- type: "doc",
978
- dropTargetStyle: {},
979
- dragDisabled: H.get(F),
980
- useCursorForDetection: !0,
981
- centreDraggedOnCursor: !0
982
- })), H.reset(i), H.template_effect((e, t) => {
983
- H.set_class(o, 1, e), H.set_class(d, 1, t);
984
- }, [() => H.clsx(L("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(Le) && H.get(n).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20")), () => H.clsx(L("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(R) && H.get(r).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20"))]), H.event("consider", o, function(...e) {
985
- H.get(s)?.apply(this, e);
986
- }), H.event("finalize", o, function(...e) {
987
- H.get(l)?.apply(this, e);
988
- }), H.event("consider", d, function(...e) {
989
- H.get(f)?.apply(this, e);
990
- }), H.event("finalize", d, function(...e) {
991
- H.get(p)?.apply(this, e);
992
- }), H.append(e, i);
993
- };
994
- H.if(y, (e) => {
995
- H.get(i) && e(re);
996
- }), H.reset(o), H.template_effect((e) => {
997
- H.set_attribute(o, "data-is-dnd-shadow-item-hint", H.get(t)[Re]), H.set_attribute(l, "aria-expanded", H.get(i)), H.set_class(l, 1, e), H.set_text(ne, H.get(t).category.name);
998
- }, [() => H.clsx(L("flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium uppercase tracking-wider text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground", H.get(z) && "hover:bg-accent/40 border border-dashed border-primary/30"))]), H.delegated("click", l, () => kn(H.get(t).id)), H.event("mouseenter", l, () => {
999
- H.get(I) && !H.get(i) && mn(H.get(t).id);
1000
- }), H.event("mouseleave", l, () => {
1001
- H.get(I) && pn();
1002
- }), H.event("dragover", l, zn), H.event("drop", l, (e) => Bn(e, H.get(t).id)), H.animation(o, () => wt, () => ({ duration: 200 })), H.append(e, o);
1003
- }), H.reset(Mr), H.action(Mr, (e, t) => ze?.(e, t), () => ({
1004
- items: H.get(vr),
1005
- flipDurationMs: 200,
1006
- type: "category",
1007
- dropTargetStyle: {},
1008
- dragDisabled: H.get(F)
1009
- }));
1010
- var Nr = H.sibling(Mr, 2), Pr = (e) => {
1011
- var t = Vt(), i = H.child(t), o = H.child(i), s = H.child(o), l = (e) => {
1012
- n(e, { class: "size-3.5 shrink-0" });
1013
- }, d = (e) => {
1014
- r(e, { class: "size-3.5 shrink-0" });
1015
- };
1016
- H.if(s, (e) => {
1017
- H.get(k) ? e(l) : e(d, -1);
1018
- });
1019
- var f = H.sibling(s, 2), p = H.child(f, !0);
1020
- H.reset(f), H.reset(o), H.reset(i);
1021
- var m = H.sibling(i, 2), h = (e) => {
1022
- let t = H.derived(() => H.get(U)[$] ?? []);
1023
- var n = zt(), r = H.child(n), i = H.derived(() => Un($)), o = H.derived(() => Wn($));
1024
- H.each(r, 29, () => H.get(t), (e) => e.id, (e, t) => {
1025
- var n = Lt();
1026
- u(H.child(n), () => H.get(t)), H.reset(n), H.animation(n, () => wt, () => ({ duration: 200 })), H.append(e, n);
1027
- }), H.reset(r), H.action(r, (e, t) => ze?.(e, t), () => ({
1028
- items: H.get(t),
1029
- flipDurationMs: 200,
1030
- type: "folder",
1031
- dropTargetStyle: {},
1032
- dragDisabled: H.get(F)
1033
- }));
1034
- var s = H.sibling(r, 2), l = H.derived(() => In({ kind: "root" })), d = H.derived(() => Ln({ kind: "root" }));
1035
- H.each(s, 29, () => H.get(yt), (e) => e.id, (e, t) => {
1036
- var n = Rt(), r = H.child(n);
1037
- kt(r, () => H.get(t));
1038
- var i = H.sibling(r, 2);
1039
- c(i, () => H.get(t)), a(H.sibling(i, 2), () => H.get(t)), H.reset(n), H.animation(n, () => wt, () => ({ duration: 80 })), H.append(e, n);
1040
- }), H.reset(s), H.action(s, (e, t) => ze?.(e, t), () => ({
1041
- items: H.get(yt),
1042
- flipDurationMs: 80,
1043
- type: "doc",
1044
- dropTargetStyle: {},
1045
- dragDisabled: H.get(F),
1046
- useCursorForDetection: !0,
1047
- centreDraggedOnCursor: !0
1048
- })), H.reset(n), H.template_effect((e, t) => {
1049
- H.set_class(r, 1, e), H.set_class(s, 1, t);
1050
- }, [() => H.clsx(L("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(Le) && H.get(t).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20")), () => H.clsx(L("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(R) && H.get(yt).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20"))]), H.event("consider", r, function(...e) {
1051
- H.get(i)?.apply(this, e);
1052
- }), H.event("finalize", r, function(...e) {
1053
- H.get(o)?.apply(this, e);
1054
- }), H.event("consider", s, function(...e) {
1055
- H.get(l)?.apply(this, e);
1056
- }), H.event("finalize", s, function(...e) {
1057
- H.get(d)?.apply(this, e);
1058
- }), H.append(e, n);
1059
- };
1060
- H.if(m, (e) => {
1061
- H.get(k) && e(h);
1062
- }), H.reset(t), H.template_effect((e, t) => {
1063
- H.set_attribute(o, "aria-expanded", H.get(k)), H.set_class(o, 1, e), H.set_text(p, t);
1064
- }, [() => H.clsx(L("flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium uppercase tracking-wider text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground", H.get(z) && "hover:bg-accent/40 border border-dashed border-primary/30")), () => pe()]), H.delegated("click", o, An), H.event("mouseenter", o, () => {
1065
- H.get(I) && !H.get(k) && mn($);
1066
- }), H.event("mouseleave", o, () => {
1067
- H.get(I) && pn();
1068
- }), H.event("dragover", o, zn), H.event("drop", o, (e) => Bn(e, $)), H.append(e, t);
1069
- };
1070
- H.if(Nr, (e) => {
1071
- H.get(yr) && e(Pr);
1072
- });
1073
- var Fr = H.sibling(Nr, 2), Ir = H.child(Fr);
1074
- s(Ir, { class: "size-3.5" });
1075
- var Lr = H.sibling(Ir, 2), Rr = H.child(Lr, !0);
1076
- H.reset(Lr), H.reset(Fr), H.reset(Cr);
1077
- var zr = H.sibling(Cr, 2);
1078
- l(zr, {
1079
- mode: "create",
1080
- onSave: Pn,
1081
- closeOnSave: !1,
1082
- get open() {
1083
- return H.get(Et);
1084
- },
1085
- set open(e) {
1086
- H.set(Et, e, !0);
1087
- }
1088
- });
1089
- var Br = H.sibling(zr, 2);
1090
- Te(Br, {
1091
- onOpenChange: (e) => {
1092
- e || ir();
1093
- },
1094
- get open() {
1095
- return H.get(Pt);
1096
- },
1097
- set open(e) {
1098
- H.set(Pt, e, !0);
1099
- },
1100
- children: (e, t) => {
1101
- var n = Ut(), r = H.first_child(n);
1102
- De(r, {
1103
- children: (e, t) => {
1104
- var n = Mt(), r = H.first_child(n);
1105
- Ae(r, {
1106
- children: (e, t) => {
1107
- H.next();
1108
- var n = H.text();
1109
- H.template_effect((e) => H.set_text(n, e), [() => ge()]), H.append(e, n);
1110
- },
1111
- $$slots: { default: !0 }
1112
- }), Ee(H.sibling(r, 2), {
1113
- children: (e, t) => {
1114
- H.next();
1115
- var n = H.text();
1116
- H.template_effect((e) => H.set_text(n, e), [() => H.get(Gt)?.kind === "folder" ? de() : ne()]), H.append(e, n);
1117
- },
1118
- $$slots: { default: !0 }
1119
- }), H.append(e, n);
1120
- },
1121
- $$slots: { default: !0 }
1122
- });
1123
- var i = H.sibling(r, 2), a = H.child(i), o = H.child(a);
1124
- Me(o, {
1125
- for: "rename-input",
1126
- children: (e, t) => {
1127
- H.next();
1128
- var n = H.text();
1129
- H.template_effect((e) => H.set_text(n, e), [() => H.get(Gt)?.kind === "folder" ? de() : ne()]), H.append(e, n);
1130
- },
1131
- $$slots: { default: !0 }
1132
- });
1133
- var s = H.sibling(o, 2);
1134
- {
1135
- let e = H.derived(() => H.get(G) ? "true" : void 0), t = H.derived(() => H.get(G) ? "rename-input-error" : void 0);
1136
- je(s, {
1137
- id: "rename-input",
1138
- name: "name",
1139
- type: "text",
1140
- maxlength: 255,
1141
- required: !0,
1142
- get disabled() {
1143
- return H.get(K);
1144
- },
1145
- get "aria-invalid"() {
1146
- return H.get(e);
1147
- },
1148
- get "aria-describedby"() {
1149
- return H.get(t);
1150
- },
1151
- autocomplete: "off",
1152
- get value() {
1153
- return H.get(Kt);
1154
- },
1155
- set value(e) {
1156
- H.set(Kt, e, !0);
1157
- }
1158
- });
1159
- }
1160
- var c = H.sibling(s, 2), l = (e) => {
1161
- var t = Ht(), n = H.child(t, !0);
1162
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(G))), H.append(e, t);
1163
- };
1164
- H.if(c, (e) => {
1165
- H.get(G) && e(l);
1166
- }), H.reset(a), H.reset(i), ke(H.sibling(i, 2), {
1167
- children: (e, t) => {
1168
- var n = Mt(), r = H.first_child(n);
1169
- Oe(r, {
1170
- variant: "outline",
1171
- type: "button",
1172
- onclick: ir,
1173
- get disabled() {
1174
- return H.get(K);
1175
- },
1176
- children: (e, t) => {
1177
- H.next();
1178
- var n = H.text();
1179
- H.template_effect((e) => H.set_text(n, e), [() => _e()]), H.append(e, n);
1180
- },
1181
- $$slots: { default: !0 }
1182
- });
1183
- var i = H.sibling(r, 2);
1184
- {
1185
- let e = H.derived(() => H.get(K) || H.get(Kt).trim().length === 0);
1186
- Oe(i, {
1187
- type: "submit",
1188
- onclick: ar,
1189
- get disabled() {
1190
- return H.get(e);
1191
- },
1192
- children: (e, t) => {
1193
- H.next();
1194
- var n = H.text();
1195
- H.template_effect((e) => H.set_text(n, e), [() => H.get(K) ? ie() : ve()]), H.append(e, n);
1196
- },
1197
- $$slots: { default: !0 }
1198
- });
1199
- }
1200
- H.append(e, n);
1201
- },
1202
- $$slots: { default: !0 }
1203
- }), H.event("submit", i, ar), H.append(e, n);
1204
- },
1205
- $$slots: { default: !0 }
1206
- });
1207
- var Vr = H.sibling(Br, 2);
1208
- {
1209
- let e = H.derived(() => H.get(q)?.name ?? ""), t = H.derived(() => H.get(q)?.kind === "folder" ? me() : re()), n = H.derived(() => H.get(q)?.kind === "folder" ? "Its documents will be moved to the root and will not be deleted." : oe()), r = H.derived(() => H.get(q)?.kind === "folder" ? be() : x()), i = H.derived(() => H.get(q)?.kind === "folder" ? he() : S()), a = H.derived(() => ye()), o = H.derived(() => _e());
1210
- Ye(Vr, {
1211
- get targetName() {
1212
- return H.get(e);
1213
- },
1214
- get title() {
1215
- return H.get(t);
1216
- },
1217
- get description() {
1218
- return H.get(n);
1219
- },
1220
- get successTitle() {
1221
- return H.get(r);
1222
- },
1223
- get successDescription() {
1224
- return H.get(i);
1225
- },
1226
- get confirmLabel() {
1227
- return H.get(a);
1228
- },
1229
- get cancelLabel() {
1230
- return H.get(o);
1231
- },
1232
- onConfirm: dr,
1233
- onCancel: ur,
1234
- get open() {
1235
- return H.get(qt);
1236
- },
1237
- set open(e) {
1238
- H.set(qt, e, !0);
1239
- }
1240
- });
1241
- }
1242
- var Hr = H.sibling(Vr, 2);
1243
- {
1244
- let e = H.derived(() => H.get(J) ?? void 0);
1245
- Qe(Hr, {
1246
- get mode() {
1247
- return H.get(nn);
1248
- },
1249
- get category() {
1250
- return H.get(e);
1251
- },
1252
- onSave: gr,
1253
- onDelete: _r,
1254
- onClose: hr,
1255
- get open() {
1256
- return H.get(tn);
1257
- },
1258
- set open(e) {
1259
- H.set(tn, e, !0);
1260
- }
1261
- });
1262
- }
1263
- return Ze(H.sibling(Hr, 2), {
1264
- get documentId() {
1265
- return H.get(Yt);
1266
- },
1267
- get documentTitle() {
1268
- return H.get(Zt);
1269
- },
1270
- get folderId() {
1271
- return H.get(Xt);
1272
- },
1273
- get folderName() {
1274
- return H.get(Qt);
1275
- },
1276
- get categoryId() {
1277
- return H.get($t);
1278
- },
1279
- get categoryName() {
1280
- return H.get(en);
1281
- },
1282
- get open() {
1283
- return H.get(Jt);
1284
- },
1285
- set open(e) {
1286
- H.set(Jt, e, !0);
1287
- }
1288
- }), H.template_effect((e, t, n, r, i) => {
1289
- H.set_attribute(Tr, "title", e), H.set_text(Er, t), H.set_attribute(Dr, "aria-label", n), H.set_attribute(Dr, "title", r), H.set_text(Rr, i);
1290
- }, [
1291
- () => C(),
1292
- () => A(),
1293
- () => y(),
1294
- () => y(),
1295
- () => le()
1296
- ]), H.delegated("click", Dr, fr), H.event("consider", Mr, Xn), H.event("finalize", Mr, Zn), H.delegated("click", Fr, jn), H.append(e, Sr), H.pop(xr);
1297
- }
1298
- H.delegate(["click"]);
1299
- //#endregion
1300
- //#region src/lib/components/sidebar/RecentDocs.svelte
1301
- var Kt = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), G = H.from_html("<button><!></button>"), K = H.from_html("<!> <!>", 1), qt = H.from_html("<div class=\"group/doc flex min-w-0 items-center gap-1\"><a><!> <div class=\"min-w-0 flex-1\"><p class=\"truncate min-w-0\"> </p> <p class=\"text-xs text-muted-foreground\"> </p></div></a> <button type=\"button\"><!></button> <!></div>"), q = H.from_html("<p id=\"recent-rename-input-error\" class=\"text-xs text-destructive\" role=\"alert\"> </p>"), Jt = H.from_html("<!> <form class=\"space-y-4\"><div class=\"space-y-2\"><!> <!> <!></div></form> <!>", 1), Yt = H.from_html("<div class=\"space-y-1\"><h3 class=\"mb-2 px-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\"> </h3> <!> <!></div> <!> <!>", 1);
1302
- function Xt(e, n) {
1303
- H.push(n, !0);
1304
- let r = H.state(H.proxy([])), i = H.state(null), a = H.state(null), s = H.state(null), l = H.state(null), u = null, d = H.state(!1), f = H.state(null), p = H.state(""), v = H.state(null), y = H.state(!1), b = H.state(!1), x = H.state(null), S = H.state(!1);
1305
- async function C() {
1306
- try {
1307
- let e = B(), t = await Ue({
1308
- limit: 6,
1309
- ...e ? { tag: e } : {}
1310
- });
1311
- H.set(r, t.items, !0), H.set(a, null);
1312
- } catch (e) {
1313
- console.error("RecentDocs: failed to load recent documents", e), H.set(a, "Failed to load recent documents");
1314
- }
1315
- }
1316
- xt(() => {
1317
- C();
1318
- }), H.user_effect(() => {
1319
- ht() !== 0 && C();
1320
- });
1321
- let T = !0;
1322
- H.user_effect(() => {
1323
- if (B(), T) {
1324
- T = !1;
1325
- return;
1326
- }
1327
- C();
1328
- });
1329
- async function E() {
1330
- await C();
1331
- }
1332
- bt(() => {
1333
- u &&= (clearTimeout(u), null);
1334
- });
1335
- async function ae(e, t) {
1336
- if (e.preventDefault(), e.stopPropagation(), typeof window > "u") return;
1337
- let n = H.get(r).find((e) => e.id === t), i = "";
1338
- H.set(l, t, !0);
1339
- try {
1340
- i = (await Ve(t)).content ?? "";
1341
- } catch (e) {
1342
- console.error("RecentDocs: failed to fetch full document for copy", e), i = n?.excerpt ?? n?.content ?? "";
1343
- } finally {
1344
- H.set(l, null);
1345
- }
1346
- i && await Xe(i) && (H.set(s, t, !0), u && clearTimeout(u), u = setTimeout(() => {
1347
- H.set(s, null), u = null;
1348
- }, 2e3));
1349
- }
1350
- function D(e, t) {
1351
- H.set(f, {
1352
- id: e,
1353
- title: t
1354
- }, !0), H.set(p, t, !0), H.set(v, null), H.set(d, !0);
1355
- }
1356
- function O() {
1357
- H.set(d, !1), H.set(f, null), H.set(p, ""), H.set(v, null), H.set(y, !1);
1358
- }
1359
- async function k(e) {
1360
- e?.preventDefault();
1361
- let t = H.get(f);
1362
- if (!t) return;
1363
- let n = H.get(p).trim();
1364
- if (n.length === 0) {
1365
- H.set(v, "Name is required");
1366
- return;
1367
- }
1368
- H.set(y, !0);
1369
- try {
1370
- await Be(t.id, { title: n }), O(), await C(), pt();
1371
- } catch (e) {
1372
- console.error("RecentDocs: rename failed", e), H.set(v, e instanceof Error ? e.message : ue(), !0);
1373
- } finally {
1374
- H.set(y, !1);
1375
- }
1376
- }
1377
- function A(e, t) {
1378
- H.set(x, {
1379
- id: e,
1380
- title: t
1381
- }, !0), H.set(b, !0);
1382
- }
1383
- function M() {
1384
- H.set(b, !1), H.set(x, null), H.set(S, !1);
1385
- }
1386
- async function ce() {
1387
- let e = H.get(x);
1388
- if (!(!e || H.get(S))) {
1389
- H.set(S, !0);
1390
- try {
1391
- await He(e.id), M(), await C(), pt();
1392
- } catch (e) {
1393
- console.error("RecentDocs: delete failed", e), H.set(a, e instanceof Error ? e.message : ue(), !0), H.set(S, !1);
1394
- }
1395
- }
1396
- }
1397
- var N = { refreshRecentDocs: E }, P = Yt(), le = H.first_child(P), de = H.child(le), fe = H.child(de, !0);
1398
- H.reset(de);
1399
- var pe = H.sibling(de, 2), me = (e) => {
1400
- var t = Kt(), n = H.child(t, !0);
1401
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(a))), H.append(e, t);
1402
- };
1403
- H.if(pe, (e) => {
1404
- H.get(a) && e(me);
1405
- });
1406
- var he = H.sibling(pe, 2);
1407
- H.each(he, 17, () => H.get(r), (e) => e.id, (e, n) => {
1408
- var r = qt(), a = H.child(r), u = H.child(a);
1409
- c(u, { class: "size-4 shrink-0 text-muted-foreground" });
1410
- var d = H.sibling(u, 2), f = H.child(d), p = H.child(f, !0);
1411
- H.reset(f);
1412
- var v = H.sibling(f, 2), ne = H.child(v, !0);
1413
- H.reset(v), H.reset(d), H.reset(a);
1414
- var y = H.sibling(a, 2), re = H.child(y), b = (e) => {
1415
- te(e, { class: "size-3.5 animate-spin" });
1416
- }, x = (e) => {
1417
- t(e, { class: "size-3.5" });
1418
- }, S = (e) => {
1419
- o(e, { class: "size-3.5" });
1420
- };
1421
- H.if(re, (e) => {
1422
- H.get(l) === H.get(n).id ? e(b) : H.get(s) === H.get(n).id ? e(x, 1) : e(S, -1);
1423
- }), H.reset(y), m(H.sibling(y, 2), {
1424
- children: (e, t) => {
1425
- var r = K(), i = H.first_child(r);
1426
- ee(i, {
1427
- child: (e, t) => {
1428
- let n = () => (t?.()).props;
1429
- var r = G(), i = (e) => {
1430
- e.preventDefault(), e.stopPropagation();
1431
- };
1432
- H.attribute_effect(r, (e, t) => ({
1433
- ...n(),
1434
- type: "button",
1435
- class: "inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-accent-foreground group-hover/doc:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1436
- "aria-label": e,
1437
- title: t,
1438
- onclick: i
1439
- }), [() => w(), () => w()]), g(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
1440
- },
1441
- $$slots: { child: !0 }
1442
- }), h(H.sibling(i, 2), {
1443
- align: "end",
1444
- children: (e, t) => {
1445
- var r = K(), i = H.first_child(r);
1446
- _(i, {
1447
- onSelect: () => D(H.get(n).id, H.get(n).title),
1448
- children: (e, t) => {
1449
- H.next();
1450
- var n = H.text();
1451
- H.template_effect((e) => H.set_text(n, e), [() => ge()]), H.append(e, n);
1452
- },
1453
- $$slots: { default: !0 }
1454
- }), _(H.sibling(i, 2), {
1455
- class: "text-destructive focus:text-destructive",
1456
- onSelect: () => A(H.get(n).id, H.get(n).title),
1457
- children: (e, t) => {
1458
- H.next();
1459
- var n = H.text();
1460
- H.template_effect((e) => H.set_text(n, e), [() => ye()]), H.append(e, n);
1461
- },
1462
- $$slots: { default: !0 }
1463
- }), H.append(e, r);
1464
- },
1465
- $$slots: { default: !0 }
1466
- }), H.append(e, r);
1467
- },
1468
- $$slots: { default: !0 }
1469
- }), H.reset(r), H.template_effect((e, t, r) => {
1470
- H.set_attribute(a, "href", `/docs/${H.get(n).id}`), H.set_class(a, 1, e), H.set_text(p, H.get(n).title), H.set_text(ne, H.get(n).updatedAt), H.set_class(y, 1, `inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-accent-foreground group-hover/doc:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${H.get(s) === H.get(n).id || H.get(l) === H.get(n).id ? "opacity-100" : ""}`), H.set_attribute(y, "aria-label", t), H.set_attribute(y, "title", r), y.disabled = H.get(l) === H.get(n).id;
1471
- }, [
1472
- () => H.clsx(L("flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground", H.get(i) === H.get(n).id && "bg-accent text-accent-foreground")),
1473
- () => se(),
1474
- () => se()
1475
- ]), H.delegated("click", a, () => {
1476
- H.set(i, H.get(n).id, !0);
1477
- }), H.delegated("click", y, (e) => void ae(e, H.get(n).id)), H.append(e, r);
1478
- }), H.reset(le);
1479
- var F = H.sibling(le, 2);
1480
- Te(F, {
1481
- onOpenChange: (e) => {
1482
- e || O();
1483
- },
1484
- get open() {
1485
- return H.get(d);
1486
- },
1487
- set open(e) {
1488
- H.set(d, e, !0);
1489
- },
1490
- children: (e, t) => {
1491
- var n = Jt(), r = H.first_child(n);
1492
- De(r, {
1493
- children: (e, t) => {
1494
- var n = K(), r = H.first_child(n);
1495
- Ae(r, {
1496
- children: (e, t) => {
1497
- H.next();
1498
- var n = H.text();
1499
- H.template_effect((e) => H.set_text(n, e), [() => ge()]), H.append(e, n);
1500
- },
1501
- $$slots: { default: !0 }
1502
- }), Ee(H.sibling(r, 2), {
1503
- children: (e, t) => {
1504
- H.next();
1505
- var n = H.text();
1506
- H.template_effect((e) => H.set_text(n, e), [() => ne()]), H.append(e, n);
1507
- },
1508
- $$slots: { default: !0 }
1509
- }), H.append(e, n);
1510
- },
1511
- $$slots: { default: !0 }
1512
- });
1513
- var i = H.sibling(r, 2), a = H.child(i), o = H.child(a);
1514
- Me(o, {
1515
- for: "recent-rename-input",
1516
- children: (e, t) => {
1517
- H.next();
1518
- var n = H.text();
1519
- H.template_effect((e) => H.set_text(n, e), [() => ne()]), H.append(e, n);
1520
- },
1521
- $$slots: { default: !0 }
1522
- });
1523
- var s = H.sibling(o, 2);
1524
- {
1525
- let e = H.derived(() => H.get(v) ? "true" : void 0), t = H.derived(() => H.get(v) ? "recent-rename-input-error" : void 0);
1526
- je(s, {
1527
- id: "recent-rename-input",
1528
- name: "name",
1529
- type: "text",
1530
- maxlength: 255,
1531
- required: !0,
1532
- get disabled() {
1533
- return H.get(y);
1534
- },
1535
- get "aria-invalid"() {
1536
- return H.get(e);
1537
- },
1538
- get "aria-describedby"() {
1539
- return H.get(t);
1540
- },
1541
- autocomplete: "off",
1542
- get value() {
1543
- return H.get(p);
1544
- },
1545
- set value(e) {
1546
- H.set(p, e, !0);
1547
- }
1548
- });
1549
- }
1550
- var c = H.sibling(s, 2), l = (e) => {
1551
- var t = q(), n = H.child(t, !0);
1552
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(v))), H.append(e, t);
1553
- };
1554
- H.if(c, (e) => {
1555
- H.get(v) && e(l);
1556
- }), H.reset(a), H.reset(i), ke(H.sibling(i, 2), {
1557
- children: (e, t) => {
1558
- var n = K(), r = H.first_child(n);
1559
- Oe(r, {
1560
- variant: "outline",
1561
- type: "button",
1562
- onclick: O,
1563
- get disabled() {
1564
- return H.get(y);
1565
- },
1566
- children: (e, t) => {
1567
- H.next();
1568
- var n = H.text();
1569
- H.template_effect((e) => H.set_text(n, e), [() => _e()]), H.append(e, n);
1570
- },
1571
- $$slots: { default: !0 }
1572
- });
1573
- var i = H.sibling(r, 2);
1574
- {
1575
- let e = H.derived(() => H.get(y) || H.get(p).trim().length === 0);
1576
- Oe(i, {
1577
- type: "submit",
1578
- onclick: k,
1579
- get disabled() {
1580
- return H.get(e);
1581
- },
1582
- children: (e, t) => {
1583
- H.next();
1584
- var n = H.text();
1585
- H.template_effect((e) => H.set_text(n, e), [() => H.get(y) ? ie() : ve()]), H.append(e, n);
1586
- },
1587
- $$slots: { default: !0 }
1588
- });
1589
- }
1590
- H.append(e, n);
1591
- },
1592
- $$slots: { default: !0 }
1593
- }), H.event("submit", i, k), H.append(e, n);
1594
- },
1595
- $$slots: { default: !0 }
1596
- });
1597
- var be = H.sibling(F, 2);
1598
- {
1599
- let e = H.derived(() => re()), t = H.derived(() => oe()), n = H.derived(() => ye()), r = H.derived(() => _e());
1600
- gt(be, {
1601
- get title() {
1602
- return H.get(e);
1603
- },
1604
- get description() {
1605
- return H.get(t);
1606
- },
1607
- get confirmLabel() {
1608
- return H.get(n);
1609
- },
1610
- get cancelLabel() {
1611
- return H.get(r);
1612
- },
1613
- variant: "destructive",
1614
- get busy() {
1615
- return H.get(S);
1616
- },
1617
- onConfirm: ce,
1618
- onCancel: M,
1619
- get open() {
1620
- return H.get(b);
1621
- },
1622
- set open(e) {
1623
- H.set(b, e, !0);
1624
- }
1625
- });
1626
- }
1627
- return H.template_effect((e) => H.set_text(fe, e), [() => j()]), H.append(e, P), H.pop(N);
1628
- }
1629
- H.delegate(["click"]);
1630
- //#endregion
1631
- //#region src/lib/components/sidebar/TagList.svelte
1632
- var Zt = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), Qt = H.from_html("<button><!></button>"), $t = H.from_html("<!> <!>", 1), en = H.from_html("<div><button type=\"button\" class=\"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium\"><span class=\"size-2.5 shrink-0 rounded-full\"></span> </button> <!></div>"), tn = H.from_html("<div class=\"space-y-1\"><h3 class=\"mb-2 px-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\"> </h3> <!> <div class=\"flex flex-wrap gap-1 px-2\"><!> <button type=\"button\" class=\"inline-flex items-center gap-0.5 rounded-full px-2 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-secondary hover:text-secondary-foreground\"><!> </button></div></div> <!> <!>", 1);
1633
- function nn(e, t) {
1634
- H.push(t, !0);
1635
- let n = H.state(H.proxy([])), r = H.state(null), i = H.state(!1), a = H.state(null), o = H.state(!1), c = H.state(null), l = H.state(!1);
1636
- async function u() {
1637
- try {
1638
- H.set(n, await vt(), !0);
1639
- } catch (e) {
1640
- console.error("TagList: failed to load tags", e), H.set(r, T(), !0);
1641
- }
1642
- }
1643
- xt(() => {
1644
- u();
1645
- }), H.user_effect(() => {
1646
- z(), u();
1647
- });
1648
- function d(e) {
1649
- H.set(n, [...H.get(n), e], !0), V(), u();
1650
- }
1651
- function f(e) {
1652
- H.set(n, H.get(n).map((t) => t.id === e.id ? e : t), !0), V();
1653
- }
1654
- function p(e) {
1655
- H.set(a, e, !0), H.set(i, !0);
1656
- }
1657
- function ne() {
1658
- H.set(a, null);
1659
- }
1660
- function y(e) {
1661
- H.set(c, e, !0), H.set(o, !0);
1662
- }
1663
- function re() {
1664
- H.set(o, !1), H.set(c, null);
1665
- }
1666
- async function b() {
1667
- let e = H.get(c);
1668
- if (!(!e || H.get(l))) {
1669
- H.set(l, !0);
1670
- try {
1671
- await _t(e.id), H.set(n, H.get(n).filter((t) => t.id !== e.id), !0), B() === e.id && mt(null), H.set(o, !1), H.set(c, null), V();
1672
- } catch (e) {
1673
- console.error("TagList: deleteTag failed", e), H.set(r, ue(), !0);
1674
- } finally {
1675
- H.set(l, !1);
1676
- }
1677
- }
1678
- }
1679
- var x = tn(), S = H.first_child(x), C = H.child(S), E = H.child(C, !0);
1680
- H.reset(C);
1681
- var ie = H.sibling(C, 2), ae = (e) => {
1682
- var t = Zt(), n = H.child(t, !0);
1683
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(r))), H.append(e, t);
1684
- };
1685
- H.if(ie, (e) => {
1686
- H.get(r) && e(ae);
1687
- });
1688
- var oe = H.sibling(ie, 2), k = H.child(oe);
1689
- H.each(k, 17, () => H.get(n), (e) => e.id, (e, t) => {
1690
- var n = en(), r = H.child(n), i = H.child(r), a = H.sibling(i);
1691
- H.reset(r), m(H.sibling(r, 2), {
1692
- children: (e, n) => {
1693
- var r = $t(), i = H.first_child(r);
1694
- ee(i, {
1695
- child: (e, n) => {
1696
- let r = () => (n?.()).props;
1697
- var i = Qt();
1698
- H.attribute_effect(i, (e, t, n) => ({
1699
- ...r(),
1700
- type: "button",
1701
- class: e,
1702
- "aria-label": t,
1703
- title: n,
1704
- disabled: H.get(l)
1705
- }), [
1706
- () => L("hidden size-5 items-center justify-center rounded-full hover:bg-black/10 focus-visible:inline-flex group-hover/tag:inline-flex mr-0.5 data-[state=open]:inline-flex", B() === H.get(t).id && "inline-flex"),
1707
- () => w(),
1708
- () => w()
1709
- ]);
1710
- var a = H.child(i), o = (e) => {
1711
- te(e, { class: "size-3 animate-spin" });
1712
- }, s = (e) => {
1713
- g(e, { class: "size-3" });
1714
- };
1715
- H.if(a, (e) => {
1716
- H.get(l) ? e(o) : e(s, -1);
1717
- }), H.reset(i), H.append(e, i);
1718
- },
1719
- $$slots: { child: !0 }
1720
- }), h(H.sibling(i, 2), {
1721
- align: "start",
1722
- children: (e, n) => {
1723
- var r = $t(), i = H.first_child(r);
1724
- _(i, {
1725
- onSelect: () => p(H.get(t)),
1726
- children: (e, t) => {
1727
- H.next();
1728
- var n = H.text();
1729
- H.template_effect((e) => H.set_text(n, e), [() => fe()]), H.append(e, n);
1730
- },
1731
- $$slots: { default: !0 }
1732
- }), _(H.sibling(i, 2), {
1733
- class: "text-destructive focus:text-destructive",
1734
- onSelect: () => y(H.get(t)),
1735
- children: (e, t) => {
1736
- H.next();
1737
- var n = H.text();
1738
- H.template_effect((e) => H.set_text(n, e), [() => ye()]), H.append(e, n);
1739
- },
1740
- $$slots: { default: !0 }
1741
- }), H.append(e, r);
1742
- },
1743
- $$slots: { default: !0 }
1744
- }), H.append(e, r);
1745
- },
1746
- $$slots: { default: !0 }
1747
- }), H.reset(n), H.template_effect((e, o) => {
1748
- H.set_class(n, 1, e), H.set_attribute(r, "aria-pressed", o), H.set_style(i, `background-color: ${(H.get(t).color || "#888888") ?? ""}`), H.set_text(a, ` ${H.get(t).name ?? ""}`);
1749
- }, [() => H.clsx(L("group/tag relative inline-flex items-center rounded-full transition-colors", B() === H.get(t).id ? "bg-primary text-primary-foreground" : "bg-secondary text-secondary-foreground hover:bg-secondary/80")), () => B() === H.get(t).id]), H.delegated("click", r, () => mt(B() === H.get(t).id ? null : H.get(t).id, H.get(t).name)), H.append(e, n);
1750
- });
1751
- var A = H.sibling(k, 2), j = H.child(A);
1752
- s(j, { class: "size-3" });
1753
- var se = H.sibling(j);
1754
- H.reset(A), H.reset(oe), H.reset(S);
1755
- var M = H.sibling(S, 2);
1756
- {
1757
- let e = H.derived(() => H.get(a) ? "edit" : "create");
1758
- yt(M, {
1759
- get mode() {
1760
- return H.get(e);
1761
- },
1762
- get tag() {
1763
- return H.get(a);
1764
- },
1765
- onCreated: d,
1766
- onUpdated: f,
1767
- onClose: ne,
1768
- get open() {
1769
- return H.get(i);
1770
- },
1771
- set open(e) {
1772
- H.set(i, e, !0);
1773
- }
1774
- });
1775
- }
1776
- var ce = H.sibling(M, 2);
1777
- {
1778
- let e = H.derived(() => v()), t = H.derived(() => D()), n = H.derived(() => ye()), r = H.derived(() => _e());
1779
- gt(ce, {
1780
- get title() {
1781
- return H.get(e);
1782
- },
1783
- get description() {
1784
- return H.get(t);
1785
- },
1786
- get confirmLabel() {
1787
- return H.get(n);
1788
- },
1789
- get cancelLabel() {
1790
- return H.get(r);
1791
- },
1792
- variant: "destructive",
1793
- get busy() {
1794
- return H.get(l);
1795
- },
1796
- onConfirm: b,
1797
- onCancel: re,
1798
- get open() {
1799
- return H.get(o);
1800
- },
1801
- set open(e) {
1802
- H.set(o, e, !0);
1803
- }
1804
- });
1805
- }
1806
- H.template_effect((e, t, n) => {
1807
- H.set_text(E, e), H.set_attribute(A, "aria-label", t), H.set_text(se, ` ${n ?? ""}`);
1808
- }, [
1809
- () => O(),
1810
- () => F(),
1811
- () => P()
1812
- ]), H.delegated("click", A, () => {
1813
- H.set(a, null), H.set(i, !0);
1814
- }), H.append(e, x), H.pop();
1815
- }
1816
- H.delegate(["click"]);
1817
- //#endregion
1818
- //#region src/lib/components/sidebar/Sidebar.svelte
1819
- var J = H.from_html("<div role=\"separator\" tabindex=\"-1\"></div>"), rn = H.from_html("<button class=\"sidebar-collapse-toggle absolute -right-3 top-4 z-40 flex size-6 items-center justify-center rounded-full border border-border bg-background shadow-sm hover:bg-accent\"><!></button>"), Y = H.from_html("<!> <div class=\"h-px bg-border\"></div>", 1), an = H.from_html("<span class=\"rounded bg-muted px-1.5 py-0.5 text-xs\"> </span>"), X = H.from_html("<a class=\"flex items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50\"><!> <span class=\"min-w-0 flex-1 truncate\"> </span> <!></a>"), on = H.from_html("<div class=\"h-px bg-border\"></div> <nav class=\"space-y-1\" aria-label=\"Product navigation\"></nav>", 1), sn = H.from_html("<div class=\"flex flex-1 flex-col gap-4 overflow-y-auto p-3\"><!> <!> <!> <!> <!> <!></div>"), cn = H.from_html("<span class=\"text-xs\"> </span>"), ln = H.from_html("<a class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50\"><!></a>"), un = H.from_html("<div class=\"flex flex-1 flex-col items-center gap-1 pt-14\"><!> <button class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button> <button class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button> <button class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button> <button class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button> <!></div>"), dn = H.from_html("<div class=\"flex flex-col items-center gap-2\"><button type=\"button\" class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button> <a href=\"https://docsmint.com\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground\"><img src=\"/favicon.ico\" alt=\"DocsMint\" class=\"size-5 object-contain dark:hidden\"/> <img src=\"/favicon_white.ico\" alt=\"\" aria-hidden=\"true\" class=\"hidden size-5 object-contain dark:block\"/></a></div>"), fn = H.from_html("<div class=\"flex items-center justify-between\"><a href=\"https://docsmint.com\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-xs text-muted-foreground hover:text-foreground transition-colors\"> </a> <button type=\"button\" class=\"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"><!></button></div>"), pn = H.from_html("<aside tabindex=\"-1\"><!> <!> <!> <div class=\"border-t border-border p-2\"><!></div></aside> <!>", 1);
1820
- function mn(e, t) {
1821
- H.push(t, !0);
1822
- let n = H.prop(t, "mobile", 3, !1), r = H.prop(t, "mobileOpen", 3, !1), o = H.prop(t, "element", 15, null), s = "hiai_sidebar_collapsed", c = Se(), l = H.state(!1), p = H.state(!1), m = H.state("all"), h = H.derived(() => !n() && H.get(l)), g = H.state(256), _ = H.state(!1), ee = Le(), te = H.derived(() => R(ee.sidebarTop, { pathname: Ct.url.pathname })), v = H.derived(() => R(ee.navigation, { pathname: Ct.url.pathname }));
1823
- H.user_effect(() => {
1824
- if (typeof window < "u") {
1825
- try {
1826
- H.set(l, localStorage.getItem(s) === "1");
1827
- } catch {}
1828
- let e = localStorage.getItem("hiai_sidebar_width");
1829
- if (e) {
1830
- let t = parseInt(e, 10);
1831
- !Number.isNaN(t) && t >= 180 && t <= 500 && H.set(g, t, !0);
1832
- }
1833
- }
1834
- }), H.user_effect(() => {
1835
- if (H.get(_)) return window.addEventListener("mousemove", y), window.addEventListener("mouseup", re), () => {
1836
- window.removeEventListener("mousemove", y), window.removeEventListener("mouseup", re);
1837
- };
1838
- });
1839
- function ne(e) {
1840
- e.preventDefault(), H.set(_, !0);
1841
- }
1842
- function y(e) {
1843
- let t = Math.max(180, Math.min(500, e.clientX));
1844
- H.set(g, t, !0);
1845
- }
1846
- function re() {
1847
- H.set(_, !1), localStorage.setItem("hiai_sidebar_width", H.get(g).toString());
1848
- }
1849
- function x() {
1850
- return Ce(c, "/search");
1851
- }
1852
- function S(e) {
1853
- H.set(m, H.get(m) === e ? "all" : e, !0), H.set(l, !1), w();
1854
- }
1855
- function C() {
1856
- H.set(l, !H.get(l)), w(), H.get(l) && H.set(m, "all");
1857
- }
1858
- function w() {
1859
- if (!(typeof localStorage > "u")) try {
1860
- localStorage.setItem(s, H.get(l) ? "1" : "0");
1861
- } catch {}
1862
- }
1863
- var T = pn(), E = H.first_child(T), ie = H.child(E), ae = (e) => {
1864
- var t = J();
1865
- H.template_effect((e) => H.set_class(t, 1, e), [() => H.clsx(L("absolute right-0 top-0 z-40 h-full w-1 cursor-col-resize hover:bg-primary/50 transition-colors", H.get(_) && "bg-primary w-1"))]), H.delegated("mousedown", t, ne), H.append(e, t);
1866
- };
1867
- H.if(ie, (e) => {
1868
- !n() && !H.get(h) && e(ae);
1869
- });
1870
- var oe = H.sibling(ie, 2), D = (e) => {
1871
- var t = rn(), n = H.child(t), r = (e) => {
1872
- U(e, { class: "size-3.5" });
1873
- }, i = (e) => {
1874
- Tt(e, { class: "size-3.5" });
1875
- };
1876
- H.if(n, (e) => {
1877
- H.get(h) ? e(r) : e(i, -1);
1878
- }), H.reset(t), H.delegated("click", t, C), H.append(e, t);
1879
- };
1880
- H.if(oe, (e) => {
1881
- n() || e(D);
1882
- });
1883
- var se = H.sibling(oe, 2), ce = (e) => {
1884
- var t = sn(), n = H.child(t);
1885
- H.each(n, 17, () => H.get(te), (e) => e.id, (e, t) => {
1886
- let n = H.derived(() => H.get(t).component);
1887
- var r = H.comment(), i = H.first_child(r);
1888
- H.component(i, () => H.get(n), (e, t) => {
1889
- t(e, { collapsed: !1 });
1890
- }), H.append(e, r);
1891
- });
1892
- var r = H.sibling(n, 2);
1893
- Ot(r, { class: "mr-5" });
1894
- var i = H.sibling(r, 2), a = (e) => {
1895
- var t = Y();
1896
- Gt(H.first_child(t), {}), H.next(2), H.append(e, t);
1897
- };
1898
- H.if(i, (e) => {
1899
- H.get(m) === "all" && e(a);
1900
- });
1901
- var o = H.sibling(i, 2), s = (e) => {
1902
- var t = Y();
1903
- Xt(H.first_child(t), {}), H.next(2), H.append(e, t);
1904
- };
1905
- H.if(o, (e) => {
1906
- (H.get(m) === "all" || H.get(m) === "recent") && e(s);
1907
- });
1908
- var l = H.sibling(o, 2), u = (e) => {
1909
- nn(e, {});
1910
- };
1911
- H.if(l, (e) => {
1912
- (H.get(m) === "all" || H.get(m) === "tags") && e(u);
1913
- });
1914
- var d = H.sibling(l, 2), f = (e) => {
1915
- var t = on(), n = H.sibling(H.first_child(t), 2);
1916
- H.each(n, 21, () => H.get(v), (e) => e.id, (e, t) => {
1917
- let n = H.derived(() => H.get(t).icon);
1918
- var r = X(), i = H.child(r), a = (e) => {
1919
- var t = H.comment(), r = H.first_child(t);
1920
- H.component(r, () => H.get(n), (e, t) => {
1921
- t(e, { class: "size-4" });
1922
- }), H.append(e, t);
1923
- };
1924
- H.if(i, (e) => {
1925
- H.get(n) && e(a);
1926
- });
1927
- var o = H.sibling(i, 2), s = H.child(o, !0);
1928
- H.reset(o);
1929
- var l = H.sibling(o, 2), u = (e) => {
1930
- var n = an(), r = H.child(n, !0);
1931
- H.reset(n), H.template_effect(() => H.set_text(r, H.get(t).badge)), H.append(e, n);
1932
- };
1933
- H.if(l, (e) => {
1934
- H.get(t).badge !== void 0 && e(u);
1935
- }), H.reset(r), H.template_effect((e) => {
1936
- H.set_attribute(r, "href", e), H.set_attribute(r, "aria-disabled", H.get(t).disabled), H.set_text(s, H.get(t).label);
1937
- }, [() => H.get(t).href ? I(c, H.get(t).href) : "#"]), H.append(e, r);
1938
- }), H.reset(n), H.append(e, t);
1939
- };
1940
- H.if(d, (e) => {
1941
- H.get(m) === "all" && H.get(v).length > 0 && e(f);
1942
- }), H.reset(t), H.append(e, t);
1943
- }, N = (e) => {
1944
- var t = un(), n = H.child(t);
1945
- H.each(n, 17, () => H.get(te), (e) => e.id, (e, t) => {
1946
- let n = H.derived(() => H.get(t).component);
1947
- var r = H.comment(), i = H.first_child(r);
1948
- H.component(i, () => H.get(n), (e, t) => {
1949
- t(e, { collapsed: !0 });
1950
- }), H.append(e, r);
1951
- });
1952
- var r = H.sibling(n, 2);
1953
- i(H.child(r), { class: "size-4" }), H.reset(r);
1954
- var o = H.sibling(r, 2);
1955
- d(H.child(o), { class: "size-4" }), H.reset(o);
1956
- var s = H.sibling(o, 2);
1957
- a(H.child(s), { class: "size-4" }), H.reset(s);
1958
- var l = H.sibling(s, 2);
1959
- f(H.child(l), { class: "size-4" }), H.reset(l);
1960
- var u = H.sibling(l, 2);
1961
- H.each(u, 17, () => H.get(v), (e) => e.id, (e, t) => {
1962
- let n = H.derived(() => H.get(t).icon);
1963
- var r = ln(), i = H.child(r), a = (e) => {
1964
- var t = H.comment(), r = H.first_child(t);
1965
- H.component(r, () => H.get(n), (e, t) => {
1966
- t(e, { class: "size-4" });
1967
- }), H.append(e, t);
1968
- }, o = (e) => {
1969
- var n = cn(), r = H.child(n, !0);
1970
- H.reset(n), H.template_effect((e) => H.set_text(r, e), [() => H.get(t).label.slice(0, 1)]), H.append(e, n);
1971
- };
1972
- H.if(i, (e) => {
1973
- H.get(n) ? e(a) : e(o, -1);
1974
- }), H.reset(r), H.template_effect((e) => {
1975
- H.set_attribute(r, "href", e), H.set_attribute(r, "aria-disabled", H.get(t).disabled), H.set_attribute(r, "title", H.get(t).label), H.set_attribute(r, "aria-label", H.get(t).label);
1976
- }, [() => H.get(t).href ? I(c, H.get(t).href) : "#"]), H.append(e, r);
1977
- }), H.reset(t), H.template_effect((e, t, n, i, a, c, u, d) => {
1978
- H.set_attribute(r, "title", e), H.set_attribute(r, "aria-label", t), H.set_attribute(o, "title", n), H.set_attribute(o, "aria-label", i), H.set_attribute(s, "title", a), H.set_attribute(s, "aria-label", c), H.set_attribute(l, "title", u), H.set_attribute(l, "aria-label", d);
1979
- }, [
1980
- () => A(),
1981
- () => A(),
1982
- () => M(),
1983
- () => M(),
1984
- () => j(),
1985
- () => j(),
1986
- () => O(),
1987
- () => O()
1988
- ]), H.delegated("click", r, () => Ce(c, "/")), H.delegated("click", o, x), H.delegated("click", s, () => S("recent")), H.delegated("click", l, () => S("tags")), H.append(e, t);
1989
- };
1990
- H.if(se, (e) => {
1991
- H.get(h) ? e(N, -1) : e(ce);
1992
- });
1993
- var P = H.sibling(se, 2), le = H.child(P), ue = (e) => {
1994
- var t = dn(), n = H.child(t);
1995
- W(H.child(n), { class: "size-4" }), H.reset(n);
1996
- var r = H.sibling(n, 2);
1997
- H.reset(t), H.template_effect((e, t, i, a) => {
1998
- H.set_attribute(n, "title", e), H.set_attribute(n, "aria-label", t), H.set_attribute(r, "title", i), H.set_attribute(r, "aria-label", a);
1999
- }, [
2000
- () => k(),
2001
- () => k(),
2002
- () => b(),
2003
- () => b()
2004
- ]), H.delegated("click", n, () => {
2005
- H.set(p, !0);
2006
- }), H.append(e, t);
2007
- }, de = (e) => {
2008
- var t = fn(), n = H.child(t), r = H.child(n, !0);
2009
- H.reset(n);
2010
- var i = H.sibling(n, 2);
2011
- W(H.child(i), { class: "size-4" }), H.reset(i), H.reset(t), H.template_effect((e, t, a, o) => {
2012
- H.set_attribute(n, "title", e), H.set_text(r, t), H.set_attribute(i, "title", a), H.set_attribute(i, "aria-label", o);
2013
- }, [
2014
- () => b(),
2015
- () => b(),
2016
- () => k(),
2017
- () => k()
2018
- ]), H.delegated("click", i, () => {
2019
- H.set(p, !0);
2020
- }), H.append(e, t);
2021
- };
2022
- H.if(le, (e) => {
2023
- H.get(h) ? e(ue) : e(de, -1);
2024
- }), H.reset(P), H.reset(E), H.bind_this(E, (e) => o(e), () => o()), u(H.sibling(E, 2), {
2025
- get open() {
2026
- return H.get(p);
2027
- },
2028
- set open(e) {
2029
- H.set(p, e, !0);
2030
- }
2031
- }), H.template_effect((e) => {
2032
- H.set_attribute(E, "id", n() ? "mobile-navigation" : void 0), H.set_attribute(E, "role", n() && r() ? "dialog" : void 0), H.set_attribute(E, "aria-modal", n() && r() ? "true" : void 0), H.set_attribute(E, "aria-label", n() ? "Navigation" : void 0), H.set_attribute(E, "aria-hidden", n() && !r() ? "true" : void 0), E.inert = n() && !r(), H.set_class(E, 1, e), H.set_style(E, n() ? "padding-top: env(safe-area-inset-top);" : H.get(h) ? "width: 48px;" : `width: ${H.get(g)}px;`);
2033
- }, [() => H.clsx(L("flex flex-col border-r border-border bg-card", n() && "fixed inset-y-0 left-0 z-50 h-full w-[80%] max-w-[320px] shadow-xl transition-transform duration-300 ease-out", n() && (r() ? "translate-x-0" : "-translate-x-full"), !n() && "relative h-screen", !n() && !H.get(_) && "transition-[width] duration-200"))]), H.append(e, T), H.pop();
2034
- }
2035
- H.delegate(["mousedown", "click"]);
2036
- //#endregion
2037
- export { mn as t };