@hiai-gg/docsmint 0.6.8 → 0.7.1

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 (138) hide show
  1. package/README.md +90 -99
  2. package/backend/src/lib/api-keys.ts +14 -6
  3. package/backend/src/lib/lifecycle-service.ts +397 -73
  4. package/dist/backend/index.js +13039 -10865
  5. package/dist/backend-account-runtime-cleanup.js +152 -42
  6. package/dist/backend-api-key-facade.js +207 -61
  7. package/dist/backend-pipeline-cancellation.js +144 -42
  8. package/dist/client.d.ts +12 -2
  9. package/dist/client.js +83 -30
  10. package/dist/frontend/{CategoryDialog-CbXBMBZB.js → CategoryDialog-t_WIvFAG.js} +5 -5
  11. package/dist/frontend/{ConfirmDialog-DgMTQBq4.js → ConfirmDialog-_LlrA--f.js} +3 -3
  12. package/dist/frontend/{CreateSnapshotDialog-FUq-ZfBH.js → CreateSnapshotDialog-DW3PwAt5.js} +4 -4
  13. package/dist/frontend/{DatePicker-D6E-EEtZ.js → DatePicker-CAw0wZZK.js} +9 -9
  14. package/dist/frontend/{DeleteDialog-8k6JYWCx.js → DeleteDialog-L1A3FhMM.js} +1 -1
  15. package/dist/frontend/{FolderNode-DAAn_T8_.js → FolderNode-DzTqitR8.js} +2 -2
  16. package/dist/frontend/{HiAiEditor-DSVG3GNd.js → HiAiEditor-B7MK19_j.js} +7 -7
  17. package/dist/frontend/{SettingsDialog-BDNgf5rv.js → SettingsDialog-CS5L4nnU.js} +13 -13
  18. package/dist/frontend/ShareDialog-CwFa8mlk.js +281 -0
  19. package/dist/frontend/{Sidebar-DX08utdV.js → Sidebar-CDaFFmaQ.js} +18 -17
  20. package/dist/frontend/{TagCreateDialog-Bb0-Vtzh.js → TagCreateDialog-C7Avn2_h.js} +4 -4
  21. package/dist/frontend/api/attachments.js +1 -1
  22. package/dist/frontend/api/settings.js +1 -1
  23. package/dist/frontend/app-shell.js +3 -3
  24. package/dist/frontend/{attachments-B8AuDjno.js → attachments-B2aH3hXF.js} +10 -9
  25. package/dist/frontend/{auth-client-Cygmp1I2.js → auth-client-CnDZwPfp.js} +11 -11
  26. package/dist/frontend/components/category-dialog.js +1 -1
  27. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  28. package/dist/frontend/components/delete-dialog.js +1 -1
  29. package/dist/frontend/components/editor/compact-editor.js +1 -1
  30. package/dist/frontend/components/editor/document-editor.js +1 -1
  31. package/dist/frontend/components/editor/document-title.js +1 -1
  32. package/dist/frontend/components/editor/markdown-toggle.js +1 -1
  33. package/dist/frontend/components/folder-node.js +1 -1
  34. package/dist/frontend/components/save-as-dialog.js +4 -4
  35. package/dist/frontend/components/settings.js +1 -1
  36. package/dist/frontend/components/share-dialog.d.ts +2 -1
  37. package/dist/frontend/components/share-dialog.js +1 -1
  38. package/dist/frontend/components/sidebar.js +1 -1
  39. package/dist/frontend/components/tag-create-dialog.js +1 -1
  40. package/dist/frontend/components/version-history.js +3 -3
  41. package/dist/frontend/{confirm-dialog-CzmoZw3a.js → confirm-dialog-BW2h2NE8.js} +5 -5
  42. package/dist/frontend/dashboard.js +1008 -998
  43. package/dist/frontend/{db-ByrlYfaI.js → db-Bo1t_76T.js} +1 -1
  44. package/dist/frontend/{dialog-Ce79C9fd.js → dialog-C2iKObEu.js} +7 -7
  45. package/dist/frontend/{dropdown-menu-CJ_7V3N0.js → dropdown-menu-BXIl2E26.js} +12 -12
  46. package/dist/frontend/{floating-layer-anchor-S5RSefGN.js → floating-layer-anchor-BGIndLY-.js} +63 -63
  47. package/dist/frontend/i18n.js +1 -1
  48. package/dist/frontend/{identity-DyWeNzu_.js → identity-Ynrglr5i.js} +1 -1
  49. package/dist/frontend/{input-BWlOML_m.js → input-eHFb2qiL.js} +2 -2
  50. package/dist/frontend/{label-C2HfJNQ2.js → label-_I1iiaNU.js} +2 -2
  51. package/dist/frontend/messages-DTRe4U2V.js +1093 -0
  52. package/dist/frontend/offline/identity.js +1 -1
  53. package/dist/frontend/search.js +3 -3
  54. package/dist/frontend/{select-value-JCAp2PmU.js → select-value-CtMyrvDJ.js} +18 -18
  55. package/dist/frontend/{settings-DSrUl4hW.js → settings-BR48ihB4.js} +6 -23
  56. package/dist/frontend/{textarea-DOAE-h42.js → textarea-2eslfANY.js} +2 -2
  57. package/dist/frontend/{utils-BPDRytUU.js → utils-CDBqTgoV.js} +1 -1
  58. package/dist/frontend-ssr/api/attachments.js +1 -1
  59. package/dist/frontend-ssr/api/settings.js +1 -1
  60. package/dist/frontend-ssr/app-shell.js +3 -3
  61. package/dist/frontend-ssr/assets/{CategoryDialog-QHEv_9N4.js → CategoryDialog-B3MrZUho.js} +5 -5
  62. package/dist/frontend-ssr/assets/{ConfirmDialog-BhAelejz.js → ConfirmDialog-D1BDXXll.js} +3 -3
  63. package/dist/frontend-ssr/assets/{CreateSnapshotDialog-CI8vXXcN.js → CreateSnapshotDialog-NM0n1Whr.js} +4 -4
  64. package/dist/frontend-ssr/assets/{DatePicker-D84cJ-Eq.js → DatePicker-Dcok9XVm.js} +4 -4
  65. package/dist/frontend-ssr/assets/{DeleteDialog-DG9Lm38J.js → DeleteDialog-oHT_p_vG.js} +1 -1
  66. package/dist/frontend-ssr/assets/{FolderNode-kmilhDjO.js → FolderNode-B84NL8Rg.js} +2 -2
  67. package/dist/frontend-ssr/assets/{HiAiEditor-CUOJmKzT.js → HiAiEditor-tU0jmp6L.js} +6 -6
  68. package/dist/frontend-ssr/assets/{SettingsDialog-BjJIiVLc.js → SettingsDialog-Dkp79L1B.js} +13 -13
  69. package/dist/frontend-ssr/assets/{ShareDialog-C9C-XTm4.js → ShareDialog-B1-30sRR.js} +20 -7
  70. package/dist/frontend-ssr/assets/{Sidebar-C2sUfGNk.js → Sidebar-CGp45ngo.js} +14 -13
  71. package/dist/frontend-ssr/assets/{TagCreateDialog-DUPMitlL.js → TagCreateDialog-CGGtYSso.js} +4 -4
  72. package/dist/frontend-ssr/assets/{attachments-Cj3fQyUp.js → attachments-BdkOp8ha.js} +5 -4
  73. package/dist/frontend-ssr/assets/{auth-client-x26kqY8Z.js → auth-client-CojKIzqy.js} +13 -13
  74. package/dist/frontend-ssr/assets/{confirm-dialog-XuyaL8sr.js → confirm-dialog-B-oV5wYk.js} +5 -5
  75. package/dist/frontend-ssr/assets/{db-CnxeO66n.js → db-BhwJPEkn.js} +1 -1
  76. package/dist/frontend-ssr/assets/{dialog-BOV1u6zP.js → dialog-1SB5neow.js} +8 -8
  77. package/dist/frontend-ssr/assets/{dropdown-menu-Dn_vQq9b.js → dropdown-menu-DqoOkdqB.js} +12 -12
  78. package/dist/frontend-ssr/assets/{floating-layer-anchor-BIAu-252.js → floating-layer-anchor-BoiiIEiK.js} +71 -71
  79. package/dist/frontend-ssr/assets/{identity-B3uHoDtf.js → identity-DcMMBKWg.js} +1 -1
  80. package/dist/frontend-ssr/assets/{input-DezGsU3y.js → input-Df-QP3Km.js} +2 -2
  81. package/dist/frontend-ssr/assets/{label-Bj8-TfFN.js → label-CbUOUz6L.js} +2 -2
  82. package/dist/frontend-ssr/assets/{messages-BAQzILs4.js → messages-B1TjVIH8.js} +2 -2
  83. package/dist/frontend-ssr/assets/{select-value-DBhbkNcc.js → select-value-CXEDWrZg.js} +18 -18
  84. package/dist/frontend-ssr/assets/{settings-Bk5Hk9Vq.js → settings-Mp8EuFSn.js} +3 -21
  85. package/dist/frontend-ssr/assets/{textarea-Dev-qSEc.js → textarea-CHh8NuSS.js} +2 -2
  86. package/dist/frontend-ssr/assets/{utils-DtlPPXpJ.js → utils-DtX0ta7y.js} +1 -1
  87. package/dist/frontend-ssr/components/category-dialog.js +1 -1
  88. package/dist/frontend-ssr/components/create-snapshot-dialog.js +1 -1
  89. package/dist/frontend-ssr/components/delete-dialog.js +1 -1
  90. package/dist/frontend-ssr/components/editor/compact-editor.js +1 -1
  91. package/dist/frontend-ssr/components/editor/document-editor.js +1 -1
  92. package/dist/frontend-ssr/components/editor/document-title.js +1 -1
  93. package/dist/frontend-ssr/components/editor/markdown-toggle.js +1 -1
  94. package/dist/frontend-ssr/components/folder-node.js +1 -1
  95. package/dist/frontend-ssr/components/save-as-dialog.js +4 -4
  96. package/dist/frontend-ssr/components/settings.js +1 -1
  97. package/dist/frontend-ssr/components/share-dialog.js +1 -1
  98. package/dist/frontend-ssr/components/sidebar.js +1 -1
  99. package/dist/frontend-ssr/components/tag-create-dialog.js +1 -1
  100. package/dist/frontend-ssr/components/version-history.js +3 -3
  101. package/dist/frontend-ssr/dashboard.js +32 -30
  102. package/dist/frontend-ssr/i18n.js +1 -1
  103. package/dist/frontend-ssr/offline/identity.js +1 -1
  104. package/dist/frontend-ssr/search.js +3 -3
  105. package/dist/index.d.ts +5 -5
  106. package/dist/index.js +2 -2
  107. package/dist/lifecycle-persistent.d.ts +1 -1
  108. package/dist/lifecycle-runtime.js +52659 -338
  109. package/dist/mcp-cli.js +1056 -0
  110. package/dist/mcp-server.d.ts +39 -0
  111. package/dist/mcp-server.js +1053 -0
  112. package/dist/storage-quota.d.ts +5 -1
  113. package/dist/types.d.ts +7 -0
  114. package/dist/workspace.d.ts +11 -2
  115. package/dist/workspace.js +82 -10
  116. package/package.json +7 -13
  117. package/packages/cli/src/index.ts +4 -3
  118. package/packages/db/src/client.ts +56 -5
  119. package/packages/db/src/schema.ts +192 -1
  120. package/packages/db/src/with-tenant.ts +20 -2
  121. package/server.json +42 -5
  122. package/dist/frontend/ShareDialog-2Mty7hm4.js +0 -258
  123. package/dist/frontend/messages-DIovIZrK.js +0 -1093
  124. package/packages/mcp-server/src/capabilities.ts +0 -189
  125. package/packages/mcp-server/src/client.ts +0 -225
  126. package/packages/mcp-server/src/index.ts +0 -8
  127. package/packages/mcp-server/src/server.ts +0 -87
  128. package/packages/mcp-server/src/tools/create-document.ts +0 -34
  129. package/packages/mcp-server/src/tools/create-folder.ts +0 -31
  130. package/packages/mcp-server/src/tools/create-snapshot.ts +0 -27
  131. package/packages/mcp-server/src/tools/export-document.ts +0 -22
  132. package/packages/mcp-server/src/tools/get-document.ts +0 -22
  133. package/packages/mcp-server/src/tools/list-documents.ts +0 -34
  134. package/packages/mcp-server/src/tools/list-folders.ts +0 -26
  135. package/packages/mcp-server/src/tools/search.ts +0 -39
  136. package/packages/mcp-server/src/tools/update-document.ts +0 -38
  137. package/packages/mcp-server/src/tools/version-history.ts +0 -27
  138. package/packages/mcp-server/src/types.ts +0 -126
