ocean-brain 0.12.1 → 0.12.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 (108) hide show
  1. package/package.json +1 -1
  2. package/server/client/dist/assets/{ArrowRight.es-DZTjsBaI.js → ArrowRight.es-CD1IMhU2.js} +1 -1
  3. package/server/client/dist/assets/{AuxiliaryPanelHeader-Bp3iRjm6.js → AuxiliaryPanelHeader-zoJGsYWR.js} +1 -1
  4. package/server/client/dist/assets/Calendar-6otw_EJn.js +25 -0
  5. package/server/client/dist/assets/{Callout-Cye6_6BM.js → Callout-C1QiCWCa.js} +1 -1
  6. package/server/client/dist/assets/{CheckCircle.es-BTloiuti.js → CheckCircle.es-C7fkzE3t.js} +1 -1
  7. package/server/client/dist/assets/{Copy.es-CkLUgwY-.js → Copy.es-D6rl6b78.js} +1 -1
  8. package/server/client/dist/assets/{File.es-c83QExqr.js → File.es-CcjtzE38.js} +1 -1
  9. package/server/client/dist/assets/{FlowArrow.es-DWiIXWQG.js → FlowArrow.es-CAIThqWk.js} +1 -1
  10. package/server/client/dist/assets/{Graph-jbPLcne9.js → Graph-BHsmPDPh.js} +1 -1
  11. package/server/client/dist/assets/{Image.es-vY-nTyOe.js → Image.es-BDpo5R66.js} +1 -1
  12. package/server/client/dist/assets/Note-Dq2Szaxd.js +19 -0
  13. package/server/client/dist/assets/{NotePropertiesPanel-uO-JKy19.js → NotePropertiesPanel-Cu3RgDic.js} +2 -2
  14. package/server/client/dist/assets/{Plus.es-CaRgmXc_.js → Plus.es-P9Fjwtud.js} +1 -1
  15. package/server/client/dist/assets/{Reminders-BAgZEUwV.js → Reminders-DKm0GFI2.js} +1 -1
  16. package/server/client/dist/assets/{Search-D0yR4DTH.js → Search-DVROxY_B.js} +1 -1
  17. package/server/client/dist/assets/{SurfaceCard-BAlcul6z.js → SurfaceCard-D_OU_Oy6.js} +1 -1
  18. package/server/client/dist/assets/{Tag-B8UYGbt9.js → Tag-wMHTRwlF.js} +1 -1
  19. package/server/client/dist/assets/{TagNotes-CDVHz74G.js → TagNotes-BRza6i14.js} +1 -1
  20. package/server/client/dist/assets/{Trash.es-prxIxo9c.js → Trash.es-BeR1sZMe.js} +1 -1
  21. package/server/client/dist/assets/{ViewChip-Cq_YzRvB.js → ViewChip-D-Ax5PdL.js} +1 -1
  22. package/server/client/dist/assets/{Views-Cjdbbut-.js → Views-CL7rC05G.js} +1 -1
  23. package/server/client/dist/assets/{abnfDiagram-VRR7QNED-2cuaaDg0.js → abnfDiagram-N423BO3Z-D44O4T7q.js} +1 -1
  24. package/server/client/dist/assets/{app-Clwvoiwx.js → app-CyQtGTtn.js} +3 -3
  25. package/server/client/dist/assets/{arc-Cr-oYJoQ.js → arc-Cil9fXuW.js} +1 -1
  26. package/server/client/dist/assets/architectureDiagram-T3A2C74G-Cjq6ayF2.js +36 -0
  27. package/server/client/dist/assets/{blockDiagram-677ZJIJ3-evR8rlpQ.js → blockDiagram-VBNYF7ZC-B2Xm5N0i.js} +1 -1
  28. package/server/client/dist/assets/{c4Diagram-LMCZKHZV-zCjuWUmC.js → c4Diagram-5PPSVZJV-Dp0y-lCR.js} +1 -1
  29. package/server/client/dist/assets/channel-DZFalh-h.js +1 -0
  30. package/server/client/dist/assets/{chunk-32BRIVSS-102-EyWU.js → chunk-2GRJ4B5K-CWaaNkFx.js} +1 -1
  31. package/server/client/dist/assets/{chunk-2Q5K7J3B-P0v1gRui.js → chunk-2Q5K7J3B-Ces-xz2S.js} +1 -1
  32. package/server/client/dist/assets/{chunk-EX3LRPZG-k5hlNinR.js → chunk-5RXB4S5H-B-4Chlfc.js} +1 -1
  33. package/server/client/dist/assets/{chunk-5VM5RSS4-uqI_1K1p.js → chunk-5VM5RSS4-C8_HVwuz.js} +1 -1
  34. package/server/client/dist/assets/{chunk-MOJQB5TN-B-LmIwhJ.js → chunk-6Q2QTUOP-xZ8ofRqk.js} +1 -1
  35. package/server/client/dist/assets/{chunk-V7JOEXUC-CmSzAkUx.js → chunk-GF5L2VYU-Bpa43a7s.js} +1 -1
  36. package/server/client/dist/assets/{chunk-JWPE2WC7-PLvgEy_B.js → chunk-JWPE2WC7-DsyTXbuq.js} +1 -1
  37. package/server/client/dist/assets/{chunk-VR4S4FIN-IiOfWaBG.js → chunk-KBJHAD2P-BDhjm9-8.js} +1 -1
  38. package/server/client/dist/assets/{chunk-RYQCIY6F-CaNSMki0.js → chunk-RYQCIY6F-Cn-jdp6I.js} +1 -1
  39. package/server/client/dist/assets/{chunk-XXDRQBXY-DRXrI6SM.js → chunk-XXDRQBXY-BKsc_0wh.js} +1 -1
  40. package/server/client/dist/assets/classDiagram-JCYQIIEL-CkEhFvVV.js +1 -0
  41. package/server/client/dist/assets/classDiagram-v2-OCEON4UE-CkEhFvVV.js +1 -0
  42. package/server/client/dist/assets/{cose-bilkent-JH36ORCC-COcEaZRS.js → cose-bilkent-JH36ORCC-jmn3Q4zj.js} +1 -1
  43. package/server/client/dist/assets/{cynefinDiagram-TSTJHNR4-CSHqcg9K.js → cynefinDiagram-MW4NZA55-BpLstuBJ.js} +1 -1
  44. package/server/client/dist/assets/{dagre-VKFMJZFB-XAWCPOS0.js → dagre-VZM6K2ZE-B5ft5Yzm.js} +1 -1
  45. package/server/client/dist/assets/{diagram-OA4YK3LP-CXTlHB5A.js → diagram-7IWD3JNH-B_W9IsWZ.js} +1 -1
  46. package/server/client/dist/assets/{diagram-FQU43EPY-scBCDUnE.js → diagram-B4RE2ZJO-32chS3GX.js} +1 -1
  47. package/server/client/dist/assets/{diagram-NH7WQ7WH-DcWalY4j.js → diagram-LBJQPF4R-Bqupdb3-.js} +1 -1
  48. package/server/client/dist/assets/{diagram-G47NLZAW-nPKP5kd8.js → diagram-Q27KOJAE-BD8jKBsv.js} +1 -1
  49. package/server/client/dist/assets/diagram-UB23O5K3-C40jAU8D.js +41 -0
  50. package/server/client/dist/assets/{ebnfDiagram-CCIWWBDH-nHt3vRNt.js → ebnfDiagram-BXEA7PRR-BQfW9mFA.js} +1 -1
  51. package/server/client/dist/assets/{erDiagram-Q63AITRT-K6stUUV2.js → erDiagram-JOGREHBK-ILZnLzz2.js} +1 -1
  52. package/server/client/dist/assets/{flowDiagram-23GEKE2U-DDWtKrEp.js → flowDiagram-UKHOOZJN-CDmwr2dI.js} +4 -4
  53. package/server/client/dist/assets/{ganttDiagram-NO4QXBWP-Daqh7b4I.js → ganttDiagram-PKOTCBZU-DBcrUc49.js} +1 -1
  54. package/server/client/dist/assets/{gitGraphDiagram-IHSO6WYX-D73CLkcG.js → gitGraphDiagram-DS77QQ5N-_xO6__FK.js} +1 -1
  55. package/server/client/dist/assets/{image.api-Bbwmcw0T.js → image.api-CtfyPwkV.js} +1 -1
  56. package/server/client/dist/assets/{index-PjoL3frH.js → index-BEfKfbvr.js} +1 -1
  57. package/server/client/dist/assets/{infoDiagram-FWYZ7A6U-Bc1YI5Iu.js → infoDiagram-6WML65LV-CuIIcu-L.js} +1 -1
  58. package/server/client/dist/assets/{ishikawaDiagram-FXEZZL3T-BJDXbmaY.js → ishikawaDiagram-WSZJBQD7-BVtRGTOj.js} +1 -1
  59. package/server/client/dist/assets/{journeyDiagram-5HDEW3XC-DlyJx4xT.js → journeyDiagram-NVQOT4AX-D5-Nzb2N.js} +1 -1
  60. package/server/client/dist/assets/{kanban-definition-HUTT4EX6-AmTeXesc.js → kanban-definition-27J2QSJJ-DmOhgC8H.js} +1 -1
  61. package/server/client/dist/assets/{manage-image-detail-CLPXVSZf.js → manage-image-detail-BNYOCSmu.js} +1 -1
  62. package/server/client/dist/assets/{manage-image-DCBgglLx.js → manage-image-m-7v_Z1W.js} +1 -1
  63. package/server/client/dist/assets/{mcp-Y2p95Lm9.js → mcp-B-aGeAQD.js} +1 -1
  64. package/server/client/dist/assets/{mcp-admin-adapter-z9OaMVrl.js → mcp-admin-adapter-Cw6w5mfg.js} +1 -1
  65. package/server/client/dist/assets/mermaid.core-C2tL9tq7.js +308 -0
  66. package/server/client/dist/assets/{mindmap-definition-LN4V7U3C-C_6tKVmY.js → mindmap-definition-FAOFIHXS-DuvsPqrh.js} +1 -1
  67. package/server/client/dist/assets/{note-ui-Cv6quEYh.js → note-ui-CYsZc3DI.js} +1 -1
  68. package/server/client/dist/assets/{pegDiagram-2B236MQR-CGKCNdrV.js → pegDiagram-VL7TDLO6-D64crEZV.js} +1 -1
  69. package/server/client/dist/assets/{pieDiagram-ENE6RG2P-C3cMh7d5.js → pieDiagram-7S7Q4E2Y--kl7vopC.js} +1 -1
  70. package/server/client/dist/assets/{placeholder-D4Lkz_or.js → placeholder-C5fNzKrL.js} +1 -1
  71. package/server/client/dist/assets/{properties-CwxDtivz.js → properties-B93_V2uD.js} +1 -1
  72. package/server/client/dist/assets/{quadrantDiagram-ABIIQ3AL-CVVzGxBd.js → quadrantDiagram-CIZ2JOQS-DuvJ4M2y.js} +1 -1
  73. package/server/client/dist/assets/{railroadDiagram-RFXS5EU6-wa-4aJR9.js → railroadDiagram-AXF67PYL-BMKmCOY7.js} +1 -1
  74. package/server/client/dist/assets/{requirementDiagram-TGXJPOKE-DyuC9W7q.js → requirementDiagram-LRYGKXZP-DY1eJcy0.js} +1 -1
  75. package/server/client/dist/assets/route-preload.js +2 -2
  76. package/server/client/dist/assets/{sankeyDiagram-HTMAVEWB-B70y-MQg.js → sankeyDiagram-W5VNT64P-C3Ka4GKM.js} +1 -1
  77. package/server/client/dist/assets/{search-BlbdHNDA.js → search-BmXuuK26.js} +1 -1
  78. package/server/client/dist/assets/{search-admin-adapter-BLMYNm9w.js → search-admin-adapter-Dj0KKKrJ.js} +1 -1
  79. package/server/client/dist/assets/{sequenceDiagram-DBY2YBRQ-mGkh3IEy.js → sequenceDiagram-SI44F4Z6-Bhpwtk2s.js} +1 -1
  80. package/server/client/dist/assets/{sizeCapture-X5ZJPWSS-BhnCNP5z.js → sizeCapture-X5ZJPWSS-BFta71TW.js} +1 -1
  81. package/server/client/dist/assets/{stateDiagram-2N3HPSRC-BqSKSfKi.js → stateDiagram-OKZ733FA-D6GCn1io.js} +1 -1
  82. package/server/client/dist/assets/{stateDiagram-v2-6OUMAXLB-Wl7lGTf3.js → stateDiagram-v2-UEYNNEHI-g4yinGDn.js} +1 -1
  83. package/server/client/dist/assets/{swimlanes-5IMT3BWC-CZ7ckdmY.js → swimlanes-SLNWSIFB-DLFvOjUl.js} +2 -2
  84. package/server/client/dist/assets/swimlanesDiagram-ULZ7WXOC-Ci4mcvmo.js +8 -0
  85. package/server/client/dist/assets/{tag.api-bU52U0tT.js → tag.api-BJ6eaHui.js} +1 -1
  86. package/server/client/dist/assets/{time-DZKkPFUi.js → time-DI902Sxa.js} +1 -1
  87. package/server/client/dist/assets/{timeline-definition-FHXFAJF6-C-t9-x4M.js → timeline-definition-Z64GVDOM-DTSIekSM.js} +1 -1
  88. package/server/client/dist/assets/{trash-BNeUFJnC.js → trash-GulvRh9f.js} +1 -1
  89. package/server/client/dist/assets/{useNoteMutate-VJYw0Vt_.js → useNoteMutate-xEIypxi5.js} +1 -1
  90. package/server/client/dist/assets/{useReminderMutate-DaO0QssD.js → useReminderMutate-kTBRSjYc.js} +1 -1
  91. package/server/client/dist/assets/{vennDiagram-L72KCM5P-CP014Nl5.js → vennDiagram-T6HMQDX7-CMNqSI2X.js} +1 -1
  92. package/server/client/dist/assets/{wardleyDiagram-EHGQE667-B7Ghd-94.js → wardleyDiagram-T6FBY63Y-DV-JOYqB.js} +1 -1
  93. package/server/client/dist/assets/{xychartDiagram-FW5EYKEG-C4YGS0YJ.js → xychartDiagram-ELKLHX3M-BUIniF4m.js} +4 -4
  94. package/server/client/dist/index.html +3 -3
  95. package/server/dist/features/note/graphql/note.query.resolver.js +18 -16
  96. package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +2 -3
  97. package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +4 -3
  98. package/server/dist/features/view/graphql/view.query.resolver.js +15 -7
  99. package/server/dist/modules/blocknote.js +33 -17
  100. package/server/client/dist/assets/Calendar-CBYfyLwm.js +0 -25
  101. package/server/client/dist/assets/Note-BTQLB80Y.js +0 -25
  102. package/server/client/dist/assets/architectureDiagram-ZJ3FMSHR-HF8-bEM0.js +0 -36
  103. package/server/client/dist/assets/channel-Cq5ZBtfo.js +0 -1
  104. package/server/client/dist/assets/classDiagram-OUVF2IWQ-BqUaa8a6.js +0 -1
  105. package/server/client/dist/assets/classDiagram-v2-EOCWNBFH-BqUaa8a6.js +0 -1
  106. package/server/client/dist/assets/diagram-WEI45ONY-D1uvaJub.js +0 -41
  107. package/server/client/dist/assets/mermaid.core-B528P54n.js +0 -308
  108. package/server/client/dist/assets/swimlanesDiagram-G3AALYLV-BZL3DQ-c.js +0 -8
@@ -62,12 +62,6 @@ function visitBlocks(blocks, visit) {
62
62
  }
63
63
  }
64
64
  }
65
- function createTagPlaceholder(index) {
66
- return `${TAG_PLACEHOLDER_PREFIX}${index}${TAG_PLACEHOLDER_SUFFIX}`;
67
- }
68
- function createReferencePlaceholder(index) {
69
- return `${REFERENCE_PLACEHOLDER_PREFIX}${index}${REFERENCE_PLACEHOLDER_SUFFIX}`;
70
- }
71
65
  function isValidNoteIdString(id) {
72
66
  if (!/^[1-9]\d*$/.test(id)) {
73
67
  return false;
@@ -143,7 +137,7 @@ function mapBlocks(blocks, mapContent) {
143
137
  children: block.children?.length ? mapBlocks(block.children, mapContent) : []
144
138
  }));
145
139
  }
