ocean-brain 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/index.js +73 -41
  2. package/dist/mcp.js +587 -26
  3. package/package.json +6 -1
  4. package/scripts/postinstall-prisma.mjs +41 -0
  5. package/server/client/dist/assets/Calendar-DynpmB3D.js +25 -0
  6. package/server/client/dist/assets/Callout-tNHgPhLM.js +1 -0
  7. package/server/client/dist/assets/Graph-DMXLUfCv.js +1 -0
  8. package/server/client/dist/assets/Image-ZxF459sC.js +1 -0
  9. package/server/client/dist/assets/Image.es-Dnn4SMzG.js +1 -0
  10. package/server/client/dist/assets/ModalActionRow-B3vNjcDc.js +1 -0
  11. package/server/client/dist/assets/Note-PDMuj62M.js +1 -0
  12. package/server/client/dist/assets/Note-PEevDKBh.css +1 -0
  13. package/server/client/dist/assets/Reminders-ComtTLuN.js +1 -0
  14. package/server/client/dist/assets/{Search-BANPp2ZV.js → Search-BJeZTbVu.js} +1 -1
  15. package/server/client/dist/assets/SurfaceCard-DAcVMY4f.js +1 -0
  16. package/server/client/dist/assets/Tag-BuNCDGD5.js +1 -0
  17. package/server/client/dist/assets/TagNotes-ajFOP5pZ.js +1 -0
  18. package/server/client/dist/assets/Trash.es-DLiHgjNo.js +1 -0
  19. package/server/client/dist/assets/{image.api-rBH0OSWJ.js → image.api-CjJgNbC0.js} +1 -1
  20. package/server/client/dist/assets/index-CDrZmLC2.js +1 -0
  21. package/server/client/dist/assets/index-DAZMX8bQ.css +1 -0
  22. package/server/client/dist/assets/index-DqFkOWbi.js +205 -0
  23. package/server/client/dist/assets/manage-image-CVyZTDT_.js +1 -0
  24. package/server/client/dist/assets/manage-image-detail-Bp17tylS.js +1 -0
  25. package/server/client/dist/assets/mcp-BpD7VH-d.js +1 -0
  26. package/server/client/dist/assets/placeholder-DSf4QF4v.js +34 -0
  27. package/server/client/dist/assets/trash-Ceb17h_s.js +1 -0
  28. package/server/client/dist/assets/useReminderMutate-CzyOQ_VB.js +82 -0
  29. package/server/client/dist/index.html +2 -2
  30. package/server/dist/app.js +97 -9
  31. package/server/dist/app.js.map +1 -1
  32. package/server/dist/main.js +16 -2
  33. package/server/dist/main.js.map +1 -1
  34. package/server/dist/modules/auth-guard.js +73 -0
  35. package/server/dist/modules/auth-guard.js.map +1 -0
  36. package/server/dist/modules/auth-mode.js +51 -0
  37. package/server/dist/modules/auth-mode.js.map +1 -0
  38. package/server/dist/modules/auth.js +9 -0
  39. package/server/dist/modules/auth.js.map +1 -1
  40. package/server/dist/modules/blocknote.js +154 -2
  41. package/server/dist/modules/blocknote.js.map +1 -1
  42. package/server/dist/modules/error-handler.js +41 -0
  43. package/server/dist/modules/error-handler.js.map +1 -0
  44. package/server/dist/modules/image-upload.js +114 -0
  45. package/server/dist/modules/image-upload.js.map +1 -0
  46. package/server/dist/modules/mcp-admin.js +88 -0
  47. package/server/dist/modules/mcp-admin.js.map +1 -0
  48. package/server/dist/modules/mcp-auth.js +71 -0
  49. package/server/dist/modules/mcp-auth.js.map +1 -0
  50. package/server/dist/modules/mcp-token.js +28 -0
  51. package/server/dist/modules/mcp-token.js.map +1 -0
  52. package/server/dist/modules/note-authoring.js +153 -0
  53. package/server/dist/modules/note-authoring.js.map +1 -0
  54. package/server/dist/modules/note-cleanup.js +207 -0
  55. package/server/dist/modules/note-cleanup.js.map +1 -0
  56. package/server/dist/modules/note-snapshot.js +223 -0
  57. package/server/dist/modules/note-snapshot.js.map +1 -0
  58. package/server/dist/modules/note-trash.js +262 -0
  59. package/server/dist/modules/note-trash.js.map +1 -0
  60. package/server/dist/modules/prisma-runtime.js +46 -0
  61. package/server/dist/modules/prisma-runtime.js.map +1 -0
  62. package/server/dist/modules/recovery-retention.js +26 -0
  63. package/server/dist/modules/recovery-retention.js.map +1 -0
  64. package/server/dist/modules/remote-image.js +176 -0
  65. package/server/dist/modules/remote-image.js.map +1 -0
  66. package/server/dist/modules/tag-organization.js +66 -0
  67. package/server/dist/modules/tag-organization.js.map +1 -0
  68. package/server/dist/modules/use-async.js +2 -4
  69. package/server/dist/modules/use-async.js.map +1 -1
  70. package/server/dist/schema/note/index.js +150 -6
  71. package/server/dist/schema/note/index.js.map +1 -1
  72. package/server/dist/start.js +11 -0
  73. package/server/dist/start.js.map +1 -0
  74. package/server/dist/types/index.js.map +1 -1
  75. package/server/dist/urls.js +3 -2
  76. package/server/dist/urls.js.map +1 -1
  77. package/server/dist/views/auth.js +305 -0
  78. package/server/dist/views/auth.js.map +1 -0
  79. package/server/dist/views/image.js +24 -81
  80. package/server/dist/views/image.js.map +1 -1
  81. package/server/dist/views/index.js +4 -0
  82. package/server/dist/views/index.js.map +1 -1
  83. package/server/dist/views/mcp-admin.js +42 -0
  84. package/server/dist/views/mcp-admin.js.map +1 -0
  85. package/server/dist/views/note.js +124 -0
  86. package/server/dist/views/note.js.map +1 -0
  87. package/server/dist/views/tag.js +23 -0
  88. package/server/dist/views/tag.js.map +1 -0
  89. package/server/prisma/migrations/20260331183000_0010_note_snapshot/migration.sql +13 -0
  90. package/server/prisma/migrations/20260331195000_0011_note_trash_entities/migration.sql +35 -0
  91. package/server/prisma/migrations/20260331213000_0012_image_hash_unique/migration.sql +49 -0
  92. package/server/prisma/migrations/20260404000000_0013_mcp_admin_control/migration.sql +9 -0
  93. package/server/prisma/schema.prisma +66 -1
  94. package/server/client/dist/assets/Calendar-ST5q_8KT.js +0 -48
  95. package/server/client/dist/assets/Callout-CrWW3bg0.js +0 -1
  96. package/server/client/dist/assets/Graph-CzJjt6rP.js +0 -1
  97. package/server/client/dist/assets/Image-Dxg1qqZw.js +0 -1
  98. package/server/client/dist/assets/Image.es-DZ0H6wH1.js +0 -1
  99. package/server/client/dist/assets/Note-Bu7fN3B6.js +0 -6
  100. package/server/client/dist/assets/Note-CCvXqPzv.css +0 -1
  101. package/server/client/dist/assets/Plus.es-CS3WVMDq.js +0 -1
  102. package/server/client/dist/assets/PriorityLegend-D61iBwNW.js +0 -1
  103. package/server/client/dist/assets/Reminders-BjirJMOR.css +0 -1
  104. package/server/client/dist/assets/Reminders-DjWRombU.js +0 -1
  105. package/server/client/dist/assets/Tag-DbKSLTj0.js +0 -1
  106. package/server/client/dist/assets/TagNotes-B6s7jtL7.js +0 -1
  107. package/server/client/dist/assets/index-BzWwEDoL.js +0 -1
  108. package/server/client/dist/assets/index-CF5_ZCYN.js +0 -162
  109. package/server/client/dist/assets/index-DjZk2Gpg.css +0 -1
  110. package/server/client/dist/assets/manage-image-detail-DOx6QsCl.js +0 -1
  111. package/server/client/dist/assets/manage-image-g-MC6Fkc.js +0 -1
  112. package/server/client/dist/assets/placeholder-DV3u6MrA.js +0 -34
  113. package/server/client/dist/assets/useReminderMutate-CU-UinGn.js +0 -82
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ocean-brain",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,6 +15,7 @@
15
15
  },