package/server.json CHANGED
@@ -3,20 +3,44 @@
3
3
  "name": "io.github.HiAi-gg/docsmint",
4
4
  "title": "DocsMint",
5
5
  "description": "Manage scoped DocsMint documents, folders, categories, search, GraphRAG, and indexing through MCP.",
6
+ "websiteUrl": "https://docsmint.com/docs/mcp",
6
7
  "repository": {
7
8
  "url": "https://github.com/HiAi-gg/docsmint",
8
9
  "source": "github",
9
- "id": "1249550690"
10
+ "id": "1249550690",
11
+ "subfolder": "packages/mcp-server"
10
12
  },
11
- "version": "0.6.8",
13
+ "version": "0.7.1",
14
+ "icons": [
15
+ {
16
+ "src": "https://raw.githubusercontent.com/HiAi-gg/docsmint/main/frontend/static/logo-dark.png",
17
+ "mimeType": "image/png",
18
+ "sizes": ["256x256"],
19
+ "theme": "light"
20
+ },
21
+ {
22
+ "src": "https://raw.githubusercontent.com/HiAi-gg/docsmint/main/frontend/static/logo.png",
23
+ "mimeType": "image/png",
24
+ "sizes": ["256x256"],
25
+ "theme": "dark"
26
+ }
27
+ ],
12
28
  "packages": [
13
29
  {
14
30
  "registryType": "npm",
31
+ "registryBaseUrl": "https://registry.npmjs.org",
15
32
  "identifier": "@hiai-gg/docsmint",
16
- "version": "0.6.8",
33
+ "version": "0.7.1",
34
+ "runtimeHint": "npx",
17
35
  "transport": {
18
36
  "type": "stdio"
19
37
  },
38
+ "packageArguments": [
39
+ {
40
+ "type": "positional",
41
+ "value": "docsmint-mcp"
42
+ }
43
+ ],
20
44
  "environmentVariables": [
21
45
  {
22
46
  "name": "HIAI_DOCS_URL",
@@ -45,11 +69,24 @@
45
69
  },
46
70
  {
47
71
  "name": "X-Docsmint-Workspace",
48
- "description": "Optional workspace override for a workspace scoped key.",
72
+ "description": "Canonical workspace slug. Bound workspace keys may omit this header.",
49
73
  "isRequired": false,
50
74
  "isSecret": false
51
75
  }
52
76
  ]
53
77
  }
54
- ]
78
+ ],
79
+ "_meta": {
80
+ "io.modelcontextprotocol.registry/publisher-provided": {
81
+ "license": "Apache-2.0",
82
+ "licenseUrl": "https://www.apache.org/licenses/LICENSE-2.0",
83
+ "licenseFile": "https://github.com/HiAi-gg/docsmint/blob/main/LICENSE",
84
+ "documentationUrl": "https://docsmint.com/docs/mcp",
85
+ "catalog": {
86
+ "tools": 17,
87
+ "prompts": 2,
88
+ "resources": 3
89
+ }
90
+ }
91
+ }
55
92
  }
