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