16
16
  "files": [
17
17
  "dist",
18
+ "scripts/postinstall-prisma.mjs",
18
19
  "server/dist",
19
20
  "server/prisma/schema.prisma",
20
21
  "server/prisma/migrations",
@@ -23,9 +24,13 @@
23
24
  "scripts": {
24
25
  "dev": "tsx src/index.ts",
25
26
  "build": "tsup",
27
+ "postinstall": "node ./scripts/postinstall-prisma.mjs",
28
+ "test": "tsx --test test/**/*.test.ts",
29
+ "test:ci": "tsx --test test/**/*.test.ts",
26
30
  "type-check": "tsc --noEmit"
27
31
  },
28
32
  "dependencies": {
33
+ "@blocknote/server-util": "^0.46.2",
29
34
  "@graphql-tools/schema": "^10.0.31",
30
35
  "@graphql-tools/utils": "^11.0.0",
31
36
  "@modelcontextprotocol/sdk": "^1.27.1",
@@ -0,0 +1,41 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { createRequire } from 'node:module';
5
+ import { pathToFileURL } from 'node:url';
6
+
7
+ export const resolveSchemaPath = (packageRoot, doesExist = existsSync) => {
8
+ const candidates = [
9
+ path.join(packageRoot, 'server', 'prisma', 'schema.prisma'),
10
+ path.resolve(packageRoot, '..', 'server', 'prisma', 'schema.prisma')
11
+ ];
12
+
13
+ const match = candidates.find((candidate) => doesExist(candidate));
14
+ if (!match) {
15
+ throw new Error(
16
+ `Unable to locate Prisma schema for CLI postinstall. Tried: ${candidates.join(', ')}`
17
+ );
18
+ }
19
+
20
+ return match;
21
+ };
22
+
23
+ const runPrismaGenerate = () => {
24
+ const packageRoot = process.cwd();
25
+ const schemaPath = resolveSchemaPath(packageRoot);
26
+ const require = createRequire(import.meta.url);
27
+ const prismaCliEntry = require.resolve('prisma/build/index.js');
28
+
29
+ execFileSync(
30
+ process.execPath,
31
+ [prismaCliEntry, 'generate', `--schema=${schemaPath}`],
32
+ {
33
+ stdio: 'inherit',
34
+ env: process.env
35
+ }
36
+ );
37
+ };
38
+
39
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
40
+ runPrismaGenerate();
41
+ }
@@ -0,0 +1,25 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{L as Z,N as ee,d as y,s as te,M as R,T as se,a as P,B as w,b as ne,c as re,u as q,q as F,g as z,P as ae,S as oe,e as le,C as ce}from"./index-DqFkOWbi.js";import{a as d}from"./graph-vendor-CUxe67Lr.js";import{C as ie}from"./Callout-tNHgPhLM.js";import"./note-core-BCgMq5QA.js";const de=({day:n,cellClassName:t,dayNumberClassName:s,isCurrentMonth:l,items:o,overflowCount:c,onOpenOverflow:m})=>e.jsxs("div",{className:`min-h-[200px] rounded-[14px] border p-2 ${t}`.trim(),children:[e.jsx("div",{className:"mb-2 flex justify-end",children:e.jsx("span",{className:`flex h-6 w-6 items-center justify-center rounded-[8px] text-label ${s}`.trim(),children:n})}),l&&o.length>0?e.jsxs("div",{className:"flex flex-col gap-1",children:[o,c>0?e.jsxs("button",{type:"button",onClick:m,className:"text-micro rounded-[10px] py-1 text-center font-semibold text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-muted",children:["+",c," more"]}):null]}):null]}),B=({params:n,toneClassName:t="",header:s,title:l,meta:o,titleClassName:c=""})=>e.jsx(Z,{to:ee,params:n,className:"group block",children:e.jsxs("div",{className:`rounded-[6px] bg-emphasis flex h-full flex-col justify-center px-1.5 py-0.5 transition-colors group-hover:bg-hover-subtle ${t}`.trim(),children:[e.jsxs("div",{className:`flex items-center gap-1 text-label line-clamp-1 font-semibold text-fg-default ${c}`.trim(),children:[s?e.jsx("span",{className:"shrink-0 text-fg-muted",children:s}):null,l]}),o?e.jsx("div",{className:"text-micro font-medium text-fg-secondary",children:o}):null]})}),ue=({note:n,type:t})=>e.jsx(B,{params:{id:n.id},title:n.title,meta:y(Number(t==="create"?n.createdAt:n.updatedAt)).format("HH:mm")}),me=({reminder:n})=>e.jsx(B,{params:{id:String(n.note?.id??n.noteId)},header:e.jsx(te,{size:12}),title:n.content||n.note?.title||"No title",titleClassName:n.completed?"line-through":"",meta:y(Number(n.reminderDate)).format("HH:mm")}),O=3,H=(n,t)=>n.map(s=>s.type==="note"?e.jsx(ue,{note:s.item,type:t},`note-${s.item.id}`):e.jsx(me,{reminder:s.item},`reminder-${s.item.id}`)),ge=({year:n,month:t,day:s,isCurrentMonth:l,isSunday:o,isToday:c,isPast:m,notes:g,reminders:f,type:j})=>{const[M,N]=d.useState(!1),x=d.useMemo(()=>{const r=g.map(u=>({type:"note",item:u})),i=f.map(u=>({type:"reminder",item:u}));return m?[...r,...i]:[...i,...r]},[m,g,f]),D=x.length>O,S=d.useMemo(()=>H(x.slice(0,O),j),[x,j]),$=d.useMemo(()=>H(x,j),[x,j]),E=d.useCallback(()=>N(!0),[]),v=d.useCallback(()=>N(!1),[]),k=()=>l?c?"border-border-secondary/70 bg-[color:color-mix(in_srgb,var(--surface)_88%,var(--accent-soft-primary)_12%)]":"bg-surface border-border-subtle":"bg-muted/18 border-border-subtle/70",I=()=>c?"bg-cta text-fg-on-filled font-semibold":l?o?"text-fg-weekend font-bold":"text-fg-secondary font-bold":"text-fg-disabled opacity-55";return e.jsxs(e.Fragment,{children:[e.jsx(de,{day:s,cellClassName:k(),dayNumberClassName:I(),isCurrentMonth:l,items:S,overflowCount:D?x.length-O:0,onOpenOverflow:E}),D&&e.jsxs(R,{isOpen:M,onClose:v,children:[e.jsx(R.Header,{title:`${n}/${String(t).padStart(2,"0")}/${String(s).padStart(2,"0")}`,onClose:v}),e.jsxs(R.Body,{children:[e.jsxs(R.Description,{className:"sr-only",children:["View all notes and reminders scheduled for day ",s,"."]}),e.jsx("div",{className:"flex max-h-[60vh] flex-col gap-2 overflow-y-auto",children:$})]})]})]})},he=d.memo(ge),xe=["January","February","March","April","May","June","July","August","September","October","November","December"],pe=({month:n,year:t,type:s,onPrevMonth:l,onNextMonth:o,onToday:c,onTypeChange:m})=>e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-2.5",children:[e.jsx("span",{className:"text-2xl sm:text-3xl font-bold tracking-tight text-fg-default",children:xe[n-1]}),e.jsx("span",{className:"text-lg sm:text-xl font-medium text-fg-placeholder",children:t})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(se,{type:"single",variant:"pills",size:"sm",value:s,onValueChange:g=>g&&m(g),children:[e.jsx(P,{value:"create",children:"Create date"}),e.jsx(P,{value:"update",children:"Update date"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(w,{variant:"ghost",size:"sm",onClick:c,children:"Today"}),e.jsx(w,{variant:"ghost",size:"icon-sm",onClick:l,children:e.jsx(ne,{width:18,height:18})}),e.jsx(w,{variant:"ghost",size:"icon-sm",onClick:o,children:e.jsx(re,{width:18,height:18})})]})]})]}),ye=`
2
+ query NotesInDateRange($dateRange: DateRangeInput) {
3
+ notesInDateRange(dateRange: $dateRange) {
4
+ id
5
+ title
6
+ createdAt
7
+ updatedAt
8
+ }
9
+ }
10
+ `,fe=`
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
+ `,be=async n=>{const t=await z(ye,{dateRange:n});if(t.type==="error")throw t;return t.notesInDateRange},je=async n=>{const t=await z(fe,{dateRange:n});if(t.type==="error")throw t;return t.remindersInDateRange},Ne=({year:n,month:t})=>{const s=`${n}-${String(t).padStart(2,"0")}-01`,l=t===12?1:t+1,c=`${t===12?n+1:n}-${String(l).padStart(2,"0")}-01`,m={start:s,end:c},g=q({queryKey:F.calendar.notesInDateRange(n,t),queryFn:()=>be(m)}),f=q({queryKey:F.reminders.inDateRange(n,t),queryFn:()=>je(m)});return{notes:g.data??[],reminders:f.data??[],isLoading:g.isLoading||f.isLoading,isError:g.isError||f.isError}},Me=["SUN","MON","TUE","WED","THU","FRI","SAT"],De=[],ve=[],Q=le(ce);function ke(){const n=Q.useNavigate(),{year:t,month:s,type:l}=Q.useSearch(),o=d.useRef(null),c=d.useRef(!1),m=d.useRef(0),g=d.useRef(0),f=d.useCallback(r=>{c.current=!0,m.current=r.pageX-(o.current?.offsetLeft??0),g.current=o.current?.scrollLeft??0,o.current&&(o.current.style.cursor="grabbing",o.current.style.userSelect="none")},[]),j=d.useCallback(r=>{if(!c.current||!o.current)return;r.preventDefault();const u=(r.pageX-o.current.offsetLeft-m.current)*1.2;o.current.scrollLeft=g.current-u},[]),M=d.useCallback(()=>{c.current=!1,o.current&&(o.current.style.cursor="grab",o.current.style.userSelect="")},[]),{notes:N,reminders:x,isLoading:D,isError:S}=Ne({year:t,month:s}),$=d.useMemo(()=>{const r=y(),i=`${r.year()}-${r.month()+1}-${r.date()}`,u=new Map;for(const a of N){const p=l==="create"?y(Number(a.createdAt)):y(Number(a.updatedAt)),h=`${p.year()}-${p.month()+1}-${p.date()}`,b=u.get(h)||[];b.push(a),u.set(h,b)}const T=new Map;for(const a of x){const p=y(Number(a.reminderDate)),h=`${p.year()}-${p.month()+1}-${p.date()}`,b=T.get(h)||[];b.push(a),T.set(h,b)}const K=new Date(t,s-1,1),V=new Date(t,s,0),L=K.getDay(),A=V.getDate(),C=[],_=s===1?12:s-1,Y=s===1?t-1:t,W=new Date(Y,_,0).getDate();for(let a=L-1;a>=0;a--)C.push({day:W-a,isCurrentMonth:!1,year:Y,month:_});for(let a=1;a<=A;a++)C.push({day:a,isCurrentMonth:!0,year:t,month:s});const U=(L+A)%7,X=U===0?0:7-U,J=s===12?1:s+1,G=s===12?t+1:t;for(let a=1;a<=X;a++)C.push({day:a,isCurrentMonth:!1,year:G,month:J});return C.map((a,p)=>{const h=`${a.year}-${a.month}-${a.day}`,b=y(`${a.year}-${String(a.month).padStart(2,"0")}-${String(a.day).padStart(2,"0")}`);return{key:h,year:a.year,month:a.month,day:a.day,isCurrentMonth:a.isCurrentMonth,isSunday:p%7===0,isToday:h===i,isPast:b.isBefore(r,"day"),notes:u.get(h)||De,reminders:T.get(h)||ve}})},[t,s,N,x,l]),E=()=>{const r=s===1?12:s-1,i=s===1?t-1:t;n({search:u=>({...u,month:r,year:i})})},v=()=>{const r=s===12?1:s+1,i=s===12?t+1:t;n({search:u=>({...u,month:r,year:i})})},k=()=>{n({search:r=>({...r,month:y().month()+1,year:y().year()})})},I=r=>{r&&n({search:i=>({...i,type:r})})};return e.jsx(ae,{title:"Calendar",variant:"none",children:S?e.jsx(ie,{children:"Failed to load calendar data. Please try again later."}):e.jsxs("div",{className:"surface-base",children:[e.jsx("div",{className:"border-b border-border-subtle px-3 py-3",children:e.jsx(pe,{month:s,year:t,type:l,onPrevMonth:E,onNextMonth:v,onToday:k,onTypeChange:I})}),e.jsx("div",{ref:o,className:"overflow-x-auto cursor-grab px-3 pb-3 pt-2",onMouseDown:f,onMouseMove:j,onMouseUp:M,onMouseLeave:M,children:e.jsxs("div",{className:"min-w-[1260px]",children:[e.jsx("div",{className:"grid grid-cols-7 gap-1.5 mb-2",children:Me.map((r,i)=>e.jsx("div",{className:`py-2 text-center text-label font-semibold uppercase tracking-[0.12em] ${i===0?"text-fg-weekend":"text-fg-tertiary"}`,children:r},r))}),D?e.jsx("div",{className:"grid grid-cols-7 gap-1.5",children:Array.from({length:35}).map((r,i)=>e.jsx(oe,{height:180},i))}):e.jsx("div",{className:"grid grid-cols-7 gap-1.5",children:$.map(r=>e.jsx(he,{year:r.year,month:r.month,day:r.day,isCurrentMonth:r.isCurrentMonth,isSunday:r.isSunday,isToday:r.isToday,isPast:r.isPast,notes:r.notes,reminders:r.reminders,type:l},r.key))})]})})]})})}export{ke as default};
@@ -0,0 +1 @@
1
+ import{j as r}from"./note-vendor-BofYbzmZ.js";import{a as e}from"./graph-vendor-CUxe67Lr.js";import{p as n}from"./index-DqFkOWbi.js";const l=new Map([["bold",e.createElement(e.Fragment,null,e.createElement("path",{d:"M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z"}))],["duotone",e.createElement(e.Fragment,null,e.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),e.createElement("path",{d:"M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z"}))],["fill",e.createElement(e.Fragment,null,e.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"}))],["light",e.createElement(e.Fragment,null,e.createElement("path",{d:"M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",e.createElement(e.Fragment,null,e.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"}))],["thin",e.createElement(e.Fragment,null,e.createElement("path",{d:"M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),m=e.forwardRef((a,t)=>e.createElement(n,{ref:t,...a,weights:l}));m.displayName="InfoIcon";const s=m,A=({children:a,className:t=""})=>r.jsxs("div",{className:`flex items-start gap-2.5 rounded-[12px] border border-border-subtle bg-hover-subtle/50 px-4 py-3 ${t}`,children:[r.jsx(s,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary"}),r.jsx("div",{className:"text-sm font-medium text-fg-secondary",children:a})]});export{A as C};
@@ -0,0 +1 @@
1
+ import{j as r}from"./note-vendor-BofYbzmZ.js";import{a as i,F as V}from"./graph-vendor-CUxe67Lr.js";import{Q as W,P as j,h as _,S as U,i as Y,j as J,k as X,l as ee,q as te,N as ne,E as re,o as oe}from"./index-DqFkOWbi.js";import"./note-core-BCgMq5QA.js";const se=s=>{let a=0;for(let n=0;n<s.length;n++)a+=s.charCodeAt(n);return a},ae={background:"#f4f6f8",nodeHub:"#2c2f36",nodeSelected:"#111318",nodeConnected:"#636b76",nodeDefault:["#d6dbe1","#c8ced6","#b7bec7","#a7afb9"],nodeDimmed:["rgba(214,219,225,0.28)","rgba(200,206,214,0.24)","rgba(183,190,199,0.24)","rgba(167,175,185,0.2)"],nodeHubDimmed:"rgba(44,47,54,0.16)",nodeStroke:"#eef1f4",nodeSelectedStroke:"#a6b0bc",labelBackground:"rgba(246,248,250,0.92)",labelText:"#222831",labelFontFamily:"Pretendard Variable, Pretendard, system-ui, sans-serif",linkIdle:"rgba(99, 107, 117, 0.34)",linkConnected:"#68717c",linkDimmed:"rgba(127, 136, 146, 0.12)",legendHub:"#2c2f36"},ie={background:"#121316",nodeHub:"#d6dce3",nodeSelected:"#eef1f5",nodeConnected:"#9099a4",nodeDefault:["#343a43","#2d333c","#262c35","#20262f"],nodeDimmed:["rgba(52,58,67,0.28)","rgba(45,51,60,0.24)","rgba(38,44,53,0.22)","rgba(32,38,47,0.2)"],nodeHubDimmed:"rgba(214,220,227,0.16)",nodeStroke:"#171c23",nodeSelectedStroke:"#7f8a97",labelBackground:"rgba(16,18,22,0.9)",labelText:"#eef2f6",labelFontFamily:"Pretendard Variable, Pretendard, system-ui, sans-serif",linkIdle:"rgba(118, 127, 138, 0.42)",linkConnected:"#a2abb6",linkDimmed:"rgba(118, 127, 138, 0.1)",legendHub:"#d6dce3"};function C(s){return s==="dark"?ie:ae}function le(s,a){const n=C(s),{connections:g,colorIndex:y,selectedNodeId:d,nodeId:b,isConnected:c}=a,h=d===b;return d!==null&&!h&&!c?g>3?n.nodeHubDimmed:n.nodeDimmed[y%n.nodeDimmed.length]:h?n.nodeSelected:c?n.nodeConnected:g>3?n.nodeHub:n.nodeDefault[y%n.nodeDefault.length]}function de(s,a){const n=C(s);return a.selectedNodeId!==null&&!a.isConnected?n.linkDimmed:a.isConnected?n.linkConnected:n.linkIdle}function ce(s,a){const n=C(s);return`${a.emphasize?"700":"400"} ${a.fontSize}px ${n.labelFontFamily}`}function F(s){return s<=1?3.5:s<=3?4.5:s<=6?5.5:Math.min(7,5.5+Math.sqrt(s)*.5)}const ue=r.jsx(j,{title:"Knowledge Graph",children:r.jsx("div",{className:"flex h-[600px] items-center justify-center",children:r.jsx(U,{width:"100%",height:"100%"})})});function fe(){const s=Y(),a=i.useRef(null),n=i.useRef(null),[g,y]=i.useState({width:800,height:600}),[d,b]=i.useState(null),{theme:c}=J(e=>e),h=C(c),D=i.useRef(h);D.current=h;const{data:x}=X({queryKey:te.notes.graph(),queryFn:async()=>{const e=await ee();if(e.type==="error")throw e;return e.noteGraph}}),l=i.useMemo(()=>{if(x.nodes.length===0)return null;const e=x.nodes.filter(o=>o.connections>0);if(e.length===0)return null;const t=new Set(e.map(o=>o.id));return{nodes:e,links:x.links.filter(o=>t.has(o.source)&&t.has(o.target))}},[x]);i.useEffect(()=>{if(!l)return;const e=()=>{if(!a.current)return;const t=a.current.getBoundingClientRect();y({width:t.width,height:Math.max(600,window.innerHeight-150)})};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]),i.useEffect(()=>{if(!l||!n.current)return;const e=window.setTimeout(()=>{n.current?.zoomToFit(400,50)},500);return()=>window.clearTimeout(e)},[l]);const T=i.useRef(d);T.current=d;const G=i.useCallback(e=>{if(T.current===e.id){s({to:ne,params:{id:e.id}});return}b(e.id)},[s]),z=i.useCallback(()=>{b(null)},[]),B=i.useCallback(e=>{a.current&&(a.current.style.cursor=e?"pointer":"default")},[]),I=i.useRef(!1),L=i.useCallback(()=>{I.current||(I.current=!0,n.current?.enableZoomInteraction(!1))},[]),K=i.useCallback(()=>{I.current=!1,n.current?.enableZoomInteraction(!0)},[]),R=i.useRef(new Map),q=i.useMemo(()=>{const e=new Map;if(l)for(const t of l.links)e.has(t.source)||e.set(t.source,new Set),e.has(t.target)||e.set(t.target,new Set),e.get(t.source)?.add(t.target),e.get(t.target)?.add(t.source);return e},[l]);R.current=q;const A=i.useCallback((e,t,o)=>{const u=D.current,f=d,p=R.current,m=F(e.connections),w=e.x||0,S=e.y||0,k=f===e.id,v=f?p.get(f)?.has(e.id)??!1:!1,Z=f!==null&&!k&&!v,$=se(e.id);if(t.beginPath(),t.arc(w,S,m,0,Math.PI*2),t.fillStyle=le(c,{connections:e.connections,colorIndex:$,selectedNodeId:f,nodeId:e.id,isConnected:v}),t.fill(),Z)return;t.strokeStyle=u.nodeStroke,t.lineWidth=(k?2:1)/o,t.stroke(),k&&(t.beginPath(),t.arc(w,S,m+2/o,0,Math.PI*2),t.strokeStyle=u.nodeSelectedStroke,t.lineWidth=1.5/o,t.stroke());const Q=v&&e.connections>=4;if(k||Q||o>2.5){const E=e.title||"Untitled",H=Math.max(10/o,2.5);t.font=ce(c,{fontSize:H,emphasize:k}),t.textAlign="center",t.textBaseline="top";const P=t.measureText(E).width,N=2/o,M=S+m+3/o;t.fillStyle=u.labelBackground,t.fillRect(w-P/2-N,M,P+N*2,H+N*2),t.fillStyle=u.labelText,t.fillText(E,w,M+N)}},[d,c]),O=i.useCallback((e,t,o)=>{const u=d,f=e.source,p=e.target,m=u?f.id===u||p.id===u:!1;t.beginPath(),t.moveTo(f.x||0,f.y||0),t.lineTo(p.x||0,p.y||0),t.strokeStyle=de(c,{selectedNodeId:u,isConnected:m}),t.lineWidth=m?2/o:.5/o,t.stroke()},[d,c]);return l?r.jsx(j,{title:"Knowledge Graph",description:`${l.nodes.length} linked notes, ${l.links.length} connections`,children:r.jsxs("div",{ref:a,className:"surface-base graph-canvas relative overflow-hidden",style:{"--graph-bg":h.background},children:[d&&(()=>{const e=l.nodes.find(t=>t.id===d);return e?r.jsxs("div",{className:"surface-floating absolute top-3 left-3 z-10 flex items-center gap-2 px-3 py-2",children:[r.jsx("span",{className:"text-meta max-w-48 truncate font-semibold text-fg-default",children:e.title}),r.jsxs("span",{className:"text-label text-fg-tertiary",children:[e.connections," links"]}),r.jsx("button",{type:"button",onClick:()=>b(null),className:"focus-ring-soft ml-1 flex h-6 w-6 cursor-pointer items-center justify-center rounded-[8px] text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-default","aria-label":"Deselect node",children:r.jsx(oe,{className:"h-3.5 w-3.5"})})]}):null})(),r.jsxs("div",{className:"surface-floating absolute top-3 right-3 z-10 flex flex-col gap-1.5 px-3 py-2.5",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"legend-dot h-2.5 w-2.5 shrink-0 rounded-full",style:{"--legend-color":h.legendHub}}),r.jsx("span",{className:"text-label font-medium text-fg-secondary",children:"Hub notes (4+ connections)"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"legend-dot h-2.5 w-2.5 shrink-0 rounded-full",style:{"--legend-color":h.nodeConnected}}),r.jsx("span",{className:"text-label font-medium text-fg-secondary",children:"Connected notes"})]})]}),r.jsx(V,{ref:n,graphData:l,width:g.width,height:g.height,nodeId:"id",nodeLabel:"",nodeCanvasObject:A,nodePointerAreaPaint:(e,t,o)=>{o.beginPath(),o.arc(e.x||0,e.y||0,Math.max(F(e.connections)+4,10),0,2*Math.PI),o.fillStyle=t,o.fill()},linkCanvasObject:O,linkCanvasObjectMode:()=>"replace",linkDirectionalParticles:0,onNodeClick:G,onNodeHover:B,onBackgroundClick:z,onNodeDrag:L,onNodeDragEnd:K,warmupTicks:30,cooldownTicks:80,d3AlphaDecay:.05,d3VelocityDecay:.3,enableZoomInteraction:!0,enablePanInteraction:!0,minZoom:.3,maxZoom:5})]})}):r.jsx(j,{title:"Knowledge Graph",children:r.jsx(re,{title:"No constellations yet",description:"Link your notes together and watch your own starry sky unfold."})})}function pe(){return r.jsx(W,{fallback:ue,errorTitle:"Failed to load graph",errorDescription:"Retry loading your linked note constellation.",renderError:({error:s,retry:a})=>r.jsx(j,{title:"Knowledge Graph",children:r.jsx(_,{title:"Failed to load graph",description:"Retry loading your linked note constellation.",error:s,onRetry:a})}),children:r.jsx(fe,{})})}export{pe as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{a as g}from"./graph-vendor-CUxe67Lr.js";function u({src:r,alt:n,loading:t="lazy",className:i}){const s=g.useRef(null);return g.useEffect(()=>{if(!s.current||t!=="lazy"||!r)return;const a=new IntersectionObserver(([c])=>{if(c.isIntersecting){const A=c.target;A.src=A.dataset.src,a.unobserve(A)}});return a.observe(s.current),()=>{a.disconnect()}},[t,r]),e.jsx(e.Fragment,{children:t!=="lazy"?e.jsx("img",{src:r,alt:n,className:`${i??""} dark:brightness-[0.85] dark:saturate-[0.9]`.trim()}):e.jsx("img",{ref:s,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2O4evXqfwAIgQN/QHwrfwAAAABJRU5ErkJggg==",alt:n,"data-src":r,className:`${i??""} dark:brightness-[0.85] dark:saturate-[0.9]`.trim()})})}export{u as I};
@@ -0,0 +1 @@
1
+ import{a}from"./graph-vendor-CUxe67Lr.js";import{p as m}from"./index-DqFkOWbi.js";const n=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M144,96a16,16,0,1,1,16,16A16,16,0,0,1,144,96Zm92-40V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56ZM44,60v79.72l33.86-33.86a20,20,0,0,1,28.28,0L147.31,147l17.18-17.17a20,20,0,0,1,28.28,0L212,149.09V60Zm0,136H162.34L92,125.66l-48,48Zm168,0V183l-33.37-33.37L164.28,164l32,32Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M224,56V178.06l-39.72-39.72a8,8,0,0,0-11.31,0L147.31,164,97.66,114.34a8,8,0,0,0-11.32,0L32,168.69V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z",opacity:"0.2"}),a.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM156,88a12,12,0,1,1-12,12A12,12,0,0,1,156,88Zm60,112H40V160.69l46.34-46.35a8,8,0,0,1,11.32,0h0L165,181.66a8,8,0,0,0,11.32-11.32l-17.66-17.65L173,138.34a8,8,0,0,1,11.31,0L216,170.07V200Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM40,54H216a2,2,0,0,1,2,2V163.57L188.53,134.1a14,14,0,0,0-19.8,0l-21.42,21.42L101.9,110.1a14,14,0,0,0-19.8,0L38,154.2V56A2,2,0,0,1,40,54ZM38,200V171.17l52.58-52.58a2,2,0,0,1,2.84,0L176.83,202H40A2,2,0,0,1,38,200Zm178,2H193.8l-38-38,21.41-21.42a2,2,0,0,1,2.83,0l38,38V200A2,2,0,0,1,216,202ZM146,100a10,10,0,1,1,10,10A10,10,0,0,1,146,100Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,44H40A12,12,0,0,0,28,56V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A12,12,0,0,0,216,44ZM40,52H216a4,4,0,0,1,4,4V168.4l-32.89-32.89a12,12,0,0,0-17,0l-22.83,22.83-46.82-46.83a12,12,0,0,0-17,0L36,159V56A4,4,0,0,1,40,52ZM36,200V170.34l53.17-53.17a4,4,0,0,1,5.66,0L181.66,204H40A4,4,0,0,1,36,200Zm180,4H193l-40-40,22.83-22.83a4,4,0,0,1,5.66,0L220,179.71V200A4,4,0,0,1,216,204ZM148,100a8,8,0,1,1,8,8A8,8,0,0,1,148,100Z"}))]]),e=a.forwardRef((l,t)=>a.createElement(m,{ref:t,...l,weights:n}));e.displayName="ImageIcon";const Z=e;export{Z as I};
@@ -0,0 +1 @@
1
+ import{a as e}from"./graph-vendor-CUxe67Lr.js";import{p as n}from"./index-DqFkOWbi.js";import{j as r}from"./note-vendor-BofYbzmZ.js";const m=new Map([["bold",e.createElement(e.Fragment,null,e.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z"}))],["duotone",e.createElement(e.Fragment,null,e.createElement("path",{d:"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z",opacity:"0.2"}),e.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["fill",e.createElement(e.Fragment,null,e.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,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",e.createElement(e.Fragment,null,e.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z"}))],["regular",e.createElement(e.Fragment,null,e.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["thin",e.createElement(e.Fragment,null,e.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z"}))]]),t=e.forwardRef((a,l)=>e.createElement(n,{ref:l,...a,weights:m}));t.displayName="PlusIcon";const s=t;function p({children:a}){return r.jsx("div",{className:"flex w-full flex-col-reverse gap-2 sm:flex-row sm:justify-end",children:a})}export{p as M,s as n};
@@ -0,0 +1 @@
1
+ import{j as e,U as V,y as ie,v as ce,i as Y,k as de,X as me,F as ue}from"./note-vendor-BofYbzmZ.js";import{p as xe,k as G,z as fe,q as C,M as j,B as M,A as W,G as pe,u as he,H as ge,I as ye,J as be,d as N,K as J,L as Z,N as z,x as je,O as S,U as X,V as ve,v as Ne,W as we,j as Ce,X as O,Y as ke,Z as Se,T as Re,a as $,c as Me,_ as Te,$ as Ae,D as ee,m as te,Q as F,P as U,h as P,e as Ee,S as E,a0 as Le,a1 as De,a2 as He,a3 as Oe,a4 as $e,a5 as q}from"./index-DqFkOWbi.js";import{a as n}from"./graph-vendor-CUxe67Lr.js";import{u as Ie}from"./image.api-CjJgNbC0.js";import{V as Fe,a2 as Pe,a3 as Ye,A as Ze}from"./note-core-BCgMq5QA.js";import{M as se,n as ze}from"./ModalActionRow-B3vNjcDc.js";import{u as Ue,R as Be,s as qe}from"./useReminderMutate-CzyOQ_VB.js";const _e=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M87.5,151.52l64-64a12,12,0,0,1,17,17l-64,64a12,12,0,0,1-17-17Zm131-114a60.08,60.08,0,0,0-84.87,0L103.51,67.61a12,12,0,0,0,17,17l30.07-30.06a36,36,0,0,1,50.93,50.92L171.4,135.52a12,12,0,1,0,17,17l30.08-30.06A60.09,60.09,0,0,0,218.45,37.55ZM135.52,171.4l-30.07,30.08a36,36,0,0,1-50.92-50.93l30.06-30.07a12,12,0,0,0-17-17L37.55,133.58a60,60,0,0,0,84.88,84.87l30.06-30.07a12,12,0,0,0-17-17Z"}))],["duotone",n.createElement(n.Fragment,null,n.createElement("path",{d:"M209.94,113.94l-96,96a48,48,0,0,1-67.88-67.88l96-96a48,48,0,0,1,67.88,67.88Z",opacity:"0.2"}),n.createElement("path",{d:"M165.66,90.34a8,8,0,0,1,0,11.32l-64,64a8,8,0,0,1-11.32-11.32l64-64A8,8,0,0,1,165.66,90.34ZM215.6,40.4a56,56,0,0,0-79.2,0L106.34,70.45a8,8,0,0,0,11.32,11.32l30.06-30a40,40,0,0,1,56.57,56.56l-30.07,30.06a8,8,0,0,0,11.31,11.32L215.6,119.6a56,56,0,0,0,0-79.2ZM138.34,174.22l-30.06,30.06a40,40,0,1,1-56.56-56.57l30.05-30.05a8,8,0,0,0-11.32-11.32L40.4,136.4a56,56,0,0,0,79.2,79.2l30.06-30.07a8,8,0,0,0-11.32-11.31Z"}))],["fill",n.createElement(n.Fragment,null,n.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,32ZM144.56,173.66l-21.45,21.45a44,44,0,0,1-62.22-62.22l21.45-21.46a8,8,0,0,1,11.32,11.31L72.2,144.2a28,28,0,0,0,39.6,39.6l21.45-21.46a8,8,0,0,1,11.31,11.32Zm-34.9-16a8,8,0,0,1-11.32-11.32l48-48a8,8,0,0,1,11.32,11.32Zm85.45-34.55-21.45,21.45a8,8,0,0,1-11.32-11.31L183.8,111.8a28,28,0,0,0-39.6-39.6L122.74,93.66a8,8,0,0,1-11.31-11.32l21.46-21.45a44,44,0,0,1,62.22,62.22Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M164.25,91.75a6,6,0,0,1,0,8.49l-64,64a6,6,0,0,1-8.49-8.48l64-64A6,6,0,0,1,164.25,91.75ZM214.2,41.8a54.07,54.07,0,0,0-76.38,0L107.75,71.85a6,6,0,0,0,8.49,8.49l30.07-30.06a42,42,0,0,1,59.41,59.41l-30.08,30.07a6,6,0,1,0,8.49,8.49l30.07-30.07A54,54,0,0,0,214.2,41.8ZM139.76,175.64l-30.07,30.08a42,42,0,0,1-59.41-59.41l30.06-30.07a6,6,0,0,0-8.49-8.49l-30,30.07a54,54,0,0,0,76.38,76.39l30.07-30.08a6,6,0,0,0-8.49-8.49Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M165.66,90.34a8,8,0,0,1,0,11.32l-64,64a8,8,0,0,1-11.32-11.32l64-64A8,8,0,0,1,165.66,90.34ZM215.6,40.4a56,56,0,0,0-79.2,0L106.34,70.45a8,8,0,0,0,11.32,11.32l30.06-30a40,40,0,0,1,56.57,56.56l-30.07,30.06a8,8,0,0,0,11.31,11.32L215.6,119.6a56,56,0,0,0,0-79.2ZM138.34,174.22l-30.06,30.06a40,40,0,1,1-56.56-56.57l30.05-30.05a8,8,0,0,0-11.32-11.32L40.4,136.4a56,56,0,0,0,79.2,79.2l30.06-30.07a8,8,0,0,0-11.32-11.31Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M162.84,93.16a4,4,0,0,1,0,5.66l-64,64a4,4,0,0,1-5.66-5.66l64-64A4,4,0,0,1,162.84,93.16Zm49.95-49.95a52.07,52.07,0,0,0-73.56,0L109.17,73.27a4,4,0,0,0,5.65,5.66l30.07-30.06a44,44,0,0,1,62.24,62.24l-30.07,30.06a4,4,0,0,0,5.66,5.66l30.07-30.06A52.07,52.07,0,0,0,212.79,43.21ZM141.17,177.06l-30.06,30.07a44,44,0,0,1-62.24-62.24l30.06-30.06a4,4,0,0,0-5.66-5.66L43.21,139.23a52,52,0,0,0,73.56,73.56l30.06-30.07a4,4,0,1,0-5.66-5.66Z"}))]]),ae=n.forwardRef((t,a)=>n.createElement(xe,{ref:a,...t,weights:_e}));ae.displayName="LinkSimpleIcon";const Qe=ae;function Ke({title:t,description:a,selected:r=!1,onClick:o,children:l}){return e.jsxs("button",{type:"button","aria-pressed":r,className:`focus-ring-soft flex w-full items-start justify-between gap-3 p-3 text-left transition-colors sm:p-4 ${r?"surface-floating bg-elevated":"rounded-[14px] border border-border-subtle bg-transparent hover:border-border-secondary hover:bg-hover-subtle"}`,onClick:o,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:`text-sm font-semibold sm:text-base ${r?"text-fg-default":"text-fg-secondary"}`,children:t}),e.jsx("div",{className:`mt-1 text-xs font-medium sm:text-sm ${r?"text-fg-tertiary":"text-fg-placeholder"}`,children:a})]}),l?e.jsx("div",{className:"shrink-0",children:l}):null]})}const Ve=t=>{const{data:a}=G({queryKey:C.notes.backReferences(t.noteId),async queryFn(){const r=await fe(t.noteId);if(r.type==="error")throw r;return r.backReferences}});return t.render(a)},Ge=[{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 We({isOpen:t,onClose:a,onSave:r,currentLayout:o="wide"}){const[l,i]=n.useState(o);n.useEffect(()=>{t&&i(o)},[t,o]);const s=()=>{r(l),a()};return e.jsxs(j,{isOpen:t,onClose:a,children:[e.jsx(j.Header,{title:"Layout Settings",onClose:a}),e.jsx(j.Body,{children:e.jsx("div",{className:"flex flex-col gap-3 sm:gap-4",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-sm font-semibold text-fg-secondary",children:"Note Layout"}),e.jsx("div",{className:"flex flex-col gap-2",children:Ge.map(c=>e.jsx(Ke,{title:c.label,description:c.description,selected:l===c.value,onClick:()=>i(c.value)},c.value))})]})})}),e.jsx(j.Footer,{children:e.jsxs(se,{children:[e.jsx(M,{variant:"ghost",size:"sm",onClick:a,children:"Cancel"}),e.jsx(M,{variant:"primary",size:"sm",onClick:s,children:"Apply"})]})})]})}const Je=(t,a)=>t||(a==="mobile"?"Mobile browser":a==="mcp"?"MCP":"Web browser");function Xe({isOpen:t,noteId:a,onClose:r,onRestored:o}){const l=W(),i=pe(),s=he({queryKey:C.notes.snapshots(a),queryFn:async()=>{const m=await ge(a);if(m.type==="error")throw m;return m.noteSnapshots},enabled:t}),c=ye({mutationFn:be,onSuccess:async m=>{if(m.type==="error"){l(m.errors[0].message);return}await Promise.all([i.invalidateQueries({queryKey:C.notes.detail(a),exact:!0}),i.invalidateQueries({queryKey:C.notes.listAll(),exact:!1}),i.invalidateQueries({queryKey:C.notes.tagListAll(),exact:!1}),i.invalidateQueries({queryKey:C.notes.pinned(),exact:!0}),i.invalidateQueries({queryKey:C.notes.backReferences(a),exact:!0}),i.invalidateQueries({queryKey:C.notes.snapshots(a),exact:!1})]),l("Previous version restored."),o?.(m.restoreNoteSnapshot),r()}});return e.jsxs(j,{isOpen:t,onClose:r,children:[e.jsx(j.Header,{title:"Restore Previous Version",onClose:r}),e.jsx(j.Body,{children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("p",{className:"text-sm text-fg-secondary",children:"Choose a previous snapshot to restore this note back to that state."}),s.isLoading&&e.jsx("div",{className:"text-sm text-fg-secondary",children:"Loading previous versions..."}),!s.isLoading&&s.data?.length===0&&e.jsx("div",{className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3 text-sm text-fg-secondary",children:"A recovery snapshot will appear after the first edit in a session and older ones are cleaned up automatically."}),!s.isLoading&&s.data&&s.data.length>0&&e.jsx("div",{className:"flex flex-col gap-2",children:s.data.map(m=>e.jsx("div",{className:"surface-base p-3",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"text-sm font-semibold",children:["Before ",Je(m.meta.label,m.meta.entrypoint)," edit"]}),e.jsx("p",{className:"truncate text-sm text-fg-secondary",children:m.title}),e.jsx("p",{className:"text-xs text-fg-placeholder",children:N(m.createdAt).format("YYYY-MM-DD HH:mm:ss")})]}),e.jsx(M,{size:"sm",isLoading:c.isPending,onClick:()=>c.mutate(m.id),children:"Restore"})]})},m.id))})]})})]})}const et="_Reference_6yru9_1",tt={Reference:et},st=J.bind(tt),at=V({type:"reference",propSchema:{id:{default:""},title:{default:"Unknown"}},content:"none"},{render:t=>e.jsx("span",{className:st("Reference"),children:e.jsx(Z,{to:z,params:{id:t.inlineContent.props.id},children:e.jsxs("span",{children:["[",t.inlineContent.props.title,"]"]})})})}),nt="_Tag_16liq_1",rt={Tag:nt},ot=J.bind(rt),lt=V({type:"tag",propSchema:{id:{default:""},tag:{default:"@Unknown"}},content:"none"},{render:t=>e.jsx("span",{className:ot("Tag"),children:e.jsx(Z,{to:je,params:{id:t.inlineContent.props.id},search:{page:1},children:e.jsx("span",{children:t.inlineContent.props.tag})})})}),it=()=>{const t=ce(),[a,r]=n.useState([]),o={1:"pl-3",2:"pl-[26px]",3:"pl-[40px]",4:"pl-[54px]",5:"pl-[68px]",6:"pl-[82px]"};n.useEffect(()=>{const s=()=>{const m=t.document,w=[],g=v=>{for(const h of v){if(h.type==="heading"){const x=h,T=x.props.level||1,A=x.content?.map(R=>R.text||"").join("")||"";A.trim()&&w.push({id:h.id,level:T,text:A})}h.children&&Array.isArray(h.children)&&g(h.children)}};g(m),r(w)};s();const c=t.onChange?.(s);return()=>{c&&c()}},[t]);const l=s=>{t.setTextCursorPosition(s);const c=document.querySelector(`[data-id="${s}"]`);c&&c.scrollIntoView({behavior:"smooth",block:"center"})},i=e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(X,{className:"h-3.5 w-3.5 shrink-0 text-fg-tertiary"}),e.jsx("span",{className:"text-label font-semibold uppercase tracking-[0.12em] text-fg-tertiary",children:"Table of Contents"})]});return a.length===0?e.jsxs("div",{className:"surface-base w-full p-4",children:[i,e.jsx("p",{className:"mt-2 text-meta text-fg-tertiary",children:"Add headings to your document to generate a table of contents"})]}):e.jsxs("div",{className:"surface-base w-full p-4",children:[e.jsx("div",{className:"mb-2",children:i}),e.jsx("nav",{className:"space-y-0.5",children:a.map(s=>{const c=s.level===1;return e.jsxs("button",{type:"button",onClick:()=>l(s.id),className:S("focus-ring-soft","flex","w-full","items-center","gap-2","rounded-[10px]","px-2.5","py-1.5",o[s.level]??"pl-2.5","text-left","transition-colors","hover:bg-hover-subtle",c?"text-fg-default":"text-fg-secondary"),children:[e.jsxs("span",{className:"text-label min-w-[1.5rem] font-semibold uppercase tracking-[0.08em] text-fg-tertiary",children:["H",s.level]}),e.jsx("span",{className:`text-meta line-clamp-2 ${c?"font-semibold":"font-medium"}`,children:s.text})]},s.id)})})]})},ct=ie({type:"tableOfContents",propSchema:{},content:"none"},{render:()=>e.jsx(it,{})})(),dt=Fe.create({inlineContentSpecs:{...Ye,tag:lt,reference:at},blockSpecs:{...Pe,tableOfContents:ct}}),mt=({editor:t})=>e.jsx(Y,{triggerCharacter:"/",getItems:async a=>Ze([...de(t).filter(r=>r.title!=="Audio"&&r.title!=="Video"&&r.title!=="File"),{title:"Table of Contents",subtext:"Insert a table of contents based on headings",onItemClick:()=>{t.insertBlocks([{type:"tableOfContents"}],t.getTextCursorPosition().block,"after")},aliases:["toc","table of contents","contents","outline","index"],group:"Other",icon:e.jsx(X,{})}],a)}),ut=({onClick:t})=>e.jsx(Y,{triggerCharacter:"[",getItems:async a=>{const r=await ve({query:a,limit:5});if(r.type==="error")return[];const{notes:o}=r.allNotes;return o.map(l=>({title:l.title,onItemClick:()=>t({type:"reference",props:{id:l.id,title:l.title}})}))}}),xt=({onClick:t})=>e.jsx(Y,{triggerCharacter:"@",getItems:async a=>{const r=await Ne({query:a,limit:5});if(r.type==="error")return[];const{tags:o}=r.allTags,l=o.some(s=>s.name!==`@${a}`),i=[{title:"Add a new tag",onItemClick:async()=>{const s=await we({name:"@"+a});if(s.type==="error")return;const{id:c,name:m}=s.createTag;t({type:"tag",props:{id:c,tag:m}})}}];return o.length===0?i:o.map(s=>({title:s.name,onItemClick:()=>t({type:"tag",props:{id:s.id,tag:s.name}})})).concat(a&&l?i:[])}});async function ft(t){return new Promise((a,r)=>{const o=new FileReader;o.readAsDataURL(t),o.onload=()=>a(o.result),o.onerror=l=>r(l)})}const pt=n.forwardRef(({content:t,editable:a,onChange:r},o)=>{const{theme:l}=Ce(s=>s),i=me({schema:dt,initialContent:t&&JSON.parse(t)||void 0,uploadFile:async s=>Ie({base64:await ft(s)})},[]);return n.useImperativeHandle(o,()=>({getContent:()=>JSON.stringify(i.document)})),e.jsxs(ue,{slashMenu:!1,theme:l,editor:i,editable:a,onChange:r,children:[e.jsx(mt,{editor:i}),e.jsx(ut,{onClick:s=>{i.insertInlineContent([s," "])}}),e.jsx(xt,{onClick:s=>{i.insertInlineContent([s," "])}})]})}),_={low:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"},medium:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"},high:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"}};function ht({isOpen:t,onClose:a,onSave:r,reminder:o,mode:l}){const[i,s]=n.useState(new Date),[c,m]=n.useState("medium"),[w,g]=n.useState("");n.useEffect(()=>{t&&l==="edit"&&o?(s(new Date(Number(o.reminderDate))),m(o.priority||"medium"),g(o.content||"")):t&&l==="create"&&(s(new Date),m("medium"),g(""))},[t,l,o]);const v=()=>{r(i,c,w||void 0),a()},h=x=>c===x?_[x].active:_[x].inactive;return e.jsxs(j,{isOpen:t,onClose:a,children:[e.jsx(j.Header,{title:l==="create"?"Create Reminder":"Edit Reminder",onClose:a}),e.jsx(j.Body,{children:e.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(O,{children:"Date & Time"}),e.jsx(ke,{type:"datetime-local",size:"sm",value:N(i).format("YYYY-MM-DDTHH:mm"),onChange:x=>s(new Date(x.target.value))})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(O,{children:"Content"}),e.jsx(Se,{size:"sm",placeholder:"Enter reminder content (optional)",value:w,onChange:x=>g(x.target.value)})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(O,{children:"Priority"}),e.jsxs(Re,{type:"single",value:c,onValueChange:x=>x&&m(x),className:"gap-1.5 border-none rounded-[14px] bg-muted/70 p-1 sm:gap-2",children:[e.jsx($,{value:"low",className:`flex-1 rounded-[10px] border text-sm font-medium ${h("low")}`,children:"Low"}),e.jsx($,{value:"medium",className:`flex-1 rounded-[10px] border text-sm font-medium ${h("medium")}`,children:"Medium"}),e.jsx($,{value:"high",className:`flex-1 rounded-[10px] border text-sm font-medium ${h("high")}`,children:"High"})]})]})]})}),e.jsx(j.Footer,{children:e.jsxs(se,{children:[e.jsx(M,{variant:"ghost",size:"sm",onClick:a,children:"Cancel"}),e.jsx(M,{variant:"primary",size:"sm",onClick:v,children:l==="create"?"Create":"Save"})]})})]})}function gt({noteId:t}){const[a,r]=n.useState(!1),[o,l]=n.useState(!1),[i,s]=n.useState("create"),[c,m]=n.useState(void 0),{onCreate:w,onUpdate:g,onDelete:v}=Ue(),h=()=>{s("create"),m(void 0),l(!0)},x=f=>{s("edit"),m(f),l(!0)},T=(f,p,d)=>{i==="create"?w(t,f,p,()=>{l(!1)},d):i==="edit"&&c&&g(c.id,t,{reminderDate:f,priority:p,content:d},()=>{l(!1)})},A=f=>{g(f.id,t,{completed:!f.completed})},R=f=>{const p=N(Number(f)),d=N();return p.isSame(d,"day")?`Today at ${p.format("HH:mm")}`:p.isSame(d.add(1,"day"),"day")?`Tomorrow at ${p.format("HH:mm")}`:p.format("YYYY-MM-DD HH:mm")},D=f=>{const p=N(Number(f)),d=N(),b=p.diff(d,"hour");return b<=6?"high":b<=24?"medium":"low"},L=f=>{const p=N(Number(f)),d=N(),b=p.diff(d,"hour"),k=p.diff(d,"minute")%60;return b<0||k<0?"Overdue":b===0?`${k}m remaining`:`${b}h ${k}m remaining`};return e.jsxs("div",{className:"surface-base mb-5 p-4",children:[e.jsxs("div",{className:S("flex items-center justify-between",!a&&"mb-3"),children:[e.jsxs("button",{type:"button",onClick:()=>r(!a),className:"focus-ring-soft flex items-center gap-2 rounded-[10px] px-2 py-1.5 text-fg-tertiary transition-colors hover:bg-hover-subtle",children:[a?e.jsx(Me,{size:12}):e.jsx(Te,{size:12}),e.jsx("span",{className:"text-label font-semibold uppercase tracking-[0.12em]",children:"Reminders"})]}),!a&&e.jsxs(M,{size:"sm",variant:"ghost",onClick:h,children:[e.jsx(ze,{className:"w-3 h-3"}),e.jsx("span",{className:"text-label hidden sm:inline",children:"Add"})]})]}),!a&&e.jsx(Be,{noteId:t,searchParams:{offset:0,limit:9999},render:({reminders:f,totalCount:p})=>e.jsx("div",{className:"flex flex-col gap-2",children:f.length===0?e.jsx("p",{className:"text-meta py-3 text-center text-fg-tertiary",children:p===0?"No reminders yet":"All reminders complete"}):e.jsx("div",{className:"flex flex-col",children:f.map(d=>{const b=d.priority||D(d.reminderDate),k=L(d.reminderDate),H=k==="Overdue";return e.jsxs("div",{className:S("flex items-center gap-2.5 px-2 py-1.5"),children:[e.jsx(Ae,{checked:d.completed,onChange:()=>A(d),size:"sm"}),e.jsx("div",{className:S("text-meta font-medium text-fg-default truncate flex-1 min-w-0",d.completed&&"line-through opacity-40"),children:d.content||R(d.reminderDate)}),e.jsxs("div",{className:S("shrink-0 flex items-center gap-1 text-label text-fg-tertiary",d.completed&&"opacity-40"),children:[d.content&&e.jsx("span",{children:R(d.reminderDate)}),!d.completed&&e.jsx("span",{className:S("font-medium",d.content&&'before:content-["·"] before:mr-1',H||b==="high"?"text-fg-error":"text-fg-placeholder"),children:k})]}),e.jsx(ee,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-8 w-8 items-center justify-center rounded-[10px] text-fg-secondary outline-none transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(te,{size:16,className:"text-current"}),e.jsx("span",{className:"sr-only",children:"Reminder actions"})]}),items:[{name:"Edit",onClick:()=>x(d)},{name:"Delete",onClick:()=>v(d.id,t)}]})]},d.id)})})})}),e.jsx(ht,{isOpen:o,onClose:()=>l(!1),onSave:T,reminder:c,mode:i})]})}const ne=Ee(z),Q=t=>N(Number(t)).format("YYYY-MM-DD HH:mm:ss"),I=()=>typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,yt={narrow:"max-w-[640px]",wide:"max-w-[896px]",full:"max-w-full px-4"},bt=e.jsx(U,{title:"Loading note",variant:"none",children:e.jsxs("main",{className:"mx-auto max-w-[896px]",children:[e.jsx(E,{className:"mb-8",height:"66px"}),e.jsx(E,{className:"ml-12 mb-8",height:"150px"}),e.jsx(E,{className:"mb-5",height:"80px"}),e.jsx(E,{height:"80px"})]})}),K="text-label font-medium uppercase tracking-[0.12em] text-fg-tertiary";function jt({id:t}){const a=W(),r=ne.useNavigate(),o=n.useRef(null),l=n.useRef(null),i=n.useRef(I()),{data:s}=G({queryKey:C.notes.detail(t),queryFn:async()=>{const u=await Le(t);if(u.type==="error")throw u;return u.note},gcTime:0}),[c,m]=n.useState(s.title),[w,g]=n.useState(()=>Q(s.updatedAt)),[v,h]=n.useState(s.pinned),[x,T]=n.useState(s.layout||"wide"),[A,R]=n.useState(!1),[D,L]=n.useState(!1),[f,p]=De(1e3);n.useEffect(()=>{m(s.title),h(s.pinned),T(s.layout||"wide"),g(Q(s.updatedAt))},[s.layout,s.pinned,s.title,s.updatedAt]),n.useEffect(()=>{i.current=I()},[t]);const d=async({title:u="",content:y=""})=>{p(async()=>{const B=await q({id:t,title:u,content:y,editSessionId:i.current});if(B.type==="error"){a(B.errors[0].message);return}m(u),g(N().format("YYYY-MM-DD HH:mm:ss"))})},b=()=>{d({title:c,content:o.current?.getContent()})},k=u=>{m(u),d({title:u,content:o.current?.getContent()})},H=async u=>{const y=await q({id:t,layout:u,editSessionId:i.current});if(y.type==="error"){a(y.errors[0].message);return}T(u),a("Layout has been updated.")},{onCreate:re,onDelete:oe,onPinned:le}=He();return e.jsx(U,{title:c,variant:"none",children:e.jsxs("main",{className:S("mx-auto",yt[x]),children:[e.jsxs("div",{className:"surface-floating sticky top-20 z-[1001] mb-8 px-5 py-4",children:[e.jsxs("div",{className:"mb-3 flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"mb-1 text-micro font-semibold uppercase tracking-[0.16em] text-fg-tertiary",children:"Thought in progress"}),e.jsx("input",{ref:l,placeholder:"Title",className:"text-display w-full bg-transparent font-semibold tracking-[-0.02em] outline-none",type:"text",value:c,onChange:u=>k(u.target.value)})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ee,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-9 w-9 items-center justify-center rounded-[12px] border border-transparent bg-transparent text-fg-tertiary outline-none transition-colors hover:border-border-subtle hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(te,{className:"h-5 w-5"}),e.jsx("span",{className:"sr-only",children:"Note actions"})]}),items:[{name:v?"Unpin":"Pin",onClick:()=>le(t,v,()=>{h(u=>!u)})},{name:"Change layout",onClick:()=>R(!0)},{type:"separator"},{name:"Clone this note",onClick:()=>re(l.current?.value||"untitled",o.current?.getContent()||"",x)},{name:"Restore previous version",onClick:()=>L(!0)},{type:"separator"},{name:"Delete",onClick:()=>oe(t,()=>{r({to:Oe,search:{page:1}})})}]}),e.jsx(M,{size:"sm",variant:"subtle",isLoading:f,onClick:b,children:"Save"})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:[v&&e.jsxs("span",{className:S("inline-flex items-center gap-1.5",K),children:[e.jsx($e,{className:"h-3 w-3",weight:"fill"}),"Pinned"]}),v&&e.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),e.jsxs("span",{className:K,children:["Saved ",w]})]})]}),e.jsx(pt,{ref:o,content:s.content,onChange:b},`${t}:${s.updatedAt}`),e.jsx(F,{fallback:e.jsx(E,{className:"mb-5",height:"80px"}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading reminder details for this note.",renderError:({error:u,retry:y})=>e.jsx(P,{title:"Failed to load reminders",description:"Retry loading reminder details for this note.",error:u,onRetry:y,showBackAction:!1,showHomeAction:!1}),children:e.jsx(gt,{noteId:t})}),e.jsx(F,{fallback:e.jsx(E,{height:"80px"}),errorTitle:"Failed to load back references",errorDescription:"Retry loading notes that link back here.",renderError:({error:u,retry:y})=>e.jsx(P,{title:"Failed to load back references",description:"Retry loading notes that link back here.",error:u,onRetry:y,showBackAction:!1,showHomeAction:!1}),children:e.jsx(Ve,{noteId:t,render:u=>u&&u.length>0&&e.jsxs("div",{className:"surface-base p-4",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsx(Qe,{className:"h-3.5 w-3.5 text-fg-tertiary"}),e.jsx("span",{className:"text-label font-semibold uppercase tracking-[0.12em] text-fg-tertiary",children:"Back References"})]}),e.jsx("ul",{className:"flex flex-col",children:u.map(y=>e.jsx("li",{children:e.jsxs(Z,{to:z,params:{id:y.id},className:"flex items-center gap-2 rounded-[10px] px-2.5 py-1.5 text-meta text-fg-secondary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(qe,{className:"h-3.5 w-3.5 shrink-0 text-fg-tertiary"}),y.title]})},y.id))})]})})}),e.jsx(We,{isOpen:A,onClose:()=>R(!1),onSave:H,currentLayout:x}),e.jsx(Xe,{isOpen:D,noteId:t,onClose:()=>L(!1),onRestored:()=>{i.current=I()}})]})})}function Mt(){const{id:t}=ne.useParams();if(!t)throw new Error("Note id is required.");return e.jsx(F,{fallback:bt,errorTitle:"Failed to load note",errorDescription:"Retry loading the note editor.",resetKeys:[t],renderError:({error:a,retry:r})=>e.jsx(U,{title:"Note",variant:"none",children:e.jsx(P,{title:"Failed to load note",description:"Retry loading the note editor.",error:a,onRetry:r})}),children:e.jsx(jt,{id:t},t)})}export{Mt as default};
@@ -0,0 +1 @@
1
+ ._Reference_6yru9_1{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:9999px;background:color-mix(in srgb,var(--elevated) 72%,var(--hover-subtle));border:1px solid var(--border-subtle);color:var(--fg-secondary);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._Reference_6yru9_1:hover{background:var(--elevated);border-color:var(--border-secondary);color:var(--fg-default)}html.dark ._Reference_6yru9_1{background:color-mix(in srgb,var(--elevated) 82%,var(--hover-subtle))}._Tag_16liq_1{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:9999px;background:var(--emphasis);border:1px solid var(--border-secondary);color:var(--fg-secondary);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._Tag_16liq_1 a{color:inherit;text-decoration:none!important}._Tag_16liq_1:hover{background:var(--hover-subtle);border-color:var(--border-secondary);color:var(--fg-default)}html.dark ._Tag_16liq_1{background:var(--emphasis)}
@@ -0,0 +1 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{p as w,D as A,m as R,L as Z,N as M,B as H,n as D,d as m,P as T,Q as $,E as k,f as S,S as d,e as F,R as C}from"./index-DqFkOWbi.js";import{a as t}from"./graph-vendor-CUxe67Lr.js";import{s as O,u as V,R as I}from"./useReminderMutate-CzyOQ_VB.js";import"./note-core-BCgMq5QA.js";const L=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm68-84a12,12,0,0,1-12,12H128a12,12,0,0,1-12-12V72a12,12,0,0,1,24,0v44h44A12,12,0,0,1,196,128Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Zm62-90a6,6,0,0,1-6,6H128a6,6,0,0,1-6-6V72a6,6,0,0,1,12,0v50h50A6,6,0,0,1,190,128Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Zm60-92a4,4,0,0,1-4,4H128a4,4,0,0,1-4-4V72a4,4,0,0,1,8,0v52h52A4,4,0,0,1,188,128Z"}))]]),y=t.forwardRef((a,r)=>t.createElement(w,{ref:r,...a,weights:L}));y.displayName="ClockIcon";const U=y,z={high:"bg-accent-soft-danger",medium:"bg-accent-soft-primary dark:bg-emphasis/70",low:"bg-accent-soft-success"};function P({reminder:a,onUpdate:r,onDelete:u}){const x=g=>{const n=m(Number(g)),l=m();return n.isSame(l,"day")?`Today at ${n.format("HH:mm")}`:n.isSame(l.add(1,"day"),"day")?`Tomorrow at ${n.format("HH:mm")}`:n.format("YYYY-MM-DD HH:mm")},s=g=>{const n=m(Number(g)),l=m(),h=n.diff(l,"hour"),p=n.diff(l,"minute")%60;return h<0||p<0?"Overdue":h===0?`${p}m remaining`:`${h}h ${p}m remaining`},c=s(a.reminderDate)==="Overdue",i=a.priority||"low",o=i==="high"?"High":i==="medium"?"Medium":"Low",f=`${z[i]} text-fg-default`,j=a.noteId.toString(),N=c?"text-fg-error":"text-fg-tertiary",v=a.content?.trim()||a.note?.title||"Untitled reminder",E=a.note?.title||"Untitled note";return e.jsxs("div",{className:"surface-base flex flex-col gap-4 p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsx("div",{className:"min-w-0 flex-1",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs font-medium text-fg-tertiary",children:[e.jsx("span",{className:`h-2.5 w-2.5 rounded-full border border-border-subtle ${f}`}),o]}),e.jsx("p",{className:"min-w-0 line-clamp-2 text-base font-semibold leading-6 text-fg-default",children:v})]})}),e.jsx(A,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[10px] border border-transparent bg-transparent text-fg-tertiary outline-none transition-colors hover:border-border-subtle hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(R,{className:"h-5 w-5 text-current"}),e.jsx("span",{className:"sr-only",children:"Reminder actions"})]}),items:[{name:"Delete",onClick:()=>u(a.id,j)}]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-fg-secondary",children:[e.jsx(O,{size:14}),e.jsx(Z,{to:M,params:{id:String(a.note?.id??a.noteId)},className:"truncate transition-colors hover:text-fg-default hover:underline",children:E})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm text-fg-secondary",children:[e.jsx(U,{size:14}),e.jsx("span",{className:"font-medium",children:x(a.reminderDate)}),e.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),e.jsx("span",{className:`text-xs font-medium ${N}`,children:s(a.reminderDate)})]}),e.jsxs(H,{variant:"subtle",size:"sm",onClick:()=>r(a.id,j,{completed:!0}),children:[e.jsx(D,{size:14}),"Complete"]})]})]})}const b=F(C);function q(){const a=b.useNavigate(),{page:r}=b.useSearch(),{onUpdate:u,onDelete:x}=V(),s=25;return e.jsx(T,{title:"Reminders",description:"Manage all your note reminders in one place",children:e.jsx($,{fallback:e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsx(d,{height:"60px"}),e.jsx(d,{height:"60px"}),e.jsx(d,{height:"60px"}),e.jsx(d,{height:"60px"})]}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading the upcoming reminder list.",resetKeys:[r,s],children:e.jsx(I,{searchParams:{offset:(r-1)*s,limit:s},render:({reminders:c,totalCount:i})=>c.length===0?e.jsx(k,{title:"No upcoming reminders",description:"Add reminders to your notes to see them here"}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:c.map(o=>e.jsx(P,{reminder:o,onUpdate:u,onDelete:x},o.id))}),i&&s<i&&e.jsx(S,{page:r,last:Math.ceil(i/s),onChange:o=>{a({search:f=>({...f,page:o})})}})]})})})})}export{q as default};
@@ -1 +1 @@
1
- import{j as e}from"./note-vendor-BofYbzmZ.js";import{P as m,Q as g,r as p,F as d,L as j,N as f,E as u,h as N,S as o,f as y,t as R}from"./index-CF5_ZCYN.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const x=({children:c,match:a})=>{if(!a)return e.jsx("span",{children:c});const s=new RegExp(`(${a})`,"gi"),r=c.split(s);return e.jsx("span",{children:r.map((i,n)=>s.test(i)?e.jsx("mark",{children:i},n):i)})},h=y(R);function v(){const c=h.useNavigate(),{page:a,query:s}=h.useSearch(),r=10;return e.jsx(m,{title:`Search "${s}"`,variant:"none",children:e.jsx("main",{className:"mx-auto max-w-[896px]",children:e.jsx(g,{fallback:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(o,{height:"64px"}),e.jsx(o,{height:"120px"}),e.jsx(o,{height:"120px"})]}),errorTitle:"Failed to load search results",errorDescription:`Retry loading results for "${s}".`,resetKeys:[s,a],children:e.jsx(p,{searchParams:{query:s,limit:r,offset:(a-1)*r,fields:["content"]},render:({notes:i,totalCount:n})=>e.jsxs(e.Fragment,{children:[e.jsx(d,{fallback:e.jsx(u,{icon:"👀",title:"No results found",description:"Try searching for something else."}),children:i.length>0&&i.map(t=>e.jsxs("div",{className:"mb-5",children:[e.jsx("div",{className:"font-semibold text-lg mb-1",children:e.jsx(j,{to:f,params:{id:t.id},children:e.jsx(x,{match:s,children:t.title})})}),e.jsx("div",{className:"bg-muted p-3 rounded-lg",children:JSON.parse(t.content).filter(l=>JSON.stringify(l).includes(s)).map(l=>e.jsx(x,{match:s,children:JSON.stringify(l)}))})]},t.id))}),e.jsx(d,{fallback:null,children:n&&r<n&&e.jsx(N,{page:a,last:Math.ceil(n/r),onChange:t=>{c({search:l=>({...l,page:t})})}})})]})})})})})}export{v as default};
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{P as m,Q as g,r as p,F as d,L as j,N as f,E as u,f as N,S as o,e as y,t as R}from"./index-DqFkOWbi.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const x=({children:c,match:a})=>{if(!a)return e.jsx("span",{children:c});const s=new RegExp(`(${a})`,"gi"),r=c.split(s);return e.jsx("span",{children:r.map((i,n)=>s.test(i)?e.jsx("mark",{children:i},n):i)})},h=y(R);function v(){const c=h.useNavigate(),{page:a,query:s}=h.useSearch(),r=10;return e.jsx(m,{title:`Search "${s}"`,variant:"none",children:e.jsx("main",{className:"mx-auto max-w-[896px]",children:e.jsx(g,{fallback:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(o,{height:"64px"}),e.jsx(o,{height:"120px"}),e.jsx(o,{height:"120px"})]}),errorTitle:"Failed to load search results",errorDescription:`Retry loading results for "${s}".`,resetKeys:[s,a],children:e.jsx(p,{searchParams:{query:s,limit:r,offset:(a-1)*r,fields:["content"]},render:({notes:i,totalCount:n})=>e.jsxs(e.Fragment,{children:[e.jsx(d,{fallback:e.jsx(u,{title:"No results found",description:"Try searching for something else."}),children:i.length>0&&i.map(t=>e.jsxs("div",{className:"mb-5",children:[e.jsx("div",{className:"text-heading mb-1 font-semibold",children:e.jsx(j,{to:f,params:{id:t.id},children:e.jsx(x,{match:s,children:t.title})})}),e.jsx("div",{className:"bg-muted p-3 rounded-lg",children:JSON.parse(t.content).filter(l=>JSON.stringify(l).includes(s)).map(l=>e.jsx(x,{match:s,children:JSON.stringify(l)}))})]},t.id))}),e.jsx(d,{fallback:null,children:n&&r<n&&e.jsx(N,{page:a,last:Math.ceil(n/r),onChange:t=>{c({search:l=>({...l,page:t})})}})})]})})})})})}export{v as default};
@@ -0,0 +1 @@
1
+ import{j as o}from"./note-vendor-BofYbzmZ.js";function f({children:r,className:e="",flush:s=!1}){const a=s?"overflow-hidden":"p-4";return o.jsx("div",{className:`surface-base ${a}${e?` ${e}`:""}`,children:r})}export{f as S};
@@ -0,0 +1 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{k as x,v as g,q as p,w as m,P as f,Q as u,F as c,L as y,x as j,f as T,E as b,S as r,e as w,y as v}from"./index-DqFkOWbi.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const R=s=>{const{data:t}=x({queryKey:p.tags.list(s.searchParams),async queryFn(){const i=await g({offset:s.searchParams.offset,limit:s.searchParams.limit});if(i.type==="error")throw i;return i.allTags}});return s.render(t)},k=100,P=8,A=12,h=w(v);function S(){const s=h.useNavigate(),{page:t}=h.useSearch(),{containerRef:i,limit:n}=m({minItemWidth:k,gap:P,rows:A});return e.jsx(f,{title:"Tags",description:"Organize and browse notes by tags",children:e.jsx("div",{ref:i,children:e.jsx(u,{fallback:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(r,{width:"90px",height:"36px"}),e.jsx(r,{width:"120px",height:"36px"}),e.jsx(r,{width:"80px",height:"36px"}),e.jsx(r,{width:"100px",height:"36px"}),e.jsx(r,{width:"110px",height:"36px"}),e.jsx(r,{width:"70px",height:"36px"})]}),errorTitle:"Failed to load tags",errorDescription:"Retry loading the tag catalog.",resetKeys:[t,n],children:e.jsx(R,{searchParams:{offset:(t-1)*n,limit:n},render:({tags:l,totalCount:o})=>e.jsx(c,{fallback:e.jsx(b,{title:"There are no tags",description:"Try to tag some notes using <@> key."}),children:l.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(a=>e.jsxs(y,{to:j,params:{id:a.id},search:{page:1},className:"inline-flex items-center rounded-full border border-border-subtle bg-hover-subtle px-3 py-1.5 text-sm font-medium text-fg-secondary transition-colors hover:border-border-secondary hover:bg-hover hover:text-fg-default",children:[a.name," ",e.jsxs("span",{className:"text-fg-tertiary text-xs",children:["(",a.referenceCount,")"]})]},a.id))}),e.jsx(c,{fallback:null,children:o&&n<o&&e.jsx(T,{page:t,last:Math.ceil(o/n),onChange:a=>{s({search:d=>({...d,page:a})})}})})]})})})})})})}export{S as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{k as m,a6 as x,q as y,a2 as f,P as j,Q as p,F as l,a7 as P,f as N,E as T,S as o,e as k,x as q}from"./index-DqFkOWbi.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const v=a=>{const{data:i}=m({queryKey:y.notes.tagList(a.searchParams),async queryFn(){const s=await x({query:a.searchParams.query,offset:a.searchParams.offset,limit:a.searchParams.limit});if(s.type==="error")throw s;return s.tagNotes}});return a.render(i)},c=k(q);function S(){const a=c.useNavigate(),{id:i}=c.useParams(),{page:s}=c.useSearch(),r=25,{onDelete:g,onPinned:h}=f();return e.jsx(j,{title:"Tag",variant:"subtle",children:e.jsx(p,{fallback:e.jsxs("div",{className:"grid-auto-cards grid gap-6 mt-3",children:[e.jsx(o,{height:"112px"}),e.jsx(o,{height:"112px"}),e.jsx(o,{height:"112px"})]}),errorTitle:"Failed to load tagged notes",errorDescription:"Retry loading notes for this tag.",resetKeys:[i,s,r],children:e.jsx(v,{searchParams:{query:i,offset:(s-1)*r,limit:r},render:({notes:d,totalCount:n})=>e.jsx(l,{fallback:e.jsx(T,{title:"Ocean is calm",description:"Capture anything and make waves in the ocean!"}),children:d.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid-auto-cards grid gap-6 mt-3",children:d.map(t=>e.jsx(P,{...t,onPinned:()=>h(t.id,t.pinned),onDelete:()=>g(t.id)},t.id))}),e.jsx(l,{fallback:null,children:n&&r<n&&e.jsx(N,{page:s,last:Math.ceil(n/r),onChange:t=>{a({search:u=>({...u,page:t})})}})})]})})})})})}export{S as default};
@@ -0,0 +1 @@
1
+ import{a}from"./graph-vendor-CUxe67Lr.js";import{p as l}from"./index-DqFkOWbi.js";const r=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M218.34,119.6,183.6,154.34a46.58,46.58,0,0,1-44.31,12.26c-.31.34-.62.67-.95,1L103.6,202.34A46.63,46.63,0,1,1,37.66,136.4L72.4,101.66A46.6,46.6,0,0,1,116.71,89.4c.31-.34.62-.67,1-1L152.4,53.66a46.63,46.63,0,0,1,65.94,65.94Z",opacity:"0.2"}),a.createElement("path",{d:"M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,7.78,8.22H152a8,8,0,0,0,8-7.78A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z"}))],["fill",a.createElement(a.Fragment,null,a.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,32ZM115.7,192.49a43.31,43.31,0,0,1-55-66.43l25.37-25.37a43.35,43.35,0,0,1,61.25,0,42.9,42.9,0,0,1,9.95,15.43,8,8,0,1,1-15,5.6A27.33,27.33,0,0,0,97.37,112L72,137.37a27.32,27.32,0,0,0,34.68,41.91,8,8,0,1,1,9,13.21Zm79.61-62.55-25.37,25.37A43,43,0,0,1,139.32,168h0a43.35,43.35,0,0,1-40.53-28.12,8,8,0,1,1,15-5.6A27.35,27.35,0,0,0,139.28,152h0a27.14,27.14,0,0,0,19.32-8L184,118.63a27.32,27.32,0,0,0-34.68-41.91,8,8,0,1,1-9-13.21,43.32,43.32,0,0,1,55,66.43Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M238,88.18a52.42,52.42,0,0,1-15.4,35.66l-34.75,34.75A52.28,52.28,0,0,1,150.62,174h-.05A52.63,52.63,0,0,1,98,119.9a6,6,0,0,1,6-5.84h.17a6,6,0,0,1,5.83,6.16A40.62,40.62,0,0,0,150.58,162h0a40.4,40.4,0,0,0,28.73-11.9l34.75-34.74A40.63,40.63,0,0,0,156.63,57.9l-11,11a6,6,0,0,1-8.49-8.49l11-11a52.62,52.62,0,0,1,74.43,0A52.83,52.83,0,0,1,238,88.18Zm-127.62,98.9-11,11A40.36,40.36,0,0,1,70.6,210h0a40.63,40.63,0,0,1-28.7-69.36L76.62,105.9A40.63,40.63,0,0,1,146,135.77a6,6,0,0,0,5.83,6.16H152a6,6,0,0,0,6-5.84A52.63,52.63,0,0,0,68.14,97.42L33.38,132.16A52.63,52.63,0,0,0,70.56,222h0a52.26,52.26,0,0,0,37.22-15.42l11-11a6,6,0,1,0-8.49-8.48Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M236,88.12a50.44,50.44,0,0,1-14.81,34.31l-34.75,34.74A50.33,50.33,0,0,1,150.62,172h-.05A50.63,50.63,0,0,1,100,120a4,4,0,0,1,4-3.89h.11a4,4,0,0,1,3.89,4.11A42.64,42.64,0,0,0,150.58,164h0a42.32,42.32,0,0,0,30.14-12.49l34.75-34.74a42.63,42.63,0,1,0-60.29-60.28l-11,11a4,4,0,0,1-5.66-5.65l11-11A50.64,50.64,0,0,1,236,88.12ZM111.78,188.49l-11,11A42.33,42.33,0,0,1,70.6,212h0a42.63,42.63,0,0,1-30.11-72.77l34.75-34.74A42.63,42.63,0,0,1,148,135.82a4,4,0,0,0,8,.23A50.64,50.64,0,0,0,69.55,98.83L34.8,133.57A50.63,50.63,0,0,0,70.56,220h0a50.33,50.33,0,0,0,35.81-14.83l11-11a4,4,0,1,0-5.65-5.66Z"}))]]),m=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,48H180V36A28,28,0,0,0,152,8H104A28,28,0,0,0,76,36V48H40a12,12,0,0,0,0,24h4V208a20,20,0,0,0,20,20H192a20,20,0,0,0,20-20V72h4a12,12,0,0,0,0-24ZM100,36a4,4,0,0,1,4-4h48a4,4,0,0,1,4,4V48H100Zm88,168H68V72H188ZM116,104v64a12,12,0,0,1-24,0V104a12,12,0,0,1,24,0Zm48,0v64a12,12,0,0,1-24,0V104a12,12,0,0,1,24,0Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56Z",opacity:"0.2"}),a.createElement("path",{d:"M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,50H174V40a22,22,0,0,0-22-22H104A22,22,0,0,0,82,40V50H40a6,6,0,0,0,0,12H50V208a14,14,0,0,0,14,14H192a14,14,0,0,0,14-14V62h10a6,6,0,0,0,0-12ZM94,40a10,10,0,0,1,10-10h48a10,10,0,0,1,10,10V50H94ZM194,208a2,2,0,0,1-2,2H64a2,2,0,0,1-2-2V62H194ZM110,104v64a6,6,0,0,1-12,0V104a6,6,0,0,1,12,0Zm48,0v64a6,6,0,0,1-12,0V104a6,6,0,0,1,12,0Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216,52H172V40a20,20,0,0,0-20-20H104A20,20,0,0,0,84,40V52H40a4,4,0,0,0,0,8H52V208a12,12,0,0,0,12,12H192a12,12,0,0,0,12-12V60h12a4,4,0,0,0,0-8ZM92,40a12,12,0,0,1,12-12h48a12,12,0,0,1,12,12V52H92ZM196,208a4,4,0,0,1-4,4H64a4,4,0,0,1-4-4V60H196ZM108,104v64a4,4,0,0,1-8,0V104a4,4,0,0,1,8,0Zm48,0v64a4,4,0,0,1-8,0V104a4,4,0,0,1,8,0Z"}))]]),n=a.forwardRef((e,t)=>a.createElement(l,{ref:t,...e,weights:r}));n.displayName="LinkIcon";const V=n,h=a.forwardRef((e,t)=>a.createElement(l,{ref:t,...e,weights:m}));h.displayName="TrashIcon";const Z=h;export{V as c,Z as n};
@@ -1,4 +1,4 @@
1
- import{c as t,ag as n}from"./index-CF5_ZCYN.js";function o({limit:a=50,offset:e=0}={}){return t(`query FetchImages($pagination: PaginationInput) {
1
+ import{g as t,ac as n}from"./index-DqFkOWbi.js";function o({limit:a=50,offset:e=0}={}){return t(`query FetchImages($pagination: PaginationInput) {
2
2
  allImages(pagination: $pagination) {
3
3
  totalCount
4
4
  images {
@@ -0,0 +1 @@
1
+ import{j as e}from"./note-vendor-BofYbzmZ.js";import{p as n,j as i,P as d,L as m,a8 as Z,a3 as A,a9 as h,aa as g,ab as x}from"./index-DqFkOWbi.js";import{a}from"./graph-vendor-CUxe67Lr.js";import{c as p,n as M}from"./Trash.es-DLiHgjNo.js";import{I as E}from"./Image.es-Dnn4SMzG.js";import"./note-core-BCgMq5QA.js";const f=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M236.37,139.4a12,12,0,0,0-12-3A84.07,84.07,0,0,1,119.6,31.59a12,12,0,0,0-15-15A108.86,108.86,0,0,0,49.69,55.07,108,108,0,0,0,136,228a107.09,107.09,0,0,0,64.93-21.69,108.86,108.86,0,0,0,38.44-54.94A12,12,0,0,0,236.37,139.4Zm-49.88,47.74A84,84,0,0,1,68.86,69.51,84.93,84.93,0,0,1,92.27,48.29Q92,52.13,92,56A108.12,108.12,0,0,0,200,164q3.87,0,7.71-.27A84.79,84.79,0,0,1,186.49,187.14Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M227.89,147.89A96,96,0,1,1,108.11,28.11,96.09,96.09,0,0,0,227.89,147.89Z",opacity:"0.2"}),a.createElement("path",{d:"M233.54,142.23a8,8,0,0,0-8-2,88.08,88.08,0,0,1-109.8-109.8,8,8,0,0,0-10-10,104.84,104.84,0,0,0-52.91,37A104,104,0,0,0,136,224a103.09,103.09,0,0,0,62.52-20.88,104.84,104.84,0,0,0,37-52.91A8,8,0,0,0,233.54,142.23ZM188.9,190.34A88,88,0,0,1,65.66,67.11a89,89,0,0,1,31.4-26A106,106,0,0,0,96,56,104.11,104.11,0,0,0,200,160a106,106,0,0,0,14.92-1.06A89,89,0,0,1,188.9,190.34Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M235.54,150.21a104.84,104.84,0,0,1-37,52.91A104,104,0,0,1,32,120,103.09,103.09,0,0,1,52.88,57.48a104.84,104.84,0,0,1,52.91-37,8,8,0,0,1,10,10,88.08,88.08,0,0,0,109.8,109.8,8,8,0,0,1,10,10Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M232.13,143.64a6,6,0,0,0-6-1.49A90.07,90.07,0,0,1,113.86,29.85a6,6,0,0,0-7.49-7.48A102.88,102.88,0,0,0,54.48,58.68,102,102,0,0,0,197.32,201.52a102.88,102.88,0,0,0,36.31-51.89A6,6,0,0,0,232.13,143.64Zm-42,48.29a90,90,0,0,1-126-126A90.9,90.9,0,0,1,99.65,37.66,102.06,102.06,0,0,0,218.34,156.35,90.9,90.9,0,0,1,190.1,191.93Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M233.54,142.23a8,8,0,0,0-8-2,88.08,88.08,0,0,1-109.8-109.8,8,8,0,0,0-10-10,104.84,104.84,0,0,0-52.91,37A104,104,0,0,0,136,224a103.09,103.09,0,0,0,62.52-20.88,104.84,104.84,0,0,0,37-52.91A8,8,0,0,0,233.54,142.23ZM188.9,190.34A88,88,0,0,1,65.66,67.11a89,89,0,0,1,31.4-26A106,106,0,0,0,96,56,104.11,104.11,0,0,0,200,160a106,106,0,0,0,14.92-1.06A89,89,0,0,1,188.9,190.34Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M230.72,145.06a4,4,0,0,0-4-1A92.08,92.08,0,0,1,111.94,29.27a4,4,0,0,0-5-5A100.78,100.78,0,0,0,56.08,59.88a100,100,0,0,0,140,140,100.78,100.78,0,0,0,35.59-50.87A4,4,0,0,0,230.72,145.06ZM191.3,193.53A92,92,0,0,1,62.47,64.7a93,93,0,0,1,39.88-30.35,100.09,100.09,0,0,0,119.3,119.3A93,93,0,0,1,191.3,193.53Z"}))]]),u=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M116,36V20a12,12,0,0,1,24,0V36a12,12,0,0,1-24,0Zm80,92a68,68,0,1,1-68-68A68.07,68.07,0,0,1,196,128Zm-24,0a44,44,0,1,0-44,44A44.05,44.05,0,0,0,172,128ZM51.51,68.49a12,12,0,1,0,17-17l-12-12a12,12,0,0,0-17,17Zm0,119-12,12a12,12,0,0,0,17,17l12-12a12,12,0,1,0-17-17ZM196,72a12,12,0,0,0,8.49-3.51l12-12a12,12,0,0,0-17-17l-12,12A12,12,0,0,0,196,72Zm8.49,115.51a12,12,0,0,0-17,17l12,12a12,12,0,0,0,17-17ZM48,128a12,12,0,0,0-12-12H20a12,12,0,0,0,0,24H36A12,12,0,0,0,48,128Zm80,80a12,12,0,0,0-12,12v16a12,12,0,0,0,24,0V220A12,12,0,0,0,128,208Zm108-92H220a12,12,0,0,0,0,24h16a12,12,0,0,0,0-24Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M184,128a56,56,0,1,1-56-56A56,56,0,0,1,184,128Z",opacity:"0.2"}),a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm72,88a64,64,0,1,1-64-64A64.07,64.07,0,0,1,192,128Zm-16,0a48,48,0,1,0-48,48A48.05,48.05,0,0,0,176,128ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm8,24a64,64,0,1,0,64,64A64.07,64.07,0,0,0,128,64ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M122,40V16a6,6,0,0,1,12,0V40a6,6,0,0,1-12,0Zm68,88a62,62,0,1,1-62-62A62.07,62.07,0,0,1,190,128Zm-12,0a50,50,0,1,0-50,50A50.06,50.06,0,0,0,178,128ZM59.76,68.24a6,6,0,1,0,8.48-8.48l-16-16a6,6,0,0,0-8.48,8.48Zm0,119.52-16,16a6,6,0,1,0,8.48,8.48l16-16a6,6,0,1,0-8.48-8.48ZM192,70a6,6,0,0,0,4.24-1.76l16-16a6,6,0,0,0-8.48-8.48l-16,16A6,6,0,0,0,192,70Zm4.24,117.76a6,6,0,0,0-8.48,8.48l16,16a6,6,0,0,0,8.48-8.48ZM46,128a6,6,0,0,0-6-6H16a6,6,0,0,0,0,12H40A6,6,0,0,0,46,128Zm82,82a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V216A6,6,0,0,0,128,210Zm112-88H216a6,6,0,0,0,0,12h24a6,6,0,0,0,0-12Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm72,88a64,64,0,1,1-64-64A64.07,64.07,0,0,1,192,128Zm-16,0a48,48,0,1,0-48,48A48.05,48.05,0,0,0,176,128ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M124,40V16a4,4,0,0,1,8,0V40a4,4,0,0,1-8,0Zm64,88a60,60,0,1,1-60-60A60.07,60.07,0,0,1,188,128Zm-8,0a52,52,0,1,0-52,52A52.06,52.06,0,0,0,180,128ZM61.17,66.83a4,4,0,0,0,5.66-5.66l-16-16a4,4,0,0,0-5.66,5.66Zm0,122.34-16,16a4,4,0,0,0,5.66,5.66l16-16a4,4,0,0,0-5.66-5.66ZM192,68a4,4,0,0,0,2.83-1.17l16-16a4,4,0,1,0-5.66-5.66l-16,16A4,4,0,0,0,192,68Zm2.83,121.17a4,4,0,0,0-5.66,5.66l16,16a4,4,0,0,0,5.66-5.66ZM40,124H16a4,4,0,0,0,0,8H40a4,4,0,0,0,0-8Zm88,88a4,4,0,0,0-4,4v24a4,4,0,0,0,8,0V216A4,4,0,0,0,128,212Zm112-88H216a4,4,0,0,0,0,8h24a4,4,0,0,0,0-8Z"}))]]),r=a.forwardRef((t,l)=>a.createElement(n,{ref:l,...t,weights:f}));r.displayName="MoonIcon";const N=r,c=a.forwardRef((t,l)=>a.createElement(n,{ref:l,...t,weights:u}));c.displayName="SunIcon";const j=c,F=()=>{const{theme:t,toggleTheme:l}=i(o=>o),s="surface-base flex flex-col items-center gap-3 p-6 text-center transition-colors hover:bg-hover-subtle";return e.jsx(d,{title:"Settings",description:"Customize your Ocean Brain experience",children:e.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsxs("button",{type:"button",className:s,onClick:l,children:[e.jsx("span",{className:"text-3xl",children:t==="dark"?e.jsx(N,{className:"h-8 w-8 text-fg-secondary",weight:"fill"}):e.jsx(j,{className:"h-8 w-8 text-fg-secondary",weight:"fill"})}),e.jsx("span",{className:"font-semibold",children:"Theme"}),e.jsx("span",{className:"text-xs font-medium text-fg-tertiary",children:t==="dark"?"Dark mode":"Light mode"})]}),e.jsxs(m,{to:Z,className:s,children:[e.jsx(p,{className:"h-8 w-8 text-fg-secondary"}),e.jsx("span",{className:"font-semibold",children:"MCP"}),e.jsx("span",{className:"text-xs font-medium text-fg-tertiary",children:"Manage AI integration access"})]}),e.jsxs(m,{to:A,search:{page:1},className:s,children:[e.jsx(M,{className:"h-8 w-8 text-fg-secondary"}),e.jsx("span",{className:"font-semibold",children:"Trash"}),e.jsx("span",{className:"text-xs font-medium text-fg-tertiary",children:"Restore deleted notes"})]}),e.jsxs(m,{to:h,search:{page:1},className:s,children:[e.jsx(E,{className:"h-8 w-8 text-fg-secondary"}),e.jsx("span",{className:"font-semibold",children:"Manage Image"}),e.jsx("span",{className:"text-xs font-medium text-fg-tertiary",children:"Upload and organize images"})]}),e.jsxs(m,{to:g,search:{page:1},className:s,children:[e.jsx(x,{className:"h-8 w-8 text-fg-secondary"}),e.jsx("span",{className:"font-semibold",children:"Placeholder"}),e.jsx("span",{className:"text-xs font-medium text-fg-tertiary",children:"Manage template variables"})]})]})})};export{F as default};