ocean-brain 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/client/dist/assets/ArrowRight.es-DZTjsBaI.js +1 -0
- package/server/client/dist/assets/AuxiliaryPanelHeader-Bp3iRjm6.js +1 -0
- package/server/client/dist/assets/Calendar-BLiViCGr.js +25 -0
- package/server/client/dist/assets/Callout-Cye6_6BM.js +1 -0
- package/server/client/dist/assets/CheckCircle.es-BTloiuti.js +1 -0
- package/server/client/dist/assets/Copy.es-CkLUgwY-.js +1 -0
- package/server/client/dist/assets/File.es-c83QExqr.js +1 -0
- package/server/client/dist/assets/FlowArrow.es-DWiIXWQG.js +1 -0
- package/server/client/dist/assets/Graph-jbPLcne9.js +46 -0
- package/server/client/dist/assets/Image.es-vY-nTyOe.js +1 -0
- package/server/client/dist/assets/Note-BTQLB80Y.js +25 -0
- package/server/client/dist/assets/{NotePropertiesPanel-aCKXAe5F.js → NotePropertiesPanel-uO-JKy19.js} +2 -2
- package/server/client/dist/assets/Plus.es-CaRgmXc_.js +1 -0
- package/server/client/dist/assets/Reminders-BAgZEUwV.js +1 -0
- package/server/client/dist/assets/Search-BxozUWkC.js +31 -0
- package/server/client/dist/assets/SurfaceCard-BAlcul6z.js +1 -0
- package/server/client/dist/assets/Tag-BhCf_mil.js +1 -0
- package/server/client/dist/assets/TagNotes-BIzhXqwp.js +1 -0
- package/server/client/dist/assets/Trash.es-prxIxo9c.js +1 -0
- package/server/client/dist/assets/ViewChip-Cq_YzRvB.js +1 -0
- package/server/client/dist/assets/Views-C26uWznP.js +1 -0
- package/server/client/dist/assets/{abnfDiagram-VRR7QNED-CWlV5dXw.js → abnfDiagram-VRR7QNED-2cuaaDg0.js} +1 -1
- package/server/client/dist/assets/app-CEkicO08.css +1 -0
- package/server/client/dist/assets/app-DbQdHfMb.js +139 -0
- package/server/client/dist/assets/{arc-BV-n6RUX.js → arc-Cr-oYJoQ.js} +1 -1
- package/server/client/dist/assets/{architectureDiagram-ZJ3FMSHR-CekzMXdu.js → architectureDiagram-ZJ3FMSHR-HF8-bEM0.js} +1 -1
- package/server/client/dist/assets/{blockDiagram-677ZJIJ3-B49yHoxq.js → blockDiagram-677ZJIJ3-evR8rlpQ.js} +1 -1
- package/server/client/dist/assets/{c4Diagram-LMCZKHZV-0AfB9NBC.js → c4Diagram-LMCZKHZV-zCjuWUmC.js} +1 -1
- package/server/client/dist/assets/channel-Cq5ZBtfo.js +1 -0
- package/server/client/dist/assets/{chunk-2Q5K7J3B-DaPQAU1q.js → chunk-2Q5K7J3B-P0v1gRui.js} +1 -1
- package/server/client/dist/assets/{chunk-32BRIVSS-CfL3kZAg.js → chunk-32BRIVSS-102-EyWU.js} +1 -1
- package/server/client/dist/assets/{chunk-5VM5RSS4-DeOwWPE_.js → chunk-5VM5RSS4-uqI_1K1p.js} +1 -1
- package/server/client/dist/assets/{chunk-EX3LRPZG-C3W1oc9y.js → chunk-EX3LRPZG-k5hlNinR.js} +1 -1
- package/server/client/dist/assets/{chunk-JWPE2WC7-_Oqh79OY.js → chunk-JWPE2WC7-PLvgEy_B.js} +1 -1
- package/server/client/dist/assets/{chunk-MOJQB5TN-DDKNNzI6.js → chunk-MOJQB5TN-B-LmIwhJ.js} +1 -1
- package/server/client/dist/assets/{chunk-RYQCIY6F-DCHah7CC.js → chunk-RYQCIY6F-CaNSMki0.js} +1 -1
- package/server/client/dist/assets/{chunk-V7JOEXUC-uUOIzgxj.js → chunk-V7JOEXUC-CmSzAkUx.js} +1 -1
- package/server/client/dist/assets/{chunk-VR4S4FIN-DDVw2WPs.js → chunk-VR4S4FIN-IiOfWaBG.js} +1 -1
- package/server/client/dist/assets/{chunk-XXDRQBXY-Coo4UFm2.js → chunk-XXDRQBXY-DRXrI6SM.js} +1 -1
- package/server/client/dist/assets/classDiagram-OUVF2IWQ-BqUaa8a6.js +1 -0
- package/server/client/dist/assets/classDiagram-v2-EOCWNBFH-BqUaa8a6.js +1 -0
- package/server/client/dist/assets/{cose-bilkent-JH36ORCC-C3pHmHpD.js → cose-bilkent-JH36ORCC-COcEaZRS.js} +1 -1
- package/server/client/dist/assets/{cynefinDiagram-TSTJHNR4-DZ6iiJFo.js → cynefinDiagram-TSTJHNR4-CSHqcg9K.js} +1 -1
- package/server/client/dist/assets/{dagre-VKFMJZFB-DNELbhwC.js → dagre-VKFMJZFB-XAWCPOS0.js} +1 -1
- package/server/client/dist/assets/{diagram-FQU43EPY-CMEvZJ61.js → diagram-FQU43EPY-scBCDUnE.js} +1 -1
- package/server/client/dist/assets/{diagram-G47NLZAW-BYDtf6j9.js → diagram-G47NLZAW-nPKP5kd8.js} +1 -1
- package/server/client/dist/assets/{diagram-NH7WQ7WH-CmXfcCQA.js → diagram-NH7WQ7WH-DcWalY4j.js} +1 -1
- package/server/client/dist/assets/{diagram-OA4YK3LP-BflTKJxU.js → diagram-OA4YK3LP-CXTlHB5A.js} +4 -4
- package/server/client/dist/assets/{diagram-WEI45ONY-KW3fKqna.js → diagram-WEI45ONY-D1uvaJub.js} +1 -1
- package/server/client/dist/assets/{ebnfDiagram-CCIWWBDH-CbyhY5Nj.js → ebnfDiagram-CCIWWBDH-nHt3vRNt.js} +1 -1
- package/server/client/dist/assets/{erDiagram-Q63AITRT-CC2eZV8g.js → erDiagram-Q63AITRT-K6stUUV2.js} +1 -1
- package/server/client/dist/assets/{flowDiagram-23GEKE2U-unplo7Qm.js → flowDiagram-23GEKE2U-DDWtKrEp.js} +4 -4
- package/server/client/dist/assets/{ganttDiagram-NO4QXBWP-BcBK5HcZ.js → ganttDiagram-NO4QXBWP-Daqh7b4I.js} +1 -1
- package/server/client/dist/assets/{gitGraphDiagram-IHSO6WYX-DgVbbb5k.js → gitGraphDiagram-IHSO6WYX-D73CLkcG.js} +1 -1
- package/server/client/dist/assets/{image.api-CyQisInP.js → image.api-Bbwmcw0T.js} +1 -1
- package/server/client/dist/assets/index-8bsOoxxg.js +1 -0
- package/server/client/dist/assets/{infoDiagram-FWYZ7A6U-N_D9RdfG.js → infoDiagram-FWYZ7A6U-Bc1YI5Iu.js} +1 -1
- package/server/client/dist/assets/{ishikawaDiagram-FXEZZL3T-BBKrzmB2.js → ishikawaDiagram-FXEZZL3T-BJDXbmaY.js} +1 -1
- package/server/client/dist/assets/{journeyDiagram-5HDEW3XC-NdCxLmQB.js → journeyDiagram-5HDEW3XC-DlyJx4xT.js} +1 -1
- package/server/client/dist/assets/{kanban-definition-HUTT4EX6-Ck7t4-tt.js → kanban-definition-HUTT4EX6-AmTeXesc.js} +1 -1
- package/server/client/dist/assets/manage-image-DCBgglLx.js +1 -0
- package/server/client/dist/assets/manage-image-detail-CPpeRZD4.js +1 -0
- package/server/client/dist/assets/{mcp-CCaFd0zm.js → mcp-Y2p95Lm9.js} +1 -1
- package/server/client/dist/assets/mcp-admin-adapter-z9OaMVrl.js +1 -0
- package/server/client/dist/assets/{mermaid.core-B14ZAmWA.js → mermaid.core-B528P54n.js} +4 -4
- package/server/client/dist/assets/{mindmap-definition-LN4V7U3C-BTUqSdcP.js → mindmap-definition-LN4V7U3C-C_6tKVmY.js} +1 -1
- package/server/client/dist/assets/{note-ui-CtijppHK.js → note-ui-Cv6quEYh.js} +1 -1
- package/server/client/dist/assets/{pegDiagram-2B236MQR-Cjcu3mVz.js → pegDiagram-2B236MQR-CGKCNdrV.js} +1 -1
- package/server/client/dist/assets/{pieDiagram-ENE6RG2P-BxI_c22Z.js → pieDiagram-ENE6RG2P-C3cMh7d5.js} +1 -1
- package/server/client/dist/assets/{placeholder-AusSo8p9.js → placeholder-CHRQt_T8.js} +1 -1
- package/server/client/dist/assets/properties-CwxDtivz.js +1 -0
- package/server/client/dist/assets/{quadrantDiagram-ABIIQ3AL-DGm0a-yR.js → quadrantDiagram-ABIIQ3AL-CVVzGxBd.js} +1 -1
- package/server/client/dist/assets/{railroadDiagram-RFXS5EU6-DmCDu89O.js → railroadDiagram-RFXS5EU6-wa-4aJR9.js} +1 -1
- package/server/client/dist/assets/{requirementDiagram-TGXJPOKE-CBpUt7Ig.js → requirementDiagram-TGXJPOKE-DyuC9W7q.js} +1 -1
- package/server/client/dist/assets/route-preload.js +2 -2
- package/server/client/dist/assets/{sankeyDiagram-HTMAVEWB-BjGnDZlp.js → sankeyDiagram-HTMAVEWB-B70y-MQg.js} +1 -1
- package/server/client/dist/assets/search-DCLnUWYd.js +1 -0
- package/server/client/dist/assets/search-admin-adapter-BLMYNm9w.js +1 -0
- package/server/client/dist/assets/{sequenceDiagram-DBY2YBRQ-B7rpCfS6.js → sequenceDiagram-DBY2YBRQ-mGkh3IEy.js} +1 -1
- package/server/client/dist/assets/{sizeCapture-X5ZJPWSS-CUJhD0uW.js → sizeCapture-X5ZJPWSS-BhnCNP5z.js} +1 -1
- package/server/client/dist/assets/sortable.esm-DgSW3bAA.js +5 -0
- package/server/client/dist/assets/{stateDiagram-2N3HPSRC-Y9-3XqRX.js → stateDiagram-2N3HPSRC-BqSKSfKi.js} +1 -1
- package/server/client/dist/assets/{stateDiagram-v2-6OUMAXLB-DbHXhT02.js → stateDiagram-v2-6OUMAXLB-Wl7lGTf3.js} +1 -1
- package/server/client/dist/assets/{swimlanes-5IMT3BWC-Cs1NO9ng.js → swimlanes-5IMT3BWC-CZ7ckdmY.js} +2 -2
- package/server/client/dist/assets/swimlanesDiagram-G3AALYLV-BZL3DQ-c.js +8 -0
- package/server/client/dist/assets/{tag.api-DNSQpqwk.js → tag.api-bU52U0tT.js} +1 -1
- package/server/client/dist/assets/time-DZKkPFUi.js +361 -0
- package/server/client/dist/assets/{timeline-definition-FHXFAJF6-8fqD4WNL.js → timeline-definition-FHXFAJF6-C-t9-x4M.js} +3 -3
- package/server/client/dist/assets/trash-BNeUFJnC.js +1 -0
- package/server/client/dist/assets/{url-9nrbQs7Z.js → url-BvjSC8PU.js} +1 -1
- package/server/client/dist/assets/useNoteMutate-VJYw0Vt_.js +9 -0
- package/server/client/dist/assets/useReminderMutate-DaO0QssD.js +121 -0
- package/server/client/dist/assets/{vennDiagram-L72KCM5P-BPqKkd5a.js → vennDiagram-L72KCM5P-CP014Nl5.js} +1 -1
- package/server/client/dist/assets/{wardleyDiagram-EHGQE667-Cq11kU2M.js → wardleyDiagram-EHGQE667-B7Ghd-94.js} +1 -1
- package/server/client/dist/assets/{xychartDiagram-FW5EYKEG-DJ6UzFj-.js → xychartDiagram-FW5EYKEG-C4YGS0YJ.js} +1 -1
- package/server/client/dist/index.html +6 -6
- package/server/dist/features/note/graphql/note.query.resolver.js +27 -9
- package/server/dist/features/note/graphql/note.type-defs.js +2 -0
- package/server/dist/features/note/services/content-blocks.js +24 -21
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js +62 -0
- package/server/dist/features/reminder/graphql/reminder.type-defs.js +25 -0
- package/server/dist/features/view/graphql/view.query.resolver.js +40 -5
- package/server/dist/features/view/graphql/view.type-defs.js +23 -1
- package/server/dist/features/view/services/workspace.js +108 -5
- package/server/dist/paths.js +0 -1
- package/server/dist/routes/client.js +1 -1
- package/server/prisma/schema.prisma +1 -0
- package/server/client/dist/assets/ArrowRight.es-BEhnlwfe.js +0 -1
- package/server/client/dist/assets/AuxiliaryPanelHeader-B1k7pZpn.js +0 -1
- package/server/client/dist/assets/Calendar-D7QJsAlg.js +0 -25
- package/server/client/dist/assets/Callout-BTd1BYtV.js +0 -1
- package/server/client/dist/assets/Copy.es-BoLjilxv.js +0 -1
- package/server/client/dist/assets/File.es-Ct7fscBg.js +0 -1
- package/server/client/dist/assets/Graph-DYUb7gQb.js +0 -46
- package/server/client/dist/assets/Graph-LY_IgMYy.js +0 -1
- package/server/client/dist/assets/Image.es-OYyN3BYt.js +0 -1
- package/server/client/dist/assets/Note-DsMhwrHw.js +0 -25
- package/server/client/dist/assets/PencilLine.es-0JpEgxFY.js +0 -1
- package/server/client/dist/assets/Plus.es-DRfLW_bI.js +0 -1
- package/server/client/dist/assets/Reminders-COr1OHvF.js +0 -1
- package/server/client/dist/assets/Search-Ctkx0BQk.js +0 -31
- package/server/client/dist/assets/SurfaceCard-t7pdfhEe.js +0 -1
- package/server/client/dist/assets/Tag-BjxtrIQW.js +0 -1
- package/server/client/dist/assets/TagNotes-DV_fdRbg.js +0 -1
- package/server/client/dist/assets/Trash.es-Bo1VyK9Q.js +0 -1
- package/server/client/dist/assets/ViewChip-DlCkL4z4.js +0 -1
- package/server/client/dist/assets/ViewNotes-wWWeFJyU.js +0 -1
- package/server/client/dist/assets/ViewSectionDialog-DhH8harC.js +0 -102
- package/server/client/dist/assets/Views-CWE99SnI.js +0 -1
- package/server/client/dist/assets/app-B9WZRrAH.css +0 -1
- package/server/client/dist/assets/app-BpSMjzET.js +0 -26
- package/server/client/dist/assets/channel-CigOulR-.js +0 -1
- package/server/client/dist/assets/classDiagram-OUVF2IWQ-D13ISIOW.js +0 -1
- package/server/client/dist/assets/classDiagram-v2-EOCWNBFH-D13ISIOW.js +0 -1
- package/server/client/dist/assets/index-B-E1Ilh9.js +0 -1
- package/server/client/dist/assets/manage-image-azmo5iVw.js +0 -1
- package/server/client/dist/assets/manage-image-detail-BF-uSqb_.js +0 -1
- package/server/client/dist/assets/mcp-admin-adapter-PMmgPupc.js +0 -1
- package/server/client/dist/assets/note.api-D3oJmG3q.js +0 -356
- package/server/client/dist/assets/properties-BrNJLkxR.js +0 -1
- package/server/client/dist/assets/search-D-xKTPdO.js +0 -1
- package/server/client/dist/assets/search-admin-adapter-CJnJmL6w.js +0 -1
- package/server/client/dist/assets/swimlanesDiagram-G3AALYLV-DQnrq2ZC.js +0 -8
- package/server/client/dist/assets/time-D5LRMumI.js +0 -9
- package/server/client/dist/assets/trash-D4-9sv8q.js +0 -1
- package/server/client/dist/assets/useReminderMutate-BrGO9M0o.js +0 -82
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,j as e}from"./floating-ui.react-dom-BWTnA00G.js";import{C as V,J as K,T as m,F as k,K as Y,m as w,P as G,Q,a as J,b as I,y as W,z as C,h as X,i as F,q as $,E as q,B,k as ee,l as M}from"./time-DZKkPFUi.js";import{u as te,R as ae,f as re,a as se}from"./useReminderMutate-DaO0QssD.js";import{f as ne,u as oe}from"./useNoteMutate-VJYw0Vt_.js";import{N as L,R as ie}from"./url-BvjSC8PU.js";import{s as le}from"./ArrowRight.es-DZTjsBaI.js";const de=new Map([["bold",s.createElement(s.Fragment,null,s.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H69l51.52,51.51a12,12,0,0,1-17,17l-72-72a12,12,0,0,1,0-17l72-72a12,12,0,0,1,17,17L69,116H216A12,12,0,0,1,228,128Z"}))],["duotone",s.createElement(s.Fragment,null,s.createElement("path",{d:"M112,56V200L40,128Z",opacity:"0.2"}),s.createElement("path",{d:"M216,120H120V56a8,8,0,0,0-13.66-5.66l-72,72a8,8,0,0,0,0,11.32l72,72A8,8,0,0,0,120,200V136h96a8,8,0,0,0,0-16ZM104,180.69,51.31,128,104,75.31Z"}))],["fill",s.createElement(s.Fragment,null,s.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H120v64a8,8,0,0,1-13.66,5.66l-72-72a8,8,0,0,1,0-11.32l72-72A8,8,0,0,1,120,56v64h96A8,8,0,0,1,224,128Z"}))],["light",s.createElement(s.Fragment,null,s.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H54.49l61.75,61.76a6,6,0,1,1-8.48,8.48l-72-72a6,6,0,0,1,0-8.48l72-72a6,6,0,0,1,8.48,8.48L54.49,122H216A6,6,0,0,1,222,128Z"}))],["regular",s.createElement(s.Fragment,null,s.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H59.31l58.35,58.34a8,8,0,0,1-11.32,11.32l-72-72a8,8,0,0,1,0-11.32l72-72a8,8,0,0,1,11.32,11.32L59.31,120H216A8,8,0,0,1,224,128Z"}))],["thin",s.createElement(s.Fragment,null,s.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H49.66l65.17,65.17a4,4,0,0,1-5.66,5.66l-72-72a4,4,0,0,1,0-5.66l72-72a4,4,0,0,1,5.66,5.66L49.66,124H216A4,4,0,0,1,220,128Z"}))]]),P=s.forwardRef((t,a)=>s.createElement(V,{ref:a,...t,weights:de}));P.displayName="ArrowLeftIcon";const ce=P,me={high:"bg-priority-high",medium:"bg-priority-medium",low:"bg-priority-low"};function pe({reminder:t,onUpdate:a,onDelete:r,onEdit:n}){const d=E=>{const v=w(Number(E)),b=w();return v.isSame(b,"day")?`Today at ${v.format("HH:mm")}`:v.isSame(b.add(1,"day"),"day")?`Tomorrow at ${v.format("HH:mm")}`:v.format("YYYY-MM-DD HH:mm")},i=E=>{const v=w(Number(E)),b=w(),O=v.diff(b,"hour"),T=v.diff(b,"minute")%60;return O<0||T<0?"Overdue":O===0?`${T}m remaining`:`${O}h ${T}m remaining`},x=t.completed?"Completed":i(t.reminderDate),p=x==="Overdue",h=t.priority||"low",g=h==="high"?"High":h==="medium"?"Medium":"Low",l=me[h],u=t.noteId.toString(),j=p?"text-fg-error":"text-fg-tertiary",f=t.content?.trim(),y=f||t.note?.title||"Untitled reminder",o=t.note?.title||"Untitled note",c=!!(f&&t.note?.title),R=d(t.reminderDate),H=[...!t.completed&&n?[{name:"Edit",onClick:()=>n(t)}]:[],...t.completed?[{name:"Reopen",onClick:()=>a(t.id,u,{completed:!1})}]:[]],U=[...H,...H.length>0?[{type:"separator",key:"destructive-actions"}]:[],{name:"Delete",onClick:()=>r(t.id,u)}];return e.jsxs("div",{className:"surface-base grid grid-cols-[auto_minmax(0,1fr)_auto] items-start gap-x-2.5 gap-y-2 px-4 py-3 sm:grid-cols-[auto_minmax(0,1fr)_auto_auto] sm:items-center sm:gap-x-4 sm:gap-y-0",children:[e.jsx(K,{checked:t.completed,onChange:()=>a(t.id,u,{completed:!t.completed}),size:"sm","aria-label":`${t.completed?"Reopen":"Complete"} reminder: ${y}`}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(m,{as:"p",variant:"body",weight:"semibold",className:t.completed?"truncate text-fg-tertiary line-through":"truncate",children:!f&&t.note?e.jsx(k,{to:L,params:{id:String(t.note.id)},className:"transition-colors hover:text-fg-default hover:underline",children:y}):y}),c&&e.jsx(m,{as:"div",variant:"meta",tone:"secondary",className:t.completed?"mt-0.5 truncate text-fg-tertiary":"mt-0.5 truncate",children:e.jsx(k,{to:L,params:{id:String(t.note?.id??t.noteId)},className:"transition-colors hover:text-fg-default hover:underline",children:o})})]}),e.jsxs("div",{className:"col-start-2 row-start-2 flex flex-wrap items-center gap-x-2 gap-y-1 sm:col-start-auto sm:row-start-auto sm:shrink-0",children:[e.jsx("span",{className:`h-3 w-3 shrink-0 rounded-full border border-border-subtle ${l}`,"aria-label":`${g} priority`,title:`${g} priority`}),e.jsx(m,{as:"span",variant:"meta",weight:"medium",tone:"secondary",className:t.completed?"text-fg-tertiary":void 0,children:R}),e.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),e.jsx(m,{as:"span",variant:"label",weight:"medium",className:t.completed?"text-accent-success":j,children:x})]}),e.jsx("div",{className:"col-start-3 row-start-1 flex items-center justify-end gap-1.5 sm:col-start-auto sm:row-start-auto sm:shrink-0",children:e.jsx(Y,{button:e.jsx(ne,{label:"Reminder actions",iconClassName:"h-5 w-5 text-current"}),items:U})})]})}const A=X(ie),S=25,_=5,z={overdue:{title:"Overdue",description:"Recently missed reminders that still need a decision.",empty:"Nothing overdue"},today:{title:"Today",description:"Open reminders due before the day ends.",empty:"Nothing else due today"},upcoming:{title:"Upcoming",description:"Reminders scheduled after today.",empty:"Nothing upcoming"}},N=t=>t==="all"?void 0:t,ue=(t,a,r)=>{const n={status:"open",...N(a)?{priority:N(a)}:{},sortBy:"reminderDate"};return t==="overdue"?{...n,end:r.now,sortOrder:"desc"}:t==="today"?{...n,start:r.now,end:r.tomorrow,sortOrder:"asc"}:{...n,start:r.tomorrow,sortOrder:"asc"}};function he(){return e.jsxs("div",{role:"status","aria-label":"Loading reminders",className:"flex flex-col gap-2.5",children:[e.jsx(M,{height:"72px"}),e.jsx(M,{height:"72px"}),e.jsx(M,{height:"72px"})]})}function Z({reminders:t,actions:a}){return e.jsx("div",{className:"flex flex-col gap-2.5",children:t.map(r=>e.jsx(pe,{reminder:r,onUpdate:a.onUpdate,onDelete:a.onDelete,onEdit:a.onEdit},r.id))})}function D({scope:t,collection:a,actions:r,onViewAll:n}){const d=z[t],i=`reminder-${t}-heading`;return e.jsxs("section",{"aria-labelledby":i,className:"border-b border-border-subtle pb-5 last:border-b-0 last:pb-0",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{as:"h2",id:i,variant:"body",weight:"bold",children:d.title}),e.jsx(m,{as:"span",variant:"label",weight:"semibold",tone:"tertiary",className:"rounded-full bg-hover-subtle px-2 py-0.5",children:a.totalCount})]}),e.jsx(m,{as:"p",variant:"meta",tone:"tertiary",className:"mt-0.5",children:d.description})]}),a.totalCount>_?e.jsxs(B,{type:"button",variant:"ghost",size:"sm",onClick:()=>n(t),children:["View all",e.jsx(le,{className:"size-3.5","aria-hidden":"true"})]}):null]}),a.reminders.length>0?e.jsx(Z,{reminders:a.reminders,actions:r}):e.jsx("div",{className:"rounded-[16px] border border-dashed border-border-subtle px-4 py-4",children:e.jsx(m,{as:"p",variant:"meta",weight:"medium",tone:"tertiary",children:d.empty})})]})}function ge({priority:t,boundaries:a,actions:r,onViewAll:n}){const d={now:a.now,tomorrow:a.tomorrow,priority:N(t),limit:_},{data:i}=F({queryKey:$.reminders.overview(d),queryFn:async()=>{const p=await re(d);if(p.type==="error")throw p;return{overdue:p.overdue,today:p.today,upcoming:p.upcoming}}});return i.overdue.totalCount+i.today.totalCount+i.upcoming.totalCount===0?e.jsx(q,{title:"No open reminders",description:t==="all"?"Add a reminder inside any note to see it here.":"Try another priority or add a matching reminder."}):e.jsxs("div",{className:"flex flex-col gap-5",children:[e.jsx(D,{scope:"overdue",collection:i.overdue,actions:r,onViewAll:n}),e.jsx(D,{scope:"today",collection:i.today,actions:r,onViewAll:n}),e.jsx(D,{scope:"upcoming",collection:i.upcoming,actions:r,onViewAll:n})]})}function xe({status:t,scope:a,priority:r,page:n,boundaries:d,actions:i,onPageChange:x,onBackToOverview:p}){const g={filter:t==="completed"?{status:"completed",...N(r)?{priority:N(r)}:{},sortBy:"updatedAt",sortOrder:"desc"}:ue(a,r,d),limit:S,offset:(n-1)*S},{data:l}=F({queryKey:$.reminders.list(g),queryFn:async()=>{const y=await se(g);if(y.type==="error")throw y;return y.reminders}}),u=Math.max(1,Math.ceil(l.totalCount/S));s.useEffect(()=>{n>u&&x(u)},[u,x,n]);const j=t==="completed"?null:z[a],f=t==="completed"?"Completed":j?.title??"Open reminders";return e.jsxs("section",{"aria-labelledby":"reminder-list-heading",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[t==="open"?e.jsxs(B,{type:"button",variant:"ghost",size:"sm",className:"-ml-3 mb-1",onClick:p,children:[e.jsx(ce,{className:"size-3.5","aria-hidden":"true"}),"All open reminders"]}):null,e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{as:"h2",id:"reminder-list-heading",variant:"body",weight:"bold",children:f}),e.jsx(m,{as:"span",variant:"label",weight:"semibold",tone:"tertiary",className:"rounded-full bg-hover-subtle px-2 py-0.5",children:l.totalCount})]}),e.jsx(m,{as:"p",variant:"meta",tone:"tertiary",className:"mt-0.5",children:t==="completed"?"Completed reminders can be reopened or permanently deleted.":j?.description})]}),l.totalCount>0?e.jsxs(m,{as:"span",variant:"label",tone:"tertiary",children:[Math.min(g.offset+1,l.totalCount),"–",Math.min(g.offset+l.reminders.length,l.totalCount)," of ",l.totalCount]}):null]}),l.reminders.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Z,{reminders:l.reminders,actions:i}),u>1?e.jsx(ee,{page:n,last:u,onChange:x}):null]}):e.jsx(q,{title:t==="completed"?"No completed reminders":j?.empty,description:r==="all"?"There is nothing to manage in this list yet.":"Try another priority to see more reminders."})]})}function Ne(){const t=A.useNavigate(),{status:a,scope:r,priority:n,page:d}=A.useSearch(),{onUpdate:i,onDelete:x}=te(),p=oe(),[h,g]=s.useState(),[l]=s.useState(()=>{const o=w();return{now:o.toISOString(),tomorrow:o.add(1,"day").startOf("day").toISOString()}}),u=o=>{t({search:c=>({...c,page:o})})},f={onUpdate:i,onDelete:async(o,c)=>{await p("Delete this reminder? This cannot be undone.")&&await x(o,c)},onEdit:g},y=e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(J,{type:"single",variant:"quiet",size:"sm",value:a,onValueChange:o=>{o&&t({search:c=>({...c,status:o,scope:"all",page:1})})},children:[e.jsx(I,{value:"open",children:"Open"}),e.jsx(I,{value:"completed",children:"Completed"})]}),e.jsxs(W,{value:n,size:"sm",ariaLabel:"Filter reminders by priority",className:"w-[148px]",onValueChange:o=>{t({search:c=>({...c,priority:o,page:1})})},children:[e.jsx(C,{value:"all",children:"All priorities"}),e.jsx(C,{value:"high",children:"High priority"}),e.jsx(C,{value:"medium",children:"Medium priority"}),e.jsx(C,{value:"low",children:"Low priority"})]})]});return e.jsxs(e.Fragment,{children:[e.jsx(G,{title:"Reminders",description:a==="completed"?"Review completed reminders and reopen anything that still needs attention.":"Act on what is overdue, due today, and coming next.",headerRight:y,children:e.jsx(Q,{fallback:e.jsx(he,{}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading the reminder workspace.",resetKeys:[a,r,n,d,l.now],children:a==="open"&&r==="all"?e.jsx(ge,{priority:n,boundaries:l,actions:f,onViewAll:o=>{t({search:c=>({...c,scope:o,page:1})})}}):e.jsx(xe,{status:a,scope:r,priority:n,page:d,boundaries:l,actions:f,onPageChange:u,onBackToOverview:()=>{t({search:o=>({...o,scope:"all",page:1})})}})})}),e.jsx(ae,{isOpen:!!h,mode:"edit",reminder:h,onClose:()=>g(void 0),onSave:(o,c,R)=>{h&&i(h.id,String(h.noteId),{reminderDate:o,priority:c,content:R})}})]})}export{Ne as default};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import{j as e,r as g}from"./floating-ui.react-dom-BWTnA00G.js";import{a as L,m as Q}from"./useNoteMutate-VJYw0Vt_.js";import{g as q,y as G,z as V,c as X,G as J,B as Y,T as m,q as k,P as W,E as A,Q as Z,F as C,k as ee,h as te,l as w,i as re,s as se,N as ae}from"./time-DZKkPFUi.js";import{A as ne,p as ie}from"./AuxiliaryPanelHeader-Bp3iRjm6.js";import{N as P,f as oe,g as le,T as ce}from"./url-BvjSC8PU.js";import{f as de}from"./app-DbQdHfMb.js";import{s as me}from"./ArrowRight.es-DZTjsBaI.js";import{V as R}from"./ViewChip-Cq_YzRvB.js";import"./sortable.esm-DgSW3bAA.js";import{f as he}from"./search-admin-adapter-BLMYNm9w.js";import{s as ue}from"./File.es-c83QExqr.js";import"./preload-helper-BXl3LOEh.js";const xe=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=({children:t,match:s})=>{const r=s.trim();if(!r)return e.jsx("span",{children:t});const a=xe(r),n=new RegExp(`(${a})`,"gi"),o=new RegExp(`^${a}$`,"i"),i=t.split(n);return e.jsx("span",{children:i.map((c,d)=>o.test(c)?e.jsx("mark",{children:c},d):e.jsx(g.Fragment,{children:c},d))})},pe={hybrid:"HYBRID",lexical:"LEXICAL",semantic:"SEMANTIC"};function fe({query:t,limit:s=25,offset:r=0,mode:a="hybrid"}){return q(`query FetchSearchNotes($query: String!, $pagination: PaginationInput!, $mode: SearchMode!) {
|
|
2
|
+
searchNotes(query: $query, pagination: $pagination, mode: $mode) {
|
|
3
|
+
totalCount
|
|
4
|
+
semanticAvailable
|
|
5
|
+
semanticUsed
|
|
6
|
+
semanticError
|
|
7
|
+
matches {
|
|
8
|
+
noteId
|
|
9
|
+
lexical
|
|
10
|
+
semantic
|
|
11
|
+
}
|
|
12
|
+
notes {
|
|
13
|
+
id
|
|
14
|
+
title
|
|
15
|
+
content
|
|
16
|
+
pinned
|
|
17
|
+
tags {
|
|
18
|
+
id
|
|
19
|
+
name
|
|
20
|
+
}
|
|
21
|
+
createdAt
|
|
22
|
+
updatedAt
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}`,{query:t,mode:pe[a],pagination:{limit:s,offset:r}})}function ge(t,s=5){return q(`query FetchSearchRelatedNotes($noteId: ID!, $limit: Int!) {
|
|
26
|
+
searchRelatedNotes(noteId: $noteId, limit: $limit) {
|
|
27
|
+
id
|
|
28
|
+
title
|
|
29
|
+
reasons
|
|
30
|
+
}
|
|
31
|
+
}`,{noteId:t,limit:s})}const M=[{value:"hybrid",label:"Keyword + Meaning"},{value:"lexical",label:"Keyword only"},{value:"semantic",label:"Meaning only"}],be=({value:t,onChange:s,className:r})=>e.jsx(G,{value:t,ariaLabel:"Search mode",variant:"ghost",size:"md",className:X("max-w-[12rem] shrink-0",r),onValueChange:a=>{M.some(n=>n.value===a)&&s(a)},children:M.map(a=>e.jsx(V,{value:a.value,children:a.label},a.value))}),ye=({value:t,onChange:s,onSubmit:r,onClear:a,onCompositionChange:n,mode:o,onModeChange:i,autoFocus:c=!1,placeholder:d="Describe what you remember"})=>{const l=h=>{h.preventDefault(),r()};return e.jsx("form",{role:"search",className:"flex w-full",onSubmit:l,children:e.jsxs("div",{className:"flex min-h-14 min-w-0 flex-1 flex-wrap items-center overflow-hidden rounded-[16px] border border-border-subtle bg-elevated px-2 py-1 transition-colors focus-within:border-border-focus focus-within:shadow-[0_0_0_4px_color-mix(in_srgb,var(--accent-soft-primary)_90%,transparent)]",children:[o&&i&&e.jsxs("div",{className:"flex w-full items-center border-b border-border-subtle/70 pb-1 md:w-auto md:border-b-0 md:pb-0",children:[e.jsx(be,{value:o,onChange:i,className:"max-w-full"}),e.jsx("span",{className:"mx-1 hidden h-6 w-px shrink-0 bg-divider md:block","aria-hidden":"true"})]}),e.jsxs("div",{className:"flex min-w-0 flex-1 basis-full items-center md:basis-auto",children:[e.jsx("span",{className:"flex h-11 w-10 shrink-0 items-center justify-center text-fg-tertiary","aria-hidden":"true",children:e.jsx(de,{className:"h-[18px] w-[18px]",weight:"bold"})}),e.jsx("input",{type:"text",role:"searchbox","aria-label":"Search notes",autoFocus:c,autoComplete:"off",placeholder:d,value:t,onChange:h=>s(h.target.value),onCompositionStart:()=>n?.(!0),onCompositionEnd:h=>{s(h.currentTarget.value),n?.(!1)},className:"h-11 min-w-0 flex-1 bg-transparent px-1 text-base text-fg-default outline-none placeholder:text-fg-placeholder"}),t&&e.jsx("button",{type:"button","aria-label":"Clear search",className:"focus-ring-soft flex h-10 w-10 shrink-0 items-center justify-center rounded-[10px] text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-default",onClick:()=>{s(""),a?.()},children:e.jsx(J,{className:"h-4 w-4",weight:"bold"})}),e.jsxs(Y,{type:"submit",variant:t.trim()?"primary":"ghost",size:"icon-sm","aria-label":"Search",disabled:!t.trim(),className:"my-1 shrink-0 max-sm:disabled:opacity-100 sm:h-11 sm:w-auto sm:rounded-[16px] sm:px-5 sm:text-body",children:[e.jsx(me,{className:"h-4 w-4 sm:hidden",weight:"bold","aria-hidden":"true"}),e.jsx("span",{className:"hidden sm:inline",children:"Search"})]})]})]})})},je=t=>t?.lexical&&t.semantic?"Keyword + Meaning":t?.semantic?"Meaning match":t?.lexical?"Keyword match":null,Ne=({match:t,className:s})=>{const r=je(t);return r?e.jsx(m,{as:"span",variant:"meta",weight:"semibold",tone:"tertiary",className:`shrink-0 rounded-full bg-muted px-2 py-1 ${s??""}`.trim(),children:r}):null},ve=()=>{const t=L({queryKey:k.search.adminStatus(),queryFn:he,staleTime:6e4,retry:1});return{status:t.data,isLoading:t.isPending,isError:t.isError,isSemanticSearchEnabled:t.data?.config.enabled===!0,isSemanticSearchAvailable:t.data?.available===!0}},I=180,T=t=>t.replace(/\s+/g," ").trim(),O=t=>T(t).toLowerCase().split(" ").filter(Boolean),Se=(t,s)=>{const r=T(t),a=T(s).toLowerCase();if(!a)return r;const n=r.toLowerCase();let o=a,i=n.indexOf(a);if(i===-1){const h=O(s).map(f=>({term:f,index:n.indexOf(f)})).filter(f=>f.index>=0).sort((f,v)=>f.index-v.index||v.term.length-f.term.length)[0];h&&(o=h.term,i=h.index)}if(i===-1)return r.length>I?`${r.slice(0,I-1).trimEnd()}…`:r;const c=Math.max(0,i-56),d=Math.min(r.length,i+o.length+84);let l=r.slice(c,d).trim();return c>0&&(l=`…${l}`),d<r.length&&(l=`${l}…`),l},we=t=>Array.isArray(t)?t.map(s=>{if(!s||typeof s!="object")return"";const r=s.text;return typeof r=="string"?r:""}).join(""):"",Ee=t=>t==="heading"?"heading":t==="bulletListItem"||t==="numberedListItem"?"list":t==="checkListItem"?"checklist":t==="quote"?"quote":t==="codeBlock"?"code":"content",z=(t,s)=>{Array.isArray(t)&&t.forEach(r=>{if(!r||typeof r!="object")return;const a=typeof r.type=="string"?r.type:void 0,n=T(we(r.content));n&&s.push({kind:Ee(a),text:n});const o=r.children;Array.isArray(o)&&z(o,s)})},Te=(t,s)=>{try{const r=JSON.parse(t),a=[];if(z(r,a),a.length===0)return[];const n=O(s),o=n.length>0?a.filter(c=>n.some(d=>c.text.toLowerCase().includes(d))):a;return(o.length>0?o:a).slice(0,2).map(c=>({...c,text:Se(c.text,s)}))}catch{return[]}},_=te(oe),E=10,Ce=400,U=3e4,ke=t=>t===1?"1 result":`${t} results`,Ae=t=>{const s=Number(t),r=Number.isFinite(s)?s:Date.parse(t);return Number.isFinite(r)?`Updated ${ae(r)}`:"Updated recently"},Re=({searchParams:t,render:s})=>{const{data:r}=re({queryKey:k.search.results(t),async queryFn(){const a=await fe(t);if(a.type==="error")throw a;return a.searchNotes},staleTime:U});return s(r)},$=()=>e.jsx("main",{className:"mt-5 flex flex-col gap-3","aria-label":"Searching notes",children:Array.from({length:2},(t,s)=>e.jsxs("div",{className:"surface-base flex flex-col gap-3 p-4",children:[e.jsx(w,{width:"34%",height:18,className:"rounded-full"}),e.jsx("div",{className:"rounded-[14px] bg-muted px-3 py-3",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(w,{width:84,height:12,className:"rounded-full"}),e.jsx(w,{width:"100%",height:14,className:"rounded-full"}),e.jsx(w,{width:"82%",height:14,className:"rounded-full"})]})})]},s))}),Me=({note:t})=>{const s=t.tags.slice(0,2),r=t.tags.length-s.length;return e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1.5 sm:col-start-1 sm:row-start-2",children:[t.pinned&&e.jsxs("span",{className:"inline-flex items-center text-fg-tertiary",title:"Pinned note",children:[e.jsx(Q,{className:"h-3.5 w-3.5",weight:"fill","aria-hidden":"true"}),e.jsx("span",{className:"sr-only",children:"Pinned note"})]}),e.jsx(m,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:Ae(t.updatedAt)}),s.map(a=>e.jsx(C,{to:ce,params:{id:a.id},search:{page:1},children:e.jsx(R,{size:"compact",className:"border-border-subtle bg-transparent text-fg-secondary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:a.name})},a.id)),r>0&&e.jsxs(R,{size:"compact",className:"border-border-subtle bg-subtle text-fg-tertiary",children:["+",r]})]})},Ie=t=>t==="list"?"•":t==="checklist"?"☐":null,_e=t=>{if(t==="quote")return"border-l-2 border-border-secondary pl-3 italic";if(t==="code")return"rounded-[10px] bg-subtle/70 px-2.5 py-2 font-mono text-sm"},$e=({blocks:t,query:s})=>e.jsx("div",{className:"rounded-[14px] border border-border-subtle/80 bg-muted/40 px-3.5 py-3",children:t.map((r,a)=>{const n=Ie(r.kind);return e.jsx("div",{className:a>0?"mt-2 border-t border-border-subtle/70 pt-2":void 0,children:e.jsxs("div",{className:"flex items-start gap-2",children:[n&&e.jsx("span",{className:"mt-0.5 w-4 shrink-0 text-center text-fg-tertiary","aria-hidden":"true",children:n}),e.jsx(m,{as:"p",variant:"body",weight:r.kind==="heading"?"semibold":"regular",tone:r.kind==="heading"?"default":"secondary",className:_e(r.kind)??"leading-[1.65]",children:e.jsx(B,{match:s,children:r.text})})]})},`${r.kind}:${a}`)})}),Le=({noteId:t})=>{const[s,r]=g.useState(!1),{data:a,isError:n,isLoading:o}=L({queryKey:k.search.related(t),queryFn:async()=>{const i=await ge(t);if(i.type==="error")throw i;return i.searchRelatedNotes},enabled:s,staleTime:U});return e.jsxs("details",{className:"group border-t border-border-subtle/70 pt-3",onToggle:i=>r(i.currentTarget.open),children:[e.jsxs("summary",{className:"focus-ring-soft flex cursor-pointer list-none items-center justify-between gap-3 rounded-[10px] border border-transparent px-2.5 py-1.5 outline-none transition-colors hover:bg-hover-subtle marker:hidden",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(ne,{icon:e.jsx(ie,{className:"h-3.5 w-3.5"}),title:"Related notes",className:"text-fg-tertiary"}),a&&e.jsx(m,{as:"span",variant:"meta",weight:"medium",tone:"tertiary",children:a.length})]}),e.jsx(se,{className:"h-4 w-4 shrink-0 text-fg-tertiary transition-transform group-open:rotate-180","aria-hidden":"true"})]}),e.jsxs("div",{className:"mt-2",children:[o&&e.jsx(m,{as:"p",variant:"meta",tone:"tertiary",className:"px-2 py-1.5",children:"Looking for related notes…"}),n&&e.jsx(m,{as:"p",variant:"meta",tone:"error",className:"px-2 py-1.5",children:"Related notes could not be loaded."}),!o&&!n&&a?.length===0&&e.jsx(m,{as:"p",variant:"meta",tone:"tertiary",className:"px-2 py-1.5",children:"No direct connections found yet."}),!o&&!n&&a&&a.length>0&&e.jsx("ul",{className:"flex flex-col",children:a.map(i=>e.jsx("li",{children:e.jsxs(C,{to:P,params:{id:i.id},className:"flex min-w-0 items-start gap-2 rounded-[10px] px-2.5 py-1.5 text-fg-secondary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(ue,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-fg-tertiary","aria-hidden":"true"}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx(m,{as:"span",variant:"body",weight:"medium",className:"text-current line-clamp-1",children:i.title||"Untitled"}),e.jsx(m,{as:"span",variant:"meta",tone:"tertiary",className:"mt-0.5 block line-clamp-1",children:i.reasons.join(" · ")})]})]})},i.id))})]})]})},qe=({result:t,mode:s})=>s==="lexical"||t.semanticAvailable&&!t.semanticError?null:e.jsx(m,{as:"p",variant:"body",tone:"tertiary",className:"rounded-[14px] border border-border-subtle bg-muted px-3.5 py-2.5",children:s==="semantic"?"Meaning search is not ready. Configure an embedding API and build the index in Search settings.":"Meaning search is not ready, so these results use keyword search only."}),Pe=({isVisible:t})=>t?e.jsxs(m,{as:"p",variant:"meta",tone:"tertiary",className:"mx-auto mt-5 max-w-[34rem] text-center",children:[e.jsx("span",{className:"font-semibold text-fg-secondary",children:"Tip:"})," Search by meaning when the exact words are fuzzy."," ",e.jsx(C,{to:le,className:"font-semibold text-fg-secondary underline decoration-border-secondary underline-offset-2 transition-colors hover:text-fg-default",children:"Enable meaning search"})]}):null;function Je(){const t=_.useNavigate(),{page:s,query:r,mode:a}=_.useSearch(),[n,o]=g.useState(r),[i,c]=g.useState(!1),d=g.useRef(null),l=r.trim(),{isLoading:h,isError:f,isSemanticSearchEnabled:v,isSemanticSearchAvailable:j}=ve(),p=h||j?a:"lexical",H=j?"Use exact words or describe a half-remembered note":"Search notes by exact words";g.useEffect(()=>{o(r)},[r]);const b=g.useCallback(()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),N=g.useCallback((u,x=p,y=!1)=>{const S={query:u.trim(),page:1,mode:x};if(y){t({search:S,replace:!0});return}t({search:S})},[p,t]);g.useEffect(()=>{if(b(),!(i||n.trim()===l))return d.current=setTimeout(()=>{d.current=null,N(n,p,!0)},Ce),b},[p,b,n,i,l,N]);const D=()=>{i||(b(),N(n))},F=u=>{b(),N(n,u)};return e.jsx(W,{title:"Search",description:H,variant:"default",children:e.jsxs("main",{children:[e.jsx("section",{"aria-label":"Search controls",className:"border-b border-border-subtle pb-5",children:e.jsx(ye,{value:n,onChange:o,onCompositionChange:c,mode:j?p:void 0,onModeChange:j?F:void 0,placeholder:j?"Search or describe a memory":"Search notes by keyword",onSubmit:D,onClear:()=>{b(),N("")},autoFocus:!l})}),l?h?e.jsx($,{}):e.jsx(Z,{fallback:e.jsx($,{}),errorTitle:"Failed to load search results",errorDescription:`Retry loading results for "${l}".`,resetKeys:[l,s,p],children:e.jsx(Re,{searchParams:{query:l,limit:E,offset:(s-1)*E,mode:p},render:u=>e.jsxs("div",{className:"mt-5 flex flex-col gap-3",children:[e.jsx("div",{className:"flex min-h-7 items-center justify-between gap-3",children:e.jsx(m,{as:"p",variant:"body",weight:"semibold",tone:"secondary",children:ke(u.totalCount)})}),e.jsx(qe,{result:u,mode:p}),u.notes.length>0?e.jsx("div",{className:"grid gap-3",children:u.notes.map(x=>{const y=Te(x.content,l),S=u.matches.find(K=>K.noteId===x.id);return e.jsxs("article",{className:"surface-base flex flex-col gap-3.5 rounded-[16px] p-4 transition-colors hover:border-border-secondary/70 hover:bg-hover-subtle/25 sm:p-5",children:[e.jsxs("div",{className:"grid min-w-0 gap-x-3 gap-y-2 sm:grid-cols-[minmax(0,1fr)_auto]",children:[e.jsx(m,{as:"h2",variant:"body",weight:"semibold",tracking:"tight",className:"min-w-0",children:e.jsx(C,{to:P,params:{id:x.id},className:"line-clamp-2 transition-colors hover:text-fg-default/85",children:e.jsx(B,{match:l,children:x.title||"Untitled"})})}),e.jsx(Me,{note:x}),e.jsx(Ne,{match:S,className:"justify-self-start sm:col-start-2 sm:row-start-1 sm:justify-self-end"})]}),y.length>0?e.jsx($e,{blocks:y,query:l}):e.jsx("div",{className:"rounded-[14px] border border-dashed border-border-subtle/80 bg-muted/25 px-3.5 py-3",children:e.jsx(m,{as:"p",variant:"body",tone:"tertiary",className:"leading-[1.65]",children:"Open the note to inspect matching content."})}),e.jsx(Le,{noteId:x.id})]},x.id)})}):e.jsx(A,{title:"No results found",description:p==="semantic"&&!u.semanticAvailable?"Meaning search must be configured before it can find related notes.":"Try another phrase or a different search method."}),u.totalCount>E&&e.jsx(ee,{page:s,last:Math.ceil(u.totalCount/E),onChange:x=>{t({search:y=>({...y,page:x,mode:p})})}})]})})}):e.jsxs("div",{className:"py-10",children:[e.jsx(A,{title:"Start with anything you remember",description:"A name, phrase, rough date, or description all work."}),e.jsx(Pe,{isVisible:!h&&!f&&!v})]})]})})}export{Je as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as f}from"./floating-ui.react-dom-BWTnA00G.js";import{A as o}from"./time-DZKkPFUi.js";const n=o("surface-base",{variants:{tone:{default:"",elevated:"surface-elevated"},padding:{default:"p-4",compact:"px-3 py-2.5",roomy:"p-6",flush:"overflow-hidden"}},defaultVariants:{tone:"default",padding:"default"}});function i({children:a,className:e,flush:t=!1,padding:d="default",tone:s="default"}){const r=t?"flush":d;return f.jsx("div",{className:n({tone:s,padding:r,className:e}),children:a})}export{i as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as c,j as e}from"./floating-ui.react-dom-BWTnA00G.js";import{i as T,q as S,P as k,T as f,G as P,y as j,z as g,Q as E,F as R,k as q,E as C,l as x,h as I}from"./time-DZKkPFUi.js";import{f as A,s as O,T as L,a as F,i as Q,b as _,F as v}from"./app-DbQdHfMb.js";import{T as M,d as z}from"./url-BvjSC8PU.js";import{f as B}from"./tag.api-bU52U0tT.js";import"./useNoteMutate-VJYw0Vt_.js";import"./preload-helper-BXl3LOEh.js";import"./sortable.esm-DgSW3bAA.js";const D=s=>{const{data:d}=T({queryKey:S.tags.list(s.searchParams),async queryFn(){const r=await B({query:s.searchParams.query,offset:s.searchParams.offset,limit:s.searchParams.limit,sortBy:s.searchParams.sortBy,sortOrder:s.searchParams.sortOrder});if(r.type==="error")throw r;return r.allTags}});return s.render(d)},G=s=>{const[d,r]=c.useState(!1),t=c.useRef(null),n=c.useRef(!0),u=c.useRef(0),o=c.useCallback(()=>{t.current!==null&&(clearTimeout(t.current),t.current=null)},[]);c.useEffect(()=>(n.current=!0,()=>{n.current=!1,o()}),[o]);const m=c.useCallback(p=>{u.current+=1;const i=u.current;o(),n.current&&r(!0),t.current=setTimeout(()=>{t.current=null,Promise.resolve().then(p).catch(()=>{}).finally(()=>{n.current&&u.current===i&&r(!1)})},s)},[o,s]);return[d,m]},b=I(z);function X(){const s=b.useNavigate(),{page:d,query:r,limit:t,sortBy:n,sortOrder:u}=b.useSearch(),[o,m]=c.useState(r),[,p]=G(350),i=r.trim();c.useEffect(()=>{m(r)},[r]),c.useEffect(()=>{const a=o.trim();a!==i&&p(()=>{s({search:l=>({...l,page:1,query:a})})})},[o,s,i,p]);const y=a=>{s({search:l=>({...l,...a})})},w=()=>{m(""),y({page:1,query:""})};return e.jsxs(k,{title:"Tags",description:"Find tags you added with @ across your notes",children:[e.jsxs("div",{className:"mb-5 flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",children:[e.jsxs("div",{className:"surface-base flex min-w-0 items-center gap-2 rounded-[16px] px-3.5 py-2.5 lg:w-72",children:[e.jsx(A,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(f,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:"Search"}),e.jsx("div",{className:"h-5 w-px bg-divider"}),e.jsx("input",{"aria-label":"Search tags",placeholder:"Search tags",value:o,onChange:a=>m(a.target.value),className:"h-8 min-w-0 flex-1 bg-transparent text-sm font-medium text-fg-default outline-none placeholder:text-xs placeholder:font-medium placeholder:text-fg-placeholder"}),(o||i)&&e.jsx("button",{type:"button","aria-label":"Clear tag search",className:"focus-ring-soft flex h-7 w-7 shrink-0 items-center justify-center rounded-[10px] text-fg-tertiary outline-none transition-colors hover:bg-hover-subtle hover:text-fg-default",onClick:w,children:e.jsx(P,{className:"h-3.5 w-3.5",weight:"bold"})})]}),e.jsxs("div",{className:"surface-base inline-flex flex-wrap items-center gap-3 rounded-[16px] px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(O,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(f,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:"Items"}),e.jsx(j,{value:String(t),onValueChange:a=>{const l=Number(a);Q(l)&&y({limit:l,page:1})},variant:"ghost",size:"sm",children:L.map(a=>e.jsx(g,{value:String(a),children:a===F?`Default (${a})`:a},a))})]}),e.jsx("div",{className:"h-5 w-px bg-divider"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(f,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:"Sort"}),e.jsxs(j,{value:n,onValueChange:a=>y({sortBy:a,page:1}),variant:"ghost",size:"sm",children:[e.jsx(g,{value:"referenceCount",children:"Usage"}),e.jsx(g,{value:"name",children:"Name"})]}),e.jsxs(j,{value:u,onValueChange:a=>y({sortOrder:a,page:1}),variant:"ghost",size:"sm",children:[e.jsx(g,{value:"desc",children:n==="name"?"Z to A":"Most used"}),e.jsx(g,{value:"asc",children:n==="name"?"A to Z":"Least used"})]})]})]})]}),e.jsx(E,{fallback:e.jsxs("div",{className:"flex flex-wrap gap-2.5",children:[e.jsx(x,{width:"90px",height:"36px"}),e.jsx(x,{width:"120px",height:"36px"}),e.jsx(x,{width:"80px",height:"36px"}),e.jsx(x,{width:"100px",height:"36px"}),e.jsx(x,{width:"110px",height:"36px"}),e.jsx(x,{width:"70px",height:"36px"})]}),errorTitle:"Failed to load tags",errorDescription:"Retry loading the tag catalog",resetKeys:[d,t,i,n,u],children:e.jsx(D,{searchParams:{query:i,offset:(d-1)*t,limit:t,sortBy:n,sortOrder:u},render:({tags:a,totalCount:l})=>e.jsx(v,{fallback:e.jsx(C,{title:i?"No matching tags":"No tags yet",description:i?"Try another tag name":"Add @tags inside notes and they will appear here"}),children:a.length>0&&e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"flex flex-wrap gap-2.5",children:a.map(h=>e.jsxs(R,{to:M,params:{id:h.id},search:{page:1},className:"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-hover-subtle px-3 py-1.5 text-fg-secondary transition-colors hover:border-border-secondary hover:bg-hover hover:text-fg-default",children:[e.jsx(f,{as:"span",variant:"meta",weight:"medium",className:"text-current",children:h.name}),e.jsx(f,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"text-current/70",children:h.referenceCount})]},h.id))}),e.jsx(v,{fallback:null,children:l&&t<l&&e.jsx(q,{page:d,last:Math.ceil(l/t),onChange:h=>{s({search:N=>({...N,page:h,query:i,limit:t,sortBy:n,sortOrder:u})})}})})]})})})})]})}export{X as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./floating-ui.react-dom-BWTnA00G.js";import{i as x,D as N,q as j,Q as y,P as c,k as P,E as T,l as o,h as v}from"./time-DZKkPFUi.js";import{F as h,N as k}from"./app-DbQdHfMb.js";import{T as q}from"./url-BvjSC8PU.js";import"./NotePropertiesPanel-uO-JKy19.js";import{d as w}from"./useNoteMutate-VJYw0Vt_.js";import"./preload-helper-BXl3LOEh.js";import"./sortable.esm-DgSW3bAA.js";import"./AuxiliaryPanelHeader-Bp3iRjm6.js";import"./Plus.es-CaRgmXc_.js";const R=s=>{const{data:r}=x({queryKey:j.notes.tagList(s.searchParams),async queryFn(){const t=await N({query:s.searchParams.query,offset:s.searchParams.offset,limit:s.searchParams.limit});if(t.type==="error")throw t;return t.tagNotes}});return s.render(r)},g=v(q);function A(){const s=g.useNavigate(),{id:r}=g.useParams(),{page:t}=g.useSearch(),i=25,{onDelete:m,onPinned:u,deleteWarningDialog:f}=w();return e.jsxs(y,{fallback:e.jsx(c,{title:"Tagged Notes",heading:e.jsx(o,{width:148,height:24,className:"rounded-full"}),description:e.jsx(o,{width:196,height:16,className:"rounded-full"}),variant:"default",children:e.jsxs("div",{className:"grid-auto-cards grid gap-5",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:[r,t,i],children:[e.jsx(R,{searchParams:{query:r,offset:(t-1)*i,limit:i},render:({notes:l,totalCount:n})=>{const d=l.flatMap(a=>a.tags).find(a=>a.id===r)?.name;return e.jsx(c,{title:d??"Tagged Notes",heading:d?n>0?`${d} (${n})`:d:"Tagged Notes",description:"Browse every note linked to this tag",variant:"default",children:e.jsx(h,{fallback:e.jsx(T,{title:"No tagged notes yet",description:"Notes tagged with this label will appear here"}),children:l.length>0&&e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"grid-auto-cards grid gap-5",children:l.map(a=>e.jsx(k,{...a,onPinned:()=>u(a.id,a.pinned),onDelete:()=>m(a.id)},a.id))}),e.jsx(h,{fallback:null,children:n&&i<n&&e.jsx(P,{page:t,last:Math.ceil(n/i),onChange:a=>{s({search:p=>({...p,page:a})})}})})]})})})}}),f]})}export{A as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as a}from"./floating-ui.react-dom-BWTnA00G.js";import{C as l}from"./time-DZKkPFUi.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as s}from"./floating-ui.react-dom-BWTnA00G.js";import{c as a}from"./time-DZKkPFUi.js";const m={compact:"h-[22px] px-2",regular:"h-7 px-2.5"};function c({children:e,className:n,contentClassName:r,size:t="regular",truncateContent:i=!0,...o}){return s.jsx("span",{className:a("inline-flex min-w-0 items-center overflow-hidden whitespace-nowrap rounded-full border text-xs font-medium leading-none",m[t],n),...o,children:i?s.jsx("span",{className:a("min-w-0 truncate",r),children:e}):e})}export{c as V};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as u,j as e}from"./floating-ui.react-dom-BWTnA00G.js";import{u as ke,a as re,K as Te,P as at,D as Ce,c as Se,b as At,d as Pt,C as Ae,s as rt,M as Vt,S as nt,h as Et,e as it,v as Dt}from"./sortable.esm-DgSW3bAA.js";import{g as Ft,m as lt,h as Mt,r as zt,j as Rt,u as Ot,k as It,l as Bt,n as ze,o as $t,p as Lt,q as Kt,t as Re,v as _t,w as qt,x as Wt,y as Ut}from"./app-DbQdHfMb.js";import{j as Qt,f as Pe,m as ot,a as ue,M as dt,u as Gt}from"./useNoteMutate-VJYw0Vt_.js";import{a3 as Yt,a4 as Oe,a5 as Zt,a6 as Ht,a7 as Jt,C as Xt,u as ct,q as W,W as es,e as ut,T as d,l as ce,B as $,c as ee,F as Ve,N as fe,K as Ee,m as mt,a8 as ts,k as ss,M as J,L as U,I as ve,a as Ie,b as de,J as Be,y as H,z as B,d as as,t as rs,P as ns,E as $e,h as is}from"./time-DZKkPFUi.js";import{f as ls}from"./tag.api-bU52U0tT.js";import{S as je}from"./SurfaceCard-BAlcul6z.js";import{V as Q}from"./ViewChip-Cq_YzRvB.js";import{N as De,V as os}from"./url-BvjSC8PU.js";import{s as ds}from"./ArrowRight.es-DZTjsBaI.js";import{s as cs}from"./CheckCircle.es-BTloiuti.js";import{n as we}from"./Plus.es-CaRgmXc_.js";import"./preload-helper-BXl3LOEh.js";var us=class extends Yt{constructor(t,s){super(t,s)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(t){super.setOptions({...t,behavior:Oe()})}getOptimisticResult(t){return t.behavior=Oe(),super.getOptimisticResult(t)}fetchNextPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(t){return this.fetch({...t,meta:{fetchMore:{direction:"backward"}}})}createResult(t,s){const{state:a}=t,l=super.createResult(t,s),{isFetching:n,isRefetching:m,isError:x,isRefetchError:o}=l,v=a.fetchMeta?.fetchMore?.direction,j=x&&v==="forward",k=n&&v==="forward",p=x&&v==="backward",F=n&&v==="backward";return{...l,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:Ht(s,a.data),hasPreviousPage:Zt(s,a.data),isFetchNextPageError:j,isFetchingNextPage:k,isFetchPreviousPageError:p,isFetchingPreviousPage:F,isRefetchError:o&&!j&&!p,isRefetching:m&&!k&&!F}}};function ms(t,s){return Jt(t,us)}const ps=new Map([["bold",u.createElement(u.Fragment,null,u.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,212Z"}))],["duotone",u.createElement(u.Fragment,null,u.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),u.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,216Z"}))],["fill",u.createElement(u.Fragment,null,u.createElement("path",{d:"M232,128A104,104,0,1,1,128,24,104.13,104.13,0,0,1,232,128Z"}))],["light",u.createElement(u.Fragment,null,u.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,218Z"}))],["regular",u.createElement(u.Fragment,null,u.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,216Z"}))],["thin",u.createElement(u.Fragment,null,u.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,220Z"}))]]),pt=u.forwardRef((t,s)=>u.createElement(Xt,{ref:s,...t,weights:ps}));pt.displayName="CircleIcon";const hs=pt,me=6,Ne=["title","tags","properties","createdAt","updatedAt"],bs={activeTabId:null,tabs:[]},xs=t=>{const s=t.trim();return s?s.startsWith("@")?s:s.startsWith("#")?"":`@${s}`:""},ht=(t,s,a)=>{if(s===a)return t;const l=t.findIndex(o=>o.id===s),n=t.findIndex(o=>o.id===a);if(l<0||n<0)return t;const m=[...t],[x]=m.splice(l,1);return m.splice(n,0,x),m},bt=(t,s,a)=>{const l=t.findIndex(m=>m.id===s),n=l+(a==="previous"?-1:1);return l>=0&&n>=0&&n<t.length?t[n]?.id:void 0},Le=t=>{const s=t.flatMap(a=>typeof a=="string"?a.split(","):[]);return Array.from(new Set(s.map(xs).filter(Boolean)))},gs=t=>t.tabs.length===0?null:t.activeTabId?t.tabs.find(s=>s.id===t.activeTabId)??t.tabs[0]??null:t.tabs[0]??null,ys=(t,s)=>t.tabs.some(a=>a.id===s)?{...t,activeTabId:s}:t,xt=(t,s,a)=>({...t,tabs:ht(t.tabs,s,a)}),gt=(t,s,a,l)=>({...t,tabs:t.tabs.map(n=>n.id===s?{...n,sections:ht(n.sections,a,l)}:n)}),fs=(t,s,a)=>{const l=bt(t.tabs,s,a);return l?xt(t,s,l):t},vs=(t,s,a,l)=>{const n=t.tabs.find(x=>x.id===s)?.sections??[],m=bt(n,a,l);return m?gt(t,s,a,m):t},Ke=t=>t==="or"?"OR — any selected tag":"AND — all selected tags",js=t=>t==="or"?"OR":"AND",yt=t=>{switch(t){case"notEquals":return"is not";case"contains":return"contains";case"notContains":return"does not contain";case"before":return"before";case"after":return"after";case"exists":return"is set";case"notExists":return"is empty";default:return"is"}},ws=t=>{switch(t){case"table":return"Table";case"board":return"Board";case"calendar":return"Unavailable";default:return"List"}},ft=t=>{switch(t){case"tags":return"Tags";case"properties":return"Properties";case"createdAt":return"Created";case"updatedAt":return"Updated";default:return"Title"}},pe=t=>{const s=new Set(Ne),a=(t??[]).filter(n=>s.has(n)),l=Array.from(new Set(a));return l.length===0?[...Ne]:l.includes("title")?l:["title",...l]},Fe=t=>Array.from(new Set((t??[]).map(s=>s.trim()).filter(Boolean))).slice(0,me),vt=t=>({tableColumns:pe(t?.tableColumns),tablePropertyKeys:Fe(t?.tablePropertyKeys),boardGroupByPropertyKey:t?.boardGroupByPropertyKey?.trim()||null}),Ns=t=>{const s=yt(t.operator);return t.operator==="exists"||t.operator==="notExists"?`${t.name} ${s}`:`${t.name} ${s} ${t.value??""}`.trim()},ks=(t,s={})=>{const a={...t,...s};return{title:a.title,displayType:a.displayType,displayOptions:vt(a.displayOptions),tagNames:a.tagNames,mode:a.mode,propertyFilters:a.propertyFilters.map(l=>({key:l.key,valueType:l.valueType,operator:l.operator,value:l.value})),sortBy:a.sortBy,sortOrder:a.sortOrder,limit:a.limit}},jt="view-board-column:unassigned",Ts=t=>t===null?jt:`view-board-column:value:${encodeURIComponent(t)}`,Cs=t=>[...[...t].sort((s,a)=>s.order-a.order||s.label.localeCompare(a.label)).map(s=>({id:Ts(s.value),label:s.label,value:s.value,color:s.color??null})),{id:jt,label:"Unassigned",value:null,color:null}];function Ss({note:t,column:s,columns:a,isMoving:l,onMove:n}){const{attributes:m,listeners:x,setNodeRef:o,setActivatorNodeRef:v,transform:j,isDragging:k}=Pt({id:`view-board-note:${t.id}`,data:{note:t,sourceValue:s.value},disabled:l});return e.jsx("article",{ref:o,style:{transform:Ae.Translate.toString(j)},className:ee("group rounded-[14px] border border-border-subtle bg-elevated px-3 py-2.5 transition-[opacity,background-color,border-color] hover:border-border-secondary/80 hover:bg-hover-subtle/35",(k||l)&&"opacity-55",k&&"z-20 border-accent-primary/45 bg-elevated ring-2 ring-accent-primary/10"),children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("button",{type:"button",ref:v,"aria-label":`Drag ${t.title||"Untitled"} to another column`,...m,...x,className:"focus-ring-soft mt-0.5 hidden size-7 shrink-0 touch-none items-center justify-center rounded-[9px] text-fg-tertiary outline-none hover:bg-hover-subtle hover:text-fg-default sm:inline-flex",children:e.jsx(lt,{className:"size-3.5"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(d,{as:"div",variant:"body",weight:"semibold",tracking:"tight",className:"leading-[1.4]",children:e.jsx(Ve,{to:De,params:{id:t.id},className:"line-clamp-2 transition-colors hover:text-fg-default/80",children:t.title||"Untitled"})}),e.jsxs(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-2",children:["Updated ",fe(Number(t.updatedAt))]})]}),e.jsx(Ee,{button:e.jsx(Pe,{label:`Move ${t.title||"Untitled"}`,size:"sm"}),items:a.filter(p=>p.value!==s.value).map(p=>({name:`Move to ${p.label}`,onClick:()=>n(t,s.value,p.value)}))})]})})}function As({section:t,groupProperty:s,column:a,columns:l,index:n,scrollRootRef:m,movingNoteIds:x,onMove:o,pageCount:v,onPageCountChange:j}){const k=u.useRef(null),[p,F]=u.useState(n<4),{isOver:h,setNodeRef:c}=At({id:a.id,data:{optionValue:a.value}});u.useEffect(()=>{if(p||!k.current)return;if(typeof IntersectionObserver>"u"){F(!0);return}const N=new IntersectionObserver(O=>{O.some(A=>A.isIntersecting)&&(F(!0),N.disconnect())},{root:m.current,rootMargin:"0px 320px",threshold:.01});return N.observe(k.current),()=>N.disconnect()},[m,p]);const{data:g,isPending:D,isError:E,refetch:V,fetchNextPage:S,hasNextPage:z,isFetchingNextPage:y,isFetchNextPageError:w}=ms({queryKey:W.views.sectionBoardColumnPages(t.id,s.key,a.value,t.limit),enabled:p,initialPageParam:0,async queryFn({pageParam:N}){const O=await Ft(t.id,{optionValue:a.value,limit:t.limit,offset:N});if(O.type==="error")throw O;return O.viewSectionBoardColumn},getNextPageParam(N,O){return O.reduce((L,G)=>L+G.notes.length,0)<N.totalCount?O.length*t.limit:void 0}}),T=u.useMemo(()=>Array.from(new Map((g?.pages??[]).flatMap(N=>N.notes).map(N=>[N.id,N])).values()),[g?.pages]),M=g?.pages[0]?.totalCount;u.useEffect(()=>{!p||!g||g.pages.length>=v||!z||y||w||S()},[g,S,z,w,y,v,p]),u.useEffect(()=>{if(M===void 0)return;const N=Math.max(1,Math.ceil(M/t.limit));v>N&&j(N)},[j,v,t.limit,M]);const R=N=>{k.current=N,c(N)};return e.jsxs("section",{ref:R,"aria-label":`${a.label} column`,className:ee("flex min-h-[248px] w-[17rem] shrink-0 flex-col rounded-[18px] border bg-subtle/30 transition-[border-color,background-color] sm:w-[18rem]",h?"border-accent-primary/50 bg-accent-primary/6":"border-border-subtle"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border-subtle/75 px-3.5 py-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"size-2.5 shrink-0 rounded-full border border-black/5",style:{backgroundColor:a.color??"var(--color-fg-tertiary)"},"aria-hidden":"true"}),e.jsx(d,{as:"h3",variant:"label",weight:"semibold",className:"truncate",children:a.label})]}),e.jsx(d,{as:"span",variant:"meta",tone:"tertiary","aria-label":M===void 0?"Card count loading":`${M} cards`,className:"inline-flex min-w-6 justify-center rounded-full bg-elevated px-2 py-0.5 tabular-nums",children:M??"–"})]}),e.jsxs("div",{className:"flex flex-1 flex-col gap-2 p-2.5",children:[p?D&&!g?e.jsxs(e.Fragment,{children:[e.jsx(ce,{height:"76px",className:"rounded-[14px]"}),e.jsx(ce,{height:"76px",className:"rounded-[14px]"})]}):E?e.jsxs("div",{className:"rounded-[14px] border border-dashed border-border-subtle bg-elevated/60 p-3",children:[e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"Failed to load this column."}),e.jsx($,{type:"button",variant:"ghost",size:"sm",className:"mt-2",onClick:()=>{V()},children:"Retry"})]}):T.length===0?e.jsx("div",{className:"flex min-h-28 items-center justify-center rounded-[14px] border border-dashed border-border-subtle px-3 text-center",children:e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"Drop a note here"})}):T.map(N=>e.jsx(Ss,{note:N,column:a,columns:l,isMoving:x.has(N.id),onMove:o},N.id)):e.jsx("button",{type:"button",className:"focus-ring-soft flex min-h-28 items-center justify-center rounded-[14px] border border-dashed border-border-subtle px-3 text-sm text-fg-tertiary outline-none hover:bg-elevated",onClick:()=>F(!0),children:"Load cards"}),z?e.jsx($,{type:"button",variant:"ghost",size:"sm",className:"mt-auto w-full",disabled:y,onClick:()=>{w||j(v+1),S()},children:y?"Loading...":w?"Retry loading cards":`Load more (${Math.max(0,(M??0)-T.length)})`}):null]})]})}function Ps({section:t,groupProperty:s,navigationState:a={},onNavigationStateChange:l=()=>{}}){const n=ct(),m=ut(),x=u.useRef(null),[o,v]=u.useState(()=>new Set),j=u.useMemo(()=>Cs(s.options),[s.options]),k=ke(re(at,{activationConstraint:{distance:6}}),re(Te)),p=u.useCallback(async(h,c,g)=>{if(c===g||o.has(h.id))return;v(V=>new Set(V).add(h.id));const D=W.views.sectionBoardAll(t.id),E=n.getQueriesData({queryKey:D});for(const[V,S]of E){if(!S||!Array.isArray(S.pages))continue;const z=V[3];if(z?.groupPropertyKey!==s.key)continue;const y=z.optionValue===c,w=z.optionValue===g,T=z.pageSize??t.limit;let M=S.pages.flatMap(N=>N.notes).filter(N=>N.id!==h.id);w&&(M=[h,...M]);const R=Math.max(0,(S.pages[0]?.totalCount??0)-(y?1:0)+(w?1:0));n.setQueryData(V,{...S,pages:S.pages.map((N,O)=>({totalCount:R,notes:M.slice(O*T,(O+1)*T)}))})}try{const V=await es({id:h.id,expectedUpdatedAt:h.updatedAt,...g===null?{deleteKeys:[s.key]}:{set:[{key:s.key,name:s.name,value:g,valueType:"select"}]}});if(V.type==="error"){for(const[S,z]of E)n.setQueryData(S,z);m(V.errors[0]?.message??"Failed to move this note.");return}await Promise.all([Qt(n),n.invalidateQueries({queryKey:W.notes.propertyKeysAll(),exact:!1})])}catch{for(const[V,S]of E)n.setQueryData(V,S);m("Failed to move this note.")}finally{v(V=>{const S=new Set(V);return S.delete(h.id),S})}},[s.key,s.name,o,n,t.id,t.limit,m]),F=({active:h,over:c})=>{const g=h.data.current?.note,D=h.data.current?.sourceValue,E=c?.data.current?.optionValue;!g||D===void 0||E===void 0||p(g,D,E)};return e.jsx(Ce,{sensors:k,collisionDetection:Se,onDragEnd:F,children:e.jsx("div",{ref:x,"data-scroll-restoration-id":`view-board-${t.id}`,className:"overflow-x-auto overscroll-x-contain px-3 py-3.5 [scrollbar-gutter:stable] sm:px-4","aria-label":`Board grouped by ${s.name}`,children:e.jsx("div",{className:"flex min-w-max items-stretch gap-3 pb-1",children:j.map((h,c)=>e.jsx(As,{section:t,groupProperty:s,column:h,columns:j,index:c,scrollRootRef:x,movingNoteIds:o,pageCount:a.columns?.[h.id]??1,onPageCountChange:g=>l(D=>({...D,columns:{...D.columns,[h.id]:g}})),onMove:(g,D,E)=>{p(g,D,E)}},h.id))})})})}const Vs="group flex min-h-[72px] items-center justify-between gap-3 px-4 py-3 transition-colors hover:bg-hover-subtle",Es=t=>t.valueType==="select"?t.option?.label??t.value:t.valueType==="boolean"?t.value==="true"?"True":"False":t.value,Ds=t=>{const s=t.tags.slice(0,2),a=t.tags.length-s.length;return s.length===0?null:e.jsxs(e.Fragment,{children:[s.map(l=>e.jsx(Q,{size:"compact",className:"max-w-[116px] shrink-0 border-border-subtle bg-transparent text-fg-secondary",children:l.name},l.id)),a>0&&e.jsxs(Q,{size:"compact",className:"shrink-0 border-border-subtle bg-subtle text-fg-tertiary",children:["+",a]})]})},Fs=t=>{const s=t.properties??[],a=s.slice(0,2),l=s.length-a.length;return a.length===0?null:e.jsxs(e.Fragment,{children:[a.map(n=>e.jsxs(Q,{size:"compact",truncateContent:!1,className:"max-w-[220px] gap-1.5 border-border-subtle bg-subtle/55 text-fg-secondary",children:[n.valueType==="select"?e.jsx("span",{className:"size-2 shrink-0 rounded-full border border-black/5",style:{backgroundColor:n.option?.color??"var(--color-fg-tertiary)"},"aria-hidden":"true"}):null,e.jsx("span",{className:"max-w-[72px] shrink truncate text-fg-tertiary",children:n.name}),e.jsx("span",{className:"min-w-0 truncate",children:Es(n)||"—"})]},n.key)),l>0?e.jsxs(Q,{size:"compact",className:"shrink-0 border-border-subtle bg-subtle text-fg-tertiary",children:["+",l," properties"]}):null]})};function Ms({notes:t,isPending:s,isError:a,onRetry:l}){return s?e.jsxs("div",{className:"overflow-hidden bg-transparent",children:[e.jsx("div",{className:"h-[72px] animate-pulse bg-subtle/35"}),e.jsx("div",{className:"h-[72px] animate-pulse border-t border-border-subtle/70 bg-subtle/35"}),e.jsx("div",{className:"h-[72px] animate-pulse border-t border-border-subtle/70 bg-subtle/35"})]}):a?e.jsxs("div",{className:"rounded-[16px] border border-border-subtle bg-subtle/30 p-4",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"Failed to load this section"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Retry to refresh this saved query."}),e.jsx("div",{className:"mt-3",children:e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:l,children:"Retry"})})]}):t.length===0?e.jsxs("div",{className:"rounded-[16px] border border-dashed border-border-subtle px-4 py-5",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"No notes match yet"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Add matching notes, or edit this view query."})]}):e.jsx("div",{className:"divide-y divide-border-subtle/70 bg-transparent",children:t.map(n=>e.jsxs(Ve,{to:De,params:{id:n.id},className:Vs,children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[n.pinned?e.jsx(ot,{className:"size-3.5 shrink-0 text-fg-tertiary",weight:"fill","aria-label":"Pinned"}):null,e.jsx(d,{as:"div",variant:"body",weight:"semibold",tracking:"tight",className:"line-clamp-1",children:n.title||"Untitled"})]}),e.jsxs("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5",children:[Fs(n),Ds(n),e.jsxs(d,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"sm:hidden",children:["Updated ",fe(Number(n.updatedAt))]})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2 pl-2",children:[e.jsx(d,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"hidden sm:inline",children:fe(Number(n.updatedAt))}),e.jsx(ds,{className:"size-4 text-fg-tertiary transition-transform group-hover:translate-x-0.5"})]})]},n.id))})}const zs={title:300,tags:200,createdAt:148,updatedAt:148},Rs={title:"title",createdAt:"createdAt",updatedAt:"updatedAt"},Os="flex h-[24px] min-w-0 max-w-full items-center gap-1.5 overflow-hidden whitespace-nowrap",wt="text-xs leading-5 text-fg-tertiary",Is=t=>mt(Number(t)).format("MMM D, YYYY"),Bs=t=>t==="text"||t==="url"?220:t==="date"?168:156,Nt=t=>t.kind==="property"?Bs(t.valueType):zs[t.key],$s=(t,s,a)=>{const l=new Map(a.map(o=>[o.key,o])),n=new Map(s.flatMap(o=>o.properties??[]).map(o=>[o.key,o])),m=Fe(t.displayOptions.tablePropertyKeys),x=Array.from(new Set([...t.propertyFilters.map(o=>o.key),...s.flatMap(o=>(o.properties??[]).map(v=>v.key))])).slice(0,3);return(m.length>0?m:x).flatMap(o=>{const v=l.get(o),j=n.get(o);return!v&&!j?[]:[{kind:"property",key:o,name:v?.name??j?.name??o,valueType:v?.valueType??j?.valueType??"text"}]})},Ls=(t,s,a)=>{const l=$s(t,s,a);return pe(t.displayOptions.tableColumns).reduce((n,m)=>(m==="properties"?n.push(...l):n.push({kind:"base",key:m}),n),[])},Ks=t=>t.reduce((s,a)=>s+Nt(a),0),_s=t=>{if(t.tags.length===0)return e.jsx("span",{className:wt,children:"—"});const s=t.tags.slice(0,3),a=t.tags.length-s.length;return e.jsxs("div",{className:Os,children:[s.map(l=>e.jsx(Q,{size:"compact",className:"max-w-[132px] shrink-0 border-border-subtle bg-transparent text-fg-secondary",children:l.name},l.id)),a>0?e.jsxs(Q,{size:"compact",className:"shrink-0 border-border-subtle bg-subtle text-fg-tertiary",children:["+",a]}):null]})},qs=t=>{if(!t)return e.jsx("span",{className:wt,children:"—"});if(t.valueType==="select")return e.jsx(Q,{size:"compact",className:"max-w-full border-border-subtle bg-subtle/65 text-fg-secondary",truncateContent:!1,children:e.jsxs("span",{className:"inline-flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"size-2 shrink-0 rounded-full border border-black/5",style:{backgroundColor:t.option?.color??"var(--color-fg-tertiary)"},"aria-hidden":"true"}),e.jsx("span",{className:"min-w-0 truncate",children:t.option?.label??t.value})]})});if(t.valueType==="boolean"){const s=t.value==="true",a=s?cs:hs;return e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-sm text-fg-secondary",children:[e.jsx(a,{className:"size-3.5 text-fg-tertiary",weight:s?"fill":"regular"}),s?"True":"False"]})}return e.jsx("span",{className:ee("block truncate text-sm text-fg-secondary",t.valueType==="number"&&"tabular-nums"),title:t.value,children:t.value||"—"})};function Ws({section:t,notes:s,isPending:a,isError:l,onRetry:n,onSortChange:m,isSortPending:x,activeSortBy:o=t.sortBy,activeSortOrder:v=t.sortOrder,availableProperties:j=[],surface:k="flush"}){const p=Ls(t,s,j),F=Ks(p),h=k==="card"?"overflow-x-auto rounded-[16px] border border-border-subtle bg-elevated":"overflow-x-auto bg-transparent",c=k==="card"?"overflow-hidden rounded-[16px] border border-border-subtle bg-elevated":"overflow-hidden bg-transparent",g=k==="card"?"bg-elevated":"bg-transparent",D=k==="card"?"bg-subtle/65":"bg-subtle/45",E=k==="card"?"bg-elevated":"bg-transparent",V=k==="card"?"var(--elevated)":"var(--surface)",S=y=>{if(y.kind==="property")return e.jsxs("th",{className:"px-3 py-2 text-left",children:[e.jsx(d,{as:"p",variant:"label",weight:"semibold",className:"truncate",title:y.name,children:y.name}),e.jsx(d,{as:"p",variant:"micro",tone:"tertiary",className:"mt-0.5 capitalize",children:y.valueType})]},`property:${y.key}`);const w=Rs[y.key],T=ft(y.key),M=w?o===w:!1,R=y.key==="title";return e.jsx("th",{"aria-sort":M?v==="asc"?"ascending":"descending":void 0,className:ee("px-3 py-2.5 text-xs font-semibold text-fg-tertiary",R&&"lg:sticky lg:left-0 lg:z-20"),style:R?{background:`linear-gradient(var(--subtle), var(--subtle)), ${V}`}:void 0,children:w?e.jsxs("button",{type:"button",className:"focus-ring-soft -ml-1 inline-flex items-center gap-1 rounded-[8px] px-1 py-0.5 outline-none transition-colors hover:bg-hover-subtle hover:text-fg-secondary disabled:cursor-wait disabled:opacity-60",disabled:x,onClick:()=>m(w),children:[e.jsx("span",{children:T}),e.jsx("span",{"aria-hidden":"true",className:"text-[10px] text-fg-tertiary",children:M?v==="asc"?"↑":"↓":"↕"})]}):T},y.key)},z=(y,w)=>{if(w.kind==="property")return e.jsx("td",{className:"overflow-hidden px-3 py-2.5 align-middle transition-colors group-hover:bg-hover-subtle",children:qs(y.properties?.find(T=>T.key===w.key))},`property:${w.key}`);switch(w.key){case"tags":return e.jsx("td",{className:"overflow-hidden px-3 py-2.5 align-middle transition-colors group-hover:bg-hover-subtle",children:_s(y)},w.key);case"createdAt":case"updatedAt":{const T=w.key==="createdAt"?y.createdAt:y.updatedAt;return e.jsx("td",{className:"whitespace-nowrap px-3 py-2.5 align-middle transition-colors group-hover:bg-hover-subtle",children:e.jsx(d,{as:"span",variant:"meta",tone:"tertiary",title:mt(Number(T)).format("MMM D, YYYY h:mm A"),children:Is(T)})},w.key)}default:return e.jsxs("td",{className:"relative px-3 py-2.5 align-middle lg:sticky lg:left-0 lg:z-10",style:{background:V},children:[e.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 bg-hover-subtle opacity-0 transition-opacity group-hover:opacity-100"}),e.jsxs("div",{className:"relative z-10 flex min-w-0 items-center gap-2",children:[y.pinned?e.jsx(ot,{className:"size-3.5 shrink-0 text-fg-tertiary",weight:"fill","aria-label":"Pinned"}):null,e.jsx(d,{as:"div",variant:"body",weight:"semibold",className:"min-w-0 line-clamp-1",children:e.jsx(Ve,{to:De,params:{id:y.id},className:"focus-ring-soft rounded-[6px] outline-none transition-colors hover:text-fg-default/80",children:y.title||"Untitled"})})]})]},w.key)}};return a?e.jsxs("div",{className:c,children:[e.jsx("div",{className:"h-11 animate-pulse bg-subtle/50"}),e.jsx("div",{className:`h-14 animate-pulse border-t border-border-subtle ${g}`}),e.jsx("div",{className:`h-14 animate-pulse border-t border-border-subtle ${g}`}),e.jsx("div",{className:`h-14 animate-pulse border-t border-border-subtle ${g}`})]}):l?e.jsxs("div",{className:"rounded-[16px] border border-border-subtle bg-subtle/30 p-4",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"Failed to load this table"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Retry to refresh this saved query."}),e.jsx("div",{className:"mt-3",children:e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:n,children:"Retry"})})]}):s.length===0?e.jsxs("div",{className:"rounded-[16px] border border-dashed border-border-subtle px-4 py-5",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"No rows yet"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Add matching notes, or edit this view query."})]}):e.jsx("div",{className:h,"data-scroll-restoration-id":`view-table-${t.id}`,"aria-label":"Scrollable view table",children:e.jsxs("table",{className:"w-full table-fixed border-collapse text-left",style:{minWidth:F},children:[e.jsx("caption",{className:"sr-only",children:"View query results as a table"}),e.jsx("colgroup",{children:p.map(y=>e.jsx("col",{style:{width:`${Nt(y)/F*100}%`}},y.kind==="property"?`property:${y.key}`:y.key))}),e.jsx("thead",{className:D,children:e.jsx("tr",{className:"border-b border-border-subtle",children:p.map(S)})}),e.jsx("tbody",{className:E,children:s.map(y=>e.jsx("tr",{className:"group h-12 border-b border-border-subtle/70 last:border-b-0",children:p.map(w=>z(y,w))},y.id))})]})})}function Us({onEdit:t}){return e.jsxs("div",{className:"rounded-[16px] border border-dashed border-border-subtle bg-subtle/40 px-4 py-5",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"This display type is unavailable"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Switch this section to List, Table, or Board to show the saved query here."}),e.jsx("div",{className:"mt-3",children:e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:t,children:"Change display"})})]})}function Qs({section:t,notes:s,isPending:a,isError:l,onRetry:n,onEdit:m,onSortChange:x,isSortPending:o,activeSortBy:v=t.sortBy,activeSortOrder:j=t.sortOrder,availableProperties:k=[],isPropertiesLoading:p=!1,navigationState:F={},onNavigationStateChange:h=()=>{}}){if(t.displayType==="board"){const c=k.find(g=>g.key===t.displayOptions.boardGroupByPropertyKey&&g.valueType==="select");return!c&&p?e.jsxs("div",{className:"flex gap-3 overflow-hidden px-4 py-3.5",children:[e.jsx("div",{className:"h-[248px] w-[18rem] shrink-0 animate-pulse rounded-[18px] bg-subtle/50"}),e.jsx("div",{className:"h-[248px] w-[18rem] shrink-0 animate-pulse rounded-[18px] bg-subtle/50"}),e.jsx("div",{className:"h-[248px] w-[18rem] shrink-0 animate-pulse rounded-[18px] bg-subtle/50"})]}):!c||c.options.length===0?e.jsxs("div",{className:"m-4 rounded-[16px] border border-dashed border-border-subtle bg-subtle/40 px-4 py-5",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"Board grouping is unavailable"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Choose an existing select property with options to restore this board."}),e.jsx("div",{className:"mt-3",children:e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:m,children:"Edit board"})})]}):e.jsx(Ps,{section:t,groupProperty:c,navigationState:F,onNavigationStateChange:h})}return t.displayType==="table"?e.jsx(Ws,{section:t,notes:s,isPending:a,isError:l,onRetry:n,onSortChange:x,isSortPending:o,activeSortBy:v,activeSortOrder:j,availableProperties:k}):t.displayType==="calendar"?e.jsx(Us,{onEdit:m}):e.jsx(Ms,{notes:s,isPending:a,isError:l,onRetry:n})}function Gs({section:t,onEdit:s,onDuplicate:a,onDelete:l,onMoveUp:n,onMoveDown:m,dragHandle:x,availableProperties:o=[],isPropertiesLoading:v=!1,navigationState:j={},onNavigationStateChange:k=()=>{}}){const p=t.displayType==="board",F=j.page??1,h=(F-1)*t.limit,c=j.sort?.by??t.sortBy,g=j.sort?.order??t.sortOrder,{data:D,isPending:E,isError:V,isPlaceholderData:S,refetch:z}=ue({queryKey:W.views.sectionNotes(t.id,{limit:t.limit,offset:h,sortBy:c,sortOrder:g}),enabled:!p,placeholderData:ts,async queryFn(){const A=await Mt(t.id,{limit:t.limit,offset:h,sortBy:c,sortOrder:g});if(A.type==="error")throw A;return A.viewSectionNotes}}),y=D?.notes??[],w=D?.totalCount??0,T=Math.max(1,Math.ceil(w/t.limit)),M=js(t.mode),R=t.tagNames.length>0||t.propertyFilters.length>0,N=p?o.find(A=>A.key===t.displayOptions.boardGroupByPropertyKey):null,O=A=>{const L=c===A?g==="asc"?"desc":"asc":A==="title"?"asc":"desc";k(G=>({...G,page:1,sort:{by:A,order:L}}))};return u.useEffect(()=>{p||E||V||S||!D||F<=T||k(A=>({...A,page:T}))},[D,p,V,E,S,T,k,F]),e.jsxs(je,{flush:!0,className:"flex h-full flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-border-subtle/75 px-4 py-3.5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[x&&e.jsx("div",{className:"-mr-1 shrink-0 self-center",children:x}),e.jsx("div",{className:"min-w-0",children:e.jsx(d,{as:"h2",variant:"subheading",weight:"semibold",tracking:"tight",className:"min-w-0",children:e.jsx("span",{className:"truncate",children:t.title})})})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[e.jsx(Q,{className:"max-w-full border-border-subtle/80 bg-elevated text-fg-secondary",children:ws(t.displayType)}),p&&t.displayOptions.boardGroupByPropertyKey?e.jsxs(Q,{className:"max-w-full border-border-subtle/80 bg-subtle text-fg-secondary",children:["Grouped by ",N?.name??t.displayOptions.boardGroupByPropertyKey]}):null,t.tagNames.map((A,L)=>e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[L>0&&e.jsx("span",{className:"px-0.5 text-[10px] font-semibold tracking-[0.08em] text-fg-tertiary/85",children:M}),e.jsx(Q,{className:"max-w-full border-border-subtle/80 bg-transparent text-fg-secondary",children:A})]},A)),t.propertyFilters.map(A=>e.jsx(Q,{className:"max-w-full border-border-subtle/80 bg-subtle text-fg-secondary",children:Ns(A)},`${A.key}-${A.operator}-${A.value??""}`)),!R&&e.jsx(Q,{className:"max-w-full border-border-subtle/80 bg-transparent text-fg-tertiary",children:"All notes"})]})]}),e.jsx(Ee,{button:e.jsx(Pe,{label:"Section actions"}),items:[...n?[{name:"Move up",onClick:n}]:[],...m?[{name:"Move down",onClick:m}]:[],...n||m?[{type:"separator"}]:[],{name:"Edit section",onClick:s},{name:"Duplicate section",onClick:a},{type:"separator"},{name:"Delete section",onClick:l}]})]}),e.jsx("div",{className:"flex flex-1 flex-col",children:e.jsx(Qs,{section:t,notes:y,isPending:E,isError:V,onRetry:()=>{z()},onEdit:s,onSortChange:O,isSortPending:S,activeSortBy:c,activeSortOrder:g,availableProperties:o,isPropertiesLoading:v,navigationState:j,onNavigationStateChange:k})}),e.jsxs("div",{className:"flex flex-col gap-3 border-t border-border-subtle/75 px-4 py-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:p?`${t.limit} cards per column load`:E||S?"Loading notes...":w===0?"No matching notes":`Showing ${h+1}–${Math.min(h+y.length,w)} of ${w} notes`}),!p&&T>1?e.jsx(ss,{page:Math.min(F,T),last:T,className:"!mt-0 shrink-0 sm:justify-end",onChange:A=>k(L=>({...L,page:A}))}):null]})]})}const xe="__choose_property__",ge="__choose_board_group__",Ys=["title","tags","properties","createdAt","updatedAt"],_e=t=>String(t?.limit??5),qe=t=>t?.displayType==="table"||t?.displayType==="board"?t.displayType:"list",We=t=>pe(t?.displayOptions?.tableColumns??Ne),Ue=t=>Fe(t?.displayOptions?.tablePropertyKeys),Qe=t=>t?.displayOptions?.boardGroupByPropertyKey??"",Ge=t=>t?.mode??"and",Ye=t=>t?t.tagNames.join(", "):"",Ze=t=>t?.title??"",He=t=>t?.sortBy??"updatedAt",Je=t=>t?.sortOrder??"desc",kt=t=>`property-filter-${Date.now()}-${t}`,Xe=t=>(t?.propertyFilters??[]).map((s,a)=>({id:kt(a),key:s.key,operator:s.operator,value:s.value??""})),et=t=>t?t.valueType==="date"||t.valueType==="number"?["equals","notEquals","before","after","exists","notExists"]:t.valueType==="text"||t.valueType==="url"?["equals","notEquals","contains","notContains","exists","notExists"]:["equals","notEquals","exists","notExists"]:["exists","notExists"],tt=t=>t?"equals":"exists",Zs=t=>t?t.valueType==="boolean"?"true":t.valueType==="select"?t.options[0]?.value??"":"":"",ye=t=>t!=="exists"&&t!=="notExists",Tt=t=>t==="contains"||t==="notContains",Hs=(t,s)=>t.valueType==="date"?"date":t.valueType==="number"?"number":t.valueType==="url"&&!Tt(s)?"url":"text",Js=(t,s)=>{if(t.valueType==="url")return Tt(s)?"example.com":"https://example.com";if(t.valueType==="text")return"Value"};function Xs({open:t,mode:s,initialSection:a=null,availableTags:l,availableProperties:n,isTagsLoading:m=!1,isPropertiesLoading:x=!1,onClose:o,onSubmit:v}){const[j,k]=u.useState(Ze(a)),[p,F]=u.useState(qe(a)),[h,c]=u.useState(We(a)),[g,D]=u.useState(Ue(a)),[E,V]=u.useState(Qe(a)),[S,z]=u.useState(Ye(a)),[y,w]=u.useState(Ge(a)),[T,M]=u.useState(He(a)),[R,N]=u.useState(Je(a)),[O,A]=u.useState(_e(a)),[L,G]=u.useState(Xe(a)),[he,te]=u.useState((a?.tagNames.length??0)>0),[ne,I]=u.useState(""),X=u.useMemo(()=>new Map(n.map(r=>[r.key,r])),[n]);u.useEffect(()=>{t&&(k(Ze(a)),F(qe(a)),c(We(a)),D(Ue(a)),V(Qe(a)),z(Ye(a)),w(Ge(a)),M(He(a)),N(Je(a)),A(_e(a)),G(Xe(a)),te((a?.tagNames.length??0)>0),I(""))},[a,t]);const Y=Le([S]),se=he||Y.length>0,be=Y.length===0&&L.length===0,ae=n.filter(r=>r.valueType==="select"&&r.options.length>0),i=r=>{r!=="title"&&(c(f=>{if(f.includes(r)){const _=f.filter(C=>C!==r);return _.length>0?_:f}return pe([...f,r])}),I(""))},b=r=>{D(f=>f.includes(r)?f.filter(_=>_!==r):f.length>=me?f:[...f,r])},P=r=>{const f=Y.includes(r)?Y.filter(_=>_!==r):[...Y,r];z(f.join(", ")),I("")},K=()=>{te(!0),I("")},ie=()=>{z(""),w("and"),te(!1),I("")},Ct=()=>{if(n.length===0){I("Create a shared property before adding a filter.");return}G(r=>[...r,{id:kt(r.length),key:"",operator:"exists",value:""}]),I("")},le=(r,f)=>{G(_=>_.map(C=>{if(C.id!==r)return C;const Z={...C,...f},oe=X.get(Z.key);return et(oe).includes(Z.operator)||(Z.operator=tt(oe)),"key"in f&&(Z.value=Zs(oe),Z.operator=tt(oe)),Z})),I("")},St=r=>{G(f=>f.filter(_=>_.id!==r)),I("")};return e.jsxs(J,{isOpen:t,onClose:o,variant:"form",className:"sm:max-w-[720px]",children:[e.jsx(J.Header,{title:s==="create"?"Create section":"Edit section",onClose:o}),e.jsx(J.Body,{children:e.jsxs("form",{id:"view-section-form",className:"flex flex-col gap-5",onSubmit:r=>{r.preventDefault();const f=Le([S]);if(se&&f.length===0){I("Choose at least one tag, or remove this tag filter.");return}if(L.find(q=>!q.key||!X.has(q.key))){I("Choose a property for every filter.");return}const C=X.get(E);if(p==="board"&&(!C||C.valueType!=="select"||C.options.length===0)){I("Choose a select property with at least one option for the board columns.");return}if(p==="board"&&L.some(q=>q.key===E)){I("Use different properties for the board columns and the section filter.");return}const Z=L.map(q=>{const Me=X.get(q.key);return{key:Me?.key??q.key,valueType:Me?.valueType??"text",operator:q.operator,value:ye(q.operator)?q.value:null}});if(Z.some(q=>ye(q.operator)&&!q.value?.trim())){I("Fill every filter value, or switch it to is set / is empty.");return}v({title:j,displayType:p,displayOptions:vt({tableColumns:h,tablePropertyKeys:g,boardGroupByPropertyKey:E}),tagNames:f,mode:y,propertyFilters:Z,sortBy:T,sortOrder:R,limit:Number(O)})},children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{htmlFor:"view-section-title",size:"md",children:"Section name"}),e.jsx(ve,{id:"view-section-title",value:j,onChange:r=>k(r.target.value),placeholder:"Doing notes",autoFocus:!0})]}),e.jsxs("section",{className:"flex flex-col gap-3 border-b border-border-subtle pb-5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(U,{size:"md",children:"Display"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Show the same note set as a list, table, or property board."})]}),e.jsxs(Ie,{type:"single",value:p,onValueChange:r=>{(r==="list"||r==="table"||r==="board")&&(F(r),r==="board"&&!ae.some(f=>f.key===E)&&V(ae[0]?.key??""),I(""))},variant:"quiet",size:"sm",className:"self-start",children:[e.jsx(de,{value:"list","aria-label":"Show as list",children:"List"}),e.jsx(de,{value:"table","aria-label":"Show as table",children:"Table"}),e.jsx(de,{value:"board","aria-label":"Show as board",children:"Board"})]}),p==="table"?e.jsxs("div",{className:"border-t border-border-subtle/80 pt-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx(U,{size:"sm",children:"Table columns"}),e.jsx(d,{as:"span",variant:"meta",tone:"tertiary",children:h.includes("properties")&&g.length===0?"Properties automatic":`${h.length-(h.includes("properties")?1:0)+(h.includes("properties")?g.length:0)} shown`})]}),e.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:Ys.map(r=>{const f=ft(r);return e.jsxs("div",{className:"flex items-center gap-2 px-1 py-2",children:[e.jsx(Be,{size:"sm",checked:h.includes(r),disabled:r==="title","aria-label":`Show ${f} column`,onChange:()=>i(r)}),e.jsx(d,{as:"span",variant:"label",tone:"secondary",children:f})]},r)})}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-2",children:"Title is always shown because it opens the note."}),h.includes("properties")?e.jsxs("div",{className:"mt-3 border-t border-border-subtle/80 pt-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx(d,{as:"p",variant:"label",weight:"semibold",children:"Property columns"}),e.jsxs(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-0.5",children:["Select up to ",me," properties to compare."]})]}),e.jsx(d,{as:"span",variant:"meta",tone:"tertiary",children:g.length>0?`${g.length} selected`:"Automatic"})]}),n.length>0?e.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:n.map(r=>{const f=g.includes(r.key),_=g.length>=me;return e.jsxs("div",{className:"flex min-w-0 items-center gap-2 px-1 py-2",children:[e.jsx(Be,{size:"sm",checked:f,disabled:!f&&_,"aria-label":`Show ${r.name} property column`,onChange:()=>b(r.key)}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(d,{as:"p",variant:"label",tone:"secondary",truncate:!0,children:r.name}),e.jsx(d,{as:"p",variant:"micro",tone:"tertiary",children:r.valueType})]})]},r.key)})}):e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-3",children:"Shared properties will appear here after you create them."}),g.length===0&&n.length>0?e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-2",children:"Automatic mode shows up to three properties relevant to the current notes."}):null]}):null]}):null,p==="board"?e.jsx("div",{className:"border-t border-border-subtle/80 pt-3",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{id:"view-section-board-group-label",htmlFor:"view-section-board-group",size:"sm",children:"Board columns"}),e.jsxs(H,{id:"view-section-board-group",value:E||ge,"aria-labelledby":"view-section-board-group-label",className:"w-full",onValueChange:r=>{r!==ge&&(V(r),I(""))},children:[e.jsx(B,{value:ge,disabled:!0,children:"Choose a select property"}),ae.map(r=>e.jsxs(B,{value:r.key,children:[r.name," · ",r.options.length," columns"]},r.key))]}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"Moving a card changes this property. Notes without a value stay in Unassigned."}),ae.length===0&&!x?e.jsx(d,{as:"p",variant:"meta",className:"text-fg-error",children:"Create a shared select property with options before using a board."}):null]})}):null]}),e.jsxs("section",{className:"flex flex-col gap-3 border-b border-border-subtle pb-5",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(U,{size:"md",children:"Filters"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Use properties for structured fields, and tags for loose topics or context."})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx($,{type:"button",variant:"subtle",size:"sm",onClick:Ct,children:"Add property filter"}),!se&&e.jsx($,{type:"button",variant:"subtle",size:"sm",onClick:K,children:"Add tag filter"})]})]}),L.length===0&&!se?e.jsxs("div",{className:"rounded-[16px] border border-dashed border-border-subtle bg-elevated/60 px-4 py-3",children:[e.jsx(d,{as:"p",variant:"label",tone:"default",children:be?"All notes":"No filters"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Add a property filter, a tag filter, or leave this view open to all notes."})]}):null,L.length>0?e.jsx("div",{className:"flex flex-col gap-2.5",children:L.map(r=>{const f=X.get(r.key),_=et(f);return e.jsxs("div",{className:"grid gap-2 rounded-[16px] border border-border-subtle bg-elevated p-3 md:grid-cols-[minmax(0,1fr)_minmax(10.5rem,12rem)_minmax(0,1fr)_auto] md:items-center",children:[e.jsxs(H,{value:r.key||xe,ariaLabel:"Property filter property",className:"w-full min-w-0",onValueChange:C=>{C!==xe&&le(r.id,{key:C})},children:[e.jsx(B,{value:xe,disabled:!0,children:"Choose property"}),n.map(C=>e.jsx(B,{value:C.key,children:C.name},C.key))]}),e.jsx(H,{value:r.operator,disabled:!f,ariaLabel:"Property filter operator",className:"w-full min-w-0",onValueChange:C=>le(r.id,{operator:C}),children:_.map(C=>e.jsx(B,{value:C,children:yt(C)},C))}),ye(r.operator)&&f?f.valueType==="select"?e.jsx(H,{value:r.value,ariaLabel:"Property filter value",className:"w-full min-w-0",onValueChange:C=>le(r.id,{value:C}),children:f.options.map(C=>e.jsx(B,{value:C.value,children:C.label},C.value))}):f.valueType==="boolean"?e.jsxs(H,{value:r.value||"true",ariaLabel:"Property filter value",className:"w-full min-w-0",onValueChange:C=>le(r.id,{value:C}),children:[e.jsx(B,{value:"true",children:"True"}),e.jsx(B,{value:"false",children:"False"})]}):e.jsx(ve,{type:Hs(f,r.operator),value:r.value,onChange:C=>le(r.id,{value:C.target.value}),placeholder:Js(f,r.operator),"aria-label":"Property filter value"}):e.jsx(d,{as:"span",variant:"label",tone:"tertiary",children:f?"No value needed":"Choose a property first"}),e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:()=>St(r.id),children:"Remove"})]},r.id)})}):null,se?e.jsxs("div",{className:"flex flex-col gap-3 rounded-[16px] border border-border-subtle bg-elevated p-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(d,{as:"p",variant:"label",tone:"default",children:"Tag filter"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Match notes by selected tags."})]}),e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:ie,children:"Remove"})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{htmlFor:"view-section-tags",size:"sm",children:"Tag names"}),e.jsx(as,{id:"view-section-tags",value:S,onChange:r=>{z(r.target.value),I("")},placeholder:"@OceanBrain, @todo",size:"sm"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"You can use tags only, properties only, both together, or no filters."})]}),Y.length>1?e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{size:"sm",children:"Tag match"}),e.jsxs(Ie,{type:"single",value:y,onValueChange:r=>{(r==="and"||r==="or")&&w(r)},variant:"quiet",size:"sm",className:"self-start",children:[e.jsx(de,{value:"and","aria-label":Ke("and"),children:"AND"}),e.jsx(de,{value:"or","aria-label":Ke("or"),children:"OR"})]}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"AND requires every selected tag. OR accepts any selected tag."})]}):null,e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(U,{size:"sm",children:"Existing tags"}),e.jsx(d,{as:"span",variant:"meta",tone:"tertiary",children:m?"Loading...":`${l.length} available`})]}),l.length>0?e.jsx("div",{className:"max-h-44 overflow-y-auto rounded-[16px] border border-border-subtle bg-hover-subtle/60 p-3",children:e.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(r=>{const f=Y.includes(r.name);return e.jsx("button",{type:"button",className:`inline-flex items-center rounded-full border px-3 py-1.5 text-sm font-medium transition-colors ${f?"border-border-secondary bg-elevated text-fg-default":"border-border-subtle bg-transparent text-fg-secondary hover:border-border-secondary hover:bg-elevated hover:text-fg-default"}`,"aria-pressed":f,onClick:()=>P(r.name),children:r.name},r.id)})})}):e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"No tags yet. You can still type tag names manually."})]}):null,e.jsx(d,{as:"p",variant:"meta",tone:ne?"default":"tertiary",className:ne?"text-fg-error":void 0,children:ne||(x||m?"Loading filter options...":`${n.length} properties · ${l.length} tags available`)})]}),e.jsxs("details",{className:"group pb-1",children:[e.jsx("summary",{className:"cursor-pointer list-none",children:e.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1",children:[e.jsx(d,{as:"span",variant:"label",tone:"default",children:"Sort and page size"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"col-start-1 row-start-2",children:p==="board"?"Controls how many cards each board column loads at a time.":"Controls how many matching notes appear on each section page."}),e.jsx(d,{as:"span",variant:"meta",tone:"tertiary",className:"col-start-2 row-span-2 row-start-1 whitespace-nowrap",children:p==="board"?`${O} per column`:`${O} notes`})]})}),e.jsxs("div",{className:"mt-4 grid gap-4 md:grid-cols-3",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{id:"view-section-sort-by-label",htmlFor:"view-section-sort-by",size:"sm",children:"Sort by"}),e.jsxs(H,{id:"view-section-sort-by",value:T,"aria-labelledby":"view-section-sort-by-label",onValueChange:r=>M(r),children:[e.jsx(B,{value:"updatedAt",children:"Updated time"}),e.jsx(B,{value:"createdAt",children:"Created time"}),e.jsx(B,{value:"title",children:"Title"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{id:"view-section-sort-order-label",htmlFor:"view-section-sort-order",size:"sm",children:"Order"}),e.jsxs(H,{id:"view-section-sort-order",value:R,"aria-labelledby":"view-section-sort-order-label",onValueChange:r=>N(r),children:[e.jsx(B,{value:"desc",children:"Descending"}),e.jsx(B,{value:"asc",children:"Ascending"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{id:"view-section-limit-label",htmlFor:"view-section-limit",size:"sm",children:p==="board"?"Cards per load":"Rows per page"}),e.jsxs(H,{id:"view-section-limit",value:O,"aria-labelledby":"view-section-limit-label",onValueChange:A,children:[e.jsxs(B,{value:"3",children:["3 ",p==="board"?"cards":"rows"]}),e.jsxs(B,{value:"5",children:["5 ",p==="board"?"cards":"rows"]}),e.jsxs(B,{value:"8",children:["8 ",p==="board"?"cards":"rows"]}),e.jsxs(B,{value:"10",children:["10 ",p==="board"?"cards":"rows"]}),e.jsxs(B,{value:"12",children:["12 ",p==="board"?"cards":"rows"]})]})]})]})]})]})}),e.jsx(J.Footer,{children:e.jsxs(dt,{children:[e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:o,children:"Cancel"}),e.jsx($,{type:"submit",size:"sm",form:"view-section-form",children:s==="create"?"Create section":"Save section"})]})})]})}const ea="group flex h-10 max-w-[72vw] shrink-0 items-center rounded-[12px] border transition-[background-color,border-color,color,box-shadow] sm:max-w-[176px]",ta="focus-ring-soft inline-flex h-full min-w-0 flex-1 touch-pan-x items-center gap-1 rounded-[11px] px-3 text-[13px] font-medium outline-none transition-colors";function sa({tab:t,isActive:s,onSelect:a}){const{attributes:l,listeners:n,setNodeRef:m,setActivatorNodeRef:x,transform:o,transition:v,isDragging:j}=it({id:t.id});return e.jsx("div",{ref:m,style:{transform:Ae.Translate.toString(o),transition:v,opacity:j?.6:1},className:ee(ea,s?"border-border-secondary/80 bg-elevated text-fg-default shadow-[0_8px_18px_-18px_rgba(15,18,24,0.28)]":"border-transparent bg-transparent text-fg-secondary hover:border-border-subtle/80 hover:bg-hover-subtle hover:text-fg-default"),children:e.jsxs("button",{type:"button",ref:x,...l,...n,role:"tab","aria-selected":s,title:`${t.title}. Drag to reorder.`,className:ee(ta,s?"text-fg-default":"text-fg-secondary group-hover:text-fg-default",j?"cursor-grabbing":"cursor-pointer"),onClick:a,children:[e.jsx("span",{className:"min-w-0 flex-1 truncate",children:t.title}),e.jsx("span",{className:"inline-flex min-w-4 shrink-0 items-center justify-center rounded-full bg-hover-subtle/75 px-1 py-0 text-[10px] leading-4 text-current/70",children:t.sections.length})]})})}function aa({tabs:t,activeTabId:s,onSelectTab:a,onReorderTabs:l,onCreateTab:n}){const m=ke(re(Vt,{activationConstraint:{distance:8}}),re(Te,{coordinateGetter:rt}));return e.jsx("div",{className:"-mx-1 rounded-[16px] border border-border-subtle/75 bg-subtle/50 p-1 sm:mx-0",children:e.jsx(Ce,{sensors:m,collisionDetection:Se,modifiers:[zt],autoScroll:!1,onDragEnd:x=>{l(x)},children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(nt,{items:t.map(x=>x.id),strategy:Et,children:e.jsx("div",{role:"tablist","aria-label":"Views tab list",className:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto overflow-y-hidden",children:t.map(x=>e.jsx(sa,{tab:x,isActive:x.id===s,onSelect:()=>{a(x)}},x.id))})}),e.jsxs($,{type:"button","aria-label":"New view tab",variant:"ghost",size:"sm",className:"h-10 w-10 shrink-0 rounded-[12px] border-transparent bg-transparent px-0 text-[13px] text-fg-secondary hover:border-border-subtle/80 hover:bg-hover-subtle hover:text-fg-default sm:w-auto sm:px-2.5",onClick:n,children:[e.jsx(we,{className:"h-5 w-5 shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:"New view tab"})]})]})})})}function ra({open:t,mode:s,initialTitle:a="",onClose:l,onSubmit:n}){const[m,x]=u.useState(a);return u.useEffect(()=>{t&&x(a)},[a,t]),e.jsxs(J,{isOpen:t,onClose:l,variant:"form",className:"sm:max-w-[480px]",children:[e.jsx(J.Header,{title:s==="create"?"Create view tab":"Rename view tab",onClose:l}),e.jsx(J.Body,{children:e.jsxs("form",{id:"view-tab-form",className:"flex flex-col gap-4",onSubmit:o=>{o.preventDefault(),n(m)},children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(U,{htmlFor:"view-tab-title",size:"md",children:"Tab name"}),e.jsx(ve,{id:"view-tab-title",value:m,onChange:o=>x(o.target.value),placeholder:"Now",autoFocus:!0})]}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",children:"Each tab is one saved view inside the Views page."})]})}),e.jsx(J.Footer,{children:e.jsxs(dt,{children:[e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:l,children:"Cancel"}),e.jsx($,{type:"submit",size:"sm",form:"view-tab-form",children:s==="create"?"Create tab":"Save tab"})]})})]})}const st=is(os),na="Save reusable note queries with tags, shared properties, and sorting.",ia="focus-ring-soft hidden h-8 w-8 items-center justify-center rounded-[10px] text-fg-default/70 outline-none transition-colors hover:bg-hover-subtle hover:text-fg-default sm:inline-flex touch-none",la=({section:t,availableProperties:s,isPropertiesLoading:a,onEdit:l,onDuplicate:n,onDelete:m,onMoveUp:x,onMoveDown:o,navigationState:v,onNavigationStateChange:j})=>{const{attributes:k,listeners:p,setNodeRef:F,setActivatorNodeRef:h,transform:c,transition:g,isDragging:D}=it({id:t.id}),E=u.useCallback(V=>j(t.id,V),[j,t.id]);return e.jsx("div",{ref:F,style:{transform:Ae.Translate.toString(c),transition:g,opacity:D?.6:1},children:e.jsx(Gs,{section:t,availableProperties:s,isPropertiesLoading:a,onEdit:l,onDuplicate:n,onDelete:m,onMoveUp:x,onMoveDown:o,navigationState:v,onNavigationStateChange:E,dragHandle:e.jsx("button",{type:"button",ref:h,"aria-label":`Reorder section ${t.title}`,...k,...p,className:ee(ia,D?"cursor-grabbing":"cursor-grab"),children:e.jsx(lt,{className:"size-4"})})})})};function ja(){const t=Gt(),s=ut(),a=ct(),l=st.useSearch(),n=st.useNavigate(),[m,x]=u.useState(null),[o,v]=u.useState(null),{data:j,isPending:k,isError:p,refetch:F}=ue({queryKey:W.views.workspace(),async queryFn(){const i=await Rt();if(i.type==="error")throw i;return i.viewWorkspace}}),h=j??bs,c=h.tabs.find(i=>i.id===l.tab)??gs(h),g=c?h.tabs.findIndex(i=>i.id===c.id):-1,{data:D,isPending:E}=ue({queryKey:W.tags.list({limit:200}),async queryFn(){const i=await ls({limit:200});if(i.type==="error")throw i;return i.allTags}}),V=ke(re(at,{activationConstraint:{distance:8}}),re(Te,{coordinateGetter:rt})),S=D?.tags??[],{data:z,isPending:y}=ue({queryKey:W.notes.propertyKeys({limit:100}),async queryFn(){const i=await rs({limit:100});if(i.type==="error")throw i;return i.notePropertyKeys}}),w=z?.keys??[],T=i=>{a.setQueryData(W.views.workspace(),i)},M=u.useCallback((i,b)=>{n({search:P=>({...P,state:Ot(P.state,i,b)}),replace:!0,resetScroll:!1})},[n]),R=async()=>{await a.invalidateQueries({queryKey:W.views.all(),exact:!1})},N=async(i,b)=>{T(b);const P=await Wt(b.tabs.map(K=>K.id));if(P.type==="error"){T(i),s(P.errors[0].message);return}await R()},O=async({active:i,over:b})=>{if(!b||i.id===b.id)return;const P=a.getQueryData(W.views.workspace())??h,K=xt(P,String(i.id),String(b.id));await N(P,K)},A=async i=>{if(!c)return;const b=a.getQueryData(W.views.workspace())??h,P=fs(b,c.id,i);P!==b&&await N(b,P)},L=async i=>{const b=a.getQueryData(W.views.workspace())??h,P=l,K=ys(b,i.id);T(K),await n({search:{tab:i.id,state:void 0},resetScroll:!1});const ie=await ze(i.id);if(ie.type==="error"){T(b),await n({search:P,replace:!0,resetScroll:!1}),s(ie.errors[0].message);return}T(ie.setActiveViewTab)},G=async(i,b)=>{if(!c)return;T(b);const P=await Ut(c.id,b.tabs.find(K=>K.id===c.id)?.sections.map(K=>K.id)??[]);if(P.type==="error"){T(i),s(P.errors[0].message);return}await R()},he=async({active:i,over:b})=>{if(!c||!b||i.id===b.id)return;const P=a.getQueryData(W.views.workspace())??h,K=gt(P,c.id,String(i.id),String(b.id));await G(P,K)},te=async(i,b)=>{if(!c)return;const P=a.getQueryData(W.views.workspace())??h,K=vs(P,c.id,i,b);K!==P&&await G(P,K)},ne=async i=>{const b=await $t(i);if(b.type==="error"){s(b.errors[0].message);return}const P=await ze(b.createViewTab.id);P.type==="success"?T(P.setActiveViewTab):s(P.errors[0].message),await R(),await n({search:{tab:b.createViewTab.id,state:void 0},resetScroll:!1}),x(null)},I=async i=>{if(!c)return;const b=await Lt(c.id,i);if(b.type==="error"){s(b.errors[0].message);return}await R(),x(null)},X=async()=>{if(!c||!await t("Delete this view tab and all of its sections?"))return;const i=await Kt(c.id);if(i.type==="error"){s(i.errors[0].message);return}await R(),await n({search:{tab:void 0,state:void 0},replace:!0,resetScroll:!1})},Y=async i=>{if(!c)return;const b=await Re(c.id,i);if(b.type==="error"){s(b.errors[0].message);return}await R(),v(null)},se=async i=>{if(!c||!o||o.mode!=="edit")return;const b=await _t(o.section.id,i);if(b.type==="error"){s(b.errors[0].message);return}M(o.section.id,{}),await R(),v(null)},be=async i=>{const b=await Re(i.tabId,{...ks(i),title:`${i.title} copy`});if(b.type==="error"){s(b.errors[0].message);return}await R(),s("Section duplicated.")},ae=async i=>{if(!c||!await t("Delete this section from the current view tab?"))return;const b=await qt(i);if(b.type==="error"){s(b.errors[0].message);return}M(i,{}),await R()};return e.jsxs(e.Fragment,{children:[e.jsx(ns,{title:"Views",description:na,children:k&&!j?e.jsx(je,{className:"px-6 py-8 sm:px-8 sm:py-10",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(ce,{height:20,width:180,className:"rounded-full"}),e.jsx(ce,{height:16,width:260,className:"rounded-full"}),e.jsx(ce,{height:44,width:140,className:"rounded-[12px]"})]})}):p?e.jsxs(je,{className:"px-6 py-8 sm:px-8 sm:py-10",children:[e.jsx(d,{as:"p",variant:"body",weight:"semibold",children:"Failed to load saved views"}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:"Retry loading your saved view tabs."}),e.jsx("div",{className:"mt-4",children:e.jsx($,{type:"button",variant:"ghost",size:"sm",onClick:()=>{F()},children:"Retry"})})]}):h.tabs.length===0?e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx($e,{title:"Create your first view tab",description:"Start with a saved view tab, then add sections that query notes by tags, properties, or both.",className:"h-[320px]"}),e.jsx("div",{className:"flex justify-center",children:e.jsxs($,{type:"button",onClick:()=>x({mode:"create"}),children:[e.jsx(we,{className:"h-4 w-4"}),"Create first tab"]})})]}):e.jsxs("div",{className:"flex flex-col gap-5",children:[e.jsx(aa,{tabs:h.tabs,activeTabId:c?.id??null,onSelectTab:L,onReorderTabs:O,onCreateTab:()=>x({mode:"create"})}),c&&e.jsxs("div",{className:"flex flex-col gap-5",children:[e.jsxs("div",{className:"flex flex-col gap-3 border-b border-border-subtle/80 px-1 pb-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(d,{as:"h2",variant:"subheading",weight:"semibold",tracking:"tight",truncate:!0,children:c.title}),e.jsx(d,{as:"p",variant:"meta",tone:"tertiary",className:"mt-1",children:c.sections.length>0?`${c.sections.length} section${c.sections.length===1?"":"s"} in this view`:"Add sections to build this view"})]}),e.jsxs("div",{className:"inline-flex flex-wrap items-center gap-2 self-start sm:self-center",children:[e.jsxs($,{type:"button",size:"sm",onClick:()=>v({mode:"create"}),children:[e.jsx(we,{className:"h-4 w-4"}),"Add section"]}),e.jsx(Ee,{button:e.jsx(Pe,{label:"View tab actions"}),items:[...g>0?[{name:"Move tab left",onClick:()=>{A("previous")}}]:[],...g>=0&&g<h.tabs.length-1?[{name:"Move tab right",onClick:()=>{A("next")}}]:[],...h.tabs.length>1?[{type:"separator"}]:[],{name:"Rename tab",onClick:()=>x({mode:"edit",tab:c})},{type:"separator"},{name:"Delete tab",onClick:()=>{X()}}]})]})]}),c.sections.length===0?e.jsx($e,{title:"Add the first section to this tab",description:"Sections can pull notes by tags, properties, or both.",className:"h-[300px]"}):e.jsx("div",{className:"flex flex-col",children:e.jsx(Ce,{sensors:V,collisionDetection:Se,modifiers:[It],onDragEnd:he,children:e.jsx(nt,{items:c.sections.map(i=>i.id),strategy:Dt,children:e.jsx("div",{className:"flex flex-col gap-4",children:c.sections.map((i,b)=>e.jsx(la,{section:i,availableProperties:w,isPropertiesLoading:y,navigationState:Bt(l.state,i.id),onNavigationStateChange:M,onEdit:()=>v({mode:"edit",section:i}),onDuplicate:()=>{be(i)},onDelete:()=>{ae(i.id)},onMoveUp:b>0?()=>{te(i.id,"previous")}:void 0,onMoveDown:b<c.sections.length-1?()=>{te(i.id,"next")}:void 0},i.id))})})})})]})]})}),e.jsx(ra,{open:m!==null,mode:m?.mode??"create",initialTitle:m?.mode==="edit"?m.tab.title:"",onClose:()=>x(null),onSubmit:i=>{if(m?.mode==="edit"){I(i);return}ne(i)}}),e.jsx(Xs,{open:o!==null,mode:o?.mode??"create",initialSection:o?.mode==="edit"?o.section:null,availableTags:S,availableProperties:w,isTagsLoading:E,isPropertiesLoading:y,onClose:()=>v(null),onSubmit:i=>{if(o?.mode==="edit"){se(i);return}Y(i)}})]})}export{ja as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-B-LmIwhJ.js";import{p as f}from"./chunk-JWPE2WC7-PLvgEy_B.js";import{_ as n,l as o}from"./mermaid.core-B528P54n.js";import"./transform-BUB79_za.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DU_G4Atc.js";import"./preload-helper-BXl3LOEh.js";import"./floating-ui.react-dom-BWTnA00G.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},I={parser:R,db:a,renderer:u,styles:p};export{I as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ProseMirror a{color:var(--fg-muted);cursor:pointer;text-decoration:underline;text-decoration-color:var(--border-secondary);text-underline-offset:2px;transition:color .15s ease,text-decoration-color .15s ease}.ProseMirror a:hover{color:var(--fg-default);text-decoration-color:var(--fg-muted)}.bn-editor{background:transparent!important;padding-inline:54px 0!important;overflow-wrap:anywhere!important}.bn-container{--bn-font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;font-family:var(--bn-font-family)!important}.bn-mantine .bn-suggestion-menu{width:min(368px,100vw - 32px);max-height:min(424px,100vh - 96px);padding:6px;background:var(--elevated);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:0 18px 36px -28px #171d2657,0 1px 2px #171d260f;color:var(--fg-default);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}html.dark .bn-mantine .bn-suggestion-menu{box-shadow:0 20px 42px -30px #000000b8,0 1px 2px #00000052}.bn-mantine .mantine-Menu-dropdown,.bn-mantine .bn-menu-dropdown{min-width:148px;padding:5px;background:var(--elevated);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 14px 28px -24px #171d264d,0 1px 2px #171d260f;color:var(--fg-default)}html.dark .bn-mantine .mantine-Menu-dropdown,html.dark .bn-mantine .bn-menu-dropdown{box-shadow:0 18px 34px -28px #000000ad,0 1px 2px #00000052}.bn-mantine .mantine-Menu-item{min-height:32px;height:auto;padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--fg-secondary);font-size:.8125rem;font-weight:600;line-height:1.35;transition:background .15s ease,border-color .15s ease,color .15s ease}.bn-mantine .mantine-Menu-item[aria-selected=true],.bn-mantine .mantine-Menu-item:hover,.bn-mantine .mantine-Menu-item:focus-visible{background:var(--hover-subtle);border-color:var(--border-subtle);color:var(--fg-default)}.bn-mantine .mantine-Menu-itemLabel{color:inherit}.bn-mantine .bn-suggestion-menu-label{padding:8px 10px 5px;color:var(--fg-tertiary);font-size:.75rem;font-weight:700;line-height:1.2}.bn-mantine .bn-suggestion-menu-label:not(:first-child){margin-top:4px;padding-top:10px;border-top:1px solid var(--border-subtle)}.bn-mantine .bn-suggestion-menu-item{min-height:52px;height:auto;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--fg-default);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.bn-mantine .bn-suggestion-menu-item:hover,.bn-mantine .bn-suggestion-menu-item[aria-selected=true]{background:var(--hover-subtle);border-color:var(--border-subtle)}.bn-mantine .bn-suggestion-menu-item-small{min-height:34px;padding:7px 10px}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-body{min-width:0;padding-right:10px}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-section[data-position=left]{flex:0 0 32px;width:32px;height:32px;margin-inline-end:10px;padding:0;background:var(--muted);border:1px solid var(--border-subtle);border-radius:8px;color:var(--fg-secondary)}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-section[data-position=left] svg{width:16px;height:16px}.bn-mantine .bn-suggestion-menu-item:hover .bn-mt-suggestion-menu-item-section[data-position=left],.bn-mantine .bn-suggestion-menu-item[aria-selected=true] .bn-mt-suggestion-menu-item-section[data-position=left]{background:var(--surface);border-color:var(--border-secondary);color:var(--fg-default)}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-section[data-position=right]{flex:0 0 auto;margin-inline-start:8px;color:var(--fg-tertiary)}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-section[data-position=right] .mantine-Badge-root{height:20px;padding:0 6px;background:var(--muted);border:1px solid var(--border-subtle);border-radius:7px;color:var(--fg-tertiary);font-size:.6875rem;font-weight:600;line-height:18px;letter-spacing:0;text-transform:none;white-space:nowrap}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-title,.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-title{color:var(--fg-default);font-size:.875rem;font-weight:600;line-height:1.35}.bn-mantine .bn-suggestion-menu-item-small .bn-mt-suggestion-menu-item-title{font-size:.8125rem}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-subtitle{color:var(--fg-tertiary);font-size:.75rem;line-height:1.35}@media(max-width:640px){.bn-mantine .bn-suggestion-menu{width:calc(100vw - 24px);max-height:min(360px,100vh - 80px)}.bn-mantine .bn-suggestion-menu .bn-mt-suggestion-menu-item-section[data-position=right] .mantine-Badge-root{max-width:84px;overflow:hidden;text-overflow:ellipsis}}.bn-default-styles,.bn-default-styles p,.bn-default-styles li,.bn-default-styles h1,.bn-default-styles h2,.bn-default-styles h3,.bn-default-styles h4,.bn-default-styles h5,.bn-default-styles h6,.bn-container button,.bn-container input,.bn-container select,.bn-container textarea{font-family:var(--bn-font-family)!important}.bn-inline-content code{color:var(--fg-muted);background:color-mix(in srgb,var(--highlight) 72%,transparent);border:1px solid color-mix(in srgb,var(--border-subtle) 72%,transparent);border-radius:6px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9em;letter-spacing:0;padding:.08em .34em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.bn-file-block-content-wrapper{max-width:100%}.bn-block-content[data-content-type=codeBlock]{background-color:#181b20;border:1px solid rgba(255,255,255,.08);border-radius:10px}.bn-block-content[data-content-type=codeBlock]:has(>[data-rich-code-toolbar]){flex-direction:column;overflow:hidden;background-color:var(--elevated);border-color:var(--border-subtle);color:var(--fg-default)}.bn-block-content[data-content-type=codeBlock]:has(>[data-rich-code-toolbar])>div>select{display:none}[data-rich-code-preview] svg foreignObject p{font-family:inherit!important;line-height:inherit}.bn-block-content[data-content-type=codeBlock]>pre{color:#ffffffd6;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:1rem;line-height:1.65}.bn-block-content[data-content-type=codeBlock]>div>select{border-radius:6px;color:#ffffffb8}.bn-editor [data-content-type=table] .tableWrapper{--default-cell-min-width: 112px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.bn-editor [data-content-type=table] table{overflow:hidden;background:var(--elevated);border:1px solid var(--border-subtle);border-radius:10px;border-collapse:separate;border-spacing:0}.bn-editor [data-content-type=table] th,.bn-editor [data-content-type=table] td{min-width:112px;padding:8px 10px;background:var(--elevated);border:0;border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);color:var(--fg-default);vertical-align:top}.bn-editor [data-content-type=table] th{background:var(--muted);color:var(--fg-muted);font-weight:600}.bn-editor [data-content-type=table] tr>:last-child{border-right:0}.bn-editor [data-content-type=table] tr:last-child>*{border-bottom:0}.bn-editor [data-content-type=table] th:hover,.bn-editor [data-content-type=table] td:hover{background:var(--hover-subtle)}.ProseMirror .selectedCell:after{background:color-mix(in srgb,var(--accent-soft-primary) 58%,transparent);box-shadow:inset 0 0 0 1px var(--border-focus);pointer-events:none}.ProseMirror .column-resize-handle,.bn-table-drop-cursor{background:var(--accent-primary)}.bn-mantine .bn-table-handle,.bn-mantine .bn-extend-button,.bn-mantine .bn-table-cell-handle{background:var(--elevated);border:1px solid var(--border-subtle);border-radius:7px;box-shadow:0 8px 18px -16px #171d2638;color:var(--fg-tertiary);transition:background .15s ease,border-color .15s ease,color .15s ease}.bn-mantine .bn-table-handle:hover,.bn-mantine .bn-table-handle-dragging,.bn-mantine .bn-extend-button:hover,.bn-mantine .bn-extend-button-editing,.bn-mantine .bn-table-cell-handle:hover{background:var(--hover-subtle);border-color:var(--border-secondary);color:var(--fg-default)}.bn-default-styles [data-content-type=heading]{--level: 1.375rem;--ob-heading-color: var(--fg-default);--ob-heading-letter-spacing: -.01em;--ob-heading-line-height: 1.35;--ob-heading-weight: 700}.bn-default-styles [data-content-type=heading][data-level="2"]{--level: 1.1875rem;--ob-heading-letter-spacing: -.005em;--ob-heading-line-height: 1.4;--ob-heading-weight: 650}.bn-default-styles [data-content-type=heading][data-level="3"]{--level: 1.0625rem;--ob-heading-letter-spacing: 0;--ob-heading-line-height: 1.45;--ob-heading-weight: 620}.bn-default-styles [data-content-type=heading][data-level="4"]{--level: 1rem;--ob-heading-letter-spacing: 0;--ob-heading-line-height: 1.5;--ob-heading-weight: 600}.bn-default-styles [data-content-type=heading][data-level="5"]{--level: 1rem;--ob-heading-color: var(--fg-muted);--ob-heading-letter-spacing: 0;--ob-heading-line-height: 1.5;--ob-heading-weight: 560}.bn-default-styles [data-content-type=heading][data-level="6"]{--level: 1rem;--ob-heading-color: var(--fg-secondary);--ob-heading-letter-spacing: .01em;--ob-heading-line-height: 1.5;--ob-heading-weight: 520}.bn-default-styles [data-prev-level="1"]{--prev-level: 1.375rem;--ob-prev-heading-letter-spacing: -.01em;--ob-prev-heading-line-height: 1.35;--ob-prev-heading-weight: 700}.bn-default-styles [data-prev-level="2"]{--prev-level: 1.1875rem;--ob-prev-heading-letter-spacing: -.005em;--ob-prev-heading-line-height: 1.4;--ob-prev-heading-weight: 650}.bn-default-styles [data-prev-level="3"]{--prev-level: 1.0625rem;--ob-prev-heading-letter-spacing: 0;--ob-prev-heading-line-height: 1.45;--ob-prev-heading-weight: 620}.bn-default-styles [data-prev-level="4"]{--prev-level: 1rem;--ob-prev-heading-letter-spacing: 0;--ob-prev-heading-line-height: 1.5;--ob-prev-heading-weight: 600}.bn-default-styles [data-prev-level="5"]{--prev-level: 1rem;--ob-prev-heading-letter-spacing: 0;--ob-prev-heading-line-height: 1.5;--ob-prev-heading-weight: 560}.bn-default-styles [data-prev-level="6"]{--prev-level: 1rem;--ob-prev-heading-letter-spacing: .01em;--ob-prev-heading-line-height: 1.5;--ob-prev-heading-weight: 520}.bn-default-styles .bn-block-outer:not([data-prev-type])>.bn-block>.bn-block-content[data-content-type=heading],.bn-default-styles .bn-block-outer:not([data-prev-type])>.bn-block>div[data-type=modification]>div[data-type=modification]>.bn-block-content[data-content-type=heading]{color:var(--ob-heading-color, var(--fg-default));font-size:var(--level);font-weight:var(--ob-heading-weight, 600);letter-spacing:var(--ob-heading-letter-spacing, 0);line-height:var(--ob-heading-line-height, 1.5)}.bn-default-styles .bn-block-outer[data-prev-type=heading]>.bn-block>.bn-block-content{font-size:var(--prev-level);font-weight:var(--ob-prev-heading-weight, 600);letter-spacing:var(--ob-prev-heading-letter-spacing, 0);line-height:var(--ob-prev-heading-line-height, 1.5)}.bn-default-styles p{line-height:1.7}.bn-default-styles li{line-height:1.65}.bn-block-outer:not([data-prev-type])>.bn-block>.bn-block-content[data-content-type=numberedListItem]:before{content:var(--index) ".";white-space:nowrap}.bn-side-menu[data-block-type=heading][data-level="1"]{height:36px}.bn-side-menu[data-block-type=heading][data-level="2"]{height:33px}.bn-side-menu[data-block-type=heading][data-level="3"]{height:31px}.bn-side-menu[data-block-type=heading][data-level="4"],.bn-side-menu[data-block-type=heading][data-level="5"],.bn-side-menu[data-block-type=heading][data-level="6"]{height:30px}@font-face{font-family:Pretendard;font-weight:700;font-display:swap;src:local("Pretendard Bold"),url(/fonts/Pretendard-Bold.woff2) format("woff2")}@font-face{font-family:Pretendard;font-weight:400;font-display:swap;src:local("Pretendard Regular"),url(/fonts/Pretendard-Regular.woff2) format("woff2")}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}html{background:var(--page-bg);color:var(--fg-default)}html.dark{background-color:var(--page-bg);color:var(--fg-default)}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--page-bg);color:var(--fg-default);word-wrap:break-word;word-break:keep-all;overflow-wrap:anywhere}div:focus:not(:focus-visible){outline:none}.window-modal__container{z-index:1002}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-700:oklch(50.5% .213 27.518);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-700:oklch(51.4% .222 16.935);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-normal:1.5;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-pastel-yellow-200:#d8c4a8;--color-pastel-green-200:#9fb39d;--color-pastel-pink-200:#d6a3a0;--color-pastel-orange-200:#cfa88d;--color-pastel-blue-200:#9cafb9;--color-pastel-lavender-200:#c0b7c6;--color-priority-high:#e4a29f;--color-priority-medium:#deb07e;--color-priority-low:#dec988;--color-surface:var(--surface);--color-muted:var(--muted);--color-subtle:var(--subtle);--color-elevated:var(--elevated);--color-emphasis:var(--emphasis);--color-hover:var(--hover);--color-hover-subtle:var(--hover-subtle);--color-active:var(--active);--color-fg-default:var(--fg-default);--color-fg-muted:var(--fg-muted);--color-fg-secondary:var(--fg-secondary);--color-fg-tertiary:var(--fg-tertiary);--color-fg-disabled:var(--fg-disabled);--color-fg-placeholder:var(--fg-placeholder);--color-fg-error:var(--fg-error);--color-fg-on-filled:var(--fg-on-filled);--color-fg-weekend:var(--fg-weekend);--color-border:var(--border);--color-border-secondary:var(--border-secondary);--color-border-subtle:var(--border-subtle);--color-border-focus:var(--border-focus);--color-border-error:var(--border-error);--color-accent-primary:var(--accent-primary);--color-accent-secondary:var(--accent-secondary);--color-accent-secondary-hover:var(--accent-secondary-hover);--color-accent-danger:var(--accent-danger);--color-accent-danger-hover:var(--accent-danger-hover);--color-accent-success:var(--accent-success);--color-accent-soft-primary:var(--accent-soft-primary);--color-accent-soft-danger:var(--accent-soft-danger);--color-accent-soft-danger-hover:var(--accent-soft-danger-hover);--color-accent-soft-success:var(--accent-soft-success);--color-accent-soft-success-hover:var(--accent-soft-success-hover);--color-cta:var(--cta);--color-cta-hover:var(--cta-hover);--color-overlay:var(--overlay);--color-divider:var(--divider);--radius-full:9999px;--animate-fade-in:fade-in .2s ease-out;--animate-zoom-in:zoom-in .2s ease-out;--animate-shimmer:shimmer 1.5s infinite}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-10{top:calc(var(--spacing) * -10)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-20{top:calc(var(--spacing) * 20)}.-right-10{right:calc(var(--spacing) * -10)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-\[-14px\]{right:-14px}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\[-4px\]{bottom:-4px}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[1001\]{z-index:1001}.z-\[1002\]{z-index:1002}.z-\[1003\]{z-index:1003}.z-\[1090\]{z-index:1090}.z-\[1100\]{z-index:1100}.z-\[1200\]{z-index:1200}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-4{margin:calc(var(--spacing) * 4)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[2px\]{margin-top:2px}.mt-\[6px\]{margin-top:6px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-3{margin-left:calc(var(--spacing) * -3)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-12{margin-left:calc(var(--spacing) * 12)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-28{height:calc(var(--spacing) * 28)}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[34px\]{height:34px}.h-\[72px\]{height:72px}.h-\[98px\]{height:98px}.h-\[248px\]{height:248px}.h-\[300px\]{height:300px}.h-\[320px\]{height:320px}.h-\[400px\]{height:400px}.h-\[clamp\(36rem\,calc\(100dvh-8rem\)\,72rem\)\]{height:clamp(36rem,100dvh - 8rem,72rem)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[46\%\]{max-height:46%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[calc\(100dvh-0\.75rem\)\]{max-height:calc(100dvh - .75rem)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-\[38px\]{min-height:38px}.min-h-\[60px\]{min-height:60px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-\[84px\]{min-height:84px}.min-h-\[100px\]{min-height:100px}.min-h-\[112px\]{min-height:112px}.min-h-\[196px\]{min-height:196px}.min-h-\[248px\]{min-height:248px}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-28{width:calc(var(--spacing) * 28)}.w-56{width:calc(var(--spacing) * 56)}.w-\[17rem\]{width:17rem}.w-\[18px\]{width:18px}.w-\[18rem\]{width:18rem}.w-\[34px\]{width:34px}.w-\[148px\]{width:148px}.w-\[220px\]{width:220px}.w-\[min\(17\.5rem\,calc\(100\%-4\.75rem\)\)\]{width:min(17.5rem,100% - 4.75rem)}.w-\[min\(20rem\,calc\(100\%-1\.5rem\)\)\]{width:min(20rem,100% - 1.5rem)}.w-\[min\(22rem\,calc\(100vw-2rem\)\)\]{width:min(22rem,100vw - 2rem)}.w-full{width:100%}.w-px{width:1px}.max-w-\[12rem\]{max-width:12rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[44rem\]{max-width:44rem}.max-w-\[72\%\]{max-width:72%}.max-w-\[72px\]{max-width:72px}.max-w-\[72vw\]{max-width:72vw}.max-w-\[116px\]{max-width:116px}.max-w-\[132px\]{max-width:132px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[400px\]{max-width:400px}.max-w-\[640px\]{max-width:640px}.max-w-\[896px\]{max-width:896px}.max-w-\[min\(420px\,calc\(100vw-32px\)\)\]{max-width:min(420px,100vw - 32px)}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-26{min-width:calc(var(--spacing) * 26)}.min-w-\[1\.5rem\]{min-width:1.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[1260px\]{min-width:1260px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-\[0_0_300px\]{flex:0 0 300px}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-\[28rem\]{flex-basis:28rem}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-\[38\%\]{--tw-translate-y: -38% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-pulse{animation:var(--animate-pulse)}.animate-shimmer{animation:var(--animate-shimmer)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,5\.5rem\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,5.5rem) minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-subtle>:not(:last-child)),:where(.divide-border-subtle\/70>:not(:last-child)){border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){:where(.divide-border-subtle\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-border-subtle) 70%,transparent)}}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[11px\]{border-radius:11px}.rounded-\[12px\]{border-radius:12px}.rounded-\[13px\]{border-radius:13px}.rounded-\[14px\]{border-radius:14px}.rounded-\[15px\]{border-radius:15px}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-full{border-radius:var(--radius-full)}.rounded-t-\[18px\]{border-top-left-radius:18px;border-top-right-radius:18px}.rounded-t-\[20px\]{border-top-left-radius:20px;border-top-right-radius:20px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-accent-primary\/45{border-color:var(--color-accent-primary)}@supports (color:color-mix(in lab,red,red)){.border-accent-primary\/45{border-color:color-mix(in oklab,var(--color-accent-primary) 45%,transparent)}}.border-accent-primary\/50{border-color:var(--color-accent-primary)}@supports (color:color-mix(in lab,red,red)){.border-accent-primary\/50{border-color:color-mix(in oklab,var(--color-accent-primary) 50%,transparent)}}.border-amber-200\/70{border-color:#fee685b3}@supports (color:color-mix(in lab,red,red)){.border-amber-200\/70{border-color:color-mix(in oklab,var(--color-amber-200) 70%,transparent)}}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.border-black\/5{border-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.border-border{border-color:var(--color-border)}.border-border-error,.border-border-error\/70{border-color:var(--color-border-error)}@supports (color:color-mix(in lab,red,red)){.border-border-error\/70{border-color:color-mix(in oklab,var(--color-border-error) 70%,transparent)}}.border-border-secondary,.border-border-secondary\/70{border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.border-border-secondary\/70{border-color:color-mix(in oklab,var(--color-border-secondary) 70%,transparent)}}.border-border-secondary\/80{border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.border-border-secondary\/80{border-color:color-mix(in oklab,var(--color-border-secondary) 80%,transparent)}}.border-border-subtle,.border-border-subtle\/60{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/60{border-color:color-mix(in oklab,var(--color-border-subtle) 60%,transparent)}}.border-border-subtle\/65{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/65{border-color:color-mix(in oklab,var(--color-border-subtle) 65%,transparent)}}.border-border-subtle\/70{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/70{border-color:color-mix(in oklab,var(--color-border-subtle) 70%,transparent)}}.border-border-subtle\/75{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/75{border-color:color-mix(in oklab,var(--color-border-subtle) 75%,transparent)}}.border-border-subtle\/80{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/80{border-color:color-mix(in oklab,var(--color-border-subtle) 80%,transparent)}}.border-cta{border-color:var(--color-cta)}.border-fg-muted{border-color:var(--color-fg-muted)}.border-sky-200\/75{border-color:#b8e6febf}@supports (color:color-mix(in lab,red,red)){.border-sky-200\/75{border-color:color-mix(in oklab,var(--color-sky-200) 75%,transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.border-white\/14{border-color:#ffffff24}@supports (color:color-mix(in lab,red,red)){.border-white\/14{border-color:color-mix(in oklab,var(--color-white) 14%,transparent)}}.bg-\[\#181b20\]{background-color:#181b20}.bg-\[color-mix\(in_srgb\,var\(--elevated\)_72\%\,var\(--hover-subtle\)\)\]{background-color:var(--elevated)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--elevated\)_72\%\,var\(--hover-subtle\)\)\]{background-color:color-mix(in srgb,var(--elevated) 72%,var(--hover-subtle))}}.bg-\[color\:color-mix\(in_srgb\,var\(--surface\)_88\%\,var\(--accent-soft-primary\)_12\%\)\]{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-\[color\:color-mix\(in_srgb\,var\(--surface\)_88\%\,var\(--accent-soft-primary\)_12\%\)\]{background-color:color-mix(in srgb,var(--surface) 88%,var(--accent-soft-primary) 12%)}}.bg-\[var\(--page-bg\)\]{background-color:var(--page-bg)}.bg-accent-danger{background-color:var(--color-accent-danger)}.bg-accent-primary\/6{background-color:var(--color-accent-primary)}@supports (color:color-mix(in lab,red,red)){.bg-accent-primary\/6{background-color:color-mix(in oklab,var(--color-accent-primary) 6%,transparent)}}.bg-accent-secondary{background-color:var(--color-accent-secondary)}.bg-accent-soft-danger,.bg-accent-soft-danger\/40{background-color:var(--color-accent-soft-danger)}@supports (color:color-mix(in lab,red,red)){.bg-accent-soft-danger\/40{background-color:color-mix(in oklab,var(--color-accent-soft-danger) 40%,transparent)}}.bg-accent-soft-danger\/60{background-color:var(--color-accent-soft-danger)}@supports (color:color-mix(in lab,red,red)){.bg-accent-soft-danger\/60{background-color:color-mix(in oklab,var(--color-accent-soft-danger) 60%,transparent)}}.bg-accent-soft-danger\/70{background-color:var(--color-accent-soft-danger)}@supports (color:color-mix(in lab,red,red)){.bg-accent-soft-danger\/70{background-color:color-mix(in oklab,var(--color-accent-soft-danger) 70%,transparent)}}.bg-accent-soft-primary{background-color:var(--color-accent-soft-primary)}.bg-accent-soft-success{background-color:var(--color-accent-soft-success)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.bg-black\/24{background-color:#0000003d}@supports (color:color-mix(in lab,red,red)){.bg-black\/24{background-color:color-mix(in oklab,var(--color-black) 24%,transparent)}}.bg-border-secondary{background-color:var(--color-border-secondary)}.bg-border-subtle{background-color:var(--color-border-subtle)}.bg-cta{background-color:var(--color-cta)}.bg-divider{background-color:var(--color-divider)}.bg-elevated,.bg-elevated\/60{background-color:var(--color-elevated)}@supports (color:color-mix(in lab,red,red)){.bg-elevated\/60{background-color:color-mix(in oklab,var(--color-elevated) 60%,transparent)}}.bg-emerald-500\/12{background-color:#00bb7f1f}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/12{background-color:color-mix(in oklab,var(--color-emerald-500) 12%,transparent)}}.bg-emphasis{background-color:var(--color-emphasis)}.bg-fg-placeholder{background-color:var(--color-fg-placeholder)}.bg-fg-secondary{background-color:var(--color-fg-secondary)}.bg-hover-subtle,.bg-hover-subtle\/40{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-hover-subtle\/40{background-color:color-mix(in oklab,var(--color-hover-subtle) 40%,transparent)}}.bg-hover-subtle\/50{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-hover-subtle\/50{background-color:color-mix(in oklab,var(--color-hover-subtle) 50%,transparent)}}.bg-hover-subtle\/55{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-hover-subtle\/55{background-color:color-mix(in oklab,var(--color-hover-subtle) 55%,transparent)}}.bg-hover-subtle\/60{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-hover-subtle\/60{background-color:color-mix(in oklab,var(--color-hover-subtle) 60%,transparent)}}.bg-hover-subtle\/75{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-hover-subtle\/75{background-color:color-mix(in oklab,var(--color-hover-subtle) 75%,transparent)}}.bg-muted,.bg-muted\/18{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/18{background-color:color-mix(in oklab,var(--color-muted) 18%,transparent)}}.bg-muted\/25{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/25{background-color:color-mix(in oklab,var(--color-muted) 25%,transparent)}}.bg-muted\/30{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--color-muted) 30%,transparent)}}.bg-muted\/40{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--color-muted) 40%,transparent)}}.bg-muted\/70{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/70{background-color:color-mix(in oklab,var(--color-muted) 70%,transparent)}}.bg-overlay{background-color:var(--color-overlay)}.bg-pastel-blue-200{background-color:var(--color-pastel-blue-200)}.bg-pastel-green-200{background-color:var(--color-pastel-green-200)}.bg-pastel-orange-200{background-color:var(--color-pastel-orange-200)}.bg-pastel-pink-200{background-color:var(--color-pastel-pink-200)}.bg-priority-high{background-color:var(--color-priority-high)}.bg-priority-low{background-color:var(--color-priority-low)}.bg-priority-medium{background-color:var(--color-priority-medium)}.bg-red-200{background-color:var(--color-red-200)}.bg-rose-500\/12{background-color:#ff23571f}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/12{background-color:color-mix(in oklab,var(--color-rose-500) 12%,transparent)}}.bg-sky-500\/12{background-color:#00a5ef1f}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/12{background-color:color-mix(in oklab,var(--color-sky-500) 12%,transparent)}}.bg-subtle,.bg-subtle\/30{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/30{background-color:color-mix(in oklab,var(--color-subtle) 30%,transparent)}}.bg-subtle\/35{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/35{background-color:color-mix(in oklab,var(--color-subtle) 35%,transparent)}}.bg-subtle\/40{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/40{background-color:color-mix(in oklab,var(--color-subtle) 40%,transparent)}}.bg-subtle\/45{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/45{background-color:color-mix(in oklab,var(--color-subtle) 45%,transparent)}}.bg-subtle\/50{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/50{background-color:color-mix(in oklab,var(--color-subtle) 50%,transparent)}}.bg-subtle\/55{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/55{background-color:color-mix(in oklab,var(--color-subtle) 55%,transparent)}}.bg-subtle\/65{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/65{background-color:color-mix(in oklab,var(--color-subtle) 65%,transparent)}}.bg-subtle\/70{background-color:var(--color-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-subtle\/70{background-color:color-mix(in oklab,var(--color-subtle) 70%,transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/55{background-color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.bg-white\/55{background-color:color-mix(in oklab,var(--color-white) 55%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(135deg\,\#f8fbff_0\%\,\#f1efff_54\%\,\#eafaf4_100\%\)\]{background-image:linear-gradient(135deg,#f8fbff,#f1efff 54%,#eafaf4)}.bg-\[linear-gradient\(135deg\,\#fffaf0_0\%\,\#eef7ff_58\%\,\#e7f6fb_100\%\)\]{background-image:linear-gradient(135deg,#fffaf0,#eef7ff 58%,#e7f6fb)}.from-pastel-lavender-200\/30{--tw-gradient-from:#c0b7c64d}@supports (color:color-mix(in lab,red,red)){.from-pastel-lavender-200\/30{--tw-gradient-from:color-mix(in oklab, var(--color-pastel-lavender-200) 30%, transparent)}}.from-pastel-lavender-200\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-pastel-yellow-200\/20{--tw-gradient-via:#d8c4a833}@supports (color:color-mix(in lab,red,red)){.via-pastel-yellow-200\/20{--tw-gradient-via:color-mix(in oklab, var(--color-pastel-yellow-200) 20%, transparent)}}.via-pastel-yellow-200\/20{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-pastel-lavender-200\/30{--tw-gradient-to:#c0b7c64d}@supports (color:color-mix(in lab,red,red)){.to-pastel-lavender-200\/30{--tw-gradient-to:color-mix(in oklab, var(--color-pastel-lavender-200) 30%, transparent)}}.to-pastel-lavender-200\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:200\%_100\%\]{background-size:200% 100%}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-right-bottom{object-position:right bottom}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-44{padding-right:calc(var(--spacing) * 44)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[26px\]{padding-left:26px}.pl-\[40px\]{padding-left:40px}.pl-\[54px\]{padding-left:54px}.pl-\[68px\]{padding-left:68px}.pl-\[82px\]{padding-left:82px}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-\[1\.65\]{--tw-leading:1.65;line-height:1.65}.leading-\[16px\]{--tw-leading:16px;line-height:16px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-success{color:var(--color-accent-success)}.text-black{color:var(--color-black)}.text-black\/55{color:#0000008c}@supports (color:color-mix(in lab,red,red)){.text-black\/55{color:color-mix(in oklab,var(--color-black) 55%,transparent)}}.text-current,.text-current\/70{color:currentColor}@supports (color:color-mix(in lab,red,red)){.text-current\/70{color:color-mix(in oklab,currentcolor 70%,transparent)}}.text-emerald-700{color:var(--color-emerald-700)}.text-fg-default,.text-fg-default\/70{color:var(--color-fg-default)}@supports (color:color-mix(in lab,red,red)){.text-fg-default\/70{color:color-mix(in oklab,var(--color-fg-default) 70%,transparent)}}.text-fg-disabled{color:var(--color-fg-disabled)}.text-fg-error{color:var(--color-fg-error)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-on-filled{color:var(--color-fg-on-filled)}.text-fg-placeholder{color:var(--color-fg-placeholder)}.text-fg-secondary{color:var(--color-fg-secondary)}.text-fg-tertiary,.text-fg-tertiary\/85{color:var(--color-fg-tertiary)}@supports (color:color-mix(in lab,red,red)){.text-fg-tertiary\/85{color:color-mix(in oklab,var(--color-fg-tertiary) 85%,transparent)}}.text-fg-weekend{color:var(--color-fg-weekend)}.text-red-700{color:var(--color-red-700)}.text-rose-700{color:var(--color-rose-700)}.text-sky-700{color:var(--color-sky-700)}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white) 85%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-border-secondary{-webkit-text-decoration-color:var(--color-border-secondary);text-decoration-color:var(--color-border-secondary)}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-cta{accent-color:var(--color-cta)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-95{opacity:.95}.shadow-\[0_8px_18px_-14px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 8px 18px -14px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_18px_-14px_rgba\(23\,29\,38\,0\.32\)\]{--tw-shadow:0 8px 18px -14px var(--tw-shadow-color,#171d2652);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_18px_-16px_rgba\(15\,18\,24\,0\.28\)\]{--tw-shadow:0 8px 18px -16px var(--tw-shadow-color,#0f121847);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_18px_-18px_rgba\(15\,18\,24\,0\.28\)\]{--tw-shadow:0 8px 18px -18px var(--tw-shadow-color,#0f121847);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_24px_-18px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 12px 24px -18px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_36px_-24px_rgba\(15\,18\,24\,0\.24\)\]{--tw-shadow:0 16px 36px -24px var(--tw-shadow-color,#0f12183d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_18px_44px_-28px_rgba\(15\,18\,24\,0\.28\)\]{--tw-shadow:0 18px 44px -28px var(--tw-shadow-color,#0f121847);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_22px_56px_-30px_rgba\(15\,18\,24\,0\.32\)\]{--tw-shadow:0 22px 56px -30px var(--tw-shadow-color,#0f121852);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_24px_64px_-30px_rgba\(15\,18\,24\,0\.34\)\]{--tw-shadow:0 24px 64px -30px var(--tw-shadow-color,#0f121857);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_24px_64px_-32px_rgba\(15\,18\,24\,0\.36\)\]{--tw-shadow:0 24px 64px -32px var(--tw-shadow-color,#0f12185c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-accent-primary\/10{--tw-ring-color:var(--color-accent-primary)}@supports (color:color-mix(in lab,red,red)){.ring-accent-primary\/10{--tw-ring-color:color-mix(in oklab, var(--color-accent-primary) 10%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,color\,box-shadow\]{transition-property:background-color,border-color,color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\]{transition-property:border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,background-color\,border-color\]{transition-property:opacity,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.\[scrollbar-width\:none\]{scrollbar-width:none}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media(hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-\[1\.01\]:is(:where(.group):hover *){scale:1.01}.group-hover\:scale-\[1\.025\]:is(:where(.group):hover *){scale:1.025}.group-hover\:border-border-secondary\/70:is(:where(.group):hover *){border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.group-hover\:border-border-secondary\/70:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-border-secondary) 70%,transparent)}}.group-hover\:bg-hover-subtle:is(:where(.group):hover *){background-color:var(--color-hover-subtle)}.group-hover\:text-fg-default:is(:where(.group):hover *){color:var(--color-fg-default)}.group-hover\:text-fg-secondary:is(:where(.group):hover *){color:var(--color-fg-secondary)}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:border-cta:is(:where(.peer):checked~*){border-color:var(--color-cta)}.peer-checked\:bg-cta:is(:where(.peer):checked~*){background-color:var(--color-cta)}.peer-focus-visible\:border-border-focus:is(:where(.peer):focus-visible~*){border-color:var(--color-border-focus)}.peer-focus-visible\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:is(:where(.peer):focus-visible~*){--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--accent-soft-primary))}@supports (color:color-mix(in lab,red,red)){.peer-focus-visible\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:is(:where(.peer):focus-visible~*){--tw-shadow:0 0 0 4px var(--tw-shadow-color,color-mix(in srgb,var(--accent-soft-primary) 90%,transparent))}}.peer-focus-visible\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:is(:where(.peer):focus-visible~*){box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.marker\:hidden ::marker{display:none}.marker\:hidden::marker{display:none}.marker\:hidden ::-webkit-details-marker{display:none}.marker\:hidden::-webkit-details-marker{display:none}.placeholder\:text-xs::placeholder{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.placeholder\:font-medium::placeholder{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-fg-placeholder::placeholder{color:var(--color-fg-placeholder)}.before\:mr-1:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 1)}.before\:content-\[\"·\"\]:before{--tw-content:"·";content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing) * 4)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:start:first-child{inset-inline-start:var(--spacing)}.first\:end:first-child{inset-inline-end:var(--spacing)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}.focus-within\:border-border-focus:focus-within{border-color:var(--color-border-focus)}.focus-within\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:focus-within{--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--accent-soft-primary))}@supports (color:color-mix(in lab,red,red)){.focus-within\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:focus-within{--tw-shadow:0 0 0 4px var(--tw-shadow-color,color-mix(in srgb,var(--accent-soft-primary) 90%,transparent))}}.focus-within\:shadow-\[0_0_0_4px_color-mix\(in_srgb\,var\(--accent-soft-primary\)_90\%\,transparent\)\]:focus-within{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-amber-300\/80:hover{border-color:#ffd236cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-300\/80:hover{border-color:color-mix(in oklab,var(--color-amber-300) 80%,transparent)}}.hover\:border-border-secondary:hover,.hover\:border-border-secondary\/70:hover{border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border-secondary\/70:hover{border-color:color-mix(in oklab,var(--color-border-secondary) 70%,transparent)}}.hover\:border-border-secondary\/80:hover{border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border-secondary\/80:hover{border-color:color-mix(in oklab,var(--color-border-secondary) 80%,transparent)}}.hover\:border-border-subtle:hover,.hover\:border-border-subtle\/80:hover{border-color:var(--color-border-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border-subtle\/80:hover{border-color:color-mix(in oklab,var(--color-border-subtle) 80%,transparent)}}.hover\:border-sky-300\/80:hover{border-color:#77d4ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-sky-300\/80:hover{border-color:color-mix(in oklab,var(--color-sky-300) 80%,transparent)}}.hover\:bg-accent-danger-hover:hover{background-color:var(--color-accent-danger-hover)}.hover\:bg-accent-secondary-hover:hover{background-color:var(--color-accent-secondary-hover)}.hover\:bg-accent-soft-danger-hover:hover{background-color:var(--color-accent-soft-danger-hover)}.hover\:bg-accent-soft-success-hover:hover{background-color:var(--color-accent-soft-success-hover)}.hover\:bg-black\/34:hover{background-color:#00000057}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/34:hover{background-color:color-mix(in oklab,var(--color-black) 34%,transparent)}}.hover\:bg-cta-hover:hover{background-color:var(--color-cta-hover)}.hover\:bg-elevated:hover{background-color:var(--color-elevated)}.hover\:bg-hover:hover{background-color:var(--color-hover)}.hover\:bg-hover-subtle:hover,.hover\:bg-hover-subtle\/25:hover{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-hover-subtle\/25:hover{background-color:color-mix(in oklab,var(--color-hover-subtle) 25%,transparent)}}.hover\:bg-hover-subtle\/35:hover{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-hover-subtle\/35:hover{background-color:color-mix(in oklab,var(--color-hover-subtle) 35%,transparent)}}.hover\:bg-hover-subtle\/70:hover{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-hover-subtle\/70:hover{background-color:color-mix(in oklab,var(--color-hover-subtle) 70%,transparent)}}.hover\:bg-hover-subtle\/80:hover{background-color:var(--color-hover-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-hover-subtle\/80:hover{background-color:color-mix(in oklab,var(--color-hover-subtle) 80%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:text-accent-primary:hover{color:var(--color-accent-primary)}.hover\:text-accent-success:hover{color:var(--color-accent-success)}.hover\:text-fg-default:hover,.hover\:text-fg-default\/80:hover{color:var(--color-fg-default)}@supports (color:color-mix(in lab,red,red)){.hover\:text-fg-default\/80:hover{color:color-mix(in oklab,var(--color-fg-default) 80%,transparent)}}.hover\:text-fg-default\/85:hover{color:var(--color-fg-default)}@supports (color:color-mix(in lab,red,red)){.hover\:text-fg-default\/85:hover{color:color-mix(in oklab,var(--color-fg-default) 85%,transparent)}}.hover\:text-fg-error:hover{color:var(--color-fg-error)}.hover\:text-fg-secondary:hover{color:var(--color-fg-secondary)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-white\/90:hover{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.hover\:text-white\/90:hover{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_18px_42px_-34px_rgba\(15\,23\,42\,0\.42\)\]:hover{--tw-shadow:0 18px 42px -34px var(--tw-shadow-color,#0f172a6b);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:bg-hover-subtle:focus{background-color:var(--color-hover-subtle)}.focus\:text-accent-success:focus{color:var(--color-accent-success)}.focus\:text-fg-default:focus{color:var(--color-fg-default)}.focus\:text-fg-error:focus{color:var(--color-fg-error)}.focus\:text-white\/90:focus{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.focus\:text-white\/90:focus{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.focus\:opacity-100:focus,.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-accent-danger-hover:active{background-color:var(--color-accent-danger-hover)}.active\:bg-accent-secondary-hover:active{background-color:var(--color-accent-secondary-hover)}.active\:bg-accent-soft-danger-hover:active{background-color:var(--color-accent-soft-danger-hover)}.active\:bg-accent-soft-success-hover:active{background-color:var(--color-accent-soft-success-hover)}.active\:bg-active:active{background-color:var(--color-active)}.active\:bg-cta-hover:active{background-color:var(--color-cta-hover)}.active\:bg-hover:active{background-color:var(--color-hover)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-expanded\:bg-hover-subtle[aria-expanded=true]{background-color:var(--color-hover-subtle)}.aria-expanded\:text-fg-default[aria-expanded=true]{color:var(--color-fg-default)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-hover-subtle[data-highlighted]{background-color:var(--color-hover-subtle)}.data-\[highlighted\]\:text-fg-default[data-highlighted]{color:var(--color-fg-default)}.data-\[state\=on\]\:border-border-secondary[data-state=on],.data-\[state\=on\]\:border-border-secondary\/70[data-state=on]{border-color:var(--color-border-secondary)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=on\]\:border-border-secondary\/70[data-state=on]{border-color:color-mix(in oklab,var(--color-border-secondary) 70%,transparent)}}.data-\[state\=on\]\:bg-cta[data-state=on]{background-color:var(--color-cta)}.data-\[state\=on\]\:bg-elevated[data-state=on]{background-color:var(--color-elevated)}.data-\[state\=on\]\:text-fg-default[data-state=on]{color:var(--color-fg-default)}.data-\[state\=on\]\:text-fg-on-filled[data-state=on]{color:var(--color-fg-on-filled)}.data-\[state\=on\]\:shadow-\[0_8px_18px_-16px_rgba\(15\,18\,24\,0\.28\)\][data-state=on]{--tw-shadow:0 8px 18px -16px var(--tw-shadow-color,#0f121847);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=open\]\:animate-fade-in[data-state=open]{animation:var(--animate-fade-in)}.data-\[state\=open\]\:animate-zoom-in[data-state=open]{animation:var(--animate-zoom-in)}.data-\[state\=open\]\:bg-hover-subtle[data-state=open]{background-color:var(--color-hover-subtle)}.data-\[state\=open\]\:text-fg-default[data-state=open]{color:var(--color-fg-default)}@media not all and (min-width:999px){.max-\[999px\]\:after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.max-\[999px\]\:after\:absolute:after{content:var(--tw-content);position:absolute}.max-\[999px\]\:after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.max-\[999px\]\:after\:right-0:after{content:var(--tw-content);right:calc(var(--spacing) * 0)}.max-\[999px\]\:after\:h-24:after{content:var(--tw-content);height:calc(var(--spacing) * 24)}.max-\[999px\]\:after\:w-12:after{content:var(--tw-content);width:calc(var(--spacing) * 12)}.max-\[999px\]\:after\:bg-\[linear-gradient\(to_right\,transparent\,var\(--page-bg\)\)\]:after{content:var(--tw-content);background-image:linear-gradient(to right,transparent,var(--page-bg))}.max-\[999px\]\:after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}}@media not all and (min-width:40rem){.max-sm\:hidden{display:none}.max-sm\:max-h-none{max-height:none}.max-sm\:shrink-0{flex-shrink:0}.max-sm\:flex-row{flex-direction:row}.max-sm\:gap-1{gap:calc(var(--spacing) * 1)}.max-sm\:overflow-x-hidden{overflow-x:hidden}.max-sm\:py-1{padding-block:calc(var(--spacing) * 1)}.max-sm\:py-2{padding-block:calc(var(--spacing) * 2)}.max-sm\:disabled\:opacity-100:disabled{opacity:1}}@media(min-width:1000px){.min-\[1000px\]\:pointer-events-auto{pointer-events:auto}.min-\[1000px\]\:static{position:static}.min-\[1000px\]\:hidden{display:none}.min-\[1000px\]\:w-auto{width:auto}.min-\[1000px\]\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.min-\[1000px\]\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:1200px){.min-\[1200px\]\:grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,3fr\)\]{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}}@media(min-width:40rem){.sm\:col-start-1{grid-column-start:1}.sm\:col-start-2{grid-column-start:2}.sm\:col-start-auto{grid-column-start:auto}.sm\:row-start-1{grid-row-start:1}.sm\:row-start-2{grid-row-start:2}.sm\:row-start-auto{grid-row-start:auto}.sm\:mx-0{margin-inline:calc(var(--spacing) * 0)}.sm\:ml-10{margin-left:calc(var(--spacing) * 10)}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-11{height:calc(var(--spacing) * 11)}.sm\:h-\[352px\]{height:352px}.sm\:max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.sm\:w-\[18rem\]{width:18rem}.sm\:w-\[300px\]{width:300px}.sm\:w-auto{width:auto}.sm\:max-w-\[176px\]{max-width:176px}.sm\:max-w-\[336px\]{max-width:336px}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-\[560px\]{max-width:560px}.sm\:max-w-\[640px\]{max-width:640px}.sm\:max-w-\[720px\]{max-width:720px}.sm\:flex-1{flex:1}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.sm\:grid-cols-\[auto_minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:auto minmax(0,1fr) auto auto}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:grid-cols-\[minmax\(0\,180px\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,180px) minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\:gap-y-0{row-gap:calc(var(--spacing) * 0)}.sm\:self-auto{align-self:auto}.sm\:self-center{align-self:center}.sm\:justify-self-end{justify-self:flex-end}.sm\:rounded-\[16px\]{border-radius:16px}.sm\:rounded-\[18px\]{border-radius:18px}.sm\:rounded-\[20px\]{border-radius:20px}.sm\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.sm\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:py-5{padding-block:calc(var(--spacing) * 5)}.sm\:py-6{padding-block:calc(var(--spacing) * 6)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}.sm\:pr-48{padding-right:calc(var(--spacing) * 48)}.sm\:text-\[2\.15rem\]{font-size:2.15rem}.sm\:opacity-0{opacity:0}@media(hover:hover){.sm\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.sm\:focus-visible\:opacity-100:focus-visible{opacity:1}}@media(min-width:48rem){.md\:block{display:block}.md\:hidden{display:none}.md\:h-10{height:calc(var(--spacing) * 10)}.md\:w-10{width:calc(var(--spacing) * 10)}.md\:w-auto{width:auto}.md\:basis-auto{flex-basis:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1fr\)_120px_120px_auto\]{grid-template-columns:minmax(0,1fr) 120px 120px auto}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(10\.5rem\,12rem\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(10.5rem,12rem) minmax(0,1fr) auto}.md\:items-center{align-items:center}.md\:justify-self-end{justify-self:flex-end}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:64rem){.lg\:sticky{position:sticky}.lg\:left-0{left:calc(var(--spacing) * 0)}.lg\:z-10{z-index:10}.lg\:z-20{z-index:20}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-end{align-items:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:justify-end{justify-content:flex-end}}.dark\:border-amber-200\/20:where(html.dark *){border-color:#fee68533}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-200\/20:where(html.dark *){border-color:color-mix(in oklab,var(--color-amber-200) 20%,transparent)}}.dark\:border-sky-200\/20:where(html.dark *){border-color:#b8e6fe33}@supports (color:color-mix(in lab,red,red)){.dark\:border-sky-200\/20:where(html.dark *){border-color:color-mix(in oklab,var(--color-sky-200) 20%,transparent)}}.dark\:bg-\[color-mix\(in_srgb\,var\(--elevated\)_82\%\,var\(--hover-subtle\)\)\]:where(html.dark *){background-color:var(--elevated)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-\[color-mix\(in_srgb\,var\(--elevated\)_82\%\,var\(--hover-subtle\)\)\]:where(html.dark *){background-color:color-mix(in srgb,var(--elevated) 82%,var(--hover-subtle))}}.dark\:bg-emphasis:where(html.dark *),.dark\:bg-emphasis\/70:where(html.dark *){background-color:var(--color-emphasis)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emphasis\/70:where(html.dark *){background-color:color-mix(in oklab,var(--color-emphasis) 70%,transparent)}}.dark\:bg-white\/8:where(html.dark *){background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/8:where(html.dark *){background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.dark\:bg-\[linear-gradient\(135deg\,rgba\(23\,35\,52\,0\.72\)_0\%\,rgba\(35\,31\,62\,0\.62\)_54\%\,rgba\(20\,50\,39\,0\.58\)_100\%\)\]:where(html.dark *){background-image:linear-gradient(135deg,#172334b8,#231f3e9e 54%,#14322794)}.dark\:bg-\[linear-gradient\(135deg\,rgba\(44\,34\,18\,0\.58\)_0\%\,rgba\(20\,34\,48\,0\.72\)_58\%\,rgba\(19\,50\,62\,0\.62\)_100\%\)\]:where(html.dark *){background-image:linear-gradient(135deg,#2c221294,#142230b8 58%,#13323e9e)}.dark\:text-emerald-200:where(html.dark *){color:var(--color-emerald-200)}.dark\:text-rose-200:where(html.dark *){color:var(--color-rose-200)}.dark\:text-sky-200:where(html.dark *){color:var(--color-sky-200)}.dark\:brightness-\[0\.85\]:where(html.dark *){--tw-brightness:brightness(.85);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.dark\:saturate-\[0\.9\]:where(html.dark *){--tw-saturate:saturate(.9);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\[\&_\.katex-display\]\:m-0 .katex-display{margin:calc(var(--spacing) * 0)}.\[\&_svg\]\:mx-auto svg{margin-inline:auto}.\[\&_svg\]\:block svg{display:block}.\[\&_svg\]\:h-auto svg{height:auto}.\[\&_svg\]\:max-h-\[min\(68vh\,640px\)\] svg{max-height:min(68vh,640px)}.\[\&_svg\]\:max-w-full svg{max-width:100%}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\:first-child\]\:-translate-x-\[3px\]>svg:first-child{--tw-translate-x: -3px ;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\:last-child\]\:translate-x-\[3px\]>svg:last-child{--tw-translate-x:3px;translate:var(--tw-translate-x) var(--tw-translate-y)}}@keyframes save-ring-spin{to{transform:rotate(360deg)}}:root{color-scheme:light;--surface:#f7f8fa;--muted:#f1f3f6;--subtle:#f8fafceb;--elevated:#fbfcfd;--emphasis:#e7ebf0;--hover:#1b1f250f;--hover-subtle:#1b1f2509;--active:#1b1f251a;--ghost:#1b1f250f;--fg:#151922;--fg-default:#202631;--fg-muted:#485160;--fg-secondary:#626d7c;--fg-tertiary:#8993a2;--fg-disabled:#bcc5d0;--fg-placeholder:#98a2b0;--fg-error:#a24545;--fg-on-accent:#f6f8fb;--fg-on-filled:#f6f8fb;--fg-weekend:#c24b62;--border:#a4acb8;--border-secondary:#c9d0d8;--border-subtle:#e5e9ee;--border-focus:#757f8d;--border-error:#d47777;--accent-primary:#5d6672;--accent-primary-hover:#4f5762;--accent-secondary:#5d6672;--accent-secondary-hover:#4f5762;--accent-danger:#b94a4a;--accent-danger-hover:#a53e3e;--accent-success:#7f9c94;--accent-success-hover:#6e8a82;--accent-soft-primary:#5d66721f;--accent-soft-primary-hover:#5d66722e;--accent-soft-danger:#d68d872e;--accent-soft-danger-hover:#d68d8742;--accent-soft-success:#7f9b862e;--accent-soft-success-hover:#7f9b8642;--cta:#23272d;--cta-hover:#171a1f;--overlay:#13181f5c;--highlight:#5d66721a;--highlight-fg:#202631;--divider:#d9e1e8;--page-bg:#f2f5f8}html.dark{color-scheme:dark;--surface:#16191e;--muted:#1b2026;--subtle:#20252db3;--elevated:#1d2229;--emphasis:#262c34;--hover:#eff3f712;--hover-subtle:#eff3f70a;--active:#eff3f71a;--ghost:#eff3f712;--fg:#eef2f7;--fg-default:#e6ebf2;--fg-muted:#c7cfdb;--fg-secondary:#a9b3c2;--fg-tertiary:#7f8998;--fg-disabled:#545d69;--fg-placeholder:#717b88;--fg-error:#efaaaa;--fg-on-accent:#12161c;--fg-on-filled:#12161c;--fg-weekend:#f19aa9;--border:#48515d;--border-secondary:#5a6471;--border-subtle:#29303a;--border-focus:#b4c0cf;--border-error:#efaaaa;--accent-primary:#b8c0ca;--accent-primary-hover:#c9d0d8;--accent-secondary:#b8c0ca;--accent-secondary-hover:#c9d0d8;--accent-danger:#d36f6f;--accent-danger-hover:#e08383;--accent-success:#90aea4;--accent-success-hover:#a4c0b7;--accent-soft-primary:#b8c0ca1f;--accent-soft-primary-hover:#b8c0ca2e;--accent-soft-danger:#d7928b24;--accent-soft-danger-hover:#d7928b38;--accent-soft-success:#88a99524;--accent-soft-success-hover:#88a99538;--cta:#edf1f5;--cta-hover:#f8fafc;--overlay:#080c108f;--highlight:#b8c0ca1f;--highlight-fg:#eef2f7;--divider:#2b3440;--page-bg:#101318}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes zoom-in{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes zoom-out{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes slide-in-from-top{0%{transform:translateY(-8px)}to{transform:translateY(0)}}@keyframes slide-in-from-bottom{0%{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes slide-in-from-left{0%{transform:translate(-8px)}to{transform:translate(0)}}@keyframes slide-in-from-right{0%{transform:translate(8px)}to{transform:translate(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rounded-sketchy-xs{border-radius:6px}.rounded-sketchy-sm{border-radius:10px}.rounded-sketchy-md{border-radius:14px}.rounded-sketchy-lg{border-radius:18px}.rounded-sketchy-xl{border-radius:28px}.sketchy{border:1px solid var(--border);border-radius:18px}.sketchy-sm{border:1px solid var(--border);border-radius:12px}.sketchy-hover:hover{border-radius:18px}.text-display{font-size:1.375rem;line-height:1.3}.text-heading{font-size:1.125rem;line-height:1.4}.text-subheading{font-size:1rem;line-height:1.5}.text-body{font-size:1rem;line-height:1.6}.text-meta{font-size:.875rem;line-height:1.5}.text-label{font-size:.75rem;line-height:1.4}.text-micro{font-size:.625rem;line-height:1.4}.surface-base{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:inset 0 1px #ffffff1a,0 1px 4px -2px #171d260a}.surface-elevated,.surface-floating{background:var(--elevated)}@supports (color:color-mix(in lab,red,red)){.surface-floating{background:color-mix(in srgb,var(--elevated) 90%,transparent)}}.surface-floating{border:1px solid var(--border-secondary)}@supports (color:color-mix(in lab,red,red)){.surface-floating{border:1px solid color-mix(in srgb,var(--border-secondary) 45%,transparent)}}.surface-floating{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;box-shadow:0 12px 24px -22px #171d2624}.focus-ring-soft:focus-visible{box-shadow:0 0 0 4px var(--accent-soft-primary);outline:none}@supports (color:color-mix(in lab,red,red)){.focus-ring-soft:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-soft-primary) 90%,transparent)}}.focus-ring-soft:focus-visible{border-color:var(--border-focus)}html.dark .surface-base{box-shadow:inset 0 1px #ffffff08,0 1px 4px -2px #0000002e}.grid-auto-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-search-bar{grid-template-columns:32px 1fr 24px}.progress-fill{width:var(--progress-width)}.save-progress-ring{--save-progress:100%;--save-ring-color:var(--border-secondary);background:conic-gradient(from -90deg,var(--save-ring-color) var(--save-progress),var(--hover-subtle) 0)}.save-progress-ring-active{--save-progress:28%;--save-ring-color:var(--accent-primary);animation:.8s linear infinite save-ring-spin}.save-progress-ring-complete{--save-progress:100%;--save-ring-color:var(--accent-success)}.save-progress-ring-error{--save-progress:100%;--save-ring-color:var(--accent-danger)}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.save-progress-ring-active{--save-progress:100%;animation:none}}.skeleton-sized{width:var(--skeleton-width,auto);height:var(--skeleton-height,30px);opacity:var(--skeleton-opacity,1)}.graph-canvas{background:var(--graph-bg);-webkit-user-select:none;user-select:none}.legend-dot{background:var(--legend-color)}html.dark .surface-floating{box-shadow:0 18px 36px -28px #0000006b}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|