@hiai-gg/docsmint 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/backend/index.js +47 -8
  2. package/dist/backend-account-runtime-cleanup.js +20 -3
  3. package/dist/backend-api-key-facade.js +20 -3
  4. package/dist/backend-pipeline-cancellation.js +20 -3
  5. package/dist/frontend/{HiaiDocsExtensionProvider-CMiTXi2J.js → HiaiDocsExtensionProvider-OSn96BBw.js} +1 -1
  6. package/dist/frontend/{SettingsDialog-DEx1eEZm.js → SettingsDialog-Bd_S2RKW.js} +104 -96
  7. package/dist/frontend/ShareDialog-BC-Jl6v1.js +257 -0
  8. package/dist/frontend/{Sidebar-BthP-jOS.js → Sidebar-BnZgNl_8.js} +347 -331
  9. package/dist/frontend/api/attachments.js +1 -1
  10. package/dist/frontend/app-shell.js +3 -3
  11. package/dist/frontend/{attachments-C2DBzU-r.js → attachments-B8AuDjno.js} +8 -5
  12. package/dist/frontend/components/editor/document-editor.js +1 -1
  13. package/dist/frontend/components/settings.js +1 -1
  14. package/dist/frontend/components/share-dialog.js +1 -1
  15. package/dist/frontend/components/sidebar.js +1 -1
  16. package/dist/frontend/{context-KLiM3QQ0.js → context-D0zPFXZ4.js} +2 -0
  17. package/dist/frontend/dashboard.js +10 -4
  18. package/dist/frontend/extension.d.ts +3 -2
  19. package/dist/frontend/extension.js +1 -1
  20. package/dist/frontend/frontend.css +1 -1
  21. package/dist/frontend/search.js +1 -1
  22. package/dist/frontend/shared-document.js +1 -1
  23. package/dist/frontend-ssr/api/attachments.js +1 -1
  24. package/dist/frontend-ssr/app-shell.js +4 -4
  25. package/dist/frontend-ssr/assets/{CategoryDialog-DDu37Oub.js → CategoryDialog-Cnlmr1sz.js} +1 -1
  26. package/dist/frontend-ssr/assets/{CreateSnapshotDialog-DNAjd4eD.js → CreateSnapshotDialog-b6O0nUVp.js} +1 -1
  27. package/dist/frontend-ssr/assets/{DatePicker-Cp6Qmgdb.js → DatePicker-D84cJ-Eq.js} +1 -1
  28. package/dist/frontend-ssr/assets/{FolderNode-CrLWqHJH.js → FolderNode-CnFVWuQi.js} +1 -1
  29. package/dist/frontend-ssr/assets/{HiaiDocsExtensionProvider-B_MrN08c.js → HiaiDocsExtensionProvider-BRKWmcDd.js} +1 -1
  30. package/dist/frontend-ssr/assets/{SettingsDialog-BymUxBgg.js → SettingsDialog-BPdUl6pd.js} +23 -9
  31. package/dist/frontend-ssr/assets/ShareDialog-BZd28sg-.js +45 -0
  32. package/dist/frontend-ssr/assets/{Sidebar-CI8YKbrY.js → Sidebar-DwYZH0Tr.js} +38 -11
  33. package/dist/frontend-ssr/assets/{TagCreateDialog-B7wDbVqG.js → TagCreateDialog-DUPMitlL.js} +1 -1
  34. package/dist/frontend-ssr/assets/{attachments-CXgatN0B.js → attachments-Cj3fQyUp.js} +11 -4
  35. package/dist/frontend-ssr/assets/{confirm-dialog-B3C0WeMn.js → confirm-dialog-XuyaL8sr.js} +1 -1
  36. package/dist/frontend-ssr/assets/{context-BtCMqdVe.js → context-Bi_mO-NS.js} +2 -0
  37. package/dist/frontend-ssr/assets/{messages-D-auzk9H.js → messages-BAQzILs4.js} +1 -1
  38. package/dist/frontend-ssr/components/category-dialog.js +1 -1
  39. package/dist/frontend-ssr/components/create-snapshot-dialog.js +1 -1
  40. package/dist/frontend-ssr/components/editor/document-editor.js +2 -2
  41. package/dist/frontend-ssr/components/editor/document-title.js +1 -1
  42. package/dist/frontend-ssr/components/editor/markdown-toggle.js +1 -1
  43. package/dist/frontend-ssr/components/folder-node.js +1 -1
  44. package/dist/frontend-ssr/components/save-as-dialog.js +1 -1
  45. package/dist/frontend-ssr/components/settings.js +1 -1
  46. package/dist/frontend-ssr/components/share-dialog.js +1 -1
  47. package/dist/frontend-ssr/components/sidebar.js +1 -1
  48. package/dist/frontend-ssr/components/tag-create-dialog.js +1 -1
  49. package/dist/frontend-ssr/components/version-history.js +2 -2
  50. package/dist/frontend-ssr/dashboard.js +12 -7
  51. package/dist/frontend-ssr/extension.js +1 -1
  52. package/dist/frontend-ssr/i18n.js +1 -1
  53. package/dist/frontend-ssr/search.js +3 -3
  54. package/dist/frontend-ssr/shared-document.js +1 -1
  55. package/dist/lifecycle-runtime.js +18 -3
  56. package/dist/types.d.ts +5 -0
  57. package/package.json +1 -1
  58. package/packages/cli/src/index.ts +1 -1
  59. package/packages/db/src/schema.ts +17 -2
  60. package/packages/mcp-server/src/index.ts +1 -1
  61. package/dist/frontend/ShareDialog-uEf8Ks02.js +0 -166
  62. package/dist/frontend-ssr/assets/ShareDialog-B82t8oJi.js +0 -56
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../attachments-C2DBzU-r.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../attachments-B8AuDjno.js";
2
2
  export { a as confirmAttachment, n as isFileSizeAllowed, i as isImageFile, t as listAttachments, e as presignAttachment, r as uploadAttachment };
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./Icon-Db-o32_E.js";
2
- import { n as t, r as n } from "./SettingsDialog-DEx1eEZm.js";
3
- import { t as r } from "./Sidebar-BthP-jOS.js";
2
+ import { n as t, r as n } from "./SettingsDialog-Bd_S2RKW.js";
3
+ import { t as r } from "./Sidebar-BnZgNl_8.js";
4
4
  import { D as i } from "./messages-DIovIZrK.js";
5
5
  import { o as a, r as o } from "./route-context-DYQlUfzL.js";
6
- import { t as s } from "./HiaiDocsExtensionProvider-CMiTXi2J.js";
6
+ import { t as s } from "./HiaiDocsExtensionProvider-OSn96BBw.js";
7
7
  import "svelte/internal/disclose-version";
8
8
  import * as c from "svelte/internal/client";
9
9
  import { getContext as l, onDestroy as u, setContext as d, untrack as f } from "svelte";
@@ -11,16 +11,17 @@ function n(t, n, r) {
11
11
  }
12
12
  }, r);
13
13
  }
14
- function r(t, n, r, i) {
14
+ function r(t, n, r, i, a) {
15
15
  return e(`/api/documents/${t}/attachments/confirm`, {
16
16
  method: "POST",
17
17
  body: {
18
18
  key: n,
19
19
  filename: r.name,
20
20
  contentType: r.type,
21
- size: r.size
21
+ size: r.size,
22
+ ...i ? { quotaReservationId: i } : {}
22
23
  }
23
- }, i);
24
+ }, a);
24
25
  }
25
26
  async function i(e, t, i) {
26
27
  let a = await n(e, t, i), o = new AbortController(), s = setTimeout(() => o.abort(), 5 * 6e4), c;
@@ -31,11 +32,13 @@ async function i(e, t, i) {
31
32
  headers: { "Content-Type": t.type },
32
33
  signal: o.signal
33
34
  });
35
+ } catch (n) {
36
+ throw await r(e, a.key, t, a.quotaReservationId, i).catch(() => void 0), n;
34
37
  } finally {
35
38
  clearTimeout(s);
36
39
  }
37
- if (!c.ok) throw Error(`Storage upload failed: ${c.status} ${c.statusText}`);
38
- return r(e, a.key, t, i);
40
+ if (!c.ok) throw await r(e, a.key, t, a.quotaReservationId, i).catch(() => void 0), Error(`Storage upload failed: ${c.status} ${c.statusText}`);
41
+ return r(e, a.key, t, a.quotaReservationId, i);
39
42
  }
