@hiai-gg/docsmint 0.3.9 → 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 (42) hide show
  1. package/dist/backend/index.js +1 -1
  2. package/dist/frontend/FolderNode--l1g8bcL.js +298 -0
  3. package/dist/frontend/{SettingsDialog-BHh68rTB.js → SettingsDialog-LyZUxxku.js} +132 -132
  4. package/dist/frontend/Sidebar-BsJsD1mJ.js +2021 -0
  5. package/dist/frontend/api/categories.js +1 -1
  6. package/dist/frontend/api/documents.js +1 -1
  7. package/dist/frontend/api/folders.js +1 -1
  8. package/dist/frontend/app-shell.js +118 -111
  9. package/dist/frontend/{categories-izQovv2w.js → categories-Drnns7N6.js} +14 -14
  10. package/dist/frontend/components/folder-node.js +1 -1
  11. package/dist/frontend/components/save-as-dialog.js +2 -2
  12. package/dist/frontend/components/settings.js +1 -1
  13. package/dist/frontend/components/sidebar.js +1 -1
  14. package/dist/frontend/dashboard.js +524 -522
  15. package/dist/frontend/{documents-BsDkvzCm.js → documents-Bc7b_MSZ.js} +15 -15
  16. package/dist/frontend/{folders-CTuV_JtU.js → folders-ONG03Dkv.js} +10 -10
  17. package/dist/frontend/route-context-BqQQ5c4i.js +29 -0
  18. package/dist/frontend/search.js +309 -309
  19. package/dist/frontend/{tag-store.svelte-CqrUXo0o.js → tag-store.svelte-CG7RrlDT.js} +1 -1
  20. package/dist/frontend-ssr/api/categories.js +1 -1
  21. package/dist/frontend-ssr/api/documents.js +1 -1
  22. package/dist/frontend-ssr/api/folders.js +1 -1
  23. package/dist/frontend-ssr/app-shell.js +12 -3
  24. package/dist/frontend-ssr/assets/{FolderNode-BZ0Q2QUS.js → FolderNode-CpHrpOED.js} +5 -3
  25. package/dist/frontend-ssr/assets/{SettingsDialog-B8L_YqNA.js → SettingsDialog-Dg97vv83.js} +4 -3
  26. package/dist/frontend-ssr/assets/{Sidebar-EHuUAx3W.js → Sidebar-CrDk_HYY.js} +28 -24
  27. package/dist/frontend-ssr/assets/{categories-AOqgcsn4.js → categories-CTCtdv7V.js} +10 -10
  28. package/dist/frontend-ssr/assets/{documents-BnOTRdTY.js → documents-PObdTOiT.js} +8 -8
  29. package/dist/frontend-ssr/assets/{folders-CTfbS24J.js → folders-BX30gHv6.js} +10 -10
  30. package/dist/frontend-ssr/assets/route-context-uca_b2Px.js +36 -0
  31. package/dist/frontend-ssr/assets/{tag-store.svelte-DPodKj6Z.js → tag-store.svelte-DvgUduhd.js} +1 -1
  32. package/dist/frontend-ssr/components/folder-node.js +1 -1
  33. package/dist/frontend-ssr/components/save-as-dialog.js +1 -1
  34. package/dist/frontend-ssr/components/settings.js +1 -1
  35. package/dist/frontend-ssr/components/sidebar.js +1 -1
  36. package/dist/frontend-ssr/dashboard.js +32 -24
  37. package/dist/frontend-ssr/search.js +6 -4
  38. package/package.json +1 -1
  39. package/packages/cli/src/index.ts +1 -1
  40. package/packages/mcp-server/src/index.ts +1 -1
  41. package/dist/frontend/FolderNode-C6FJv99G.js +0 -298
  42. package/dist/frontend/Sidebar-Cu3JrKDC.js +0 -2021
@@ -10,25 +10,26 @@ import { t as Folder } from "./assets/folder-DChhG7qN.js";
10
10
  import { t as Rotate_ccw } from "./assets/rotate-ccw-BlgWwaiq.js";
11
11
  import { a as Dropdown_menu, i as Dropdown_menu_content, n as Dropdown_menu_separator, o as Ellipsis_vertical, r as Dropdown_menu_item, t as Dropdown_menu_trigger } from "./assets/dropdown-menu-Bj5rbqbB.js";
12
12
  import { t as Loader_circle } from "./assets/loader-circle-DZsrZ-er.js";