146
- function preprocessCustomInlineContent(blocks, placeholderToTag, nextPlaceholderIndex) {
140
+ function preprocessCustomInlineContent(blocks, placeholderToTag, createTagPlaceholder) {
147
141
  return mapBlocks(
148
142
  blocks,
149
143
  (content) => mapBlockContent(content, (inline) => {
@@ -158,7 +152,7 @@ function preprocessCustomInlineContent(blocks, placeholderToTag, nextPlaceholder
158
152
  }
159
153
  if (inline.type === "tag") {
160
154
  const tag = inline.props?.tag || "";
161
- const placeholder = createTagPlaceholder(nextPlaceholderIndex.value++);
155
+ const placeholder = createTagPlaceholder();
162
156
  placeholderToTag.set(placeholder, tag);
163
157
  return {
164
158
  type: "text",
@@ -179,9 +173,13 @@ function restoreTagPlaceholdersInMarkdown(markdown, placeholderToTag) {
179
173
  }
180
174
  function preprocessMarkdownExplicitTags(markdown) {
181
175
  const placeholderToTag = /* @__PURE__ */ new Map();
182
- let nextPlaceholderIndex = 0;
176
+ const createPlaceholder = createProtectedTextPlaceholderFactory(
177
+ markdown,
178
+ TAG_PLACEHOLDER_PREFIX,
179
+ TAG_PLACEHOLDER_SUFFIX
180
+ );
183
181
  const preprocessedMarkdown = markdown.replace(/\[(@[^\s[\]]+)\]/g, (_match, tagToken) => {
184
- const placeholder = createTagPlaceholder(nextPlaceholderIndex++);
182
+ const placeholder = createPlaceholder();
185
183
  placeholderToTag.set(placeholder, tagToken);
186
184
  return placeholder;
187
185
  });
@@ -192,6 +190,11 @@ function preprocessMarkdownExplicitTags(markdown) {
192
190
  }
193
191
  function preprocessMarkdownExplicitReferences(markdown) {
194
192
  const placeholderToReference = /* @__PURE__ */ new Map();
193
+ const createPlaceholder = createProtectedTextPlaceholderFactory(
194
+ markdown,
195
+ REFERENCE_PLACEHOLDER_PREFIX,
196
+ REFERENCE_PLACEHOLDER_SUFFIX
197
+ );
195
198
  let activeFence = null;
196
199
  const preprocessedLines = markdown.split(/(?<=\n)/).map((line) => {
197
200
  const { body: lineBody, lineEnding } = splitMarkdownLineEnding(line);
@@ -212,31 +215,39 @@ function preprocessMarkdownExplicitReferences(markdown) {
212
215
  if (/^(?: {4,}|\t)/.test(lineBody)) {
213
216
  return line;
214
217
  }
215
- return `${replaceMarkdownLineExplicitReferences(lineBody, placeholderToReference)}${lineEnding}`;
218
+ return `${replaceMarkdownLineExplicitReferences(
219
+ lineBody,
220
+ placeholderToReference,
221
+ createPlaceholder
222
+ )}${lineEnding}`;
216
223
  });
217
224
  return {
218
225
  markdown: preprocessedLines.join(""),
219
226
  placeholderToReference
220
227
  };
221
228
  }
222
- function replaceMarkdownLineExplicitReferences(line, placeholderToReference) {
229
+ function replaceMarkdownLineExplicitReferences(line, placeholderToReference, createPlaceholder) {
223
230
  let result = "";
224
231
  let cursor = 0;
225
232
  while (cursor < line.length) {
226
233
  const codeSpan = findNextInlineCodeSpan(line, cursor);
227
234
  if (!codeSpan) {
228
- result += replaceExplicitReferenceTokens(line.slice(cursor), placeholderToReference);
235
+ result += replaceExplicitReferenceTokens(line.slice(cursor), placeholderToReference, createPlaceholder);
229
236
  break;
230
237
  }
231
- result += replaceExplicitReferenceTokens(line.slice(cursor, codeSpan.start), placeholderToReference);
238
+ result += replaceExplicitReferenceTokens(
239
+ line.slice(cursor, codeSpan.start),
240
+ placeholderToReference,
241
+ createPlaceholder
242
+ );
232
243
  result += line.slice(codeSpan.start, codeSpan.end);
233
244
  cursor = codeSpan.end;
234
245
  }
235
246
  return result;
236
247
  }
237
- function replaceExplicitReferenceTokens(text, placeholderToReference) {
248
+ function replaceExplicitReferenceTokens(text, placeholderToReference, createPlaceholder) {
238
249
  return text.replace(/\[\[([^\n]+?)\]\]\(note:([^)\s]+)\)/g, (token, title, id) => {
239
- const placeholder = createReferencePlaceholder(placeholderToReference.size);
250
+ const placeholder = createPlaceholder();
240
251
  placeholderToReference.set(placeholder, { id, title, token });
241
252
  return placeholder;
242
253
  });
@@ -1030,7 +1041,12 @@ async function blocksToMarkdown(contentJson) {
1030
1041
  const blocks = parseBlockNoteContent(contentJson);
1031
1042
  const supportedBlocks = stripUnsupportedMarkdownBlocks(blocks);
1032
1043
  const placeholderToTag = /* @__PURE__ */ new Map();
1033
- const processed = preprocessCustomInlineContent(supportedBlocks, placeholderToTag, { value: 0 });
1044
+ const createTagPlaceholder = createProtectedTextPlaceholderFactory(
1045
+ contentJson,
1046
+ TAG_PLACEHOLDER_PREFIX,
1047
+ TAG_PLACEHOLDER_SUFFIX
1048
+ );
1049
+ const processed = preprocessCustomInlineContent(supportedBlocks, placeholderToTag, createTagPlaceholder);
1034
1050
  const editor = getEditor();
1035
1051
  const markdown = await editor.blocksToMarkdownLossy(
1036
1052
  processed
@@ -1,25 +0,0 @@
1
- import{r as i,j as e}from"./floating-ui.react-dom-BWTnA00G.js";import{C as de,T as p,c as D,m as j,F as me,y as he,z as F,B as C,R as xe,a2 as pe,M as k,q as P,g as J,P as ue,h as ge}from"./time-DZKkPFUi.js";import{N as ye,C as fe}from"./url-BvjSC8PU.js";import{e as X}from"./app-Clwvoiwx.js";import{s as V,a as L}from"./useNoteMutate-VJYw0Vt_.js";import{C as be}from"./Callout-Cye6_6BM.js";import"./preload-helper-BXl3LOEh.js";import"./sortable.esm-DgSW3bAA.js";const je=new Map([["bold",i.createElement(i.Fragment,null,i.createElement("path",{d:"M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Zm112-80a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,132Zm0,40a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,172Z"}))],["duotone",i.createElement(i.Fragment,null,i.createElement("path",{d:"M208,88H152V32Z",opacity:"0.2"}),i.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Zm-32-80a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,136Zm0,32a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,168Z"}))],["fill",i.createElement(i.Fragment,null,i.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,176H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm-8-56V44l44,44Z"}))],["light",i.createElement(i.Fragment,null,i.createElement("path",{d:"M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Zm-34-82a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,136Zm0,32a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,168Z"}))],["regular",i.createElement(i.Fragment,null,i.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Zm-32-80a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,136Zm0,32a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,168Z"}))],["thin",i.createElement(i.Fragment,null,i.createElement("path",{d:"M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Zm-36-84a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,136Zm0,32a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,168Z"}))]]),G=i.forwardRef((t,a)=>i.createElement(de,{ref:a,...t,weights:je}));G.displayName="FileTextIcon";const T=G,z="bg-surface shadow-[inset_0_0_0_1px_var(--border-subtle)]",K="bg-emphasis",U=(t,a)=>`${t} ${t===1?a:`${a}s`}`,Ne=({day:t,dateLabel:a,cellClassName:s,dayNumberClassName:c,isCurrentMonth:d,isToday:x,isSelected:m,noteCount:l,reminderCount:o,previewItems:u,overflowCount:n,onSelect:g})=>{const N=l+o,A=`${a}, ${U(l,"note")}, ${U(o,"reminder")}`;return e.jsxs("button",{type:"button",disabled:!d,"aria-label":A,"aria-pressed":d?m:void 0,"aria-current":d&&x?"date":void 0,onClick:g,className:D("focus-ring-soft relative flex min-h-16 min-w-0 flex-col p-1.5 text-left outline-none transition-colors focus-visible:z-10 sm:min-h-24 sm:p-2 lg:min-h-36 lg:p-2.5",s),children:[e.jsx(p,{as:"span",variant:"label",className:D("flex h-6 min-w-6 items-center justify-center self-end whitespace-nowrap rounded-[9px] px-1.5 sm:h-7 sm:min-w-7 lg:!text-sm",c),children:t}),d&&N>0?e.jsxs("div",{"aria-hidden":"true",className:"mt-1.5 w-full sm:mt-2",children:[e.jsxs("div",{className:"flex flex-col gap-0.5 text-fg-tertiary sm:hidden",children:[l>0?e.jsxs("span",{className:"flex items-center justify-between leading-none",children:[e.jsx(T,{className:"shrink-0",size:10}),e.jsx("span",{className:"whitespace-nowrap text-[10px] font-semibold text-fg-secondary tabular-nums",children:l})]}):null,o>0?e.jsxs("span",{className:"flex items-center justify-between leading-none",children:[e.jsx(V,{className:"shrink-0",size:10}),e.jsx("span",{className:"whitespace-nowrap text-[10px] font-semibold text-fg-secondary tabular-nums",children:o})]}):null]}),e.jsxs("div",{className:"hidden flex-col gap-1 sm:flex 2xl:hidden",children:[l>0?e.jsxs("span",{className:D("flex min-h-7 min-w-0 items-center justify-between gap-1 rounded-[8px] px-2 py-1.5 text-fg-tertiary",z),children:[e.jsx(p,{as:"span",variant:"micro",weight:"medium",tone:"secondary",className:"truncate !text-[11px] !leading-4",children:"Notes"}),e.jsx(p,{as:"span",variant:"micro",weight:"semibold",tone:"secondary",className:"!text-[11px] !leading-4 tabular-nums",children:l})]}):null,o>0?e.jsxs("span",{className:D("flex min-h-7 min-w-0 items-center justify-between gap-1 rounded-[8px] px-2 py-1.5 text-fg-tertiary",K),children:[e.jsx(p,{as:"span",variant:"micro",weight:"medium",tone:"secondary",className:"truncate !text-[11px] !leading-4",children:"Reminders"}),e.jsx(p,{as:"span",variant:"micro",weight:"semibold",tone:"secondary",className:"!text-[11px] !leading-4 tabular-nums",children:o})]}):null]}),e.jsxs("div",{className:"hidden flex-col gap-1 2xl:flex",children:[u.map(v=>e.jsxs("span",{className:D("flex min-h-8 min-w-0 items-center gap-1.5 rounded-[8px] px-2 py-1.5",v.type==="reminder"?K:z),children:[v.type==="reminder"?e.jsx(V,{className:"shrink-0 text-fg-tertiary",size:12}):e.jsx(T,{className:"shrink-0 text-fg-tertiary",size:12}),e.jsx(p,{as:"span",variant:"label",weight:"medium",tone:"secondary",className:D("truncate",v.isCompleted&&"line-through"),children:v.title})]},v.key)),n>0?e.jsxs(p,{as:"span",variant:"micro",weight:"medium",tone:"secondary",className:"flex min-h-4 items-center px-2 !text-[11px] !leading-4",children:["+",n," more"]}):null]})]}):null]})},H=2,ve=({year:t,month:a,day:s,isCurrentMonth:c,isSunday:d,isToday:x,isSelected:m,isPast:l,notes:o,reminders:u,onSelect:n})=>{const g=o.slice(0,H).map(w=>({key:`note-${w.id}`,type:"note",title:w.title})),N=u.slice(0,H).map(w=>({key:`reminder-${w.id}`,type:"reminder",title:w.content||w.note?.title||"No title",isCompleted:w.completed})),A=(l?[...g,...N]:[...N,...g]).slice(0,H),v=()=>c?m?"bg-elevated shadow-[inset_0_0_0_1px_var(--border-secondary)] hover:bg-surface":"bg-surface hover:bg-muted":"cursor-default bg-[var(--page-bg)] text-fg-disabled",S=()=>x?"bg-cta font-semibold text-fg-on-filled":c?d?"font-semibold text-fg-weekend":"font-semibold text-fg-secondary":"font-medium text-fg-tertiary";return e.jsx(Ne,{day:s,dateLabel:j(new Date(t,a-1,s)).format("dddd, MMMM D, YYYY"),cellClassName:v(),dayNumberClassName:S(),isCurrentMonth:c,isToday:x,isSelected:m,noteCount:o.length,reminderCount:u.length,previewItems:A,overflowCount:Math.max(0,o.length+u.length-H),onSelect:n})},we=ve,ee=({params:t,toneClassName:a="",header:s,title:c,meta:d,titleClassName:x=""})=>e.jsx(me,{to:ye,params:t,className:"focus-ring-soft group block rounded-[8px] outline-none",children:e.jsxs("div",{className:D("flex items-start gap-1.5 rounded-[8px] px-1.5 py-1 transition-colors group-hover:bg-muted",a),children:[s?e.jsx("span",{className:"mt-[2px] flex h-4 w-4 shrink-0 items-center justify-center text-fg-tertiary",children:s}):e.jsx("span",{"aria-hidden":"true",className:"mt-[6px] h-1.5 w-1.5 shrink-0 rounded-full bg-fg-placeholder"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(p,{as:"div",variant:"label",weight:"medium",tone:"secondary",className:D("line-clamp-1",x),children:c}),d?e.jsx(p,{as:"div",variant:"micro",weight:"medium",tone:"secondary",className:"mt-0.5 !text-[11px] !leading-4",children:d}):null]})]})}),Me=({note:t,type:a})=>e.jsx(ee,{params:{id:t.id},header:e.jsx(T,{size:12}),title:t.title,meta:j(Number(a==="create"?t.createdAt:t.updatedAt)).format("HH:mm")}),De=({reminder:t})=>e.jsx(ee,{params:{id:String(t.note?.id??t.noteId)},header:e.jsx(V,{size:12}),title:t.content||t.note?.title||"No title",titleClassName:t.completed?"line-through":"",meta:j(Number(t.reminderDate)).format("HH:mm")}),Ee=(t,a)=>t.map(s=>s.type==="note"?e.jsx(Me,{note:s.item,type:a},`note-${s.item.id}`):e.jsx(De,{reminder:s.item},`reminder-${s.item.id}`)),q=(t,a)=>`${t} ${t===1?a:`${a}s`}`,Ae="mt-3 flex min-h-0 flex-1 flex-col gap-1 overflow-y-auto overscroll-y-contain pr-2 [scrollbar-color:var(--border-secondary)_transparent] [scrollbar-width:thin] [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border-secondary [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar]:w-1.5",te=t=>j(new Date(t.year,t.month-1,t.day)).format("dddd, MMMM D"),Q=({day:t,type:a,isLoading:s,presentation:c="rail"})=>{const d=i.useMemo(()=>{if(!t)return[];const o=t.notes.map(n=>({type:"note",item:n})),u=t.reminders.map(n=>({type:"reminder",item:n}));return t.isPast?[...o,...u]:[...u,...o]},[t]);if(!t)return e.jsx("section",{"aria-label":"Day details",className:"flex h-full min-h-40 items-center justify-center text-center",children:e.jsx(p,{as:"p",variant:"meta",weight:"medium",tone:"secondary",children:"Select a day to see its activity."})});const x=te(t),m=s?"Loading activity...":[q(t.notes.length,"note"),q(t.reminders.length,"reminder")].join(" · "),l=s?null:e.jsx("div",{className:c==="rail"?Ae:"flex flex-col gap-1",children:d.length>0?Ee(d,a):e.jsx(p,{as:"p",variant:"meta",weight:"medium",tone:"secondary",className:"py-8 text-center",children:"No activity on this day."})});return c==="modal"?e.jsxs("div",{"aria-label":`${x} activity`,children:[e.jsx(p,{as:"p",variant:"label",weight:"medium",tone:"secondary",className:"mb-3",children:m}),l]}):e.jsxs("section",{"aria-label":`${x} details`,className:"flex h-full min-h-0 flex-col",children:[e.jsxs("div",{className:"flex shrink-0 items-start gap-2 border-b border-border-subtle/80 pb-3",children:[e.jsx(X,{"aria-hidden":"true",className:"mt-0.5 shrink-0 text-fg-tertiary",size:15}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(p,{as:"h2",variant:"subheading",weight:"semibold",tracking:"tight",children:x}),e.jsx(p,{as:"p",variant:"label",weight:"medium",tone:"secondary",className:"mt-0.5",children:m})]})]}),l]})},$e=["January","February","March","April","May","June","July","August","September","October","November","December"],Re=({month:t,year:a,type:s,onPrevMonth:c,onNextMonth:d,onToday:x,onTypeChange:m})=>e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex flex-wrap items-end gap-x-2.5 gap-y-1",children:[e.jsx(p,{as:"h1",variant:"display",weight:"bold",tracking:"tighter",className:"text-2xl leading-none sm:text-[2.15rem]",children:$e[t-1]}),e.jsx(p,{as:"span",variant:"subheading",weight:"medium",tone:"secondary",tracking:"tight",className:"pb-0.5",children:a})]}),e.jsx(p,{as:"p",variant:"meta",weight:"medium",tone:"secondary",className:"hidden sm:block",children:"Track note activity and reminders across the month"})]}),e.jsx("div",{className:"flex lg:justify-end",children:e.jsxs("div",{className:"flex w-full flex-col gap-2 sm:inline-flex sm:w-auto sm:flex-row sm:items-center sm:gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(X,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(p,{id:"calendar-note-date-label",as:"span",variant:"label",weight:"medium",tone:"secondary",children:"Note date"}),e.jsxs(he,{value:s,"aria-labelledby":"calendar-note-date-label",onValueChange:o=>m(o),variant:"ghost",size:"sm",children:[e.jsx(F,{value:"create",children:"Created"}),e.jsx(F,{value:"update",children:"Updated"})]})]}),e.jsx("div",{className:"hidden h-5 w-px bg-divider sm:block"}),e.jsxs("div",{className:"flex items-center justify-between sm:justify-start sm:gap-1.5",children:[e.jsx(C,{variant:"ghost",size:"sm",onClick:x,children:"Today"}),e.jsxs("div",{className:"flex items-center gap-1",role:"group","aria-label":"Month navigation",children:[e.jsx(C,{variant:"ghost",size:"icon-sm","aria-label":"Previous month",onClick:c,children:e.jsx(xe,{width:18,height:18})}),e.jsx(C,{variant:"ghost",size:"icon-sm","aria-label":"Next month",onClick:d,children:e.jsx(pe,{width:18,height:18})})]})]})]})})]}),ke=["SUN","MON","TUE","WED","THU","FRI","SAT"],W="(min-width: 1280px)",He=({days:t,type:a,isLoading:s,selectedDayKey:c,onSelectedDayChange:d})=>{const[x,m]=i.useState(!1),l=i.useMemo(()=>t.find(n=>n.key===c),[t,c]);i.useEffect(()=>{const n=window.matchMedia(W),g=N=>{N.matches&&m(!1)};return n.addEventListener("change",g),()=>n.removeEventListener("change",g)},[]);const o=n=>{d(n),window.matchMedia(W).matches||m(!0)},u=l?te(l):"Day details";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"min-w-0 xl:grid xl:grid-cols-[minmax(0,1fr)_20rem] 2xl:grid-cols-[minmax(0,1fr)_22rem]",children:[e.jsx("section",{"aria-label":"Month overview","aria-busy":s,className:"min-w-0 xl:pr-5",children:e.jsx("div",{className:"overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.jsxs("div",{className:"min-w-[19rem]",children:[e.jsx("div",{className:"mb-2 grid grid-cols-7 gap-px",children:ke.map((n,g)=>e.jsxs(p,{as:"div",variant:"label",weight:"semibold",tracking:"wider",transform:"uppercase",className:`py-1.5 text-center ${g===0?"text-fg-weekend":"text-fg-secondary"}`,children:[e.jsx("span",{"aria-hidden":"true",className:"sm:hidden",children:n.slice(0,1)}),e.jsx("span",{className:"hidden sm:inline",children:n})]},n))}),e.jsx("div",{className:"grid grid-cols-7 gap-px overflow-hidden rounded-[12px] border border-border-subtle/80 bg-border-subtle/70",children:t.map(n=>e.jsx(we,{year:n.year,month:n.month,day:n.day,isCurrentMonth:n.isCurrentMonth,isSunday:n.isSunday,isToday:n.isToday,isSelected:n.key===c,isPast:n.isPast,notes:n.notes,reminders:n.reminders,onSelect:()=>o(n.key)},n.key))})]})})}),e.jsx("aside",{className:"relative hidden min-h-0 border-l border-border-subtle xl:block","aria-label":"Selected day",children:e.jsx("div",{className:"absolute inset-y-0 right-0 left-5",children:e.jsx(Q,{day:l,type:a,isLoading:s})})})]}),e.jsxs(k,{isOpen:x&&!!l,onClose:()=>m(!1),variant:"inspect",className:"xl:hidden",children:[e.jsx(k.Header,{title:u,onClose:()=>m(!1)}),e.jsxs(k.Body,{children:[e.jsxs(k.Description,{className:"sr-only",children:["View notes and reminders for ",u,"."]}),e.jsx(Q,{day:l,type:a,isLoading:s,presentation:"modal"})]})]})]})},Se=`
2
- query NotesInDateRange($dateRange: DateRangeInput) {
3
- notesInDateRange(dateRange: $dateRange) {
4
- id
5
- title
6
- createdAt
7
- updatedAt
8
- }
9
- }
10
- `,Ce=`
11
- query RemindersInDateRange($dateRange: DateRangeInput) {
12
- remindersInDateRange(dateRange: $dateRange) {
13
- id
14
- noteId
15
- reminderDate
16
- completed
17
- priority
18
- content
19
- note {
20
- id
21
- title
22
- }
23
- }
24
- }
25
- `,Ve=async t=>{const a=await J(Se,{dateRange:t});if(a.type==="error")throw a;return a.notesInDateRange},Te=async t=>{const a=await J(Ce,{dateRange:t});if(a.type==="error")throw a;return a.remindersInDateRange},_e=({year:t,month:a})=>{const s=`${t}-${String(a).padStart(2,"0")}-01`,c=a===12?1:a+1,x=`${a===12?t+1:t}-${String(c).padStart(2,"0")}-01`,m={start:s,end:x},l=L({queryKey:P.calendar.notesInDateRange(t,a),queryFn:()=>Ve(m)}),o=L({queryKey:P.reminders.inDateRange(t,a),queryFn:()=>Te(m)});return{notes:l.data??[],reminders:o.data??[],isLoading:l.isLoading||o.isLoading,isError:l.isError||o.isError}},Ie=[],Ze=[],B=ge(fe);function qe(){const t=B.useNavigate(),{year:a,month:s,type:c}=B.useSearch(),d=`${a}-${s}`,[x,m]=i.useState(()=>({monthKey:d})),{notes:l,reminders:o,isLoading:u,isError:n}=_e({year:a,month:s}),g=i.useMemo(()=>{const h=j(),y=`${h.year()}-${h.month()+1}-${h.date()}`,f=new Map;for(const r of l){const M=c==="create"?j(Number(r.createdAt)):j(Number(r.updatedAt)),b=`${M.year()}-${M.month()+1}-${M.date()}`,E=f.get(b)||[];E.push(r),f.set(b,E)}const $=new Map;for(const r of o){const M=j(Number(r.reminderDate)),b=`${M.year()}-${M.month()+1}-${M.date()}`,E=$.get(b)||[];E.push(r),$.set(b,E)}const ne=new Date(a,s-1,1),re=new Date(a,s,0),_=ne.getDay(),I=re.getDate(),R=[],Z=s===1?12:s-1,O=s===1?a-1:a,ie=new Date(O,Z,0).getDate();for(let r=_-1;r>=0;r--)R.push({day:ie-r,isCurrentMonth:!1,year:O,month:Z});for(let r=1;r<=I;r++)R.push({day:r,isCurrentMonth:!0,year:a,month:s});const Y=(_+I)%7,le=Y===0?0:7-Y,oe=s===12?1:s+1,ce=s===12?a+1:a;for(let r=1;r<=le;r++)R.push({day:r,isCurrentMonth:!1,year:ce,month:oe});return R.map((r,M)=>{const b=`${r.year}-${r.month}-${r.day}`,E=j(`${r.year}-${String(r.month).padStart(2,"0")}-${String(r.day).padStart(2,"0")}`);return{key:b,year:r.year,month:r.month,day:r.day,isCurrentMonth:r.isCurrentMonth,isSunday:M%7===0,isToday:b===y,isPast:E.isBefore(h,"day"),notes:f.get(b)||Ie,reminders:$.get(b)||Ze}})},[a,s,l,o,c]),N=g.find(h=>h.isCurrentMonth&&h.isToday)?.key,A=x.monthKey===d?x.dayKey??N:N,v=()=>{const h=s===1?12:s-1,y=s===1?a-1:a;t({search:f=>({...f,month:h,year:y})})},S=()=>{const h=s===12?1:s+1,y=s===12?a+1:a;t({search:f=>({...f,month:h,year:y})})},w=()=>{const h=j(),y=h.month()+1,f=h.year();m({monthKey:`${f}-${y}`,dayKey:`${f}-${y}-${h.date()}`}),t({search:$=>({...$,month:y,year:f})})},ae=h=>{h&&t({search:y=>({...y,type:h})})},se=h=>{m({monthKey:d,dayKey:h})};return e.jsx(ue,{title:"Calendar",variant:"none",children:n?e.jsx(be,{children:"Failed to load calendar data. Please try again later."}):e.jsxs("div",{className:"-mr-4",children:[e.jsx("div",{className:"border-b border-border-subtle/80 pb-4",children:e.jsx(Re,{month:s,year:a,type:c,onPrevMonth:v,onNextMonth:S,onToday:w,onTypeChange:ae})}),e.jsx("div",{className:"pt-4",children:e.jsx(He,{days:g,type:c,isLoading:u,selectedDayKey:A,onSelectedDayChange:se})})]})})}export{qe as default};
@@ -1,25 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-B528P54n.js","assets/preload-helper-BXl3LOEh.js","assets/floating-ui.react-dom-BWTnA00G.js","assets/transform-BUB79_za.js","assets/katex-DywYRkvg.css"])))=>i.map(i=>d[i]);
2
- import{r as o,j as a}from"./floating-ui.react-dom-BWTnA00G.js";import{al as wn,C as xt,T as S,i as Ve,n as Cn,q as L,M as B,B as k,am as Nn,an as Sn,c as W,K as bt,J as yt,V as Rn,e as Re,u as Ke,m as G,ao as jn,ap as An,aq as En,a2 as kn,s as Tn,ar as Mn,a1 as vt,ah as wt,as as Ue,at as Dn,W as Pn,ai as Ln,aj as _n,au as On,Q as Ye,P as qe,av as Qe,h as Bn,l as ie,F as Hn}from"./time-DZKkPFUi.js";import{M as je,f as Ct,m as Fn,a as Be,b as $n,s as In,k as Nt,l as Un,p as St,j as Rt,o as zn,r as tt,d as Zn}from"./useNoteMutate-VJYw0Vt_.js";import{m as Wn,c as Vn,C as nt}from"./Callout-Cye6_6BM.js";import{J as jt,A as At,N as Kn}from"./NotePropertiesPanel-uO-JKy19.js";import{N as Ae,T as Yn,S as qn}from"./url-BvjSC8PU.js";import{S as Qn}from"./SurfaceCard-BAlcul6z.js";import{b as Gn,c as Jn,u as Xn,R as er}from"./useReminderMutate-DaO0QssD.js";import{n as tr}from"./Plus.es-CaRgmXc_.js";import{h as Ge,m as nr,L as Et,Z as kt,M as rr,K as sr,a as ar}from"./note-ui-Cv6quEYh.js";import{u as or}from"./image.api-Bbwmcw0T.js";import{L as ir,t as rt,q as cr,B as he,G as lr,y as st}from"./note-core-DUTqUh5N.js";import{s as Tt}from"./FlowArrow.es-DWiIXWQG.js";import{_ as ze}from"./preload-helper-BXl3LOEh.js";import{s as dr}from"./Copy.es-CkLUgwY-.js";import{A as ur,p as fr}from"./AuxiliaryPanelHeader-Bp3iRjm6.js";import{f as pr,c as mr}from"./tag.api-bU52U0tT.js";import{cn as at}from"./note-runtime-zN5ddTba.js";import{s as hr}from"./File.es-c83QExqr.js";function gr(e,n){if(e===void 0)return{shouldBlockFn:()=>!0,withResolver:!1};if("shouldBlockFn"in e)return e;if(typeof e=="function")return{shouldBlockFn:async()=>await e(),enableBeforeUnload:!0,withResolver:!1};const t=!!(e.condition??!0),s=e.blockerFn;return{shouldBlockFn:async()=>t&&s!==void 0?await s():t,enableBeforeUnload:t,withResolver:s===void 0}}function xr(e,n){const{shouldBlockFn:t,enableBeforeUnload:s=!0,disabled:r=!1,withResolver:i=!1}=gr(e),l=wn(),{history:c}=l,[f,d]=o.useState({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0});return o.useEffect(()=>{const m=async g=>{function b(A){const w=l.parseLocation(A),p=l.getMatchedRoutes(w.pathname);return p.foundRoute===void 0?{routeId:"__notFound__",fullPath:w.pathname,pathname:w.pathname,params:p.routeParams,search:l.options.parseSearch(A.search)}:{routeId:p.foundRoute.id,fullPath:p.foundRoute.fullPath,pathname:w.pathname,params:p.routeParams,search:l.options.parseSearch(A.search)}}const u=b(g.currentLocation),h=b(g.nextLocation);if(u.routeId==="__notFound__"&&h.routeId!=="__notFound__")return!1;const v=await t({action:g.action,current:u,next:h});if(!i)return v;if(!v)return!1;const R=await new Promise(A=>{d({status:"blocked",current:u,next:h,action:g.action,proceed:()=>A(!1),reset:()=>A(!0)})});return d({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0}),R};return r?void 0:c.block({blockerFn:m,enableBeforeUnload:s})},[t,s,r,i,c,l]),f}const br=new Map([["bold",o.createElement(o.Fragment,null,o.createElement("path",{d:"M212,40a12,12,0,0,1-12,12H170.71A20,20,0,0,0,151,68.42L142.38,116H184a12,12,0,0,1,0,24H138l-9.44,51.87A44,44,0,0,1,85.29,228H56a12,12,0,0,1,0-24H85.29A20,20,0,0,0,105,187.58L113.62,140H72a12,12,0,0,1,0-24h46l9.44-51.87A44,44,0,0,1,170.71,28H200A12,12,0,0,1,212,40Z"}))],["duotone",o.createElement(o.Fragment,null,o.createElement("path",{d:"M200,40V200a16,16,0,0,1-16,16H56V56A16,16,0,0,1,72,40Z",opacity:"0.2"}),o.createElement("path",{d:"M208,40a8,8,0,0,1-8,8H170.71a24,24,0,0,0-23.62,19.71L137.59,120H184a8,8,0,0,1,0,16H134.68l-10,55.16A40,40,0,0,1,85.29,224H56a8,8,0,0,1,0-16H85.29a24,24,0,0,0,23.62-19.71l9.5-52.29H72a8,8,0,0,1,0-16h49.32l10-55.16A40,40,0,0,1,170.71,32H200A8,8,0,0,1,208,40Z"}))],["fill",o.createElement(o.Fragment,null,o.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM176,72H159.92a16,16,0,0,0-15.73,13l-6.55,35H168a8,8,0,0,1,0,16H134.64l-7.11,37.9A32,32,0,0,1,96.08,200H80a8,8,0,0,1,0-16H96.08A16,16,0,0,0,111.81,171L118.36,136H88a8,8,0,0,1,0-16h33.36l7.11-37.9A32,32,0,0,1,159.92,56H176a8,8,0,0,1,0,16Z"}))],["light",o.createElement(o.Fragment,null,o.createElement("path",{d:"M206,40a6,6,0,0,1-6,6H170.71a26,26,0,0,0-25.58,21.35L135.19,122H184a6,6,0,0,1,0,12H133l-10.33,56.8A38,38,0,0,1,85.29,222H56a6,6,0,0,1,0-12H85.29a26,26,0,0,0,25.58-21.35L120.81,134H72a6,6,0,0,1,0-12h51l10.33-56.8A38,38,0,0,1,170.71,34H200A6,6,0,0,1,206,40Z"}))],["regular",o.createElement(o.Fragment,null,o.createElement("path",{d:"M208,40a8,8,0,0,1-8,8H170.71a24,24,0,0,0-23.62,19.71L137.59,120H184a8,8,0,0,1,0,16H134.68l-10,55.16A40,40,0,0,1,85.29,224H56a8,8,0,0,1,0-16H85.29a24,24,0,0,0,23.62-19.71l9.5-52.29H72a8,8,0,0,1,0-16h49.32l10-55.16A40,40,0,0,1,170.71,32H200A8,8,0,0,1,208,40Z"}))],["thin",o.createElement(o.Fragment,null,o.createElement("path",{d:"M204,40a4,4,0,0,1-4,4H170.71a28,28,0,0,0-27.55,23l-10.37,57H184a4,4,0,0,1,0,8H131.34l-10.63,58.44A36,36,0,0,1,85.29,220H56a4,4,0,0,1,0-8H85.29a28,28,0,0,0,27.55-23l10.37-57H72a4,4,0,0,1,0-8h52.66l10.63-58.44A36,36,0,0,1,170.71,36H200A4,4,0,0,1,204,40Z"}))]]),yr=new Map([["bold",o.createElement(o.Fragment,null,o.createElement("path",{d:"M230.15,70.54,185.46,25.86a20,20,0,0,0-28.28,0L33.86,149.17A19.86,19.86,0,0,0,28,163.31V208a20,20,0,0,0,20,20H216a12,12,0,0,0,0-24H125L230.15,98.83A20,20,0,0,0,230.15,70.54ZM136,81l11,11L76,163,65,152ZM52,204V173l15.52,15.51h0L83,204Zm52-13L93,180l71-71,11,11Zm88-88L153,64l18.34-18.34,39,39Z"}))],["duotone",o.createElement(o.Fragment,null,o.createElement("path",{d:"M221.66,90.34,192,120,136,64l29.66-29.66a8,8,0,0,1,11.31,0L221.66,79A8,8,0,0,1,221.66,90.34Z",opacity:"0.2"}),o.createElement("path",{d:"M227.32,73.37,182.63,28.69a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.32l112-112A16,16,0,0,0,227.32,73.37ZM79.32,188,164,103.31,180.69,120,96,204.69ZM68,176.69,51.31,160,136,75.31,152.69,92Zm-20,2.62L76.69,208H48Zm144-70.62L147.32,64l24-24L216,84.69Z"}))],["fill",o.createElement(o.Fragment,null,o.createElement("path",{d:"M227.32,73.37,182.63,28.69a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.32l112-112A16,16,0,0,0,227.32,73.37ZM79.32,188l90.34-90.34,16.69,16.68L96,204.69Zm79-101.66h0L68,176.69,51.31,160l90.35-90.34ZM48,179.31,76.69,208H48Z"}))],["light",o.createElement(o.Fragment,null,o.createElement("path",{d:"M225.91,74.79,181.22,30.1a14,14,0,0,0-19.8,0L38.1,153.41a13.94,13.94,0,0,0-4.1,9.9V208a14,14,0,0,0,14,14H216a6,6,0,0,0,0-12H110.49L225.91,94.59A14,14,0,0,0,225.91,74.79ZM76.49,188,164,100.48,183.52,120,96,207.51ZM68,179.52,48.49,160,136,72.49,155.52,92ZM46,208V174.48L81.52,210H48A2,2,0,0,1,46,208ZM217.42,86.1,192,111.52,144.49,64,169.9,38.59a2,2,0,0,1,2.83,0l44.69,44.68A2,2,0,0,1,217.42,86.1Z"}))],["regular",o.createElement(o.Fragment,null,o.createElement("path",{d:"M227.32,73.37,182.63,28.69a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.32l112-112A16,16,0,0,0,227.32,73.37ZM136,75.31,152.69,92,68,176.69,51.31,160ZM48,208V179.31L76.69,208Zm48-3.31L79.32,188,164,103.31,180.69,120Zm96-96L147.32,64l24-24L216,84.69Z"}))],["thin",o.createElement(o.Fragment,null,o.createElement("path",{d:"M224.49,76.2,179.8,31.51a12,12,0,0,0-17,0L39.51,154.83A12,12,0,0,0,36,163.31V208a12,12,0,0,0,12,12H216a4,4,0,0,0,0-8H105.66L224.49,93.17A12,12,0,0,0,224.49,76.2ZM73.66,188,164,97.66,186.35,120,96,210.34ZM68,182.34,45.66,160,136,69.66,158.35,92ZM44,208V169.66l21.17,21.17h0L86.34,212H48A4,4,0,0,1,44,208ZM218.83,87.51,192,114.34,141.66,64l26.83-26.83a4,4,0,0,1,5.66,0l44.68,44.69A4,4,0,0,1,218.83,87.51Z"}))]]),Mt=o.forwardRef((e,n)=>o.createElement(xt,{ref:n,...e,weights:br}));Mt.displayName="FunctionIcon";const Dt=Mt,Pt=o.forwardRef((e,n)=>o.createElement(xt,{ref:n,...e,weights:yr}));Pt.displayName="PencilLineIcon";const vr=Pt;function wr({title:e,description:n,selected:t=!1,onClick:s,children:r}){return a.jsxs("button",{type:"button","aria-pressed":t,className:`focus-ring-soft flex w-full items-start justify-between gap-3 p-3 text-left transition-colors sm:p-4 ${t?"surface-floating bg-elevated":"rounded-[14px] border border-border-subtle bg-transparent hover:border-border-secondary hover:bg-hover-subtle"}`,onClick:s,children:[a.jsxs("div",{className:"min-w-0",children:[a.jsx(S,{as:"div",variant:"body",weight:"semibold",tone:t?"default":"secondary",children:e}),a.jsx(S,{as:"div",variant:"meta",weight:"medium",tone:t?"secondary":"tertiary",className:"mt-1",children:n})]}),r?a.jsx("div",{className:"shrink-0",children:r}):null]})}const Cr=e=>{const{data:n}=Ve({queryKey:L.notes.backReferences(e.noteId),async queryFn(){const t=await Cn(e.noteId);if(t.type==="error")throw t;return t.backReferences}});return e.render(n)};function Nr({noteId:e,searchParams:n,render:t}){const{data:s}=Ve({queryKey:e?L.reminders.note(e,n):L.reminders.upcoming(n),queryFn:async()=>{if(e){const i=await Gn(e,n);if(i.type==="error")throw i;return i.noteReminders}const r=await Jn(n);if(r.type==="error")throw r;return r.upcomingReminders}});return a.jsx(a.Fragment,{children:t(s)})}const Sr=[{value:"narrow",label:"Narrow",description:"Optimized for reading long-form content"},{value:"wide",label:"Wide",description:"Balanced width suitable for most content"},{value:"full",label:"Full Width",description:"Maximize screen space utilization"}];function Rr({isOpen:e,onClose:n,onSave:t,currentLayout:s="wide"}){const[r,i]=o.useState(s);o.useEffect(()=>{e&&i(s)},[e,s]);const l=()=>{t(r),n()};return a.jsxs(B,{isOpen:e,onClose:n,variant:"compact",children:[a.jsx(B.Header,{title:"Layout Settings",onClose:n}),a.jsx(B.Body,{children:a.jsx("div",{className:"flex flex-col gap-3 sm:gap-4",children:a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(S,{as:"div",variant:"body",weight:"semibold",tone:"secondary",children:"Note layout"}),a.jsx("div",{className:"flex flex-col gap-2",children:Sr.map(c=>a.jsx(wr,{title:c.label,description:c.description,selected:r===c.value,onClick:()=>i(c.value)},c.value))})]})})}),a.jsx(B.Footer,{children:a.jsxs(je,{children:[a.jsx(k,{variant:"ghost",size:"sm",onClick:n,children:"Cancel"}),a.jsx(k,{variant:"primary",size:"sm",onClick:l,children:"Apply"})]})})]})}const ge=e=>{const n=/^\d+$/.test(e)?Number(e):Date.parse(e);return Number.isFinite(n)?n:null},Ne=(e,n)=>{const t=ge(e),s=ge(n);return t===null||s===null?e===n?0:null:t===s?0:t<s?-1:1},jr=2200;function Ar({status:e,savedAt:n,savedVersion:t,confirmationRevision:s}){const[r,i]=o.useState(()=>Date.now()),[l,c]=o.useState(!1);o.useEffect(()=>{if(e!=="saved")return;const u=window.setTimeout(()=>i(Date.now()),Nn(ge(t),r));return()=>window.clearTimeout(u)},[r,t,e]),o.useEffect(()=>{if(s===0)return;c(!0);const u=window.setTimeout(()=>c(!1),jr);return()=>window.clearTimeout(u)},[s]);const f=e==="saved"&&l,d=e==="pending"?"Saving...":e==="saving"?"Saving now...":e==="error"?"Save failed. Try again.":e==="conflict"?"Save paused: changed elsewhere":`Saved ${Sn(ge(t),r)}`,m=W("inline-flex items-center gap-2 transition-colors",e==="saved"&&!f&&"text-fg-secondary",f&&"text-accent-success",(e==="pending"||e==="saving")&&"text-fg-default",(e==="error"||e==="conflict")&&"text-fg-error"),g=W("save-progress-ring flex h-4 w-4 shrink-0 items-center justify-center rounded-full",(e==="pending"||e==="saving")&&"save-progress-ring-active",e==="saved"&&f&&"save-progress-ring-complete",(e==="error"||e==="conflict")&&"save-progress-ring-error"),b=e==="error"||e==="conflict"?a.jsx(Wn,{className:"h-3.5 w-3.5",weight:"fill"}):a.jsx("span",{className:g,"aria-hidden":!0,children:a.jsx("span",{className:"h-2 w-2 rounded-full bg-elevated"})});return a.jsxs(S,{as:"span",variant:"label",weight:"medium",className:m,role:"status","aria-live":"polite",title:n,children:[b,d]})}function Er({title:e,titleRef:n,isPinned:t,createdAt:s,saveStatus:r,savedAt:i,savedVersion:l,saveConfirmationRevision:c,onTitleChange:f,onCopyMarkdown:d,onDownloadDocument:m,onTogglePinned:g,onChangeLayout:b,onCloneNote:u,onRestoreVersion:h,onDelete:v,onSave:N}){return a.jsx("div",{className:"surface-floating sticky top-20 z-[1001] mb-7 px-5 pt-4 pb-3.5",children:a.jsxs("div",{className:"flex flex-col gap-3.5",children:[a.jsxs("div",{className:"flex items-start justify-between gap-5",children:[a.jsxs("div",{className:"min-w-0 flex-1 pt-0.5",children:[a.jsx(S,{as:"div",variant:"micro",weight:"semibold",tracking:"widest",transform:"uppercase",tone:"tertiary",className:"mb-1.5",children:"Thought in progress"}),a.jsx("input",{ref:n,"aria-label":"Note title",placeholder:"Title",className:"text-heading sm:text-display w-full bg-transparent font-semibold leading-[1.25] tracking-[-0.02em] outline-none",type:"text",value:e,onChange:R=>f(R.target.value)})]}),a.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[a.jsx(bt,{button:a.jsx(Ct,{label:"Note actions",size:"lg"}),items:[{name:"Copy Markdown",onClick:d},{name:"Download document",onClick:m},{type:"separator",key:"export-separator"},{name:t?"Unpin":"Pin",onClick:g},{name:"Change layout",onClick:b},{type:"separator"},{name:"Clone this note",onClick:u},{name:"Restore previous version",onClick:h},{type:"separator"},{name:"Delete",onClick:v}]}),a.jsx(k,{size:"sm",variant:"subtle",isLoading:r==="saving",disabled:r==="conflict",onClick:N,children:"Save"})]})]}),a.jsxs("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1.5 border-t border-border-subtle/80 pt-3",children:[t&&a.jsxs(S,{as:"span",variant:"label",weight:"medium",tone:"secondary",className:"inline-flex items-center gap-1.5",children:[a.jsx(Fn,{className:"h-3 w-3",weight:"fill"}),"Pinned"]}),t&&a.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),a.jsx(Ar,{status:r,savedAt:i,savedVersion:l,confirmationRevision:c}),a.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),a.jsxs(S,{as:"span",variant:"micro",weight:"medium",tone:"tertiary",children:["Created ",s]})]})]})})}const kr=/[:{}[\],&*#?|<>=!%@`-]/,Tr="/assets/images/",Mr=e=>e.trim().toLowerCase().replace(/\s+/g,"-").replace(/[\\/:*?"<>|]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"untitled-note",Ce=e=>e?kr.test(e)||/^\s|\s$/.test(e)?JSON.stringify(e):e:'""',Se=e=>{if(!e)return;const n=Number(e);return Number.isFinite(n)?new Date(n).toISOString():e},Je=()=>typeof window>"u"||!window.location?.origin?"http://localhost":window.location.origin,Ee=(e,n=Je())=>{try{const t=new URL(e,n);return t.origin===n&&t.pathname.startsWith(Tr)}catch{return!1}},Lt=(e,n=Je())=>{const t=new URL(e,n);return`${t.pathname}${t.search}`},_t=e=>e.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase()??"",Dr=e=>e.trim().replace(/[\\/:*?"<>|]/g,"-").split("").map(s=>s.charCodeAt(0)<32?"-":s).join("").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"image",Pr=e=>{const n=e.lastIndexOf(".");return n<=0||n===e.length-1?{baseName:e,extension:""}:{baseName:e.slice(0,n),extension:e.slice(n)}},Ot=(e,n,t)=>{const r=new URL(e,Je()).pathname.split("/").filter(Boolean),i=decodeURIComponent(r[r.length-1]??""),l=`image-${n+1}`,{baseName:c,extension:f}=Pr(Dr(i||l));let d=`${c}${f}`,m=2;for(;t.has(d);)d=`${c}-${m}${f}`,m+=1;return t.add(d),`assets/${d}`},Lr=(e,n)=>{let t=null;for(let s=n;s<e.length;s+=1){const r=e[s];if(t){r===t&&(t=null);continue}if(r==='"'||r==="'"){t=r;continue}if(r===">")return s}return-1},_r=(e,n)=>{let t=n;for(;t<e.length;){const s=e.toLowerCase().indexOf("<img",t);if(s===-1)return-1;const r=e[s+4],i=s===0?-1:e.lastIndexOf("<",s-1),l=s===0?-1:e.lastIndexOf(">",s-1);if(i<=l&&(!r||/[\s/>]/.test(r)))return s;t=s+4}return-1},Or=(e,n,t,s)=>{let r=n;for(;r<t;){for(;r<t&&/[\s/]/.test(e[r]);)r+=1;const i=r;for(;r<t&&/[^\s=/>]/.test(e[r]);)r+=1;const l=e.slice(i,r).toLowerCase();for(;r<t&&/\s/.test(e[r]);)r+=1;if(e[r]!=="=")continue;for(r+=1;r<t&&/\s/.test(e[r]);)r+=1;const c=e[r];if(c==='"'||c==="'"){const d=r+1,m=e.indexOf(c,d);if(m===-1||m>t)return;if(r=m+1,l===s)return{end:m,start:d,value:e.slice(d,m)};continue}const f=r;for(;r<t&&/[^\s>]/.test(e[r]);)r+=1;if(l===s)return{end:r,start:f,value:e.slice(f,r)}}},Bt=e=>{const n=[];let t=0;for(;t<e.length;){const s=_r(e,t);if(s===-1)break;const r=Lr(e,s+4);if(r===-1)break;const i=Or(e,s+4,r,"src");i&&n.push({end:r+1,source:i,start:s}),t=r+1}return n},Ht=(e,n)=>{let t=e;for(const s of[...n].sort((r,i)=>i.start-r.start))t=`${t.slice(0,s.start)}${s.value}${t.slice(s.end)}`;return t},Ft=(e,n)=>{let t=e;for(const s of[...n].sort((r,i)=>i.start-r.start))t=`${t.slice(0,s.start)}${s.value}${t.slice(s.end)}`;return t},$t=e=>{const n=[];let t=0;for(;t<e.length;){const s=e.indexOf("![",t);if(s===-1)break;let r=s+2,i=1;for(;r<e.length&&i>0&&e[r]!==`
3
- `;){if(e[r]==="\\"){r+=2;continue}e[r]==="["?i+=1:e[r]==="]"&&(i-=1),r+=1}if(i!==0||e[r]!=="("){t=s+2;continue}const l=r+1;let c=l;for(;c<e.length&&e[c]!==`
4
- `&&/\s/.test(e[c]);)c+=1;if(c>=e.length||e[c]===`
5
- `){t=s+2;continue}let f=c,d=c,m=c;if(e[c]==="<"){for(r=c+1;r<e.length&&e[r]!==">"&&e[r]!==`
6
- `;)r+=e[r]==="\\"?2:1;if(e[r]!==">"){t=s+2;continue}f=r+1,d=c+1,m=r}else{let g=0;for(r=c;r<e.length&&e[r]!==`
7
- `;){const b=e[r];if(b==="\\"){r+=2;continue}if(/\s/.test(b)&&g===0)break;if(b==="(")g+=1;else if(b===")"){if(g===0)break;g-=1}r+=1}f=r,d=c,m=f}if(m<=d){t=s+2;continue}for(r=f;r<e.length&&e[r]!==`
8
- `&&/\s/.test(e[r]);)r+=1;if(e[r]==='"'||e[r]==="'"){const g=e[r];for(r+=1;r<e.length&&e[r]!==`
9
- `;){if(e[r]==="\\"){r+=2;continue}if(e[r]===g){r+=1;break}r+=1}}for(;r<e.length&&e[r]!==`
10
- `&&/\s/.test(e[r]);)r+=1;if(e[r]!==")"){t=s+2;continue}n.push({end:r+1,source:{end:f,start:l,value:e.slice(d,m)},start:s}),t=r+1}return n},Br=(e,n)=>`${Mr(e)}.${n}`,Hr=({id:e,title:n,createdAt:t,updatedAt:s})=>{const r=["---",`title: ${Ce(n)}`,`note_id: ${Ce(e)}`],i=Se(t),l=Se(s);return i&&r.push(`created_at: ${Ce(i)}`),l&&r.push(`updated_at: ${Ce(l)}`),r.push("source: ocean-brain","---"),r.join(`
11
- `)},It=(e,n,t=!1)=>t?`${Hr(n)}
12
-
13
- ${e}`:e,Ut=(e,n,{includeMetadata:t=!1}={})=>{const s=It(e,n,t),r=$t(s).filter(i=>Ee(i.source.value)).map(i=>({end:i.end,start:i.start,value:""}));return Ft(s,r)},zt=(e,n,{includeMetadata:t=!1}={})=>`${t?`<!--
14
- source: ocean-brain
15
- note_id: ${n.id}
16
- title: ${n.title}
17
- created_at: ${Se(n.createdAt)??""}
18
- updated_at: ${Se(n.updatedAt)??""}
19
- -->
20
- `:""}${e}`,Fr=(e,n,{includeMetadata:t=!1}={})=>{const s=zt(e,n,{includeMetadata:t}),r=Bt(s).filter(i=>Ee(i.source.value)).map(i=>({end:i.end,start:i.start,value:""}));return Ht(s,r)},$r=async(e,n,{fetchImpl:t=fetch,includeMetadata:s=!1}={})=>{const r=new jt,i=zt(e,n,{includeMetadata:s}),l=Bt(i),c=[],f=new Set,d=new Map;for(const{source:m}of l){if(!Ee(m.value))continue;const g=Lt(m.value);let b=d.get(g);if(!b){b=Ot(g,d.size,f),d.set(g,b);const u=await t(g,{credentials:"same-origin"});if(!u.ok)throw new Error(`Failed to fetch image asset: ${g}`);if(!_t(u).startsWith("image/"))throw new Error(`Image asset did not return image content: ${g}`);r.file(b,new Uint8Array(await u.arrayBuffer()))}c.push({end:m.end,start:m.start,value:`./${b}`})}return r.file("note.html",Ht(i,c)),r.generateAsync({type:"blob"})},Ir=async(e,n,{fetchImpl:t=fetch,includeMetadata:s=!1}={})=>{const r=new jt,i=It(e,n,s),l=$t(i),c=[],f=new Set,d=new Map;for(const{source:m}of l){if(!Ee(m.value))continue;const g=Lt(m.value);let b=d.get(g);if(!b){b=Ot(g,d.size,f),d.set(g,b);const u=await t(g,{credentials:"same-origin"});if(!u.ok)throw new Error(`Failed to fetch image asset: ${g}`);if(!_t(u).startsWith("image/"))throw new Error(`Image asset did not return image content: ${g}`);r.file(b,new Uint8Array(await u.arrayBuffer()))}c.push({end:m.end,start:m.start,value:`./${b}`})}return r.file("note.md",Ft(i,c)),r.generateAsync({type:"blob"})},Ur=(e,n)=>{const t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=n,document.body.appendChild(s),s.click(),s.remove(),URL.revokeObjectURL(t)},Zt={html:{extension:"html",getContent:e=>e.getHtml(),createDocumentBlob:(e,n)=>new Blob([Fr(e,n.metadata,{includeMetadata:n.includeMetadata})],{type:"text/html;charset=utf-8"}),createZipBlob:(e,n)=>$r(e,n.metadata,{fetchImpl:n.fetchImpl,includeMetadata:n.includeMetadata})},markdown:{extension:"md",getContent:e=>e.getMarkdown(),createDocumentBlob:(e,n)=>new Blob([Ut(e,n.metadata,{includeMetadata:n.includeMetadata})],{type:"text/markdown;charset=utf-8"}),createZipBlob:(e,n)=>Ir(e,n.metadata,{fetchImpl:n.fetchImpl,includeMetadata:n.includeMetadata})}},Wt=(e,n)=>n?"zip":Zt[e].extension,zr=async e=>{const n=Zt[e.format],t=n.getContent(e.source);if(t===void 0)return{type:"not-ready",format:e.format};const s=Wt(e.format,e.includeAssets);return{type:"success",blob:e.includeAssets?await n.createZipBlob(t,e):n.createDocumentBlob(t,e),filename:Br(e.metadata.title,s)}},Zr=e=>e==="markdown"?"Markdown is not ready yet.":"HTML is not ready yet.",ot=({checked:e,description:n,id:t,label:s,onChange:r})=>{const i=`${t}-label`;return a.jsxs("div",{className:"flex min-h-6 items-center gap-2",children:[a.jsx(yt,{id:t,size:"sm",checked:e,onChange:l=>r(l.target.checked),"aria-labelledby":i}),a.jsx("label",{id:i,htmlFor:t,className:"min-w-0 cursor-pointer",children:a.jsx(S,{as:"span",variant:"label",weight:"medium",tone:"secondary",className:"block",children:s})}),a.jsx(Rn,{content:a.jsx("span",{className:"block max-w-[240px] leading-4",children:n}),side:"top",children:a.jsx("button",{type:"button",className:"focus-ring-soft inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-secondary","aria-label":`${s} help`,children:a.jsx(Vn,{className:"h-3.5 w-3.5"})})})]})};function Wr({isOpen:e,metadata:n,getHtml:t,getMarkdown:s,onClose:r}){const i=Re(),[l,c]=o.useState("html"),[f,d]=o.useState(!0),[m,g]=o.useState(!1),[b,u]=o.useState(!1),h=Wt(l,f),v=async()=>{u(!0);try{const N=await zr({format:l,includeAssets:f,includeMetadata:m,metadata:n,source:{getHtml:t,getMarkdown:s}});if(N.type==="not-ready"){i(Zr(N.format));return}Ur(N.blob,N.filename),r(),i("Downloaded note.")}catch{i("Failed to download note.")}finally{u(!1)}};return a.jsxs(B,{isOpen:e,onClose:r,variant:"compact",children:[a.jsx(B.Header,{title:"Download document",onClose:r}),a.jsx(B.Body,{children:a.jsxs("div",{className:"flex flex-col gap-5",children:[a.jsxs("div",{className:"flex flex-col gap-3",role:"radiogroup","aria-label":"Format",children:[a.jsx(S,{as:"span",variant:"meta",weight:"bold",tone:"muted",children:"Format"}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsxs("label",{className:"flex cursor-pointer items-center gap-2",children:[a.jsx("input",{type:"radio",name:"note-export-format",value:"html",checked:l==="html",onChange:()=>c("html"),className:"h-4 w-4 accent-cta"}),a.jsx(S,{as:"span",variant:"label",weight:"medium",tone:"secondary",children:".html"})]}),a.jsxs("label",{className:"flex cursor-pointer items-center gap-2",children:[a.jsx("input",{type:"radio",name:"note-export-format",value:"markdown",checked:l==="markdown",onChange:()=>c("markdown"),className:"h-4 w-4 accent-cta"}),a.jsx(S,{as:"span",variant:"label",weight:"medium",tone:"secondary",children:".md"})]})]})]}),a.jsxs("div",{className:"flex flex-col gap-3",role:"group","aria-label":"Options",children:[a.jsx(S,{as:"span",variant:"meta",weight:"bold",tone:"muted",children:"Options"}),a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(ot,{id:"note-export-include-assets",label:"Include local image assets",checked:f,onChange:d,description:"Bundle uploaded Ocean Brain images with the document. Without assets, local images are omitted."}),a.jsx(ot,{id:"note-export-include-metadata",label:"Include metadata",checked:m,onChange:g,description:"Add the note title, note id, timestamps, and Ocean Brain source information."})]})]})]})}),a.jsx(B.Footer,{children:a.jsxs(je,{children:[a.jsx(k,{variant:"ghost",size:"sm",onClick:r,children:"Cancel"}),a.jsx(k,{variant:"primary",size:"sm",onClick:v,disabled:b,children:b?"Downloading...":`Download .${h}`})]})})]})}const Vt=e=>e==="mcp"?{actor:"An MCP client",place:"through MCP",target:"the MCP update"}:e==="web"?{actor:"Another browser tab",place:"in another tab",target:"the tab update"}:{actor:"Another editor",place:"elsewhere",target:"the outside change"},Vr=({isDeleted:e,isConflict:n,source:t})=>{const s=Vt(t);return e?`This note was moved to trash ${s.place}`:n?`Save paused: note changed ${s.place}`:`This note changed ${s.place}`},Kr=({isDeleted:e,isConflict:n,hasDraft:t,source:s})=>{const r=Vt(s);return e?`${r.actor} moved this note to trash. Open trash to review or restore it.`:n&&t?`Your draft is saved locally. Reload the latest note, overwrite ${r.target}, or clone your draft into a new note.`:n?`The layout change is paused because the note changed ${r.place}. Reload the latest note or overwrite only the layout.`:`${r.actor} changed this note while it was open here. Reload the latest version before continuing.`};function Yr({isOpen:e,isDeleted:n,isConflict:t,hasDraft:s,source:r,isReloading:i,onReload:l,onOverwrite:c,onCloneDraft:f,onOpenTrash:d}){return a.jsxs(B,{isOpen:e,onClose:()=>{},variant:"inspect",children:[a.jsx(B.Header,{title:Vr({isDeleted:n,isConflict:t,source:r})}),a.jsx(B.Body,{children:a.jsx(S,{as:"p",variant:"body",tone:"secondary",className:"leading-6",children:Kr({isDeleted:n,isConflict:t,hasDraft:s,source:r})})}),a.jsx(B.Footer,{children:a.jsx(je,{children:n?a.jsx(k,{type:"button",variant:"primary",size:"sm",onClick:d,children:"Open trash"}):t?a.jsxs(a.Fragment,{children:[a.jsx(k,{type:"button",variant:"subtle",size:"sm",isLoading:i,onClick:l,children:"Reload latest"}),s&&a.jsx(k,{type:"button",variant:"ghost",size:"sm",onClick:f,children:"Clone draft"}),a.jsx(k,{type:"button",variant:"danger",size:"sm",onClick:c,children:"Overwrite"})]}):a.jsx(k,{type:"button",variant:"primary",size:"sm",isLoading:i,onClick:l,children:"Reload latest"})})})]})}function qr({localDraftCreatedAt:e,hasSaveError:n,onRestoreDraft:t,onDiscardDraft:s,onRetrySave:r,onSaveAsNewNote:i}){return a.jsxs(a.Fragment,{children:[e&&a.jsx(nt,{tone:"danger",className:"mb-6",children:a.jsxs("div",{className:"flex w-full flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[a.jsxs("span",{children:["A draft from ",e," is saved only in this browser."]}),a.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.jsx(k,{type:"button",size:"sm",variant:"subtle",className:"self-start",onClick:t,children:"Restore draft"}),a.jsx(k,{type:"button",size:"sm",variant:"ghost",className:"self-start",onClick:s,children:"Discard"})]})]})}),n&&a.jsx(nt,{tone:"danger",className:"mb-6",children:a.jsxs("div",{className:"flex w-full flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[a.jsx("span",{children:"Save failed. Your latest draft is still available here. Retry before leaving this note."}),a.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.jsx(k,{type:"button",size:"sm",variant:"subtle",className:"self-start",onClick:r,children:"Retry save"}),a.jsx(k,{type:"button",size:"sm",variant:"ghost",className:"self-start",onClick:i,children:"Save as new note"})]})]})})]})}const it=(e,n)=>e||(n==="mobile"?"Mobile browser":n==="mcp"?"MCP":"Web browser");function Qr({isOpen:e,noteId:n,onClose:t,restoreSnapshot:s,onRestored:r}){const i=Re(),l=Ke(),[c,f]=o.useState(null),[d,m]=o.useState("diff"),g=o.useRef(null),b=Be({queryKey:L.notes.snapshots(n),queryFn:async()=>{const p=await jn(n);if(p.type==="error")throw p;return p.noteSnapshots},enabled:e}),u=$n({mutationFn:s,onSuccess:async p=>{if(p){if(p.type==="error"){i(p.errors[0].message);return}await Promise.all([l.invalidateQueries({queryKey:L.notes.detail(n),exact:!0}),l.invalidateQueries({queryKey:L.notes.listAll(),exact:!1}),l.invalidateQueries({queryKey:L.notes.tagListAll(),exact:!1}),l.invalidateQueries({queryKey:L.notes.tagNameListAll(),exact:!1}),l.invalidateQueries({queryKey:L.notes.pinned(),exact:!0}),l.invalidateQueries({queryKey:L.notes.backReferencesAll(),exact:!1}),l.invalidateQueries({queryKey:L.notes.graph(),exact:!0}),l.invalidateQueries({queryKey:L.notes.snapshots(n),exact:!1}),l.invalidateQueries({queryKey:L.views.sectionNotesAll(),exact:!1}),l.invalidateQueries({queryKey:L.tags.all(),exact:!1})]),i("Previous version restored."),r?.(p.restoreNoteSnapshot),f(null),t()}}}),h=b.data?.find(p=>p.id===c)??null,v=Be({queryKey:[...L.notes.snapshotDetail(c??"pending"),"diff"],queryFn:async()=>{if(!c)throw new Error("SNAPSHOT_NOT_SELECTED");const p=await An(c,"current");if(p.type==="error")throw p;if(!p.noteSnapshotDiff)throw new Error("SNAPSHOT_DIFF_NOT_FOUND");return p.noteSnapshotDiff},enabled:!!c&&d==="diff"}),N=Be({queryKey:L.notes.snapshotDetail(c??"pending"),queryFn:async()=>{if(!c)throw new Error("SNAPSHOT_NOT_SELECTED");const p=await En(c);if(p.type==="error")throw p;if(!p.noteSnapshot)throw new Error("SNAPSHOT_NOT_FOUND");return p.noteSnapshot},enabled:!!c&&d==="content"}),R=N.data?.contentAsMarkdown.trim()??"";o.useEffect(()=>{c&&g.current?.focus()},[c]);const A=(p,y)=>{m(y),f(p)},w=()=>{f(null),m("diff"),t()};return a.jsxs(B,{isOpen:e,onClose:w,variant:"inspect",children:[a.jsx(B.Header,{title:h?d==="diff"?"Snapshot Diff":"Snapshot Content":"Restore Previous Version",onClose:w}),a.jsx(B.Description,{className:"sr-only",children:h?d==="diff"?"Review the markdown diff between this snapshot and the current note.":"Read this snapshot content before restoring it.":"Choose a previous snapshot to restore."}),a.jsx(B.Body,{children:h?a.jsxs("div",{className:"flex flex-col gap-3",children:[a.jsxs("div",{className:"min-w-0",children:[a.jsx(S,{as:"p",variant:"body",weight:"semibold",truncate:!0,children:h.title}),a.jsxs(S,{as:"p",variant:"label",tone:"tertiary",children:["Before"," ",it(h.meta.label,h.meta.entrypoint)," ","edit - ",G(h.createdAt).format("YYYY-MM-DD HH:mm:ss")]})]}),a.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.jsx(k,{variant:d==="diff"?"primary":"subtle",size:"sm",onClick:()=>m("diff"),children:"Show diff"}),a.jsx(k,{variant:d==="content"?"primary":"subtle",size:"sm",onClick:()=>m("content"),children:"View content"})]}),d==="diff"?v.isLoading?a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"Loading snapshot diff..."}):v.isError?a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"Snapshot diff could not be loaded."}):v.data?a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(S,{as:"p",variant:"meta",tone:"secondary",children:"Changes from this snapshot to the current note. Red lines were in the snapshot; green lines are in the current note."}),a.jsx("pre",{className:"max-h-[60vh] overflow-y-auto overflow-x-hidden whitespace-pre-wrap break-words rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-0 py-3 text-xs leading-5 text-fg-secondary",children:v.data.diff.markdown.split(`
21
- `).map((p,y)=>{const T=p.startsWith("+")&&!p.startsWith("+++")?"bg-emerald-500/12 text-emerald-700 dark:text-emerald-200":p.startsWith("-")&&!p.startsWith("---")?"bg-rose-500/12 text-rose-700 dark:text-rose-200":p.startsWith("@@")?"bg-sky-500/12 text-sky-700 dark:text-sky-200":"text-fg-secondary";return a.jsx("span",{className:`block min-w-full whitespace-pre-wrap break-words px-4 ${T}`,children:p||" "},`${y}-${p}`)})})]}):null:N.isLoading?a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"Loading snapshot content..."}):N.isError?a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"Snapshot content could not be loaded."}):R?a.jsx("pre",{className:"max-h-[60vh] overflow-auto whitespace-pre-wrap break-words rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3 text-sm leading-6 text-fg-secondary",children:R}):a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"No readable content was found for this snapshot."})]}):a.jsxs("div",{className:"flex flex-col gap-3",children:[a.jsx(S,{as:"p",variant:"meta",tone:"secondary",children:"Choose a previous snapshot to restore this note back to that state."}),b.isLoading&&a.jsx(S,{as:"div",variant:"meta",tone:"secondary",children:"Loading previous versions..."}),!b.isLoading&&b.data?.length===0&&a.jsx(S,{as:"div",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"A recovery snapshot appears before the first edit in a session. Up to 10 recent snapshots are kept for 7 days, and identical versions are skipped."}),!b.isLoading&&b.data&&b.data.length>0&&a.jsx("div",{className:"flex flex-col gap-2",children:b.data.map(p=>a.jsx(Qn,{padding:"compact",children:a.jsxs("div",{className:"flex flex-col gap-3",children:[a.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[a.jsxs("div",{className:"min-w-0",children:[a.jsxs(S,{as:"p",variant:"body",weight:"semibold",children:["Before"," ",it(p.meta.label,p.meta.entrypoint)," ","edit"]}),a.jsx(S,{as:"p",variant:"meta",truncate:!0,tone:"secondary",children:p.title}),a.jsx(S,{as:"p",variant:"label",tone:"tertiary",children:G(p.createdAt).format("YYYY-MM-DD HH:mm:ss")})]}),a.jsxs("div",{className:"flex shrink-0 flex-wrap gap-2 sm:justify-end",children:[a.jsx(k,{variant:"subtle",size:"sm",onClick:()=>A(p.id,"diff"),children:"Compare"}),a.jsx(k,{size:"sm",isLoading:u.isPending,onClick:()=>u.mutate(p.id),children:"Restore"})]})]}),p.contentPreview&&a.jsx("div",{className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-3 py-2",children:a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"line-clamp-4 whitespace-pre-wrap break-words",children:p.contentPreview})})]})},p.id))})]})}),h&&a.jsx(B.Footer,{children:a.jsxs(je,{children:[a.jsx(k,{ref:g,variant:"subtle",onClick:()=>{f(null),m("diff")},children:"Back"}),a.jsx(k,{isLoading:u.isPending,onClick:()=>u.mutate(h.id),children:"Restore this version"})]})})]})}function Gr({noteId:e}){const[n,t]=o.useState(!1),[s,r]=o.useState(!1),[i,l]=o.useState("create"),[c,f]=o.useState(void 0),{onCreate:d,onUpdate:m,onDelete:g}=Xn(),b=()=>{l("create"),f(void 0),r(!0)},u=w=>{l("edit"),f(w),r(!0)},h=(w,p,y)=>{i==="create"?d(e,w,p,()=>{r(!1)},y):i==="edit"&&c&&m(c.id,e,{reminderDate:w,priority:p,content:y},()=>{r(!1)})},v=w=>{m(w.id,e,{completed:!w.completed})},N=w=>{const p=G(Number(w)),y=G();return p.isSame(y,"day")?`Today at ${p.format("HH:mm")}`:p.isSame(y.add(1,"day"),"day")?`Tomorrow at ${p.format("HH:mm")}`:p.format("YYYY-MM-DD HH:mm")},R=w=>{const p=G(Number(w)),y=G(),T=p.diff(y,"hour");return T<=6?"high":T<=24?"medium":"low"},A=w=>{const p=G(Number(w)),y=G(),T=p.diff(y,"hour"),F=p.diff(y,"minute")%60;return T<0||F<0?"Overdue":T===0?`${F}m remaining`:`${T}h ${F}m remaining`};return a.jsxs(a.Fragment,{children:[a.jsx(At,{title:"Reminders",icon:a.jsx(In,{className:"h-3.5 w-3.5"}),action:a.jsxs(a.Fragment,{children:[!n&&a.jsxs(k,{size:"sm",variant:"ghost",onClick:b,children:[a.jsx(tr,{className:"w-3 h-3"}),a.jsx(S,{as:"span",variant:"label",className:"hidden sm:inline",children:"Add"})]}),a.jsxs(k,{type:"button",size:"sm",variant:"ghost","aria-label":n?"Expand reminders":"Collapse reminders","aria-expanded":!n,onClick:()=>t(!n),children:[n?a.jsx(kn,{className:"h-3.5 w-3.5"}):a.jsx(Tn,{className:"h-3.5 w-3.5"}),n?"Expand":"Collapse"]})]}),children:!n&&a.jsx(Nr,{noteId:e,searchParams:{offset:0,limit:9999},render:({reminders:w,totalCount:p})=>a.jsx("div",{className:"flex flex-col gap-2",children:w.length===0?a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"py-3 text-center",children:p===0?"No reminders yet":"All reminders complete"}):a.jsx("div",{className:"flex flex-col",children:w.map(y=>{const T=y.priority||R(y.reminderDate),F=A(y.reminderDate),M=F==="Overdue";return a.jsxs("div",{className:W("flex items-center gap-2.5 px-2 py-1.5"),children:[a.jsx(yt,{checked:y.completed,onChange:()=>v(y),size:"sm","aria-label":`Reminder: ${y.content||N(y.reminderDate)}`}),a.jsx(S,{as:"div",variant:"body",weight:"medium",className:W("truncate flex-1 min-w-0",y.completed&&"line-through opacity-40"),children:y.content||N(y.reminderDate)}),a.jsxs("div",{className:W("shrink-0 flex items-center gap-1",y.completed&&"opacity-40"),children:[y.content&&a.jsx(S,{as:"span",variant:"meta",tone:"secondary",children:N(y.reminderDate)}),!y.completed&&a.jsx(S,{as:"span",variant:"label",weight:"medium",tone:M||T==="high"?"error":"tertiary",className:W(y.content&&'before:content-["·"] before:mr-1'),children:F})]}),a.jsx(bt,{button:a.jsx(Ct,{label:"Reminder actions"}),items:[{name:"Edit",onClick:()=>u(y)},{name:"Delete",onClick:()=>g(y.id,e)}]})]},y.id)})})})})}),a.jsx(er,{isOpen:s,onClose:()=>r(!1),onSave:h,reminder:c,mode:i})]})}const Jr=e=>[{title:"Diagram",subtext:"Create a flowchart or diagram with Mermaid syntax",onItemClick:()=>{rt(e,{type:"codeBlock",props:{language:"mermaid"}})},aliases:["mermaid","diagram","flowchart","sequence"],group:"Other",icon:a.jsx(Tt,{})},{title:"Math Formula",subtext:"Write a formula with KaTeX or LaTeX",onItemClick:()=>{rt(e,{type:"codeBlock",props:{language:"math"}})},aliases:["math","formula","equation","katex","latex"],group:"Other",icon:a.jsx(Dt,{})}],Xr=({editor:e})=>a.jsx(Ge,{triggerCharacter:"/",getItems:async n=>ir([...nr(e).filter(t=>t.title!=="Audio"&&t.title!=="Video"&&t.title!=="File"),...Jr(e),{title:"Table of Contents",subtext:"Insert a table of contents based on headings",onItemClick:()=>{e.insertBlocks([{type:"tableOfContents"}],e.getTextCursorPosition().block,"after")},aliases:["toc","table of contents","contents","outline","index"],group:"Other",icon:a.jsx(Nt,{})}],n)}),es=(e,n)=>n?e.filter(t=>t.id!==n):e,ts=({currentNoteId:e,onClick:n})=>a.jsx(Ge,{triggerCharacter:"[",getItems:async t=>{const s=await Mn({query:t,limit:5});return s.type==="error"?[]:es(s.allNotes.notes,e).map(i=>({title:i.title,onItemClick:()=>n({type:"reference",props:{id:i.id,title:i.title}})}))}}),Kt=["image/png","image/jpeg","image/gif","image/webp","image/bmp","image/avif"],ns=new Set(Kt),ct="Unsupported image type. Use PNG, JPEG, GIF, WebP, BMP, or AVIF.",rs="Failed to upload image.",ss=e=>ns.has(e);let lt,dt;const as=()=>(lt??=ze(async()=>{const{default:e}=await import("./mermaid.core-B528P54n.js").then(n=>n.bc);return{default:e}},__vite__mapDeps([0,1,2,3])).then(({default:e})=>e),lt),os=()=>(dt??=Promise.all([ze(()=>import("./katex-x288kqHd.js"),[]),ze(()=>Promise.resolve({}),__vite__mapDeps([4]))]).then(([{default:e}])=>e),dt),is=e=>{const n=e?.trim().toLowerCase();return n==="mermaid"?"mermaid":n==="math"||n==="katex"||n==="latex"?"math":null},cs=e=>`ocean-brain-mermaid-${e.replace(/[^a-zA-Z0-9_-]/g,"")||"diagram"}`,ls=async(e,n,t,s="light")=>{if(e==="mermaid"){const i=await as();i.initialize({securityLevel:"strict",startOnLoad:!1,suppressErrorRendering:!0,theme:s==="dark"?"dark":"default"});const l=await i.render(cs(t),n);return{html:l.svg,bindFunctions:l.bindFunctions}}return{html:(await os()).renderToString(n,{displayMode:!0,output:"htmlAndMathml",strict:"warn",throwOnError:!0,trust:!1})}},ds={floating:"pointer-events-auto inline-flex h-7 cursor-pointer select-none items-center gap-1.5 rounded-[8px] border border-white/10 bg-white/10 px-2.5 text-xs font-medium text-white/60 opacity-75 shadow-[0_8px_18px_-14px_rgba(0,0,0,0.45)] backdrop-blur-sm transition-colors hover:bg-white/20 hover:text-white/90 hover:opacity-100 focus-ring-soft focus:text-white/90 focus:opacity-100",toolbar:"focus-ring-soft inline-flex h-8 cursor-pointer select-none items-center gap-1.5 rounded-[8px] border border-transparent px-2.5 text-xs font-semibold text-fg-secondary outline-none transition-colors hover:border-border-subtle hover:bg-hover-subtle hover:text-fg-default"},us={idle:"",copied:"text-accent-success hover:text-accent-success focus:text-accent-success",failed:"text-fg-error hover:text-fg-error focus:text-fg-error"},fs={idle:"Copy",copied:"Copied",failed:"Copy failed"},ut=({getText:e,resetDelayMs:n=2e3,variant:t="floating"})=>{const[s,r]=o.useState("idle"),i=o.useRef(null),l=o.useCallback(()=>{i.current&&(clearTimeout(i.current),i.current=null)},[]),c=o.useCallback(()=>{l(),i.current=setTimeout(()=>{r("idle"),i.current=null},n)},[l,n]);o.useEffect(()=>l,[l]);const f=g=>{g.stopPropagation()},d=g=>{g.preventDefault(),g.stopPropagation()},m=async g=>{f(g);try{await navigator.clipboard.writeText(e()),r("copied")}catch{r("failed")}c()};return a.jsx("div",{className:W(t==="floating"&&"pointer-events-none absolute right-3 top-2 z-[1]"),contentEditable:!1,onMouseDown:d,children:a.jsxs("button",{type:"button",className:W(ds[t],us[s]),contentEditable:!1,onClick:m,children:[a.jsx(dr,{className:"h-3.5 w-3.5"}),a.jsx("span",{"aria-live":"polite",children:fs[s]})]})})},ps=({kind:e,source:n})=>{const t=o.useId(),s=o.useRef(null),r=vt(d=>d.theme),[i,l]=o.useState(()=>typeof IntersectionObserver>"u"),[c,f]=o.useState({status:"idle"});return o.useEffect(()=>{const d=s.current;if(i||!d||typeof IntersectionObserver>"u"){l(!0);return}const m=new IntersectionObserver(([g])=>{g?.isIntersecting&&(l(!0),m.disconnect())},{rootMargin:"240px"});return m.observe(d),()=>m.disconnect()},[i]),o.useEffect(()=>{if(!i)return;let d=!1;return f({status:"loading"}),ls(e,n,t,r).then(m=>{d||f({status:"success",...m})}).catch(()=>{d||f({status:"error"})}),()=>{d=!0}},[e,t,i,n,r]),o.useEffect(()=>{c.status==="success"&&c.bindFunctions&&s.current&&c.bindFunctions(s.current)},[c]),a.jsxs("div",{ref:s,"data-rich-code-preview":!0,className:"min-h-24 w-full overflow-auto bg-surface px-4 py-5 text-fg-default sm:px-6 sm:py-6",contentEditable:!1,"aria-label":e==="mermaid"?"Mermaid diagram preview":"Math formula preview",children:[c.status==="success"&&a.jsx("div",{className:"[&_.katex-display]:m-0 [&_svg]:mx-auto [&_svg]:block [&_svg]:h-auto [&_svg]:max-h-[min(68vh,640px)] [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:c.html}}),(c.status==="idle"||c.status==="loading")&&a.jsx("div",{className:"flex min-h-8 items-center justify-center text-sm text-black/55",children:"Rendering preview…"}),c.status==="error"&&a.jsxs("div",{className:"text-left",children:[a.jsx("p",{className:"mb-3 text-sm text-red-700",children:"Preview could not be rendered. The source is preserved."}),a.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap rounded-[6px] bg-black/5 p-4 text-sm text-black",children:a.jsx("code",{children:n})})]})]})},ft="focus-ring-soft inline-flex h-8 cursor-pointer select-none items-center gap-1.5 rounded-[8px] border px-2.5 text-xs font-semibold outline-none transition-colors",Ze=e=>typeof e=="string"?e:!e||typeof e!="object"?"":"text"in e&&typeof e.text=="string"?e.text:"content"in e?Array.isArray(e.content)?e.content.map(Ze).join(""):Ze(e.content):"",ms=({block:e,contentRef:n})=>{const t=o.useRef(null),s=is(e.props.language),r=e.content.map(Ze).join(""),[i,l]=o.useState(r),[c,f]=o.useState(r.length===0),d=s!==null&&!c,m=s==="mermaid"?"Diagram":"Math Formula",g=`${m} controls`,b=o.useCallback(h=>{t.current=h,n(h)},[n]);o.useEffect(()=>{const h=t.current;if(!h)return;const v=()=>l(h.textContent??""),N=new MutationObserver(v);return N.observe(h,{characterData:!0,childList:!0,subtree:!0}),()=>N.disconnect()},[]);const u=h=>{h.preventDefault(),h.stopPropagation()};return a.jsxs(a.Fragment,{children:[s&&a.jsxs("div",{role:"toolbar","aria-label":g,"data-rich-code-toolbar":!0,className:"flex min-h-11 w-full flex-wrap items-center justify-between gap-2 border-b border-border-subtle bg-elevated px-3 py-1.5 text-fg-secondary",contentEditable:!1,onMouseDown:u,children:[a.jsxs("div",{className:"flex min-w-0 items-center gap-2 px-1 text-xs font-semibold text-fg-secondary",children:[s==="mermaid"?a.jsx(Tt,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}):a.jsx(Dt,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),a.jsx("span",{className:"truncate",children:m})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsxs("div",{className:"flex items-center gap-0.5 rounded-[10px] border border-border-subtle bg-hover-subtle/55 p-0.5",children:[a.jsxs("button",{type:"button","aria-pressed":c,className:W(ft,c?"border-border-secondary/70 bg-elevated text-fg-default shadow-[0_8px_18px_-16px_rgba(15,18,24,0.28)]":"border-transparent text-fg-secondary hover:bg-hover-subtle hover:text-fg-default"),contentEditable:!1,onClick:h=>{h.stopPropagation(),f(!0)},children:[a.jsx(vr,{className:"h-3.5 w-3.5"}),"Edit"]}),a.jsxs("button",{type:"button","aria-pressed":d,className:W(ft,d?"border-border-secondary/70 bg-elevated text-fg-default shadow-[0_8px_18px_-16px_rgba(15,18,24,0.28)]":"border-transparent text-fg-secondary hover:bg-hover-subtle hover:text-fg-default"),contentEditable:!1,onClick:h=>{h.stopPropagation(),f(!1)},children:[a.jsx(Un,{className:"h-3.5 w-3.5"}),"Preview"]})]}),a.jsx(ut,{variant:"toolbar",getText:()=>t.current?.textContent?.trimEnd()??""})]})]}),a.jsx("pre",{className:W(d&&"hidden",s&&"bg-[#181b20]"),children:a.jsx("code",{ref:b})}),s&&d&&a.jsx(ps,{kind:s,source:i}),!s&&a.jsx(ut,{getText:()=>t.current?.textContent?.trimEnd()??""})]})},hs="focus-ring-soft inline-flex cursor-pointer items-center rounded-[8px] border border-border-subtle bg-[color-mix(in_srgb,var(--elevated)_72%,var(--hover-subtle))] px-2 py-0.5 text-xs font-semibold text-fg-secondary transition-colors hover:border-border-secondary hover:bg-elevated hover:text-fg-default dark:bg-[color-mix(in_srgb,var(--elevated)_82%,var(--hover-subtle))]",gs={type:"reference",propSchema:{id:{default:""},title:{default:"Unknown"}},content:"none"};function xs(e){const n=wt(),t=()=>{e.editor.blur(),n({to:Ae,params:{id:e.inlineContent.props.id}})},s=r=>{r.preventDefault(),r.stopPropagation()};return a.jsx("span",{role:"link",tabIndex:0,contentEditable:!1,className:hs,onMouseDown:s,onClick:r=>{s(r),t()},onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(s(r),t())},children:a.jsxs("span",{children:["[",e.inlineContent.props.title,"]"]})})}const bs=Et(gs,{render:e=>a.jsx(xs,{...e})}),ys=()=>{const e=rr(),[n,t]=o.useState([]),s={1:"pl-3",2:"pl-[26px]",3:"pl-[40px]",4:"pl-[54px]",5:"pl-[68px]",6:"pl-[82px]"};o.useEffect(()=>{const l=()=>{const f=e.document,d=[],m=g=>{for(const b of g){if(b.type==="heading"){const u=b,h=u.props.level||1,v=u.content?.map(N=>N.text||"").join("")||"";v.trim()&&d.push({id:b.id,level:h,text:v})}b.children&&Array.isArray(b.children)&&m(b.children)}};m(f),t(d)};l();const c=e.onChange?.(l);return()=>{c&&c()}},[e]);const r=l=>{e.setTextCursorPosition(l);const c=document.querySelector(`[data-id="${l}"]`);if(c){const f=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;c.scrollIntoView({behavior:f?"auto":"smooth",block:"center"})}},i=a.jsx(ur,{icon:a.jsx(Nt,{className:"h-3.5 w-3.5"}),title:"Table of Contents",className:"text-fg-tertiary"});return n.length===0?a.jsxs("div",{className:"surface-base w-full p-4",children:[i,a.jsx(S,{as:"p",variant:"meta",tone:"secondary",className:"mt-2",children:"Add headings to your document to generate a table of contents"})]}):a.jsxs("div",{className:"surface-base w-full p-4",children:[a.jsx("div",{className:"mb-2",children:i}),a.jsx("nav",{className:"space-y-0.5",children:n.map(l=>{const c=l.level===1;return a.jsxs("button",{type:"button",onClick:()=>r(l.id),className:W("focus-ring-soft","flex","w-full","items-center","gap-2","rounded-[10px]","px-2.5","py-1.5",s[l.level]??"pl-2.5","text-left","transition-colors","hover:bg-hover-subtle",c?"text-fg-default":"text-fg-secondary"),children:[a.jsxs(S,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"min-w-[1.5rem]",children:["H",l.level]}),a.jsx(S,{as:"span",variant:"body",weight:c?"semibold":"medium",className:"line-clamp-2 text-current",children:l.text})]},l.id)})})]})},vs=kt({type:"tableOfContents",propSchema:{},content:"none"},{render:()=>a.jsx(ys,{})})(),ws="focus-ring-soft inline-flex cursor-pointer items-center rounded-[8px] border border-border-subtle bg-emphasis px-2 py-0.5 text-xs font-semibold text-fg-secondary transition-colors hover:border-border-secondary hover:bg-hover-subtle hover:text-fg-default dark:bg-emphasis",Cs={type:"tag",propSchema:{id:{default:""},tag:{default:"@Unknown"}},content:"none"};function Ns(e){const n=wt(),t=()=>{e.editor.blur(),n({to:Yn,params:{id:e.inlineContent.props.id},search:{page:1}})},s=r=>{r.preventDefault(),r.stopPropagation()};return a.jsx("span",{role:"link",tabIndex:0,contentEditable:!1,className:ws,onMouseDown:s,onClick:r=>{s(r),t()},onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(s(r),t())},children:a.jsx("span",{children:e.inlineContent.props.tag})})}const Ss=Et(Cs,{render:e=>a.jsx(Ns,{...e})}),Rs=e=>e,js=e=>e,As=Rs({tag:Ss,reference:bs}),Es=js({tableOfContents:vs}),ce=he.codeBlock,pt=kt(ce.config,{meta:ce.implementation.meta,parse:ce.implementation.parse,parseContent:ce.implementation.parseContent,runsBefore:ce.implementation.runsBefore,render:ms})(),ks={...pt,extensions:ce.extensions,implementation:{...pt.implementation,toExternalHTML:ce.implementation.toExternalHTML}},Ts={...he.image,implementation:{...he.image.implementation,meta:{...he.image.implementation.meta,fileBlockAccept:[...Kt]}}},Ms=cr.create({inlineContentSpecs:{...lr,...As},blockSpecs:{...he,image:Ts,codeBlock:ks,...Es}}),Ds=(e,n)=>n.some(t=>t.name===`@${e}`),Ps=({onClick:e})=>a.jsx(Ge,{triggerCharacter:"@",getItems:async n=>{const t=await pr({query:n,limit:5});if(t.type==="error")return[];const{tags:s}=t.allTags,r=Ds(n,s),i=[{title:"Add a new tag",onItemClick:async()=>{const l=await mr({name:"@"+n});if(l.type==="error")return;const{id:c,name:f}=l.createTag;e({type:"tag",props:{id:c,tag:f}})}}];return s.length===0?i:s.map(l=>({title:l.name,onItemClick:()=>e({type:"tag",props:{id:l.id,tag:l.name}})})).concat(n&&!r?i:[])}}),Ls=/^ {0,3}(`{3,}|~{3,})/,_s=/<[^<>\n]*>/g,Yt=/~+/g,qt=/[\p{L}\p{M}\p{N}\p{Sc}%‰.,+\-/:°℃℉µμ·²³^]/u,We=new RegExp("^(?:[+-]?\\p{Sc}?|\\p{Sc}[+-]?)\\p{N}","u"),Qt=/&#(?:x[0-9a-f]+|\d+);/giu,Os=new Set(["Files","blocknote/html","vscode-editor-data"]),mt="OBTILDE",ht="",Bs=[/(^|\n) {0,3}#{1,6} {1,8}[^\n]{1,64}\r?\n\r?\n\s{0,32}\S/,/(_|__|\*|\*\*|~~|==|\+\+)(?!\s)(?:[^\s](?:.{0,62}[^\s])?|\S)(?=\1)/,/\[[^\]]{1,128}\]\(https?:\/\/\S{1,999}\)/,/(?:\s|^)`(?!\s)(?:[^\s`](?:[^`]{0,46}[^\s`])?|[^\s`])`([^\w]|$)/,/(?:^|\n)\s{0,5}-\s{1}[^\n]+\n\s{0,15}-\s/,/(?:^|\n)\s{0,5}\d+\.\s{1}[^\n]+\n\s{0,15}\d+\.\s/,/\n{2} {0,3}-{2,48}\n{2}/,/(?:\n|^)(```|~~~|\$\$)(?!`|~)[^\s]{0,64} {0,64}[^\n]{0,64}\n[\s\S]{0,9999}?\s*\1 {0,64}(?:\n+|$)/,/(?:\n|^)(?!\s)\w[^\n]{0,64}\n(-|=)\1{0,64}\n\n\s{0,64}(\w|$)/,/(?:^|(\r?\n\r?\n))( {0,3}>[^\n]{1,333}\n){1,999}($|(\r?\n))/],Hs=e=>e.split(`
22
- `).some(n=>{const t=n.trim();return t.length>2&&t.startsWith("|")&&t.endsWith("|")}),Fs=e=>Bs.some(n=>n.test(e))||Hs(e),$s=e=>e.endsWith(`\r
23
- `)?{body:e.slice(0,-2),ending:`\r
24
- `}:e.endsWith(`
25
- `)||e.endsWith("\r")?{body:e.slice(0,-1),ending:e.slice(-1)}:{body:e,ending:""},Gt=(e,n,t)=>{let s=n;for(;e[s]===t;)s+=1;return s-n},Jt=e=>{const n=e.slice(2,-1),t=n[0]?.toLowerCase()==="x",s=Number.parseInt(t?n.slice(1):n,t?16:10);return!Number.isSafeInteger(s)||s<0||s>1114111?e:String.fromCodePoint(s)},Is=e=>{const n=e.replace(Qt,Jt),t=e.toLowerCase();let s=0,r=`${mt}${s}${ht}`;for(;e.includes(r)||t.includes(encodeURIComponent(r).toLowerCase())||n.includes(r);)s+=1,r=`${mt}${s}${ht}`;return r},Us=(e,n,t)=>t-n>2?!1:Xt(e,n)&&Zs(e,t),gt=(e,n)=>{let t=n;for(;t>0&&qt.test(e[t-1]??"");)t-=1;return{start:t,token:e.slice(t,n)}},zs=(e,n)=>{let t=n;for(;t<e.length&&qt.test(e[t]??"");)t+=1;return e.slice(n,t)},Xt=(e,n)=>{const t=gt(e,n);if(We.test(t.token))return!0;if(!t.token)return!1;let s=t.start;for(;s>0&&(e[s-1]===" "||e[s-1]===" ");)s-=1;return s===t.start?!1:We.test(gt(e,s).token)},Zs=(e,n)=>We.test(zs(e,n)),en=e=>{const n=[],t=new Set;for(const s of e.matchAll(Yt)){const r=s.index,i=s[0].length,l=r+i;if(i>2)continue;const c=l<e.length&&!/\s/u.test(e[l]??""),f=r>0&&!/\s/u.test(e[r-1]??"");if(Us(e,r,l)){if(f&&t.delete(i))continue;n.push({length:i,start:r});continue}f&&t.delete(i)||c&&Xt(e,r)&&t.add(i)}return n},He=(e,n)=>{let t="",s=0;const r=new Set(en(e).map(i=>i.start));for(const i of e.matchAll(Yt)){const l=i.index,c=l+i[0].length;t+=e.slice(s,l),t+=r.has(l)?n.repeat(i[0].length):i[0],s=c}return t+e.slice(s)},Ws=e=>{const n=e.slice(1,-1),t=/^[a-z][a-z0-9.+-]{1,31}:[^\s<>]*$/i.test(n)||/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/.test(n),s=/^<\/?[a-z][\w:-]*(?:\s[^<>]*)?\/?\s*>$/i.test(e)||/^<![^<>]*>$/.test(e);return t||s},Vs=(e,n)=>{let t="",s=0;for(const r of e.matchAll(_s)){const i=r.index;t+=He(e.slice(s,i),n),t+=Ws(r[0])?r[0]:He(r[0],n),s=i+r[0].length}return t+He(e.slice(s),n)},tn=e=>en(e).length>0,Ks=e=>{if(!tn(e))return st(e);const n=Is(e),t=Vs(e,n),s=encodeURIComponent(n);return st(t).split(n).join("~").split(s).join("~")},Ys=(e,n)=>{let t=0;for(let s=n-1;s>=0&&e[s]==="\\";s-=1)t+=1;return t%2===1},qs=(e,n,t)=>{let s=n+t;for(;s<e.length;){const r=e.indexOf("`",s);if(r===-1)return null;const i=Gt(e,r,"`");if(i===t)return r+i;s=r+i}return null},Qs=(e,n)=>{let t=e.indexOf("`",n);for(;t!==-1;){const s=Gt(e,t,"`");if(!Ys(e,t)){const r=qs(e,t,s);if(r!==null)return{start:t,end:r}}t=e.indexOf("`",t+s)}return null},Gs=(e,n)=>{let t="",s=0;for(;s<e.length;){const r=Qs(e,s);if(!r){t+=n(e.slice(s));break}t+=n(e.slice(s,r.start)),t+=e.slice(r.start,r.end),s=r.end}return t},nn=(e,n)=>{let t=null;return e.split(new RegExp("(?<=\\n)")).map(s=>{const{body:r,ending:i}=$s(s);if(t)return new RegExp(`^ {0,3}${t.marker}{${t.length},} *$`).test(r)&&(t=null),s;const l=r.match(Ls)?.[1];return l?(t={marker:l[0],length:l.length},s):`${Gs(r,n)}${i}`}).join("")},Js=(e,n)=>{let t=0;for(let s=n;s<e.length;s+=1){const r=e[s];if(r==="\\"){s+=1;continue}if(r==="("){t+=1;continue}if(r===")"){if(t>0){t-=1;continue}return s}}return null},rn=e=>{let n="",t=0;for(;t<e.length;){const s=e.indexOf("](",t);if(s===-1){n+=e.slice(t);break}const r=s+2,i=Js(e,r);if(i===null){n+=e.slice(t);break}n+=e.slice(t,r),n+=e.slice(r,i).split("\\&").join("&"),n+=")",t=i+1}return n},Xs=(e,n)=>{const t=e[n-1];if(t!=="*"&&t!=="_")return!1;let s=n-1;for(;s>0&&e[s-1]===t;)s-=1;const r=e.slice(s,n),i=e.lastIndexOf(r,s-1);return i!==-1&&i+r.length<s},ea=(e,n)=>{const t=e[n];if(t!=="*"&&t!=="_")return!1;let s=n+1;for(;s<e.length&&e[s]===t;)s+=1;const r=e.slice(n,s),i=e.indexOf(r,s);return i!==-1&&s<i},ta=(e,n,t)=>Xs(e,n)||ea(e,n+t),na=e=>nn(e,n=>{const t=n.replace(Qt,(s,r,i)=>ta(i,r,s.length)?Jt(s):s);return rn(t)}),ra=e=>nn(e,rn),sa=e=>{const n=e.getData("text/plain");n&&(e.setData("text/markdown",n),e.setData("text/plain",na(n)))},aa=({event:e,editor:n,defaultPasteHandler:t})=>{const s=e.clipboardData;if(!s||n.getTextCursorPosition().block.type==="codeBlock")return t();const r=Array.from(s.types);if(r.some(c=>Os.has(c)))return t();const i=r.includes("text/markdown"),l=s.getData(i?"text/markdown":"text/plain");return!l||!tn(l)||!i&&r.includes("text/html")&&!Fs(l)?t():(n.pasteHTML(Ks(l)),!0)},oa=new Set(["tableOfContents"]),ia="OCEAN_BRAIN_TAG_",ca="_TOKEN",la=e=>`${ia}${e}${ca}`,da=e=>!Array.isArray(e)&&e?.type==="tableContent",ua=(e,n)=>Array.isArray(e)?e.map(n):da(e)?{...e,rows:e.rows?.map(t=>({...t,cells:t.cells?.map(s=>({...s,content:s.content?.map(n)}))}))}:e,sn=(e,n)=>e.filter(t=>!oa.has(t.type)).map(t=>({...t,content:n(t.content),children:t.children?.length?sn(t.children,n):[]}));function fa(e){const n=new Map;let t=0;return{blocks:sn(e,r=>ua(r,i=>{if(i.type==="reference"){const l=String(i.props?.id||""),c=String(i.props?.title||i.props?.id||"");return{type:"text",text:l?`[[${c}]](note:${l})`:`[[${c}]]`,styles:{}}}if(i.type==="tag"){const l=i.props?.tag||"",c=la(t);return t+=1,n.set(c,l),{type:"text",text:c,styles:{}}}return i})),placeholderToTag:n}}function pa(e,n){let t=e;for(const[s,r]of n.entries())t=t.split(s).join(`[${r}]`);return t}async function ma(e){return new Promise((n,t)=>{const s=new FileReader;s.readAsDataURL(e),s.onload=()=>n(s.result),s.onerror=r=>t(r)})}const ha=o.forwardRef(({content:e,currentNoteId:n,editable:t,onChange:s},r)=>{const{theme:i}=vt(d=>d),l=Re(),c=sr({schema:Ms,initialContent:e&&JSON.parse(e)||void 0,pasteHandler:d=>aa(d),uploadFile:async(d,m)=>{const g=()=>{m&&c.getBlock(m)&&c.removeBlocks([m])};if(!ss(d.type))throw g(),l(ct),new Error(ct);try{return await or({base64:await ma(d)})}catch(b){throw g(),l(rs),b}}},[l]);o.useImperativeHandle(r,()=>({getContent:()=>JSON.stringify(c.document),getMarkdown:()=>{const d=fa(c.document),m=c.blocksToMarkdownLossy(d.blocks);return ra(pa(m,d.placeholderToTag))},getHtml:()=>c.blocksToHTMLLossy(c.document)}));const f=d=>{sa(d.clipboardData)};return a.jsxs(ar,{slashMenu:!1,theme:i,editor:c,editable:t,onChange:s,onCopy:f,onCut:f,children:[a.jsx(Xr,{editor:c}),a.jsx(ts,{currentNoteId:n,onClick:d=>{c.insertInlineContent([d," "])}}),a.jsx(Ps,{onClick:d=>{c.insertInlineContent([d," "])}})]})}),ga=({event:e,noteId:n,editSessionId:t,loadedUpdatedAt:s,acceptedUpdatedAt:r,hasUnsavedChanges:i})=>{if(e.noteId!==n||e.type==="mcp.note.created")return{type:"ignore"};if(e.source==="web"&&e.editSessionId===t)return{type:"ignore"};if(e.type==="mcp.note.deleted")return{type:"notify",change:{type:"deleted",source:e.source},shouldPauseSave:!1};const l=Ne(e.updatedAt,s),c=Ne(e.updatedAt,r);return l!==null&&l<=0||c!==null&&c<=0?{type:"ignore"}:{type:"notify",change:{type:"updated",updatedAt:e.updatedAt,source:e.source},shouldPauseSave:i}},xa=({change:e,isConflict:n,loadedUpdatedAt:t})=>e?!(e.type==="updated"&&!n&&e.updatedAt===t):!1;function ba({allowNextNavigationRef:e,hasExternalPendingChanges:n,saveStatus:t,flushPendingChanges:s,notify:r}){const i=o.useCallback(async()=>{if(e.current)return e.current=!1,!1;if(t==="conflict")return r("Resolve the note conflict before leaving."),!0;const l=await s();return l==="error"?(r("Save failed. Stay on this note and try again."),!0):l==="conflict"},[e,s,r,t]);xr({disabled:t==="saved"&&!n,enableBeforeUnload:!1,shouldBlockFn:i})}const Xe=e=>`ocean-brain.note-draft.${e}`,ya=e=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(Xe(e));if(!n)return null;const t=JSON.parse(n);return typeof t.title!="string"||typeof t.content!="string"||typeof t.baseUpdatedAt!="string"?null:{title:t.title,content:t.content,baseUpdatedAt:t.baseUpdatedAt,createdAt:typeof t.createdAt=="number"?t.createdAt:Date.now(),...t.layout==="narrow"||t.layout==="wide"||t.layout==="full"?{layout:t.layout}:{}}}catch{return null}},Fe=(e,n)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(Xe(e),JSON.stringify(n))}catch{}},$e=e=>{if(!(typeof window>"u"))try{window.localStorage.removeItem(Xe(e))}catch{}},va=1e3,wa="NOTE_UPDATE_CONFLICT";function Ca({noteId:e,initialContent:n,initialUpdatedAt:t,editSessionIdRef:s,getContent:r,beforeSave:i,hasExternalPendingChanges:l,serverVersionRef:c,executeWrite:f,onSaved:d,onConflict:m,onError:g}){const b=Ke(),u=o.useRef(null),h=o.useRef(null),v=o.useRef(!1),N=o.useRef(null),R=o.useRef(!1),A=o.useRef(t),w=c??A,p=o.useRef(0),y=o.useRef(!1),T=o.useRef(!0),F=o.useRef(d),M=o.useRef(m),V=o.useRef(g),xe=o.useRef(i),X=o.useRef(l),me=o.useRef(f),[re,ee]=o.useState("saved"),[ke,le]=o.useState(null),$=o.useCallback(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),_=o.useCallback(E=>{T.current&&ee(E)},[]),Te=o.useCallback(E=>{w.current=E},[]),be=o.useCallback((E,O={})=>({title:E,content:r()??n,createdAt:Date.now(),baseUpdatedAt:w.current,...O.layout?{layout:O.layout}:{}}),[r,n]),de=o.useCallback(()=>{h.current&&Fe(e,h.current)},[e]),se=o.useCallback(E=>{y.current=!0,_("conflict"),M.current(E??w.current)},[_]),P=o.useCallback(async({ignoreConflict:E=!1,silent:O=!1}={})=>{if(v.current)return R.current=!0,N.current??"idle";const De=h.current!==null,ae=X.current?.()??!1;if(!De&&!ae)return R.current=!1,"idle";const I=p.current;R.current=!1,$(),v.current=!0,O||_("saving");const H=(async()=>{const ue=await xe.current?.()??"idle";if(I!==p.current)return"idle";if(ue==="error")return v.current=!1,N.current=null,h.current?_("error"):_("saved"),"error";const D=h.current;if(!D)return v.current=!1,N.current=null,_("saved"),ue;h.current=null;const q=async()=>{if(I!==p.current)return"idle";let Z;try{Z=await Ue({id:e,title:D.title,content:D.content,...D.layout?{layout:D.layout}:{},editSessionId:s.current,...E?{force:!0}:{expectedUpdatedAt:w.current}})}catch{Z={type:"error",category:"network",errors:[{code:"NETWORK_ERROR",message:"Failed to save note."}]}}if(I!==p.current)return"idle";if(Z.type==="error"){v.current=!1,N.current=null,h.current||(h.current=D),de();const U=Z.errors[0];if(U.code===wa&&!E){const oe=U.details?.extensions?.currentUpdatedAt;return y.current=!0,!O&&T.current&&(_("conflict"),M.current(oe??w.current)),"conflict"}return!O&&T.current&&(_("error"),V.current(U.message)),"error"}const ve=!O&&T.current,J=L.notes.detail(e);if(await b.cancelQueries({queryKey:J,exact:!0}),I!==p.current)return"idle";v.current=!1,N.current=null,y.current=!1,w.current=Z.updateNote.updatedAt,ve&&F.current(Z.updateNote.updatedAt),b.setQueryData(J,U=>U&&{...U,title:Z.updateNote.title,content:D.content,...D.layout?{layout:D.layout}:{},updatedAt:Z.updateNote.updatedAt}),St({noteId:e,updatedAt:Z.updateNote.updatedAt,editSessionId:s.current});const fe=h.current;return fe?.baseUpdatedAt===D.baseUpdatedAt?(h.current={...fe,baseUpdatedAt:Z.updateNote.updatedAt},de()):fe||$e(e),h.current||Rt(b),ve&&(h.current?ee("pending"):ee("saved")),"saved"},z=me.current?await me.current(q):await q();return z?z==="saved"&&(h.current||R.current)?P({silent:O}):z:(h.current||(h.current=D),de(),v.current=!1,N.current=null,_("pending"),"idle")})();return N.current=H,H},[$,s,e,de,b,w,_]),te=o.useCallback((E,O={})=>{if(h.current=E,Fe(e,E),y.current){_("conflict");return}if(_("pending"),$(),O.immediate){P();return}u.current=window.setTimeout(()=>{P()},va)},[$,P,e,_]),ne=o.useCallback(E=>{if(h.current=E,Fe(e,E),le(null),E.baseUpdatedAt!==w.current){se(w.current);return}te(E)},[e,te,se]),ye=o.useCallback(()=>{p.current+=1,$(),h.current=null,v.current=!1,N.current=null,R.current=!1,y.current=!1,$e(e),le(null),ee("saved")},[$,e]),Me=o.useCallback(()=>{$(),N.current=null,R.current=!1,y.current=!1,_(h.current?"pending":"saved")},[$,_]),Q=o.useCallback(()=>{$e(e),le(null)},[e]),Y=o.useCallback(()=>h.current,[]),K=o.useCallback(E=>{$(),se(E)},[$,se]);return o.useEffect(()=>{xe.current=i,me.current=f,X.current=l,M.current=m,V.current=g,F.current=d},[i,f,l,m,g,d]),o.useEffect(()=>(T.current=!0,()=>{T.current=!1}),[]),o.useEffect(()=>{h.current||v.current||y.current||(w.current=t,ee("saved"))},[t]),o.useEffect(()=>{p.current+=1,h.current=null,v.current=!1,N.current=null,R.current=!1,y.current=!1,w.current=t,le(ya(e)),ee("saved")},[e]),o.useEffect(()=>{const E=O=>{!h.current&&!v.current&&!y.current&&!X.current?.()||(O.preventDefault(),O.returnValue="")};return window.addEventListener("beforeunload",E),()=>{window.removeEventListener("beforeunload",E)}},[]),o.useEffect(()=>()=>{$(),h.current&&!y.current&&P({silent:!0})},[$,P]),{saveStatus:re,localDraft:ke,serverUpdatedAtRef:w,hasUnsavedChanges:re!=="saved",buildDraft:be,queueSave:te,flushPendingSave:P,restoreLocalDraft:ne,discardLocalDraft:Q,clearDrafts:ye,resolveConflict:Me,pauseForConflict:K,getPendingDraft:Y,setServerUpdatedAt:Te}}function Na(){const e=o.useRef(Promise.resolve()),n=o.useRef(0),t=o.useRef(0),[s,r]=o.useState(!1),i=o.useCallback(d=>{t.current+=1,r(!0);const m=n.current,g=()=>m===n.current?d():void 0,b=e.current.then(g,g);e.current=b.then(()=>{},()=>{});const u=()=>{t.current-=1,t.current===0&&r(!1)};return b.then(u,u),b},[]),l=o.useCallback(()=>{n.current+=1},[]),c=o.useCallback(()=>e.current,[]),f=o.useCallback(()=>t.current>0,[]);return o.useMemo(()=>({execute:i,invalidatePending:l,drain:c,isBusy:s,hasPendingWrites:f}),[c,i,f,l,s])}const Sa="NOTE_UPDATE_CONFLICT",Ie=e=>{const n=ge(e);return G(n??Number(e)).format("YYYY-MM-DD HH:mm:ss")},Ra=e=>e?.extensions?.currentUpdatedAt;function ja({noteId:e,navigateToNote:n,notify:t}){const s=Ke(),r=o.useRef(null),i=o.useRef(null),[l]=o.useState(at),c=o.useRef(l),f=o.useRef(null),d=o.useRef(null),m=o.useRef(!1),g=o.useRef(0),b=Ve({queryKey:L.notes.detail(e),queryFn:async()=>{const x=await Dn(e);if(x.type==="error")throw x;return x.note},gcTime:0}),u=b.data,h=b.refetch,v=o.useRef(u.updatedAt),N=o.useRef(u.updatedAt),[R,A]=o.useState(u.title),[w,p]=o.useState(u.pinned),[y,T]=o.useState(u.layout||"wide"),F=o.useRef(y),[M,V]=o.useState(null),[xe,X]=o.useState(null),[me,re]=o.useState(0),[ee,ke]=o.useState(()=>Ie(u.updatedAt)),[le,$]=o.useState(u.updatedAt),[_,Te]=o.useState(0),[be,de]=o.useState(!1),se=o.useRef(!1),{execute:P,invalidatePending:te,drain:ne,isBusy:ye,hasPendingWrites:Me}=Na(),Q=o.useCallback(x=>{F.current=x,T(x)},[]),Y=o.useCallback((x,C={})=>{v.current=x,N.current=x,ke(Ie(x)),$(x),C.confirmSave&&Te(j=>j+1)},[]),K=o.useCallback(async({updatedAt:x,patch:C,confirmSave:j=!0})=>{const pe=L.notes.detail(e),_e=g.current;return await s.cancelQueries({queryKey:pe,exact:!0}),_e!==g.current?!1:(Y(x,{confirmSave:j}),s.setQueryData(pe,Oe=>Oe&&{...Oe,...C,updatedAt:x}),St({noteId:e,updatedAt:x,editSessionId:c.current}),Rt(s),!0)},[Y,e,s]),E=o.useCallback(x=>{se.current=x,de(x)},[]),O=o.useCallback(()=>f.current?.flushPendingSave({expectedUpdatedAt:v.current})??Promise.resolve("idle"),[]),De=Ca({noteId:e,initialContent:u.content,initialUpdatedAt:u.updatedAt,editSessionIdRef:c,serverVersionRef:v,executeWrite:P,getContent:()=>r.current?.getContent(),beforeSave:O,hasExternalPendingChanges:()=>se.current||Me(),onSaved:x=>{d.current=null,Y(x,{confirmSave:!0})},onConflict:x=>{V({type:"updated",updatedAt:x,source:"unknown"}),t("This note changed elsewhere. Choose how to resolve the draft.")},onError:t}),{saveStatus:ae,localDraft:I,serverUpdatedAtRef:H,hasUnsavedChanges:ue,buildDraft:D,queueSave:q,flushPendingSave:z,restoreLocalDraft:Z,discardLocalDraft:ve,clearDrafts:J,resolveConflict:fe,pauseForConflict:U,getPendingDraft:oe}=De,we=ue||be||ye,et=o.useCallback(async x=>{const C=await z(x);return C==="error"||C==="conflict"||await ne(),C},[ne,z]),on=o.useCallback(x=>P(async()=>{const C=await Pn({...x,expectedUpdatedAt:v.current});return C.type==="success"&&await K({updatedAt:C.updateNoteProperties.updatedAt,patch:{properties:C.updateNoteProperties.properties}}),C}),[K,P]);ba({allowNextNavigationRef:m,hasExternalPendingChanges:be||ye,saveStatus:ae,flushPendingChanges:et,notify:t}),o.useEffect(()=>{if(we){u.updatedAt!==H.current&&(Ne(u.updatedAt,H.current)??0)>0&&U(u.updatedAt);return}const x=N.current;if(!(x&&u.updatedAt!==x&&(Ne(u.updatedAt,x)??0)<0)&&(p(u.pinned),Q(u.layout||"wide"),A(u.title),x!==u.updatedAt)){const C=r.current?.getContent();Y(u.updatedAt),(C===void 0||C!==u.content)&&(X(null),re(j=>j+1))}},[Y,we,u.content,u.layout,u.pinned,u.title,u.updatedAt,U,H]),o.useEffect(()=>{M?.type!=="updated"||ae==="conflict"||M.updatedAt!==u.updatedAt||(Y(u.updatedAt),V(null))},[Y,M,u.updatedAt,ae]),o.useEffect(()=>zn(x=>{const C=ga({event:x,noteId:e,editSessionId:c.current,loadedUpdatedAt:u.updatedAt,acceptedUpdatedAt:H.current,hasUnsavedChanges:we});C.type!=="ignore"&&(C.shouldPauseSave&&C.change.type==="updated"&&U(C.change.updatedAt),V(C.change))}),[we,u.updatedAt,e,U,H]);const cn=o.useCallback(()=>{q(D(R))},[D,q,R]),ln=o.useCallback(x=>{A(x),q(D(x))},[D,q]),dn=o.useCallback(()=>{q(D(R),{immediate:!0})},[D,q,R]),un=o.useCallback(async x=>{if(ue){Q(x),q(D(R,{layout:x}),{immediate:!0}),t("Layout will be saved with your draft.");return}const C=await z();C==="error"||C==="conflict"||await P(async()=>{const j=await Ue({id:e,layout:x,editSessionId:c.current,expectedUpdatedAt:H.current});if(j.type==="error"){j.errors[0].code===Sa&&(d.current=x,Q(x),U(Ra(j.errors[0].details)??H.current)),t(j.errors[0].message);return}await K({updatedAt:j.updateNote.updatedAt,patch:{layout:x}})&&(d.current=null,Q(x),t("Layout has been updated."))})},[K,D,P,z,ue,e,t,U,q,H,R]),fn=o.useCallback(async()=>{const x=await z();if(x==="error"||x==="conflict")return;const C=!w;await P(async()=>{const j=await Ln(e,C);if(j.type==="error"){t(j.errors[0].message);return}await K({updatedAt:j.pinNote.updatedAt,patch:{pinned:C},confirmSave:!1})&&p(C)})},[K,P,z,w,e,t]),Pe=o.useCallback(()=>({id:e,title:R,createdAt:u.createdAt,updatedAt:H.current||u.updatedAt}),[u.createdAt,u.updatedAt,e,H,R]),pn=o.useCallback(async()=>{const x=r.current?.getMarkdown();if(x===void 0){t("Markdown is not ready yet.");return}try{await navigator.clipboard.writeText(Ut(x,Pe())),t("Copied note as Markdown.")}catch{t("Failed to copy Markdown.")}},[Pe,t]),mn=o.useCallback(async()=>{f.current?.invalidateInFlightSave(),te(),await ne(),g.current+=1;const x=await h();if(x.error||!x.data){t("Failed to reload the latest note state.");return}f.current?.discardPendingChanges(),J(),d.current=null,Y(x.data.updatedAt),A(x.data.title),Q(x.data.layout||"wide"),X(null),re(C=>C+1),V(null)},[J,Y,ne,te,t,h]),hn=o.useCallback(async()=>{if(oe()){d.current=null,V(null),await z({ignoreConflict:!0});return}const C=d.current;if(!C){V(null),await z({ignoreConflict:!0});return}await P(async()=>{const j=await Ue({id:e,layout:C,editSessionId:c.current,force:!0});if(j.type==="error"){t(j.errors[0].message);return}await K({updatedAt:j.updateNote.updatedAt,patch:{layout:C}})&&(d.current=null,fe(),V(null),Q(C))})},[K,P,z,oe,e,t,fe]),gn=o.useCallback(async()=>{const x=oe();if(!x||await O()==="error")return;const j=await _n({title:tt(x.title||"untitled"),content:tt(x.content),layout:x.layout??y});if(j.type==="error"){t(j.errors[0].message);return}m.current=!0,d.current=null,V(null),J(),Promise.resolve(n(j.createNote.id)).finally(()=>{m.current=!1})},[J,O,oe,y,n,t]),xn=o.useCallback(()=>{I&&(A(I.title),I.layout&&Q(I.layout),X(I.content),re(x=>x+1),Z(I))},[I,Z]),bn=o.useCallback(()=>{},[]),yn=o.useCallback(async x=>(f.current?.invalidateInFlightSave(),te(),await ne(),g.current+=1,P(async()=>{const C=await On(x,H.current);if(C.type==="error")return C;const j=C.restoreNoteSnapshot;return await K({updatedAt:j.updatedAt,patch:{title:j.title,content:j.content,layout:j.layout,pinned:j.pinned}})&&(c.current=at(),f.current?.discardPendingChanges(),J(),d.current=null,V(null),A(j.title),Q(j.layout||"wide"),p(j.pinned),X(j.content),re(_e=>_e+1)),C})),[K,J,ne,P,te]),Le=ae==="conflict"&&M?.type==="updated",vn=Le?oe():null;return{document:{title:R,titleRef:i,isPinned:w,layout:y,getLayout:()=>F.current,properties:u.properties,createdAt:Ie(u.createdAt),onTitleChange:ln,onLayoutSave:un,onTogglePinned:fn},editor:{ref:r,key:`${e}:${me}`,content:xe??u.content,getContent:()=>r.current?.getContent()??"",getHtml:()=>r.current?.getHtml(),getMarkdown:()=>r.current?.getMarkdown(),onChange:cn},save:{status:ae,lastSavedAt:ee,lastSavedVersion:le,confirmationRevision:_,onManualSave:dn,flushPendingChanges:et},recovery:{localDraftCreatedAt:I?G(I.createdAt).format("YYYY-MM-DD HH:mm:ss"):null,onRestoreLocalDraft:xn,onDiscardLocalDraft:ve,onClonePendingDraft:gn},externalChange:{value:M,isConflict:Le,hasConflictDraft:vn!==null,isBlocking:xa({change:M,isConflict:Le,loadedUpdatedAt:u.updatedAt}),isReloading:b.isRefetching,onReload:mn,onOverwrite:hn},properties:{ref:f,expectedUpdatedAt:H.current,editSessionId:c.current,saveProperties:on,onPendingChange:E,onSaved:bn},exportDocument:{metadata:Pe(),onCopyMarkdown:pn},snapshots:{restore:yn}}}const an=Bn(Ae),Aa={narrow:"max-w-[640px]",wide:"max-w-[896px]",full:"max-w-full px-4"},Ea=a.jsx(qe,{title:"Loading note",variant:"none",children:a.jsxs("main",{className:"mx-auto max-w-[896px]",children:[a.jsx(ie,{className:"mb-8",height:123}),a.jsxs("div",{className:"flex flex-col gap-5",children:[a.jsx(ie,{height:135}),a.jsx(ie,{className:"ml-12",height:320}),a.jsx(ie,{height:107}),a.jsx(ie,{height:100})]})]})});function ka({noteId:e}){return a.jsx(Ye,{fallback:a.jsx(ie,{height:107}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading reminder details for this note.",renderError:({error:n,retry:t})=>a.jsx(Qe,{title:"Failed to load reminders",description:"Retry loading reminder details for this note.",error:n,onRetry:t,showBackAction:!1,showHomeAction:!1}),children:a.jsx(Gr,{noteId:e})})}function Ta({noteId:e}){return a.jsx(Ye,{fallback:a.jsx(ie,{height:100}),errorTitle:"Failed to load back references",errorDescription:"Retry loading notes that link back here.",renderError:({error:n,retry:t})=>a.jsx(Qe,{title:"Failed to load back references",description:"Retry loading notes that link back here.",error:n,onRetry:t,showBackAction:!1,showHomeAction:!1}),children:a.jsx(Cr,{noteId:e,render:n=>n?.length?a.jsx(At,{icon:a.jsx(fr,{className:"h-3.5 w-3.5"}),title:"Back References",children:a.jsx("ul",{className:"flex flex-col",children:n.map(t=>a.jsx("li",{children:a.jsxs(Hn,{to:Ae,params:{id:t.id},className:"flex items-center gap-2 rounded-[10px] px-2.5 py-1.5 text-fg-secondary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[a.jsx(hr,{className:"h-3.5 w-3.5 shrink-0 text-fg-tertiary"}),a.jsx(S,{as:"span",variant:"body",weight:"medium",className:"text-current",children:t.title})]})},t.id))})}):null})})}function Ma({id:e}){const n=Re(),t=an.useNavigate(),[s,r]=o.useState(!1),[i,l]=o.useState(!1),[c,f]=o.useState(!1),d=ja({noteId:e,notify:n,navigateToNote:M=>t({to:Ae,params:{id:M}})}),{onCreate:m,onDelete:g,deleteWarningDialog:b}=Zn(),{document:u,editor:h,save:v,recovery:N,externalChange:R,properties:A,exportDocument:w,snapshots:p}=d,y=()=>t({to:qn,search:{page:1}}),T=async()=>{const M=await v.flushPendingChanges();M==="error"||M==="conflict"||await g(e,y)},F=async()=>{const M=await v.flushPendingChanges();M==="error"||M==="conflict"||await m(u.titleRef.current?.value||"untitled",h.getContent(),u.getLayout())};return a.jsx(qe,{title:u.title,variant:"none",children:a.jsxs("main",{className:W("mx-auto",Aa[u.layout]),children:[a.jsx(Er,{title:u.title,titleRef:u.titleRef,isPinned:u.isPinned,createdAt:u.createdAt,saveStatus:v.status,savedAt:v.lastSavedAt,savedVersion:v.lastSavedVersion,saveConfirmationRevision:v.confirmationRevision,onTitleChange:u.onTitleChange,onCopyMarkdown:()=>{w.onCopyMarkdown()},onDownloadDocument:()=>f(!0),onTogglePinned:()=>{u.onTogglePinned()},onChangeLayout:()=>r(!0),onCloneNote:()=>{F()},onRestoreVersion:()=>l(!0),onDelete:()=>{T()},onSave:v.onManualSave}),a.jsx(qr,{localDraftCreatedAt:N.localDraftCreatedAt,hasSaveError:v.status==="error",onRestoreDraft:N.onRestoreLocalDraft,onDiscardDraft:N.onDiscardLocalDraft,onRetrySave:v.onManualSave,onSaveAsNewNote:()=>{N.onClonePendingDraft()}}),a.jsxs("div",{className:"flex flex-col gap-5",children:[a.jsx(Kn,{ref:A.ref,noteId:e,properties:u.properties,expectedUpdatedAt:A.expectedUpdatedAt,editSessionId:A.editSessionId,disabled:v.status!=="saved",saveProperties:A.saveProperties,onPendingChange:A.onPendingChange,onSaved:A.onSaved}),a.jsx(ha,{ref:h.ref,content:h.content,currentNoteId:e,onChange:h.onChange},h.key),a.jsx(ka,{noteId:e}),a.jsx(Ta,{noteId:e})]}),a.jsx(Rr,{isOpen:s,onClose:()=>r(!1),onSave:u.onLayoutSave,currentLayout:u.layout}),a.jsx(Yr,{isOpen:R.isBlocking,isDeleted:R.value?.type==="deleted",isConflict:R.isConflict,hasDraft:R.hasConflictDraft,source:R.value?.source??"unknown",isReloading:R.isReloading,onReload:()=>{R.onReload()},onOverwrite:()=>{R.onOverwrite()},onCloneDraft:()=>{N.onClonePendingDraft()},onOpenTrash:()=>{y()}}),a.jsx(Wr,{isOpen:c,metadata:w.metadata,getHtml:h.getHtml,getMarkdown:h.getMarkdown,onClose:()=>f(!1)}),a.jsx(Qr,{isOpen:i,noteId:e,onClose:()=>l(!1),restoreSnapshot:p.restore}),b]})})}function Ga(){const{id:e}=an.useParams();if(!e)throw new Error("Note id is required.");return a.jsx(Ye,{fallback:Ea,errorTitle:"Failed to load note",errorDescription:"Retry loading the note editor.",resetKeys:[e],renderError:({error:n,retry:t})=>a.jsx(qe,{title:"Note",variant:"none",children:a.jsx(Qe,{title:"Failed to load note",description:"Retry loading the note editor.",error:n,onRetry:t})}),children:a.jsx(Ma,{id:e},e)})}export{Ma as NoteContent,Ga as default};