@hiai-gg/docsmint 0.3.8 → 0.4.0

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