13
+ import { n as getDocsmintRouteAdapter, o as resolveDocsmintRoute, r as navigateDocsmintRoute, t as getDocsmintRequestAdapter } from "./assets/route-context-uca_b2Px.js";
13
14
  import { n as formatRelativeTime } from "./assets/utils-DvZnctjz.js";
14
15
  import { t as cn } from "./assets/utils-DtlPPXpJ.js";
15
16
  import { a as Dialog, i as Dialog_description, n as Dialog_header, o as Button, r as Dialog_footer, t as Dialog_title } from "./assets/dialog-BOV1u6zP.js";
16
17
  import { t as Label } from "./assets/label-Bj8-TfFN.js";
17
18
  import { n as apiFetch } from "./assets/client-DZMkDkDn.js";
18
- import "./assets/categories-AOqgcsn4.js";
19
+ import "./assets/categories-CTCtdv7V.js";
19
20
  import { t as getFrontendExtensions } from "./assets/context-jz1GGEUi.js";
20
21
  import { t as resolveExtensions } from "./assets/resolve-BqHozBXl.js";
21
22
  import { a as Select, i as Select_content, n as Select_trigger, r as Select_item, t as Select_value } from "./assets/select-value-6Lk0ToYd.js";
22
- import { c as updateDocument, i as getDocument } from "./assets/documents-BnOTRdTY.js";
23
- import { c as updateFolder, i as duplicateDocument } from "./assets/folders-CTfbS24J.js";
23
+ import { c as updateDocument, i as getDocument } from "./assets/documents-PObdTOiT.js";
24
+ import { c as updateFolder, i as duplicateDocument } from "./assets/folders-BX30gHv6.js";
24
25
  import { t as copyToClipboard } from "./assets/clipboard-CXOaoz2W.js";
25
26
  import { t as ShareDialog } from "./assets/ShareDialog-vMvJLRfn.js";
26
27
  import { d as refreshFolders, n as bumpSubfoldersRefresh } from "./assets/subfolders-refresh-store.svelte-DAh4gT16.js";
27
- import { n as refreshDocs } from "./assets/tag-store.svelte-DPodKj6Z.js";
28
+ import { n as refreshDocs } from "./assets/tag-store.svelte-DvgUduhd.js";
28
29
  import { t as ConfirmDialog } from "./assets/ConfirmDialog-DjMFKc0V.js";
29
30
  import * as $ from "svelte/internal/server";
30
- import { goto, invalidateAll } from "$app/navigation";
31
31
  import { page } from "$app/state";
32
+ import { invalidateAll } from "$app/navigation";
32
33
  //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/arrow-left.svelte