40
43
  function a(t, n) {
41
44
  return e(`/api/documents/${t}/attachments`, {}, n);
@@ -13,7 +13,7 @@ import { n as ze } from "../../db-ByrlYfaI.js";
13
13
  import { a as Be } from "../../identity-DyWeNzu_.js";
14
14
  import { h as Ve, u as He } from "../../keyboard.svelte-CApmX0vl.js";
15
15
  import { t as Ue } from "../../clipboard-Cgzxc0_R.js";
16
- import { n as We, o as Ge, r as Ke } from "../../attachments-C2DBzU-r.js";
16
+ import { n as We, o as Ge, r as Ke } from "../../attachments-B8AuDjno.js";
17
17
  import { A as S, B as qe, C, D as Je, F as Ye, H as Xe, L as Ze, M as Qe, N as $e, O as w, P as et, S as T, U as E, Y as tt, _ as D, a as nt, b as O, c as rt, ct as k, d as A, et as j, f as M, ft as N, h as P, j as F, k as it, l as I, lt as L, m as R, mt as at, o as ot, p as st, pt as ct, s as lt, st as ut, tt as dt, u as z, v as ft, w as pt, x as mt, y as B, z as V } from "../../awareness-snQ3RD9f.js";
18
18
  import { t as ht } from "../../CreateSnapshotDialog-CXW4sCuf.js";
19
19
  import { _ as gt, a as _t, c as H, d as U, f as W, g as G, h as vt, l as K, m as q, o as yt, p as bt, r as xt, s as St, u as Ct, v as wt } from "../../editorExtensions-BMHvUbdk.js";
@@ -1,2 +1,2 @@
1
- import { t as e } from "../SettingsDialog-DEx1eEZm.js";
1
+ import { t as e } from "../SettingsDialog-Bd_S2RKW.js";
2
2
  export { e as SettingsDialog };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../ShareDialog-uEf8Ks02.js";
1
+ import { t as e } from "../ShareDialog-BC-Jl6v1.js";
2
2
  export { e as ShareDialog };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../Sidebar-BthP-jOS.js";
1
+ import { t as e } from "../Sidebar-BnZgNl_8.js";
2
2
  export { e as Sidebar };
@@ -3,6 +3,7 @@ import { createContext as e } from "svelte";
3
3
  function t(e = {}) {
4
4
  return {
5
5
  sidebarTop: [...e.sidebarTop ?? []],
6
+ sidebarFooterActions: [...e.sidebarFooterActions ?? []],
6
7
  navigation: [...e.navigation ?? []],
7
8
  dashboardWidgets: [...e.dashboardWidgets ?? []],
8
9
  searchWidgets: [...e.searchWidgets ?? []],
@@ -10,6 +11,7 @@ function t(e = {}) {
10
11
  editorActions: [...e.editorActions ?? []],
11
12
  documentMenuActions: [...e.documentMenuActions ?? []],
12
13
  settingsSections: [...e.settingsSections ?? []],
14
+ profileActions: [...e.profileActions ?? []],
13
15
  commandPaletteActions: [...e.commandPaletteActions ?? []],
14
16
  sharedDocumentHeaderActions: [...e.sharedDocumentHeaderActions ?? []],
15
17
  sharedDocumentTabs: [...e.sharedDocumentTabs ?? []],
@@ -18,13 +18,13 @@ import { a as Ne, i as Pe, n as Fe, o as H, r as Ie, t as Le } from "./dialog-Ce
18
18
  import { t as U } from "./label-C2HfJNQ2.js";
19
19
  import { n as Re } from "./client-GbtOH90i.js";
20
20
  import { i as ze } from "./categories-X7gK8azc.js";
21
- import { t as Be } from "./context-KLiM3QQ0.js";
21
+ import { t as Be } from "./context-D0zPFXZ4.js";
22
22
  import { t as Ve } from "./resolve-BG4HgzpN.js";
23
23
  import { a as He, i as Ue, n as We, r as Ge, t as Ke } from "./select-value-JCAp2PmU.js";
24
24
  import { c as qe, i as W, o as Je } from "./documents-CwCs1rA7.js";
25
25
  import { c as Ye, i as Xe, s as G } from "./folders-ONG03Dkv.js";
26
26
  import { t as K } from "./clipboard-Cgzxc0_R.js";
27
- import { t as Ze } from "./ShareDialog-uEf8Ks02.js";
27
+ import { t as Ze } from "./ShareDialog-BC-Jl6v1.js";
28
28
  import { d as Qe, n as $e } from "./subfolders-refresh-store.svelte-B2dKVmgz.js";
29
29
  import { a as et } from "./tag-store.svelte-ogVCMCbv.js";
30
30
  import { t as tt } from "./ConfirmDialog-DgMTQBq4.js";
@@ -1103,7 +1103,7 @@ function $t(e, t) {
1103
1103
  q.delegate(["click", "keydown"]);
1104
1104
  //#endregion
1105
1105
  //#region src/lib/hosts/HiaiDocsDashboardHost.svelte
1106
- var en = q.from_html("<!> <!> <h1 class=\"text-2xl font-semibold tracking-tight truncate svelte-e61um3\"> </h1> <!>", 1), tn = q.from_html("<!> <!> <h1 class=\"text-2xl font-semibold tracking-tight truncate svelte-e61um3\"> </h1>", 1), nn = q.from_html("<div class=\"dashboard-identity flex items-center gap-3\"><div class=\"flex size-10 items-center justify-center rounded-lg bg-primary/10\"><!></div> <div><h1 class=\"text-2xl font-semibold tracking-tight svelte-e61um3\"> </h1> <p class=\"text-sm text-muted-foreground svelte-e61um3\"> </p></div></div>"), rn = q.from_html("<!> <span class=\"dashboard-action-label svelte-e61um3\"> </span>", 1), an = q.from_html("<h2 class=\"mb-3 text-sm font-semibold\"> </h2>"), on = q.from_html("<div class=\"rounded-xl border border-border bg-card p-4\"><!> <!></div>"), sn = q.from_html("<section class=\"mb-8 grid grid-cols-1 gap-4 md:grid-cols-2\" data-hiai-docs-extension-zone=\"dashboard-widgets\" aria-label=\"Dashboard extensions\"></section>"), cn = q.from_html("<span class=\"font-medium text-foreground truncate max-w-[150px]\"> </span>"), ln = q.from_html("<a class=\"hover:text-foreground transition-colors truncate max-w-[150px]\"> </a>"), $ = q.from_html("<!> <!>", 1), un = q.from_html("<nav class=\"mb-6 flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground\" aria-label=\"Breadcrumbs\"><a class=\"hover:text-foreground transition-colors\">Home</a> <!></nav>"), dn = q.from_html("<div class=\"h-9 w-full rounded-md border border-input bg-muted/50 px-3 py-2 text-sm shadow-sm opacity-60 flex items-center select-none\">Inherited from folder</div>"), fn = q.from_html("<span class=\"inline-flex items-center gap-2\"><span class=\"size-2 rounded-full bg-muted-foreground\"></span>All Tags</span>"), pn = q.from_html("<span class=\"inline-flex items-center gap-2\"><span class=\"size-2 rounded-full\"></span> </span>"), mn = q.from_html("<span> </span> <button class=\"text-muted-foreground hover:text-foreground\"><!></button>", 1), hn = q.from_html("<span class=\"size-2 rounded-full\"></span> <span> </span> <button class=\"text-muted-foreground hover:text-foreground\"><!></button>", 1), gn = q.from_html("<div class=\"mb-6 flex flex-wrap items-center gap-2 rounded-xl border border-border bg-muted/30 px-4 py-2 text-sm\"><span class=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">Filters:</span> <!> <!> <!> <button class=\"ml-auto inline-flex items-center gap-1 text-xs font-semibold text-destructive hover:underline\"><!> Clear Filters</button></div>"), _n = q.from_html("<div class=\"flex flex-col items-center justify-center py-20 text-center\"><div class=\"mb-4 flex size-16 items-center justify-center rounded-full bg-muted\"><!></div> <h2 class=\"mb-2 text-lg font-semibold\">Folder is empty</h2> <p class=\"mb-6 max-w-sm text-sm text-muted-foreground\">Create a new document, subfolder, or drag and drop items here to get started.</p></div>"), vn = q.from_html("<div class=\"mb-8\"><h2 class=\"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground\">Subfolders</h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), yn = q.from_html("<div><h2 class=\"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground\"> </h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), bn = q.from_html("<div class=\"flex flex-col items-center justify-center py-20 text-center\"><div class=\"mb-4 flex size-16 items-center justify-center rounded-full bg-muted\"><!></div> <h2 class=\"mb-2 text-lg font-semibold\"> </h2> <p class=\"mb-6 max-w-sm text-sm text-muted-foreground\"> </p></div>"), xn = q.from_html("<!> ", 1), Sn = q.from_html("<section class=\"mb-8\"><div class=\"mb-3 flex items-center gap-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\"><h2> </h2> <!> <!></div> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></section>"), Cn = q.from_html("<div class=\"mt-12 border-t border-border/60 pt-8\"><h2 class=\"mb-4 text-sm font-semibold uppercase tracking-wider text-muted-foreground\"> </h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), wn = q.from_html("<div class=\"dashboard-shell mx-auto max-w-5xl px-6 py-8 svelte-e61um3\"><div class=\"dashboard-header mb-8 flex flex-wrap items-center justify-between gap-4 svelte-e61um3\"><div class=\"dashboard-context-identity flex items-center gap-3 flex-1 min-w-0 svelte-e61um3\"><!></div> <div class=\"dashboard-header-actions ml-auto flex items-center justify-end gap-2 svelte-e61um3\"><input type=\"file\" multiple=\"\" class=\"hidden\"/> <!> <!> <!></div></div> <!> <!> <div class=\"mb-8 grid grid-cols-1 gap-4 rounded-xl border border-border bg-card p-4 sm:grid-cols-2 lg:grid-cols-5\"><div class=\"space-y-1.5\"><!> <input id=\"dash-search\" type=\"text\" placeholder=\"Filter current view...\" class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"/></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div></div> <!> <!></div> <!> <!> <!> <!>", 1);
1106
+ var en = q.from_html("<!> <!> <h1 class=\"text-2xl font-semibold tracking-tight truncate svelte-e61um3\"> </h1> <!>", 1), tn = q.from_html("<!> <!> <h1 class=\"text-2xl font-semibold tracking-tight truncate svelte-e61um3\"> </h1>", 1), nn = q.from_html("<div class=\"dashboard-identity flex items-center gap-3\"><div class=\"flex size-10 items-center justify-center rounded-lg bg-primary/10\"><!></div> <div><h1 class=\"text-2xl font-semibold tracking-tight svelte-e61um3\"> </h1> <p class=\"text-sm text-muted-foreground svelte-e61um3\"> </p></div></div>"), rn = q.from_html("<!> <span class=\"dashboard-action-label svelte-e61um3\"> </span>", 1), an = q.from_html("<h2 class=\"mb-3 text-sm font-semibold\"> </h2>"), on = q.from_html("<div><!> <!></div>"), sn = q.from_html("<section class=\"mb-8 grid grid-cols-1 gap-4 md:grid-cols-2\" data-hiai-docs-extension-zone=\"dashboard-widgets\" aria-label=\"Dashboard extensions\"></section>"), cn = q.from_html("<span class=\"font-medium text-foreground truncate max-w-[150px]\"> </span>"), ln = q.from_html("<a class=\"hover:text-foreground transition-colors truncate max-w-[150px]\"> </a>"), $ = q.from_html("<!> <!>", 1), un = q.from_html("<nav class=\"mb-6 flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground\" aria-label=\"Breadcrumbs\"><a class=\"hover:text-foreground transition-colors\">Home</a> <!></nav>"), dn = q.from_html("<div class=\"h-9 w-full rounded-md border border-input bg-muted/50 px-3 py-2 text-sm shadow-sm opacity-60 flex items-center select-none\">Inherited from folder</div>"), fn = q.from_html("<span class=\"inline-flex items-center gap-2\"><span class=\"size-2 rounded-full bg-muted-foreground\"></span>All Tags</span>"), pn = q.from_html("<span class=\"inline-flex items-center gap-2\"><span class=\"size-2 rounded-full\"></span> </span>"), mn = q.from_html("<span> </span> <button class=\"text-muted-foreground hover:text-foreground\"><!></button>", 1), hn = q.from_html("<span class=\"size-2 rounded-full\"></span> <span> </span> <button class=\"text-muted-foreground hover:text-foreground\"><!></button>", 1), gn = q.from_html("<div class=\"mb-6 flex flex-wrap items-center gap-2 rounded-xl border border-border bg-muted/30 px-4 py-2 text-sm\"><span class=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">Filters:</span> <!> <!> <!> <button class=\"ml-auto inline-flex items-center gap-1 text-xs font-semibold text-destructive hover:underline\"><!> Clear Filters</button></div>"), _n = q.from_html("<div class=\"flex flex-col items-center justify-center py-20 text-center\"><div class=\"mb-4 flex size-16 items-center justify-center rounded-full bg-muted\"><!></div> <h2 class=\"mb-2 text-lg font-semibold\">Folder is empty</h2> <p class=\"mb-6 max-w-sm text-sm text-muted-foreground\">Create a new document, subfolder, or drag and drop items here to get started.</p></div>"), vn = q.from_html("<div class=\"mb-8\"><h2 class=\"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground\">Subfolders</h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), yn = q.from_html("<div><h2 class=\"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground\"> </h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), bn = q.from_html("<div class=\"flex flex-col items-center justify-center py-20 text-center\"><div class=\"mb-4 flex size-16 items-center justify-center rounded-full bg-muted\"><!></div> <h2 class=\"mb-2 text-lg font-semibold\"> </h2> <p class=\"mb-6 max-w-sm text-sm text-muted-foreground\"> </p></div>"), xn = q.from_html("<!> ", 1), Sn = q.from_html("<section class=\"mb-8\"><div class=\"mb-3 flex items-center gap-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\"><h2> </h2> <!> <!></div> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></section>"), Cn = q.from_html("<div class=\"mt-12 border-t border-border/60 pt-8\"><h2 class=\"mb-4 text-sm font-semibold uppercase tracking-wider text-muted-foreground\"> </h2> <div class=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\"></div></div>"), wn = q.from_html("<div class=\"dashboard-shell mx-auto max-w-5xl px-6 py-8 svelte-e61um3\"><div class=\"dashboard-header mb-8 flex flex-wrap items-center justify-between gap-4 svelte-e61um3\"><div class=\"dashboard-context-identity flex items-center gap-3 flex-1 min-w-0 svelte-e61um3\"><!></div> <div class=\"dashboard-header-actions ml-auto flex items-center justify-end gap-2 svelte-e61um3\"><input type=\"file\" multiple=\"\" class=\"hidden\"/> <!> <!> <!></div></div> <!> <!> <div class=\"mb-8 grid grid-cols-1 gap-4 rounded-xl border border-border bg-card p-4 sm:grid-cols-2 lg:grid-cols-5\"><div class=\"space-y-1.5\"><!> <input id=\"dash-search\" type=\"text\" placeholder=\"Filter current view...\" class=\"h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"/></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div> <div class=\"space-y-1.5\"><!> <!></div></div> <!> <!></div> <!> <!> <!> <!>", 1);
1107
1107
  function Tn(e, a) {
1108
1108
  q.push(a, !0);
1109
1109
  let c = {
@@ -1211,6 +1211,10 @@ function Tn(e, a) {
1211
1211
  }
1212
1212
  }
1213
1213
  function Ie() {
1214
+ if (l().capabilities?.["docsmint.import.manager"]) {
1215
+ B(y, "/organize");
1216
+ return;
1217
+ }
1214
1218
  q.get(ye)?.click();
1215
1219
  }
1216
1220
  async function Le(e) {
@@ -1533,7 +1537,9 @@ function Tn(e, a) {
1533
1537
  t(e, { get userId() {
1534
1538
  return l().userId;
1535
1539
  } });
1536
- }), q.reset(r), q.template_effect(() => q.set_attribute(r, "data-hiai-docs-extension-id", q.get(t).id)), q.append(e, r);
1540
+ }), q.reset(r), q.template_effect(() => {
1541
+ q.set_class(r, 1, q.clsx([q.get(t).chrome === !1 ? "contents" : "rounded-xl border border-border bg-card p-4", q.get(t).colSpan === 12 && "md:col-span-2"])), q.set_attribute(r, "data-hiai-docs-extension-id", q.get(t).id);
1542
+ }), q.append(e, r);
1537
1543
  }), q.reset(t), q.append(e, t);
1538
1544
  };
1539
1545
  q.if(St, (e) => {
@@ -11,8 +11,9 @@ export interface DocTabPanelProps { documentId: string; content: string; content
11
11
  export interface DocTabDefinition { id: string; label: string; component: Component<DocTabPanelProps>; order?: number; icon?: ExtensionIcon; disabled?: boolean; }
12
12
  export interface NavigationExtension { id: string; label: string; href?: string; icon?: ExtensionIcon; order?: number; badge?: string | number; disabled?: boolean; visible?: ExtensionVisibility; }
13
13
  export interface SidebarTopExtension { id: string; component: Component<{ collapsed: boolean }>; order?: number; visible?: ExtensionVisibility; }
14
+ export interface SidebarFooterActionExtension { id: string; component: Component<{ collapsed: boolean }>; order?: number; visible?: ExtensionVisibility; }
14
15
  export interface DashboardWidgetProps { userId?: string; }
15
- export interface DashboardWidgetExtension { id: string; title?: string; component: Component<DashboardWidgetProps>; order?: number; colSpan?: 1 | 2 | 3 | 4 | 6 | 12; visible?: ExtensionVisibility; }
16
+ export interface DashboardWidgetExtension { id: string; title?: string; component: Component<DashboardWidgetProps>; order?: number; colSpan?: 1 | 2 | 3 | 4 | 6 | 12; chrome?: boolean; visible?: ExtensionVisibility; }
16
17
  export interface SearchWidgetProps { query: string; loading: boolean; total?: number; }
17
18
  export interface SearchWidgetExtension { id: string; title?: string; component: Component<SearchWidgetProps>; order?: number; visible?: ExtensionVisibility; }
18
19
  export interface EditorActionContext { documentId: string; content: string; contentJson: object | undefined; selection?: unknown; commands?: Readonly<Record<string, (...args: unknown[]) => unknown>>; }
@@ -29,7 +30,7 @@ export interface CommandPaletteActionExtension { id: string; label: string; keyw
29
30
  export interface SharedDocumentExtensionCapability { id: string; expiresAt: string; }
30
31
  export interface SharedDocumentExtensionContext { documentId: string; title: string; content: string; contentJson?: object; role: "viewer" | "commenter" | "editor"; capability: SharedDocumentExtensionCapability; permissions: { read: true; annotate: boolean; edit: boolean; export: boolean; }; }
31
32
  export interface SharedDocumentExtension { id: string; label: string; icon?: ExtensionIcon; order?: number; permission: "annotate" | "edit"; visible?: (context: SharedDocumentExtensionContext) => boolean; component: Component<{ context: SharedDocumentExtensionContext }>; }
32
- export interface DocsmintFrontendExtensions { sidebarTop: readonly SidebarTopExtension[]; navigation: readonly NavigationExtension[]; dashboardWidgets: readonly DashboardWidgetExtension[]; searchWidgets: readonly SearchWidgetExtension[]; documentTabs: readonly DocTabDefinition[]; editorActions: readonly EditorActionExtension[]; documentMenuActions: readonly DocumentMenuActionExtension[]; settingsSections: readonly SettingsSectionExtension[]; commandPaletteActions: readonly CommandPaletteActionExtension[]; sharedDocumentHeaderActions: readonly SharedDocumentExtension[]; sharedDocumentTabs: readonly SharedDocumentExtension[]; sharedDocumentNotesModes: readonly SharedDocumentExtension[]; sharedDocumentEditorModes: readonly SharedDocumentExtension[]; }
33
+ export interface DocsmintFrontendExtensions { sidebarTop: readonly SidebarTopExtension[]; sidebarFooterActions: readonly SidebarFooterActionExtension[]; navigation: readonly NavigationExtension[]; dashboardWidgets: readonly DashboardWidgetExtension[]; searchWidgets: readonly SearchWidgetExtension[]; documentTabs: readonly DocTabDefinition[]; editorActions: readonly EditorActionExtension[]; documentMenuActions: readonly DocumentMenuActionExtension[]; settingsSections: readonly SettingsSectionExtension[]; profileActions: readonly SettingsSectionExtension[]; commandPaletteActions: readonly CommandPaletteActionExtension[]; sharedDocumentHeaderActions: readonly SharedDocumentExtension[]; sharedDocumentTabs: readonly SharedDocumentExtension[]; sharedDocumentNotesModes: readonly SharedDocumentExtension[]; sharedDocumentEditorModes: readonly SharedDocumentExtension[]; }
33
34
  /** @deprecated Use DocsmintFrontendExtensions. */
34
35
  export type HiaiDocsFrontendExtensions = DocsmintFrontendExtensions;
35
36
  export type FrontendExtensions = DocsmintFrontendExtensions;
@@ -1,2 +1,2 @@
1
- import { t as e } from "./HiaiDocsExtensionProvider-CMiTXi2J.js";
1
+ import { t as e } from "./HiaiDocsExtensionProvider-OSn96BBw.js";
2
2
  export { e as DocsmintExtensionProvider };
@@ -1,2 +1,2 @@
1
- .editor-settings.svelte-1eaqpj summary:where(.svelte-1eaqpj){list-style:none}.editor-settings.svelte-1eaqpj summary:where(.svelte-1eaqpj)::-webkit-details-marker{display:none}.editor-settings-chevron.svelte-1eaqpj{font-size:20px;transition:transform .18s}.editor-settings[open].svelte-1eaqpj .editor-settings-chevron:where(.svelte-1eaqpj){transform:rotate(180deg)}.preference-switch.svelte-1eaqpj{border:1px solid var(--border);background:var(--muted);cursor:pointer;border-radius:999px;flex:none;width:42px;height:24px;padding:2px;transition:background .18s,border-color .18s;position:relative}.preference-switch.svelte-1eaqpj span:where(.svelte-1eaqpj){background:var(--background);border-radius:999px;width:18px;height:18px;transition:transform .18s;display:block;box-shadow:0 1px 3px #00000038}.preference-switch.enabled.svelte-1eaqpj{border-color:var(--primary);background:var(--primary)}.preference-switch.enabled.svelte-1eaqpj span:where(.svelte-1eaqpj){transform:translate(18px)}.preference-switch.svelte-1eaqpj:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.preference-switch.svelte-1eaqpj:disabled{cursor:not-allowed;opacity:.45}[data-select-viewport],[data-combobox-viewport]{scrollbar-width:none!important;-ms-overflow-style:none!important;-webkit-overflow-scrolling:touch!important}[data-combobox-viewport]::-webkit-scrollbar{display:none!important}[data-select-viewport]::-webkit-scrollbar{display:none!important}.link-dialog-body.svelte-1cfbs6u{flex-direction:column;gap:.5rem;padding:0 0 1rem;display:flex}.link-dialog-label.svelte-1cfbs6u{color:var(--foreground);font-size:.875rem;font-weight:500}.toolbar.svelte-vm4iq2{border-bottom:1px solid var(--border);background:var(--card);z-index:var(--layer-chrome);border-radius:7px 7px 0 0;flex-wrap:wrap;align-items:center;gap:1px;padding:6px 10px;display:flex;position:sticky;top:0}.toolbar-divider.svelte-vm4iq2{background:var(--border);width:1px;height:18px;margin:0 2px}.toolbar-btn.svelte-vm4iq2{min-width:34px;min-height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.toolbar-btn.svelte-vm4iq2:hover:not(:disabled){background:var(--accent);color:var(--accent-foreground)}.toolbar-btn.active.svelte-vm4iq2{background:var(--primary);color:var(--primary-foreground)}.toolbar-btn.svelte-vm4iq2:disabled{opacity:.4;cursor:not-allowed}.dropdown.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.dropdown-trigger.svelte-vm4iq2{gap:2px;padding:0 6px}.dropdown-chevron{opacity:.6}.dropdown-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.dropdown-item.svelte-vm4iq2{min-height:32px;color:var(--popover-foreground);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:10px;padding:6px 10px;font-size:.875rem;transition:background .1s;display:inline-flex}.dropdown-item.svelte-vm4iq2:hover{background:var(--accent);color:var(--accent-foreground)}.dropdown-item.selected.svelte-vm4iq2{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--foreground)}.highlight-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.highlight-btn.svelte-vm4iq2{position:relative}.highlight-dot.svelte-vm4iq2{border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:50%;width:8px;height:8px;transition:opacity .15s,transform .15s;position:absolute;bottom:6px;right:6px;transform:scale(.6)}.highlight-dot.visible.svelte-vm4iq2{opacity:1;transform:scale(1)}.highlight-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;min-width:180px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.highlight-swatch-grid.svelte-vm4iq2{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.highlight-swatch.svelte-vm4iq2{border:1px solid var(--border);cursor:pointer;border-radius:6px;width:28px;height:28px;padding:0;transition:transform .1s,box-shadow .1s}.highlight-swatch.svelte-vm4iq2:hover{box-shadow:0 0 0 2px var(--ring);transform:scale(1.08)}.highlight-swatch.selected.svelte-vm4iq2{box-shadow:0 0 0 2px var(--ring)}.dark .highlight-picker.svelte-vm4iq2 .highlight-swatch:where(.svelte-vm4iq2),.dark .highlight-picker.svelte-vm4iq2 .highlight-dot:where(.svelte-vm4iq2){background-blend-mode:multiply;background-image:linear-gradient(#0000009e,#0000009e)}.highlight-clear.svelte-vm4iq2{color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:.75rem;display:inline-flex}.highlight-clear.svelte-vm4iq2:hover{background:var(--accent);color:var(--accent-foreground)}.visually-hidden-file-input.svelte-vm4iq2{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.image-btn.uploading.svelte-vm4iq2{color:var(--ring)}.image-btn.svelte-vm4iq2:disabled:not(.uploading){opacity:.4;cursor:not-allowed}@keyframes svelte-vm4iq2-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-btn.svelte-vm4iq2 .animate-spin{animation:1s linear infinite svelte-vm4iq2-spin}.image-error.svelte-vm4iq2{background:color-mix(in srgb, var(--destructive) 10%, transparent);color:var(--destructive);border-bottom:1px solid color-mix(in srgb, var(--destructive) 20%, transparent);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.image-error-dismiss.svelte-vm4iq2{color:var(--destructive);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.emoji-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.emoji-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;min-width:220px;padding:8px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.emoji-grid.svelte-vm4iq2{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.emoji-button.svelte-vm4iq2{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.25rem;line-height:1;transition:background .1s,transform .1s;display:inline-flex}.emoji-button.svelte-vm4iq2:hover{background:var(--accent);transform:scale(1.08)}.emoji-button.svelte-vm4iq2:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.table-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.table-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.table-grid.svelte-vm4iq2{grid-template-columns:repeat(8,18px);grid-auto-rows:18px;gap:3px;display:grid}.table-cell.svelte-vm4iq2{border:1px solid var(--border);background:var(--background);cursor:pointer;border-radius:3px;width:18px;height:18px;padding:0;transition:background 80ms,border-color 80ms}.table-cell.svelte-vm4iq2:hover{border-color:var(--primary)}.table-cell.active.svelte-vm4iq2{background:color-mix(in srgb, var(--primary) 35%, transparent);border-color:var(--primary)}.table-grid-label.svelte-vm4iq2{text-align:center;color:var(--muted-foreground);margin-top:8px;font-size:.75rem}.table-actions-popover.svelte-vm4iq2{width:min(280px,100vw - 24px);padding:6px}.table-action-group.svelte-vm4iq2{grid-template-columns:1fr;gap:2px;padding:4px 0;display:grid}.table-action-group.svelte-vm4iq2+.table-action-group:where(.svelte-vm4iq2){border-top:1px solid var(--border)}.table-action-heading.svelte-vm4iq2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);padding:4px 8px 2px;font-size:.6875rem;font-weight:600}.table-action.svelte-vm4iq2{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:7px 8px;font-size:.8125rem}.table-action.svelte-vm4iq2:hover:not(:disabled),.table-action.svelte-vm4iq2:focus-visible{background:var(--accent);outline:none}.table-action.svelte-vm4iq2:focus-visible{box-shadow:0 0 0 2px var(--ring)}.table-action.svelte-vm4iq2:disabled{color:var(--muted-foreground);opacity:.45;cursor:not-allowed}.table-danger-action.svelte-vm4iq2{color:var(--destructive)}.table-danger-action.svelte-vm4iq2:hover:not(:disabled){background:color-mix(in srgb, var(--destructive) 12%, transparent)}.copy-btn.copied.svelte-vm4iq2{color:var(--primary)}.snapshot-btn.svelte-vm4iq2{color:var(--muted-foreground)}.toolbar.floating-bar.svelte-vm4iq2{z-index:var(--layer-popover);background:color-mix(in srgb, var(--background) 95%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:0 10px 25px -5px #00000026, 0 8px 10px -6px #00000026, 0 0 0 1px var(--border);border-radius:12px;width:max-content;max-width:90vw;padding:10px 14px;animation:.2s ease-out svelte-vm4iq2-floatUp;position:fixed;top:auto;bottom:24px;left:50%;overflow:visible;transform:translate(-50%)}@media (width<=640px){.toolbar.floating-bar.svelte-vm4iq2{left:8px;right:8px;bottom:max(10px, env(safe-area-inset-bottom));border-radius:10px;width:auto;max-width:none;padding:8px;transform:none}.floating-toolbar-layout.svelte-vm4iq2{flex-flow:wrap;align-items:center;gap:4px;max-height:min(42vh,260px);padding-right:34px;display:flex;overflow-y:auto}.floating-toolbar-row.svelte-vm4iq2{display:contents}.floating-toolbar-spacer.svelte-vm4iq2{display:none}.floating-toolbar-close.svelte-vm4iq2{margin-left:0;position:absolute;top:6px;right:6px}.floating-toolbar-row-secondary.svelte-vm4iq2{display:contents}}.dropdown-popover.open-up.svelte-vm4iq2,.highlight-popover.open-up.svelte-vm4iq2,.emoji-popover.open-up.svelte-vm4iq2,.table-popover.open-up.svelte-vm4iq2{top:auto;bottom:calc(100% + 6px)}.dropdown-popover.open-left.svelte-vm4iq2,.highlight-popover.open-left.svelte-vm4iq2,.emoji-popover.open-left.svelte-vm4iq2,.table-popover.open-left.svelte-vm4iq2{left:auto;right:0}@keyframes svelte-vm4iq2-floatUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.editor-wrapper.svelte-9hjz5q{flex-direction:column;flex:1;min-height:0;display:flex}.editor-content.svelte-9hjz5q{flex:1;padding:24px;position:relative;overflow-y:auto}.editor-content.deferred-loading.svelte-9hjz5q{min-height:320px}.large-document-loader.svelte-9hjz5q{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--background) 94%, transparent);pointer-events:none;border-radius:12px;padding:20px;position:absolute;inset:24px}.large-document-loader-heading.svelte-9hjz5q{color:var(--muted-foreground);align-items:center;gap:10px;font-size:.875rem;font-weight:500;display:flex}.large-document-spinner.svelte-9hjz5q{border:2px solid var(--border);border-top-color:var(--primary);border-radius:999px;width:18px;height:18px;animation:.8s linear infinite svelte-9hjz5q-large-document-spin}.large-document-loader-lines.svelte-9hjz5q{gap:12px;margin-top:28px;display:grid}.large-document-loader-lines.svelte-9hjz5q span:where(.svelte-9hjz5q){background:linear-gradient(90deg, var(--muted) 20%, color-mix(in srgb, var(--muted) 55%, var(--background)) 50%, var(--muted) 80%);background-size:220% 100%;border-radius:999px;height:12px;animation:1.35s ease-in-out infinite svelte-9hjz5q-large-document-shimmer;display:block}@keyframes svelte-9hjz5q-large-document-spin{to{transform:rotate(360deg)}}@keyframes svelte-9hjz5q-large-document-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.large-document-spinner.svelte-9hjz5q,.large-document-loader-lines.svelte-9hjz5q span:where(.svelte-9hjz5q){animation:none}}.editor-content.svelte-9hjz5q .tiptap{min-height:300px;color:var(--foreground);outline:none;font-size:16px;line-height:1.7}.editor-content.svelte-9hjz5q .tiptap:focus-visible{outline:none}.editor-content.svelte-9hjz5q .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--muted-foreground);pointer-events:none;height:0}.editor-content.svelte-9hjz5q .tiptap h1{letter-spacing:-.025em;margin:1.5rem 0 .75rem;font-size:2rem;font-weight:800}.editor-content.svelte-9hjz5q .tiptap h2{letter-spacing:-.02em;margin:1.25rem 0 .5rem;font-size:1.5rem;font-weight:700}.editor-content.svelte-9hjz5q .tiptap h3{margin:1rem 0 .5rem;font-size:1.25rem;font-weight:600}.editor-content.svelte-9hjz5q .tiptap p{margin:.5rem 0}.editor-content.svelte-9hjz5q .tiptap ul:not([data-type=taskList]){margin:.5rem 0;padding-left:1.5rem;list-style-type:disc}.editor-content.svelte-9hjz5q .tiptap ol{margin:.5rem 0;padding-left:1.5rem;list-style-type:decimal}.editor-content.svelte-9hjz5q .tiptap li{margin:.25rem 0;display:list-item}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList]{padding-left:.25rem;list-style:none}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li{align-items:flex-start;gap:.5rem;display:flex}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:1.7em;margin:0;display:flex}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>div{flex:auto;min-width:0}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>div>p{margin:0}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.editor-content.svelte-9hjz5q .tiptap blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin:.75rem 0;padding-left:1rem;font-style:italic}.editor-content.svelte-9hjz5q .tiptap code{background:var(--muted);border-radius:4px;padding:.125rem .375rem;font-family:Fira Code,Consolas,monospace;font-size:.875rem}.editor-content.svelte-9hjz5q .tiptap pre{background:var(--muted);color:var(--foreground);border:1px solid var(--border);border-radius:8px;margin:.75rem 0;padding:1rem;font-family:Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;overflow-x:auto}.editor-content.svelte-9hjz5q .tiptap pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.editor-content.svelte-9hjz5q .tiptap pre .hljs-keyword{color:var(--hljs-keyword)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-string{color:var(--hljs-string)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-number{color:var(--hljs-number)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-function{color:var(--hljs-function)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-title{color:var(--hljs-title)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-comment{color:var(--hljs-comment);font-style:italic}.editor-content.svelte-9hjz5q .tiptap pre .hljs-built_in{color:var(--hljs-built_in)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-type{color:var(--hljs-type)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-attr{color:var(--hljs-attr)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-variable{color:var(--hljs-variable)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-literal{color:var(--hljs-literal)}.editor-content.svelte-9hjz5q .tiptap hr{border:none;border-top:2px solid var(--border);margin:1.5rem 0}.editor-content.svelte-9hjz5q .tiptap table{border-collapse:collapse;table-layout:fixed;width:100%;margin:.75rem 0;overflow:hidden}.editor-content.svelte-9hjz5q .tiptap th,.editor-content.svelte-9hjz5q .tiptap td{border:1px solid var(--border);vertical-align:top;text-align:left;min-width:3rem;padding:.4rem .6rem}.editor-content.svelte-9hjz5q .tiptap th{background:var(--muted);font-weight:600}.editor-content.svelte-9hjz5q .tiptap .selectedCell:after{content:"";background:color-mix(in srgb, var(--primary) 16%, transparent);pointer-events:none;position:absolute;inset:0}.editor-content.svelte-9hjz5q .tiptap td,.editor-content.svelte-9hjz5q .tiptap th{position:relative}.editor-content.svelte-9hjz5q .tiptap .column-resize-handle{background:var(--primary);cursor:col-resize;width:4px;position:absolute;top:0;bottom:0;right:-2px}.editor-content.svelte-9hjz5q .tiptap .doc-link{color:var(--primary);cursor:pointer;text-decoration:underline}.editor-content.svelte-9hjz5q .tiptap [data-resize-container][data-node=image]{max-width:100%;margin:.75rem 0}.editor-content.svelte-9hjz5q .tiptap [data-resize-wrapper]>.doc-image{border-radius:.5rem;max-width:100%;height:auto;display:block}.editor-content.svelte-9hjz5q .tiptap [data-resize-wrapper]{max-width:100%}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle]{border:2px solid var(--background);background:var(--primary);width:12px;height:12px;box-shadow:0 1px 4px color-mix(in srgb, var(--foreground) 25%, transparent);opacity:0;border-radius:9999px;transition:opacity .12s}.editor-content.svelte-9hjz5q .tiptap .ProseMirror-selectednode [data-resize-handle],.editor-content.svelte-9hjz5q .tiptap [data-resize-state=true] [data-resize-handle]{opacity:1}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-right]{cursor:nwse-resize;transform:translate(50%,50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-left]{cursor:nesw-resize;transform:translate(-50%,50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right]{transform:translate(var(--image-handle-x,50%), -50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-right]{--image-handle-x:50%}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-left]{--image-handle-x:-50%}.editor-content.svelte-9hjz5q .tiptap mark{background-color:var(--highlight-default,#fde68a);border-radius:2px;padding:0 2px}.dark .editor-content.svelte-9hjz5q .tiptap mark{background-blend-mode:multiply;color:#fff;background-image:linear-gradient(#0000009e,#0000009e)}.editor-skeleton.svelte-9hjz5q{flex-direction:column;flex:1;display:flex}.skeleton-toolbar.svelte-9hjz5q{border-bottom:1px solid var(--border);gap:6px;padding:8px 12px;display:flex}.skeleton-icon.svelte-9hjz5q{background:var(--muted);border-radius:6px;width:32px;height:32px;animation:1.5s ease-in-out infinite svelte-9hjz5q-pulse}.skeleton-body.svelte-9hjz5q{flex-direction:column;gap:12px;padding:24px;display:flex}.skeleton-bar.svelte-9hjz5q{background:var(--muted);border-radius:4px;height:16px;animation:1.5s ease-in-out infinite svelte-9hjz5q-pulse}@keyframes svelte-9hjz5q-pulse{0%,to{opacity:1}50%{opacity:.4}}.title-input.svelte-vc365t{color:var(--foreground);background:0 0;border:none;border-bottom:2px solid #0000;outline:none;width:100%;margin-bottom:8px;padding:0 0 4px;font-size:2rem;font-weight:700;transition:border-color .15s}.title-input.svelte-vc365t::placeholder{color:var(--muted-foreground)}.title-input.focused.svelte-vc365t{border-bottom-color:var(--ring)}.title-input.svelte-vc365t:hover:not(.focused){border-bottom-color:var(--border)}.markdown-toggle.svelte-1k98zvf{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.copy-btn.svelte-1k98zvf{z-index:10;border:1px solid var(--border);background:color-mix(in srgb, var(--card) 85%, transparent);color:var(--muted-foreground);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex;position:absolute;top:12px;right:24px;box-shadow:0 2px 8px #0000000d}.copy-btn.svelte-1k98zvf:hover{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent)}.copy-btn.svelte-1k98zvf:active{transform:scale(.96)}.markdown-textarea.svelte-1k98zvf{box-sizing:border-box;resize:vertical;width:100%;height:100%;min-height:0;color:var(--foreground);background:var(--muted);tab-size:4;border:none;border-radius:8px;outline:none;flex:none;padding:56px 24px 24px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:14px;line-height:1.7;transition:background .15s;display:block;overflow-y:hidden}.markdown-textarea.svelte-1k98zvf::placeholder{color:var(--muted-foreground)}.markdown-textarea.svelte-1k98zvf:focus{background:var(--background)}.datepicker.svelte-zmry26{position:relative}.dp-trigger.svelte-zmry26{border:1px solid var(--input);width:100%;height:2.25rem;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 .625rem;font-size:.875rem;display:inline-flex}.dp-trigger.svelte-zmry26:focus-visible{box-shadow:0 0 0 1px var(--ring);outline:none}.dp-placeholder.svelte-zmry26{color:var(--muted-foreground)}.dp-popover.svelte-zmry26{z-index:var(--layer-popover);background:var(--popover);width:16rem;color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 16px #0000002e}.dp-header.svelte-zmry26{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.dp-title.svelte-zmry26{font-size:.8125rem;font-weight:600}.dp-nav.svelte-zmry26{width:1.75rem;height:1.75rem;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.dp-nav.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dp-weekdays.svelte-zmry26,.dp-grid.svelte-zmry26{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dp-weekday.svelte-zmry26{text-align:center;color:var(--muted-foreground);padding:2px 0;font-size:.6875rem}.dp-empty.svelte-zmry26{aspect-ratio:1}.dp-day.svelte-zmry26{aspect-ratio:1;color:var(--foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:.8125rem;display:inline-flex}.dp-day.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dp-day.today.svelte-zmry26{box-shadow:inset 0 0 0 1px var(--ring)}.dp-day.selected.svelte-zmry26,.dp-day.selected.svelte-zmry26:hover{background:var(--primary);color:var(--primary-foreground)}.dp-clear.svelte-zmry26{width:100%;color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;margin-top:6px;padding:4px 0;font-size:.75rem}.dp-clear.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dashboard-shell.svelte-e61um3{position:relative}@media (width<=767px){.dashboard-header.svelte-e61um3{min-height:44px}.dashboard-header-actions.svelte-e61um3{top:calc(.75rem + env(safe-area-inset-top));z-index:10;position:absolute;right:.75rem}.dashboard-context-identity.svelte-e61um3{min-width:0;margin-left:56px}}@media (width<=520px){.dashboard-header-actions.svelte-e61um3 button{width:40px;height:40px;padding:0}.dashboard-action-label.svelte-e61um3{display:none}}@media (width<=449px){.dashboard-context-identity.svelte-e61um3{margin-left:52px}.dashboard-context-identity.svelte-e61um3 p:where(.svelte-e61um3){display:none}.dashboard-context-identity.svelte-e61um3 h1:where(.svelte-e61um3){font-size:1.25rem}}@media (width<=767px){.search-form.svelte-itf76n{margin-left:56px}}@media (width<=420px){.search-form.svelte-itf76n{margin-left:52px}}
1
+ .editor-settings.svelte-1eaqpj summary:where(.svelte-1eaqpj){list-style:none}.editor-settings.svelte-1eaqpj summary:where(.svelte-1eaqpj)::-webkit-details-marker{display:none}.editor-settings-chevron.svelte-1eaqpj{font-size:20px;transition:transform .18s}.editor-settings[open].svelte-1eaqpj .editor-settings-chevron:where(.svelte-1eaqpj){transform:rotate(180deg)}.preference-switch.svelte-1eaqpj{border:1px solid var(--border);background:var(--muted);cursor:pointer;border-radius:999px;flex:none;width:42px;height:24px;padding:2px;transition:background .18s,border-color .18s;position:relative}.preference-switch.svelte-1eaqpj span:where(.svelte-1eaqpj){background:var(--background);border-radius:999px;width:18px;height:18px;transition:transform .18s;display:block;box-shadow:0 1px 3px #00000038}.preference-switch.enabled.svelte-1eaqpj{border-color:var(--primary);background:var(--primary)}.preference-switch.enabled.svelte-1eaqpj span:where(.svelte-1eaqpj){transform:translate(18px)}.preference-switch.svelte-1eaqpj:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.preference-switch.svelte-1eaqpj:disabled{cursor:not-allowed;opacity:.45}[data-select-viewport],[data-combobox-viewport]{scrollbar-width:none!important;-ms-overflow-style:none!important;-webkit-overflow-scrolling:touch!important}[data-combobox-viewport]::-webkit-scrollbar{display:none!important}[data-select-viewport]::-webkit-scrollbar{display:none!important}:root{--layer-chrome:30;--layer-panel:100;--layer-popover:200;--layer-modal:1000}.link-dialog-body.svelte-1cfbs6u{flex-direction:column;gap:.5rem;padding:0 0 1rem;display:flex}.link-dialog-label.svelte-1cfbs6u{color:var(--foreground);font-size:.875rem;font-weight:500}.toolbar.svelte-vm4iq2{border-bottom:1px solid var(--border);background:var(--card);z-index:var(--layer-chrome);border-radius:7px 7px 0 0;flex-wrap:wrap;align-items:center;gap:1px;padding:6px 10px;display:flex;position:sticky;top:0}.toolbar-divider.svelte-vm4iq2{background:var(--border);width:1px;height:18px;margin:0 2px}.toolbar-btn.svelte-vm4iq2{min-width:34px;min-height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.toolbar-btn.svelte-vm4iq2:hover:not(:disabled){background:var(--accent);color:var(--accent-foreground)}.toolbar-btn.active.svelte-vm4iq2{background:var(--primary);color:var(--primary-foreground)}.toolbar-btn.svelte-vm4iq2:disabled{opacity:.4;cursor:not-allowed}.dropdown.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.dropdown-trigger.svelte-vm4iq2{gap:2px;padding:0 6px}.dropdown-chevron{opacity:.6}.dropdown-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.dropdown-item.svelte-vm4iq2{min-height:32px;color:var(--popover-foreground);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:10px;padding:6px 10px;font-size:.875rem;transition:background .1s;display:inline-flex}.dropdown-item.svelte-vm4iq2:hover{background:var(--accent);color:var(--accent-foreground)}.dropdown-item.selected.svelte-vm4iq2{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--foreground)}.highlight-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.highlight-btn.svelte-vm4iq2{position:relative}.highlight-dot.svelte-vm4iq2{border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:50%;width:8px;height:8px;transition:opacity .15s,transform .15s;position:absolute;bottom:6px;right:6px;transform:scale(.6)}.highlight-dot.visible.svelte-vm4iq2{opacity:1;transform:scale(1)}.highlight-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;min-width:180px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.highlight-swatch-grid.svelte-vm4iq2{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.highlight-swatch.svelte-vm4iq2{border:1px solid var(--border);cursor:pointer;border-radius:6px;width:28px;height:28px;padding:0;transition:transform .1s,box-shadow .1s}.highlight-swatch.svelte-vm4iq2:hover{box-shadow:0 0 0 2px var(--ring);transform:scale(1.08)}.highlight-swatch.selected.svelte-vm4iq2{box-shadow:0 0 0 2px var(--ring)}.dark .highlight-picker.svelte-vm4iq2 .highlight-swatch:where(.svelte-vm4iq2),.dark .highlight-picker.svelte-vm4iq2 .highlight-dot:where(.svelte-vm4iq2){background-blend-mode:multiply;background-image:linear-gradient(#0000009e,#0000009e)}.highlight-clear.svelte-vm4iq2{color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:.75rem;display:inline-flex}.highlight-clear.svelte-vm4iq2:hover{background:var(--accent);color:var(--accent-foreground)}.visually-hidden-file-input.svelte-vm4iq2{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.image-btn.uploading.svelte-vm4iq2{color:var(--ring)}.image-btn.svelte-vm4iq2:disabled:not(.uploading){opacity:.4;cursor:not-allowed}@keyframes svelte-vm4iq2-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-btn.svelte-vm4iq2 .animate-spin{animation:1s linear infinite svelte-vm4iq2-spin}.image-error.svelte-vm4iq2{background:color-mix(in srgb, var(--destructive) 10%, transparent);color:var(--destructive);border-bottom:1px solid color-mix(in srgb, var(--destructive) 20%, transparent);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.image-error-dismiss.svelte-vm4iq2{color:var(--destructive);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.emoji-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.emoji-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;min-width:220px;padding:8px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.emoji-grid.svelte-vm4iq2{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.emoji-button.svelte-vm4iq2{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.25rem;line-height:1;transition:background .1s,transform .1s;display:inline-flex}.emoji-button.svelte-vm4iq2:hover{background:var(--accent);transform:scale(1.08)}.emoji-button.svelte-vm4iq2:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.table-picker.svelte-vm4iq2{justify-content:center;align-items:center;display:inline-flex;position:relative}.table-popover.svelte-vm4iq2{z-index:var(--layer-popover);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001a}.table-grid.svelte-vm4iq2{grid-template-columns:repeat(8,18px);grid-auto-rows:18px;gap:3px;display:grid}.table-cell.svelte-vm4iq2{border:1px solid var(--border);background:var(--background);cursor:pointer;border-radius:3px;width:18px;height:18px;padding:0;transition:background 80ms,border-color 80ms}.table-cell.svelte-vm4iq2:hover{border-color:var(--primary)}.table-cell.active.svelte-vm4iq2{background:color-mix(in srgb, var(--primary) 35%, transparent);border-color:var(--primary)}.table-grid-label.svelte-vm4iq2{text-align:center;color:var(--muted-foreground);margin-top:8px;font-size:.75rem}.table-actions-popover.svelte-vm4iq2{width:min(280px,100vw - 24px);padding:6px}.table-action-group.svelte-vm4iq2{grid-template-columns:1fr;gap:2px;padding:4px 0;display:grid}.table-action-group.svelte-vm4iq2+.table-action-group:where(.svelte-vm4iq2){border-top:1px solid var(--border)}.table-action-heading.svelte-vm4iq2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);padding:4px 8px 2px;font-size:.6875rem;font-weight:600}.table-action.svelte-vm4iq2{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:7px 8px;font-size:.8125rem}.table-action.svelte-vm4iq2:hover:not(:disabled),.table-action.svelte-vm4iq2:focus-visible{background:var(--accent);outline:none}.table-action.svelte-vm4iq2:focus-visible{box-shadow:0 0 0 2px var(--ring)}.table-action.svelte-vm4iq2:disabled{color:var(--muted-foreground);opacity:.45;cursor:not-allowed}.table-danger-action.svelte-vm4iq2{color:var(--destructive)}.table-danger-action.svelte-vm4iq2:hover:not(:disabled){background:color-mix(in srgb, var(--destructive) 12%, transparent)}.copy-btn.copied.svelte-vm4iq2{color:var(--primary)}.snapshot-btn.svelte-vm4iq2{color:var(--muted-foreground)}.toolbar.floating-bar.svelte-vm4iq2{z-index:var(--layer-popover);background:color-mix(in srgb, var(--background) 95%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:0 10px 25px -5px #00000026, 0 8px 10px -6px #00000026, 0 0 0 1px var(--border);border-radius:12px;width:max-content;max-width:90vw;padding:10px 14px;animation:.2s ease-out svelte-vm4iq2-floatUp;position:fixed;top:auto;bottom:24px;left:50%;overflow:visible;transform:translate(-50%)}@media (width<=640px){.toolbar.floating-bar.svelte-vm4iq2{left:8px;right:8px;bottom:max(10px, env(safe-area-inset-bottom));border-radius:10px;width:auto;max-width:none;padding:8px;transform:none}.floating-toolbar-layout.svelte-vm4iq2{flex-flow:wrap;align-items:center;gap:4px;max-height:min(42vh,260px);padding-right:34px;display:flex;overflow-y:auto}.floating-toolbar-row.svelte-vm4iq2{display:contents}.floating-toolbar-spacer.svelte-vm4iq2{display:none}.floating-toolbar-close.svelte-vm4iq2{margin-left:0;position:absolute;top:6px;right:6px}.floating-toolbar-row-secondary.svelte-vm4iq2{display:contents}}.dropdown-popover.open-up.svelte-vm4iq2,.highlight-popover.open-up.svelte-vm4iq2,.emoji-popover.open-up.svelte-vm4iq2,.table-popover.open-up.svelte-vm4iq2{top:auto;bottom:calc(100% + 6px)}.dropdown-popover.open-left.svelte-vm4iq2,.highlight-popover.open-left.svelte-vm4iq2,.emoji-popover.open-left.svelte-vm4iq2,.table-popover.open-left.svelte-vm4iq2{left:auto;right:0}@keyframes svelte-vm4iq2-floatUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.editor-wrapper.svelte-9hjz5q{flex-direction:column;flex:1;min-height:0;display:flex}.editor-content.svelte-9hjz5q{flex:1;padding:24px;position:relative;overflow-y:auto}.editor-content.deferred-loading.svelte-9hjz5q{min-height:320px}.large-document-loader.svelte-9hjz5q{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--background) 94%, transparent);pointer-events:none;border-radius:12px;padding:20px;position:absolute;inset:24px}.large-document-loader-heading.svelte-9hjz5q{color:var(--muted-foreground);align-items:center;gap:10px;font-size:.875rem;font-weight:500;display:flex}.large-document-spinner.svelte-9hjz5q{border:2px solid var(--border);border-top-color:var(--primary);border-radius:999px;width:18px;height:18px;animation:.8s linear infinite svelte-9hjz5q-large-document-spin}.large-document-loader-lines.svelte-9hjz5q{gap:12px;margin-top:28px;display:grid}.large-document-loader-lines.svelte-9hjz5q span:where(.svelte-9hjz5q){background:linear-gradient(90deg, var(--muted) 20%, color-mix(in srgb, var(--muted) 55%, var(--background)) 50%, var(--muted) 80%);background-size:220% 100%;border-radius:999px;height:12px;animation:1.35s ease-in-out infinite svelte-9hjz5q-large-document-shimmer;display:block}@keyframes svelte-9hjz5q-large-document-spin{to{transform:rotate(360deg)}}@keyframes svelte-9hjz5q-large-document-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.large-document-spinner.svelte-9hjz5q,.large-document-loader-lines.svelte-9hjz5q span:where(.svelte-9hjz5q){animation:none}}.editor-content.svelte-9hjz5q .tiptap{min-height:300px;color:var(--foreground);outline:none;font-size:16px;line-height:1.7}.editor-content.svelte-9hjz5q .tiptap:focus-visible{outline:none}.editor-content.svelte-9hjz5q .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--muted-foreground);pointer-events:none;height:0}.editor-content.svelte-9hjz5q .tiptap h1{letter-spacing:-.025em;margin:1.5rem 0 .75rem;font-size:2rem;font-weight:800}.editor-content.svelte-9hjz5q .tiptap h2{letter-spacing:-.02em;margin:1.25rem 0 .5rem;font-size:1.5rem;font-weight:700}.editor-content.svelte-9hjz5q .tiptap h3{margin:1rem 0 .5rem;font-size:1.25rem;font-weight:600}.editor-content.svelte-9hjz5q .tiptap p{margin:.5rem 0}.editor-content.svelte-9hjz5q .tiptap ul:not([data-type=taskList]){margin:.5rem 0;padding-left:1.5rem;list-style-type:disc}.editor-content.svelte-9hjz5q .tiptap ol{margin:.5rem 0;padding-left:1.5rem;list-style-type:decimal}.editor-content.svelte-9hjz5q .tiptap li{margin:.25rem 0;display:list-item}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList]{padding-left:.25rem;list-style:none}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li{align-items:flex-start;gap:.5rem;display:flex}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:1.7em;margin:0;display:flex}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>div{flex:auto;min-width:0}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] li>div>p{margin:0}.editor-content.svelte-9hjz5q .tiptap ul[data-type=taskList] input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.editor-content.svelte-9hjz5q .tiptap blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin:.75rem 0;padding-left:1rem;font-style:italic}.editor-content.svelte-9hjz5q .tiptap code{background:var(--muted);border-radius:4px;padding:.125rem .375rem;font-family:Fira Code,Consolas,monospace;font-size:.875rem}.editor-content.svelte-9hjz5q .tiptap pre{background:var(--muted);color:var(--foreground);border:1px solid var(--border);border-radius:8px;margin:.75rem 0;padding:1rem;font-family:Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;overflow-x:auto}.editor-content.svelte-9hjz5q .tiptap pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.editor-content.svelte-9hjz5q .tiptap pre .hljs-keyword{color:var(--hljs-keyword)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-string{color:var(--hljs-string)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-number{color:var(--hljs-number)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-function{color:var(--hljs-function)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-title{color:var(--hljs-title)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-comment{color:var(--hljs-comment);font-style:italic}.editor-content.svelte-9hjz5q .tiptap pre .hljs-built_in{color:var(--hljs-built_in)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-type{color:var(--hljs-type)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-attr{color:var(--hljs-attr)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-variable{color:var(--hljs-variable)}.editor-content.svelte-9hjz5q .tiptap pre .hljs-literal{color:var(--hljs-literal)}.editor-content.svelte-9hjz5q .tiptap hr{border:none;border-top:2px solid var(--border);margin:1.5rem 0}.editor-content.svelte-9hjz5q .tiptap table{border-collapse:collapse;table-layout:fixed;width:100%;margin:.75rem 0;overflow:hidden}.editor-content.svelte-9hjz5q .tiptap th,.editor-content.svelte-9hjz5q .tiptap td{border:1px solid var(--border);vertical-align:top;text-align:left;min-width:3rem;padding:.4rem .6rem}.editor-content.svelte-9hjz5q .tiptap th{background:var(--muted);font-weight:600}.editor-content.svelte-9hjz5q .tiptap .selectedCell:after{content:"";background:color-mix(in srgb, var(--primary) 16%, transparent);pointer-events:none;position:absolute;inset:0}.editor-content.svelte-9hjz5q .tiptap td,.editor-content.svelte-9hjz5q .tiptap th{position:relative}.editor-content.svelte-9hjz5q .tiptap .column-resize-handle{background:var(--primary);cursor:col-resize;width:4px;position:absolute;top:0;bottom:0;right:-2px}.editor-content.svelte-9hjz5q .tiptap .doc-link{color:var(--primary);cursor:pointer;text-decoration:underline}.editor-content.svelte-9hjz5q .tiptap [data-resize-container][data-node=image]{max-width:100%;margin:.75rem 0}.editor-content.svelte-9hjz5q .tiptap [data-resize-wrapper]>.doc-image{border-radius:.5rem;max-width:100%;height:auto;display:block}.editor-content.svelte-9hjz5q .tiptap [data-resize-wrapper]{max-width:100%}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle]{border:2px solid var(--background);background:var(--primary);width:12px;height:12px;box-shadow:0 1px 4px color-mix(in srgb, var(--foreground) 25%, transparent);opacity:0;border-radius:9999px;transition:opacity .12s}.editor-content.svelte-9hjz5q .tiptap .ProseMirror-selectednode [data-resize-handle],.editor-content.svelte-9hjz5q .tiptap [data-resize-state=true] [data-resize-handle]{opacity:1}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-right]{cursor:nwse-resize;transform:translate(50%,50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-left]{cursor:nesw-resize;transform:translate(-50%,50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right]{transform:translate(var(--image-handle-x,50%), -50%)}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-right],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-right]{--image-handle-x:50%}.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=top-left],.editor-content.svelte-9hjz5q .tiptap [data-resize-handle=bottom-left]{--image-handle-x:-50%}.editor-content.svelte-9hjz5q .tiptap mark{background-color:var(--highlight-default,#fde68a);border-radius:2px;padding:0 2px}.dark .editor-content.svelte-9hjz5q .tiptap mark{background-blend-mode:multiply;color:#fff;background-image:linear-gradient(#0000009e,#0000009e)}.editor-skeleton.svelte-9hjz5q{flex-direction:column;flex:1;display:flex}.skeleton-toolbar.svelte-9hjz5q{border-bottom:1px solid var(--border);gap:6px;padding:8px 12px;display:flex}.skeleton-icon.svelte-9hjz5q{background:var(--muted);border-radius:6px;width:32px;height:32px;animation:1.5s ease-in-out infinite svelte-9hjz5q-pulse}.skeleton-body.svelte-9hjz5q{flex-direction:column;gap:12px;padding:24px;display:flex}.skeleton-bar.svelte-9hjz5q{background:var(--muted);border-radius:4px;height:16px;animation:1.5s ease-in-out infinite svelte-9hjz5q-pulse}@keyframes svelte-9hjz5q-pulse{0%,to{opacity:1}50%{opacity:.4}}.title-input.svelte-vc365t{color:var(--foreground);background:0 0;border:none;border-bottom:2px solid #0000;outline:none;width:100%;margin-bottom:8px;padding:0 0 4px;font-size:2rem;font-weight:700;transition:border-color .15s}.title-input.svelte-vc365t::placeholder{color:var(--muted-foreground)}.title-input.focused.svelte-vc365t{border-bottom-color:var(--ring)}.title-input.svelte-vc365t:hover:not(.focused){border-bottom-color:var(--border)}.markdown-toggle.svelte-1k98zvf{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.copy-btn.svelte-1k98zvf{z-index:10;border:1px solid var(--border);background:color-mix(in srgb, var(--card) 85%, transparent);color:var(--muted-foreground);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex;position:absolute;top:12px;right:24px;box-shadow:0 2px 8px #0000000d}.copy-btn.svelte-1k98zvf:hover{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent)}.copy-btn.svelte-1k98zvf:active{transform:scale(.96)}.markdown-textarea.svelte-1k98zvf{box-sizing:border-box;resize:vertical;width:100%;height:100%;min-height:0;color:var(--foreground);background:var(--muted);tab-size:4;border:none;border-radius:8px;outline:none;flex:none;padding:56px 24px 24px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:14px;line-height:1.7;transition:background .15s;display:block;overflow-y:hidden}.markdown-textarea.svelte-1k98zvf::placeholder{color:var(--muted-foreground)}.markdown-textarea.svelte-1k98zvf:focus{background:var(--background)}.datepicker.svelte-zmry26{position:relative}.dp-trigger.svelte-zmry26{border:1px solid var(--input);width:100%;height:2.25rem;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 .625rem;font-size:.875rem;display:inline-flex}.dp-trigger.svelte-zmry26:focus-visible{box-shadow:0 0 0 1px var(--ring);outline:none}.dp-placeholder.svelte-zmry26{color:var(--muted-foreground)}.dp-popover.svelte-zmry26{z-index:var(--layer-popover);background:var(--popover);width:16rem;color:var(--popover-foreground);border:1px solid var(--border);border-radius:8px;padding:8px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 16px #0000002e}.dp-header.svelte-zmry26{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.dp-title.svelte-zmry26{font-size:.8125rem;font-weight:600}.dp-nav.svelte-zmry26{width:1.75rem;height:1.75rem;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.dp-nav.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dp-weekdays.svelte-zmry26,.dp-grid.svelte-zmry26{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dp-weekday.svelte-zmry26{text-align:center;color:var(--muted-foreground);padding:2px 0;font-size:.6875rem}.dp-empty.svelte-zmry26{aspect-ratio:1}.dp-day.svelte-zmry26{aspect-ratio:1;color:var(--foreground);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:.8125rem;display:inline-flex}.dp-day.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dp-day.today.svelte-zmry26{box-shadow:inset 0 0 0 1px var(--ring)}.dp-day.selected.svelte-zmry26,.dp-day.selected.svelte-zmry26:hover{background:var(--primary);color:var(--primary-foreground)}.dp-clear.svelte-zmry26{width:100%;color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;margin-top:6px;padding:4px 0;font-size:.75rem}.dp-clear.svelte-zmry26:hover{background:var(--accent);color:var(--accent-foreground)}.dashboard-shell.svelte-e61um3{position:relative}@media (width<=767px){.dashboard-header.svelte-e61um3{min-height:44px}.dashboard-header-actions.svelte-e61um3{top:calc(.75rem + env(safe-area-inset-top));z-index:10;position:absolute;right:.75rem}.dashboard-context-identity.svelte-e61um3{min-width:0;margin-left:56px}}@media (width<=520px){.dashboard-header-actions.svelte-e61um3 button{width:40px;height:40px;padding:0}.dashboard-action-label.svelte-e61um3{display:none}}@media (width<=449px){.dashboard-context-identity.svelte-e61um3{margin-left:52px}.dashboard-context-identity.svelte-e61um3 p:where(.svelte-e61um3){display:none}.dashboard-context-identity.svelte-e61um3 h1:where(.svelte-e61um3){font-size:1.25rem}}@media (width<=767px){.search-form.svelte-itf76n{margin-left:56px}}@media (width<=420px){.search-form.svelte-itf76n{margin-left:52px}}
2
2
  /*$vite$:1*/
@@ -11,7 +11,7 @@ import { At as h, Ct as g, Dt as _, Et as v, Ft as y, Gr as b, It as x, Jr as S,
11
11
  import { a as we, i as Te, n as j, t as Ee } from "./route-context-DYQlUfzL.js";
12
12
  import { n as M } from "./client-GbtOH90i.js";
13
13
  import { i as De } from "./categories-X7gK8azc.js";
14
- import { t as Oe } from "./context-KLiM3QQ0.js";
14
+ import { t as Oe } from "./context-D0zPFXZ4.js";
15
15
  import { t as ke } from "./resolve-BG4HgzpN.js";
16
16
  import { i as Ae } from "./search-preferences-B1GdbdUc.js";
17
17
  import { a as je, i as Me, n as Ne, r as Pe, t as Fe } from "./select-value-JCAp2PmU.js";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./context-KLiM3QQ0.js";
1
+ import { t as e } from "./context-D0zPFXZ4.js";
2
2
  import "svelte/internal/disclose-version";
3
3
  import * as t from "svelte/internal/client";
4
4
  //#region src/lib/components/editor/shared-document.ts
@@ -1,2 +1,2 @@
1
- import { a as presignAttachment, i as listAttachments, n as isFileSizeAllowed, o as uploadAttachment, r as isImageFile, t as confirmAttachment } from "../assets/attachments-CXgatN0B.js";
1
+ import { a as presignAttachment, i as listAttachments, n as isFileSizeAllowed, o as uploadAttachment, r as isImageFile, t as confirmAttachment } from "../assets/attachments-Cj3fQyUp.js";
2
2
  export { confirmAttachment, isFileSizeAllowed, isImageFile, listAttachments, presignAttachment, uploadAttachment };
@@ -1,9 +1,9 @@
1
- import { E as scroll_to_top_aria } from "./assets/messages-D-auzk9H.js";
1
+ import { E as scroll_to_top_aria } from "./assets/messages-BAQzILs4.js";
2
2
  import { t as Icon } from "./assets/Icon-QwirKi9Y.js";
3
- import { n as searchPreferences, r as editorPreferences } from "./assets/SettingsDialog-BymUxBgg.js";
4
- import { t as Sidebar } from "./assets/Sidebar-CI8YKbrY.js";
3
+ import { n as searchPreferences, r as editorPreferences } from "./assets/SettingsDialog-BPdUl6pd.js";
4
+ import { t as Sidebar } from "./assets/Sidebar-DwYZH0Tr.js";
5
5
  import { o as provideDocsmintRequestAdapter, r as provideDocsmintRouteAdapter } from "./assets/route-context-BPRerEtZ.js";
6
- import { t as HiaiDocsExtensionProvider } from "./assets/HiaiDocsExtensionProvider-B_MrN08c.js";
6
+ import { t as HiaiDocsExtensionProvider } from "./assets/HiaiDocsExtensionProvider-BRKWmcDd.js";
7
7
  import * as $ from "svelte/internal/server";
8
8
  import { getContext, onDestroy, setContext, untrack } from "svelte";
9
9
  //#region ../node_modules/.bun/lucide-svelte@0.577.0+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/arrow-up.svelte
@@ -1,4 +1,4 @@
1
- import { S as categories_create_title, _ as categories_delete_error, _n as action_cancel, b as categories_name_placeholder, g as categories_delete_title, gn as action_delete, h as categories_delete_description, m as categories_delete_success, mn as action_create, p as categories_delete_success_description, v as categories_update_error, vn as action_save, x as categories_edit_title, y as categories_create_error } from "./messages-D-auzk9H.js";
1
+ import { S as categories_create_title, _ as categories_delete_error, _n as action_cancel, b as categories_name_placeholder, g as categories_delete_title, gn as action_delete, h as categories_delete_description, m as categories_delete_success, mn as action_create, p as categories_delete_success_description, v as categories_update_error, vn as action_save, x as categories_edit_title, y as categories_create_error } from "./messages-BAQzILs4.js";
2
2
  import { t as Copy } from "./copy-DkkCPkBL.js";
3
3
  import { t as Circle_check } from "./circle-check-CPS9dKEo.js";
4
4
  import { t as Loader_circle } from "./loader-circle-CIEWGyfP.js";
@@ -1,4 +1,4 @@
1
- import { At as version_snapshot_description_placeholder, Dt as version_snapshot_dialog_title, Et as version_snapshot_dialog_description, Mt as version_snapshot_description, Nt as version_snapshot_label, Ot as version_snapshot_creating, _n as action_cancel, jt as version_snapshot_label_placeholder, kt as version_snapshot_create, xt as version_restore_failed, yn as error_server, z as error_validation } from "./messages-D-auzk9H.js";
1
+ import { At as version_snapshot_description_placeholder, Dt as version_snapshot_dialog_title, Et as version_snapshot_dialog_description, Mt as version_snapshot_description, Nt as version_snapshot_label, Ot as version_snapshot_creating, _n as action_cancel, jt as version_snapshot_label_placeholder, kt as version_snapshot_create, xt as version_restore_failed, yn as error_server, z as error_validation } from "./messages-BAQzILs4.js";
2
2
  import { t as Loader_circle } from "./loader-circle-CIEWGyfP.js";
3
3
  import { a as Dialog, i as Dialog_description, n as Dialog_header, o as Button, r as Dialog_footer, t as Dialog_title } from "./dialog-BOV1u6zP.js";
4
4
  import { t as Input } from "./input-DezGsU3y.js";
@@ -1,4 +1,4 @@
1
- import { $ as month_august, B as date_picker_aria, G as weekday_th, H as weekday_su, J as weekday_mo, K as weekday_we, Q as month_september, U as weekday_sa, V as date_picker_placeholder, W as weekday_fr, X as month_november, Y as month_december, Z as month_october, at as month_february, et as month_july, it as month_march, nt as month_may, ot as month_january, q as weekday_tu, rt as month_april, tt as month_june } from "./messages-D-auzk9H.js";
1
+ import { $ as month_august, B as date_picker_aria, G as weekday_th, H as weekday_su, J as weekday_mo, K as weekday_we, Q as month_september, U as weekday_sa, V as date_picker_placeholder, W as weekday_fr, X as month_november, Y as month_december, Z as month_october, at as month_february, et as month_july, it as month_march, nt as month_may, ot as month_january, q as weekday_tu, rt as month_april, tt as month_june } from "./messages-BAQzILs4.js";
2
2
  import { t as Icon } from "./Icon-QwirKi9Y.js";
3
3
  import { t as cn } from "./utils-DtlPPXpJ.js";
4
4
  import * as $ from "svelte/internal/server";
@@ -1,4 +1,4 @@
1
- import { Rr as dashboard_new_document, Sr as folders_new, bt as editor_more_options, dn as action_go_to, kr as doc_share, vr as folders_delete, yr as folders_rename } from "./messages-D-auzk9H.js";
1
+ import { Dr as doc_share, Ir as dashboard_new_document, _r as folders_rename, br as folders_new, bt as editor_more_options, dn as action_go_to, gr as folders_delete } from "./messages-BAQzILs4.js";
2
2
  import { t as Chevron_right } from "./chevron-right-DKD7WXjz.js";
3
3
  import { t as Folder } from "./folder-DYIE-XPP.js";
4
4
  import { a as Dropdown_menu, i as Dropdown_menu_content, o as Ellipsis_vertical, r as Dropdown_menu_item, t as Dropdown_menu_trigger } from "./dropdown-menu-Dn_vQq9b.js";
@@ -1,4 +1,4 @@
1
- import { n as provideFrontendExtensions } from "./context-BtCMqdVe.js";
1
+ import { n as provideFrontendExtensions } from "./context-Bi_mO-NS.js";
2
2
  import "svelte/internal/server";
3
3
  //#region src/lib/hosts/HiaiDocsExtensionProvider.svelte
4
4
  function HiaiDocsExtensionProvider($$renderer, $$props) {
@@ -1,4 +1,4 @@
1
- import { An as settings_email, Cn as change_password, Dn as settings_save, En as password_label, Fn as settings_appearance, In as settings_account, Ln as settings_profile, Mn as theme_dark, Nn as theme_light, On as settings_name, Pn as settings_theme, Rn as settings_title, Sn as auth_password, Tn as new_password, jn as theme_system, kn as settings_email_change_warning, pn as action_close, wn as confirm_password, xn as auth_logout } from "./messages-D-auzk9H.js";
1
+ import { An as settings_email, Cn as change_password, Dn as settings_save, En as password_label, Fn as settings_appearance, In as settings_account, Ln as settings_profile, Mn as theme_dark, Nn as theme_light, On as settings_name, Pn as settings_theme, Rn as settings_title, Sn as auth_password, Tn as new_password, jn as theme_system, kn as settings_email_change_warning, pn as action_close, wn as confirm_password, xn as auth_logout } from "./messages-BAQzILs4.js";
2
2
  import { t as Icon } from "./Icon-QwirKi9Y.js";
3
3
  import { a as getDocsmintRequestAdapter, n as navigateDocsmintRoute, t as getDocsmintRouteAdapter } from "./route-context-BPRerEtZ.js";
4
4
  import { t as cn } from "./utils-DtlPPXpJ.js";
@@ -9,7 +9,7 @@ import { r as signOut } from "./auth-client-x26kqY8Z.js";
9
9
  import { r as getProfile } from "./settings-Bk5Hk9Vq.js";
10
10
  import { a as listApiKeys, i as createGlobalApiKey, n as categoryIdFromScopes, o as revealCategoryApiKey, s as revokeApiKey, t as apiKeyClipboardValue } from "./api-keys-DIbclwj5.js";
11
11
  import { i as listCategories } from "./categories-av9xjeg5.js";
12
- import { t as getFrontendExtensions } from "./context-BtCMqdVe.js";
12
+ import { t as getFrontendExtensions } from "./context-Bi_mO-NS.js";
13
13
  import { t as resolveExtensions } from "./resolve-BqHozBXl.js";
14
14
  import { a as resolveOfflineIdentity, t as disableOfflineAccess } from "./identity-B3uHoDtf.js";
15
15
  import { n as getOfflineDB, t as deleteOfflineDB } from "./db-CnxeO66n.js";
@@ -568,6 +568,7 @@ function SettingsDialog($$renderer, $$props) {
568
568
  let activeTab = "profile";
569
569
  const frontendExtensions = getFrontendExtensions();
570
570
  const settingsExtensions = $.derived(() => resolveExtensions(frontendExtensions.settingsSections, { pathname: page.url.pathname }));
571
+ const profileActions = $.derived(() => resolveExtensions(frontendExtensions.profileActions, { pathname: page.url.pathname }));
571
572
  let name = "";
572
573
  let email = "";
573
574
  let currentPassword = "";
@@ -839,7 +840,20 @@ function SettingsDialog($$renderer, $$props) {
839
840
  });
840
841
  $$renderer.push(`<!----> <p class="text-xs text-muted-foreground">${$.escape(settings_email_change_warning())}</p> `);
841
842
  $$renderer.push("<!--[-1-->");
842
- $$renderer.push(`<!--]--></div> <div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">GraphRAG search</span> <span class="block text-xs text-muted-foreground">Use graph expansion for related documents. Disable it for faster standard RAG search.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": searchPreferences.graphSearchEnabled })}${$.attr("aria-checked", searchPreferences.graphSearchEnabled)} aria-label="Use GraphRAG search"><span class="svelte-1eaqpj"></span></button></div> `);
843
+ $$renderer.push(`<!--]--></div> <div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">GraphRAG search</span> <span class="block text-xs text-muted-foreground">Use graph expansion for related documents. Disable it for faster standard RAG search.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": searchPreferences.graphSearchEnabled })}${$.attr("aria-checked", searchPreferences.graphSearchEnabled)} aria-label="Use GraphRAG search"><span class="svelte-1eaqpj"></span></button></div> <!--[-->`);
844
+ const each_array_1 = $.ensure_array_like(profileActions());
845
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
846
+ const ProfileAction = each_array_1[$$index_1].component;
847
+ if (ProfileAction) {
848
+ $$renderer.push("<!--[-->");
849
+ ProfileAction($$renderer, {});
850
+ $$renderer.push("<!--]-->");
851
+ } else {
852
+ $$renderer.push("<!--[!-->");
853
+ $$renderer.push("<!--]-->");
854
+ }
855
+ }
856
+ $$renderer.push(`<!--]--> `);
843
857
  $$renderer.push("<!--[-1-->");
844
858
  $$renderer.push(`<!--]--> `);
845
859
  Button($$renderer, {
@@ -972,9 +986,9 @@ function SettingsDialog($$renderer, $$props) {
972
986
  $$slots: { default: true }
973
987
  });
974
988
  $$renderer.push(`<!----> <p class="text-xs text-muted-foreground">${$.escape(settings_appearance())}</p></div> <div class="grid grid-cols-3 gap-2"><!--[-->`);
975
- const each_array_1 = $.ensure_array_like(themeOptions);
976
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
977
- let opt = each_array_1[$$index_1];
989
+ const each_array_2 = $.ensure_array_like(themeOptions);
990
+ for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
991
+ let opt = each_array_2[$$index_2];
978
992
  $$renderer.push(`<button type="button"${$.attr_class($.clsx(["rounded-md border px-3 py-2 text-sm font-medium transition-colors", themeStore.value === opt.value ? "border-primary bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-accent hover:text-accent-foreground"].join(" ")), "svelte-1eaqpj")}>${$.escape(opt.label)}</button>`);
979
993
  }
980
994
  $$renderer.push(`<!--]--></div> <details class="editor-settings border-t pt-5 svelte-1eaqpj"><summary class="flex cursor-pointer items-center justify-between gap-3 rounded-md px-1 py-2 svelte-1eaqpj"><span><span class="block text-sm font-medium">Editor modes</span> <span class="block text-xs text-muted-foreground">Source views and toolbar layout</span></span> <span class="editor-settings-chevron svelte-1eaqpj" aria-hidden="true">⌄</span></summary> <div class="mt-3 space-y-3"><div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">Visual editor</span> <span class="block text-xs text-muted-foreground">Show the standard WYSIWYG editor mode.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": editorPreferences.showVisualMode })}${$.attr("aria-checked", editorPreferences.showVisualMode)} aria-label="Show visual editor"${$.attr("disabled", !editorPreferences.showMarkdownMode, true)}><span class="svelte-1eaqpj"></span></button></div> <div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">Raw Markdown</span> <span class="block text-xs text-muted-foreground">Show the Markdown source button in documents.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": editorPreferences.showMarkdownMode })}${$.attr("aria-checked", editorPreferences.showMarkdownMode)} aria-label="Show Raw Markdown"${$.attr("disabled", !editorPreferences.showVisualMode, true)}><span class="svelte-1eaqpj"></span></button></div> <div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">Minimal toolbar</span> <span class="block text-xs text-muted-foreground">Bold, italic, underline, lists, highlight, and copy.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": editorPreferences.minimalToolbar })}${$.attr("aria-checked", editorPreferences.minimalToolbar)} aria-label="Use minimal toolbar"><span class="svelte-1eaqpj"></span></button></div> <div class="flex items-center justify-between gap-4 rounded-md border p-3"><span><span class="block text-sm font-medium">Scroll to top</span> <span class="block text-xs text-muted-foreground">Show the floating arrow after scrolling down.</span></span> <button type="button" role="switch"${$.attr_class("preference-switch svelte-1eaqpj", void 0, { "enabled": editorPreferences.showScrollToTop })}${$.attr("aria-checked", editorPreferences.showScrollToTop)} aria-label="Show scroll to top"><span class="svelte-1eaqpj"></span></button></div></div></details></div>`);
@@ -1003,9 +1017,9 @@ function SettingsDialog($$renderer, $$props) {
1003
1017
  $$renderer.push("<!--]-->");
1004
1018
  }
1005
1019
  $$renderer.push(` <!--[-->`);
1006
- const each_array_2 = $.ensure_array_like(settingsExtensions());
1007
- for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
1008
- let section = each_array_2[$$index_2];
1020
+ const each_array_3 = $.ensure_array_like(settingsExtensions());
1021
+ for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {
1022
+ let section = each_array_3[$$index_3];
1009
1023
  if (Tabs_content) {
1010
1024
  $$renderer.push("<!--[-->");
1011
1025
  Tabs_content($$renderer, {
@@ -0,0 +1,45 @@
1
+ import { Bn as share_expires_7d, Gn as share_toggle_password, Hn as share_expires_1h, Jn as share_create_title, Kn as share_password_protection, Un as share_expires_never, Vn as share_expires_1d, Wn as share_expires, pn as action_close, qn as share_create_link, zn as share_expires_30d } from "./messages-BAQzILs4.js";
2
+ import { a as getDocsmintRequestAdapter } from "./route-context-BPRerEtZ.js";
3
+ import "./select-value-DBhbkNcc.js";
4
+ import "./keyboard.svelte-BgF47N3L.js";
5
+ import * as $ from "svelte/internal/server";
6
+ //#region src/lib/components/ShareDialog.svelte
7
+ function ShareDialog($$renderer, $$props) {
8
+ $$renderer.component(($$renderer) => {
9
+ let { open = false, documentId = "", documentTitle = "", folderId = "", folderName = "", categoryId = "", categoryName = "" } = $$props;
10
+ let usePassword = false;
11
+ let expiresIn = "7d";
12
+ getDocsmintRequestAdapter();
13
+ if (open) {
14
+ $$renderer.push("<!--[0-->");
15
+ $$renderer.push(`<div class="fixed inset-0 layer-modal z-[100] flex items-center justify-center"><button class="absolute inset-0 z-[100] bg-black/50"${$.attr("aria-label", action_close())}></button> <div class="relative z-[101] w-full max-w-md rounded-lg border border-border bg-background p-6 shadow-lg" role="dialog" aria-modal="true"><div class="mb-4 flex items-center justify-between"><h2 class="text-lg font-semibold">${$.escape(share_create_title())} "${$.escape(categoryName || folderName || documentTitle)}"</h2> <button class="rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground"${$.attr("aria-label", action_close())}>✕</button></div> `);
16
+ {
17
+ $$renderer.push("<!--[0-->");
18
+ $$renderer.push(`<div class="space-y-4"><div class="grid grid-cols-2 gap-2 rounded-lg bg-muted p-1" aria-label="Share access mode"><button type="button"${$.attr_class(`rounded-md px-3 py-2 text-sm font-medium bg-background shadow-sm`)}>Public link</button> <button type="button"${$.attr_class(`rounded-md px-3 py-2 text-sm font-medium text-muted-foreground`)}>Specific people</button></div> <p class="rounded-md border border-border bg-muted/40 p-3 text-xs text-muted-foreground">${$.escape("Anyone with this link can view the document. The link may be forwarded.")}</p> <div class="flex items-center justify-between"><span class="text-sm font-medium">${$.escape(share_password_protection())}</span> <button${$.attr_class(`relative inline-flex h-5 w-9 items-center rounded-full transition-colors bg-input`)} role="switch"${$.attr("aria-checked", usePassword)}${$.attr("aria-label", share_toggle_password())}><span${$.attr_class(`inline-block h-4 w-4 rounded-full bg-white shadow transition-transform translate-x-0.5`)}></span></button></div> `);
19
+ $$renderer.push("<!--[-1-->");
20
+ $$renderer.push(`<!--]--> <div class="space-y-2"><span class="text-sm font-medium">${$.escape(share_expires())}</span> <div class="flex gap-2"><!--[-->`);
21
+ const each_array = $.ensure_array_like([
22
+ ["1h", share_expires_1h()],
23
+ ["1d", share_expires_1d()],
24
+ ["7d", share_expires_7d()],
25
+ ["30d", share_expires_30d()],
26
+ ["never", share_expires_never()]
27
+ ]);
28
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
29
+ let [val, label] = each_array[$$index];
30
+ $$renderer.push(`<button${$.attr_class(`rounded-md border px-2.5 py-1 text-xs font-medium transition-colors ${expiresIn === val ? "border-primary bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-accent"}`)}>${$.escape(label)}</button>`);
31
+ }
32
+ $$renderer.push(`<!--]--></div></div> `);
33
+ $$renderer.push("<!--[-1-->");
34
+ $$renderer.push(`<!--]--> `);
35
+ $$renderer.push("<!--[-1-->");
36
+ $$renderer.push(`<!--]--> <button${$.attr("disabled", usePassword, true)} class="w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50">${$.escape(share_create_link())}</button></div>`);
37
+ }
38
+ $$renderer.push(`<!--]--></div></div>`);
39
+ } else $$renderer.push("<!--[-1-->");
40
+ $$renderer.push(`<!--]-->`);
41
+ $.bind_props($$props, { open });
42
+ });
43
+ }
44
+ //#endregion
45
+ export { ShareDialog as t };