@hiai-gg/docsmint 0.3.8 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/backend/index.js +1 -1
  2. package/dist/client.d.ts +11 -0
  3. package/dist/client.js +9 -0
  4. package/dist/frontend/CategoryDialog-CxVyaBV5.js +611 -0
  5. package/dist/frontend/{ConfirmDialog-BLF3x_hr.js → ConfirmDialog-NFGXRa3E.js} +2 -2
  6. package/dist/frontend/{CreateSnapshotDialog-D5vPvFTL.js → CreateSnapshotDialog-BDgFTeFn.js} +40 -40
  7. package/dist/frontend/{DatePicker-CLNTdvTk.js → DatePicker-BZRBluzF.js} +102 -105
  8. package/dist/frontend/{DeleteDialog-DxYFJivN.js → DeleteDialog-CvAr2WPu.js} +39 -39
  9. package/dist/frontend/{FolderNode-C2zG7uii.js → FolderNode-C6FJv99G.js} +41 -41
  10. package/dist/frontend/HiaiDocsExtensionProvider-DHWLzRUu.js +11 -0
  11. package/dist/frontend/SettingsDialog-BHh68rTB.js +1016 -0
  12. package/dist/frontend/{ShareDialog-DYu3RKQu.js → ShareDialog-BUOkYSlw.js} +35 -35
  13. package/dist/frontend/Sidebar-Cu3JrKDC.js +2021 -0
  14. package/dist/frontend/{TagCreateDialog-DXQs2bL9.js → TagCreateDialog-B9YZBNHi.js} +38 -38
  15. package/dist/frontend/api/settings.js +1 -1
  16. package/dist/frontend/app-shell.d.ts +8 -0
  17. package/dist/frontend/app-shell.js +291 -0
  18. package/dist/frontend/{clsx-C7bIvsDS.js → bundle-mjs-DllmqUxV.js} +583 -583
  19. package/dist/frontend/components/category-dialog.js +1 -1
  20. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  21. package/dist/frontend/components/delete-dialog.js +1 -1
  22. package/dist/frontend/components/editor/document-editor.js +1102 -1102
  23. package/dist/frontend/components/editor/document-title.js +2 -2
  24. package/dist/frontend/components/editor/markdown-toggle.js +1 -1
  25. package/dist/frontend/components/folder-node.js +1 -1
  26. package/dist/frontend/components/save-as-dialog.js +75 -75
  27. package/dist/frontend/components/settings.js +1 -1
  28. package/dist/frontend/components/share-dialog.js +1 -1
  29. package/dist/frontend/components/sidebar.js +2 -2021
  30. package/dist/frontend/components/tag-create-dialog.js +1 -1
  31. package/dist/frontend/components/version-history.js +58 -58
  32. package/dist/frontend/{FolderDialog-CRVZM2Oi.js → confirm-dialog-C4jTRbiS.js} +69 -69
  33. package/dist/frontend/dashboard.js +1118 -1118
  34. package/dist/frontend/{dialog-D6NxYVmy.js → dialog-Bevp9mmM.js} +2 -2
  35. package/dist/frontend/{loader-circle-BA6aLO71.js → dist-C3857Spp.js} +81 -81
  36. package/dist/frontend/{ellipsis-vertical-P9MHvCps.js → dropdown-menu-CRSby3e9.js} +182 -182
  37. package/dist/frontend/extension.js +2 -11
  38. package/dist/frontend/{floating-layer-anchor-CPwucTfd.js → floating-layer-anchor-BDs7vO-M.js} +1 -1
  39. package/dist/frontend/frontend.css +1 -1
  40. package/dist/frontend/i18n.js +2 -2
  41. package/dist/frontend/{input-B5Rak-5G.js → input-BWlOML_m.js} +1 -1
  42. package/dist/frontend/{label-CW9rxoAb.js → label-C2HfJNQ2.js} +1 -1
  43. package/dist/frontend/{messages-BpYaLbzE.js → messages-C5Q890i2.js} +8 -8
  44. package/dist/frontend/search.js +613 -613
  45. package/dist/frontend/{select-value-sF86Geyh.js → select-value-GXwx90Pr.js} +2 -2
  46. package/dist/frontend/{settings-blyobazp.js → settings-DSrUl4hW.js} +9 -9
  47. package/dist/frontend/{textarea-i1720bE7.js → textarea-DOAE-h42.js} +1 -1
  48. package/dist/frontend/{utils-hzdMVeCv.js → utils-BPDRytUU.js} +1 -1
  49. package/dist/frontend/{utils-CffiyuTo.js → utils-DrfHTcei.js} +1 -1
  50. package/dist/frontend/utils.js +1 -1
  51. package/dist/frontend-ssr/api/settings.js +1 -1
  52. package/dist/frontend-ssr/app-shell.js +294 -0
  53. package/dist/frontend-ssr/assets/{CategoryDialog-C2xaZKHq.js → CategoryDialog-BcGW8-Kf.js} +4 -4
  54. package/dist/frontend-ssr/assets/{CreateSnapshotDialog-BRw1xJW1.js → CreateSnapshotDialog-1bROJ-Rn.js} +4 -4
  55. package/dist/frontend-ssr/assets/{DatePicker-DnXniwlZ.js → DatePicker-B1ML8OVz.js} +33 -33
  56. package/dist/frontend-ssr/assets/{FolderNode-DRfBfpft.js → FolderNode-BZ0Q2QUS.js} +3 -3
  57. package/dist/frontend-ssr/assets/HiaiDocsExtensionProvider-DAM-lX4R.js +13 -0
  58. package/dist/frontend-ssr/assets/{SettingsDialog-CX8Noa8A.js → SettingsDialog-B8L_YqNA.js} +16 -16
  59. package/dist/frontend-ssr/assets/{ShareDialog-Cge49ZdJ.js → ShareDialog-vMvJLRfn.js} +1 -1
  60. package/dist/frontend-ssr/assets/Sidebar-EHuUAx3W.js +2033 -0
  61. package/dist/frontend-ssr/assets/{TagCreateDialog-EAChgBF-.js → TagCreateDialog-B0DPEfmQ.js} +3 -3
  62. package/dist/frontend-ssr/assets/{FolderDialog-Dq7I2cKZ.js → confirm-dialog-BCthVwUY.js} +4 -4
  63. package/dist/frontend-ssr/assets/{ellipsis-vertical-C-0hgkZn.js → dropdown-menu-Bj5rbqbB.js} +96 -96
  64. package/dist/frontend-ssr/assets/{messages-DhXqlcJI.js → messages-CvqpZNJe.js} +1 -1
  65. package/dist/frontend-ssr/assets/{select-value-DngdSmLI.js → select-value-6Lk0ToYd.js} +1 -1
  66. package/dist/frontend-ssr/components/category-dialog.js +1 -1
  67. package/dist/frontend-ssr/components/create-snapshot-dialog.js +1 -1
  68. package/dist/frontend-ssr/components/delete-dialog.js +1 -1
  69. package/dist/frontend-ssr/components/editor/document-editor.js +5 -5
  70. package/dist/frontend-ssr/components/editor/document-title.js +1 -1
  71. package/dist/frontend-ssr/components/editor/markdown-toggle.js +1 -1
  72. package/dist/frontend-ssr/components/folder-node.js +1 -1
  73. package/dist/frontend-ssr/components/save-as-dialog.js +4 -4
  74. package/dist/frontend-ssr/components/settings.js +1 -1
  75. package/dist/frontend-ssr/components/share-dialog.js +1 -1
  76. package/dist/frontend-ssr/components/sidebar.js +1 -2032
  77. package/dist/frontend-ssr/components/tag-create-dialog.js +1 -1
  78. package/dist/frontend-ssr/components/version-history.js +3 -3
  79. package/dist/frontend-ssr/dashboard.js +15 -15
  80. package/dist/frontend-ssr/extension.js +1 -12
  81. package/dist/frontend-ssr/i18n.js +1 -1
  82. package/dist/frontend-ssr/search.js +3 -3
  83. package/package.json +7 -1
  84. package/packages/cli/src/index.ts +1 -1
  85. package/packages/mcp-server/src/index.ts +1 -1
  86. package/dist/frontend/CategoryDialog-DphkZqIB.js +0 -611
  87. package/dist/frontend/SettingsDialog-DCM4-N6_.js +0 -1016
  88. package/dist/frontend-ssr/assets/{DeleteDialog-BCfZy3Zn.js → DeleteDialog-tBYaP0L3.js} +1 -1
  89. package/dist/frontend-ssr/assets/{floating-layer-anchor-uzw9K8qN.js → floating-layer-anchor-CYIE8Oj6.js} +1 -1
  90. package/dist/frontend-ssr/assets/{settings-E6qSAWM2.js → settings-Bk5Hk9Vq.js} +1 -1