@@ -1,258 +0,0 @@
1
- import { $n as e, Ar as t, Br as n, Dr as r, Fr as i, Hr as a, Ir as o, Lr as s, Mr as c, Nr as l, Or as u, Pr as d, Rr as f, Ur as p, Vr as ee, Zn as m, jr as h, kr as g, or as _, zr as v } from "./messages-DIovIZrK.js";
2
- import { a as y } from "./route-context-DYQlUfzL.js";
3
- import { a as b, i as x, n as te, r as S, t as ne } from "./select-value-JCAp2PmU.js";
4
- import { n as C } from "./share-D7JtkC85.js";
5
- import { h as w, u as T } from "./keyboard.svelte-CApmX0vl.js";
6
- import { t as E } from "./clipboard-Cgzxc0_R.js";
7
- import "svelte/internal/disclose-version";
8
- import * as D from "svelte/internal/client";
9
- //#region src/lib/components/ShareDialog.svelte
10
- var re = D.from_html("<label class=\"flex items-start gap-2 text-xs text-muted-foreground\"><input type=\"checkbox\" class=\"mt-0.5\"/> Allow anyone with the password to view. Commenting and editing still require an invited account.</label>"), ie = D.from_html("<input type=\"password\" class=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"/> <!>", 1), ae = D.from_html("<button> </button>"), oe = D.from_html("<!> <!> <!>", 1), se = D.from_html("<!> <!>", 1), ce = D.from_html("<span class=\"inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs\"> <button class=\"text-muted-foreground hover:text-foreground\">&times;</button></span>"), le = D.from_html("<div class=\"flex flex-wrap gap-1.5\"></div>"), ue = D.from_html("<div class=\"space-y-2\"><span class=\"text-sm font-medium\"> </span> <div class=\"flex gap-2\"><input type=\"email\" placeholder=\"guest@email.com\" class=\"flex h-9 flex-1 rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"/> <!> <button class=\"rounded-md border border-border px-3 py-1.5 text-sm font-medium hover:bg-accent\"> </button></div> <!></div>"), de = D.from_html("<p class=\"text-xs text-destructive\"> </p>"), fe = D.from_html("<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\">Public link</button> <button type=\"button\">Specific people</button></div> <p class=\"rounded-md border border-border bg-muted/40 p-3 text-xs text-muted-foreground\"> </p> <div class=\"flex items-center justify-between\"><span class=\"text-sm font-medium\"> </span> <button role=\"switch\"><span></span></button></div> <!> <div class=\"space-y-2\"><span class=\"text-sm font-medium\"> </span> <div class=\"flex gap-2\"></div></div> <!> <!> <button 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\"> </button></div>"), O = D.from_html("<div class=\"space-y-4\"><p class=\"text-sm text-muted-foreground\"> </p> <div data-share-created-url=\"\" class=\"flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center\"><code class=\"min-w-0 flex-1 break-all rounded-md bg-muted px-3 py-2 text-sm\"> </code> <button data-share-copy-action=\"\" class=\"w-full shrink-0 rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 sm:w-auto\"> </button></div> <button class=\"w-full rounded-md border border-border px-4 py-2 text-sm font-medium hover:bg-accent\"> </button></div>"), k = D.from_html("<div class=\"fixed inset-0 layer-modal z-[100] flex items-center justify-center\"><button class=\"absolute inset-0 z-[100] bg-black/50\"></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\"> </h2> <button class=\"rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground\">&#10005;</button></div> <!></div></div>");
11
- function A(A, j) {
12
- D.push(j, !0);
13
- let M = D.prop(j, "open", 15, !1), N = D.prop(j, "documentId", 3, ""), P = D.prop(j, "documentTitle", 3, ""), F = D.prop(j, "folderId", 3, ""), I = D.prop(j, "folderName", 3, ""), L = D.prop(j, "categoryId", 3, ""), R = D.prop(j, "categoryName", 3, ""), z = D.state(!1), B = D.state("public"), V = D.state(!1), H = D.state(""), U = D.state("7d"), W = D.state(""), G = D.state("viewer"), K = D.state(D.proxy([])), q = D.state(""), J = D.state(!1), Y = D.state(!1), X = D.state(""), pe = y();
14
- D.user_effect(() => (T({
15
- id: "share-dialog-escape",
16
- keys: "escape",
17
- description: "Close share dialog",
18
- scope: "dialog",
19
- enabled: M(),
20
- overrideInput: !0,
21
- handler: () => {
22
- M() && Q();
23
- }
24
- }), () => {
25
- w("share-dialog-escape");
26
- }));
27
- function Z() {
28
- let e = D.get(W).trim();
29
- e?.includes("@") && !D.get(K).some((t) => t.email === e.toLowerCase()) && (D.set(K, [...D.get(K), {
30
- email: e.toLowerCase(),
31
- role: D.get(G)
32
- }], !0), D.set(W, ""));
33
- }
34
- function me(e) {
35
- D.set(K, D.get(K).filter((t) => t.email !== e), !0);
36
- }
37
- async function he() {
38
- D.set(Y, !0), D.set(X, "");
39
- try {
40
- let e = await C({
41
- documentId: N() || void 0,
42
- folderId: F() || void 0,
43
- categoryId: L() || void 0,
44
- password: D.get(z) ? D.get(H) : void 0,
45
- expiresIn: D.get(U),
46
- accessMode: D.get(B),
47
- allowPasswordFallback: D.get(B) === "restricted" && D.get(z) ? D.get(V) : void 0,
48
- guests: D.get(B) === "restricted" ? D.get(K) : void 0
49
- }, pe.fetch);
50
- D.set(q, `${window.location.origin}/s/${e.token}`), j.onCreated?.({
51
- token: e.token,
52
- url: D.get(q),
53
- accessMode: D.get(B)
54
- });
55
- } catch (e) {
56
- D.set(X, e instanceof Error ? e.message : _(), !0), console.error("ShareDialog: createShareLink failed", e);
57
- } finally {
58
- D.set(Y, !1);
59
- }
60
- }
61
- async function ge() {
62
- D.get(q) && (await E(D.get(q)), D.set(J, !0), setTimeout(() => {
63
- D.set(J, !1);
64
- }, 2e3));
65
- }
66
- function Q() {
67
- M(!1), D.set(q, ""), D.set(z, !1), D.set(B, "public"), D.set(V, !1), D.set(H, ""), D.set(U, "7d"), D.set(K, [], !0), D.set(X, "");
68
- }
69
- var $ = D.comment(), _e = D.first_child($), ve = (_) => {
70
- var y = k(), C = D.child(y), w = D.sibling(C, 2), T = D.child(w), E = D.child(T), A = D.child(E);
71
- D.reset(E);
72
- var j = D.sibling(E, 2);
73
- D.reset(T);
74
- var M = D.sibling(T, 2), N = (e) => {
75
- var r = fe(), u = D.child(r), p = D.child(u), m = D.sibling(p, 2);
76
- D.reset(u);
77
- var g = D.sibling(u, 2), _ = D.child(g, !0);
78
- D.reset(g);
79
- var y = D.sibling(g, 2), C = D.child(y), w = D.child(C, !0);
80
- D.reset(C);
81
- var T = D.sibling(C, 2), E = D.child(T);
82
- D.reset(T), D.reset(y);
83
- var O = D.sibling(y, 2), k = (e) => {
84
- var t = ie(), n = D.first_child(t);
85
- D.remove_input_defaults(n);
86
- var r = D.sibling(n, 2), i = (e) => {
87
- var t = re(), n = D.child(t);
88
- D.remove_input_defaults(n), D.next(), D.reset(t), D.bind_checked(n, () => D.get(V), (e) => D.set(V, e)), D.append(e, t);
89
- };
90
- D.if(r, (e) => {
91
- D.get(B) === "restricted" && e(i);
92
- }), D.template_effect((e) => D.set_attribute(n, "placeholder", e), [() => f()]), D.bind_value(n, () => D.get(H), (e) => D.set(H, e)), D.append(e, t);
93
- };
94
- D.if(O, (e) => {
95
- D.get(z) && e(k);
96
- });
97
- var A = D.sibling(O, 2), j = D.child(A), M = D.child(j, !0);
98
- D.reset(j);
99
- var N = D.sibling(j, 2);
100
- D.each(N, 21, () => [
101
- ["1h", i()],
102
- ["1d", d()],
103
- ["7d", l()],
104
- ["30d", c()],
105
- ["never", o()]
106
- ], D.index, (e, t) => {
107
- var n = D.derived(() => D.to_array(D.get(t), 2));
108
- let r = () => D.get(n)[0], i = () => D.get(n)[1];
109
- var a = ae(), o = D.child(a, !0);
110
- D.reset(a), D.template_effect(() => {
111
- D.set_class(a, 1, `rounded-md border px-2.5 py-1 text-xs font-medium transition-colors
112
- ${D.get(U) === r() ? "border-primary bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-accent"}`), D.set_text(o, i());
113
- }), D.delegated("click", a, () => {
114
- D.set(U, r(), !0);
115
- }), D.append(e, a);
116
- }), D.reset(N), D.reset(A);
117
- var P = D.sibling(A, 2), F = (e) => {
118
- var n = ue(), r = D.child(n), i = D.child(r, !0);
119
- D.reset(r);
120
- var a = D.sibling(r, 2), o = D.child(a);
121
- D.remove_input_defaults(o);
122
- var s = D.sibling(o, 2);
123
- b(s, {
124
- type: "single",
125
- get value() {
126
- return D.get(G);
127
- },
128
- onValueChange: (e) => {
129
- (e === "viewer" || e === "commenter" || e === "editor") && D.set(G, e, !0);
130
- },
131
- children: (e, t) => {
132
- var n = se(), r = D.first_child(n);
133
- te(r, {
134
- class: "h-9 w-32 justify-between px-3 text-sm",
135
- "aria-label": "Guest role",
136
- children: (e, t) => {
137
- ne(e, {
138
- placeholder: "Role",
139
- children: (e, t) => {
140
- D.next();
141
- var n = D.text();
142
- D.template_effect(() => D.set_text(n, D.get(G) === "viewer" ? "Viewer" : D.get(G) === "commenter" ? "Commenter" : "Editor")), D.append(e, n);
143
- },
144
- $$slots: { default: !0 }
145
- });
146
- },
147
- $$slots: { default: !0 }
148
- }), x(D.sibling(r, 2), {
149
- children: (e, t) => {
150
- var n = oe(), r = D.first_child(n);
151
- S(r, {
152
- value: "viewer",
153
- children: (e, t) => {
154
- D.next();
155
- var n = D.text("Viewer");
156
- D.append(e, n);
157
- },
158
- $$slots: { default: !0 }
159
- });
160
- var i = D.sibling(r, 2);
161
- S(i, {
162
- value: "commenter",
163
- children: (e, t) => {
164
- D.next();
165
- var n = D.text("Commenter");
166
- D.append(e, n);
167
- },
168
- $$slots: { default: !0 }
169
- }), S(D.sibling(i, 2), {
170
- value: "editor",
171
- children: (e, t) => {
172
- D.next();
173
- var n = D.text("Editor");
174
- D.append(e, n);
175
- },
176
- $$slots: { default: !0 }
177
- }), D.append(e, n);
178
- },
179
- $$slots: { default: !0 }
180
- }), D.append(e, n);
181
- },
182
- $$slots: { default: !0 }
183
- });
184
- var c = D.sibling(s, 2), l = D.child(c, !0);
185
- D.reset(c), D.reset(a);
186
- var u = D.sibling(a, 2), d = (e) => {
187
- var t = le();
188
- D.each(t, 21, () => D.get(K), D.index, (e, t) => {
189
- var n = ce(), r = D.child(n), i = D.sibling(r);
190
- D.reset(n), D.template_effect(() => D.set_text(r, `${D.get(t).email ?? ""} · ${D.get(t).role ?? ""} `)), D.delegated("click", i, () => me(D.get(t).email)), D.append(e, n);
191
- }), D.reset(t), D.append(e, t);
192
- };
193
- D.if(u, (e) => {
194
- D.get(K).length > 0 && e(d);
195
- }), D.reset(n), D.template_effect((e, t) => {
196
- D.set_text(i, e), D.set_text(l, t);
197
- }, [() => h(), () => t()]), D.delegated("keydown", o, (e) => {
198
- e.key === "Enter" && (e.preventDefault(), Z());
199
- }), D.bind_value(o, () => D.get(W), (e) => D.set(W, e)), D.delegated("click", c, Z), D.append(e, n);
200
- };
201
- D.if(P, (e) => {
202
- D.get(B) === "restricted" && e(F);
203
- });
204
- var I = D.sibling(P, 2), L = (e) => {
205
- var t = de(), n = D.child(t, !0);
206
- D.reset(t), D.template_effect(() => D.set_text(n, D.get(X))), D.append(e, t);
207
- };
208
- D.if(I, (e) => {
209
- D.get(X) && e(L);
210
- });
211
- var R = D.sibling(I, 2), q = D.child(R, !0);
212
- D.reset(R), D.reset(r), D.template_effect((e, t, n, r) => {
213
- D.set_class(p, 1, `rounded-md px-3 py-2 text-sm font-medium ${D.get(B) === "public" ? "bg-background shadow-sm" : "text-muted-foreground"}`), D.set_class(m, 1, `rounded-md px-3 py-2 text-sm font-medium ${D.get(B) === "restricted" ? "bg-background shadow-sm" : "text-muted-foreground"}`), D.set_text(_, D.get(B) === "public" ? "Anyone with this link can view the document. The link may be forwarded." : "Only invited email addresses can comment or edit. A password fallback, when enabled, grants view-only access."), D.set_text(w, e), D.set_class(T, 1, `relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${D.get(z) ? "bg-primary" : "bg-input"}`), D.set_attribute(T, "aria-checked", D.get(z)), D.set_attribute(T, "aria-label", t), D.set_class(E, 1, `inline-block h-4 w-4 rounded-full bg-white shadow transition-transform ${D.get(z) ? "translate-x-4" : "translate-x-0.5"}`), D.set_text(M, n), R.disabled = D.get(Y) || D.get(B) === "restricted" && D.get(K).length === 0 || D.get(z) && D.get(H).length < 8, D.set_text(q, r);
214
- }, [
215
- () => n(),
216
- () => v(),
217
- () => s(),
218
- () => D.get(Y) ? ee() : a()
219
- ]), D.delegated("click", p, () => {
220
- D.set(B, "public"), D.set(K, [], !0), D.set(V, !1);
221
- }), D.delegated("click", m, () => {
222
- D.set(B, "restricted");
223
- }), D.delegated("click", T, () => {
224
- D.set(z, !D.get(z));
225
- }), D.delegated("click", R, he), D.append(e, r);
226
- }, F = (e) => {
227
- var t = O(), n = D.child(t), i = D.child(n, !0);
228
- D.reset(n);
229
- var a = D.sibling(n, 2), o = D.child(a), s = D.child(o, !0);
230
- D.reset(o);
231
- var c = D.sibling(o, 2), l = D.child(c, !0);
232
- D.reset(c), D.reset(a);
233
- var d = D.sibling(a, 2), f = D.child(d, !0);
234
- D.reset(d), D.reset(t), D.template_effect((e, t, n) => {
235
- D.set_text(i, e), D.set_text(s, D.get(q)), D.set_text(l, t), D.set_text(f, n);
236
- }, [
237
- () => D.get(B) === "restricted" ? "Invitations were queued for delivery. This is not a public link." : r(),
238
- () => D.get(J) ? u() : g(),
239
- () => m()
240
- ]), D.delegated("click", c, ge), D.delegated("click", d, Q), D.append(e, t);
241
- };
242
- D.if(M, (e) => {
243
- D.get(q) ? e(F, -1) : e(N);
244
- }), D.reset(w), D.reset(y), D.template_effect((e, t, n) => {
245
- D.set_attribute(C, "aria-label", e), D.set_text(A, `${t ?? ""} "${(R() || I() || P()) ?? ""}"`), D.set_attribute(j, "aria-label", n);
246
- }, [
247
- () => e(),
248
- () => p(),
249
- () => e()
250
- ]), D.delegated("click", C, Q), D.delegated("click", j, Q), D.append(_, y);
251
- };
252
- D.if(_e, (e) => {
253
- M() && e(ve);
254
- }), D.append(A, $), D.pop();
255
- }
256
- D.delegate(["click", "keydown"]);
257
- //#endregion
258
- export { A as t };