@hiai-gg/docsmint 0.3.9 → 0.4.1

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 (43) hide show
  1. package/dist/backend/index.js +1 -1
  2. package/dist/frontend/FolderNode--l1g8bcL.js +298 -0
  3. package/dist/frontend/{SettingsDialog-BHh68rTB.js → SettingsDialog-LyZUxxku.js} +132 -132
  4. package/dist/frontend/Sidebar-BsJsD1mJ.js +2021 -0
  5. package/dist/frontend/api/categories.js +1 -1
  6. package/dist/frontend/api/documents.js +1 -1
  7. package/dist/frontend/api/folders.js +1 -1
  8. package/dist/frontend/app-shell.d.ts +10 -2
  9. package/dist/frontend/app-shell.js +118 -111
  10. package/dist/frontend/{categories-izQovv2w.js → categories-Drnns7N6.js} +14 -14
  11. package/dist/frontend/components/folder-node.js +1 -1
  12. package/dist/frontend/components/save-as-dialog.js +2 -2
  13. package/dist/frontend/components/settings.js +1 -1
  14. package/dist/frontend/components/sidebar.js +1 -1
  15. package/dist/frontend/dashboard.js +524 -522
  16. package/dist/frontend/{documents-BsDkvzCm.js → documents-Bc7b_MSZ.js} +15 -15
  17. package/dist/frontend/{folders-CTuV_JtU.js → folders-ONG03Dkv.js} +10 -10
  18. package/dist/frontend/route-context-BqQQ5c4i.js +29 -0
  19. package/dist/frontend/search.js +309 -309
  20. package/dist/frontend/{tag-store.svelte-CqrUXo0o.js → tag-store.svelte-CG7RrlDT.js} +1 -1
  21. package/dist/frontend-ssr/api/categories.js +1 -1
  22. package/dist/frontend-ssr/api/documents.js +1 -1
  23. package/dist/frontend-ssr/api/folders.js +1 -1
  24. package/dist/frontend-ssr/app-shell.js +12 -3
  25. package/dist/frontend-ssr/assets/{FolderNode-BZ0Q2QUS.js → FolderNode-CpHrpOED.js} +5 -3
  26. package/dist/frontend-ssr/assets/{SettingsDialog-B8L_YqNA.js → SettingsDialog-Dg97vv83.js} +4 -3
  27. package/dist/frontend-ssr/assets/{Sidebar-EHuUAx3W.js → Sidebar-CrDk_HYY.js} +28 -24
  28. package/dist/frontend-ssr/assets/{categories-AOqgcsn4.js → categories-CTCtdv7V.js} +10 -10
  29. package/dist/frontend-ssr/assets/{documents-BnOTRdTY.js → documents-PObdTOiT.js} +8 -8
  30. package/dist/frontend-ssr/assets/{folders-CTfbS24J.js → folders-BX30gHv6.js} +10 -10
  31. package/dist/frontend-ssr/assets/route-context-uca_b2Px.js +36 -0
  32. package/dist/frontend-ssr/assets/{tag-store.svelte-DPodKj6Z.js → tag-store.svelte-DvgUduhd.js} +1 -1
  33. package/dist/frontend-ssr/components/folder-node.js +1 -1
  34. package/dist/frontend-ssr/components/save-as-dialog.js +1 -1
  35. package/dist/frontend-ssr/components/settings.js +1 -1
  36. package/dist/frontend-ssr/components/sidebar.js +1 -1
  37. package/dist/frontend-ssr/dashboard.js +32 -24
  38. package/dist/frontend-ssr/search.js +6 -4
  39. package/package.json +1 -1
  40. package/packages/cli/src/index.ts +1 -1
  41. package/packages/mcp-server/src/index.ts +1 -1
  42. package/dist/frontend/FolderNode-C6FJv99G.js +0 -298
  43. package/dist/frontend/Sidebar-Cu3JrKDC.js +0 -2021