33
34
  function Arrow_left($$renderer, $$props) {
34
35
  const $$sanitized_props = $.sanitize_props($$props);
@@ -1153,15 +1154,17 @@ function stripMarkdown(markdown) {
1153
1154
  function DocumentCard($$renderer, $$props) {
1154
1155
  $$renderer.component(($$renderer) => {
1155
1156
  const { document: doc, onDelete, onDuplicate, onShare, duplicateBusy = false } = $$props;
1157
+ const route = getDocsmintRouteAdapter();
1158
+ const request = getDocsmintRequestAdapter();
1156
1159
  function navigateToDoc() {
1157
- goto(`/docs/${doc.id}`);
1160
+ navigateDocsmintRoute(route, `/docs/${doc.id}`);
1158
1161
  }
1159
1162
  let showMoveDialog = false;
1160
1163
  async function handleMove(parentId, categoryId) {
1161
1164
  await updateDocument(doc.id, {
1162
1165
  folderId: parentId,
1163
1166
  categoryId
1164
- });
1167
+ }, request.fetch);
1165
1168
  await invalidateAll();
1166
1169
  }
1167
1170
  let contentCopied = false;
@@ -1173,7 +1176,7 @@ function DocumentCard($$renderer, $$props) {
1173
1176
  let text = "";
1174
1177
  contentCopying = true;
1175
1178
  try {
1176
- text = (await getDocument(doc.id)).content ?? "";
1179
+ text = (await getDocument(doc.id, request.fetch)).content ?? "";
1177
1180
  } catch (err) {
1178
1181
  console.error("DocumentCard: failed to fetch full document for copy", err);
1179
1182
  text = doc.excerpt || doc.content || "";
@@ -1227,7 +1230,7 @@ function DocumentCard($$renderer, $$props) {
1227
1230
  align: "end",
1228
1231
  children: ($$renderer) => {
1229
1232
  Dropdown_menu_item($$renderer, {
1230
- onclick: () => goto(`/docs/${doc.id}`),
1233
+ onclick: () => navigateDocsmintRoute(route, `/docs/${doc.id}`),
1231
1234
  children: ($$renderer) => {
1232
1235
  Arrow_up_right($$renderer, { class: "size-4" });
1233
1236
  $$renderer.push(`<!----> ${$.escape(doc_open())}`);
@@ -1404,15 +1407,17 @@ function DocumentCard($$renderer, $$props) {
1404
1407
  function FolderCard($$renderer, $$props) {
1405
1408
  $$renderer.component(($$renderer) => {
1406
1409
  const { folder, onDelete, onRename, onShare } = $$props;
1410
+ const route = getDocsmintRouteAdapter();
1411
+ const request = getDocsmintRequestAdapter();
1407
1412
  function navigateToFolder() {
1408
- goto(`/folders/${folder.id}`);
1413
+ navigateDocsmintRoute(route, `/folders/${folder.id}`);
1409
1414
  }
1410
1415
  let showMoveDialog = false;
1411
1416
  async function handleMove(parentId, categoryId) {
1412
1417
  await updateFolder(folder.id, {
1413
1418
  parentId,
1414
1419
  categoryId
1415
- });
1420
+ }, request.fetch);
1416
1421
  await invalidateAll();
1417
1422
  }
1418
1423
  let $$settled = true;
@@ -1452,7 +1457,7 @@ function FolderCard($$renderer, $$props) {
1452
1457
  align: "end",
1453
1458
  children: ($$renderer) => {
1454
1459
  Dropdown_menu_item($$renderer, {
1455
- onclick: () => goto(`/folders/${folder.id}`),
1460
+ onclick: () => navigateDocsmintRoute(route, `/folders/${folder.id}`),
1456
1461
  children: ($$renderer) => {
1457
1462
  Folder($$renderer, { class: "size-4" });
1458
1463
  $$renderer.push(`<!----> ${$.escape(doc_open())}`);
@@ -1555,6 +1560,7 @@ function FolderCard($$renderer, $$props) {
1555
1560
  function ImportProgress($$renderer, $$props) {
1556
1561
  $$renderer.component(($$renderer) => {
1557
1562
  const { open = true, items, onClose } = $$props;
1563
+ const route = getDocsmintRouteAdapter();
1558
1564
  const total = $.derived(() => items.length);
1559
1565
  const done = $.derived(() => items.filter((i) => i.status === "done").length);
1560
1566
  const failed = $.derived(() => items.filter((i) => i.status === "error").length);
@@ -1599,7 +1605,7 @@ function ImportProgress($$renderer, $$props) {
1599
1605
  $$renderer.push(`<!----> `);
1600
1606
  if (item.documentId) {
1601
1607
  $$renderer.push("<!--[0-->");
1602
- $$renderer.push(`<a${$.attr("href", `/docs/${item.documentId}`)} class="inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 text-xs font-semibold text-primary transition-colors hover:bg-primary/20"><span>View</span> `);
1608
+ $$renderer.push(`<a${$.attr("href", resolveDocsmintRoute(route, `/docs/${item.documentId}`))} class="inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 text-xs font-semibold text-primary transition-colors hover:bg-primary/20"><span>View</span> `);
1603
1609
  Chevron_right($$renderer, { class: "size-3" });
1604
1610
  $$renderer.push(`<!----></a>`);
1605
1611
  } else {
@@ -1642,6 +1648,8 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1642
1648
  };
1643
1649
  const { data, extensionContext = { pathname: "/" } } = $$props;
1644
1650
  const frontendExtensions = getFrontendExtensions();
1651
+ const route = getDocsmintRouteAdapter();
1652
+ const request = getDocsmintRequestAdapter();
1645
1653
  const dashboardWidgets = $.derived(() => resolveExtensions(frontendExtensions.dashboardWidgets, extensionContext));
1646
1654
  const activeFolderId = $.derived(() => page.url.searchParams.get("folder") || null);
1647
1655
  const activeCategoryId = $.derived(() => page.url.searchParams.get("category") || null);
@@ -1692,7 +1700,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1692
1700
  if (activeCategoryId()) params.set("category", activeCategoryId());
1693
1701
  const qs = params.toString();
1694
1702
  if (qs) url += `?${qs}`;
1695
- goto(url);
1703
+ return navigateDocsmintRoute(route, url);
1696
1704
  }
1697
1705
  function handleRenameFolder(id) {
1698
1706
  const folder = activeFolderId() ? data.activeFolder?.children?.find((c) => c.id === id) : data.rootFolders.find((f) => f.id === id);
@@ -1712,11 +1720,11 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1712
1720
  parentId: activeFolderId() || null,
1713
1721
  categoryId: activeFolderId() ? null : activeCategoryId() || null
1714
1722
  })
1715
- });
1723
+ }, request.fetch);
1716
1724
  else if (folderDialogMode === "edit" && folderDialogTarget) await apiFetch(`/api/folders/${folderDialogTarget.id}`, {
1717
1725
  method: "PATCH",
1718
1726
  body: JSON.stringify({ name })
1719
- });
1727
+ }, request.fetch);
1720
1728
  showFolderDialog = false;
1721
1729
  refreshFolders();
1722
1730
  await invalidateAll();
@@ -1730,7 +1738,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1730
1738
  if (!id || deleteFolderBusy) return;
1731
1739
  deleteFolderBusy = true;
1732
1740
  try {
1733
- await apiFetch(`/api/folders/${id}`, { method: "DELETE" });
1741
+ await apiFetch(`/api/folders/${id}`, { method: "DELETE" }, request.fetch);
1734
1742
  showDeleteFolderDialog = false;
1735
1743
  deleteFolderTargetId = null;
1736
1744
  await invalidateAll();
@@ -1745,7 +1753,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1745
1753
  async function handleDeleteDocument(id) {
1746
1754
  if (!confirm(`${action_delete()}?`)) return;
1747
1755
  try {
1748
- await apiFetch(`/api/documents/${id}`, { method: "DELETE" });
1756
+ await apiFetch(`/api/documents/${id}`, { method: "DELETE" }, request.fetch);
1749
1757
  await invalidateAll();
1750
1758
  refreshDocs();
1751
1759
  } catch (e) {
@@ -1756,7 +1764,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1756
1764
  if (duplicatingDocumentId) return;
1757
1765
  duplicatingDocumentId = id;
1758
1766
  try {
1759
- const duplicate = await duplicateDocument(id);
1767
+ const duplicate = await duplicateDocument(id, request.fetch);
1760
1768
  optimisticDocuments = [...optimisticDocuments.filter((doc) => doc.id !== duplicate.id), duplicate];
1761
1769
  await invalidateAll();
1762
1770
  const currentDocuments = data.activeFolder?.documents ?? data.recentDocs;
@@ -1785,7 +1793,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1785
1793
  else params.delete("dateFrom");
1786
1794
  if (dateTo) params.set("dateTo", dateTo);
1787
1795
  else params.delete("dateTo");
1788
- goto(`/?${params.toString()}`, {
1796
+ return navigateDocsmintRoute(route, `/?${params.toString()}`, {
1789
1797
  replaceState: true,
1790
1798
  keepFocus: true,
1791
1799
  noScroll: true
@@ -1868,8 +1876,8 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1868
1876
  class: "size-8 shrink-0",
1869
1877
  onclick: () => {
1870
1878
  const parentId = data.activeFolder?.parentId;
1871
- if (parentId) goto(`/?folder=${parentId}`);
1872
- else goto("/");
1879
+ if (parentId) return navigateDocsmintRoute(route, `/?folder=${parentId}`);
1880
+ else return navigateDocsmintRoute(route, "/");
1873
1881
  },
1874
1882
  title: action_back(),
1875
1883
  children: ($$renderer) => {
@@ -1902,7 +1910,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
1902
1910
  variant: "ghost",
1903
1911
  size: "icon",
1904
1912
  class: "size-8 shrink-0",
1905
- onclick: () => goto("/"),
1913
+ onclick: () => navigateDocsmintRoute(route, "/"),
1906
1914
  title: action_back(),
1907
1915
  children: ($$renderer) => {
1908
1916
  Arrow_left($$renderer, { class: "size-4" });
@@ -2054,7 +2062,7 @@ function HiaiDocsDashboardHost($$renderer, $$props) {
2054
2062
  const params = new URLSearchParams(page.url.searchParams);
2055
2063
  if (val && val !== "all") params.set("category", val);
2056
2064
  else params.delete("category");
2057
- goto(`/?${params.toString()}`);
2065
+ return navigateDocsmintRoute(route, `/?${params.toString()}`);
2058
2066
  },
2059
2067
  children: ($$renderer) => {
2060
2068
  if (Select$1.Trigger) {
@@ -5,13 +5,13 @@ import { t as Chevron_down } from "./assets/chevron-down-CSSNGNh_.js";
5
5
  import { t as Folder } from "./assets/folder-DChhG7qN.js";
6
6
  import { t as Rotate_ccw } from "./assets/rotate-ccw-BlgWwaiq.js";
7
7
  import { n as Search, t as Tag } from "./assets/tag-GZEuGWk1.js";
8
- import "./assets/categories-AOqgcsn4.js";
8
+ import { n as getDocsmintRouteAdapter, r as navigateDocsmintRoute, t as getDocsmintRequestAdapter } from "./assets/route-context-uca_b2Px.js";
9
+ import "./assets/categories-CTCtdv7V.js";
9
10
  import { t as getFrontendExtensions } from "./assets/context-jz1GGEUi.js";
10
11
  import { t as resolveExtensions } from "./assets/resolve-BqHozBXl.js";
11
12
  import "./assets/select-value-6Lk0ToYd.js";
12
- import "./assets/tag-store.svelte-DPodKj6Z.js";
13
+ import "./assets/tag-store.svelte-DvgUduhd.js";
13
14
  import * as $ from "svelte/internal/server";
14
- import { goto } from "$app/navigation";
15
15
  //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/sliders-horizontal.svelte
16
16
  function Sliders_horizontal($$renderer, $$props) {
17
17
  const $$sanitized_props = $.sanitize_props($$props);
@@ -104,6 +104,8 @@ function HiaiDocsSearchHost($$renderer, $$props) {
104
104
  $$renderer.component(($$renderer) => {
105
105
  const { data, extensionContext = { pathname: "/search" } } = $$props;
106
106
  const frontendExtensions = getFrontendExtensions();
107
+ const route = getDocsmintRouteAdapter();
108
+ getDocsmintRequestAdapter();
107
109
  let query = "";
108
110
  let activeFolder = "";
109
111
  let activeTags = [];
@@ -157,7 +159,7 @@ function HiaiDocsSearchHost($$renderer, $$props) {
157
159
  }
158
160
  function applyDateRange() {
159
161
  currentPage = 1;
160
- goto(buildUrl({
162
+ navigateDocsmintRoute(route, buildUrl({
161
163
  dateFrom,
162
164
  dateTo,
163
165
  page: "1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiai-gg/docsmint",
3
- "version": "0.3.9",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "browser": {
6
6
  "./dist/backend-launcher.js": false,
@@ -24,7 +24,7 @@ import { registerSearch } from "./commands/search.js";
24
24
  import { registerSnapshot } from "./commands/snapshot.js";
25
25
  import { registerUpdate } from "./commands/update.js";
26
26
 
27
- const VERSION = "0.3.9";
27
+ const VERSION = "0.4.0";
28
28
 
29
29
  const program = new Command();
30
30
  program
@@ -35,7 +35,7 @@ interface McpToolResult {
35
35
 
36
36
  const server = new McpServer({
37
37
  name: "hiai-docs",
38
- version: "0.3.9",
38
+ version: "0.4.0",
39
39
  });
40
40
 
41
41
  /**
@@ -1,298 +0,0 @@
1
- import { n as e, t } from "./folder-DeWhnD7O.js";
2
- import { a as n, i as r, o as i, r as a, t as o } from "./dropdown-menu-CRSby3e9.js";
3
- import { Gt as s, Ni as c, Yn as l, _i as u, mi as d, pi as f, wi as p } from "./messages-C5Q890i2.js";
4
- import { t as m } from "./utils-DrfHTcei.js";
5
- import { t as h } from "./dndzone-BzsOINtP.js";
6
- import { s as g } from "./folders-CTuV_JtU.js";
7
- import { l as ee, p as _ } from "./subfolders-refresh-store.svelte-B2dKVmgz.js";
8
- import "svelte/internal/disclose-version";
9
- import * as v from "svelte/internal/client";
10
- import { goto as y } from "$app/navigation";
11
- import { page as b } from "$app/state";
12
- import { flip as x } from "svelte/animate";
13
- //#region src/lib/components/sidebar/FolderNode.svelte
14
- var S = v.from_html("<button><!></button>"), C = v.from_html("<!> <!> <!> <!> <!> <!>", 1), w = v.from_html("<!> <!>", 1), T = v.from_html("<div><!></div>"), E = v.from_html("<p class=\"px-2 py-1 text-xs text-muted-foreground\">Loading subfolders…</p>"), D = v.from_html("<p class=\"px-2 py-1 text-xs text-destructive\"> </p>"), O = v.from_html("<div class=\"group/doc flex w-full min-w-0 items-center gap-1\"><!> <!> <!></div>"), k = v.from_html("<div class=\"ml-0.5 space-y-0.5 border-l border-border pl-0.5\"><div><!> <!> <!></div> <div></div></div>"), A = v.from_html("<div role=\"group\"><div class=\"group/folder flex w-full min-w-0 items-center gap-1\"><button type=\"button\"><!> <!> <span class=\"min-w-0 truncate\"> </span></button> <!></div> <!></div>");
15
- function j(M, N) {
16
- v.push(N, !0);
17
- let te = v.prop(N, "depth", 3, 0), P = v.prop(N, "isDraggingFolder", 3, !1), F = v.prop(N, "isDraggingDoc", 3, !1), I = v.prop(N, "draggedDocId", 3, null), L = v.state(v.proxy([])), R = v.state(!1), z = v.state(!1), B = v.state(null), V = v.state(v.proxy([])), H = v.derived(() => N.expandedFolderIds.has(N.folder.id)), U = v.derived(() => N.folderDocsMap[N.folder.id] ?? []);
18
- async function W() {
19
- v.set(z, !0), v.set(B, null);
20
- try {
21
- let e = await g(N.folder.id);
22
- v.set(L, e.map((e) => (_(e.id, e.parentId ?? null, e.categoryId ?? null, e.order ?? 0), {
23
- id: e.id,
24
- name: e.name,
25
- categoryId: e.categoryId ?? null,
26
- parentId: e.parentId,
27
- order: e.order ?? 0
28
- })), !0), v.set(V, v.get(L), !0), v.set(R, !0);
29
- } catch (e) {
30
- console.error("FolderNode: failed to load subfolders", e), v.set(B, e instanceof Error ? e.message : "Failed to load subfolders", !0);
31
- } finally {
32
- v.set(z, !1);
33
- }
34
- }
35
- function G() {
36
- let e = v.get(H);
37
- N.onToggleFolder(N.folder.id), e || W();
38
- }
39
- v.user_effect(() => {
40
- ee(N.folder.id) !== 0 && (!v.get(R) && !v.get(H) || W());
41
- });
42
- function K(e) {
43
- e.stopPropagation(), v.set(V, Array.isArray(e.detail.items) ? e.detail.items : [], !0), N.onConsiderSubfolders(N.folder.id)(e);
44
- }
45
- function q(e) {
46
- e.stopPropagation(), v.set(V, Array.isArray(e.detail.items) ? e.detail.items : [], !0), N.onFinalizeSubfolders(N.folder.id)(e);
47
- }
48
- var J = A(), Y = v.child(J), X = v.child(Y), Z = v.child(X);
49
- {
50
- let t = v.derived(() => m("size-3.5 shrink-0 transition-transform", v.get(H) && "rotate-90"));
51
- e(Z, { get class() {
52
- return v.get(t);
53
- } });
54
- }
55
- var Q = v.sibling(Z, 2);
56
- t(Q, { class: "size-4 shrink-0 text-muted-foreground" });
57
- var $ = v.sibling(Q, 2), ne = v.child($, !0);
58
- v.reset($), v.reset(X), n(v.sibling(X, 2), {
59
- children: (e, t) => {
60
- var n = w(), m = v.first_child(n);
61
- o(m, {
62
- child: (e, t) => {
63
- let n = () => (t?.()).props;
64
- var r = S();
65
- v.attribute_effect(r, (e, t) => ({
66
- ...n(),
67
- type: "button",
68
- 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/folder:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
69
- "aria-label": e,
70
- title: t
71
- }), [() => s(), () => s()]), i(v.child(r), { class: "size-3.5" }), v.reset(r), v.append(e, r);
72
- },
73
- $$slots: { child: !0 }
74
- }), r(v.sibling(m, 2), {
75
- align: "end",
76
- children: (e, t) => {
77
- var n = C(), r = v.first_child(n);
78
- a(r, {
79
- onSelect: () => y("/folders/" + N.folder.id),
80
- children: (e, t) => {
81
- v.next();
82
- var n = v.text();
83
- v.template_effect((e) => v.set_text(n, e), [() => l()]), v.append(e, n);
84
- },
85
- $$slots: { default: !0 }
86
- });
87
- var i = v.sibling(r, 2);
88
- a(i, {
89
- onSelect: () => y(`/docs/new?folder=${N.folder.id}`),
90
- children: (e, t) => {
91
- v.next();
92
- var n = v.text();
93
- v.template_effect((e) => v.set_text(n, e), [() => c()]), v.append(e, n);
94
- },
95
- $$slots: { default: !0 }
96
- });
97
- var o = v.sibling(i, 2);
98
- a(o, {
99
- onSelect: () => N.onCreateSubfolder(N.folder.id),
100
- children: (e, t) => {
101
- v.next();
102
- var n = v.text();
103
- v.template_effect((e) => v.set_text(n, e), [() => u()]), v.append(e, n);
104
- },
105
- $$slots: { default: !0 }
106
- });
107
- var s = v.sibling(o, 2);
108
- a(s, {
109
- onSelect: () => N.onShare(N.folder.id, N.folder.name),
110
- children: (e, t) => {
111
- v.next();
112
- var n = v.text();
113
- v.template_effect((e) => v.set_text(n, e), [() => p()]), v.append(e, n);
114
- },
115
- $$slots: { default: !0 }
116
- });
117
- var m = v.sibling(s, 2);
118
- a(m, {
119
- onSelect: () => N.onRename(N.folder.id, N.folder.name),
120
- children: (e, t) => {
121
- v.next();
122
- var n = v.text();
123
- v.template_effect((e) => v.set_text(n, e), [() => d()]), v.append(e, n);
124
- },
125
- $$slots: { default: !0 }
126
- }), a(v.sibling(m, 2), {
127
- class: "text-destructive focus:text-destructive",
128
- onSelect: () => N.onDelete(N.folder.id, N.folder.name),
129
- children: (e, t) => {
130
- v.next();
131
- var n = v.text();
132
- v.template_effect((e) => v.set_text(n, e), [() => f()]), v.append(e, n);
133
- },
134
- $$slots: { default: !0 }
135
- }), v.append(e, n);
136
- },
137
- $$slots: { default: !0 }
138
- }), v.append(e, n);
139
- },
140
- $$slots: { default: !0 }
141
- }), v.reset(Y);
142
- var re = v.sibling(Y, 2), ie = (e) => {
143
- var t = k(), n = v.child(t), r = v.child(n);
144
- v.each(r, 25, () => v.get(V), (e) => e.id, (e, t) => {
145
- let n = v.derived(() => j);
146
- var r = T(), i = v.child(r);
147
- {
148
- let e = v.derived(() => te() + 1);
149
- v.component(i, () => v.get(n), (n, r) => {
150
- r(n, {
151
- get folder() {
152
- return v.get(t);
153
- },
154
- get depth() {
155
- return v.get(e);
156
- },
157
- get folderDocsMap() {
158
- return N.folderDocsMap;
159
- },
160
- get expandedFolderIds() {
161
- return N.expandedFolderIds;
162
- },
163
- get isDraggingGlobal() {
164
- return N.isDraggingGlobal;
165
- },
166
- get isDraggingFolder() {
167
- return P();
168
- },
169
- get isDraggingDoc() {
170
- return F();
171
- },
172
- get dragDisabled() {
173
- return N.dragDisabled;
174
- },
175
- get folderFlipDurationMs() {
176
- return N.folderFlipDurationMs;
177
- },
178
- get documentFlipDurationMs() {
179
- return N.documentFlipDurationMs;
180
- },
181
- get draggedDocId() {
182
- return I();
183
- },
184
- get onToggleFolder() {
185
- return N.onToggleFolder;
186
- },
187
- get onScheduleFolderExpand() {
188
- return N.onScheduleFolderExpand;
189
- },
190
- get onClearExpandTimer() {
191
- return N.onClearExpandTimer;
192
- },
193
- get onRename() {
194
- return N.onRename;
195
- },
196
- get onShare() {
197
- return N.onShare;
198
- },
199
- get onDelete() {
200
- return N.onDelete;
201
- },
202
- get onCreateSubfolder() {
203
- return N.onCreateSubfolder;
204
- },
205
- get onConsiderDocs() {
206
- return N.onConsiderDocs;
207
- },
208
- get onFinalizeDocs() {
209
- return N.onFinalizeDocs;
210
- },
211
- get onConsiderSubfolders() {
212
- return N.onConsiderSubfolders;
213
- },
214
- get onFinalizeSubfolders() {
215
- return N.onFinalizeSubfolders;
216
- },
217
- get onDropOnFolder() {
218
- return N.onDropOnFolder;
219
- },
220
- get docRowInner() {
221
- return N.docRowInner;
222
- },
223
- get copyButton() {
224
- return N.copyButton;
225
- },
226
- get docMenu() {
227
- return N.docMenu;
228
- }
229
- });
230
- });
231
- }
232
- v.reset(r), v.animation(r, () => x, () => ({ duration: N.folderFlipDurationMs })), v.append(e, r);
233
- });
234
- var i = v.sibling(r, 2), a = (e) => {
235
- var t = E();
236
- v.append(e, t);
237
- };
238
- v.if(i, (e) => {
239
- v.get(z) && e(a);
240
- });
241
- var o = v.sibling(i, 2), s = (e) => {
242
- var t = D(), n = v.child(t, !0);
243
- v.reset(t), v.template_effect(() => v.set_text(n, v.get(B))), v.append(e, t);
244
- };
245
- v.if(o, (e) => {
246
- v.get(B) && e(s);
247
- }), v.reset(n), v.action(n, (e, t) => h?.(e, t), () => ({
248
- items: v.get(V),
249
- flipDurationMs: N.folderFlipDurationMs,
250
- type: "folder",
251
- dropTargetStyle: {},
252
- dragDisabled: N.dragDisabled
253
- }));
254
- var c = v.sibling(n, 2), l = v.derived(() => N.onConsiderDocs({
255
- kind: "folder",
256
- id: N.folder.id
257
- })), u = v.derived(() => N.onFinalizeDocs({
258
- kind: "folder",
259
- id: N.folder.id
260
- }));
261
- v.each(c, 29, () => v.get(U), (e) => e.id, (e, t) => {
262
- var n = O(), r = v.child(n);
263
- v.snippet(r, () => N.docRowInner, () => v.get(t));
264
- var i = v.sibling(r, 2);
265
- v.snippet(i, () => N.copyButton, () => v.get(t));
266
- var a = v.sibling(i, 2);
267
- v.snippet(a, () => N.docMenu, () => v.get(t)), v.reset(n), v.animation(n, () => x, () => ({ duration: N.documentFlipDurationMs })), v.append(e, n);
268
- }), v.reset(c), v.action(c, (e, t) => h?.(e, t), () => ({
269
- items: v.get(U),
270
- flipDurationMs: N.documentFlipDurationMs,
271
- type: "doc",
272
- dropTargetStyle: {},
273
- dragDisabled: N.dragDisabled,
274
- useCursorForDetection: !0,
275
- centreDraggedOnCursor: !0
276
- })), v.reset(t), v.template_effect((e, t) => {
277
- v.set_class(n, 1, e), v.set_class(c, 1, t);
278
- }, [() => v.clsx(m("min-h-[8px] space-y-0.5 transition-all duration-150", P() && v.get(V).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20")), () => v.clsx(m("min-h-[8px] space-y-0.5 transition-all duration-150", F() && v.get(U).length === 0 && "min-h-[36px] bg-accent/20 rounded border border-dashed border-muted-foreground/20"))]), v.event("consider", n, K), v.event("finalize", n, q), v.event("consider", c, function(...e) {
279
- v.get(l)?.apply(this, e);
280
- }), v.event("finalize", c, function(...e) {
281
- v.get(u)?.apply(this, e);
282
- }), v.append(e, t);
283
- };
284
- v.if(re, (e) => {
285
- v.get(H) && e(ie);
286
- }), v.reset(J), v.template_effect((e) => {
287
- v.set_attribute(J, "aria-label", N.folder.name), v.set_attribute(X, "aria-expanded", v.get(H)), v.set_class(X, 1, e), v.set_text(ne, N.folder.name);
288
- }, [() => v.clsx(m("flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground", b.params.id === N.folder.id && "bg-accent text-accent-foreground font-medium", I() && "hover:bg-accent/40 border border-dashed border-primary/30"))]), v.event("mouseenter", J, () => {
289
- N.isDraggingGlobal && !v.get(H) && N.onScheduleFolderExpand(N.folder.id);
290
- }), v.event("mouseleave", J, () => {
291
- N.isDraggingGlobal && N.onClearExpandTimer();
292
- }), v.delegated("click", X, G), v.event("dragover", X, (e) => {
293
- I() && (e.preventDefault(), e.dataTransfer && (e.dataTransfer.dropEffect = "move"));
294
- }), v.event("drop", X, (e) => N.onDropOnFolder(e, N.folder.id)), v.append(M, J), v.pop();
295
- }
296
- v.delegate(["click"]);
297
- //#endregion
298
- export { j as t };