@hiai-gg/docsmint 0.7.6 → 0.8.2

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