@@ -1,2021 +1,2 @@
1
- import { t as e } from "../loader-circle-BA6aLO71.js";
2
- import { a as t, i as n, n as r, o as i, r as a, t as o } from "../dialog-D6NxYVmy.js";
3
- import { a as s, i as c, n as l, o as u, t as d } from "../ellipsis-vertical-P9MHvCps.js";
4
- import { t as f } from "../label-CW9rxoAb.js";
5
- import { t as p } from "../Icon-CooFj4Ee.js";
6
- import { t as m } from "../check-D-UuvBuh.js";
7
- import { t as h } from "../chevron-down-CiPtYyFh.js";
8
- import { n as g, t as ee } from "../folder-DeWhnD7O.js";
9
- import { t as _ } from "../clock-DJHbHZb8.js";
10
- import { t as te } from "../copy-GppwRMjX.js";
11
- import { n as v, r as ne, t as y } from "../FolderDialog-CRVZM2Oi.js";
12
- import { t as b } from "../SettingsDialog-DCM4-N6_.js";
13
- import { n as x, t as S } from "../tag-HxRazVN_.js";
14
- import { t as C } from "../x-CzBsnJ2x.js";
15
- import { t as w } from "../ConfirmDialog-BLF3x_hr.js";
16
- import { n as T } from "../client-GbtOH90i.js";
17
- import { c as re, i as ie, r as ae, s as oe, t as E } from "../documents-BsDkvzCm.js";
18
- import { c as D, r as se, s as O, t as k } from "../folders-CTuV_JtU.js";
19
- import { $n as ce, C as le, Ci as ue, Di as de, E as A, Ei as fe, Ft as j, Hn as pe, Jn as me, Jr as he, Mi as ge, Pi as _e, Qr as M, Si as ve, Ti as ye, Un as N, Ut as be, Vt as xe, Wt as P, Xr as F, Yr as Se, Zr as I, ci as Ce, di as we, er as Te, f as Ee, gi as De, ir as Oe, ki as ke, li as Ae, nr as je, pi as Me, qn as Ne, si as Pe, ti as L, tr as Fe, wi as Ie, wr as R } from "../messages-BpYaLbzE.js";
20
- import { i as Le, r as Re, s as ze } from "../categories-izQovv2w.js";
21
- import { a as Be, c as Ve, f as He, i as Ue, n as We, o as Ge, p as Ke, r as qe, s as Je, t as Ye, u as Xe } from "../subfolders-refresh-store.svelte-B2dKVmgz.js";
22
- import { t as Ze } from "../clipboard-Cgzxc0_R.js";
23
- import { t as z } from "../utils-CffiyuTo.js";
24
- import { t as Qe } from "../input-B5Rak-5G.js";
25
- import { t as $e } from "../ShareDialog-DYu3RKQu.js";
26
- import { t as B } from "../context-BMD6XTPe.js";
27
- import { t as et } from "../resolve-BG4HgzpN.js";
28
- import { a as tt, i as nt, n as V, o as rt, s as it, t as at } from "../tag-store.svelte-CqrUXo0o.js";
29
- import { i as ot, o as st } from "../tags-CtCV0Djo.js";
30
- import { t as ct } from "../DeleteDialog-DxYFJivN.js";
31
- import { t as lt } from "../CategoryDialog-DphkZqIB.js";
32
- import { n as ut, t as dt } from "../dndzone-BzsOINtP.js";
33
- import { t as ft } from "../FolderNode-C2zG7uii.js";
34
- import { n as pt, t as mt } from "../document-drop-coordinator-C4xHMjwC.js";
35
- import { t as ht } from "../TagCreateDialog-DXQs2bL9.js";
36
- import "svelte/internal/disclose-version";
37
- import * as H from "svelte/internal/client";
38
- import { onDestroy as gt, onMount as _t, untrack as vt } from "svelte";
39
- import "svelte/internal/flags/legacy";
40
- import { goto as yt } from "$app/navigation";
41
- import { page as bt } from "$app/state";
42
- import { flip as xt } 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 U(e, t) {
45
- let n = H.legacy_rest_props(t, [
46
- "children",
47
- "$$slots",
48
- "$$events",
49
- "$$legacy"
50
- ]), r = [
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
- p(e, H.spread_props({ name: "panel-left-close" }, () => n, {
62
- get iconNode() {
63
- return r;
64
- },
65
- children: (e, n) => {
66
- var r = H.comment(), i = H.first_child(r);
67
- H.slot(i, t, "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 W(e, t) {
75
- let n = H.legacy_rest_props(t, [
76
- "children",
77
- "$$slots",
78
- "$$events",
79
- "$$legacy"
80
- ]), r = [
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
- p(e, H.spread_props({ name: "panel-left-open" }, () => n, {
92
- get iconNode() {
93
- return r;
94
- },
95
- children: (e, n) => {
96
- var r = H.comment(), i = H.first_child(r);
97
- H.slot(i, t, "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 St(e, t) {
105
- let n = H.legacy_rest_props(t, [
106
- "children",
107
- "$$slots",
108
- "$$events",
109
- "$$legacy"
110
- ]), r = [["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
- p(e, H.spread_props({ name: "settings" }, () => n, {
116
- get iconNode() {
117
- return r;
118
- },
119
- children: (e, n) => {
120
- var r = H.comment(), i = H.first_child(r);
121
- H.slot(i, t, "default", {}, null), H.append(e, r);
122
- },
123
- $$slots: { default: !0 }
124
- }));
125
- }
126
- //#endregion
127
- //#region src/lib/components/SearchBar.svelte
128
- var Ct = 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>"), wt = H.from_html("<div><!> <input type=\"text\"/> <!></div>");
129
- function Tt(e, t) {
130
- H.push(t, !0);
131
- let n = H.state(""), r = H.state(null);
132
- function i() {
133
- H.set(n, ""), H.get(r)?.focus();
134
- }
135
- var a = wt(), o = H.child(a);
136
- x(o, { class: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" });
137
- var s = H.sibling(o, 2);
138
- H.remove_input_defaults(s), H.bind_this(s, (e) => H.set(r, e), () => H.get(r));
139
- var c = H.sibling(s, 2), l = (e) => {
140
- var t = Ct();
141
- C(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
- }, [() => j(), () => j()]), H.delegated("click", t, i), H.append(e, t);
144
- };
145
- H.if(c, (e) => {
146
- H.get(n) && e(l);
147
- }), H.reset(a), H.template_effect((e, t, n) => {
148
- H.set_class(a, 1, e), H.set_attribute(s, "placeholder", t), H.set_class(s, 1, n);
149
- }, [
150
- () => H.clsx(z("relative", t.class)),
151
- () => he(),
152
- () => H.clsx(z("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", s, (e) => {
154
- e.key === "Enter" && H.get(n).trim() && yt(`/search?q=${encodeURIComponent(H.get(n).trim())}`);
155
- }), H.event("focus", s, () => {}), H.bind_value(s, () => H.get(n), (e) => H.set(n, e)), H.append(e, a), H.pop();
156
- }
157
- H.delegate(["keydown", "click"]);
158
- //#endregion
159
- //#region src/lib/components/sidebar/FolderTree.svelte
160
- var Et = (e, t = H.noop) => {
161
- var n = jt(), r = H.sibling(H.child(n), 2);
162
- ne(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(z("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", bt.params.id === t().id && "bg-accent text-accent-foreground font-medium"))]), H.append(e, n);
167
- }, Dt = H.from_html("<button><!></button>"), Ot = H.from_html("<!> <!> <!>", 1), kt = H.from_html("<!> <!>", 1), At = H.from_html("<button type=\"button\"><!></button>"), jt = H.from_html("<a data-sveltekit-noscroll=\"\"><span class=\"w-3.5 shrink-0\"></span> <!> <span class=\"min-w-0 truncate\"> </span></a>"), Mt = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), Nt = H.from_html("<!> <!> <!> <!> <!> <!>", 1), Pt = H.from_html("<div><!></div>"), Ft = H.from_html("<div class=\"group/doc flex w-full min-w-0 items-center gap-1\"><!> <!> <!></div>"), It = H.from_html("<div class=\"ml-0.5 space-y-0.5 border-l border-border pl-0.5\"><div></div> <div></div></div>"), Lt = 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>"), Rt = 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>"), zt = H.from_html("<p id=\"rename-input-error\" class=\"text-xs text-destructive\" role=\"alert\"> </p>"), Bt = H.from_html("<!> <form class=\"space-y-4\"><div class=\"space-y-2\"><!> <!> <!></div></form> <!>", 1), Vt = 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 Ht(p, ee) {
169
- H.push(ee, !0);
170
- let _ = (e, t = H.noop) => {
171
- u(e, {
172
- children: (e, n) => {
173
- var r = kt(), i = H.first_child(r);
174
- l(i, {
175
- child: (e, t) => {
176
- let n = () => (t?.()).props;
177
- var r = Dt(), 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
- }), [() => P(), () => P()]), d(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
188
- },
189
- $$slots: { child: !0 }
190
- }), s(H.sibling(i, 2), {
191
- align: "end",
192
- children: (e, n) => {
193
- var r = Ot(), i = H.first_child(r);
194
- c(i, {
195
- onSelect: () => $n("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), [() => Me()]), H.append(e, n);
200
- },
201
- $$slots: { default: !0 }
202
- });
203
- var a = H.sibling(i, 2);
204
- c(a, {
205
- onSelect: () => rr(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), [() => ue()]), H.append(e, n);
210
- },
211
- $$slots: { default: !0 }
212
- }), c(H.sibling(a, 2), {
213
- class: "text-destructive focus:text-destructive",
214
- onSelect: () => nr("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), [() => Te()]), 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
- }, ne = (t, n = H.noop) => {
229
- var r = At(), i = H.child(r), a = (t) => {
230
- e(t, { class: "size-3.5 animate-spin" });
231
- }, o = (e) => {
232
- m(e, { class: "size-3.5" });
233
- }, s = (e) => {
234
- te(e, { class: "size-3.5" });
235
- };
236
- H.if(i, (e) => {
237
- H.get(rn) === n().id ? e(a) : H.get(nn) === n().id ? e(o, 1) : e(s, -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(nn) === n().id || H.get(rn) === n().id ? "opacity-100" : ""}`), H.set_attribute(r, "aria-label", e), H.set_attribute(r, "title", t), r.disabled = H.get(rn) === n().id;
240
- }, [() => be(), () => be()]), H.delegated("click", r, (e) => {
241
- e.preventDefault(), e.stopPropagation(), on(n().id);
242
- }), H.append(t, r);
243
- }, b = (e, t = H.noop) => {
244
- ft(e, {
245
- get folder() {
246
- return t();
247
- },
248
- get expandedFolderIds() {
249
- return H.get(j);
250
- },
251
- onToggleFolder: wn,
252
- onRename: (e, t) => $n("folder", e, t),
253
- onDelete: (e, t) => nr("folder", e, t),
254
- onCreateSubfolder: kn,
255
- onShare: ir,
256
- get dragDisabled() {
257
- return H.get(I);
258
- },
259
- get isDraggingGlobal() {
260
- return H.get(L);
261
- },
262
- get isDraggingFolder() {
263
- return H.get(Ie);
264
- },
265
- get isDraggingDoc() {
266
- return H.get(R);
267
- },
268
- get draggedDocId() {
269
- return H.get(B);
270
- },
271
- onScheduleFolderExpand: cn,
272
- onClearExpandTimer: sn,
273
- onConsiderDocs: Mn,
274
- onFinalizeDocs: Nn,
275
- onConsiderSubfolders: Vn,
276
- onFinalizeSubfolders: Hn,
277
- onDropOnFolder: Ln,
278
- get folderDocsMap() {
279
- return H.get(ht);
280
- },
281
- folderFlipDurationMs: x,
282
- documentFlipDurationMs: S,
283
- get docRowInner() {
284
- return Et;
285
- },
286
- get copyButton() {
287
- return ne;
288
- },
289
- get docMenu() {
290
- return _;
291
- }
292
- });
293
- }, x = 200, S = 80, C = H.state(H.proxy([])), w = H.state(H.proxy([])), A = H.state(H.proxy([])), j = H.state(H.proxy(/* @__PURE__ */ new Set())), he = H.state(H.proxy(/* @__PURE__ */ new Set())), M = H.state(!0), N = H.state(null), xe = H.state(null), F = null;
294
- function Se(e) {
295
- H.set(xe, e, !0), F &&= (clearTimeout(F), null), e !== null && (F = setTimeout(() => {
296
- H.set(xe, null), F = null;
297
- }, 5e3));
298
- }
299
- let I = H.state(!1), L = H.state(!1), Ie = H.state(!1), R = H.state(!1), B = H.state(null), et = 0, nt = H.state(!1), rt = H.state(!1), it = 0, ot = Promise.resolve(), st = H.state(H.proxy([])), ht = H.state(H.proxy({})), bt = H.state(H.proxy({})), U = H.state(H.proxy({})), W = H.state(H.proxy([])), St = H.state(!1), Ct = H.state(null), wt = H.state(null), Tt = H.state(!1), jt = H.state(null), Ht = H.state(""), G = H.state(null), K = H.state(!1), q = H.state(!1), J = H.state(null), Ut = H.state(!1), Wt = H.state(""), Gt = H.state(""), Kt = H.state(""), qt = H.state(""), Jt = H.state(""), Yt = H.state(""), Xt = H.state(!1), Zt = H.state("create"), Y = H.state(null), Qt = H.state(!1), X = null, $t = H.state(null), en = null, tn = H.state(null), nn = H.state(null), rn = H.state(null), an = null;
300
- async function on(e) {
301
- if (typeof window > "u") return;
302
- let t = H.get(A).find((t) => t.id === e), n = "";
303
- H.set(rn, e, !0);
304
- try {
305
- n = (await ie(e)).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(rn, null);
310
- }
311
- n && await Ze(n) && (H.set(nn, e, !0), an && clearTimeout(an), an = setTimeout(() => {
312
- H.set(nn, null), an = null;
313
- }, 2e3));
314
- }
315
- function sn() {
316
- X !== null && (clearTimeout(X), X = null), H.set($t, null);
317
- }
318
- function cn(e) {
319
- sn(), !H.get(j).has(e) && (H.set($t, e, !0), X = setTimeout(() => {
320
- if (H.get($t) === e && !H.get(j).has(e)) {
321
- let t = new Set(H.get(j));
322
- t.add(e), H.set(j, t, !0);
323
- }
324
- X = null, H.set($t, null);
325
- }, 400));
326
- }
327
- function ln() {
328
- en !== null && (clearTimeout(en), en = null), H.set(tn, null);
329
- }
330
- function un(e) {
331
- ln(), !(e === $ ? H.get(M) : H.get(he).has(e)) && (H.set(tn, e, !0), en = setTimeout(() => {
332
- if (H.get(tn) === e) if (e === $) H.set(M, !0);
333
- else {
334
- let t = new Set(H.get(he));
335
- t.add(e), H.set(he, t, !0);
336
- }
337
- en = null, H.set(tn, null);
338
- }, 400));
339
- }
340
- function dn(e) {
341
- return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e && typeof e.id == "string") : [];
342
- }
343
- function fn(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 pn() {
359
- let { root: e, byCategory: t, byFolder: n } = fn(H.get(A));
360
- H.set(st, e, !0), H.set(bt, t, !0), H.set(ht, n, !0);
361
- }
362
- function mn() {
363
- let e = /* @__PURE__ */ new Map();
364
- for (let t of H.get(w)) e.set(t.id, []);
365
- let t = [];
366
- for (let n of H.get(C)) 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(w)) n[t.id] = e.get(t.id) ?? [];
369
- n[$] = t, H.set(U, n, !0);
370
- }
371
- H.user_effect(() => {
372
- H.get(C), H.get(w), !(H.get(nt) || H.get(rt)) && (H.set(W, H.get(gr).map((e) => ({
373
- id: e.id,
374
- category: e.category,
375
- folders: e.folders
376
- })), !0), mn());
377
- });
378
- async function hn() {
379
- try {
380
- let e = await O(null);
381
- H.set(C, (e[0]?.children ?? []).map((e) => (Ke(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(N, null);
388
- } catch (e) {
389
- console.error("FolderTree: failed to load folders", e), H.set(N, "Failed to load folders");
390
- }
391
- }
392
- async function gn() {
393
- try {
394
- let e = await Le(), 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(w, e, !0);
400
- } catch (e) {
401
- console.error("FolderTree: failed to load categories", e);
402
- }
403
- }
404
- let _n = 0;
405
- async function vn() {
406
- let e = ++_n;
407
- try {
408
- let t = V(), n = await oe({
409
- limit: 100,
410
- ...t ? { tag: t } : {}
411
- });
412
- if (e !== _n) return;
413
- H.set(A, n.items.map((e) => Ve(e.id) ? {
414
- ...e,
415
- folderId: Ve(e.id)?.folderId ?? null,
416
- categoryId: Ve(e.id)?.categoryId ?? null
417
- } : e), !0), H.get(A).forEach((e) => {
418
- e.id, e.title, e.categoryId, e.folderId, Object.keys(e), He(e.id, e.folderId ?? null, e.categoryId ?? null);
419
- }), pn();
420
- } catch (e) {
421
- console.error("FolderTree: failed to load documents", e), H.set(N, "Failed to load documents");
422
- }
423
- }
424
- async function Z() {
425
- E(), await Promise.all([
426
- hn(),
427
- gn(),
428
- vn()
429
- ]);
430
- }
431
- function yn(e, t) {
432
- _n++, He(e, t.folderId, t.categoryId), H.set(A, H.get(A).map((n) => n.id === e ? {
433
- ...n,
434
- ...t
435
- } : n), !0), pn();
436
- }
437
- let bn = pt({
438
- patch: (e, t) => re(e, t),
439
- optimistic: (e, t) => Xe(e, t.folderId, t.categoryId),
440
- acknowledge: Ye,
441
- rollback: yn,
442
- onError: (e) => {
443
- console.error("FolderTree: document move failed", e), Se(e instanceof Error ? e.message : "Move failed");
444
- }
445
- });
446
- function xn(e, t) {
447
- let n = qe(e);
448
- n && (n.folderId === t.folderId && n.categoryId === t.categoryId || bn(e, t, n).catch(() => void 0));
449
- }
450
- let Q = mt({ persist: xn });
451
- _t(() => {
452
- let e = setTimeout(() => {
453
- Z();
454
- }, 500);
455
- return () => clearTimeout(e);
456
- }), gt(() => {
457
- Q.cancel(), F &&= (clearTimeout(F), null), X &&= (clearTimeout(X), null), en &&= (clearTimeout(en), null);
458
- }), H.user_effect(() => {
459
- let e = at(), t = Ge();
460
- e === 0 && t === 0 || Z();
461
- }), H.user_effect(() => {
462
- if (Ue() === 0) return;
463
- let e = Je();
464
- e && vt(() => {
465
- _n++;
466
- let t = H.get(A).findIndex((t) => t.id === e.id);
467
- t !== -1 && (H.set(A, H.get(A).map((n, r) => r === t ? {
468
- ...n,
469
- folderId: e.folderId,
470
- categoryId: e.categoryId
471
- } : n), !0), pn());
472
- });
473
- });
474
- let Sn = !0;
475
- H.user_effect(() => {
476
- if (V(), Sn) {
477
- Sn = !1;
478
- return;
479
- }
480
- Z();
481
- });
482
- async function Cn() {
483
- await Z();
484
- }
485
- function wn(e) {
486
- let t = H.get(j).has(e), n = new Set(H.get(j));
487
- t ? n.delete(e) : n.add(e), H.set(j, n, !0), H.set(I, !0), typeof window < "u" && window.setTimeout(() => {
488
- H.set(I, !1);
489
- }, 250);
490
- }
491
- function Tn(e) {
492
- let t = new Set(H.get(he));
493
- t.has(e) ? t.delete(e) : t.add(e), H.set(he, t, !0);
494
- }
495
- function En() {
496
- H.set(M, !H.get(M));
497
- }
498
- function Dn() {
499
- H.set(Ct, null), H.set(wt, null), H.set(St, !0);
500
- }
501
- function On(e) {
502
- H.set(Ct, null), H.set(wt, e, !0), H.set(St, !0);
503
- }
504
- function kn(e) {
505
- H.set(Ct, e, !0), H.set(wt, null), H.set(St, !0);
506
- }
507
- async function An(e) {
508
- let t = H.get(Ct), n = await k({
509
- name: e,
510
- parentId: t,
511
- categoryId: H.get(wt)
512
- });
513
- return await hn(), t && (H.set(j, new Set(H.get(j)).add(t), !0), We(t)), n;
514
- }
515
- function jn(e, t) {
516
- if (e.kind === "root") {
517
- H.set(st, t, !0);
518
- return;
519
- }
520
- if (e.kind === "category") {
521
- H.set(bt, {
522
- ...H.get(bt),
523
- [e.id]: t
524
- }, !0);
525
- return;
526
- }
527
- H.set(ht, {
528
- ...H.get(ht),
529
- [e.id]: t
530
- }, !0);
531
- }
532
- function Mn(e) {
533
- return (t) => {
534
- t.stopPropagation();
535
- let n = !H.get(R);
536
- H.set(L, !0), H.set(R, !0), t.detail.info?.id && (H.set(B, t.detail.info.id, !0), n && Q.begin(t.detail.info.id, ++et)), jn(e, dn(t.detail.items)), sn();
537
- };
538
- }
539
- function Nn(e) {
540
- return (t) => {
541
- t.stopPropagation(), jn(e, dn(t.detail.items)), sn();
542
- let n = t.detail.info?.trigger === "droppedIntoAnother";
543
- t.detail.info?.trigger;
544
- let r = t.detail.info?.id ?? H.get(B);
545
- !n && r && Q.zone(r, Pn(e)), r && Q.end(r, et), H.set(L, !1), H.set(R, !1), typeof window < "u" ? window.setTimeout(() => {
546
- H.get(B) === r && H.set(B, null);
547
- }, 0) : H.set(B, null);
548
- };
549
- }
550
- function Pn(e) {
551
- return {
552
- folderId: e.kind === "folder" ? e.id : null,
553
- categoryId: e.kind === "category" ? e.id : e.kind === "root" ? null : Be(e.id)?.categoryId ?? null
554
- };
555
- }
556
- function Fn(e) {
557
- (H.get(B) ?? Q.pendingId(et)) && (e.preventDefault(), e.dataTransfer && (e.dataTransfer.dropEffect = "move"));
558
- }
559
- function In(e, t) {
560
- let n = H.get(B) ?? Q.pendingId(et);
561
- if (!n) return;
562
- e.preventDefault(), e.stopPropagation();
563
- let r = t === $ ? null : t, i = qe(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(B, null);
570
- }
571
- function Ln(e, t) {
572
- let n = H.get(B) ?? Q.pendingId(et);
573
- if (!n) return;
574
- e.preventDefault(), e.stopPropagation();
575
- let r = Be(t)?.categoryId ?? null, i = qe(n);
576
- i && (i.folderId !== t && Q.header(n, {
577
- folderId: t,
578
- categoryId: r
579
- }), H.set(B, null));
580
- }
581
- let Rn = "parent:";
582
- function zn(e) {
583
- return (t) => {
584
- t.stopPropagation(), H.set(L, !0), H.set(Ie, !0);
585
- let n = Un(t.detail.items);
586
- e.startsWith(Rn) || H.set(U, {
587
- ...H.get(U),
588
- [e]: n
589
- }, !0);
590
- };
591
- }
592
- function Bn(e) {
593
- return (t) => {
594
- t.stopPropagation();
595
- let n = Un(t.detail.items), r = t.detail.info?.trigger === "droppedIntoAnother";
596
- e.startsWith(Rn) || H.set(U, {
597
- ...H.get(U),
598
- [e]: n
599
- }, !0), H.set(L, !1), H.set(Ie, !1), r || Gn(e, n);
600
- };
601
- }
602
- function Vn(e) {
603
- return zn(`${Rn}${e}`);
604
- }
605
- function Hn(e) {
606
- return Bn(`${Rn}${e}`);
607
- }
608
- function Un(e) {
609
- return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e && typeof e.id == "string") : [];
610
- }
611
- function Wn(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 = Be(n)?.parentId ?? null;
616
- return t;
617
- }
618
- async function Gn(e, t) {
619
- let n = e.startsWith(Rn), r = n || e === $ ? null : e, i = n && e.slice(7) || null, a = /* @__PURE__ */ new Map(), o = n ? Wn(i) : /* @__PURE__ */ new Set();
620
- if (n) for (let e of t) {
621
- if (o.has(e.id)) continue;
622
- let t = Be(e.id);
623
- t && t.parentId !== i && (a.set(e.id, {
624
- folderId: e.id,
625
- parentId: i
626
- }), Ke(e.id, i, t.categoryId, t.order));
627
- }
628
- else for (let e of t) {
629
- let t = Be(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), Ke(e.id, null, r, t.order);
635
- }
636
- }
637
- t.forEach((e, t) => {
638
- if (n && o.has(e.id)) return;
639
- let r = Be(e.id);
640
- if (!r) return;
641
- let i = r.order !== t, s = a.get(e.id);
642
- s ? (s.order = t, Ke(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
- }), Ke(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 D(t, n);
659
- })), await Z(), mn();
660
- for (let e of c) We(e);
661
- } catch (e) {
662
- console.error("FolderTree: folder DnD persist failed", e), Se(e instanceof Error ? `Move failed: ${e.message}` : "Move failed: unknown error");
663
- }
664
- }
665
- function Kn(e) {
666
- e.stopPropagation(), H.set(L, !0), H.set(nt, !0), H.set(W, Jn(Yn(e.detail.items)), !0);
667
- }
668
- function qn(e) {
669
- e.stopPropagation();
670
- let t = Jn(Xn(e.detail.items));
671
- H.set(W, t, !0), H.set(L, !1), H.set(nt, !1), Zn(t);
672
- }
673
- function Jn(e) {
674
- let t = e.filter((e) => e.id !== $), n = H.get(W).find((e) => e.id === $) ?? H.get(gr).find((e) => e.id === $);
675
- return n ? [...t, n] : t;
676
- }
677
- function Yn(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 Xn(e) {
688
- let t = Yn(e), n = new Set(t.filter((e) => e[ut]).map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = new Map([...H.get(W), ...H.get(gr)].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 Zn(e) {
702
- let t = ++it;
703
- H.set(rt, !0);
704
- let n = e.map((e) => ({ ...e }));
705
- ot = ot.catch(() => void 0).then(async () => {
706
- try {
707
- await Qn(n);
708
- } catch (e) {
709
- console.error("FolderTree: category DnD persist failed", e), Se(e instanceof Error ? `Reorder failed: ${e.message}` : "Reorder failed: unknown error");
710
- } finally {
711
- t === it && (await Z(), H.set(rt, !1));
712
- }
713
- });
714
- }
715
- async function Qn(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 ze(e.id, { order: e.order });
723
- }
724
- function $n(e, t, n) {
725
- H.set(jt, {
726
- kind: e,
727
- id: t,
728
- name: n
729
- }, !0), H.set(Ht, n, !0), H.set(G, null), H.set(Tt, !0);
730
- }
731
- function er() {
732
- H.set(Tt, !1), H.set(jt, null), H.set(Ht, ""), H.set(G, null), H.set(K, !1);
733
- }
734
- async function tr(e) {
735
- e?.preventDefault();
736
- let t = H.get(jt);
737
- if (!t) return;
738
- let n = H.get(Ht).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 D(t.id, { name: n }) : await re(t.id, { title: n }), er(), await Z(), tt();
746
- } catch (e) {
747
- console.error("FolderTree: rename failed", e), H.set(G, e instanceof Error ? e.message : Oe(), !0);
748
- } finally {
749
- H.set(K, !1);
750
- }
751
- }
752
- function nr(e, t, n) {
753
- H.set(J, {
754
- kind: e,
755
- id: t,
756
- name: n
757
- }, !0), H.set(q, !0);
758
- }
759
- function rr(e, t) {
760
- H.set(Wt, e, !0), H.set(Gt, ""), H.set(Jt, ""), H.set(Kt, t, !0), H.set(qt, ""), H.set(Yt, ""), H.set(Ut, !0);
761
- }
762
- function ir(e, t) {
763
- H.set(Gt, e, !0), H.set(Wt, ""), H.set(Jt, ""), H.set(qt, t, !0), H.set(Kt, ""), H.set(Yt, ""), H.set(Ut, !0);
764
- }
765
- function ar(e, t) {
766
- H.set(Jt, e, !0), H.set(Wt, ""), H.set(Gt, ""), H.set(Yt, t, !0), H.set(Kt, ""), H.set(qt, ""), H.set(Ut, !0);
767
- }
768
- function or() {
769
- H.set(q, !1), H.set(J, null);
770
- }
771
- async function sr() {
772
- let e = H.get(J);
773
- e && (e.kind === "folder" ? await se(e.id) : await ae(e.id), await Z(), tt());
774
- }
775
- function cr() {
776
- H.set(Zt, "create"), H.set(Y, null), H.set(Xt, !0);
777
- }
778
- function lr(e) {
779
- H.set(Zt, "edit"), H.set(Y, e, !0), H.set(Xt, !0);
780
- }
781
- function ur(e) {
782
- H.set(Zt, "delete"), H.set(Y, e, !0), H.set(Xt, !0);
783
- }
784
- function dr() {
785
- H.get(Qt) || (H.set(Xt, !1), H.set(Y, null), H.set(Qt, !1));
786
- }
787
- async function fr(e) {
788
- H.set(Qt, !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(Zt) === "edit" && H.get(Y) ? await T(`/api/categories/${encodeURIComponent(H.get(Y).id)}`, {
798
- method: "PATCH",
799
- body: t
800
- }) : await T("/api/categories", {
801
- method: "POST",
802
- body: t
803
- }), await Z(), n;
804
- } finally {
805
- H.set(Qt, !1);
806
- }
807
- }
808
- async function pr() {
809
- if (H.get(Y)) {
810
- H.set(Qt, !0);
811
- try {
812
- await Re(H.get(Y).id), await Z();
813
- } finally {
814
- H.set(Qt, !1);
815
- }
816
- }
817
- }
818
- let $ = "__uncategorized__", mr = H.derived(() => H.get(W).filter((e) => e.id !== $ && e.category !== null)), hr = H.derived(() => H.get(W).find((e) => e.id === $) ?? null), gr = H.derived(() => {
819
- let e = /* @__PURE__ */ new Map();
820
- for (let t of H.get(w)) e.set(t.id, []);
821
- let t = [];
822
- for (let n of H.get(C)) 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(w)) 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 _r = { refreshFolderTree: Cn }, vr = Vt(), yr = H.first_child(vr), br = H.child(yr), xr = H.child(br), Sr = H.child(xr, !0);
836
- H.reset(xr);
837
- var Cr = H.sibling(xr, 2);
838
- v(H.child(Cr), { class: "size-3.5" }), H.reset(Cr), H.reset(br);
839
- var wr = H.sibling(br, 2), Tr = (e) => {
840
- var t = Mt(), n = H.child(t, !0);
841
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(N))), H.append(e, t);
842
- };
843
- H.if(wr, (e) => {
844
- H.get(N) && e(Tr);
845
- });
846
- var Er = H.sibling(wr, 2), Dr = (e) => {
847
- var t = Mt(), n = H.child(t, !0);
848
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(xe))), H.append(e, t);
849
- };
850
- H.if(Er, (e) => {
851
- H.get(xe) && e(Dr);
852
- });
853
- var Or = H.sibling(Er, 2);
854
- H.each(Or, 29, () => H.get(mr), (e) => `${e.id}:${e.isDndShadowItem ? "shadow" : "item"}`, (e, t) => {
855
- let n = H.derived(() => H.get(he).has(H.get(t).id));
856
- var r = Lt(), i = H.child(r), a = H.child(i), o = H.child(a), f = (e) => {
857
- h(e, { class: "size-3.5 shrink-0" });
858
- }, p = (e) => {
859
- g(e, { class: "size-3.5 shrink-0" });
860
- };
861
- H.if(o, (e) => {
862
- H.get(n) ? e(f) : e(p, -1);
863
- });
864
- var m = H.sibling(o, 2), ee = H.child(m, !0);
865
- H.reset(m), H.reset(a), u(H.sibling(a, 2), {
866
- children: (e, n) => {
867
- var r = kt(), i = H.first_child(r);
868
- l(i, {
869
- child: (e, t) => {
870
- let n = () => (t?.()).props;
871
- var r = Dt();
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
- }), [() => P(), () => P()]), d(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
879
- },
880
- $$slots: { child: !0 }
881
- }), s(H.sibling(i, 2), {
882
- align: "end",
883
- children: (e, n) => {
884
- var r = Nt(), i = H.first_child(r);
885
- c(i, {
886
- onSelect: () => yt(`/?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), [() => me()]), H.append(e, n);
891
- },
892
- $$slots: { default: !0 }
893
- });
894
- var a = H.sibling(i, 2);
895
- c(a, {
896
- onSelect: () => yt(`/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), [() => ge()]), H.append(e, n);
901
- },
902
- $$slots: { default: !0 }
903
- });
904
- var o = H.sibling(a, 2);
905
- c(o, {
906
- onSelect: () => On(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), [() => De()]), H.append(e, n);
911
- },
912
- $$slots: { default: !0 }
913
- });
914
- var s = H.sibling(o, 2);
915
- c(s, {
916
- onSelect: () => ar(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), [() => ue()]), H.append(e, n);
921
- },
922
- $$slots: { default: !0 }
923
- });
924
- var l = H.sibling(s, 2);
925
- c(l, {
926
- onSelect: () => lr(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), [() => ce()]), H.append(e, n);
931
- },
932
- $$slots: { default: !0 }
933
- }), c(H.sibling(l, 2), {
934
- class: "text-destructive focus:text-destructive",
935
- onSelect: () => ur(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), [() => Te()]), 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(i);
949
- var te = H.sibling(i, 2), v = (e) => {
950
- let n = H.derived(() => H.get(U)[H.get(t).id] ?? []), r = H.derived(() => H.get(bt)[H.get(t).id] ?? []);
951
- var i = It(), a = H.child(i), o = H.derived(() => zn(H.get(t).id)), s = H.derived(() => Bn(H.get(t).id));
952
- H.each(a, 29, () => H.get(n), (e) => e.id, (e, t) => {
953
- var n = Pt();
954
- b(H.child(n), () => H.get(t)), H.reset(n), H.animation(n, () => xt, () => ({ duration: 200 })), H.append(e, n);
955
- }), H.reset(a), H.action(a, (e, t) => dt?.(e, t), () => ({
956
- items: H.get(n),
957
- flipDurationMs: 200,
958
- type: "folder",
959
- dropTargetStyle: {},
960
- dragDisabled: H.get(I)
961
- }));
962
- var c = H.sibling(a, 2), l = H.derived(() => Mn({
963
- kind: "category",
964
- id: H.get(t).id
965
- })), u = H.derived(() => Nn({
966
- kind: "category",
967
- id: H.get(t).id
968
- }));
969
- H.each(c, 29, () => H.get(r), (e) => e.id, (e, t) => {
970
- var n = Ft(), r = H.child(n);
971
- Et(r, () => H.get(t));
972
- var i = H.sibling(r, 2);
973
- ne(i, () => H.get(t)), _(H.sibling(i, 2), () => H.get(t)), H.reset(n), H.animation(n, () => xt, () => ({ duration: 80 })), H.append(e, n);
974
- }), H.reset(c), H.action(c, (e, t) => dt?.(e, t), () => ({
975
- items: H.get(r),
976
- flipDurationMs: 80,
977
- type: "doc",
978
- dropTargetStyle: {},
979
- dragDisabled: H.get(I),
980
- useCursorForDetection: !0,
981
- centreDraggedOnCursor: !0
982
- })), H.reset(i), H.template_effect((e, t) => {
983
- H.set_class(a, 1, e), H.set_class(c, 1, t);
984
- }, [() => H.clsx(z("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(Ie) && H.get(n).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20")), () => H.clsx(z("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", a, function(...e) {
985
- H.get(o)?.apply(this, e);
986
- }), H.event("finalize", a, function(...e) {
987
- H.get(s)?.apply(this, e);
988
- }), H.event("consider", c, function(...e) {
989
- H.get(l)?.apply(this, e);
990
- }), H.event("finalize", c, function(...e) {
991
- H.get(u)?.apply(this, e);
992
- }), H.append(e, i);
993
- };
994
- H.if(te, (e) => {
995
- H.get(n) && e(v);
996
- }), H.reset(r), H.template_effect((e) => {
997
- H.set_attribute(r, "data-is-dnd-shadow-item-hint", H.get(t)[ut]), H.set_attribute(a, "aria-expanded", H.get(n)), H.set_class(a, 1, e), H.set_text(ee, H.get(t).category.name);
998
- }, [() => H.clsx(z("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(B) && "hover:bg-accent/40 border border-dashed border-primary/30"))]), H.delegated("click", a, () => Tn(H.get(t).id)), H.event("mouseenter", a, () => {
999
- H.get(L) && !H.get(n) && un(H.get(t).id);
1000
- }), H.event("mouseleave", a, () => {
1001
- H.get(L) && ln();
1002
- }), H.event("dragover", a, Fn), H.event("drop", a, (e) => In(e, H.get(t).id)), H.animation(r, () => xt, () => ({ duration: 200 })), H.append(e, r);
1003
- }), H.reset(Or), H.action(Or, (e, t) => dt?.(e, t), () => ({
1004
- items: H.get(mr),
1005
- flipDurationMs: 200,
1006
- type: "category",
1007
- dropTargetStyle: {},
1008
- dragDisabled: H.get(I)
1009
- }));
1010
- var kr = H.sibling(Or, 2), Ar = (e) => {
1011
- var t = Rt(), n = H.child(t), r = H.child(n), i = H.child(r), a = (e) => {
1012
- h(e, { class: "size-3.5 shrink-0" });
1013
- }, o = (e) => {
1014
- g(e, { class: "size-3.5 shrink-0" });
1015
- };
1016
- H.if(i, (e) => {
1017
- H.get(M) ? e(a) : e(o, -1);
1018
- });
1019
- var s = H.sibling(i, 2), c = H.child(s, !0);
1020
- H.reset(s), H.reset(r), H.reset(n);
1021
- var l = H.sibling(n, 2), u = (e) => {
1022
- let t = H.derived(() => H.get(U)[$] ?? []);
1023
- var n = It(), r = H.child(n), i = H.derived(() => zn($)), a = H.derived(() => Bn($));
1024
- H.each(r, 29, () => H.get(t), (e) => e.id, (e, t) => {
1025
- var n = Pt();
1026
- b(H.child(n), () => H.get(t)), H.reset(n), H.animation(n, () => xt, () => ({ duration: 200 })), H.append(e, n);
1027
- }), H.reset(r), H.action(r, (e, t) => dt?.(e, t), () => ({
1028
- items: H.get(t),
1029
- flipDurationMs: 200,
1030
- type: "folder",
1031
- dropTargetStyle: {},
1032
- dragDisabled: H.get(I)
1033
- }));
1034
- var o = H.sibling(r, 2), s = H.derived(() => Mn({ kind: "root" })), c = H.derived(() => Nn({ kind: "root" }));
1035
- H.each(o, 29, () => H.get(st), (e) => e.id, (e, t) => {
1036
- var n = Ft(), r = H.child(n);
1037
- Et(r, () => H.get(t));
1038
- var i = H.sibling(r, 2);
1039
- ne(i, () => H.get(t)), _(H.sibling(i, 2), () => H.get(t)), H.reset(n), H.animation(n, () => xt, () => ({ duration: 80 })), H.append(e, n);
1040
- }), H.reset(o), H.action(o, (e, t) => dt?.(e, t), () => ({
1041
- items: H.get(st),
1042
- flipDurationMs: 80,
1043
- type: "doc",
1044
- dropTargetStyle: {},
1045
- dragDisabled: H.get(I),
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(o, 1, t);
1050
- }, [() => H.clsx(z("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(Ie) && H.get(t).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20")), () => H.clsx(z("min-h-[8px] space-y-0.5 transition-all duration-150", H.get(R) && H.get(st).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(a)?.apply(this, e);
1054
- }), H.event("consider", o, function(...e) {
1055
- H.get(s)?.apply(this, e);
1056
- }), H.event("finalize", o, function(...e) {
1057
- H.get(c)?.apply(this, e);
1058
- }), H.append(e, n);
1059
- };
1060
- H.if(l, (e) => {
1061
- H.get(M) && e(u);
1062
- }), H.reset(t), H.template_effect((e, t) => {
1063
- H.set_attribute(r, "aria-expanded", H.get(M)), H.set_class(r, 1, e), H.set_text(c, t);
1064
- }, [() => H.clsx(z("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(B) && "hover:bg-accent/40 border border-dashed border-primary/30")), () => Ee()]), H.delegated("click", r, En), H.event("mouseenter", r, () => {
1065
- H.get(L) && !H.get(M) && un($);
1066
- }), H.event("mouseleave", r, () => {
1067
- H.get(L) && ln();
1068
- }), H.event("dragover", r, Fn), H.event("drop", r, (e) => In(e, $)), H.append(e, t);
1069
- };
1070
- H.if(kr, (e) => {
1071
- H.get(hr) && e(Ar);
1072
- });
1073
- var jr = H.sibling(kr, 2), Mr = H.child(jr);
1074
- v(Mr, { class: "size-3.5" });
1075
- var Nr = H.sibling(Mr, 2), Pr = H.child(Nr, !0);
1076
- H.reset(Nr), H.reset(jr), H.reset(yr);
1077
- var Fr = H.sibling(yr, 2);
1078
- y(Fr, {
1079
- mode: "create",
1080
- onSave: An,
1081
- closeOnSave: !1,
1082
- get open() {
1083
- return H.get(St);
1084
- },
1085
- set open(e) {
1086
- H.set(St, e, !0);
1087
- }
1088
- });
1089
- var Ir = H.sibling(Fr, 2);
1090
- t(Ir, {
1091
- onOpenChange: (e) => {
1092
- e || er();
1093
- },
1094
- get open() {
1095
- return H.get(Tt);
1096
- },
1097
- set open(e) {
1098
- H.set(Tt, e, !0);
1099
- },
1100
- children: (e, t) => {
1101
- var s = Bt(), c = H.first_child(s);
1102
- r(c, {
1103
- children: (e, t) => {
1104
- var r = kt(), i = H.first_child(r);
1105
- o(i, {
1106
- children: (e, t) => {
1107
- H.next();
1108
- var n = H.text();
1109
- H.template_effect((e) => H.set_text(n, e), [() => Me()]), H.append(e, n);
1110
- },
1111
- $$slots: { default: !0 }
1112
- }), n(H.sibling(i, 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(jt)?.kind === "folder" ? Pe() : ke()]), H.append(e, n);
1117
- },
1118
- $$slots: { default: !0 }
1119
- }), H.append(e, r);
1120
- },
1121
- $$slots: { default: !0 }
1122
- });
1123
- var l = H.sibling(c, 2), u = H.child(l), d = H.child(u);
1124
- f(d, {
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(jt)?.kind === "folder" ? Pe() : ke()]), H.append(e, n);
1130
- },
1131
- $$slots: { default: !0 }
1132
- });
1133
- var p = H.sibling(d, 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
- Qe(p, {
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(Ht);
1154
- },
1155
- set value(e) {
1156
- H.set(Ht, e, !0);
1157
- }
1158
- });
1159
- }
1160
- var m = H.sibling(p, 2), h = (e) => {
1161
- var t = zt(), 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(m, (e) => {
1165
- H.get(G) && e(h);
1166
- }), H.reset(u), H.reset(l), a(H.sibling(l, 2), {
1167
- children: (e, t) => {
1168
- var n = kt(), r = H.first_child(n);
1169
- i(r, {
1170
- variant: "outline",
1171
- type: "button",
1172
- onclick: er,
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), [() => Fe()]), H.append(e, n);
1180
- },
1181
- $$slots: { default: !0 }
1182
- });
1183
- var a = H.sibling(r, 2);
1184
- {
1185
- let e = H.derived(() => H.get(K) || H.get(Ht).trim().length === 0);
1186
- i(a, {
1187
- type: "submit",
1188
- onclick: tr,
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) ? Ne() : je()]), 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", l, tr), H.append(e, s);
1204
- },
1205
- $$slots: { default: !0 }
1206
- });
1207
- var Lr = H.sibling(Ir, 2);
1208
- {
1209
- let e = H.derived(() => H.get(J)?.name ?? ""), t = H.derived(() => H.get(J)?.kind === "folder" ? we() : ve()), n = H.derived(() => H.get(J)?.kind === "folder" ? "Its documents will be moved to the root and will not be deleted." : de()), r = H.derived(() => H.get(J)?.kind === "folder" ? Ae() : fe()), i = H.derived(() => H.get(J)?.kind === "folder" ? Ce() : ye()), a = H.derived(() => Te()), o = H.derived(() => Fe());
1210
- ct(Lr, {
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: sr,
1233
- onCancel: or,
1234
- get open() {
1235
- return H.get(q);
1236
- },
1237
- set open(e) {
1238
- H.set(q, e, !0);
1239
- }
1240
- });
1241
- }
1242
- var Rr = H.sibling(Lr, 2);
1243
- {
1244
- let e = H.derived(() => H.get(Y) ?? void 0);
1245
- lt(Rr, {
1246
- get mode() {
1247
- return H.get(Zt);
1248
- },
1249
- get category() {
1250
- return H.get(e);
1251
- },
1252
- onSave: fr,
1253
- onDelete: pr,
1254
- onClose: dr,
1255
- get open() {
1256
- return H.get(Xt);
1257
- },
1258
- set open(e) {
1259
- H.set(Xt, e, !0);
1260
- }
1261
- });
1262
- }
1263
- return $e(H.sibling(Rr, 2), {
1264
- get documentId() {
1265
- return H.get(Wt);
1266
- },
1267
- get documentTitle() {
1268
- return H.get(Kt);
1269
- },
1270
- get folderId() {
1271
- return H.get(Gt);
1272
- },
1273
- get folderName() {
1274
- return H.get(qt);
1275
- },
1276
- get categoryId() {
1277
- return H.get(Jt);
1278
- },
1279
- get categoryName() {
1280
- return H.get(Yt);
1281
- },
1282
- get open() {
1283
- return H.get(Ut);
1284
- },
1285
- set open(e) {
1286
- H.set(Ut, e, !0);
1287
- }
1288
- }), H.template_effect((e, t, n, r, i) => {
1289
- H.set_attribute(xr, "title", e), H.set_text(Sr, t), H.set_attribute(Cr, "aria-label", n), H.set_attribute(Cr, "title", r), H.set_text(Pr, i);
1290
- }, [
1291
- () => _e(),
1292
- () => pe(),
1293
- () => le(),
1294
- () => le(),
1295
- () => De()
1296
- ]), H.delegated("click", Cr, cr), H.event("consider", Or, Kn), H.event("finalize", Or, qn), H.delegated("click", jr, Dn), H.append(p, vr), H.pop(_r);
1297
- }
1298
- H.delegate(["click"]);
1299
- //#endregion
1300
- //#region src/lib/components/sidebar/RecentDocs.svelte
1301
- var G = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), K = H.from_html("<button><!></button>"), q = H.from_html("<!> <!>", 1), J = 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>"), Ut = H.from_html("<p id=\"recent-rename-input-error\" class=\"text-xs text-destructive\" role=\"alert\"> </p>"), Wt = H.from_html("<!> <form class=\"space-y-4\"><div class=\"space-y-2\"><!> <!> <!></div></form> <!>", 1), Gt = 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 Kt(p, h) {
1303
- H.push(h, !0);
1304
- let g = H.state(H.proxy([])), ee = H.state(null), _ = H.state(null), v = H.state(null), y = H.state(null), b = null, x = H.state(!1), S = H.state(null), C = H.state(""), T = H.state(null), E = H.state(!1), D = H.state(!1), se = H.state(null), O = H.state(!1);
1305
- async function k() {
1306
- try {
1307
- let e = V(), t = await oe({
1308
- limit: 6,
1309
- ...e ? { tag: e } : {}
1310
- });
1311
- H.set(g, t.items, !0), H.set(_, null);
1312
- } catch (e) {
1313
- console.error("RecentDocs: failed to load recent documents", e), H.set(_, "Failed to load recent documents");
1314
- }
1315
- }
1316
- _t(() => {
1317
- k();
1318
- }), H.user_effect(() => {
1319
- at() !== 0 && k();
1320
- });
1321
- let ce = !0;
1322
- H.user_effect(() => {
1323
- if (V(), ce) {
1324
- ce = !1;
1325
- return;
1326
- }
1327
- k();
1328
- });
1329
- async function le() {
1330
- await k();
1331
- }
1332
- gt(() => {
1333
- b &&= (clearTimeout(b), null);
1334
- });
1335
- async function ue(e, t) {
1336
- if (e.preventDefault(), e.stopPropagation(), typeof window > "u") return;
1337
- let n = H.get(g).find((e) => e.id === t), r = "";
1338
- H.set(y, t, !0);
1339
- try {
1340
- r = (await ie(t)).content ?? "";
1341
- } catch (e) {
1342
- console.error("RecentDocs: failed to fetch full document for copy", e), r = n?.excerpt ?? n?.content ?? "";
1343
- } finally {
1344
- H.set(y, null);
1345
- }
1346
- r && await Ze(r) && (H.set(v, t, !0), b && clearTimeout(b), b = setTimeout(() => {
1347
- H.set(v, null), b = null;
1348
- }, 2e3));
1349
- }
1350
- function A(e, t) {
1351
- H.set(S, {
1352
- id: e,
1353
- title: t
1354
- }, !0), H.set(C, t, !0), H.set(T, null), H.set(x, !0);
1355
- }
1356
- function fe() {
1357
- H.set(x, !1), H.set(S, null), H.set(C, ""), H.set(T, null), H.set(E, !1);
1358
- }
1359
- async function j(e) {
1360
- e?.preventDefault();
1361
- let t = H.get(S);
1362
- if (!t) return;
1363
- let n = H.get(C).trim();
1364
- if (n.length === 0) {
1365
- H.set(T, "Name is required");
1366
- return;
1367
- }
1368
- H.set(E, !0);
1369
- try {
1370
- await re(t.id, { title: n }), fe(), await k(), tt();
1371
- } catch (e) {
1372
- console.error("RecentDocs: rename failed", e), H.set(T, e instanceof Error ? e.message : Oe(), !0);
1373
- } finally {
1374
- H.set(E, !1);
1375
- }
1376
- }
1377
- function pe(e, t) {
1378
- H.set(se, {
1379
- id: e,
1380
- title: t
1381
- }, !0), H.set(D, !0);
1382
- }
1383
- function me() {
1384
- H.set(D, !1), H.set(se, null), H.set(O, !1);
1385
- }
1386
- async function he() {
1387
- let e = H.get(se);
1388
- if (!(!e || H.get(O))) {
1389
- H.set(O, !0);
1390
- try {
1391
- await ae(e.id), me(), await k(), tt();
1392
- } catch (e) {
1393
- console.error("RecentDocs: delete failed", e), H.set(_, e instanceof Error ? e.message : Oe(), !0), H.set(O, !1);
1394
- }
1395
- }
1396
- }
1397
- var ge = { refreshRecentDocs: le }, _e = Gt(), M = H.first_child(_e), ye = H.child(M), xe = H.child(ye, !0);
1398
- H.reset(ye);
1399
- var F = H.sibling(ye, 2), Se = (e) => {
1400
- var t = G(), n = H.child(t, !0);
1401
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(_))), H.append(e, t);
1402
- };
1403
- H.if(F, (e) => {
1404
- H.get(_) && e(Se);
1405
- });
1406
- var I = H.sibling(F, 2);
1407
- H.each(I, 17, () => H.get(g), (e) => e.id, (t, n) => {
1408
- var r = J(), i = H.child(r), a = H.child(i);
1409
- ne(a, { class: "size-4 shrink-0 text-muted-foreground" });
1410
- var o = H.sibling(a, 2), f = H.child(o), p = H.child(f, !0);
1411
- H.reset(f);
1412
- var h = H.sibling(f, 2), g = H.child(h, !0);
1413
- H.reset(h), H.reset(o), H.reset(i);
1414
- var _ = H.sibling(i, 2), b = H.child(_), x = (t) => {
1415
- e(t, { class: "size-3.5 animate-spin" });
1416
- }, S = (e) => {
1417
- m(e, { class: "size-3.5" });
1418
- }, C = (e) => {
1419
- te(e, { class: "size-3.5" });
1420
- };
1421
- H.if(b, (e) => {
1422
- H.get(y) === H.get(n).id ? e(x) : H.get(v) === H.get(n).id ? e(S, 1) : e(C, -1);
1423
- }), H.reset(_), u(H.sibling(_, 2), {
1424
- children: (e, t) => {
1425
- var r = q(), i = H.first_child(r);
1426
- l(i, {
1427
- child: (e, t) => {
1428
- let n = () => (t?.()).props;
1429
- var r = K(), 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
- }), [() => P(), () => P()]), d(H.child(r), { class: "size-3.5" }), H.reset(r), H.append(e, r);
1440
- },
1441
- $$slots: { child: !0 }
1442
- }), s(H.sibling(i, 2), {
1443
- align: "end",
1444
- children: (e, t) => {
1445
- var r = q(), i = H.first_child(r);
1446
- c(i, {
1447
- onSelect: () => A(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), [() => Me()]), H.append(e, n);
1452
- },
1453
- $$slots: { default: !0 }
1454
- }), c(H.sibling(i, 2), {
1455
- class: "text-destructive focus:text-destructive",
1456
- onSelect: () => pe(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), [() => Te()]), 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(i, "href", `/docs/${H.get(n).id}`), H.set_class(i, 1, e), H.set_text(p, H.get(n).title), H.set_text(g, H.get(n).updatedAt), H.set_class(_, 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(v) === H.get(n).id || H.get(y) === H.get(n).id ? "opacity-100" : ""}`), H.set_attribute(_, "aria-label", t), H.set_attribute(_, "title", r), _.disabled = H.get(y) === H.get(n).id;
1471
- }, [
1472
- () => H.clsx(z("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(ee) === H.get(n).id && "bg-accent text-accent-foreground")),
1473
- () => be(),
1474
- () => be()
1475
- ]), H.delegated("click", i, () => {
1476
- H.set(ee, H.get(n).id, !0);
1477
- }), H.delegated("click", _, (e) => void ue(e, H.get(n).id)), H.append(t, r);
1478
- }), H.reset(M);
1479
- var Ce = H.sibling(M, 2);
1480
- t(Ce, {
1481
- onOpenChange: (e) => {
1482
- e || fe();
1483
- },
1484
- get open() {
1485
- return H.get(x);
1486
- },
1487
- set open(e) {
1488
- H.set(x, e, !0);
1489
- },
1490
- children: (e, t) => {
1491
- var s = Wt(), c = H.first_child(s);
1492
- r(c, {
1493
- children: (e, t) => {
1494
- var r = q(), i = H.first_child(r);
1495
- o(i, {
1496
- children: (e, t) => {
1497
- H.next();
1498
- var n = H.text();
1499
- H.template_effect((e) => H.set_text(n, e), [() => Me()]), H.append(e, n);
1500
- },
1501
- $$slots: { default: !0 }
1502
- }), n(H.sibling(i, 2), {
1503
- children: (e, t) => {
1504
- H.next();
1505
- var n = H.text();
1506
- H.template_effect((e) => H.set_text(n, e), [() => ke()]), H.append(e, n);
1507
- },
1508
- $$slots: { default: !0 }
1509
- }), H.append(e, r);
1510
- },
1511
- $$slots: { default: !0 }
1512
- });
1513
- var l = H.sibling(c, 2), u = H.child(l), d = H.child(u);
1514
- f(d, {
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), [() => ke()]), H.append(e, n);
1520
- },
1521
- $$slots: { default: !0 }
1522
- });
1523
- var p = H.sibling(d, 2);
1524
- {
1525
- let e = H.derived(() => H.get(T) ? "true" : void 0), t = H.derived(() => H.get(T) ? "recent-rename-input-error" : void 0);
1526
- Qe(p, {
1527
- id: "recent-rename-input",
1528
- name: "name",
1529
- type: "text",
1530
- maxlength: 255,
1531
- required: !0,
1532
- get disabled() {
1533
- return H.get(E);
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(C);
1544
- },
1545
- set value(e) {
1546
- H.set(C, e, !0);
1547
- }
1548
- });
1549
- }
1550
- var m = H.sibling(p, 2), h = (e) => {
1551
- var t = Ut(), n = H.child(t, !0);
1552
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(T))), H.append(e, t);
1553
- };
1554
- H.if(m, (e) => {
1555
- H.get(T) && e(h);
1556
- }), H.reset(u), H.reset(l), a(H.sibling(l, 2), {
1557
- children: (e, t) => {
1558
- var n = q(), r = H.first_child(n);
1559
- i(r, {
1560
- variant: "outline",
1561
- type: "button",
1562
- onclick: fe,
1563
- get disabled() {
1564
- return H.get(E);
1565
- },
1566
- children: (e, t) => {
1567
- H.next();
1568
- var n = H.text();
1569
- H.template_effect((e) => H.set_text(n, e), [() => Fe()]), H.append(e, n);
1570
- },
1571
- $$slots: { default: !0 }
1572
- });
1573
- var a = H.sibling(r, 2);
1574
- {
1575
- let e = H.derived(() => H.get(E) || H.get(C).trim().length === 0);
1576
- i(a, {
1577
- type: "submit",
1578
- onclick: j,
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(E) ? Ne() : je()]), 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", l, j), H.append(e, s);
1594
- },
1595
- $$slots: { default: !0 }
1596
- });
1597
- var we = H.sibling(Ce, 2);
1598
- {
1599
- let e = H.derived(() => ve()), t = H.derived(() => de()), n = H.derived(() => Te()), r = H.derived(() => Fe());
1600
- w(we, {
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(O);
1616
- },
1617
- onConfirm: he,
1618
- onCancel: me,
1619
- get open() {
1620
- return H.get(D);
1621
- },
1622
- set open(e) {
1623
- H.set(D, e, !0);
1624
- }
1625
- });
1626
- }
1627
- return H.template_effect((e) => H.set_text(xe, e), [() => N()]), H.append(p, _e), H.pop(ge);
1628
- }
1629
- H.delegate(["click"]);
1630
- //#endregion
1631
- //#region src/lib/components/sidebar/TagList.svelte
1632
- var qt = H.from_html("<p class=\"px-2 text-xs text-destructive\"> </p>"), Jt = H.from_html("<button><!></button>"), Yt = H.from_html("<!> <!>", 1), Xt = 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>"), Zt = 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 Y(t, n) {
1634
- H.push(n, !0);
1635
- let r = H.state(H.proxy([])), i = H.state(null), a = H.state(!1), o = H.state(null), f = H.state(!1), p = H.state(null), m = H.state(!1);
1636
- async function h() {
1637
- try {
1638
- H.set(r, await st(), !0);
1639
- } catch (e) {
1640
- console.error("TagList: failed to load tags", e), H.set(i, xe(), !0);
1641
- }
1642
- }
1643
- _t(() => {
1644
- h();
1645
- }), H.user_effect(() => {
1646
- nt(), h();
1647
- });
1648
- function g(e) {
1649
- H.set(r, [...H.get(r), e], !0), rt(), h();
1650
- }
1651
- function ee(e) {
1652
- H.set(r, H.get(r).map((t) => t.id === e.id ? e : t), !0), rt();
1653
- }
1654
- function _(e) {
1655
- H.set(o, e, !0), H.set(a, !0);
1656
- }
1657
- function te() {
1658
- H.set(o, null);
1659
- }
1660
- function ne(e) {
1661
- H.set(p, e, !0), H.set(f, !0);
1662
- }
1663
- function y() {
1664
- H.set(f, !1), H.set(p, null);
1665
- }
1666
- async function b() {
1667
- let e = H.get(p);
1668
- if (!(!e || H.get(m))) {
1669
- H.set(m, !0);
1670
- try {
1671
- await ot(e.id), H.set(r, H.get(r).filter((t) => t.id !== e.id), !0), V() === e.id && it(null), H.set(f, !1), H.set(p, null), rt();
1672
- } catch (e) {
1673
- console.error("TagList: deleteTag failed", e), H.set(i, Oe(), !0);
1674
- } finally {
1675
- H.set(m, !1);
1676
- }
1677
- }
1678
- }
1679
- var x = Zt(), S = H.first_child(x), C = H.child(S), T = H.child(C, !0);
1680
- H.reset(C);
1681
- var re = H.sibling(C, 2), ie = (e) => {
1682
- var t = qt(), n = H.child(t, !0);
1683
- H.reset(t), H.template_effect(() => H.set_text(n, H.get(i))), H.append(e, t);
1684
- };
1685
- H.if(re, (e) => {
1686
- H.get(i) && e(ie);
1687
- });
1688
- var ae = H.sibling(re, 2), oe = H.child(ae);
1689
- H.each(oe, 17, () => H.get(r), (e) => e.id, (t, n) => {
1690
- var r = Xt(), i = H.child(r), a = H.child(i), o = H.sibling(a);
1691
- H.reset(i), u(H.sibling(i, 2), {
1692
- children: (t, r) => {
1693
- var i = Yt(), a = H.first_child(i);
1694
- l(a, {
1695
- child: (t, r) => {
1696
- let i = () => (r?.()).props;
1697
- var a = Jt();
1698
- H.attribute_effect(a, (e, t, n) => ({
1699
- ...i(),
1700
- type: "button",
1701
- class: e,
1702
- "aria-label": t,
1703
- title: n,
1704
- disabled: H.get(m)
1705
- }), [
1706
- () => z("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", V() === H.get(n).id && "inline-flex"),
1707
- () => P(),
1708
- () => P()
1709
- ]);
1710
- var o = H.child(a), s = (t) => {
1711
- e(t, { class: "size-3 animate-spin" });
1712
- }, c = (e) => {
1713
- d(e, { class: "size-3" });
1714
- };
1715
- H.if(o, (e) => {
1716
- H.get(m) ? e(s) : e(c, -1);
1717
- }), H.reset(a), H.append(t, a);
1718
- },
1719
- $$slots: { child: !0 }
1720
- }), s(H.sibling(a, 2), {
1721
- align: "start",
1722
- children: (e, t) => {
1723
- var r = Yt(), i = H.first_child(r);
1724
- c(i, {
1725
- onSelect: () => _(H.get(n)),
1726
- children: (e, t) => {
1727
- H.next();
1728
- var n = H.text();
1729
- H.template_effect((e) => H.set_text(n, e), [() => ce()]), H.append(e, n);
1730
- },
1731
- $$slots: { default: !0 }
1732
- }), c(H.sibling(i, 2), {
1733
- class: "text-destructive focus:text-destructive",
1734
- onSelect: () => ne(H.get(n)),
1735
- children: (e, t) => {
1736
- H.next();
1737
- var n = H.text();
1738
- H.template_effect((e) => H.set_text(n, e), [() => Te()]), H.append(e, n);
1739
- },
1740
- $$slots: { default: !0 }
1741
- }), H.append(e, r);
1742
- },
1743
- $$slots: { default: !0 }
1744
- }), H.append(t, i);
1745
- },
1746
- $$slots: { default: !0 }
1747
- }), H.reset(r), H.template_effect((e, t) => {
1748
- H.set_class(r, 1, e), H.set_attribute(i, "aria-pressed", t), H.set_style(a, `background-color: ${(H.get(n).color || "#888888") ?? ""}`), H.set_text(o, ` ${H.get(n).name ?? ""}`);
1749
- }, [() => H.clsx(z("group/tag relative inline-flex items-center rounded-full transition-colors", V() === H.get(n).id ? "bg-primary text-primary-foreground" : "bg-secondary text-secondary-foreground hover:bg-secondary/80")), () => V() === H.get(n).id]), H.delegated("click", i, () => it(V() === H.get(n).id ? null : H.get(n).id, H.get(n).name)), H.append(t, r);
1750
- });
1751
- var E = H.sibling(oe, 2), D = H.child(E);
1752
- v(D, { class: "size-3" });
1753
- var se = H.sibling(D);
1754
- H.reset(E), H.reset(ae), H.reset(S);
1755
- var O = H.sibling(S, 2);
1756
- {
1757
- let e = H.derived(() => H.get(o) ? "edit" : "create");
1758
- ht(O, {
1759
- get mode() {
1760
- return H.get(e);
1761
- },
1762
- get tag() {
1763
- return H.get(o);
1764
- },
1765
- onCreated: g,
1766
- onUpdated: ee,
1767
- onClose: te,
1768
- get open() {
1769
- return H.get(a);
1770
- },
1771
- set open(e) {
1772
- H.set(a, e, !0);
1773
- }
1774
- });
1775
- }
1776
- var k = H.sibling(O, 2);
1777
- {
1778
- let e = H.derived(() => M()), t = H.derived(() => I()), n = H.derived(() => Te()), r = H.derived(() => Fe());
1779
- w(k, {
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(m);
1795
- },
1796
- onConfirm: b,
1797
- onCancel: y,
1798
- get open() {
1799
- return H.get(f);
1800
- },
1801
- set open(e) {
1802
- H.set(f, e, !0);
1803
- }
1804
- });
1805
- }
1806
- H.template_effect((e, t, n) => {
1807
- H.set_text(T, e), H.set_attribute(E, "aria-label", t), H.set_text(se, ` ${n ?? ""}`);
1808
- }, [
1809
- () => Ie(),
1810
- () => L(),
1811
- () => F()
1812
- ]), H.delegated("click", E, () => {
1813
- H.set(o, null), H.set(a, !0);
1814
- }), H.append(t, x), H.pop();
1815
- }
1816
- H.delegate(["click"]);
1817
- //#endregion
1818
- //#region src/lib/components/sidebar/Sidebar.svelte
1819
- var Qt = H.from_html("<div role=\"separator\" tabindex=\"-1\"></div>"), X = 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>"), $t = H.from_html("<!> <div class=\"h-px bg-border\"></div>", 1), en = H.from_html("<span class=\"rounded bg-muted px-1.5 py-0.5 text-xs\"> </span>"), tn = 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>"), nn = H.from_html("<div class=\"h-px bg-border\"></div> <nav class=\"space-y-1\" aria-label=\"Product navigation\"></nav>", 1), rn = H.from_html("<div class=\"flex flex-1 flex-col gap-4 overflow-y-auto p-3\"><!> <!> <!> <!> <!></div>"), an = H.from_html("<span class=\"text-xs\"> </span>"), on = 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>"), sn = 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>"), cn = 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>"), ln = 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>"), un = H.from_html("<aside tabindex=\"-1\"><!> <!> <!> <div class=\"border-t border-border p-2\"><!></div></aside> <!>", 1);
1820
- function dn(e, t) {
1821
- H.push(t, !0);
1822
- let n = H.prop(t, "mobile", 3, !1), r = H.prop(t, "mobileOpen", 3, !1), i = H.prop(t, "element", 15, null), a = "hiai_sidebar_collapsed", o = H.state(!1), s = H.state(!1), c = H.state("all"), l = H.derived(() => !n() && H.get(o)), u = H.state(256), d = H.state(!1), f = B(), p = H.derived(() => et(f.navigation, { pathname: bt.url.pathname }));
1823
- H.user_effect(() => {
1824
- if (typeof window < "u") {
1825
- try {
1826
- H.set(o, localStorage.getItem(a) === "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(u, t, !0);
1832
- }
1833
- }
1834
- }), H.user_effect(() => {
1835
- if (H.get(d)) return window.addEventListener("mousemove", h), window.addEventListener("mouseup", g), () => {
1836
- window.removeEventListener("mousemove", h), window.removeEventListener("mouseup", g);
1837
- };
1838
- });
1839
- function m(e) {
1840
- e.preventDefault(), H.set(d, !0);
1841
- }
1842
- function h(e) {
1843
- let t = Math.max(180, Math.min(500, e.clientX));
1844
- H.set(u, t, !0);
1845
- }
1846
- function g() {
1847
- H.set(d, !1), localStorage.setItem("hiai_sidebar_width", H.get(u).toString());
1848
- }
1849
- function te() {
1850
- yt("/search");
1851
- }
1852
- function v(e) {
1853
- H.set(c, H.get(c) === e ? "all" : e, !0), H.set(o, !1), y();
1854
- }
1855
- function ne() {
1856
- H.set(o, !H.get(o)), y(), H.get(o) && H.set(c, "all");
1857
- }
1858
- function y() {
1859
- if (!(typeof localStorage > "u")) try {
1860
- localStorage.setItem(a, H.get(o) ? "1" : "0");
1861
- } catch {}
1862
- }
1863
- var C = un(), w = H.first_child(C), T = H.child(w), re = (e) => {
1864
- var t = Qt();
1865
- H.template_effect((e) => H.set_class(t, 1, e), [() => H.clsx(z("absolute right-0 top-0 z-40 h-full w-1 cursor-col-resize hover:bg-primary/50 transition-colors", H.get(d) && "bg-primary w-1"))]), H.delegated("mousedown", t, m), H.append(e, t);
1866
- };
1867
- H.if(T, (e) => {
1868
- !n() && !H.get(l) && e(re);
1869
- });
1870
- var ie = H.sibling(T, 2), ae = (e) => {
1871
- var t = X(), n = H.child(t), r = (e) => {
1872
- W(e, { class: "size-3.5" });
1873
- }, i = (e) => {
1874
- U(e, { class: "size-3.5" });
1875
- };
1876
- H.if(n, (e) => {
1877
- H.get(l) ? e(r) : e(i, -1);
1878
- }), H.reset(t), H.delegated("click", t, ne), H.append(e, t);
1879
- };
1880
- H.if(ie, (e) => {
1881
- n() || e(ae);
1882
- });
1883
- var oe = H.sibling(ie, 2), E = (e) => {
1884
- var t = rn(), n = H.child(t);
1885
- Tt(n, { class: "mr-5" });
1886
- var r = H.sibling(n, 2), i = (e) => {
1887
- var t = $t();
1888
- Ht(H.first_child(t), {}), H.next(2), H.append(e, t);
1889
- };
1890
- H.if(r, (e) => {
1891
- H.get(c) === "all" && e(i);
1892
- });
1893
- var a = H.sibling(r, 2), o = (e) => {
1894
- var t = $t();
1895
- Kt(H.first_child(t), {}), H.next(2), H.append(e, t);
1896
- };
1897
- H.if(a, (e) => {
1898
- (H.get(c) === "all" || H.get(c) === "recent") && e(o);
1899
- });
1900
- var s = H.sibling(a, 2), l = (e) => {
1901
- Y(e, {});
1902
- };
1903
- H.if(s, (e) => {
1904
- (H.get(c) === "all" || H.get(c) === "tags") && e(l);
1905
- });
1906
- var u = H.sibling(s, 2), d = (e) => {
1907
- var t = nn(), n = H.sibling(H.first_child(t), 2);
1908
- H.each(n, 21, () => H.get(p), (e) => e.id, (e, t) => {
1909
- let n = H.derived(() => H.get(t).icon);
1910
- var r = tn(), 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 c = H.sibling(o, 2), l = (e) => {
1922
- var n = en(), 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(c, (e) => {
1926
- H.get(t).badge !== void 0 && e(l);
1927
- }), H.reset(r), H.template_effect(() => {
1928
- H.set_attribute(r, "href", H.get(t).href ?? "#"), H.set_attribute(r, "aria-disabled", H.get(t).disabled), H.set_text(s, H.get(t).label);
1929
- }), H.append(e, r);
1930
- }), H.reset(n), H.append(e, t);
1931
- };
1932
- H.if(u, (e) => {
1933
- H.get(c) === "all" && H.get(p).length > 0 && e(d);
1934
- }), H.reset(t), H.append(e, t);
1935
- }, D = (e) => {
1936
- var t = sn(), n = H.child(t);
1937
- ee(H.child(n), { class: "size-4" }), H.reset(n);
1938
- var r = H.sibling(n, 2);
1939
- x(H.child(r), { class: "size-4" }), H.reset(r);
1940
- var i = H.sibling(r, 2);
1941
- _(H.child(i), { class: "size-4" }), H.reset(i);
1942
- var a = H.sibling(i, 2);
1943
- S(H.child(a), { class: "size-4" }), H.reset(a);
1944
- var o = H.sibling(a, 2);
1945
- H.each(o, 17, () => H.get(p), (e) => e.id, (e, t) => {
1946
- let n = H.derived(() => H.get(t).icon);
1947
- var r = on(), 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 = an(), 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(() => {
1959
- H.set_attribute(r, "href", H.get(t).href ?? "#"), 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.append(e, r);
1961
- }), H.reset(t), H.template_effect((e, t, o, s, c, l, u, d) => {
1962
- H.set_attribute(n, "title", e), H.set_attribute(n, "aria-label", t), H.set_attribute(r, "title", o), H.set_attribute(r, "aria-label", s), H.set_attribute(i, "title", c), H.set_attribute(i, "aria-label", l), H.set_attribute(a, "title", u), H.set_attribute(a, "aria-label", d);
1963
- }, [
1964
- () => pe(),
1965
- () => pe(),
1966
- () => Se(),
1967
- () => Se(),
1968
- () => N(),
1969
- () => N(),
1970
- () => Ie(),
1971
- () => Ie()
1972
- ]), H.delegated("click", n, () => yt("/")), H.delegated("click", r, te), H.delegated("click", i, () => v("recent")), H.delegated("click", a, () => v("tags")), H.append(e, t);
1973
- };
1974
- H.if(oe, (e) => {
1975
- H.get(l) ? e(D, -1) : e(E);
1976
- });
1977
- var se = H.sibling(oe, 2), O = H.child(se), k = (e) => {
1978
- var t = cn(), n = H.child(t);
1979
- St(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
- () => R(),
1985
- () => R(),
1986
- () => A(),
1987
- () => A()
1988
- ]), H.delegated("click", n, () => {
1989
- H.set(s, !0);
1990
- }), H.append(e, t);
1991
- }, ce = (e) => {
1992
- var t = ln(), n = H.child(t), r = H.child(n, !0);
1993
- H.reset(n);
1994
- var i = H.sibling(n, 2);
1995
- St(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
- () => A(),
1999
- () => A(),
2000
- () => R(),
2001
- () => R()
2002
- ]), H.delegated("click", i, () => {
2003
- H.set(s, !0);
2004
- }), H.append(e, t);
2005
- };
2006
- H.if(O, (e) => {
2007
- H.get(l) ? e(k) : e(ce, -1);
2008
- }), H.reset(se), H.reset(w), H.bind_this(w, (e) => i(e), () => i()), b(H.sibling(w, 2), {
2009
- get open() {
2010
- return H.get(s);
2011
- },
2012
- set open(e) {
2013
- H.set(s, e, !0);
2014
- }
2015
- }), H.template_effect((e) => {
2016
- H.set_attribute(w, "id", n() ? "mobile-navigation" : void 0), H.set_attribute(w, "role", n() && r() ? "dialog" : void 0), H.set_attribute(w, "aria-modal", n() && r() ? "true" : void 0), H.set_attribute(w, "aria-label", n() ? "Navigation" : void 0), H.set_attribute(w, "aria-hidden", n() && !r() ? "true" : void 0), w.inert = n() && !r(), H.set_class(w, 1, e), H.set_style(w, n() ? "padding-top: env(safe-area-inset-top);" : H.get(l) ? "width: 48px;" : `width: ${H.get(u)}px;`);
2017
- }, [() => H.clsx(z("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(d) && "transition-[width] duration-200"))]), H.append(e, C), H.pop();
2018
- }
2019
- H.delegate(["mousedown", "click"]);
2020
- //#endregion
2021
- export { dn as Sidebar };
1
+ import { t as e } from "../Sidebar-Cu3JrKDC.js";
2
+ export { e as Sidebar };