@@ -0,0 +1,2021 @@
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-LyZUxxku.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 y, C as b, Ci as ne, D as x, Di as S, Ei as C, Fi as w, Gt as T, Ht as E, It as D, Jn as re, Ni as ie, Oi as ae, Qr as O, Ti as k, Tr as A, Un as j, Wn as M, Wt as oe, Xr as N, Yn as se, Yr as P, Zr as ce, _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-BMD6XTPe.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
+ }, [() => D(), () => D()]), 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
+ () => P(),
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
+ }), [() => T(), () => T()]), 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
+ }, [() => oe(), () => oe()]), 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(O);
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, x = H.state(H.proxy([])), E = H.state(H.proxy([])), D = H.state(H.proxy([])), O = H.state(H.proxy(/* @__PURE__ */ new Set())), k = H.state(H.proxy(/* @__PURE__ */ new Set())), A = H.state(!0), M = H.state(null), N = H.state(null), P = null;
294
+ function ce(e) {
295
+ H.set(N, e, !0), P &&= (clearTimeout(P), null), e !== null && (P = setTimeout(() => {
296
+ H.set(N, null), P = 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(D).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(O).has(e) && (H.set(an, e, !0), Y = setTimeout(() => {
320
+ if (H.get(an) === e && !H.get(O).has(e)) {
321
+ let t = new Set(H.get(O));
322
+ t.add(e), H.set(O, 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(A) : H.get(k).has(e)) && (H.set(on, e, !0), X = setTimeout(() => {
332
+ if (H.get(on) === e) if (e === $) H.set(A, !0);
333
+ else {
334
+ let t = new Set(H.get(k));
335
+ t.add(e), H.set(k, 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(D));
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(E)) e.set(t.id, []);
365
+ let t = [];
366
+ for (let n of H.get(x)) 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(E)) n[t.id] = e.get(t.id) ?? [];
369
+ n[$] = t, H.set(U, n, !0);
370
+ }
371
+ H.user_effect(() => {
372
+ H.get(x), H.get(E), !(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(x, (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(M, null);
388
+ } catch (e) {
389
+ console.error("FolderTree: failed to load folders", e), H.set(M, "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(E, 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(D, 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(D).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(M, "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(D, H.get(D).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), ce(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(), P &&= (clearTimeout(P), 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(D).findIndex((t) => t.id === e.id);
467
+ t !== -1 && (H.set(D, H.get(D).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(O).has(e), n = new Set(H.get(O));
487
+ t ? n.delete(e) : n.add(e), H.set(O, 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(k));
493
+ t.has(e) ? t.delete(e) : t.add(e), H.set(k, t, !0);
494
+ }
495
+ function An() {
496
+ H.set(A, !H.get(A));
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(O, new Set(H.get(O)).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), ce(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), ce(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(E)) e.set(t.id, []);
821
+ let t = [];
822
+ for (let n of H.get(x)) 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(E)) 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(M))), H.append(e, t);
842
+ };
843
+ H.if(Or, (e) => {
844
+ H.get(M) && 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(N))), H.append(e, t);
849
+ };
850
+ H.if(Ar, (e) => {
851
+ H.get(N) && 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(k).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), y = 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
+ }), [() => T(), () => T()]), 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), [() => se()]), 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), [() => ie()]), 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 b = H.sibling(s, 2), ne = (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(b, (e) => {
995
+ H.get(i) && e(ne);
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(y, 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(A) ? 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(A) && e(h);
1062
+ }), H.reset(t), H.template_effect((e, t) => {
1063
+ H.set_attribute(o, "aria-expanded", H.get(A)), 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(A) && 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() : y()]), 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() : y()]), 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) ? re() : 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() : ne()), n = H.derived(() => H.get(q)?.kind === "folder" ? "Its documents will be moved to the root and will not be deleted." : ae()), r = H.derived(() => H.get(q)?.kind === "folder" ? be() : S()), i = H.derived(() => H.get(q)?.kind === "folder" ? he() : C()), 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
+ () => w(),
1292
+ () => j(),
1293
+ () => b(),
1294
+ () => b(),
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), b = H.state(!1), x = H.state(!1), S = H.state(null), C = H.state(!1);
1305
+ async function w() {
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
+ w();
1318
+ }), H.user_effect(() => {
1319
+ ht() !== 0 && w();
1320
+ });
1321
+ let E = !0;
1322
+ H.user_effect(() => {
1323
+ if (B(), E) {
1324
+ E = !1;
1325
+ return;
1326
+ }
1327
+ w();
1328
+ });
1329
+ async function D() {
1330
+ await w();
1331
+ }
1332
+ bt(() => {
1333
+ u &&= (clearTimeout(u), null);
1334
+ });
1335
+ async function ie(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 O(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 k() {
1357
+ H.set(d, !1), H.set(f, null), H.set(p, ""), H.set(v, null), H.set(b, !1);
1358
+ }
1359
+ async function A(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(b, !0);
1369
+ try {
1370
+ await Be(t.id, { title: n }), k(), await w(), 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(b, !1);
1375
+ }
1376
+ }
1377
+ function j(e, t) {
1378
+ H.set(S, {
1379
+ id: e,
1380
+ title: t
1381
+ }, !0), H.set(x, !0);
1382
+ }
1383
+ function N() {
1384
+ H.set(x, !1), H.set(S, null), H.set(C, !1);
1385
+ }
1386
+ async function se() {
1387
+ let e = H.get(S);
1388
+ if (!(!e || H.get(C))) {
1389
+ H.set(C, !0);
1390
+ try {
1391
+ await He(e.id), N(), await w(), pt();
1392
+ } catch (e) {
1393
+ console.error("RecentDocs: delete failed", e), H.set(a, e instanceof Error ? e.message : ue(), !0), H.set(C, !1);
1394
+ }
1395
+ }
1396
+ }
1397
+ var P = { refreshRecentDocs: D }, ce = Yt(), le = H.first_child(ce), 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), y = H.child(v, !0);
1413
+ H.reset(v), H.reset(d), H.reset(a);
1414
+ var b = H.sibling(a, 2), ne = H.child(b), x = (e) => {
1415
+ te(e, { class: "size-3.5 animate-spin" });
1416
+ }, S = (e) => {
1417
+ t(e, { class: "size-3.5" });
1418
+ }, C = (e) => {
1419
+ o(e, { class: "size-3.5" });
1420
+ };
1421
+ H.if(ne, (e) => {
1422
+ H.get(l) === H.get(n).id ? e(x) : H.get(s) === H.get(n).id ? e(S, 1) : e(C, -1);
1423
+ }), H.reset(b), m(H.sibling(b, 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
+ }), [() => T(), () => T()]), 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: () => O(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: () => j(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(y, H.get(n).updatedAt), H.set_class(b, 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(b, "aria-label", t), H.set_attribute(b, "title", r), b.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
+ () => oe(),
1474
+ () => oe()
1475
+ ]), H.delegated("click", a, () => {
1476
+ H.set(i, H.get(n).id, !0);
1477
+ }), H.delegated("click", b, (e) => void ie(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 || k();
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), [() => y()]), 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), [() => y()]), 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(b);
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: k,
1563
+ get disabled() {
1564
+ return H.get(b);
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(b) || H.get(p).trim().length === 0);
1576
+ Oe(i, {
1577
+ type: "submit",
1578
+ onclick: A,
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(b) ? re() : 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, A), H.append(e, n);
1594
+ },
1595
+ $$slots: { default: !0 }
1596
+ });
1597
+ var be = H.sibling(F, 2);
1598
+ {
1599
+ let e = H.derived(() => ne()), t = H.derived(() => ae()), 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(C);
1616
+ },
1617
+ onConfirm: se,
1618
+ onCancel: N,
1619
+ get open() {
1620
+ return H.get(x);
1621
+ },
1622
+ set open(e) {
1623
+ H.set(x, e, !0);
1624
+ }
1625
+ });
1626
+ }
1627
+ return H.template_effect((e) => H.set_text(fe, e), [() => M()]), H.append(e, ce), H.pop(P);
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, E(), !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 y() {
1658
+ H.set(a, null);
1659
+ }
1660
+ function b(e) {
1661
+ H.set(c, e, !0), H.set(o, !0);
1662
+ }
1663
+ function ne() {
1664
+ H.set(o, !1), H.set(c, null);
1665
+ }
1666
+ async function x() {
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 S = tn(), C = H.first_child(S), w = H.child(C), D = H.child(w, !0);
1680
+ H.reset(w);
1681
+ var re = H.sibling(w, 2), ie = (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(re, (e) => {
1686
+ H.get(r) && e(ie);
1687
+ });
1688
+ var ae = H.sibling(re, 2), A = H.child(ae);
1689
+ H.each(A, 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
+ () => T(),
1708
+ () => T()
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: () => b(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 j = H.sibling(A, 2), M = H.child(j);
1752
+ s(M, { class: "size-3" });
1753
+ var oe = H.sibling(M);
1754
+ H.reset(j), H.reset(ae), H.reset(C);
1755
+ var N = H.sibling(C, 2);
1756
+ {
1757
+ let e = H.derived(() => H.get(a) ? "edit" : "create");
1758
+ yt(N, {
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: y,
1768
+ get open() {
1769
+ return H.get(i);
1770
+ },
1771
+ set open(e) {
1772
+ H.set(i, e, !0);
1773
+ }
1774
+ });
1775
+ }
1776
+ var se = H.sibling(N, 2);
1777
+ {
1778
+ let e = H.derived(() => v()), t = H.derived(() => O()), n = H.derived(() => ye()), r = H.derived(() => _e());
1779
+ gt(se, {
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: x,
1797
+ onCancel: ne,
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(D, e), H.set_attribute(j, "aria-label", t), H.set_text(oe, ` ${n ?? ""}`);
1808
+ }, [
1809
+ () => k(),
1810
+ () => F(),
1811
+ () => ce()
1812
+ ]), H.delegated("click", j, () => {
1813
+ H.set(a, null), H.set(i, !0);
1814
+ }), H.append(e, S), 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=\"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.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", b), () => {
1836
+ window.removeEventListener("mousemove", y), window.removeEventListener("mouseup", b);
1837
+ };
1838
+ });
1839
+ function v(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 b() {
1847
+ H.set(_, !1), localStorage.setItem("hiai_sidebar_width", H.get(g).toString());
1848
+ }
1849
+ function ne() {
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), D = H.child(E), re = (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, v), H.append(e, t);
1866
+ };
1867
+ H.if(D, (e) => {
1868
+ !n() && !H.get(h) && e(re);
1869
+ });
1870
+ var ie = H.sibling(D, 2), ae = (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(ie, (e) => {
1881
+ n() || e(ae);
1882
+ });
1883
+ var O = H.sibling(ie, 2), oe = (e) => {
1884
+ var t = sn(), n = H.child(t);
1885
+ Ot(n, { class: "mr-5" });
1886
+ var r = H.sibling(n, 2), i = (e) => {
1887
+ var t = Y();
1888
+ Gt(H.first_child(t), {}), H.next(2), H.append(e, t);
1889
+ };
1890
+ H.if(r, (e) => {
1891
+ H.get(m) === "all" && e(i);
1892
+ });
1893
+ var a = H.sibling(r, 2), o = (e) => {
1894
+ var t = Y();
1895
+ Xt(H.first_child(t), {}), H.next(2), H.append(e, t);
1896
+ };
1897
+ H.if(a, (e) => {
1898
+ (H.get(m) === "all" || H.get(m) === "recent") && e(o);
1899
+ });
1900
+ var s = H.sibling(a, 2), l = (e) => {
1901
+ nn(e, {});
1902
+ };
1903
+ H.if(s, (e) => {
1904
+ (H.get(m) === "all" || H.get(m) === "tags") && e(l);
1905
+ });
1906
+ var u = H.sibling(s, 2), d = (e) => {
1907
+ var t = on(), n = H.sibling(H.first_child(t), 2);
1908
+ H.each(n, 21, () => H.get(te), (e) => e.id, (e, t) => {
1909
+ let n = H.derived(() => H.get(t).icon);
1910
+ var r = X(), i = H.child(r), a = (e) => {
1911
+ var t = H.comment(), r = H.first_child(t);
1912
+ H.component(r, () => H.get(n), (e, t) => {
1913
+ t(e, { class: "size-4" });
1914
+ }), H.append(e, t);
1915
+ };
1916
+ H.if(i, (e) => {
1917
+ H.get(n) && e(a);
1918
+ });
1919
+ var o = H.sibling(i, 2), s = H.child(o, !0);
1920
+ H.reset(o);
1921
+ var l = H.sibling(o, 2), u = (e) => {
1922
+ var n = an(), r = H.child(n, !0);
1923
+ H.reset(n), H.template_effect(() => H.set_text(r, H.get(t).badge)), H.append(e, n);
1924
+ };
1925
+ H.if(l, (e) => {
1926
+ H.get(t).badge !== void 0 && e(u);
1927
+ }), H.reset(r), H.template_effect((e) => {
1928
+ H.set_attribute(r, "href", e), H.set_attribute(r, "aria-disabled", H.get(t).disabled), H.set_text(s, H.get(t).label);
1929
+ }, [() => H.get(t).href ? I(c, H.get(t).href) : "#"]), H.append(e, r);
1930
+ }), H.reset(n), H.append(e, t);
1931
+ };
1932
+ H.if(u, (e) => {
1933
+ H.get(m) === "all" && H.get(te).length > 0 && e(d);
1934
+ }), H.reset(t), H.append(e, t);
1935
+ }, se = (e) => {
1936
+ var t = un(), n = H.child(t);
1937
+ i(H.child(n), { class: "size-4" }), H.reset(n);
1938
+ var r = H.sibling(n, 2);
1939
+ d(H.child(r), { class: "size-4" }), H.reset(r);
1940
+ var o = H.sibling(r, 2);
1941
+ a(H.child(o), { class: "size-4" }), H.reset(o);
1942
+ var s = H.sibling(o, 2);
1943
+ f(H.child(s), { class: "size-4" }), H.reset(s);
1944
+ var l = H.sibling(s, 2);
1945
+ H.each(l, 17, () => H.get(te), (e) => e.id, (e, t) => {
1946
+ let n = H.derived(() => H.get(t).icon);
1947
+ var r = ln(), i = H.child(r), a = (e) => {
1948
+ var t = H.comment(), r = H.first_child(t);
1949
+ H.component(r, () => H.get(n), (e, t) => {
1950
+ t(e, { class: "size-4" });
1951
+ }), H.append(e, t);
1952
+ }, o = (e) => {
1953
+ var n = cn(), r = H.child(n, !0);
1954
+ H.reset(n), H.template_effect((e) => H.set_text(r, e), [() => H.get(t).label.slice(0, 1)]), H.append(e, n);
1955
+ };
1956
+ H.if(i, (e) => {
1957
+ H.get(n) ? e(a) : e(o, -1);
1958
+ }), H.reset(r), H.template_effect((e) => {
1959
+ 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);
1960
+ }, [() => H.get(t).href ? I(c, H.get(t).href) : "#"]), H.append(e, r);
1961
+ }), H.reset(t), H.template_effect((e, t, i, a, c, l, u, d) => {
1962
+ 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), H.set_attribute(o, "title", c), H.set_attribute(o, "aria-label", l), H.set_attribute(s, "title", u), H.set_attribute(s, "aria-label", d);
1963
+ }, [
1964
+ () => j(),
1965
+ () => j(),
1966
+ () => N(),
1967
+ () => N(),
1968
+ () => M(),
1969
+ () => M(),
1970
+ () => k(),
1971
+ () => k()
1972
+ ]), H.delegated("click", n, () => Ce(c, "/")), H.delegated("click", r, ne), H.delegated("click", o, () => S("recent")), H.delegated("click", s, () => S("tags")), H.append(e, t);
1973
+ };
1974
+ H.if(O, (e) => {
1975
+ H.get(h) ? e(se, -1) : e(oe);
1976
+ });
1977
+ var P = H.sibling(O, 2), ce = H.child(P), le = (e) => {
1978
+ var t = dn(), n = H.child(t);
1979
+ W(H.child(n), { class: "size-4" }), H.reset(n);
1980
+ var r = H.sibling(n, 2);
1981
+ H.reset(t), H.template_effect((e, t, i, a) => {
1982
+ 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);
1983
+ }, [
1984
+ () => A(),
1985
+ () => A(),
1986
+ () => x(),
1987
+ () => x()
1988
+ ]), H.delegated("click", n, () => {
1989
+ H.set(p, !0);
1990
+ }), H.append(e, t);
1991
+ }, ue = (e) => {
1992
+ var t = fn(), n = H.child(t), r = H.child(n, !0);
1993
+ H.reset(n);
1994
+ var i = H.sibling(n, 2);
1995
+ W(H.child(i), { class: "size-4" }), H.reset(i), H.reset(t), H.template_effect((e, t, a, o) => {
1996
+ H.set_attribute(n, "title", e), H.set_text(r, t), H.set_attribute(i, "title", a), H.set_attribute(i, "aria-label", o);
1997
+ }, [
1998
+ () => x(),
1999
+ () => x(),
2000
+ () => A(),
2001
+ () => A()
2002
+ ]), H.delegated("click", i, () => {
2003
+ H.set(p, !0);
2004
+ }), H.append(e, t);
2005
+ };
2006
+ H.if(ce, (e) => {
2007
+ H.get(h) ? e(le) : e(ue, -1);
2008
+ }), H.reset(P), H.reset(E), H.bind_this(E, (e) => o(e), () => o()), u(H.sibling(E, 2), {
2009
+ get open() {
2010
+ return H.get(p);
2011
+ },
2012
+ set open(e) {
2013
+ H.set(p, e, !0);
2014
+ }
2015
+ }), H.template_effect((e) => {
2016
+ 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;`);
2017
+ }, [() => 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();
2018
+ }
2019
+ H.delegate(["mousedown", "click"]);
2020
+ //#endregion
2021
+ export { mn as t };