clitrigger 0.2.20 → 0.2.21

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.
@@ -1 +1 @@
1
- import{t as b,M as d,N as u,v as l,z as x,B as g,K as C,Z as h,r as m,T as v,j as i,q as j,P as y,U as E,o as S,s as O,f as P,G as T,D as F}from"./index-vTvGYIx2.js";var I=m.memo(({isEmpty:t,onSave:o,Components:s,dict:e})=>i.jsx(s.Generic.Toolbar.Root,{className:F("bn-action-toolbar","bn-comment-actions"),variant:"action-toolbar",children:i.jsx(s.Generic.Toolbar.Button,{className:"bn-button",mainTooltip:e.comments.save_button_text,variant:"compact",isDisabled:t,onClick:o,children:e.comments.save_button_text})}));function U(){let t=d(),o=u(l),s=x(),e=g(),r=C({trailingBlock:!1,dictionary:{...e,placeholders:{emptyDocument:e.placeholders.new_comment}},schema:o.commentEditorSchema||h}),c=m.useCallback(async()=>{await o.createThread({initialComment:{body:r.document}}),o.stopPendingComment(),t.transact(a=>{a.setSelection(v.create(a.doc,a.selection.to))}),t.focus()},[o,r,t]);return i.jsx(s.Comments.Card,{className:"bn-thread",children:i.jsx(j,{autoFocus:!0,editable:!0,editor:r,actions:({isFocused:a,isEmpty:n})=>i.jsx(I,{isFocused:a,isEmpty:n,onSave:c,Components:s,dict:e})})})}var N=b({default:()=>_});function _(t){let o=d(),s=u(l),e=y(l,{editor:o,selector:n=>n.pendingComment}),r=E({editor:o,selector:({editor:n})=>e?{from:n.prosemirrorState.selection.from,to:n.prosemirrorState.selection.to}:void 0}),c=m.useMemo(()=>{var n,p;return{...t.floatingUIOptions,useFloatingOptions:{open:!!e,onOpenChange:f=>{f||(s.stopPendingComment(),o.focus())},placement:"bottom",middleware:[S(10),O(),P()],...(n=t.floatingUIOptions)==null?void 0:n.useFloatingOptions},focusManagerProps:{disabled:!1},elementProps:{style:{zIndex:60},...(p=t.floatingUIOptions)==null?void 0:p.elementProps}}},[s,o,e,t.floatingUIOptions]),a=t.floatingComposer||U;return i.jsx(T,{position:r,portalElement:t.portalElement,...c,children:i.jsx(a,{})})}export{N as n,U as r,_ as t};
1
+ import{t as b,M as d,N as u,v as l,z as x,B as g,K as C,Z as h,r as m,T as v,j as i,q as j,P as y,U as E,o as S,s as O,f as P,G as T,D as F}from"./index-D7opcM5v.js";var I=m.memo(({isEmpty:t,onSave:o,Components:s,dict:e})=>i.jsx(s.Generic.Toolbar.Root,{className:F("bn-action-toolbar","bn-comment-actions"),variant:"action-toolbar",children:i.jsx(s.Generic.Toolbar.Button,{className:"bn-button",mainTooltip:e.comments.save_button_text,variant:"compact",isDisabled:t,onClick:o,children:e.comments.save_button_text})}));function U(){let t=d(),o=u(l),s=x(),e=g(),r=C({trailingBlock:!1,dictionary:{...e,placeholders:{emptyDocument:e.placeholders.new_comment}},schema:o.commentEditorSchema||h}),c=m.useCallback(async()=>{await o.createThread({initialComment:{body:r.document}}),o.stopPendingComment(),t.transact(a=>{a.setSelection(v.create(a.doc,a.selection.to))}),t.focus()},[o,r,t]);return i.jsx(s.Comments.Card,{className:"bn-thread",children:i.jsx(j,{autoFocus:!0,editable:!0,editor:r,actions:({isFocused:a,isEmpty:n})=>i.jsx(I,{isFocused:a,isEmpty:n,onSave:c,Components:s,dict:e})})})}var N=b({default:()=>_});function _(t){let o=d(),s=u(l),e=y(l,{editor:o,selector:n=>n.pendingComment}),r=E({editor:o,selector:({editor:n})=>e?{from:n.prosemirrorState.selection.from,to:n.prosemirrorState.selection.to}:void 0}),c=m.useMemo(()=>{var n,p;return{...t.floatingUIOptions,useFloatingOptions:{open:!!e,onOpenChange:f=>{f||(s.stopPendingComment(),o.focus())},placement:"bottom",middleware:[S(10),O(),P()],...(n=t.floatingUIOptions)==null?void 0:n.useFloatingOptions},focusManagerProps:{disabled:!1},elementProps:{style:{zIndex:60},...(p=t.floatingUIOptions)==null?void 0:p.elementProps}}},[s,o,e,t.floatingUIOptions]),a=t.floatingComposer||U;return i.jsx(T,{position:r,portalElement:t.portalElement,...c,children:i.jsx(a,{})})}export{N as n,U as r,_ as t};
@@ -673,7 +673,7 @@ Cancel = delete worktree only`,"todo.retry":"Retry","todo.retryDesc":"Cleans up
673
673
  *
674
674
  * This source code is licensed under the ISC license.
675
675
  * See the LICENSE file in the root directory of this source tree.
676
- */const oHe=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],aHe=it("zoom-out",oHe);function lHe({onLogin:e}){const[t,n]=O.useState(""),[r,i]=O.useState(!1),[s,o]=O.useState(""),[a,l]=O.useState(!1),{t:c,toggleLang:u}=st(),d=async h=>{if(h.preventDefault(),!!t){o(""),l(!0);try{await e(t,r)}catch{o(c("login.error"))}finally{l(!1)}}};return f.jsxs("div",{className:"min-h-screen bg-theme-bg flex items-center justify-center px-4 relative",children:[f.jsx("button",{onClick:u,className:"lang-toggle absolute top-6 right-6",children:c("lang.toggle")}),f.jsxs("div",{className:"w-full max-w-sm animate-fade-in",children:[f.jsxs("div",{className:"text-center mb-10",children:[f.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-accent/10 mb-5",children:f.jsx(O5,{size:32,className:"text-accent",strokeWidth:1.5})}),f.jsx("h1",{className:"text-2xl font-semibold text-theme-text",children:c("login.title")}),f.jsx("p",{className:"text-theme-muted text-sm mt-2",children:c("login.subtitle")})]}),f.jsx("form",{onSubmit:d,children:f.jsxs("div",{className:"card p-8",children:[f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2",children:c("login.password")}),f.jsx("input",{type:"password",value:t,onChange:h=>n(h.target.value),placeholder:"*************",className:"input-field text-base",autoFocus:!0}),s&&f.jsx("div",{className:"mt-4 py-2.5 px-4 bg-status-error/5 border border-status-error/20 rounded-xl text-sm text-status-error",children:s}),f.jsxs("label",{className:"flex items-center gap-2 mt-5 text-sm text-theme-text-secondary cursor-pointer select-none",children:[f.jsx("input",{type:"checkbox",checked:r,onChange:h=>i(h.target.checked),className:"accent-accent w-4 h-4"}),c("login.rememberMe")]}),f.jsx("button",{type:"submit",disabled:!t||a,className:"btn-primary w-full mt-6 py-3",children:c(a?"login.loading":"login.submit")})]})}),f.jsx("div",{className:"mt-6 text-center text-xs text-theme-text-tertiary",children:c("login.footer")}),f.jsx("div",{className:"mt-4 px-2 py-3 rounded-xl text-xs text-theme-text-tertiary border leading-relaxed text-center",children:c("login.disclaimer")})]})]})}const Mee=8;function cHe({onSetup:e}){const[t,n]=O.useState(""),[r,i]=O.useState(""),[s,o]=O.useState(""),[a,l]=O.useState(!1),{t:c,toggleLang:u}=st(),d=t.length>0&&t.length<Mee,h=r.length>0&&t!==r,p=t.length>=Mee&&t===r&&!a,m=async y=>{if(y.preventDefault(),!!p){o(""),l(!0);try{await e(t,r)}catch(v){o(v instanceof Error&&v.message?v.message:c("setup.error"))}finally{l(!1)}}};return f.jsxs("div",{className:"min-h-screen bg-theme-bg flex items-center justify-center px-4 relative",children:[f.jsx("button",{onClick:u,className:"lang-toggle absolute top-6 right-6",children:c("lang.toggle")}),f.jsxs("div",{className:"w-full max-w-sm animate-fade-in",children:[f.jsxs("div",{className:"text-center mb-10",children:[f.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-accent/10 mb-5",children:f.jsx(O5,{size:32,className:"text-accent",strokeWidth:1.5})}),f.jsx("h1",{className:"text-2xl font-semibold text-theme-text",children:c("setup.title")}),f.jsx("p",{className:"text-theme-muted text-sm mt-2",children:c("setup.subtitle")})]}),f.jsx("form",{onSubmit:m,children:f.jsxs("div",{className:"card p-8",children:[f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2",children:c("setup.password")}),f.jsx("input",{type:"password",value:t,onChange:y=>n(y.target.value),placeholder:"*************",className:"input-field text-base",autoFocus:!0}),d&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:c("setup.tooShort")}),f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2 mt-5",children:c("setup.confirm")}),f.jsx("input",{type:"password",value:r,onChange:y=>i(y.target.value),placeholder:"*************",className:"input-field text-base"}),h&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:c("setup.mismatch")}),s&&f.jsx("div",{className:"mt-4 py-2.5 px-4 bg-status-error/5 border border-status-error/20 rounded-xl text-sm text-status-error",children:s}),f.jsx("button",{type:"submit",disabled:!p,className:"btn-primary w-full mt-6 py-3",children:c(a?"setup.loading":"setup.submit")})]})}),f.jsx("div",{className:"mt-4 px-4 py-3 rounded-xl text-xs text-theme-text-tertiary border leading-relaxed text-center",children:c("setup.tunnelPaused")})]})]})}function uHe(e){return ct("/api/projects/browse",{initialPath:e})}function dHe(e){return ct("/api/projects/open-folder",{path:e})}function S5(){return xt("/api/projects")}function hHe(e){return xt(`/api/projects/${e}`)}function Kxe(e){return ct("/api/projects",e)}function fHe(e){return xt(`/api/projects/${e}/svn-detect`)}function G8(e,t){return jr(`/api/projects/${e}`,t)}function Jxe(e,t){const n=t?`?todoId=${encodeURIComponent(t)}`:"";return xt(`/api/projects/${e}/debug-logs${n}`)}function e1e(e){return Ms(`/api/projects/${e}`)}function pHe(e){return ct("/api/projects/reorder",{ids:e})}function mHe(e){return ct(`/api/projects/${e}/start`)}function gHe(e){return ct(`/api/projects/${e}/stop`)}function t1e(e){return xt(`/api/projects/${e}/status`)}function vHe(e){return ct(`/api/projects/${e}/check-git`)}function n1e(e,t){return xt(`/api/projects/${e}/git-status`)}function yHe(e,t=0,n=50,r){const i=new URLSearchParams({skip:String(t),limit:String(n)});return xt(`/api/projects/${e}/git-log?${i}`)}function Y8(e,t){return xt(`/api/projects/${e}/git-refs`)}function bHe(e,t){return ct(`/api/projects/${e}/git-stage`,{files:t})}function xHe(e,t){return ct(`/api/projects/${e}/git-unstage`,{files:t})}function r1e(e,t){return ct(`/api/projects/${e}/git-commit`,{message:t})}function i1e(e,t,n){return ct(`/api/projects/${e}/git-pull`,{remote:t,branch:n})}function OH(e,t){return ct(`/api/projects/${e}/git-push`,t||{})}function wHe(e){return xt(`/api/projects/${e}/git-remotes`)}function s1e(e,t,n){return ct(`/api/projects/${e}/git-fetch`,{remote:t,prune:n})}function OHe(e,t,n){return ct(`/api/projects/${e}/git-branch`,{name:t,startPoint:n})}function K8(e,t,n){return ct(`/api/projects/${e}/git-branch-delete`,{name:t,force:n})}function J8(e,t){return ct(`/api/projects/${e}/git-checkout`,{branch:t})}function o1e(e,t){return ct(`/api/projects/${e}/git-merge`,{branch:t})}function SHe(e,t){return ct(`/api/projects/${e}/git-stash`,{message:t})}function kHe(e,t){return ct(`/api/projects/${e}/git-stash-pop`,{index:t})}function _He(e){return xt(`/api/projects/${e}/git-stash-list`)}function CHe(e,t,n){return ct(`/api/projects/${e}/git-discard`,{files:t,all:n})}function EHe(e,t,n,r){return ct(`/api/projects/${e}/git-tag`,{name:t,message:n,commit:r})}function Aee(e,t,n){return ct(`/api/projects/${e}/git-branch-rename`,{oldName:t,newName:n})}function THe(e,t){return ct(`/api/projects/${e}/git-rebase`,{onto:t})}function jHe(e,t,n){const r=new URLSearchParams;return t&&r.set("file",t),n&&r.set("staged","true"),xt(`/api/projects/${e}/git-diff?${r}`)}function PHe(e,t){const n=new URLSearchParams({hash:t});return xt(`/api/projects/${e}/git-commit-files?${n}`)}function Nee(e,t,n){const r=new URLSearchParams({hash:t});return n&&r.set("file",n),xt(`/api/projects/${e}/git-commit-diff?${r}`)}function Ree(e){return xt(`/api/projects/${e}/worktrees`)}function $ee(e,t,n){return ct(`/api/projects/${e}/worktree-cleanup`,{worktreePath:t,branchName:n})}function a1e(e){const t=new URLSearchParams;e.hours!==void 0&&t.set("hours",String(e.hours)),e.statuses&&e.statuses.length>0&&t.set("statuses",e.statuses.join(","));const n=t.toString();return n?`?${n}`:""}function MHe(e={}){return xt(`/api/review/queue${a1e(e)}`)}function l1e(e={}){return xt(`/api/review/summary${a1e(e)}`)}function AHe(e){return xt(`/api/review/diff/${encodeURIComponent(e)}`)}function NHe(e,t){return xt(`/api/review/diff/${encodeURIComponent(e)}/file?path=${encodeURIComponent(t)}`)}function RHe(){return xt("/api/favorites")}function $He(e){return ct("/api/favorites",e)}function DHe(e,t){return jr(`/api/favorites/${e}`,t)}function LHe(e){return Ms(`/api/favorites/${e}`)}function IHe(e){return ct(`/api/favorites/${e}/launch`)}function BHe(e){return ct("/api/favorites/browse-file",{initialPath:e})}function e7(){return xt("/api/tunnel/status")}function zHe(){return xt("/api/tunnel/config")}function QHe(e){return jr("/api/tunnel/config",e)}function c1e(e){return ct("/api/tunnel/start",{})}function FHe(){return ct("/api/tunnel/stop")}const u1e=O.createContext({theme:"light",toggleTheme:()=>{}});function HHe(){const[e,t]=O.useState(()=>{const r=localStorage.getItem("theme");return r==="light"||r==="dark"?r:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"});O.useEffect(()=>{document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)},[e]);const n=O.useCallback(()=>{t(r=>r==="light"?"dark":"light")},[]);return{theme:e,toggleTheme:n}}function SH(){return O.useContext(u1e)}const d1e=O.createContext({enabled:!1,supported:!1,toggleNotification:()=>{},sendNotification:()=>{}});function qHe(){const e="Notification"in window,[t,n]=O.useState(()=>e?localStorage.getItem("clitrigger-notifications")==="on"&&Notification.permission==="granted":!1),r=O.useRef(t);O.useEffect(()=>{r.current=t},[t]);const i=O.useCallback(async()=>{if(e)if(r.current)localStorage.setItem("clitrigger-notifications","off"),n(!1);else{if(Notification.permission==="denied"||Notification.permission==="default"&&await Notification.requestPermission()!=="granted")return;localStorage.setItem("clitrigger-notifications","on"),n(!0)}},[e]),s=O.useCallback((o,a)=>{if(!r.current)return;const l=new Notification(o,{body:a});l.onclick=()=>{window.focus(),l.close()}},[]);return{enabled:t,supported:e,toggleNotification:i,sendNotification:s}}function kH(){return O.useContext(d1e)}let VHe=0;function Vy(){const[e,t]=O.useState([]),n=O.useRef(new Map),r=O.useCallback(c=>{t(d=>d.filter(h=>h.id!==c));const u=n.current.get(c);u&&(clearTimeout(u),n.current.delete(c))},[]),i=O.useCallback((c,u="info",d=3500)=>{const h=`toast-${++VHe}`;t(m=>[...m,{id:h,message:c,type:u,duration:d}]);const p=setTimeout(()=>r(h),d);return n.current.set(h,p),h},[r]),s=O.useCallback((c,u)=>i(c,"success",u),[i]),o=O.useCallback((c,u)=>i(c,"error",u),[i]),a=O.useCallback((c,u)=>i(c,"info",u),[i]),l=O.useCallback((c,u)=>i(c,"warning",u),[i]);return{toasts:e,show:i,success:s,error:o,info:a,warning:l,dismiss:r}}function Sd(...e){return e.filter(Boolean).join(" ")}const WHe={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl"},UHe={scale:"animate-scale-in","slide-up":"animate-slide-up"};function Us({open:e,onClose:t,size:n="md",position:r="center",animation:i="scale",disableEscClose:s=!1,disableBackdropClose:o=!1,children:a}){const l=O.useRef(null);return O.useEffect(()=>{if(!e||s)return;const c=u=>{u.key==="Escape"&&t()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[e,s,t]),e?vn.createPortal(f.jsx("div",{ref:l,className:Sd("fixed inset-0 bg-black/50 backdrop-blur-sm z-modal flex",r==="center"?"items-center justify-center p-4":"items-start justify-center px-4 pt-[20vh]"),onClick:c=>{!o&&c.target===l.current&&t()},children:f.jsx("div",{className:Sd("w-full",WHe[n],UHe[i]),children:a})}),document.body):null}function h1e({onSubmit:e,onCancel:t}){const[n,r]=O.useState(""),[i,s]=O.useState(""),[o,a]=O.useState(!1),[l,c]=O.useState(!1),[u,d]=O.useState(""),{t:h}=st(),p=async y=>{if(y.preventDefault(),!(!n.trim()||!i.trim())){d(""),c(!0);try{await e(n.trim(),i.trim())}catch(v){const b=v instanceof Error?v.message:String(v);d(b||h("form.createError"))}finally{c(!1)}}},m=async()=>{a(!0);try{const y=await uHe(i||void 0);y.path&&s(y.path)}catch{}a(!1)};return f.jsx(Us,{open:!0,onClose:t,size:"md",children:f.jsxs("div",{className:"card p-8 shadow-2xl rounded-2xl",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-6",children:h("form.newProject")}),f.jsxs("form",{onSubmit:p,children:[f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:h("form.projectName")}),f.jsx("input",{type:"text",placeholder:"my-project",value:n,onChange:y=>r(y.target.value),className:"input-field",autoFocus:!0})]}),f.jsxs("div",{className:"mb-8",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:h("form.folderPath")}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",placeholder:"C:/Projects/my-project",value:i,onChange:y=>s(y.target.value),className:"input-field text-sm flex-1"}),f.jsx("button",{type:"button",onClick:m,disabled:o,className:"btn-ghost text-sm px-3 shrink-0",title:h("browse.title"),children:o?f.jsx(Ca,{size:16,className:"animate-spin"}):f.jsx(Af,{size:16})})]})]}),u&&f.jsx("p",{className:"text-sm mb-4",style:{color:"var(--color-danger, #ef4444)"},children:u}),f.jsxs("div",{className:"flex justify-end gap-3",children:[f.jsx("button",{type:"button",onClick:t,className:"btn-ghost text-sm",children:h("form.cancel")}),f.jsx("button",{type:"submit",disabled:!n.trim()||!i.trim()||l,className:"btn-primary text-sm",children:h(l?"form.creating":"form.create")})]})]})]})})}const XHe=[{value:"executable",icon:w5},{value:"command",icon:qy},{value:"url",icon:Dm}];function ZHe(e){const t=[],n=/"([^"]*)"|(\S+)/g;let r;for(;(r=n.exec(e))!==null;)t.push(r[1]!==void 0?r[1]:r[2]);return t}function Dee(e){if(!e)return"";try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(n=>typeof n=="string"&&/\s/.test(n)?`"${n}"`:String(n)).join(" ")}catch{}return""}function GHe({initial:e,onSubmit:t,onCancel:n}){const{t:r}=st(),[i,s]=O.useState((e==null?void 0:e.name)??""),[o,a]=O.useState((e==null?void 0:e.type)??"executable"),[l,c]=O.useState((e==null?void 0:e.target)??""),[u,d]=O.useState(Dee((e==null?void 0:e.args)??null)),[h,p]=O.useState((e==null?void 0:e.cwd)??""),[m,y]=O.useState(!1);O.useEffect(()=>{s((e==null?void 0:e.name)??""),a((e==null?void 0:e.type)??"executable"),c((e==null?void 0:e.target)??""),d(Dee((e==null?void 0:e.args)??null)),p((e==null?void 0:e.cwd)??"")},[e]);const[v,b]=O.useState(!1),S=o==="executable",w=async()=>{b(!0);try{const{path:R}=await BHe(l||void 0);if(!R)return;if(c(R),!i.trim()){const N=R.replace(/\\/g,"/").split("/").pop()||"";s(N.replace(/\.[^.]+$/,""))}}catch{}finally{b(!1)}},k=!!e,E=i.trim(),C=l.trim(),T=o!=="url"||/^https?:\/\//i.test(C),j=!!E&&!!C&&T&&!m,P=async R=>{if(R.preventDefault(),!!j){y(!0);try{const N={name:E,type:o,target:C,args:o==="executable"&&u.trim()?ZHe(u.trim()):null,cwd:o!=="url"&&h.trim()?h.trim():null};await t(N)}finally{y(!1)}}},A=r(o==="executable"?"favorites.form.targetHint.executable":o==="command"?"favorites.form.targetHint.command":"favorites.form.targetHint.url");return f.jsx(Us,{open:!0,onClose:n,size:"md",children:f.jsxs("div",{className:"card p-8 shadow-2xl rounded-2xl",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-6",children:r(k?"favorites.form.title.edit":"favorites.form.title.create")}),f.jsxs("form",{onSubmit:P,children:[f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.type")}),f.jsx("div",{className:"grid grid-cols-3 gap-2",children:XHe.map(({value:R,icon:N})=>f.jsxs("button",{type:"button",onClick:()=>a(R),className:"flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-xs font-medium transition-all border",style:o===R?{backgroundColor:"var(--color-accent)",color:"white",borderColor:"var(--color-accent)"}:{color:"var(--color-text-tertiary)",borderColor:"var(--color-border)"},children:[f.jsx(N,{size:14}),r(`favorites.types.${R}`)]},R))})]}),f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.name")}),f.jsx("input",{type:"text",value:i,onChange:R=>s(R.target.value),className:"input-field",autoFocus:!0})]}),f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.target")}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",value:l,onChange:R=>c(R.target.value),className:"input-field text-sm font-mono flex-1",placeholder:A}),S&&f.jsxs("button",{type:"button",onClick:w,disabled:v,className:"btn-ghost text-sm whitespace-nowrap flex items-center gap-1.5 disabled:opacity-50",children:[f.jsx(Af,{size:14}),r("favorites.form.browse")]})]}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:A})]}),o==="executable"&&f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.args")}),f.jsx("input",{type:"text",value:u,onChange:R=>d(R.target.value),className:"input-field text-sm font-mono",placeholder:'--flag value "with spaces"'})]}),o!=="url"&&f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.cwd")}),f.jsx("input",{type:"text",value:h,onChange:R=>p(R.target.value),className:"input-field text-sm font-mono",placeholder:"C:/Projects/my-project"})]}),f.jsx("p",{className:"mb-6 text-2xs leading-snug",style:{color:"var(--color-text-muted)"},children:r("favorites.security.notice")}),f.jsxs("div",{className:"flex justify-end gap-3",children:[f.jsx("button",{type:"button",onClick:n,className:"btn-ghost text-sm",children:r("favorites.form.cancel")}),f.jsx("button",{type:"submit",disabled:!j,className:"btn-primary text-sm",children:r(k?"favorites.form.save":"favorites.form.create")})]})]})]})})}const YHe=/^([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i;function KHe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState(""),[o,a]=O.useState(""),[l,c]=O.useState(""),[u,d]=O.useState(""),[h,p]=O.useState(!1),[m,y]=O.useState(!1),[v,b]=O.useState(!1),[S,w]=O.useState(null);O.useEffect(()=>{let N=!1;return Promise.all([zHe(),e7()]).then(([D,$])=>{N||(s(D.tunnelName),a(D.customHostname),c(D.tunnelName),d(D.customHostname),w($))}).catch(()=>{}),()=>{N=!0}},[]);const k=i.trim(),E=o.trim(),C=k!==l.trim()||E!==u.trim(),T=!!E&&(!YHe.test(E)||E.toLowerCase()==="localhost"||E.toLowerCase()==="127.0.0.1"),j=!!E&&!k,P=C&&!m&&!T&&!j,A=async()=>{if(P){y(!0);try{const N=await QHe({tunnelName:k,customHostname:E});c(N.tunnelName),d(N.customHostname),s(N.tunnelName),a(N.customHostname),r(t("tunnel.saved"))}catch(N){n(N instanceof Error?N.message:t("tunnel.saveFailed"))}finally{y(!1)}}},R=async()=>{b(!0);try{try{await FHe()}catch{}const N=await c1e();w({status:"running",url:N.url}),r(t("tunnel.restarted"))}catch(N){n(N instanceof Error?N.message:t("tunnel.restartFailed"))}finally{b(!1)}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("tunnel.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("tunnel.description")}),S&&f.jsxs("div",{className:"mb-5 p-3 rounded-lg text-xs flex items-center gap-2",style:{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-tertiary)"},children:[f.jsx("span",{className:`w-2 h-2 rounded-full ${S.status==="running"?"bg-status-success":S.status==="error"?"bg-status-error":"bg-status-pending"}`}),f.jsx("span",{className:"font-medium",children:t(`tunnel.status.${S.status}`)}),S.url&&f.jsx("a",{href:S.url,target:"_blank",rel:"noreferrer",className:"ml-auto font-mono truncate hover:underline",style:{color:"var(--color-accent)"},children:S.url})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("tunnel.name.label")}),f.jsx("input",{type:"text",value:i,onChange:N=>s(N.target.value),placeholder:t("tunnel.name.placeholder"),className:"input-field text-sm font-mono"}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("tunnel.name.hint")})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("tunnel.hostname.label")}),f.jsx("input",{type:"text",value:o,onChange:N=>a(N.target.value),placeholder:t("tunnel.hostname.placeholder"),className:"input-field text-sm font-mono"}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("tunnel.hostname.hint")}),T&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("tunnel.hostname.invalid")}),j&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("tunnel.hostname.needsName")})]}),f.jsxs("div",{className:"mb-5",children:[f.jsxs("button",{type:"button",onClick:()=>p(!h),className:"flex items-center gap-1 text-xs text-accent-dark hover:text-accent transition-colors",children:[f.jsx("span",{className:`inline-block transition-transform ${h?"rotate-90":""}`,children:"▶"}),t("tunnel.guide.toggle")]}),h&&f.jsxs("div",{className:"mt-3 p-3 bg-warm-50 border border-warm-150 rounded-lg text-xs text-warm-600 space-y-2",children:[f.jsx("p",{className:"font-semibold text-warm-700 mb-1",children:t("tunnel.guide.heading")}),f.jsxs("ol",{className:"list-decimal list-inside space-y-1 ml-1",children:[f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel login"})}),f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel create my-app"})}),f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel route dns my-app app.your-domain.com"})}),f.jsx("li",{children:t("tunnel.guide.step4")})]}),f.jsx("p",{className:"text-2xs text-warm-400 pt-1",children:t("tunnel.guide.note")})]})]}),f.jsxs("div",{className:"flex items-center justify-between gap-3",children:[f.jsx("button",{type:"button",onClick:R,disabled:v,className:"btn-ghost text-sm disabled:opacity-50",children:v?(S==null?void 0:S.status)==="running"?t("tunnel.restarting"):t("tunnel.starting"):(S==null?void 0:S.status)==="running"?t("tunnel.restart"):t("tunnel.start")}),f.jsxs("div",{className:"flex gap-3",children:[e&&f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("tunnel.close")}),f.jsx("button",{type:"button",onClick:A,disabled:!P,className:"btn-primary text-sm",children:t(m?"tunnel.saving":"tunnel.save")})]})]})]})}const Lee=8;function JHe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState(""),[o,a]=O.useState(""),[l,c]=O.useState(""),[u,d]=O.useState(!1),h=o.length>0&&o.length<Lee,p=l.length>0&&o!==l,m=!!i&&o.length>=Lee&&o===l&&!u,y=()=>{s(""),a(""),c("")},v=async()=>{if(m){d(!0);try{await F7e(i,o,l),r(t("account.saved")),y()}catch(b){n(b instanceof Error&&b.message?b.message:t("account.saveFailed"))}finally{d(!1)}}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("account.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("account.description")}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.oldPassword")}),f.jsx("input",{type:"password",value:i,onChange:b=>s(b.target.value),className:"input-field text-sm",autoComplete:"current-password"})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.newPassword")}),f.jsx("input",{type:"password",value:o,onChange:b=>a(b.target.value),className:"input-field text-sm",autoComplete:"new-password"}),h&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("account.tooShort")})]}),f.jsxs("div",{className:"mb-6",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.confirm")}),f.jsx("input",{type:"password",value:l,onChange:b=>c(b.target.value),className:"input-field text-sm",autoComplete:"new-password"}),p&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("account.mismatch")})]}),f.jsxs("div",{className:"flex items-center justify-end gap-3",children:[e&&f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("account.close")}),f.jsx("button",{type:"button",onClick:v,disabled:!m,className:"btn-primary text-sm",children:t(u?"account.saving":"account.save")})]})]})}function _H(){return xt("/api/session-tags")}function eqe(e){return ct("/api/session-tags",e)}function tqe(e,t){return jr(`/api/session-tags/${e}`,t)}function nqe(e){return Ms(`/api/session-tags/${e}`)}function f1e(){return xt("/api/session-aliases")}function p1e(e){return ct("/api/session-aliases",e)}function rqe(e,t){return jr(`/api/session-aliases/${e}`,t)}function iqe(e){return Ms(`/api/session-aliases/${e}`)}function CH(){return xt("/api/session-settings")}function Iee(e){return jr("/api/session-settings",e)}const Ue={titleBg:"#2d2d2d",titleText:"#999",bg:"#0c0c0c",text:"#cccccc",dim:"#666666",bright:"#f2f2f2",prompt:"#16c60c",error:"#f14c4c",warning:"#cca700",info:"#569cd6",separator:"#333333"},xn="'Cascadia Code', 'Cascadia Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace",EH=13,j1=8,P1=28,lw=new Map,lv=new Map;let kE=EH;function TH(e){return`sessionFontSize:${e}`}function t7(e){return Number.isFinite(e)?Math.max(j1,Math.min(P1,Math.round(e))):kE}function sqe(e){if(lw.has(e))return!0;try{return localStorage.getItem(TH(e))!==null}catch{return!1}}function S2(e){const t=lw.get(e);if(t!==void 0)return t;let n=null;try{const r=localStorage.getItem(TH(e));if(r!==null){const i=parseInt(r,10);Number.isFinite(i)&&(n=t7(i))}}catch{}return n===null?t7(kE):(lw.set(e,n),n)}function n7(e,t){const n=t7(t);if(lw.get(e)===n)return;lw.set(e,n);try{localStorage.setItem(TH(e),String(n))}catch{}const r=lv.get(e);r&&r.forEach(i=>i(n))}function UR(e,t){n7(e,S2(e)+t)}function k2(e){const t=Math.max(j1,Math.min(P1,Math.round(e)));Number.isFinite(t)&&t!==kE&&(kE=t,lv.forEach((n,r)=>{sqe(r)||n.forEach(i=>i(t))}))}function m1e(e){const[t,n]=O.useState(()=>S2(e));O.useEffect(()=>{n(S2(e));let s=lv.get(e);return s||(s=new Set,lv.set(e,s)),s.add(n),()=>{const o=lv.get(e);o&&(o.delete(n),o.size===0&&lv.delete(e))}},[e]);const r=O.useCallback(s=>n7(e,s),[e]),i=O.useCallback(s=>n7(e,S2(e)+s),[e]);return[t,r,i]}const M1=["#A78BFA","#F472B6","#FB923C","#FBBF24","#34D399","#60A5FA","#F87171","#94A3B8"];function Bee(e){for(const t of M1)if(!e.some(n=>n.color.toLowerCase()===t.toLowerCase()))return t;return M1[e.length%M1.length]}function oqe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState([]),[o,a]=O.useState(!1),[l,c]=O.useState(EH),[u,d]=O.useState(!1),[h,p]=O.useState(!1),m=O.useRef(null),[y,v]=O.useState(""),[b,S]=O.useState(M1[0]),[w,k]=O.useState(!1),[E,C]=O.useState(null),[T,j]=O.useState(""),[P,A]=O.useState(M1[0]),[R,N]=O.useState(!1),[D,$]=O.useState([]),[I,H]=O.useState(""),[V,q]=O.useState(""),[L,z]=O.useState(!1),[Q,W]=O.useState(null),[U,G]=O.useState(""),[ne,J]=O.useState(""),[ee,X]=O.useState(!1);O.useEffect(()=>{let ie=!1;return Promise.all([_H(),CH(),f1e()]).then(([se,re,oe])=>{ie||(s(se),a(re.defaultUseWorktree),c(re.defaultFontSize),k2(re.defaultFontSize),S(Bee(se)),$(oe),d(!0))}).catch(se=>{ie||n(se instanceof Error?se.message:"Failed to load")}),()=>{ie=!0}},[n]);const Y=y.trim(),te=!!Y&&!w,he=O.useMemo(()=>[...i].sort((ie,se)=>ie.sort_order-se.sort_order||ie.name.localeCompare(se.name)),[i]);O.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]);const Z=ie=>{if(!Number.isFinite(ie))return;const se=Math.max(j1,Math.min(P1,Math.round(ie)));c(se),k2(se),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{Iee({defaultFontSize:se}).then(re=>{c(re.defaultFontSize),k2(re.defaultFontSize)}).catch(re=>n(re instanceof Error?re.message:"Save failed"))},350)},ge=async ie=>{p(!0);try{const se=await Iee({defaultUseWorktree:ie});a(se.defaultUseWorktree),r(t("sessionSettings.saved"))}catch(se){n(se instanceof Error?se.message:"Save failed")}finally{p(!1)}},ue=async()=>{if(te){k(!0);try{const ie=await eqe({name:Y,color:b});s(se=>[...se,ie]),v(""),S(Bee([...i,ie]))}catch(ie){n(ie instanceof Error?ie.message:"Create failed")}finally{k(!1)}}},me=ie=>{C(ie.id),j(ie.name),A(ie.color)},ye=()=>{C(null),j("")},be=async()=>{if(!E)return;const ie=T.trim();if(ie){N(!0);try{const se=await tqe(E,{name:ie,color:P});s(re=>re.map(oe=>oe.id===se.id?se:oe)),ye()}catch(se){n(se instanceof Error?se.message:"Save failed")}finally{N(!1)}}},_e=async ie=>{if(confirm(t("sessionSettings.tags.deleteConfirm").replace("{name}",ie.name)))try{await nqe(ie.id),s(se=>se.filter(re=>re.id!==ie.id))}catch(se){n(se instanceof Error?se.message:"Delete failed")}},Ae=I.trim(),De=V.trim(),Qe=!!Ae&&!!De&&!L,Je=O.useMemo(()=>[...D].sort((ie,se)=>ie.sort_order-se.sort_order||ie.name.localeCompare(se.name)),[D]),Oe=async()=>{if(Qe){z(!0);try{const ie=await p1e({name:Ae,command_template:De});$(se=>[...se,ie]),H(""),q("")}catch(ie){n(ie instanceof Error?ie.message:"Create failed")}finally{z(!1)}}},fe=ie=>{W(ie.id),G(ie.name),J(ie.command_template)},le=()=>{W(null),G(""),J("")},ae=async()=>{if(!Q)return;const ie=U.trim(),se=ne.trim();if(!(!ie||!se)){X(!0);try{const re=await rqe(Q,{name:ie,command_template:se});$(oe=>oe.map(we=>we.id===re.id?re:we)),le()}catch(re){n(re instanceof Error?re.message:"Save failed")}finally{X(!1)}}},ce=async ie=>{if(confirm(`Delete alias "${ie.name}"? Sessions using it will fall back to OS default shell.`))try{await iqe(ie.id),$(se=>se.filter(re=>re.id!==ie.id))}catch(se){n(se instanceof Error?se.message:"Delete failed")}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("sessionSettings.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("sessionSettings.description")}),f.jsxs("section",{className:"mb-7",children:[f.jsxs("h3",{className:"text-sm font-semibold text-warm-700 mb-2 flex items-center gap-1.5",children:[f.jsx(rp,{size:14}),t("sessionSettings.worktree.title")]}),f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[f.jsx("input",{type:"checkbox",checked:o,disabled:h||!u,onChange:ie=>ge(ie.target.checked),className:"rounded border-warm-300"}),f.jsx("span",{className:"text-sm text-warm-600",children:t("sessionSettings.worktree.label")})]}),f.jsx("p",{className:"mt-1 text-2xs ml-6",style:{color:"var(--color-text-muted)"},children:t("sessionSettings.worktree.hint")})]}),f.jsxs("section",{className:"mb-7",children:[f.jsxs("h3",{className:"text-sm font-semibold text-warm-700 mb-2 flex items-center gap-1.5",children:[f.jsx(UFe,{size:14}),t("sessionSettings.fontSize.title")]}),f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("input",{type:"range",min:j1,max:P1,step:1,value:l,disabled:!u,onChange:ie=>Z(parseInt(ie.target.value,10)),className:"flex-1 max-w-xs","aria-label":t("sessionSettings.fontSize.label")}),f.jsx("input",{type:"number",min:j1,max:P1,step:1,value:l,disabled:!u,onChange:ie=>Z(parseInt(ie.target.value,10)),className:"input text-sm w-20"}),f.jsx("span",{className:"text-xs text-warm-400",children:"px"})]}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("sessionSettings.fontSize.hint")})]}),f.jsxs("section",{children:[f.jsx("h3",{className:"text-sm font-semibold text-warm-700 mb-2",children:t("sessionSettings.tags.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-3",children:t("sessionSettings.tags.description")}),f.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[f.jsx("input",{type:"color",value:b,onChange:ie=>S(ie.target.value),className:"w-9 h-9 rounded cursor-pointer border border-warm-200",title:t("sessionSettings.tags.color")}),f.jsx("input",{type:"text",value:y,onChange:ie=>v(ie.target.value),onKeyDown:ie=>{ie.key==="Enter"&&(ie.preventDefault(),ue())},placeholder:t("sessionSettings.tags.namePlaceholder"),className:"input text-sm flex-1",maxLength:32}),f.jsxs("button",{type:"button",onClick:ue,disabled:!te,className:"btn-primary text-sm py-1.5 px-3 inline-flex items-center gap-1",children:[f.jsx(is,{size:14}),t("sessionSettings.tags.add")]})]}),he.length===0?f.jsx("p",{className:"text-xs text-warm-400 italic py-3",children:t("sessionSettings.tags.empty")}):f.jsx("ul",{className:"space-y-1.5",children:he.map(ie=>{const se=E===ie.id;return f.jsx("li",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border",style:{borderColor:"var(--color-border)"},children:se?f.jsxs(f.Fragment,{children:[f.jsx("input",{type:"color",value:P,onChange:re=>A(re.target.value),className:"w-7 h-7 rounded cursor-pointer border border-warm-200"}),f.jsx("input",{type:"text",value:T,onChange:re=>j(re.target.value),onKeyDown:re=>{re.key==="Enter"&&(re.preventDefault(),be()),re.key==="Escape"&&ye()},autoFocus:!0,className:"input text-sm flex-1",maxLength:32}),f.jsx("button",{type:"button",onClick:be,disabled:R||!T.trim(),className:"p-1.5 text-status-success hover:bg-status-success/10 rounded",title:t("sessionSettings.tags.save"),children:f.jsx(rc,{size:14})}),f.jsx("button",{type:"button",onClick:ye,className:"p-1.5 text-warm-400 hover:bg-warm-100 rounded",title:t("sessionSettings.tags.cancel"),children:f.jsx(Yn,{size:14})})]}):f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"w-4 h-4 rounded-full shrink-0 border",style:{backgroundColor:ie.color,borderColor:"rgba(0,0,0,0.08)"}}),f.jsx("span",{className:"text-sm text-warm-700 flex-1 truncate",children:ie.name}),f.jsx("button",{type:"button",onClick:()=>me(ie),className:"p-1.5 text-warm-400 hover:text-warm-700 hover:bg-warm-100 rounded",title:t("sessionSettings.tags.edit"),children:f.jsx(Ea,{size:14})}),f.jsx("button",{type:"button",onClick:()=>_e(ie),className:"p-1.5 text-warm-400 hover:text-status-error hover:bg-warm-100 rounded",title:t("sessionSettings.tags.delete"),children:f.jsx(Qi,{size:14})})]})},ie.id)})})]}),f.jsxs("section",{className:"mt-7",children:[f.jsx("h3",{className:"text-sm font-semibold text-warm-700 mb-2",children:"Terminal aliases"}),f.jsx("p",{className:"text-xs text-warm-400 mb-3",children:"Saved command snippets. Click the ⌘ icon in any terminal window's titlebar to insert one as input — Enter is yours to press."}),f.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[f.jsx("input",{type:"text",value:I,onChange:ie=>H(ie.target.value),placeholder:"Name (e.g. WSL Ubuntu)",className:"input text-sm w-44",maxLength:64}),f.jsx("input",{type:"text",value:V,onChange:ie=>q(ie.target.value),onKeyDown:ie=>{ie.key==="Enter"&&(ie.preventDefault(),Oe())},placeholder:"Command (e.g. wsl -d Ubuntu)",className:"input text-sm flex-1 font-mono",maxLength:1024}),f.jsxs("button",{type:"button",onClick:Oe,disabled:!Qe,className:"btn-primary text-sm py-1.5 px-3 inline-flex items-center gap-1",children:[f.jsx(is,{size:14}),"Add"]})]}),Je.length===0?f.jsx("p",{className:"text-xs text-warm-400 italic py-3",children:"No aliases yet."}):f.jsx("ul",{className:"space-y-1.5",children:Je.map(ie=>{const se=Q===ie.id;return f.jsx("li",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border",style:{borderColor:"var(--color-border)"},children:se?f.jsxs(f.Fragment,{children:[f.jsx("input",{type:"text",value:U,onChange:re=>G(re.target.value),className:"input text-sm w-44",maxLength:64}),f.jsx("input",{type:"text",value:ne,onChange:re=>J(re.target.value),onKeyDown:re=>{re.key==="Enter"&&(re.preventDefault(),ae()),re.key==="Escape"&&le()},autoFocus:!0,className:"input text-sm flex-1 font-mono",maxLength:1024}),f.jsx("button",{type:"button",onClick:ae,disabled:ee||!U.trim()||!ne.trim(),className:"p-1.5 text-status-success hover:bg-status-success/10 rounded",title:"Save",children:f.jsx(rc,{size:14})}),f.jsx("button",{type:"button",onClick:le,className:"p-1.5 text-warm-400 hover:bg-warm-100 rounded",title:"Cancel",children:f.jsx(Yn,{size:14})})]}):f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-sm text-warm-700 w-44 truncate",children:ie.name}),f.jsx("code",{className:"text-xs text-warm-500 flex-1 truncate font-mono",children:ie.command_template}),f.jsx("button",{type:"button",onClick:()=>fe(ie),className:"p-1.5 text-warm-400 hover:text-warm-700 hover:bg-warm-100 rounded",title:"Edit",children:f.jsx(Ea,{size:14})}),f.jsx("button",{type:"button",onClick:()=>ce(ie),className:"p-1.5 text-warm-400 hover:text-status-error hover:bg-warm-100 rounded",title:"Delete",children:f.jsx(Qi,{size:14})})]})},ie.id)})})]}),e&&f.jsx("div",{className:"flex justify-end gap-3 mt-7",children:f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("tunnel.close")})})]})}function zee({open:e,onClose:t}){const{t:n}=st(),[r,i]=O.useState("account");if(!e)return null;const s=[{id:"account",label:n("settings.tabs.account"),icon:$9e},{id:"session",label:n("settings.tabs.session"),icon:O5},{id:"tunnel",label:n("settings.tabs.tunnel"),icon:Fxe}];return f.jsx(Us,{open:e,onClose:t,size:"xl",children:f.jsx("div",{className:"card shadow-2xl rounded-2xl overflow-hidden",children:f.jsxs("div",{className:"flex",style:{minHeight:460},children:[f.jsxs("aside",{className:"w-44 shrink-0 border-r flex flex-col",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-hover)"},children:[f.jsx("div",{className:"px-4 pt-5 pb-3 text-xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:n("settings.title")}),f.jsx("nav",{className:"flex flex-col",children:s.map(({id:o,label:a,icon:l})=>{const c=r===o;return f.jsxs("button",{type:"button",onClick:()=>i(o),className:"flex items-center gap-2 px-4 py-2.5 text-sm transition-colors text-left",style:{color:c?"var(--color-accent)":"var(--color-text-secondary)",backgroundColor:c?"var(--color-bg-primary)":"transparent",fontWeight:c?600:400},children:[f.jsx(l,{size:14}),f.jsx("span",{children:a})]},o)})}),f.jsxs("div",{className:"px-4 py-3 mt-auto text-[11px] tracking-wide",style:{color:"var(--color-text-muted)"},children:["v","0.2.20"]})]}),f.jsxs("div",{className:"flex-1 min-w-0",children:[r==="account"&&f.jsx(JHe,{onClose:t}),r==="session"&&f.jsx(oqe,{onClose:t}),r==="tunnel"&&f.jsx(KHe,{onClose:t})]})]})})})}const aqe={success:Bxe,error:vH,warning:Hy,info:N9e},lqe={success:"text-status-success",error:"text-status-error",warning:"text-status-warning",info:"text-accent"},cqe={success:"bg-status-success",error:"bg-status-error",warning:"bg-status-warning",info:"bg-accent"};function uqe({toast:e,onDismiss:t}){const[n,r]=O.useState(!1),i=aqe[e.type],s=e.duration??3500;return O.useEffect(()=>{const o=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(o)},[]),f.jsxs("div",{className:Sd("relative flex items-start gap-3 px-4 py-3 rounded-xl shadow-elevated overflow-hidden","bg-theme-card border border-theme-border min-w-[280px] max-w-sm","transition-all duration-300",n?"animate-slide-in-right opacity-100":"opacity-0 translate-x-8"),children:[f.jsx(i,{size:16,className:Sd("mt-0.5 flex-shrink-0",lqe[e.type])}),f.jsx("p",{className:"text-xs text-theme-text flex-1 leading-snug",children:e.message}),f.jsx("button",{onClick:()=>t(e.id),className:"p-0.5 rounded text-theme-muted hover:text-theme-text transition-colors flex-shrink-0",children:f.jsx(Yn,{size:12})}),f.jsx("div",{className:Sd("absolute bottom-0 left-0 h-0.5",cqe[e.type]),style:{animation:`toastProgress ${s}ms linear forwards`}})]})}function _E({toasts:e,onDismiss:t}){return e.length===0?null:vn.createPortal(f.jsx("div",{className:"fixed bottom-6 right-6 z-toast flex flex-col gap-2 items-end",children:e.map(n=>f.jsx(uqe,{toast:n,onDismiss:t},n.id))}),document.body)}const r7=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"];function dqe(e,t){let n=0;for(let r=0;r<e.length;r++)n=(n<<5)-n+e.charCodeAt(r)|0;return Math.abs(n)%t}function cw(e){return e.color&&/^#[0-9a-f]{6}$/i.test(e.color)?e.color:r7[dqe(e.id,r7.length)]}const Qee=192,hqe=88,T_=8;function fqe({project:e,anchorX:t,anchorY:n,onPick:r,onClose:i}){const s=O.useRef(null),[o,a]=O.useState({left:t,top:n}),l=cw(e);return O.useLayoutEffect(()=>{const c=Math.min(Math.max(t,T_),window.innerWidth-Qee-T_),u=Math.min(Math.max(n,T_),window.innerHeight-hqe-T_);a({left:c,top:u})},[t,n]),O.useEffect(()=>{const c=d=>{var h;(h=s.current)!=null&&h.contains(d.target)||i()},u=d=>{d.key==="Escape"&&i()};return window.addEventListener("mousedown",c),window.addEventListener("keydown",u),()=>{window.removeEventListener("mousedown",c),window.removeEventListener("keydown",u)}},[i]),vn.createPortal(f.jsxs("div",{ref:s,role:"menu",style:{position:"fixed",left:o.left,top:o.top,width:Qee,zIndex:1e3,background:"var(--color-bg-elevated, #1f1f23)",border:"1px solid var(--color-border)",borderRadius:10,padding:10,boxShadow:"0 12px 32px rgba(0,0,0,0.45)"},children:[f.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginBottom:8},children:r7.map(c=>{const u=e.color?c.toLowerCase()===e.color.toLowerCase():c===l&&!e.color;return f.jsx("button",{onClick:()=>r(c),"aria-label":c,style:{width:20,height:20,borderRadius:6,background:c,border:u?"2px solid var(--color-text-primary)":"2px solid transparent",cursor:"pointer",padding:0}},c)})}),f.jsx("button",{onClick:()=>r(null),style:{width:"100%",background:"transparent",border:"1px solid var(--color-border)",color:"var(--color-text-tertiary)",padding:"4px 8px",borderRadius:6,fontSize:11,cursor:"pointer"},children:"자동 색 (기본값)"})]}),document.body)}function pqe(e){return e==="executable"?w5:e==="command"?qy:Dm}function mqe({onLogout:e,authRequired:t,connected:n,onEvent:r,onClose:i,collapsed:s=!1,onToggleCollapsed:o}){var ie;const[a,l]=O.useState([]),[c,u]=O.useState({}),[d,h]=O.useState(null),[p,m]=O.useState(!1),[y,v]=O.useState(null),[b,S]=O.useState([]),[w,k]=O.useState(!1),[E,C]=O.useState(null),[T,j]=O.useState(!1),[P,A]=O.useState(null),[R,N]=O.useState(!1),[D,$]=O.useState(null),[I,H]=O.useState(null),V=xc(),q=Cg(),{t:L,toggleLang:z}=st(),{theme:Q,toggleTheme:W}=SH(),{enabled:U,supported:G,toggleNotification:ne}=kH(),{toasts:J,error:ee,success:X,info:Y,warning:te,dismiss:he}=Vy(),Z=((ie=V.pathname.match(/^\/projects\/([^/]+)/))==null?void 0:ie[1])||null;O.useEffect(()=>{De(),ue(),e7().then(A).catch(()=>{})},[]);async function ge(){if(!R){N(!0);try{const se=await e7();if(A(se),se.status==="running"&&se.url){await navigator.clipboard.writeText(se.url),X(L("tunnel.urlCopied"));return}const re=await c1e(),oe={status:"running",url:re.url};A(oe);try{await navigator.clipboard.writeText(re.url),X(L("tunnel.urlCopied"))}catch{X(re.url)}}catch(se){ee(se instanceof Error?se.message:L("tunnel.restartFailed"))}finally{N(!1)}}}function ue(){RHe().then(S).catch(()=>{})}const me=async se=>{try{E?await DHe(E.id,se):await $He(se),k(!1),C(null),ue()}catch(re){ee(re instanceof Error?re.message:"Failed to save favorite")}},ye=async se=>{try{await IHe(se)}catch(re){const oe=re instanceof Error?re.message:L("favorites.launchFailed");ee(`${L("favorites.launchFailed")}: ${oe}`)}},be=async(se,re)=>{if(re.preventDefault(),re.stopPropagation(),!!confirm(L("favorites.deleteConfirm")))try{await LHe(se),S(oe=>oe.filter(we=>we.id!==se))}catch(oe){ee(oe instanceof Error?oe.message:"Failed to delete favorite")}},_e=(se,re)=>{re.preventDefault(),re.stopPropagation(),C(se),k(!0)};O.useEffect(()=>{const se=()=>De();return window.addEventListener("projects:changed",se),()=>window.removeEventListener("projects:changed",se)},[]),O.useEffect(()=>{const se=()=>Ae();return window.addEventListener("review:changed",se),()=>window.removeEventListener("review:changed",se)},[]),O.useEffect(()=>r(se=>{var re;if(se.type==="project:status-changed"&&se.projectId&&u(oe=>({...oe,[se.projectId]:{running:se.running??0,completed:se.completed??0,total:se.total??0,running_sessions:se.running_sessions??0,running_discussions:se.running_discussions??0}})),se.type==="todo:status-changed"&&Ae(),se.type==="memory:ingest-finished"){const oe=a.find(We=>We.id===se.projectId),we=(oe==null?void 0:oe.name)??"",Te=se.sourceTitle?`“${se.sourceTitle}”`:se.sourceType??"",ze=we?`[${we}] `:"";if(se.error){ee(`${ze}${L("wiki.ingest.toast.failed")}: ${se.error}`,6e3);return}const Ze=se.created??0,Fe=se.updated??0,Ce=se.edgesAdded??0;if(Ze+Fe+Ce>0){const We=L("wiki.ingest.toast.success").replace("{source}",Te).replace("{created}",String(Ze)).replace("{updated}",String(Fe)).replace("{edges}",String(Ce));X(`${ze}${We}`)}else(re=se.skipped)!=null&&re.parseFailed?te(`${ze}${L("wiki.ingest.toast.parseFailed").replace("{source}",Te)}`,5e3):Y(`${ze}${L("wiki.ingest.toast.empty").replace("{source}",Te)}`,4e3)}}),[r,a,L,ee,Y,X,te]),O.useEffect(()=>{Ae()},[]);function Ae(){l1e({hours:24}).then(se=>h(se.total_todos)).catch(()=>{})}function De(){S5().then(se=>{l(se),se.forEach(re=>{t1e(re.id).then(oe=>{u(we=>({...we,[re.id]:oe}))}).catch(()=>{})})}).catch(()=>{})}const Qe=()=>{i==null||i()},Je=async(se,re)=>{await Kxe({name:se,path:re}),m(!1),window.dispatchEvent(new Event("projects:changed"))},Oe=O.useCallback(async(se,re)=>{const oe=a.map(We=>We.id),we=oe.indexOf(se);if(we<0)return;const Te=oe.filter(We=>We!==se),ze=re>we?re-1:re;if(ze===we)return;const Ze=[...Te.slice(0,ze),se,...Te.slice(ze)],Fe=a,Ce=new Map(a.map(We=>[We.id,We])),Ge=Ze.map(We=>Ce.get(We)).filter(Boolean);l(Ge);try{await pHe(Ze)}catch(We){l(Fe),ee(We instanceof Error?We.message:"Failed to reorder projects")}},[a,ee]),fe=O.useRef(!1),le=O.useCallback((se,re)=>{if(re.button!==0||re.target.closest("button"))return;re.preventDefault();const we=re.clientX,Te=re.clientY,ze=6;let Ze=!1,Fe=null;const Ce=et=>{const vt=document.querySelectorAll("[data-workspace-item]");if(vt.length===0)return null;const mt=vt[0].getBoundingClientRect();if(et<mt.top)return 0;const Zt=vt[vt.length-1].getBoundingClientRect();if(et>Zt.bottom)return vt.length;for(let Dt=0;Dt<vt.length;Dt++){const en=vt[Dt].getBoundingClientRect();if(et>=en.top&&et<=en.bottom){const pn=en.top+en.height/2;return et<pn?Dt:Dt+1}}return null},Ge=et=>{if(!Ze){if(Math.hypot(et.clientX-we,et.clientY-Te)<ze)return;Ze=!0,$(se)}const vt=Ce(et.clientY);vt!==Fe&&(Fe=vt,H(vt))},We=()=>{window.removeEventListener("mousemove",Ge),window.removeEventListener("mouseup",Ie),window.removeEventListener("keydown",ht)},Ie=()=>{if(We(),!Ze)return;fe.current=!0,requestAnimationFrame(()=>{fe.current=!1});const et=Fe;$(null),H(null),et!==null&&Oe(se,et)},ht=et=>{et.key==="Escape"&&(We(),$(null),H(null),Ze&&(fe.current=!0,requestAnimationFrame(()=>{fe.current=!1})))};window.addEventListener("mousemove",Ge),window.addEventListener("mouseup",Ie),window.addEventListener("keydown",ht)},[Oe]),ae=async(se,re)=>{if(re.preventDefault(),re.stopPropagation(),!!confirm(L("projects.deleteConfirm")))try{await e1e(se),l(oe=>oe.filter(we=>we.id!==se)),window.dispatchEvent(new Event("projects:changed")),Z===String(se)&&q("/")}catch{}},ce=se=>f.jsx("div",{className:"pointer-events-none absolute left-2 right-2 h-0.5 rounded-full",style:{backgroundColor:"var(--color-accent)",zIndex:10,...se==="above"?{top:-1}:{bottom:-1}}});if(s){const se=f.jsx("div",{className:"w-7 border-t my-1.5",style:{borderColor:"var(--color-border)"}});return f.jsxs("div",{className:"flex flex-col items-center h-full glass border-none py-3",children:[f.jsx("button",{onClick:o,className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("sidebar.expand"),children:f.jsx(hFe,{size:18})}),se,f.jsx(ws,{to:"/",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:V.pathname==="/"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.home"),children:f.jsx(Eee,{size:18})}),f.jsxs(ws,{to:"/review",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover mt-0.5",style:V.pathname==="/review"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.review"),children:[f.jsx(OE,{size:18}),d!==null&&d>0&&f.jsx("span",{className:"absolute top-1 right-1 w-1.5 h-1.5 rounded-full",style:{backgroundColor:"var(--color-accent)"}})]}),f.jsx(ws,{to:"/agenda",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover mt-0.5",style:V.pathname==="/agenda"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.agenda"),children:f.jsx(U8,{size:18})}),se,f.jsx("div",{className:"flex-1 overflow-y-auto w-full flex flex-col items-center gap-1 py-1",children:a.map(re=>{const oe=c[re.id],we=Z===String(re.id),Te=oe?oe.running+oe.running_sessions+oe.running_discussions:0,ze=Te>0,Ze=cw(re);return f.jsxs(ws,{to:`/projects/${re.id}`,onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:we?{backgroundColor:"var(--color-bg-hover)"}:void 0,title:ze?`${re.name} · ${Te} ${L("detail.live")}`:re.name,children:[we&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:Ze}}),f.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${ze?"workspace-dot-pulse":""}`,style:{backgroundColor:Ze,opacity:we||ze?1:.55}})]},re.id)})}),se,f.jsx("span",{className:`w-1.5 h-1.5 rounded-full my-1 ${n?"bg-status-success":"bg-status-error"}`,title:n?L("detail.live"):"Disconnected"}),f.jsx("button",{onClick:W,className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L(Q==="light"?"theme.dark":"theme.light"),children:Q==="light"?f.jsx(Tee,{size:16}):f.jsx(jee,{size:16})}),f.jsx("button",{onClick:()=>j(!0),className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("settings.title"),children:f.jsx(aw,{size:16})}),f.jsx(zee,{open:T,onClose:()=>j(!1)}),f.jsx(_E,{toasts:J,onDismiss:he})]})}return f.jsxs("div",{className:"flex flex-col h-full glass border-none",onDragStart:se=>se.preventDefault(),children:[f.jsxs("div",{className:"px-4 pt-5 pb-3 flex items-center justify-between",children:[f.jsx(ws,{to:"/",onClick:Qe,className:"block",children:f.jsxs("svg",{viewBox:"0 0 200 32",fill:"none",className:"h-6 w-auto",children:[f.jsxs("text",{x:"0",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"500",fill:"var(--color-accent)",opacity:"0.5",children:[">","_"]}),f.jsx("text",{x:"38",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"700",fill:"var(--color-accent)",children:"CLI"}),f.jsx("text",{x:"96",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"500",fill:"var(--color-text-primary)",children:"Trigger"})]})}),f.jsx("button",{onClick:o,className:"hidden md:flex items-center justify-center w-7 h-7 rounded-md transition-colors hover:bg-theme-hover flex-shrink-0",style:{color:"var(--color-text-tertiary)"},title:L("sidebar.collapse"),children:f.jsx(uFe,{size:16})})]}),f.jsxs("nav",{className:"px-3 mb-2 space-y-0.5",children:[f.jsxs(ws,{to:"/",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/"?"font-medium":""}`,style:V.pathname==="/"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(Eee,{size:16}),L("sidebar.home")]}),f.jsxs(ws,{to:"/review",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/review"?"font-medium":""}`,style:V.pathname==="/review"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/review"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(OE,{size:16}),f.jsx("span",{className:"flex-1",children:L("sidebar.review")}),d!==null&&d>0&&f.jsx("span",{className:"text-2xs px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:"var(--color-accent)",color:"white"},children:d})]}),f.jsxs(ws,{to:"/agenda",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/agenda"?"font-medium":""}`,style:V.pathname==="/agenda"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/agenda"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(U8,{size:16}),L("sidebar.agenda")]})]}),f.jsx("div",{className:"mx-4 border-t",style:{borderColor:"var(--color-border)"}}),f.jsxs("div",{className:"flex-1 overflow-y-auto px-3 pt-3",children:[f.jsxs("div",{className:"px-3 mb-2 flex items-center justify-between",children:[f.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:L("sidebar.workspaces")}),f.jsx("button",{onClick:()=>m(!0),className:"flex items-center justify-center w-5 h-5 rounded-md transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("projects.new"),children:f.jsx(is,{size:14,strokeWidth:2})})]}),f.jsx("div",{className:"space-y-0.5",children:a.map((se,re)=>{const oe=c[se.id],we=Z===String(se.id),Te=oe?oe.running+oe.running_sessions+oe.running_discussions:0,ze=Te>0,Ze=cw(se),Fe=D===se.id,Ce=D!==null&&I===re,Ge=D!==null&&re===a.length-1&&I===a.length;return f.jsxs("div",{className:"relative","data-workspace-item":!0,children:[Ce&&ce("above"),f.jsxs(ws,{to:`/projects/${se.id}`,draggable:!1,onDragStart:We=>We.preventDefault(),onClick:We=>{if(fe.current){We.preventDefault();return}Qe()},onMouseDown:We=>le(se.id,We),onContextMenu:We=>{We.preventDefault(),v({project:se,x:We.clientX,y:We.clientY})},className:`relative flex items-center gap-2.5 px-3 py-1.5 rounded-lg text-sm transition-all duration-200 hover:bg-theme-hover active:scale-95 group ${we?"font-medium":""} ${Fe?"opacity-50":""}`,style:we?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)",cursor:D?"grabbing":"pointer",userSelect:"none"}:{color:"var(--color-text-tertiary)",cursor:D?"grabbing":"pointer",userSelect:"none"},children:[we&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:Ze}}),f.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${ze?"workspace-dot-pulse":""}`,style:{backgroundColor:Ze,opacity:we||ze?1:.55},title:ze?`${L("sidebar.workspaces")} · ${Te} ${L("detail.live")}`:se.name}),f.jsx("span",{className:"truncate flex-1",children:se.name}),f.jsx("button",{onClick:We=>ae(se.id,We),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-status-error/10",style:{color:"var(--color-text-muted)"},title:L("projects.delete"),children:f.jsx(Yn,{size:12,strokeWidth:2})})]}),Ge&&ce("below")]},se.id)})})]}),p&&f.jsx(h1e,{onSubmit:(se,re)=>Je(se,re),onCancel:()=>m(!1)}),f.jsxs("div",{className:"px-3 pt-3 pb-2 border-t",style:{borderColor:"var(--color-border)"},children:[f.jsxs("div",{className:"px-3 mb-2 flex items-center justify-between",children:[f.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:L("sidebar.favorites")}),f.jsx("button",{onClick:()=>{C(null),k(!0)},className:"flex items-center justify-center w-5 h-5 rounded-md transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("favorites.add"),children:f.jsx(is,{size:14,strokeWidth:2})})]}),f.jsx("div",{className:"space-y-0.5 max-h-48 overflow-y-auto",children:b.map(se=>{const re=pqe(se.type);return f.jsxs("button",{onClick:()=>ye(se.id),className:"w-full relative flex items-center gap-2.5 px-3 py-1.5 rounded-lg text-sm transition-all duration-200 hover:bg-theme-hover active:scale-95 group",style:{color:"var(--color-text-tertiary)"},title:se.target,children:[f.jsx(re,{size:14,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate flex-1 text-left",children:se.name}),f.jsx("span",{onClick:oe=>_e(se,oe),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-theme-hover cursor-pointer",style:{color:"var(--color-text-muted)"},title:L("favorites.edit"),children:f.jsx(Xxe,{size:11,strokeWidth:2})}),f.jsx("span",{onClick:oe=>be(se.id,oe),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-status-error/10 cursor-pointer",style:{color:"var(--color-text-muted)"},title:L("favorites.delete"),children:f.jsx(Yn,{size:12,strokeWidth:2})})]},se.id)})})]}),w&&f.jsx(GHe,{initial:E??void 0,onSubmit:me,onCancel:()=>{k(!1),C(null)}}),y&&f.jsx(fqe,{project:y.project,anchorX:y.x,anchorY:y.y,onPick:async se=>{try{const re=await G8(y.project.id,{color:se});l(oe=>oe.map(we=>we.id===re.id?{...we,color:re.color}:we)),window.dispatchEvent(new Event("projects:changed"))}catch(re){ee(re instanceof Error?re.message:"Failed to update color")}v(null)},onClose:()=>v(null)}),f.jsx(zee,{open:T,onClose:()=>j(!1)}),f.jsx(_E,{toasts:J,onDismiss:he}),f.jsx("div",{className:"px-3 pb-4 pt-2",style:{borderTop:"1px solid var(--color-border)"},children:f.jsxs("div",{className:"flex items-center gap-1 px-1",children:[f.jsx("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 mr-1 ${n?"bg-status-success":"bg-status-error"}`,title:n?L("detail.live"):"Disconnected"}),f.jsx("button",{onClick:W,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:"var(--color-text-tertiary)"},title:L(Q==="light"?"theme.dark":"theme.light"),children:Q==="light"?f.jsx(Tee,{size:16}):f.jsx(jee,{size:16})}),f.jsx("button",{onClick:z,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors text-xs font-medium",style:{color:"var(--color-text-tertiary)"},children:L("lang.toggle")}),G&&f.jsx("button",{onClick:ne,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:U?"var(--color-accent)":"var(--color-text-tertiary)"},title:"Notification"in window&&Notification.permission==="denied"?L("notification.blocked"):L("notification.toggle"),children:U?f.jsx(vQe,{size:16}):f.jsx(mQe,{size:16})}),f.jsx("button",{onClick:ge,disabled:R,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors disabled:opacity-50",style:{color:(P==null?void 0:P.status)==="running"?"var(--color-accent)":"var(--color-text-tertiary)"},title:(P==null?void 0:P.status)==="running"&&P.url?`${P.url} — ${L("tunnel.urlCopied")}`:L(R?"tunnel.starting":"tunnel.start"),children:f.jsx(Fxe,{size:16})}),f.jsx("button",{onClick:()=>j(!0),className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:"var(--color-text-tertiary)"},title:L("settings.title"),children:f.jsx(aw,{size:16})}),t&&f.jsx("button",{onClick:e,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors ml-auto",style:{color:"var(--color-text-tertiary)"},title:L("projects.logout"),children:f.jsx(W9e,{size:16})})]})})]})}const gqe=80,Fee=120,id=180,Hee=.03,qee=8;function vqe(){const e=O.useRef(null),t=O.useRef({x:-1e3,y:-1e3}),n=O.useRef([]),r=O.useRef(0);return O.useEffect(()=>{const i=e.current;if(!i)return;const s=i.getContext("2d");if(!s)return;let o=0,a=0;function l(){const p=i.parentElement;p&&(o=p.clientWidth,a=p.clientHeight,i.width=o*window.devicePixelRatio,i.height=a*window.devicePixelRatio,i.style.width=`${o}px`,i.style.height=`${a}px`,s.setTransform(window.devicePixelRatio,0,0,window.devicePixelRatio,0,0),c())}function c(){n.current=[];for(let p=0;p<gqe;p++){const m=Math.random()*o,y=Math.random()*a;n.current.push({x:m,y,baseX:m,baseY:y,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3,size:Math.random()*1.5+.5,alpha:Math.random()*.4+.1})}}function u(p){const m=i.getBoundingClientRect();t.current.x=p.clientX-m.left,t.current.y=p.clientY-m.top}function d(){t.current.x=-1e3,t.current.y=-1e3}function h(){if(!s)return;s.clearRect(0,0,o,a);const p=n.current,m=t.current;for(const y of p){const v=y.x-m.x,b=y.y-m.y,S=Math.sqrt(v*v+b*b);if(S<id&&S>0){const w=(id-S)/id,k=Math.atan2(b,v);y.vx+=Math.cos(k)*w*qee*.05,y.vy+=Math.sin(k)*w*qee*.05}y.vx+=(y.baseX-y.x)*Hee,y.vy+=(y.baseY-y.y)*Hee,y.baseX+=(Math.random()-.5)*.1,y.baseY+=(Math.random()-.5)*.1,y.baseX<0&&(y.baseX=0),y.baseX>o&&(y.baseX=o),y.baseY<0&&(y.baseY=0),y.baseY>a&&(y.baseY=a),y.vx*=.92,y.vy*=.92,y.x+=y.vx,y.y+=y.vy}for(let y=0;y<p.length;y++){for(let w=y+1;w<p.length;w++){const k=p[y].x-p[w].x,E=p[y].y-p[w].y,C=Math.sqrt(k*k+E*E);if(C<Fee){const T=(1-C/Fee)*.15;s.beginPath(),s.strokeStyle=`rgba(75, 141, 255, ${T})`,s.lineWidth=.5,s.moveTo(p[y].x,p[y].y),s.lineTo(p[w].x,p[w].y),s.stroke()}}const v=p[y].x-m.x,b=p[y].y-m.y,S=Math.sqrt(v*v+b*b);if(S<id){const w=(1-S/id)*.3;s.beginPath(),s.strokeStyle=`rgba(75, 141, 255, ${w})`,s.lineWidth=.8,s.moveTo(p[y].x,p[y].y),s.lineTo(m.x,m.y),s.stroke()}}for(const y of p){const v=y.x-m.x,b=y.y-m.y,S=Math.sqrt(v*v+b*b),w=S<id?y.alpha+(1-S/id)*.5:y.alpha;s.beginPath(),s.arc(y.x,y.y,y.size,0,Math.PI*2),s.fillStyle=`rgba(75, 141, 255, ${w})`,s.fill(),S<id&&(s.beginPath(),s.arc(y.x,y.y,y.size*3,0,Math.PI*2),s.fillStyle=`rgba(75, 141, 255, ${(1-S/id)*.08})`,s.fill())}r.current=requestAnimationFrame(h)}return l(),i.addEventListener("mousemove",u),i.addEventListener("mouseleave",d),window.addEventListener("resize",l),r.current=requestAnimationFrame(h),()=>{cancelAnimationFrame(r.current),i.removeEventListener("mousemove",u),i.removeEventListener("mouseleave",d),window.removeEventListener("resize",l)}},[]),f.jsx("canvas",{ref:e,className:"absolute inset-0 pointer-events-auto",style:{zIndex:0}})}function yqe({children:e,onLogout:t,authRequired:n,connected:r,onEvent:i}){const[s,o]=O.useState(!1),[a,l]=O.useState(()=>localStorage.getItem("sidebarCollapsed")==="1"),c=()=>{l(u=>{const d=!u;return localStorage.setItem("sidebarCollapsed",d?"1":"0"),d})};return f.jsxs("div",{className:"flex h-screen bg-theme-bg",children:[f.jsx("aside",{className:`
676
+ */const oHe=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],aHe=it("zoom-out",oHe);function lHe({onLogin:e}){const[t,n]=O.useState(""),[r,i]=O.useState(!1),[s,o]=O.useState(""),[a,l]=O.useState(!1),{t:c,toggleLang:u}=st(),d=async h=>{if(h.preventDefault(),!!t){o(""),l(!0);try{await e(t,r)}catch{o(c("login.error"))}finally{l(!1)}}};return f.jsxs("div",{className:"min-h-screen bg-theme-bg flex items-center justify-center px-4 relative",children:[f.jsx("button",{onClick:u,className:"lang-toggle absolute top-6 right-6",children:c("lang.toggle")}),f.jsxs("div",{className:"w-full max-w-sm animate-fade-in",children:[f.jsxs("div",{className:"text-center mb-10",children:[f.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-accent/10 mb-5",children:f.jsx(O5,{size:32,className:"text-accent",strokeWidth:1.5})}),f.jsx("h1",{className:"text-2xl font-semibold text-theme-text",children:c("login.title")}),f.jsx("p",{className:"text-theme-muted text-sm mt-2",children:c("login.subtitle")})]}),f.jsx("form",{onSubmit:d,children:f.jsxs("div",{className:"card p-8",children:[f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2",children:c("login.password")}),f.jsx("input",{type:"password",value:t,onChange:h=>n(h.target.value),placeholder:"*************",className:"input-field text-base",autoFocus:!0}),s&&f.jsx("div",{className:"mt-4 py-2.5 px-4 bg-status-error/5 border border-status-error/20 rounded-xl text-sm text-status-error",children:s}),f.jsxs("label",{className:"flex items-center gap-2 mt-5 text-sm text-theme-text-secondary cursor-pointer select-none",children:[f.jsx("input",{type:"checkbox",checked:r,onChange:h=>i(h.target.checked),className:"accent-accent w-4 h-4"}),c("login.rememberMe")]}),f.jsx("button",{type:"submit",disabled:!t||a,className:"btn-primary w-full mt-6 py-3",children:c(a?"login.loading":"login.submit")})]})}),f.jsx("div",{className:"mt-6 text-center text-xs text-theme-text-tertiary",children:c("login.footer")}),f.jsx("div",{className:"mt-4 px-2 py-3 rounded-xl text-xs text-theme-text-tertiary border leading-relaxed text-center",children:c("login.disclaimer")})]})]})}const Mee=8;function cHe({onSetup:e}){const[t,n]=O.useState(""),[r,i]=O.useState(""),[s,o]=O.useState(""),[a,l]=O.useState(!1),{t:c,toggleLang:u}=st(),d=t.length>0&&t.length<Mee,h=r.length>0&&t!==r,p=t.length>=Mee&&t===r&&!a,m=async y=>{if(y.preventDefault(),!!p){o(""),l(!0);try{await e(t,r)}catch(v){o(v instanceof Error&&v.message?v.message:c("setup.error"))}finally{l(!1)}}};return f.jsxs("div",{className:"min-h-screen bg-theme-bg flex items-center justify-center px-4 relative",children:[f.jsx("button",{onClick:u,className:"lang-toggle absolute top-6 right-6",children:c("lang.toggle")}),f.jsxs("div",{className:"w-full max-w-sm animate-fade-in",children:[f.jsxs("div",{className:"text-center mb-10",children:[f.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-accent/10 mb-5",children:f.jsx(O5,{size:32,className:"text-accent",strokeWidth:1.5})}),f.jsx("h1",{className:"text-2xl font-semibold text-theme-text",children:c("setup.title")}),f.jsx("p",{className:"text-theme-muted text-sm mt-2",children:c("setup.subtitle")})]}),f.jsx("form",{onSubmit:m,children:f.jsxs("div",{className:"card p-8",children:[f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2",children:c("setup.password")}),f.jsx("input",{type:"password",value:t,onChange:y=>n(y.target.value),placeholder:"*************",className:"input-field text-base",autoFocus:!0}),d&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:c("setup.tooShort")}),f.jsx("label",{className:"block text-sm font-medium text-theme-text-secondary mb-2 mt-5",children:c("setup.confirm")}),f.jsx("input",{type:"password",value:r,onChange:y=>i(y.target.value),placeholder:"*************",className:"input-field text-base"}),h&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:c("setup.mismatch")}),s&&f.jsx("div",{className:"mt-4 py-2.5 px-4 bg-status-error/5 border border-status-error/20 rounded-xl text-sm text-status-error",children:s}),f.jsx("button",{type:"submit",disabled:!p,className:"btn-primary w-full mt-6 py-3",children:c(a?"setup.loading":"setup.submit")})]})}),f.jsx("div",{className:"mt-4 px-4 py-3 rounded-xl text-xs text-theme-text-tertiary border leading-relaxed text-center",children:c("setup.tunnelPaused")})]})]})}function uHe(e){return ct("/api/projects/browse",{initialPath:e})}function dHe(e){return ct("/api/projects/open-folder",{path:e})}function S5(){return xt("/api/projects")}function hHe(e){return xt(`/api/projects/${e}`)}function Kxe(e){return ct("/api/projects",e)}function fHe(e){return xt(`/api/projects/${e}/svn-detect`)}function G8(e,t){return jr(`/api/projects/${e}`,t)}function Jxe(e,t){const n=t?`?todoId=${encodeURIComponent(t)}`:"";return xt(`/api/projects/${e}/debug-logs${n}`)}function e1e(e){return Ms(`/api/projects/${e}`)}function pHe(e){return ct("/api/projects/reorder",{ids:e})}function mHe(e){return ct(`/api/projects/${e}/start`)}function gHe(e){return ct(`/api/projects/${e}/stop`)}function t1e(e){return xt(`/api/projects/${e}/status`)}function vHe(e){return ct(`/api/projects/${e}/check-git`)}function n1e(e,t){return xt(`/api/projects/${e}/git-status`)}function yHe(e,t=0,n=50,r){const i=new URLSearchParams({skip:String(t),limit:String(n)});return xt(`/api/projects/${e}/git-log?${i}`)}function Y8(e,t){return xt(`/api/projects/${e}/git-refs`)}function bHe(e,t){return ct(`/api/projects/${e}/git-stage`,{files:t})}function xHe(e,t){return ct(`/api/projects/${e}/git-unstage`,{files:t})}function r1e(e,t){return ct(`/api/projects/${e}/git-commit`,{message:t})}function i1e(e,t,n){return ct(`/api/projects/${e}/git-pull`,{remote:t,branch:n})}function OH(e,t){return ct(`/api/projects/${e}/git-push`,t||{})}function wHe(e){return xt(`/api/projects/${e}/git-remotes`)}function s1e(e,t,n){return ct(`/api/projects/${e}/git-fetch`,{remote:t,prune:n})}function OHe(e,t,n){return ct(`/api/projects/${e}/git-branch`,{name:t,startPoint:n})}function K8(e,t,n){return ct(`/api/projects/${e}/git-branch-delete`,{name:t,force:n})}function J8(e,t){return ct(`/api/projects/${e}/git-checkout`,{branch:t})}function o1e(e,t){return ct(`/api/projects/${e}/git-merge`,{branch:t})}function SHe(e,t){return ct(`/api/projects/${e}/git-stash`,{message:t})}function kHe(e,t){return ct(`/api/projects/${e}/git-stash-pop`,{index:t})}function _He(e){return xt(`/api/projects/${e}/git-stash-list`)}function CHe(e,t,n){return ct(`/api/projects/${e}/git-discard`,{files:t,all:n})}function EHe(e,t,n,r){return ct(`/api/projects/${e}/git-tag`,{name:t,message:n,commit:r})}function Aee(e,t,n){return ct(`/api/projects/${e}/git-branch-rename`,{oldName:t,newName:n})}function THe(e,t){return ct(`/api/projects/${e}/git-rebase`,{onto:t})}function jHe(e,t,n){const r=new URLSearchParams;return t&&r.set("file",t),n&&r.set("staged","true"),xt(`/api/projects/${e}/git-diff?${r}`)}function PHe(e,t){const n=new URLSearchParams({hash:t});return xt(`/api/projects/${e}/git-commit-files?${n}`)}function Nee(e,t,n){const r=new URLSearchParams({hash:t});return n&&r.set("file",n),xt(`/api/projects/${e}/git-commit-diff?${r}`)}function Ree(e){return xt(`/api/projects/${e}/worktrees`)}function $ee(e,t,n){return ct(`/api/projects/${e}/worktree-cleanup`,{worktreePath:t,branchName:n})}function a1e(e){const t=new URLSearchParams;e.hours!==void 0&&t.set("hours",String(e.hours)),e.statuses&&e.statuses.length>0&&t.set("statuses",e.statuses.join(","));const n=t.toString();return n?`?${n}`:""}function MHe(e={}){return xt(`/api/review/queue${a1e(e)}`)}function l1e(e={}){return xt(`/api/review/summary${a1e(e)}`)}function AHe(e){return xt(`/api/review/diff/${encodeURIComponent(e)}`)}function NHe(e,t){return xt(`/api/review/diff/${encodeURIComponent(e)}/file?path=${encodeURIComponent(t)}`)}function RHe(){return xt("/api/favorites")}function $He(e){return ct("/api/favorites",e)}function DHe(e,t){return jr(`/api/favorites/${e}`,t)}function LHe(e){return Ms(`/api/favorites/${e}`)}function IHe(e){return ct(`/api/favorites/${e}/launch`)}function BHe(e){return ct("/api/favorites/browse-file",{initialPath:e})}function e7(){return xt("/api/tunnel/status")}function zHe(){return xt("/api/tunnel/config")}function QHe(e){return jr("/api/tunnel/config",e)}function c1e(e){return ct("/api/tunnel/start",{})}function FHe(){return ct("/api/tunnel/stop")}const u1e=O.createContext({theme:"light",toggleTheme:()=>{}});function HHe(){const[e,t]=O.useState(()=>{const r=localStorage.getItem("theme");return r==="light"||r==="dark"?r:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"});O.useEffect(()=>{document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)},[e]);const n=O.useCallback(()=>{t(r=>r==="light"?"dark":"light")},[]);return{theme:e,toggleTheme:n}}function SH(){return O.useContext(u1e)}const d1e=O.createContext({enabled:!1,supported:!1,toggleNotification:()=>{},sendNotification:()=>{}});function qHe(){const e="Notification"in window,[t,n]=O.useState(()=>e?localStorage.getItem("clitrigger-notifications")==="on"&&Notification.permission==="granted":!1),r=O.useRef(t);O.useEffect(()=>{r.current=t},[t]);const i=O.useCallback(async()=>{if(e)if(r.current)localStorage.setItem("clitrigger-notifications","off"),n(!1);else{if(Notification.permission==="denied"||Notification.permission==="default"&&await Notification.requestPermission()!=="granted")return;localStorage.setItem("clitrigger-notifications","on"),n(!0)}},[e]),s=O.useCallback((o,a)=>{if(!r.current)return;const l=new Notification(o,{body:a});l.onclick=()=>{window.focus(),l.close()}},[]);return{enabled:t,supported:e,toggleNotification:i,sendNotification:s}}function kH(){return O.useContext(d1e)}let VHe=0;function Vy(){const[e,t]=O.useState([]),n=O.useRef(new Map),r=O.useCallback(c=>{t(d=>d.filter(h=>h.id!==c));const u=n.current.get(c);u&&(clearTimeout(u),n.current.delete(c))},[]),i=O.useCallback((c,u="info",d=3500)=>{const h=`toast-${++VHe}`;t(m=>[...m,{id:h,message:c,type:u,duration:d}]);const p=setTimeout(()=>r(h),d);return n.current.set(h,p),h},[r]),s=O.useCallback((c,u)=>i(c,"success",u),[i]),o=O.useCallback((c,u)=>i(c,"error",u),[i]),a=O.useCallback((c,u)=>i(c,"info",u),[i]),l=O.useCallback((c,u)=>i(c,"warning",u),[i]);return{toasts:e,show:i,success:s,error:o,info:a,warning:l,dismiss:r}}function Sd(...e){return e.filter(Boolean).join(" ")}const WHe={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl"},UHe={scale:"animate-scale-in","slide-up":"animate-slide-up"};function Us({open:e,onClose:t,size:n="md",position:r="center",animation:i="scale",disableEscClose:s=!1,disableBackdropClose:o=!1,children:a}){const l=O.useRef(null);return O.useEffect(()=>{if(!e||s)return;const c=u=>{u.key==="Escape"&&t()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[e,s,t]),e?vn.createPortal(f.jsx("div",{ref:l,className:Sd("fixed inset-0 bg-black/50 backdrop-blur-sm z-modal flex",r==="center"?"items-center justify-center p-4":"items-start justify-center px-4 pt-[20vh]"),onClick:c=>{!o&&c.target===l.current&&t()},children:f.jsx("div",{className:Sd("w-full",WHe[n],UHe[i]),children:a})}),document.body):null}function h1e({onSubmit:e,onCancel:t}){const[n,r]=O.useState(""),[i,s]=O.useState(""),[o,a]=O.useState(!1),[l,c]=O.useState(!1),[u,d]=O.useState(""),{t:h}=st(),p=async y=>{if(y.preventDefault(),!(!n.trim()||!i.trim())){d(""),c(!0);try{await e(n.trim(),i.trim())}catch(v){const b=v instanceof Error?v.message:String(v);d(b||h("form.createError"))}finally{c(!1)}}},m=async()=>{a(!0);try{const y=await uHe(i||void 0);y.path&&s(y.path)}catch{}a(!1)};return f.jsx(Us,{open:!0,onClose:t,size:"md",children:f.jsxs("div",{className:"card p-8 shadow-2xl rounded-2xl",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-6",children:h("form.newProject")}),f.jsxs("form",{onSubmit:p,children:[f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:h("form.projectName")}),f.jsx("input",{type:"text",placeholder:"my-project",value:n,onChange:y=>r(y.target.value),className:"input-field",autoFocus:!0})]}),f.jsxs("div",{className:"mb-8",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:h("form.folderPath")}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",placeholder:"C:/Projects/my-project",value:i,onChange:y=>s(y.target.value),className:"input-field text-sm flex-1"}),f.jsx("button",{type:"button",onClick:m,disabled:o,className:"btn-ghost text-sm px-3 shrink-0",title:h("browse.title"),children:o?f.jsx(Ca,{size:16,className:"animate-spin"}):f.jsx(Af,{size:16})})]})]}),u&&f.jsx("p",{className:"text-sm mb-4",style:{color:"var(--color-danger, #ef4444)"},children:u}),f.jsxs("div",{className:"flex justify-end gap-3",children:[f.jsx("button",{type:"button",onClick:t,className:"btn-ghost text-sm",children:h("form.cancel")}),f.jsx("button",{type:"submit",disabled:!n.trim()||!i.trim()||l,className:"btn-primary text-sm",children:h(l?"form.creating":"form.create")})]})]})]})})}const XHe=[{value:"executable",icon:w5},{value:"command",icon:qy},{value:"url",icon:Dm}];function ZHe(e){const t=[],n=/"([^"]*)"|(\S+)/g;let r;for(;(r=n.exec(e))!==null;)t.push(r[1]!==void 0?r[1]:r[2]);return t}function Dee(e){if(!e)return"";try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(n=>typeof n=="string"&&/\s/.test(n)?`"${n}"`:String(n)).join(" ")}catch{}return""}function GHe({initial:e,onSubmit:t,onCancel:n}){const{t:r}=st(),[i,s]=O.useState((e==null?void 0:e.name)??""),[o,a]=O.useState((e==null?void 0:e.type)??"executable"),[l,c]=O.useState((e==null?void 0:e.target)??""),[u,d]=O.useState(Dee((e==null?void 0:e.args)??null)),[h,p]=O.useState((e==null?void 0:e.cwd)??""),[m,y]=O.useState(!1);O.useEffect(()=>{s((e==null?void 0:e.name)??""),a((e==null?void 0:e.type)??"executable"),c((e==null?void 0:e.target)??""),d(Dee((e==null?void 0:e.args)??null)),p((e==null?void 0:e.cwd)??"")},[e]);const[v,b]=O.useState(!1),S=o==="executable",w=async()=>{b(!0);try{const{path:R}=await BHe(l||void 0);if(!R)return;if(c(R),!i.trim()){const N=R.replace(/\\/g,"/").split("/").pop()||"";s(N.replace(/\.[^.]+$/,""))}}catch{}finally{b(!1)}},k=!!e,E=i.trim(),C=l.trim(),T=o!=="url"||/^https?:\/\//i.test(C),j=!!E&&!!C&&T&&!m,P=async R=>{if(R.preventDefault(),!!j){y(!0);try{const N={name:E,type:o,target:C,args:o==="executable"&&u.trim()?ZHe(u.trim()):null,cwd:o!=="url"&&h.trim()?h.trim():null};await t(N)}finally{y(!1)}}},A=r(o==="executable"?"favorites.form.targetHint.executable":o==="command"?"favorites.form.targetHint.command":"favorites.form.targetHint.url");return f.jsx(Us,{open:!0,onClose:n,size:"md",children:f.jsxs("div",{className:"card p-8 shadow-2xl rounded-2xl",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-6",children:r(k?"favorites.form.title.edit":"favorites.form.title.create")}),f.jsxs("form",{onSubmit:P,children:[f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.type")}),f.jsx("div",{className:"grid grid-cols-3 gap-2",children:XHe.map(({value:R,icon:N})=>f.jsxs("button",{type:"button",onClick:()=>a(R),className:"flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-xs font-medium transition-all border",style:o===R?{backgroundColor:"var(--color-accent)",color:"white",borderColor:"var(--color-accent)"}:{color:"var(--color-text-tertiary)",borderColor:"var(--color-border)"},children:[f.jsx(N,{size:14}),r(`favorites.types.${R}`)]},R))})]}),f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.name")}),f.jsx("input",{type:"text",value:i,onChange:R=>s(R.target.value),className:"input-field",autoFocus:!0})]}),f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.target")}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",value:l,onChange:R=>c(R.target.value),className:"input-field text-sm font-mono flex-1",placeholder:A}),S&&f.jsxs("button",{type:"button",onClick:w,disabled:v,className:"btn-ghost text-sm whitespace-nowrap flex items-center gap-1.5 disabled:opacity-50",children:[f.jsx(Af,{size:14}),r("favorites.form.browse")]})]}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:A})]}),o==="executable"&&f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.args")}),f.jsx("input",{type:"text",value:u,onChange:R=>d(R.target.value),className:"input-field text-sm font-mono",placeholder:'--flag value "with spaces"'})]}),o!=="url"&&f.jsxs("div",{className:"mb-5",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:r("favorites.form.cwd")}),f.jsx("input",{type:"text",value:h,onChange:R=>p(R.target.value),className:"input-field text-sm font-mono",placeholder:"C:/Projects/my-project"})]}),f.jsx("p",{className:"mb-6 text-2xs leading-snug",style:{color:"var(--color-text-muted)"},children:r("favorites.security.notice")}),f.jsxs("div",{className:"flex justify-end gap-3",children:[f.jsx("button",{type:"button",onClick:n,className:"btn-ghost text-sm",children:r("favorites.form.cancel")}),f.jsx("button",{type:"submit",disabled:!j,className:"btn-primary text-sm",children:r(k?"favorites.form.save":"favorites.form.create")})]})]})]})})}const YHe=/^([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i;function KHe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState(""),[o,a]=O.useState(""),[l,c]=O.useState(""),[u,d]=O.useState(""),[h,p]=O.useState(!1),[m,y]=O.useState(!1),[v,b]=O.useState(!1),[S,w]=O.useState(null);O.useEffect(()=>{let N=!1;return Promise.all([zHe(),e7()]).then(([D,$])=>{N||(s(D.tunnelName),a(D.customHostname),c(D.tunnelName),d(D.customHostname),w($))}).catch(()=>{}),()=>{N=!0}},[]);const k=i.trim(),E=o.trim(),C=k!==l.trim()||E!==u.trim(),T=!!E&&(!YHe.test(E)||E.toLowerCase()==="localhost"||E.toLowerCase()==="127.0.0.1"),j=!!E&&!k,P=C&&!m&&!T&&!j,A=async()=>{if(P){y(!0);try{const N=await QHe({tunnelName:k,customHostname:E});c(N.tunnelName),d(N.customHostname),s(N.tunnelName),a(N.customHostname),r(t("tunnel.saved"))}catch(N){n(N instanceof Error?N.message:t("tunnel.saveFailed"))}finally{y(!1)}}},R=async()=>{b(!0);try{try{await FHe()}catch{}const N=await c1e();w({status:"running",url:N.url}),r(t("tunnel.restarted"))}catch(N){n(N instanceof Error?N.message:t("tunnel.restartFailed"))}finally{b(!1)}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("tunnel.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("tunnel.description")}),S&&f.jsxs("div",{className:"mb-5 p-3 rounded-lg text-xs flex items-center gap-2",style:{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-tertiary)"},children:[f.jsx("span",{className:`w-2 h-2 rounded-full ${S.status==="running"?"bg-status-success":S.status==="error"?"bg-status-error":"bg-status-pending"}`}),f.jsx("span",{className:"font-medium",children:t(`tunnel.status.${S.status}`)}),S.url&&f.jsx("a",{href:S.url,target:"_blank",rel:"noreferrer",className:"ml-auto font-mono truncate hover:underline",style:{color:"var(--color-accent)"},children:S.url})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("tunnel.name.label")}),f.jsx("input",{type:"text",value:i,onChange:N=>s(N.target.value),placeholder:t("tunnel.name.placeholder"),className:"input-field text-sm font-mono"}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("tunnel.name.hint")})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("tunnel.hostname.label")}),f.jsx("input",{type:"text",value:o,onChange:N=>a(N.target.value),placeholder:t("tunnel.hostname.placeholder"),className:"input-field text-sm font-mono"}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("tunnel.hostname.hint")}),T&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("tunnel.hostname.invalid")}),j&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("tunnel.hostname.needsName")})]}),f.jsxs("div",{className:"mb-5",children:[f.jsxs("button",{type:"button",onClick:()=>p(!h),className:"flex items-center gap-1 text-xs text-accent-dark hover:text-accent transition-colors",children:[f.jsx("span",{className:`inline-block transition-transform ${h?"rotate-90":""}`,children:"▶"}),t("tunnel.guide.toggle")]}),h&&f.jsxs("div",{className:"mt-3 p-3 bg-warm-50 border border-warm-150 rounded-lg text-xs text-warm-600 space-y-2",children:[f.jsx("p",{className:"font-semibold text-warm-700 mb-1",children:t("tunnel.guide.heading")}),f.jsxs("ol",{className:"list-decimal list-inside space-y-1 ml-1",children:[f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel login"})}),f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel create my-app"})}),f.jsx("li",{children:f.jsx("code",{className:"font-mono",children:"cloudflared tunnel route dns my-app app.your-domain.com"})}),f.jsx("li",{children:t("tunnel.guide.step4")})]}),f.jsx("p",{className:"text-2xs text-warm-400 pt-1",children:t("tunnel.guide.note")})]})]}),f.jsxs("div",{className:"flex items-center justify-between gap-3",children:[f.jsx("button",{type:"button",onClick:R,disabled:v,className:"btn-ghost text-sm disabled:opacity-50",children:v?(S==null?void 0:S.status)==="running"?t("tunnel.restarting"):t("tunnel.starting"):(S==null?void 0:S.status)==="running"?t("tunnel.restart"):t("tunnel.start")}),f.jsxs("div",{className:"flex gap-3",children:[e&&f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("tunnel.close")}),f.jsx("button",{type:"button",onClick:A,disabled:!P,className:"btn-primary text-sm",children:t(m?"tunnel.saving":"tunnel.save")})]})]})]})}const Lee=8;function JHe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState(""),[o,a]=O.useState(""),[l,c]=O.useState(""),[u,d]=O.useState(!1),h=o.length>0&&o.length<Lee,p=l.length>0&&o!==l,m=!!i&&o.length>=Lee&&o===l&&!u,y=()=>{s(""),a(""),c("")},v=async()=>{if(m){d(!0);try{await F7e(i,o,l),r(t("account.saved")),y()}catch(b){n(b instanceof Error&&b.message?b.message:t("account.saveFailed"))}finally{d(!1)}}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("account.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("account.description")}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.oldPassword")}),f.jsx("input",{type:"password",value:i,onChange:b=>s(b.target.value),className:"input-field text-sm",autoComplete:"current-password"})]}),f.jsxs("div",{className:"mb-4",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.newPassword")}),f.jsx("input",{type:"password",value:o,onChange:b=>a(b.target.value),className:"input-field text-sm",autoComplete:"new-password"}),h&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("account.tooShort")})]}),f.jsxs("div",{className:"mb-6",children:[f.jsx("label",{className:"block text-sm font-medium text-warm-600 mb-2",children:t("account.confirm")}),f.jsx("input",{type:"password",value:l,onChange:b=>c(b.target.value),className:"input-field text-sm",autoComplete:"new-password"}),p&&f.jsx("p",{className:"mt-1 text-2xs text-status-error",children:t("account.mismatch")})]}),f.jsxs("div",{className:"flex items-center justify-end gap-3",children:[e&&f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("account.close")}),f.jsx("button",{type:"button",onClick:v,disabled:!m,className:"btn-primary text-sm",children:t(u?"account.saving":"account.save")})]})]})}function _H(){return xt("/api/session-tags")}function eqe(e){return ct("/api/session-tags",e)}function tqe(e,t){return jr(`/api/session-tags/${e}`,t)}function nqe(e){return Ms(`/api/session-tags/${e}`)}function f1e(){return xt("/api/session-aliases")}function p1e(e){return ct("/api/session-aliases",e)}function rqe(e,t){return jr(`/api/session-aliases/${e}`,t)}function iqe(e){return Ms(`/api/session-aliases/${e}`)}function CH(){return xt("/api/session-settings")}function Iee(e){return jr("/api/session-settings",e)}const Ue={titleBg:"#2d2d2d",titleText:"#999",bg:"#0c0c0c",text:"#cccccc",dim:"#666666",bright:"#f2f2f2",prompt:"#16c60c",error:"#f14c4c",warning:"#cca700",info:"#569cd6",separator:"#333333"},xn="'Cascadia Code', 'Cascadia Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace",EH=13,j1=8,P1=28,lw=new Map,lv=new Map;let kE=EH;function TH(e){return`sessionFontSize:${e}`}function t7(e){return Number.isFinite(e)?Math.max(j1,Math.min(P1,Math.round(e))):kE}function sqe(e){if(lw.has(e))return!0;try{return localStorage.getItem(TH(e))!==null}catch{return!1}}function S2(e){const t=lw.get(e);if(t!==void 0)return t;let n=null;try{const r=localStorage.getItem(TH(e));if(r!==null){const i=parseInt(r,10);Number.isFinite(i)&&(n=t7(i))}}catch{}return n===null?t7(kE):(lw.set(e,n),n)}function n7(e,t){const n=t7(t);if(lw.get(e)===n)return;lw.set(e,n);try{localStorage.setItem(TH(e),String(n))}catch{}const r=lv.get(e);r&&r.forEach(i=>i(n))}function UR(e,t){n7(e,S2(e)+t)}function k2(e){const t=Math.max(j1,Math.min(P1,Math.round(e)));Number.isFinite(t)&&t!==kE&&(kE=t,lv.forEach((n,r)=>{sqe(r)||n.forEach(i=>i(t))}))}function m1e(e){const[t,n]=O.useState(()=>S2(e));O.useEffect(()=>{n(S2(e));let s=lv.get(e);return s||(s=new Set,lv.set(e,s)),s.add(n),()=>{const o=lv.get(e);o&&(o.delete(n),o.size===0&&lv.delete(e))}},[e]);const r=O.useCallback(s=>n7(e,s),[e]),i=O.useCallback(s=>n7(e,S2(e)+s),[e]);return[t,r,i]}const M1=["#A78BFA","#F472B6","#FB923C","#FBBF24","#34D399","#60A5FA","#F87171","#94A3B8"];function Bee(e){for(const t of M1)if(!e.some(n=>n.color.toLowerCase()===t.toLowerCase()))return t;return M1[e.length%M1.length]}function oqe({onClose:e}){const{t}=st(),{error:n,success:r}=Vy(),[i,s]=O.useState([]),[o,a]=O.useState(!1),[l,c]=O.useState(EH),[u,d]=O.useState(!1),[h,p]=O.useState(!1),m=O.useRef(null),[y,v]=O.useState(""),[b,S]=O.useState(M1[0]),[w,k]=O.useState(!1),[E,C]=O.useState(null),[T,j]=O.useState(""),[P,A]=O.useState(M1[0]),[R,N]=O.useState(!1),[D,$]=O.useState([]),[I,H]=O.useState(""),[V,q]=O.useState(""),[L,z]=O.useState(!1),[Q,W]=O.useState(null),[U,G]=O.useState(""),[ne,J]=O.useState(""),[ee,X]=O.useState(!1);O.useEffect(()=>{let ie=!1;return Promise.all([_H(),CH(),f1e()]).then(([se,re,oe])=>{ie||(s(se),a(re.defaultUseWorktree),c(re.defaultFontSize),k2(re.defaultFontSize),S(Bee(se)),$(oe),d(!0))}).catch(se=>{ie||n(se instanceof Error?se.message:"Failed to load")}),()=>{ie=!0}},[n]);const Y=y.trim(),te=!!Y&&!w,he=O.useMemo(()=>[...i].sort((ie,se)=>ie.sort_order-se.sort_order||ie.name.localeCompare(se.name)),[i]);O.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]);const Z=ie=>{if(!Number.isFinite(ie))return;const se=Math.max(j1,Math.min(P1,Math.round(ie)));c(se),k2(se),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{Iee({defaultFontSize:se}).then(re=>{c(re.defaultFontSize),k2(re.defaultFontSize)}).catch(re=>n(re instanceof Error?re.message:"Save failed"))},350)},ge=async ie=>{p(!0);try{const se=await Iee({defaultUseWorktree:ie});a(se.defaultUseWorktree),r(t("sessionSettings.saved"))}catch(se){n(se instanceof Error?se.message:"Save failed")}finally{p(!1)}},ue=async()=>{if(te){k(!0);try{const ie=await eqe({name:Y,color:b});s(se=>[...se,ie]),v(""),S(Bee([...i,ie]))}catch(ie){n(ie instanceof Error?ie.message:"Create failed")}finally{k(!1)}}},me=ie=>{C(ie.id),j(ie.name),A(ie.color)},ye=()=>{C(null),j("")},be=async()=>{if(!E)return;const ie=T.trim();if(ie){N(!0);try{const se=await tqe(E,{name:ie,color:P});s(re=>re.map(oe=>oe.id===se.id?se:oe)),ye()}catch(se){n(se instanceof Error?se.message:"Save failed")}finally{N(!1)}}},_e=async ie=>{if(confirm(t("sessionSettings.tags.deleteConfirm").replace("{name}",ie.name)))try{await nqe(ie.id),s(se=>se.filter(re=>re.id!==ie.id))}catch(se){n(se instanceof Error?se.message:"Delete failed")}},Ae=I.trim(),De=V.trim(),Qe=!!Ae&&!!De&&!L,Je=O.useMemo(()=>[...D].sort((ie,se)=>ie.sort_order-se.sort_order||ie.name.localeCompare(se.name)),[D]),Oe=async()=>{if(Qe){z(!0);try{const ie=await p1e({name:Ae,command_template:De});$(se=>[...se,ie]),H(""),q("")}catch(ie){n(ie instanceof Error?ie.message:"Create failed")}finally{z(!1)}}},fe=ie=>{W(ie.id),G(ie.name),J(ie.command_template)},le=()=>{W(null),G(""),J("")},ae=async()=>{if(!Q)return;const ie=U.trim(),se=ne.trim();if(!(!ie||!se)){X(!0);try{const re=await rqe(Q,{name:ie,command_template:se});$(oe=>oe.map(we=>we.id===re.id?re:we)),le()}catch(re){n(re instanceof Error?re.message:"Save failed")}finally{X(!1)}}},ce=async ie=>{if(confirm(`Delete alias "${ie.name}"? Sessions using it will fall back to OS default shell.`))try{await iqe(ie.id),$(se=>se.filter(re=>re.id!==ie.id))}catch(se){n(se instanceof Error?se.message:"Delete failed")}};return f.jsxs("div",{className:"p-8",children:[f.jsx("h2",{className:"text-lg font-semibold text-warm-800 mb-1",children:t("sessionSettings.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-6",children:t("sessionSettings.description")}),f.jsxs("section",{className:"mb-7",children:[f.jsxs("h3",{className:"text-sm font-semibold text-warm-700 mb-2 flex items-center gap-1.5",children:[f.jsx(rp,{size:14}),t("sessionSettings.worktree.title")]}),f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[f.jsx("input",{type:"checkbox",checked:o,disabled:h||!u,onChange:ie=>ge(ie.target.checked),className:"rounded border-warm-300"}),f.jsx("span",{className:"text-sm text-warm-600",children:t("sessionSettings.worktree.label")})]}),f.jsx("p",{className:"mt-1 text-2xs ml-6",style:{color:"var(--color-text-muted)"},children:t("sessionSettings.worktree.hint")})]}),f.jsxs("section",{className:"mb-7",children:[f.jsxs("h3",{className:"text-sm font-semibold text-warm-700 mb-2 flex items-center gap-1.5",children:[f.jsx(UFe,{size:14}),t("sessionSettings.fontSize.title")]}),f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("input",{type:"range",min:j1,max:P1,step:1,value:l,disabled:!u,onChange:ie=>Z(parseInt(ie.target.value,10)),className:"flex-1 max-w-xs","aria-label":t("sessionSettings.fontSize.label")}),f.jsx("input",{type:"number",min:j1,max:P1,step:1,value:l,disabled:!u,onChange:ie=>Z(parseInt(ie.target.value,10)),className:"input text-sm w-20"}),f.jsx("span",{className:"text-xs text-warm-400",children:"px"})]}),f.jsx("p",{className:"mt-1 text-2xs",style:{color:"var(--color-text-muted)"},children:t("sessionSettings.fontSize.hint")})]}),f.jsxs("section",{children:[f.jsx("h3",{className:"text-sm font-semibold text-warm-700 mb-2",children:t("sessionSettings.tags.title")}),f.jsx("p",{className:"text-xs text-warm-400 mb-3",children:t("sessionSettings.tags.description")}),f.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[f.jsx("input",{type:"color",value:b,onChange:ie=>S(ie.target.value),className:"w-9 h-9 rounded cursor-pointer border border-warm-200",title:t("sessionSettings.tags.color")}),f.jsx("input",{type:"text",value:y,onChange:ie=>v(ie.target.value),onKeyDown:ie=>{ie.key==="Enter"&&(ie.preventDefault(),ue())},placeholder:t("sessionSettings.tags.namePlaceholder"),className:"input text-sm flex-1",maxLength:32}),f.jsxs("button",{type:"button",onClick:ue,disabled:!te,className:"btn-primary text-sm py-1.5 px-3 inline-flex items-center gap-1",children:[f.jsx(is,{size:14}),t("sessionSettings.tags.add")]})]}),he.length===0?f.jsx("p",{className:"text-xs text-warm-400 italic py-3",children:t("sessionSettings.tags.empty")}):f.jsx("ul",{className:"space-y-1.5",children:he.map(ie=>{const se=E===ie.id;return f.jsx("li",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border",style:{borderColor:"var(--color-border)"},children:se?f.jsxs(f.Fragment,{children:[f.jsx("input",{type:"color",value:P,onChange:re=>A(re.target.value),className:"w-7 h-7 rounded cursor-pointer border border-warm-200"}),f.jsx("input",{type:"text",value:T,onChange:re=>j(re.target.value),onKeyDown:re=>{re.key==="Enter"&&(re.preventDefault(),be()),re.key==="Escape"&&ye()},autoFocus:!0,className:"input text-sm flex-1",maxLength:32}),f.jsx("button",{type:"button",onClick:be,disabled:R||!T.trim(),className:"p-1.5 text-status-success hover:bg-status-success/10 rounded",title:t("sessionSettings.tags.save"),children:f.jsx(rc,{size:14})}),f.jsx("button",{type:"button",onClick:ye,className:"p-1.5 text-warm-400 hover:bg-warm-100 rounded",title:t("sessionSettings.tags.cancel"),children:f.jsx(Yn,{size:14})})]}):f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"w-4 h-4 rounded-full shrink-0 border",style:{backgroundColor:ie.color,borderColor:"rgba(0,0,0,0.08)"}}),f.jsx("span",{className:"text-sm text-warm-700 flex-1 truncate",children:ie.name}),f.jsx("button",{type:"button",onClick:()=>me(ie),className:"p-1.5 text-warm-400 hover:text-warm-700 hover:bg-warm-100 rounded",title:t("sessionSettings.tags.edit"),children:f.jsx(Ea,{size:14})}),f.jsx("button",{type:"button",onClick:()=>_e(ie),className:"p-1.5 text-warm-400 hover:text-status-error hover:bg-warm-100 rounded",title:t("sessionSettings.tags.delete"),children:f.jsx(Qi,{size:14})})]})},ie.id)})})]}),f.jsxs("section",{className:"mt-7",children:[f.jsx("h3",{className:"text-sm font-semibold text-warm-700 mb-2",children:"Terminal aliases"}),f.jsx("p",{className:"text-xs text-warm-400 mb-3",children:"Saved command snippets. Click the ⌘ icon in any terminal window's titlebar to insert one as input — Enter is yours to press."}),f.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[f.jsx("input",{type:"text",value:I,onChange:ie=>H(ie.target.value),placeholder:"Name (e.g. WSL Ubuntu)",className:"input text-sm w-44",maxLength:64}),f.jsx("input",{type:"text",value:V,onChange:ie=>q(ie.target.value),onKeyDown:ie=>{ie.key==="Enter"&&(ie.preventDefault(),Oe())},placeholder:"Command (e.g. wsl -d Ubuntu)",className:"input text-sm flex-1 font-mono",maxLength:1024}),f.jsxs("button",{type:"button",onClick:Oe,disabled:!Qe,className:"btn-primary text-sm py-1.5 px-3 inline-flex items-center gap-1",children:[f.jsx(is,{size:14}),"Add"]})]}),Je.length===0?f.jsx("p",{className:"text-xs text-warm-400 italic py-3",children:"No aliases yet."}):f.jsx("ul",{className:"space-y-1.5",children:Je.map(ie=>{const se=Q===ie.id;return f.jsx("li",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border",style:{borderColor:"var(--color-border)"},children:se?f.jsxs(f.Fragment,{children:[f.jsx("input",{type:"text",value:U,onChange:re=>G(re.target.value),className:"input text-sm w-44",maxLength:64}),f.jsx("input",{type:"text",value:ne,onChange:re=>J(re.target.value),onKeyDown:re=>{re.key==="Enter"&&(re.preventDefault(),ae()),re.key==="Escape"&&le()},autoFocus:!0,className:"input text-sm flex-1 font-mono",maxLength:1024}),f.jsx("button",{type:"button",onClick:ae,disabled:ee||!U.trim()||!ne.trim(),className:"p-1.5 text-status-success hover:bg-status-success/10 rounded",title:"Save",children:f.jsx(rc,{size:14})}),f.jsx("button",{type:"button",onClick:le,className:"p-1.5 text-warm-400 hover:bg-warm-100 rounded",title:"Cancel",children:f.jsx(Yn,{size:14})})]}):f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"text-sm text-warm-700 w-44 truncate",children:ie.name}),f.jsx("code",{className:"text-xs text-warm-500 flex-1 truncate font-mono",children:ie.command_template}),f.jsx("button",{type:"button",onClick:()=>fe(ie),className:"p-1.5 text-warm-400 hover:text-warm-700 hover:bg-warm-100 rounded",title:"Edit",children:f.jsx(Ea,{size:14})}),f.jsx("button",{type:"button",onClick:()=>ce(ie),className:"p-1.5 text-warm-400 hover:text-status-error hover:bg-warm-100 rounded",title:"Delete",children:f.jsx(Qi,{size:14})})]})},ie.id)})})]}),e&&f.jsx("div",{className:"flex justify-end gap-3 mt-7",children:f.jsx("button",{type:"button",onClick:e,className:"btn-ghost text-sm",children:t("tunnel.close")})})]})}function zee({open:e,onClose:t}){const{t:n}=st(),[r,i]=O.useState("account");if(!e)return null;const s=[{id:"account",label:n("settings.tabs.account"),icon:$9e},{id:"session",label:n("settings.tabs.session"),icon:O5},{id:"tunnel",label:n("settings.tabs.tunnel"),icon:Fxe}];return f.jsx(Us,{open:e,onClose:t,size:"xl",children:f.jsx("div",{className:"card shadow-2xl rounded-2xl overflow-hidden",children:f.jsxs("div",{className:"flex",style:{minHeight:460},children:[f.jsxs("aside",{className:"w-44 shrink-0 border-r flex flex-col",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-hover)"},children:[f.jsx("div",{className:"px-4 pt-5 pb-3 text-xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:n("settings.title")}),f.jsx("nav",{className:"flex flex-col",children:s.map(({id:o,label:a,icon:l})=>{const c=r===o;return f.jsxs("button",{type:"button",onClick:()=>i(o),className:"flex items-center gap-2 px-4 py-2.5 text-sm transition-colors text-left",style:{color:c?"var(--color-accent)":"var(--color-text-secondary)",backgroundColor:c?"var(--color-bg-primary)":"transparent",fontWeight:c?600:400},children:[f.jsx(l,{size:14}),f.jsx("span",{children:a})]},o)})}),f.jsxs("div",{className:"px-4 py-3 mt-auto text-[11px] tracking-wide",style:{color:"var(--color-text-muted)"},children:["v","0.2.21"]})]}),f.jsxs("div",{className:"flex-1 min-w-0",children:[r==="account"&&f.jsx(JHe,{onClose:t}),r==="session"&&f.jsx(oqe,{onClose:t}),r==="tunnel"&&f.jsx(KHe,{onClose:t})]})]})})})}const aqe={success:Bxe,error:vH,warning:Hy,info:N9e},lqe={success:"text-status-success",error:"text-status-error",warning:"text-status-warning",info:"text-accent"},cqe={success:"bg-status-success",error:"bg-status-error",warning:"bg-status-warning",info:"bg-accent"};function uqe({toast:e,onDismiss:t}){const[n,r]=O.useState(!1),i=aqe[e.type],s=e.duration??3500;return O.useEffect(()=>{const o=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(o)},[]),f.jsxs("div",{className:Sd("relative flex items-start gap-3 px-4 py-3 rounded-xl shadow-elevated overflow-hidden","bg-theme-card border border-theme-border min-w-[280px] max-w-sm","transition-all duration-300",n?"animate-slide-in-right opacity-100":"opacity-0 translate-x-8"),children:[f.jsx(i,{size:16,className:Sd("mt-0.5 flex-shrink-0",lqe[e.type])}),f.jsx("p",{className:"text-xs text-theme-text flex-1 leading-snug",children:e.message}),f.jsx("button",{onClick:()=>t(e.id),className:"p-0.5 rounded text-theme-muted hover:text-theme-text transition-colors flex-shrink-0",children:f.jsx(Yn,{size:12})}),f.jsx("div",{className:Sd("absolute bottom-0 left-0 h-0.5",cqe[e.type]),style:{animation:`toastProgress ${s}ms linear forwards`}})]})}function _E({toasts:e,onDismiss:t}){return e.length===0?null:vn.createPortal(f.jsx("div",{className:"fixed bottom-6 right-6 z-toast flex flex-col gap-2 items-end",children:e.map(n=>f.jsx(uqe,{toast:n,onDismiss:t},n.id))}),document.body)}const r7=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"];function dqe(e,t){let n=0;for(let r=0;r<e.length;r++)n=(n<<5)-n+e.charCodeAt(r)|0;return Math.abs(n)%t}function cw(e){return e.color&&/^#[0-9a-f]{6}$/i.test(e.color)?e.color:r7[dqe(e.id,r7.length)]}const Qee=192,hqe=88,T_=8;function fqe({project:e,anchorX:t,anchorY:n,onPick:r,onClose:i}){const s=O.useRef(null),[o,a]=O.useState({left:t,top:n}),l=cw(e);return O.useLayoutEffect(()=>{const c=Math.min(Math.max(t,T_),window.innerWidth-Qee-T_),u=Math.min(Math.max(n,T_),window.innerHeight-hqe-T_);a({left:c,top:u})},[t,n]),O.useEffect(()=>{const c=d=>{var h;(h=s.current)!=null&&h.contains(d.target)||i()},u=d=>{d.key==="Escape"&&i()};return window.addEventListener("mousedown",c),window.addEventListener("keydown",u),()=>{window.removeEventListener("mousedown",c),window.removeEventListener("keydown",u)}},[i]),vn.createPortal(f.jsxs("div",{ref:s,role:"menu",style:{position:"fixed",left:o.left,top:o.top,width:Qee,zIndex:1e3,background:"var(--color-bg-elevated, #1f1f23)",border:"1px solid var(--color-border)",borderRadius:10,padding:10,boxShadow:"0 12px 32px rgba(0,0,0,0.45)"},children:[f.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginBottom:8},children:r7.map(c=>{const u=e.color?c.toLowerCase()===e.color.toLowerCase():c===l&&!e.color;return f.jsx("button",{onClick:()=>r(c),"aria-label":c,style:{width:20,height:20,borderRadius:6,background:c,border:u?"2px solid var(--color-text-primary)":"2px solid transparent",cursor:"pointer",padding:0}},c)})}),f.jsx("button",{onClick:()=>r(null),style:{width:"100%",background:"transparent",border:"1px solid var(--color-border)",color:"var(--color-text-tertiary)",padding:"4px 8px",borderRadius:6,fontSize:11,cursor:"pointer"},children:"자동 색 (기본값)"})]}),document.body)}function pqe(e){return e==="executable"?w5:e==="command"?qy:Dm}function mqe({onLogout:e,authRequired:t,connected:n,onEvent:r,onClose:i,collapsed:s=!1,onToggleCollapsed:o}){var ie;const[a,l]=O.useState([]),[c,u]=O.useState({}),[d,h]=O.useState(null),[p,m]=O.useState(!1),[y,v]=O.useState(null),[b,S]=O.useState([]),[w,k]=O.useState(!1),[E,C]=O.useState(null),[T,j]=O.useState(!1),[P,A]=O.useState(null),[R,N]=O.useState(!1),[D,$]=O.useState(null),[I,H]=O.useState(null),V=xc(),q=Cg(),{t:L,toggleLang:z}=st(),{theme:Q,toggleTheme:W}=SH(),{enabled:U,supported:G,toggleNotification:ne}=kH(),{toasts:J,error:ee,success:X,info:Y,warning:te,dismiss:he}=Vy(),Z=((ie=V.pathname.match(/^\/projects\/([^/]+)/))==null?void 0:ie[1])||null;O.useEffect(()=>{De(),ue(),e7().then(A).catch(()=>{})},[]);async function ge(){if(!R){N(!0);try{const se=await e7();if(A(se),se.status==="running"&&se.url){await navigator.clipboard.writeText(se.url),X(L("tunnel.urlCopied"));return}const re=await c1e(),oe={status:"running",url:re.url};A(oe);try{await navigator.clipboard.writeText(re.url),X(L("tunnel.urlCopied"))}catch{X(re.url)}}catch(se){ee(se instanceof Error?se.message:L("tunnel.restartFailed"))}finally{N(!1)}}}function ue(){RHe().then(S).catch(()=>{})}const me=async se=>{try{E?await DHe(E.id,se):await $He(se),k(!1),C(null),ue()}catch(re){ee(re instanceof Error?re.message:"Failed to save favorite")}},ye=async se=>{try{await IHe(se)}catch(re){const oe=re instanceof Error?re.message:L("favorites.launchFailed");ee(`${L("favorites.launchFailed")}: ${oe}`)}},be=async(se,re)=>{if(re.preventDefault(),re.stopPropagation(),!!confirm(L("favorites.deleteConfirm")))try{await LHe(se),S(oe=>oe.filter(we=>we.id!==se))}catch(oe){ee(oe instanceof Error?oe.message:"Failed to delete favorite")}},_e=(se,re)=>{re.preventDefault(),re.stopPropagation(),C(se),k(!0)};O.useEffect(()=>{const se=()=>De();return window.addEventListener("projects:changed",se),()=>window.removeEventListener("projects:changed",se)},[]),O.useEffect(()=>{const se=()=>Ae();return window.addEventListener("review:changed",se),()=>window.removeEventListener("review:changed",se)},[]),O.useEffect(()=>r(se=>{var re;if(se.type==="project:status-changed"&&se.projectId&&u(oe=>({...oe,[se.projectId]:{running:se.running??0,completed:se.completed??0,total:se.total??0,running_sessions:se.running_sessions??0,running_discussions:se.running_discussions??0}})),se.type==="todo:status-changed"&&Ae(),se.type==="memory:ingest-finished"){const oe=a.find(We=>We.id===se.projectId),we=(oe==null?void 0:oe.name)??"",Te=se.sourceTitle?`“${se.sourceTitle}”`:se.sourceType??"",ze=we?`[${we}] `:"";if(se.error){ee(`${ze}${L("wiki.ingest.toast.failed")}: ${se.error}`,6e3);return}const Ze=se.created??0,Fe=se.updated??0,Ce=se.edgesAdded??0;if(Ze+Fe+Ce>0){const We=L("wiki.ingest.toast.success").replace("{source}",Te).replace("{created}",String(Ze)).replace("{updated}",String(Fe)).replace("{edges}",String(Ce));X(`${ze}${We}`)}else(re=se.skipped)!=null&&re.parseFailed?te(`${ze}${L("wiki.ingest.toast.parseFailed").replace("{source}",Te)}`,5e3):Y(`${ze}${L("wiki.ingest.toast.empty").replace("{source}",Te)}`,4e3)}}),[r,a,L,ee,Y,X,te]),O.useEffect(()=>{Ae()},[]);function Ae(){l1e({hours:24}).then(se=>h(se.total_todos)).catch(()=>{})}function De(){S5().then(se=>{l(se),se.forEach(re=>{t1e(re.id).then(oe=>{u(we=>({...we,[re.id]:oe}))}).catch(()=>{})})}).catch(()=>{})}const Qe=()=>{i==null||i()},Je=async(se,re)=>{await Kxe({name:se,path:re}),m(!1),window.dispatchEvent(new Event("projects:changed"))},Oe=O.useCallback(async(se,re)=>{const oe=a.map(We=>We.id),we=oe.indexOf(se);if(we<0)return;const Te=oe.filter(We=>We!==se),ze=re>we?re-1:re;if(ze===we)return;const Ze=[...Te.slice(0,ze),se,...Te.slice(ze)],Fe=a,Ce=new Map(a.map(We=>[We.id,We])),Ge=Ze.map(We=>Ce.get(We)).filter(Boolean);l(Ge);try{await pHe(Ze)}catch(We){l(Fe),ee(We instanceof Error?We.message:"Failed to reorder projects")}},[a,ee]),fe=O.useRef(!1),le=O.useCallback((se,re)=>{if(re.button!==0||re.target.closest("button"))return;re.preventDefault();const we=re.clientX,Te=re.clientY,ze=6;let Ze=!1,Fe=null;const Ce=et=>{const vt=document.querySelectorAll("[data-workspace-item]");if(vt.length===0)return null;const mt=vt[0].getBoundingClientRect();if(et<mt.top)return 0;const Zt=vt[vt.length-1].getBoundingClientRect();if(et>Zt.bottom)return vt.length;for(let Dt=0;Dt<vt.length;Dt++){const en=vt[Dt].getBoundingClientRect();if(et>=en.top&&et<=en.bottom){const pn=en.top+en.height/2;return et<pn?Dt:Dt+1}}return null},Ge=et=>{if(!Ze){if(Math.hypot(et.clientX-we,et.clientY-Te)<ze)return;Ze=!0,$(se)}const vt=Ce(et.clientY);vt!==Fe&&(Fe=vt,H(vt))},We=()=>{window.removeEventListener("mousemove",Ge),window.removeEventListener("mouseup",Ie),window.removeEventListener("keydown",ht)},Ie=()=>{if(We(),!Ze)return;fe.current=!0,requestAnimationFrame(()=>{fe.current=!1});const et=Fe;$(null),H(null),et!==null&&Oe(se,et)},ht=et=>{et.key==="Escape"&&(We(),$(null),H(null),Ze&&(fe.current=!0,requestAnimationFrame(()=>{fe.current=!1})))};window.addEventListener("mousemove",Ge),window.addEventListener("mouseup",Ie),window.addEventListener("keydown",ht)},[Oe]),ae=async(se,re)=>{if(re.preventDefault(),re.stopPropagation(),!!confirm(L("projects.deleteConfirm")))try{await e1e(se),l(oe=>oe.filter(we=>we.id!==se)),window.dispatchEvent(new Event("projects:changed")),Z===String(se)&&q("/")}catch{}},ce=se=>f.jsx("div",{className:"pointer-events-none absolute left-2 right-2 h-0.5 rounded-full",style:{backgroundColor:"var(--color-accent)",zIndex:10,...se==="above"?{top:-1}:{bottom:-1}}});if(s){const se=f.jsx("div",{className:"w-7 border-t my-1.5",style:{borderColor:"var(--color-border)"}});return f.jsxs("div",{className:"flex flex-col items-center h-full glass border-none py-3",children:[f.jsx("button",{onClick:o,className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("sidebar.expand"),children:f.jsx(hFe,{size:18})}),se,f.jsx(ws,{to:"/",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:V.pathname==="/"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.home"),children:f.jsx(Eee,{size:18})}),f.jsxs(ws,{to:"/review",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover mt-0.5",style:V.pathname==="/review"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.review"),children:[f.jsx(OE,{size:18}),d!==null&&d>0&&f.jsx("span",{className:"absolute top-1 right-1 w-1.5 h-1.5 rounded-full",style:{backgroundColor:"var(--color-accent)"}})]}),f.jsx(ws,{to:"/agenda",onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover mt-0.5",style:V.pathname==="/agenda"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)"}:{color:"var(--color-text-tertiary)"},title:L("sidebar.agenda"),children:f.jsx(U8,{size:18})}),se,f.jsx("div",{className:"flex-1 overflow-y-auto w-full flex flex-col items-center gap-1 py-1",children:a.map(re=>{const oe=c[re.id],we=Z===String(re.id),Te=oe?oe.running+oe.running_sessions+oe.running_discussions:0,ze=Te>0,Ze=cw(re);return f.jsxs(ws,{to:`/projects/${re.id}`,onClick:Qe,className:"relative flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:we?{backgroundColor:"var(--color-bg-hover)"}:void 0,title:ze?`${re.name} · ${Te} ${L("detail.live")}`:re.name,children:[we&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:Ze}}),f.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${ze?"workspace-dot-pulse":""}`,style:{backgroundColor:Ze,opacity:we||ze?1:.55}})]},re.id)})}),se,f.jsx("span",{className:`w-1.5 h-1.5 rounded-full my-1 ${n?"bg-status-success":"bg-status-error"}`,title:n?L("detail.live"):"Disconnected"}),f.jsx("button",{onClick:W,className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L(Q==="light"?"theme.dark":"theme.light"),children:Q==="light"?f.jsx(Tee,{size:16}):f.jsx(jee,{size:16})}),f.jsx("button",{onClick:()=>j(!0),className:"flex items-center justify-center w-9 h-9 rounded-lg transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("settings.title"),children:f.jsx(aw,{size:16})}),f.jsx(zee,{open:T,onClose:()=>j(!1)}),f.jsx(_E,{toasts:J,onDismiss:he})]})}return f.jsxs("div",{className:"flex flex-col h-full glass border-none",onDragStart:se=>se.preventDefault(),children:[f.jsxs("div",{className:"px-4 pt-5 pb-3 flex items-center justify-between",children:[f.jsx(ws,{to:"/",onClick:Qe,className:"block",children:f.jsxs("svg",{viewBox:"0 0 200 32",fill:"none",className:"h-6 w-auto",children:[f.jsxs("text",{x:"0",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"500",fill:"var(--color-accent)",opacity:"0.5",children:[">","_"]}),f.jsx("text",{x:"38",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"700",fill:"var(--color-accent)",children:"CLI"}),f.jsx("text",{x:"96",y:"24",fontFamily:"'JetBrains Mono', monospace",fontSize:"22",fontWeight:"500",fill:"var(--color-text-primary)",children:"Trigger"})]})}),f.jsx("button",{onClick:o,className:"hidden md:flex items-center justify-center w-7 h-7 rounded-md transition-colors hover:bg-theme-hover flex-shrink-0",style:{color:"var(--color-text-tertiary)"},title:L("sidebar.collapse"),children:f.jsx(uFe,{size:16})})]}),f.jsxs("nav",{className:"px-3 mb-2 space-y-0.5",children:[f.jsxs(ws,{to:"/",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/"?"font-medium":""}`,style:V.pathname==="/"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(Eee,{size:16}),L("sidebar.home")]}),f.jsxs(ws,{to:"/review",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/review"?"font-medium":""}`,style:V.pathname==="/review"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/review"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(OE,{size:16}),f.jsx("span",{className:"flex-1",children:L("sidebar.review")}),d!==null&&d>0&&f.jsx("span",{className:"text-2xs px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:"var(--color-accent)",color:"white"},children:d})]}),f.jsxs(ws,{to:"/agenda",onClick:Qe,className:`relative flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all duration-200 active:scale-95 ${V.pathname==="/agenda"?"font-medium":""}`,style:V.pathname==="/agenda"?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)"}:{color:"var(--color-text-tertiary)"},children:[V.pathname==="/agenda"&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:"var(--color-accent)"}}),f.jsx(U8,{size:16}),L("sidebar.agenda")]})]}),f.jsx("div",{className:"mx-4 border-t",style:{borderColor:"var(--color-border)"}}),f.jsxs("div",{className:"flex-1 overflow-y-auto px-3 pt-3",children:[f.jsxs("div",{className:"px-3 mb-2 flex items-center justify-between",children:[f.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:L("sidebar.workspaces")}),f.jsx("button",{onClick:()=>m(!0),className:"flex items-center justify-center w-5 h-5 rounded-md transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("projects.new"),children:f.jsx(is,{size:14,strokeWidth:2})})]}),f.jsx("div",{className:"space-y-0.5",children:a.map((se,re)=>{const oe=c[se.id],we=Z===String(se.id),Te=oe?oe.running+oe.running_sessions+oe.running_discussions:0,ze=Te>0,Ze=cw(se),Fe=D===se.id,Ce=D!==null&&I===re,Ge=D!==null&&re===a.length-1&&I===a.length;return f.jsxs("div",{className:"relative","data-workspace-item":!0,children:[Ce&&ce("above"),f.jsxs(ws,{to:`/projects/${se.id}`,draggable:!1,onDragStart:We=>We.preventDefault(),onClick:We=>{if(fe.current){We.preventDefault();return}Qe()},onMouseDown:We=>le(se.id,We),onContextMenu:We=>{We.preventDefault(),v({project:se,x:We.clientX,y:We.clientY})},className:`relative flex items-center gap-2.5 px-3 py-1.5 rounded-lg text-sm transition-all duration-200 hover:bg-theme-hover active:scale-95 group ${we?"font-medium":""} ${Fe?"opacity-50":""}`,style:we?{backgroundColor:"var(--color-bg-hover)",color:"var(--color-text-primary)",boxShadow:"var(--shadow-soft)",cursor:D?"grabbing":"pointer",userSelect:"none"}:{color:"var(--color-text-tertiary)",cursor:D?"grabbing":"pointer",userSelect:"none"},children:[we&&f.jsx("span",{className:"absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full",style:{backgroundColor:Ze}}),f.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${ze?"workspace-dot-pulse":""}`,style:{backgroundColor:Ze,opacity:we||ze?1:.55},title:ze?`${L("sidebar.workspaces")} · ${Te} ${L("detail.live")}`:se.name}),f.jsx("span",{className:"truncate flex-1",children:se.name}),f.jsx("button",{onClick:We=>ae(se.id,We),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-status-error/10",style:{color:"var(--color-text-muted)"},title:L("projects.delete"),children:f.jsx(Yn,{size:12,strokeWidth:2})})]}),Ge&&ce("below")]},se.id)})})]}),p&&f.jsx(h1e,{onSubmit:(se,re)=>Je(se,re),onCancel:()=>m(!1)}),f.jsxs("div",{className:"px-3 pt-3 pb-2 border-t",style:{borderColor:"var(--color-border)"},children:[f.jsxs("div",{className:"px-3 mb-2 flex items-center justify-between",children:[f.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider",style:{color:"var(--color-text-muted)"},children:L("sidebar.favorites")}),f.jsx("button",{onClick:()=>{C(null),k(!0)},className:"flex items-center justify-center w-5 h-5 rounded-md transition-colors hover:bg-theme-hover",style:{color:"var(--color-text-tertiary)"},title:L("favorites.add"),children:f.jsx(is,{size:14,strokeWidth:2})})]}),f.jsx("div",{className:"space-y-0.5 max-h-48 overflow-y-auto",children:b.map(se=>{const re=pqe(se.type);return f.jsxs("button",{onClick:()=>ye(se.id),className:"w-full relative flex items-center gap-2.5 px-3 py-1.5 rounded-lg text-sm transition-all duration-200 hover:bg-theme-hover active:scale-95 group",style:{color:"var(--color-text-tertiary)"},title:se.target,children:[f.jsx(re,{size:14,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate flex-1 text-left",children:se.name}),f.jsx("span",{onClick:oe=>_e(se,oe),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-theme-hover cursor-pointer",style:{color:"var(--color-text-muted)"},title:L("favorites.edit"),children:f.jsx(Xxe,{size:11,strokeWidth:2})}),f.jsx("span",{onClick:oe=>be(se.id,oe),className:"flex-shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 transition-all hover:bg-status-error/10 cursor-pointer",style:{color:"var(--color-text-muted)"},title:L("favorites.delete"),children:f.jsx(Yn,{size:12,strokeWidth:2})})]},se.id)})})]}),w&&f.jsx(GHe,{initial:E??void 0,onSubmit:me,onCancel:()=>{k(!1),C(null)}}),y&&f.jsx(fqe,{project:y.project,anchorX:y.x,anchorY:y.y,onPick:async se=>{try{const re=await G8(y.project.id,{color:se});l(oe=>oe.map(we=>we.id===re.id?{...we,color:re.color}:we)),window.dispatchEvent(new Event("projects:changed"))}catch(re){ee(re instanceof Error?re.message:"Failed to update color")}v(null)},onClose:()=>v(null)}),f.jsx(zee,{open:T,onClose:()=>j(!1)}),f.jsx(_E,{toasts:J,onDismiss:he}),f.jsx("div",{className:"px-3 pb-4 pt-2",style:{borderTop:"1px solid var(--color-border)"},children:f.jsxs("div",{className:"flex items-center gap-1 px-1",children:[f.jsx("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 mr-1 ${n?"bg-status-success":"bg-status-error"}`,title:n?L("detail.live"):"Disconnected"}),f.jsx("button",{onClick:W,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:"var(--color-text-tertiary)"},title:L(Q==="light"?"theme.dark":"theme.light"),children:Q==="light"?f.jsx(Tee,{size:16}):f.jsx(jee,{size:16})}),f.jsx("button",{onClick:z,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors text-xs font-medium",style:{color:"var(--color-text-tertiary)"},children:L("lang.toggle")}),G&&f.jsx("button",{onClick:ne,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:U?"var(--color-accent)":"var(--color-text-tertiary)"},title:"Notification"in window&&Notification.permission==="denied"?L("notification.blocked"):L("notification.toggle"),children:U?f.jsx(vQe,{size:16}):f.jsx(mQe,{size:16})}),f.jsx("button",{onClick:ge,disabled:R,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors disabled:opacity-50",style:{color:(P==null?void 0:P.status)==="running"?"var(--color-accent)":"var(--color-text-tertiary)"},title:(P==null?void 0:P.status)==="running"&&P.url?`${P.url} — ${L("tunnel.urlCopied")}`:L(R?"tunnel.starting":"tunnel.start"),children:f.jsx(Fxe,{size:16})}),f.jsx("button",{onClick:()=>j(!0),className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors",style:{color:"var(--color-text-tertiary)"},title:L("settings.title"),children:f.jsx(aw,{size:16})}),t&&f.jsx("button",{onClick:e,className:"flex items-center justify-center w-8 h-8 rounded-lg transition-colors ml-auto",style:{color:"var(--color-text-tertiary)"},title:L("projects.logout"),children:f.jsx(W9e,{size:16})})]})})]})}const gqe=80,Fee=120,id=180,Hee=.03,qee=8;function vqe(){const e=O.useRef(null),t=O.useRef({x:-1e3,y:-1e3}),n=O.useRef([]),r=O.useRef(0);return O.useEffect(()=>{const i=e.current;if(!i)return;const s=i.getContext("2d");if(!s)return;let o=0,a=0;function l(){const p=i.parentElement;p&&(o=p.clientWidth,a=p.clientHeight,i.width=o*window.devicePixelRatio,i.height=a*window.devicePixelRatio,i.style.width=`${o}px`,i.style.height=`${a}px`,s.setTransform(window.devicePixelRatio,0,0,window.devicePixelRatio,0,0),c())}function c(){n.current=[];for(let p=0;p<gqe;p++){const m=Math.random()*o,y=Math.random()*a;n.current.push({x:m,y,baseX:m,baseY:y,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3,size:Math.random()*1.5+.5,alpha:Math.random()*.4+.1})}}function u(p){const m=i.getBoundingClientRect();t.current.x=p.clientX-m.left,t.current.y=p.clientY-m.top}function d(){t.current.x=-1e3,t.current.y=-1e3}function h(){if(!s)return;s.clearRect(0,0,o,a);const p=n.current,m=t.current;for(const y of p){const v=y.x-m.x,b=y.y-m.y,S=Math.sqrt(v*v+b*b);if(S<id&&S>0){const w=(id-S)/id,k=Math.atan2(b,v);y.vx+=Math.cos(k)*w*qee*.05,y.vy+=Math.sin(k)*w*qee*.05}y.vx+=(y.baseX-y.x)*Hee,y.vy+=(y.baseY-y.y)*Hee,y.baseX+=(Math.random()-.5)*.1,y.baseY+=(Math.random()-.5)*.1,y.baseX<0&&(y.baseX=0),y.baseX>o&&(y.baseX=o),y.baseY<0&&(y.baseY=0),y.baseY>a&&(y.baseY=a),y.vx*=.92,y.vy*=.92,y.x+=y.vx,y.y+=y.vy}for(let y=0;y<p.length;y++){for(let w=y+1;w<p.length;w++){const k=p[y].x-p[w].x,E=p[y].y-p[w].y,C=Math.sqrt(k*k+E*E);if(C<Fee){const T=(1-C/Fee)*.15;s.beginPath(),s.strokeStyle=`rgba(75, 141, 255, ${T})`,s.lineWidth=.5,s.moveTo(p[y].x,p[y].y),s.lineTo(p[w].x,p[w].y),s.stroke()}}const v=p[y].x-m.x,b=p[y].y-m.y,S=Math.sqrt(v*v+b*b);if(S<id){const w=(1-S/id)*.3;s.beginPath(),s.strokeStyle=`rgba(75, 141, 255, ${w})`,s.lineWidth=.8,s.moveTo(p[y].x,p[y].y),s.lineTo(m.x,m.y),s.stroke()}}for(const y of p){const v=y.x-m.x,b=y.y-m.y,S=Math.sqrt(v*v+b*b),w=S<id?y.alpha+(1-S/id)*.5:y.alpha;s.beginPath(),s.arc(y.x,y.y,y.size,0,Math.PI*2),s.fillStyle=`rgba(75, 141, 255, ${w})`,s.fill(),S<id&&(s.beginPath(),s.arc(y.x,y.y,y.size*3,0,Math.PI*2),s.fillStyle=`rgba(75, 141, 255, ${(1-S/id)*.08})`,s.fill())}r.current=requestAnimationFrame(h)}return l(),i.addEventListener("mousemove",u),i.addEventListener("mouseleave",d),window.addEventListener("resize",l),r.current=requestAnimationFrame(h),()=>{cancelAnimationFrame(r.current),i.removeEventListener("mousemove",u),i.removeEventListener("mouseleave",d),window.removeEventListener("resize",l)}},[]),f.jsx("canvas",{ref:e,className:"absolute inset-0 pointer-events-auto",style:{zIndex:0}})}function yqe({children:e,onLogout:t,authRequired:n,connected:r,onEvent:i}){const[s,o]=O.useState(!1),[a,l]=O.useState(()=>localStorage.getItem("sidebarCollapsed")==="1"),c=()=>{l(u=>{const d=!u;return localStorage.setItem("sidebarCollapsed",d?"1":"0"),d})};return f.jsxs("div",{className:"flex h-screen bg-theme-bg",children:[f.jsx("aside",{className:`
677
677
  fixed inset-y-0 left-0 z-40 flex-shrink-0
678
678
  transition-[transform,width] duration-200 ease-in-out
679
679
  md:translate-x-0 md:static md:z-auto
@@ -1004,7 +1004,7 @@ ${n.toString()}`)};class ODt{constructor(t){this.patterns=[],this.$state=t}if(t,
1004
1004
  `}}),kRe=(e,t)=>{var o;let n=e.resolve(t),r=n.depth-1;if(r<1)return;let i=n.before(r),s=e.resolve(i).nodeAfter;if(s)return(o=s.type.spec.group)!=null&&o.includes("bnBlock")?Vf(e.resolve(i)):kRe(e,i)},S1=(e,t)=>{let n=e.resolve(t),r=n.index();if(r===0)return;let i=n.posAtIndex(r-1);return Vf(e.resolve(i))},Fx=(e,t)=>{let n=e.resolve(t),r=n.index();if(r===n.node().childCount-1)return;let i=n.posAtIndex(r+1);return Vf(e.resolve(i))},z9=(e,t)=>{for(;t.childContainer;){let n=t.childContainer.node,r=e.resolve(t.childContainer.beforePos+1).posAtIndex(n.childCount-1);t=Vf(e.resolve(r))}return t},P8t=(e,t)=>e.isBlockContainer&&e.blockContent.node.type.spec.content==="inline*"&&e.blockContent.node.childCount>0&&t.isBlockContainer&&t.blockContent.node.type.spec.content==="inline*",M8t=(e,t,n,r)=>{if(!r.isBlockContainer)throw Error(`Attempted to merge block at position ${r.bnBlock.beforePos} into previous block at position ${n.bnBlock.beforePos}, but next block is not a block container`);if(r.childContainer){let i=e.doc.resolve(r.childContainer.beforePos+1),s=e.doc.resolve(r.childContainer.afterPos-1),o=i.blockRange(s);if(t){let a=e.doc.resolve(r.bnBlock.beforePos);e.tr.lift(o,a.depth)}}if(t){if(!n.isBlockContainer)throw Error(`Attempted to merge block at position ${r.bnBlock.beforePos} into previous block at position ${n.bnBlock.beforePos}, but previous block is not a block container`);t(e.tr.delete(n.blockContent.afterPos-1,r.blockContent.beforePos+1))}return!0},h0e=e=>({state:t,dispatch:n})=>{let r=Vf(t.doc.resolve(e)),i=S1(t.doc,r.bnBlock.beforePos);if(!i)return!1;let s=z9(t.doc,i);return P8t(s,r)?M8t(t,n,s,r):!1},A8t=ei.create({priority:50,addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({chain:r,commands:i})=>[()=>i.deleteSelection(),()=>i.undoInputRule(),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;let a=s.selection.from===o.blockContent.beforePos+1,l=o.blockContent.node.type.name==="paragraph";return a&&!l?i.command(zIt(o.bnBlock.beforePos,{type:"paragraph",props:{}})):!1}),()=>i.command(({state:s,tr:o})=>{let a=ii(s);if(!a.isBlockContainer)return!1;let{blockContent:l}=a;return s.selection.from===l.beforePos+1?I9(o,o.doc.type.schema.nodes.blockContainer,o.doc.type.schema.nodes.blockGroup):!1}),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;let{bnBlock:a,blockContent:l}=o,c=S1(s.doc,o.bnBlock.beforePos);if(!c||!c.isBlockContainer||c.blockContent.node.type.spec.content!=="inline*")return!1;let u=s.selection.from===l.beforePos+1,d=s.selection.empty,h=a.beforePos;return u&&d?r().command(h0e(h)).scrollIntoView().run():!1}),()=>i.command(({state:s,tr:o,dispatch:a})=>{let l=ii(s);if(!l.isBlockContainer||s.selection.from!==l.blockContent.beforePos+1)return!1;let c=S1(s.doc,l.bnBlock.beforePos);if(!c||c.isBlockContainer)return!1;if(a){let u=c.bnBlock.afterPos-1,d=o.doc.resolve(u-1);return o.delete(l.bnBlock.beforePos,l.bnBlock.afterPos),o.insert(d.pos,l.bnBlock.node),o.setSelection(St.near(o.doc.resolve(d.pos+1))),!0}return!1}),()=>i.command(({state:s,tr:o,dispatch:a})=>{let l=ii(s);if(!l.isBlockContainer||o.selection.from!==l.blockContent.beforePos+1)return!1;let c=o.doc.resolve(l.bnBlock.beforePos);if(c.nodeBefore||c.node().type.name!=="column")return!1;let u=o.doc.resolve(l.bnBlock.beforePos),d=o.doc.resolve(u.before()),h=d.before();return a&&(o.delete(l.bnBlock.beforePos,l.bnBlock.afterPos),sE(o,h),d.pos===h+1?(o.insert(h,l.bnBlock.node),o.setSelection(St.near(o.doc.resolve(h)))):(o.insert(d.pos-1,l.bnBlock.node),o.setSelection(St.near(o.doc.resolve(d.pos))))),!0}),()=>i.command(({state:s})=>{var a;let o=ii(s);if(!o.isBlockContainer)return!1;if(o.blockContent.node.childCount===0&&o.blockContent.node.type.spec.content==="inline*"){let l=S1(s.doc,o.bnBlock.beforePos);if(!l)return!1;let c=z9(s.doc,l);if(!c.isBlockContainer||!c||!c.isBlockContainer)return!1;let u=r();if(o.childContainer&&u.insertContentAt(o.bnBlock.afterPos,(a=o.childContainer)==null?void 0:a.node.content),c.blockContent.node.type.spec.content==="tableRow+"){let d=o.bnBlock.beforePos-1-1-1-1-1;u=u.setTextSelection(d)}else if(c.blockContent.node.type.spec.content==="")u=u.setNodeSelection(c.blockContent.beforePos);else{let d=c.blockContent.afterPos-1;u=u.setTextSelection(d)}return u.deleteRange({from:o.bnBlock.beforePos,to:o.bnBlock.afterPos}).scrollIntoView().run()}return!1}),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;let a=s.selection.from===o.blockContent.beforePos+1,l=s.selection.empty,c=S1(s.doc,o.bnBlock.beforePos);if(c&&a&&l){let u=z9(s.doc,c);if(!u.isBlockContainer)return!1;if(u.blockContent.node.type.spec.content===""||u.blockContent.node.type.spec.content==="inline*"&&u.blockContent.node.childCount===0)return r().cut({from:o.bnBlock.beforePos,to:o.bnBlock.afterPos},u.bnBlock.afterPos).deleteRange({from:u.bnBlock.beforePos,to:u.bnBlock.afterPos}).run()}return!1})]),t=()=>this.editor.commands.first(({chain:r,commands:i})=>[()=>i.deleteSelection(),()=>i.command(({state:s})=>{var h;let o=ii(s);if(!o.isBlockContainer||!o.childContainer)return!1;let{blockContent:a,childContainer:l}=o,c=s.selection.from===a.afterPos-1,u=s.selection.empty,d=Vf(s.doc.resolve(l.beforePos+1));if(!d.isBlockContainer)return!1;if(c&&u){let p=d.blockContent.node,m=p.type.spec.content==="inline*",y=a.node.type.spec.content==="inline*";return r().insertContentAt(d.bnBlock.afterPos,((h=d.childContainer)==null?void 0:h.node.content)||Ve.empty).deleteRange(l.node.childCount===1?{from:l.beforePos,to:l.afterPos}:{from:d.bnBlock.beforePos,to:d.bnBlock.afterPos}).insertContentAt(s.selection.from,m&&y?p.content:null).setTextSelection(s.selection.from).scrollIntoView().run()}return!1}),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;let{bnBlock:a,blockContent:l}=o,c=Fx(s.doc,o.bnBlock.beforePos);if(!c||!c.isBlockContainer)return!1;let u=s.selection.from===l.afterPos-1,d=s.selection.empty,h=a.afterPos;return u&&d?r().command(h0e(h)).scrollIntoView().run():!1}),()=>i.command(({state:s,tr:o,dispatch:a})=>{let l=ii(s);if(!l.isBlockContainer||s.selection.from!==l.blockContent.afterPos-1)return!1;let c=Fx(s.doc,l.bnBlock.beforePos);if(!c||c.isBlockContainer)return!1;if(a){let u=c.bnBlock.beforePos+1,d=o.doc.resolve(u+1);return o.delete(d.pos,d.pos+d.nodeAfter.nodeSize),sE(o,c.bnBlock.beforePos),o.insert(l.bnBlock.afterPos,d.nodeAfter),o.setSelection(St.near(o.doc.resolve(d.pos))),!0}return!1}),()=>i.command(({state:s,tr:o,dispatch:a})=>{let l=ii(s);if(!l.isBlockContainer||o.selection.from!==l.blockContent.afterPos-1)return!1;let c=o.doc.resolve(l.bnBlock.afterPos);if(c.nodeAfter||c.node().type.name!=="column")return!1;let u=o.doc.resolve(l.bnBlock.afterPos),d=o.doc.resolve(u.after()),h=d.after();if(a){let p=d.pos===h-1?h:d.pos+1,m=Vf(o.doc.resolve(p));o.delete(m.bnBlock.beforePos,m.bnBlock.afterPos),sE(o,h-d.node().nodeSize),o.insert(u.pos,m.bnBlock.node),o.setSelection(St.near(o.doc.resolve(p)))}return!0}),()=>i.command(({state:s})=>{var u;let o=ii(s);if(!o.isBlockContainer)return!1;let{blockContent:a}=o,l=s.selection.from===a.afterPos-1,c=s.selection.empty;if(l&&c){let d=(v,b)=>{let S=Fx(v,b);if(S)return S;let w=kRe(v,b);if(w)return d(v,w.bnBlock.beforePos)},h=d(s.doc,o.bnBlock.beforePos);if(!h||!h.isBlockContainer)return!1;let p=h.blockContent.node,m=p.type.spec.content==="inline*",y=a.node.type.spec.content==="inline*";return r().insertContentAt(h.bnBlock.afterPos,((u=h.childContainer)==null?void 0:u.node.content)||Ve.empty).deleteRange({from:h.bnBlock.beforePos,to:h.bnBlock.afterPos}).insertContentAt(s.selection.from,m&&y?p.content:null).setTextSelection(s.selection.from).scrollIntoView().run()}return!1}),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;if(o.blockContent.node.childCount===0&&o.blockContent.node.type.spec.content==="inline*"){let a=Fx(s.doc,o.bnBlock.beforePos);if(!a||!a.isBlockContainer)return!1;let l=r();if(a.blockContent.node.type.spec.content==="tableRow+"){let c=o.bnBlock.afterPos+1+1+1+1+1;l=l.setTextSelection(c)}else l=a.blockContent.node.type.spec.content===""?l.setNodeSelection(a.blockContent.beforePos):l.setTextSelection(a.blockContent.beforePos+1);return l.deleteRange({from:o.bnBlock.beforePos,to:o.bnBlock.afterPos}).scrollIntoView().run()}return!1}),()=>i.command(({state:s})=>{let o=ii(s);if(!o.isBlockContainer)return!1;let a=s.selection.from===o.blockContent.afterPos-1,l=s.selection.empty,c=Fx(s.doc,o.bnBlock.beforePos);if(!c||!c.isBlockContainer)return!1;if(c&&a&&l&&(c.blockContent.node.type.spec.content===""||c.blockContent.node.type.spec.content==="inline*"&&c.blockContent.node.childCount===0)){let u=c.bnBlock.node.lastChild.content;return r().deleteRange({from:c.bnBlock.beforePos,to:c.bnBlock.afterPos}).insertContentAt(o.bnBlock.afterPos,c.bnBlock.node.childCount===2?u:null).run()}return!1})]),n=(r=!1)=>this.editor.commands.first(({commands:i,tr:s})=>[()=>i.command(({state:o,tr:a})=>{let l=ii(o);if(!l.isBlockContainer)return!1;let{bnBlock:c,blockContent:u}=l,{depth:d}=o.doc.resolve(c.beforePos),h=o.selection.$anchor.parentOffset===0,p=o.selection.anchor===o.selection.head,m=u.node.childCount===0;return h&&p&&m&&d>1?I9(a,a.doc.type.schema.nodes.blockContainer,a.doc.type.schema.nodes.blockGroup):!1}),()=>i.command(({state:o})=>{var c;let a=ii(o),l=((c=this.options.editor.schema.blockSchema[a.blockNoteType].meta)==null?void 0:c.hardBreakShortcut)??"shift+enter";if(l==="none")return!1;if(l==="shift+enter"&&r||l==="enter"){let u=s.storedMarks||s.selection.$head.marks().filter(d=>this.editor.extensionManager.splittableMarks.includes(d.type.name));return s.insert(s.selection.head,s.doc.type.schema.nodes.hardBreak.create()).ensureMarks(u),!0}return!1}),()=>i.command(({state:o,dispatch:a,tr:l})=>{var y;let c=ii(o);if(!c.isBlockContainer)return!1;let{bnBlock:u,blockContent:d}=c,h=o.selection.$anchor.parentOffset===0,p=o.selection.anchor===o.selection.head,m=d.node.childCount===0;if(h&&p&&m){let v=u.afterPos,b=v+2;if(a){let S=o.schema.nodes.blockContainer.createAndFill(void 0,[o.schema.nodes.paragraph.createAndFill()||void 0,(y=c.childContainer)==null?void 0:y.node].filter(w=>w!==void 0));l.insert(v,S).setSelection(new St(l.doc.resolve(b))).scrollIntoView(),c.childContainer&&l.delete(c.childContainer.beforePos,c.childContainer.afterPos)}return!0}return!1}),()=>i.command(({state:o,chain:a})=>{let l=ii(o);if(!l.isBlockContainer)return!1;let{blockContent:c}=l,u=o.selection.$anchor.parentOffset===0;return c.node.childCount===0?!1:(a().deleteSelection().command(y3t(o.selection.from,u,u)).run(),!0)})]);return{Backspace:e,Delete:t,Enter:()=>n(),"Shift-Enter":()=>n(!0),Tab:()=>{var r,i;return this.options.tabBehavior!=="prefer-indent"&&((r=this.options.editor.getExtension(ll))!=null&&r.store.state||((i=this.options.editor.getExtension(ec))==null?void 0:i.store.state)!==void 0)?!1:hRe(this.options.editor)},"Shift-Tab":()=>{var r,i;return this.options.tabBehavior!=="prefer-indent"&&((r=this.options.editor.getExtension(ll))!=null&&r.store.state||((i=this.options.editor.getExtension(ec))==null?void 0:i.store.state)!==void 0)?!1:fRe(this.options.editor)},"Shift-Mod-ArrowUp":()=>(this.options.editor.moveBlocksUp(),!0),"Shift-Mod-ArrowDown":()=>(this.options.editor.moveBlocksDown(),!0),"Mod-z":()=>this.options.editor.undo(),"Mod-y":()=>this.options.editor.redo(),"Shift-Mod-z":()=>this.options.editor.redo()}}}),N8t=jl.create({name:"insertion",inclusive:!1,excludes:"deletion modification insertion",addAttributes(){return{id:{default:null,validate:"number"}}},extendMarkSchema(e){return e.name==="insertion"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,n){return["ins",{"data-id":String(t.attrs.id),"data-inline":String(n),...!n&&{style:"display: contents"}},0]},parseDOM:[{tag:"ins",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10)}:!1}}]}:{}}}),R8t=jl.create({name:"deletion",inclusive:!1,excludes:"insertion modification deletion",addAttributes(){return{id:{default:null,validate:"number"}}},extendMarkSchema(e){return e.name==="deletion"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,n){return["del",{"data-id":String(t.attrs.id),"data-inline":String(n),...!n&&{style:"display: contents"}},0]},parseDOM:[{tag:"del",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10)}:!1}}]}:{}}}),$8t=jl.create({name:"modification",inclusive:!1,excludes:"deletion insertion",addAttributes(){return{id:{default:null,validate:"number"},type:{validate:"string"},attrName:{default:null,validate:"string|null"},previousValue:{default:null},newValue:{default:null}}},extendMarkSchema(e){return e.name==="modification"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,n){return[n?"span":"div",{"data-type":"modification","data-id":String(t.attrs.id),"data-mod-type":t.attrs.type,"data-mod-prev-val":JSON.stringify(t.attrs.previousValue),"data-mod-new-val":JSON.stringify(t.attrs.newValue)},0]},parseDOM:[{tag:"span[data-type='modification']",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10),type:t.dataset.modType,previousValue:t.dataset.modPrevVal,newValue:t.dataset.modNewVal}:!1}},{tag:"div[data-type='modification']",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10),type:t.dataset.modType,previousValue:t.dataset.modPrevVal}:!1}}]}:{}}}),D8t=ei.create({name:"textAlignment",addGlobalAttributes(){return[{types:["tableCell","tableHeader"],attributes:{textAlignment:{default:"left",parseHTML:e=>e.getAttribute("data-text-alignment"),renderHTML:e=>e.textAlignment==="left"?{}:{"data-text-alignment":e.textAlignment}}}}]}}),L8t=ei.create({name:"blockTextColor",addGlobalAttributes(){return[{types:["table","tableCell","tableHeader"],attributes:{textColor:WIt()}}]}}),I8t={blockColor:"data-block-color",blockStyle:"data-block-style",id:"data-id",depth:"data-depth",depthChange:"data-depth-change"},B8t=_c.create({name:"blockContainer",group:"blockGroupChild bnBlock",content:"blockContent blockGroup?",priority:50,defining:!0,marks:"insertion modification deletion",parseHTML(){return[{tag:"div[data-node-type="+this.name+"]",getAttrs:e=>{if(typeof e=="string")return!1;let t={};for(let[n,r]of Object.entries(I8t))e.getAttribute(r)&&(t[n]=e.getAttribute(r));return t}},{tag:'div[data-node-type="blockOuter"]',skip:!0}]},renderHTML({HTMLAttributes:e}){var i;let t=document.createElement("div");t.className="bn-block-outer",t.setAttribute("data-node-type","blockOuter");for(let[s,o]of Object.entries(e))s!=="class"&&t.setAttribute(s,o);let n={...((i=this.options.domAttributes)==null?void 0:i.block)||{},...e},r=document.createElement("div");r.className=vr("bn-block",n.class),r.setAttribute("data-node-type",this.name);for(let[s,o]of Object.entries(n))s!=="class"&&r.setAttribute(s,o);return t.appendChild(r),{dom:t,contentDOM:r}}}),z8t=_c.create({name:"blockGroup",group:"childContainer",content:"blockGroupChild+",marks:"deletion insertion modification",parseHTML(){return[{tag:"div",getAttrs:e=>typeof e=="string"?!1:e.getAttribute("data-node-type")==="blockGroup"?null:!1}]},renderHTML({HTMLAttributes:e}){var r;let t={...((r=this.options.domAttributes)==null?void 0:r.blockGroup)||{},...e},n=document.createElement("div");n.className=vr("bn-block-group",t.class),n.setAttribute("data-node-type","blockGroup");for(let[i,s]of Object.entries(t))i!=="class"&&n.setAttribute(i,s);return{dom:n,contentDOM:n}}}),Q8t=_c.create({name:"doc",topNode:!0,content:"blockGroup",marks:"insertion modification deletion"}),F8t=Dn(({options:e})=>({key:"collaboration",blockNoteExtensions:[yBt(e),R9(e),nE(e),rE(),xBt(e)]}));function H8t(e,t){return[iv.ClipboardTextSerializer,iv.Commands,iv.Editable,iv.FocusEvents,iv.Tabindex,_6t,RM.configure({types:["blockContainer","columnList","column"],setIdAttribute:t.setIdAttribute,isWithinEditor:e.isWithinEditor}),j8t,C6t,N8t,R8t,$8t,...Object.values(e.schema.styleSpecs).map(n=>n.implementation.mark.configure({editor:e})),L8t,T8t,D8t,ei.create({name:"OverrideEscape",addKeyboardShortcuts:()=>({Escape:()=>{var n;return(n=e.getExtension(bl))!=null&&n.shown()?!1:(e.blur(),!0)}})}),Q8t,B8t.configure({editor:e,domAttributes:t.domAttributes}),A8t.configure({editor:e,tabBehavior:t.tabBehavior}),z8t.configure({domAttributes:t.domAttributes}),...Object.values(e.schema.inlineContentSpecs).filter(n=>n.config!=="link"&&n.config!=="text").map(n=>n.implementation.node.configure({editor:e})),...Object.values(e.schema.blockSpecs).flatMap(n=>[..."node"in n.implementation?[n.implementation.node.configure({editor:e,domAttributes:t.domAttributes})]:[]]),E8t(e),_8t(e,t.pasteHandler||(n=>n.defaultPasteHandler())),l8t(e)]}function q8t(e,t){var r,i,s;let n=[ZNe(),_Bt(t),ec(t),ll(t),s8t({HTMLAttributes:((r=t.links)==null?void 0:r.HTMLAttributes)??{},onClick:(i=t.links)==null?void 0:i.onClick,...(s=t.links)!=null&&s.isValidLink?{isValidLink:t.links.isValidLink}:{}}),GS(t),PBt(),ABt(t),Oj(t),kl(t),bl(t),...t.trailingBlock===!1?[]:[f6t()]];return t.collaboration?n.push(F8t(t.collaboration)):n.push(CBt()),"table"in e.schema.blockSpecs&&n.push(yr(t)),t.animations!==!1&&n.push(RBt()),n}var V8t=class{constructor(e,t){lt(this,"disabledExtensions",new Set);lt(this,"extensions",[]);lt(this,"abortMap",new Map);lt(this,"extensionFactories",new Map);lt(this,"extensionPlugins",new Map);this.editor=e,this.options=t,e.onMount(()=>{for(let n of this.extensions)if(n.mount){let r=new window.AbortController,i=n.mount({dom:e.prosemirrorView.dom,root:e.prosemirrorView.root,signal:r.signal});i&&r.signal.addEventListener("abort",()=>{i()}),this.abortMap.set(n,r)}}),e.onUnmount(()=>{for(let[n,r]of this.abortMap.entries())this.abortMap.delete(n),r.abort()}),this.disabledExtensions=new Set(t.disableExtensions||[]);for(let n of q8t(this.editor,this.options))this.addExtension(n);for(let n of this.options.extensions??[])this.addExtension(n);for(let n of Object.values(this.editor.schema.blockSpecs))for(let r of n.extensions??[])this.addExtension(r)}registerExtension(e){var i;let t=[].concat(e).filter(Boolean);if(!t.length){console.warn("No extensions found to register",e);return}let n=t.map(s=>this.addExtension(s)).filter(Boolean),r=new Set;for(let s of n)s!=null&&s.tiptapExtensions&&console.warn(`Extension ${s.key} has tiptap extensions, but these cannot be changed after initializing the editor. Please separate the extension into multiple extensions if you want to add them, or re-initialize the editor.`,s),(i=s==null?void 0:s.inputRules)!=null&&i.length&&console.warn(`Extension ${s.key} has input rules, but these cannot be changed after initializing the editor. Please separate the extension into multiple extensions if you want to add them, or re-initialize the editor.`,s),this.getProsemirrorPluginsFromExtension(s).plugins.forEach(o=>{r.add(o)});this.updatePlugins(s=>[...s,...r])}addExtension(e){let t;if(t=typeof e=="function"?e({editor:this.editor}):e,!(!t||this.disabledExtensions.has(t.key))){if(typeof e=="function"){let n=t[zQ];typeof n=="function"&&this.extensionFactories.set(n,t)}if(this.extensions.push(t),t.blockNoteExtensions)for(let n of t.blockNoteExtensions)this.addExtension(n);return t}}resolveExtensions(e){let t=[];if(typeof e=="function"){let n=this.extensionFactories.get(e);n&&t.push(n)}else if(Array.isArray(e))for(let n of e)t.push(...this.resolveExtensions(n));else if(typeof e=="object"&&"key"in e)t.push(e);else if(typeof e=="string"){let n=this.extensions.find(r=>r.key===e);n&&t.push(n)}return t}unregisterExtension(e){var i,s;let t=this.resolveExtensions(e);if(!t.length){console.warn("No extensions found to unregister",e);return}let n=!1,r=new Set;for(let o of t)this.extensions=this.extensions.filter(a=>a!==o),this.extensionFactories.forEach((a,l)=>{a===o&&this.extensionFactories.delete(l)}),(i=this.abortMap.get(o))==null||i.abort(),this.abortMap.delete(o),(s=this.extensionPlugins.get(o))==null||s.forEach(a=>{r.add(a)}),this.extensionPlugins.delete(o),o.tiptapExtensions&&!n&&(n=!0,console.warn(`Extension ${o.key} has tiptap extensions, but they will not be removed. Please separate the extension into multiple extensions if you want to remove them, or re-initialize the editor.`,e));this.updatePlugins(o=>o.filter(a=>!r.has(a)))}updatePlugins(e){let t=this.editor.prosemirrorState,n=t.reconfigure({plugins:e(t.plugins.slice())});this.editor.prosemirrorView.updateState(n)}getTiptapExtensions(){var r;let e=H8t(this.editor,this.options).filter(i=>!this.disabledExtensions.has(i.name)),t=ONe(this.extensions),n=new Map;for(let i of this.extensions){i.tiptapExtensions&&e.push(...i.tiptapExtensions);let s=t(i.key),{plugins:o,inputRules:a}=this.getProsemirrorPluginsFromExtension(i);o.length&&e.push(ei.create({name:i.key,priority:s,addProseMirrorPlugins:()=>o})),a.length&&(n.has(s)||n.set(s,[]),n.get(s).push(...a))}e.push(ei.create({name:"blocknote-input-rules",addProseMirrorPlugins(){let i=[];Array.from(n.keys()).sort().reverse().forEach(o=>{i.push(...n.get(o))});let s=v6t({rules:i});return[s,new cn({props:{handleKeyDown(o,a){var c;if(a.key!=="Enter"||a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)return!1;let{$cursor:l}=o.state.selection;return l?!!((c=s.props.handleTextInput)!=null&&c.call(s,o,l.pos,l.pos,`
1005
1005
  `,()=>o.state.tr.insertText(`
1006
1006
  `,l.pos,l.pos))):!1}}})]}}));for(let i of((r=this.options._tiptapOptions)==null?void 0:r.extensions)??[])e.push(i);return e}getProsemirrorPluginsFromExtension(e){var r,i,s;let t=[...e.prosemirrorPlugins??[]],n=[];return!((r=e.prosemirrorPlugins)!=null&&r.length)&&!Object.keys(e.keyboardShortcuts||{}).length&&!((i=e.inputRules)!=null&&i.length)?{plugins:t,inputRules:n}:(this.extensionPlugins.set(e,t),(s=e.inputRules)!=null&&s.length&&n.push(...e.inputRules.map(o=>new Wg(o.find,(a,l,c,u)=>{var h;let d=o.replace({match:l,range:{from:c,to:u},editor:this.editor});if(d){let p=a.tr,m=XS(p);if(!m.isBlockContainer||((h=this.editor.schema.blockSchema[m.blockNoteType])==null?void 0:h.content)!=="inline")return null;p.deleteRange(c,u),LM(p,m.bnBlock.beforePos,d);let y=m.bnBlock.node.attrs.id;return y&&EX(p,y,"start"),p}return null},{undoable:!0}))),Object.keys(e.keyboardShortcuts||{}).length&&t.push(KPe(Object.fromEntries(Object.entries(e.keyboardShortcuts).map(([o,a])=>[o,()=>a({editor:this.editor})])))),{plugins:t,inputRules:n})}getExtensions(){return new Map(this.extensions.map(e=>[e.key,e]))}getExtension(e){if(typeof e=="string")return this.extensions.find(t=>t.key===e)||void 0;if(typeof e=="function")return this.extensionFactories.get(e)||void 0;throw Error(`Invalid extension type: ${typeof e}`)}hasExtension(e){return typeof e=="string"?this.extensions.some(t=>t.key===e):typeof e=="object"&&"key"in e?this.extensions.some(t=>t.key===e.key):typeof e=="function"?this.extensionFactories.has(e):!1}};function W8t(e,t){let{$from:n,$to:r}=t;if(n.pos>n.start()&&n.pos<e.content.size){let i=e.textBetween(n.pos,n.pos+1);if(/^[\w\p{P}]$/u.test(i)){let s=e.textBetween(n.start(),n.pos).match(/[\w\p{P}]+$/u);s&&(n=e.resolve(n.pos-s[0].length))}}if(r.pos<r.end()&&r.pos>0){let i=e.textBetween(r.pos-1,r.pos);if(/^[\w\p{P}]$/u.test(i)){let s=e.textBetween(r.pos,r.end()).match(/^[\w\p{P}]+/u);s&&(r=e.resolve(r.pos+s[0].length))}}return{$from:n,$to:r,from:n.pos,to:r.pos}}function U8t(e){let t=Ui(e);if(e.selection.empty||"node"in e.selection)return;let n=e.doc.resolve(qf(e.doc,e.selection.from).posBeforeNode),r=e.doc.resolve(qf(e.doc,e.selection.to).posBeforeNode),i=(c,u)=>{let d=n.posAtIndex(c,u),h=e.doc.resolve(d).nodeAfter;if(!h)throw Error(`Error getting selection - node not found at position ${d}`);return Yr(h,t)},s=[],o=n.sharedDepth(r.pos),a=n.index(o),l=r.index(o);if(n.depth>o){s.push(Yr(n.nodeAfter,t));for(let c=n.depth;c>o;c--)if(n.node(c).type.isInGroup("childContainer")){let u=n.index(c)+1,d=n.node(c).childCount;for(let h=u;h<d;h++)s.push(i(h,c))}}else s.push(i(a,o));for(let c=a+1;c<=l;c++)s.push(i(c,o));if(s.length===0)throw Error(`Error getting selection - selection doesn't span any blocks (${e.selection})`);return{blocks:s}}function X8t(e,t,n){let r=typeof t=="string"?t:t.id,i=typeof n=="string"?n:n.id,s=ZS(Ui(e));if(r===i)throw Error(`Attempting to set selection with the same anchor and head blocks (id ${r})`);let o=So(r,e.doc);if(!o)throw Error(`Block with ID ${r} not found`);let a=So(i,e.doc);if(!a)throw Error(`Block with ID ${i} not found`);let l=Qd(o),c=Qd(a),u=s.blockSchema[l.blockNoteType],d=s.blockSchema[c.blockNoteType];if(!l.isBlockContainer||u.content==="none")throw Error(`Attempting to set selection anchor in block without content (id ${r})`);if(!c.isBlockContainer||d.content==="none")throw Error(`Attempting to set selection anchor in block without content (id ${i})`);let h,p;if(u.content==="table"){let m=_r.get(l.blockContent.node);h=l.blockContent.beforePos+m.positionAt(0,0,l.blockContent.node)+1+2}else h=l.blockContent.beforePos+1;if(d.content==="table"){let m=_r.get(c.blockContent.node),y=c.blockContent.beforePos+m.positionAt(m.height-1,m.width-1,c.blockContent.node)+1;p=y+e.doc.resolve(y).nodeAfter.nodeSize-2}else p=c.blockContent.afterPos-1;e.setSelection(St.create(e.doc,h,p))}function Z8t(e,t=!1){let n=Ui(e),r=t?W8t(e.doc,e.selection):e.selection,i=r.$from,s=r.$to;for(;s.parentOffset>=s.parent.nodeSize-2&&s.depth>0;)s=e.doc.resolve(s.pos+1);for(;s.parentOffset===0&&s.depth>0;)s=e.doc.resolve(s.pos-1);for(;i.parentOffset===0&&i.depth>0;)i=e.doc.resolve(i.pos-1);for(;i.parentOffset>=i.parent.nodeSize-2&&i.depth>0;)i=e.doc.resolve(i.pos+1);let o=_It(e.doc.slice(i.pos,s.pos,!0),n);return{_meta:{startPos:i.pos,endPos:s.pos},...o}}var G8t=class{constructor(e){this.editor=e}getSelection(){return this.editor.transact(e=>U8t(e))}getSelectionCutBlocks(e=!1){return this.editor.transact(t=>Z8t(t,e))}setSelection(e,t){return this.editor.transact(n=>X8t(n,e,t))}getTextCursorPosition(){return this.editor.transact(e=>Lzt(e))}setTextCursorPosition(e,t="start"){return this.editor.transact(n=>EX(n,e,t))}getSelectionBoundingBox(){if(!this.editor.prosemirrorView)return;let{selection:e}=this.editor.prosemirrorState,{ranges:t}=e,n=Math.min(...t.map(i=>i.$from.pos)),r=Math.max(...t.map(i=>i.$to.pos));if(VAt(e)){let i=this.editor.prosemirrorView.nodeDOM(n);if(i)return i.getBoundingClientRect()}return EU(this.editor.prosemirrorView,n,r).toJSON()}},Y8t=class{constructor(e){lt(this,"activeTransaction",null);lt(this,"isInCan",!1);this.editor=e}can(e){try{return this.isInCan=!0,e()}finally{this.isInCan=!1}}exec(e){if(this.activeTransaction)throw Error("`exec` should not be called within a `transact` call, move the `exec` call outside of the `transact` call");if(this.isInCan)return this.canExec(e);let t=this.prosemirrorState,n=this.prosemirrorView;return e(t,r=>this.prosemirrorView.dispatch(r),n)}canExec(e){if(this.activeTransaction)throw Error("`canExec` should not be called within a `transact` call, move the `canExec` call outside of the `transact` call");let t=this.prosemirrorState,n=this.prosemirrorView;return e(t,void 0,n)}transact(e){if(this.activeTransaction)return e(this.activeTransaction);try{this.activeTransaction=this.editor._tiptapEditor.state.tr;let t=e(this.activeTransaction),n=this.activeTransaction;return this.activeTransaction=null,n&&(n.docChanged||n.selectionSet||n.scrolledIntoView||n.storedMarksSet||!n.isGeneric)&&this.prosemirrorView.dispatch(n),t}finally{this.activeTransaction=null}}get prosemirrorState(){if(this.activeTransaction)throw Error("`prosemirrorState` should not be called within a `transact` call, move the `prosemirrorState` call outside of the `transact` call or use `editor.transact` to read the current editor state");return this.editor._tiptapEditor.state}get prosemirrorView(){return this.editor._tiptapEditor.view}isFocused(){var e;return((e=this.prosemirrorView)==null?void 0:e.hasFocus())||!1}focus(){var e;(e=this.prosemirrorView)==null||e.focus()}get isEditable(){if(!this.editor._tiptapEditor){if(!this.editor.headless)throw Error("no editor, but also not headless?");return!1}return this.editor._tiptapEditor.isEditable===void 0?!0:this.editor._tiptapEditor.isEditable}set isEditable(e){if(!this.editor._tiptapEditor){if(!this.editor.headless)throw Error("no editor, but also not headless?");return}this.editor._tiptapEditor.options.editable!==e&&this.editor._tiptapEditor.setEditable(e)}undo(){let e=this.editor.getExtension("yUndo");if(e)return this.exec(e.undoCommand);let t=this.editor.getExtension("history");if(t)return this.exec(t.undoCommand);throw Error("No undo plugin found")}redo(){let e=this.editor.getExtension("yUndo");if(e)return this.exec(e.redoCommand);let t=this.editor.getExtension("history");if(t)return this.exec(t.redoCommand);throw Error("No redo plugin found")}};function K8t(e,t,n,r={updateSelection:!0}){let{from:i,to:s}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},o=!0,a=!0,l="";if(n.forEach(c=>{c.check(),o&&c.isText&&c.marks.length===0?l+=c.text:o=!1,a=a?c.isBlock:!1}),i===s&&a){let{parent:c}=e.doc.resolve(i);c.isTextblock&&!c.type.spec.code&&!c.childCount&&(--i,s+=1)}return o?e.insertText(l,i,s):e.replaceWith(i,s,n),r.updateSelection&&rMe(e,e.steps.length-1,-1),!0}var J8t=class{constructor(e){this.editor=e}insertInlineContent(e,{updateSelection:t=!1}={}){let n=gc(e,this.editor.pmSchema);this.editor.transact(r=>{K8t(r,{from:r.selection.from,to:r.selection.to},n,{updateSelection:t})})}getActiveStyles(){return this.editor.transact(e=>{let t={},n=e.selection.$to.marks();for(let r of n){let i=this.editor.schema.styleSchema[r.type.name];if(!i){r.type.name!=="link"&&!r.type.spec.blocknoteIgnore&&console.warn("mark not found in styleschema",r.type.name);continue}i.propSchema==="boolean"?t[i.type]=!0:t[i.type]=r.attrs.stringValue}return t})}addStyles(e){for(let[t,n]of Object.entries(e)){let r=this.editor.schema.styleSchema[t];if(!r)throw Error(`style ${t} not found in styleSchema`);if(r.propSchema==="boolean")this.editor._tiptapEditor.commands.setMark(t);else if(r.propSchema==="string")this.editor._tiptapEditor.commands.setMark(t,{stringValue:n});else throw new Eu(r.propSchema)}}removeStyles(e){for(let t of Object.keys(e))this.editor._tiptapEditor.commands.unsetMark(t)}toggleStyles(e){for(let[t,n]of Object.entries(e)){let r=this.editor.schema.styleSchema[t];if(!r)throw Error(`style ${t} not found in styleSchema`);if(r.propSchema==="boolean")this.editor._tiptapEditor.commands.toggleMark(t);else if(r.propSchema==="string")this.editor._tiptapEditor.commands.toggleMark(t,{stringValue:n});else throw new Eu(r.propSchema)}}getSelectedText(){return this.editor.transact(e=>e.doc.textBetween(e.selection.from,e.selection.to))}getLinkMarkAtPos(e){return this.editor.transact(t=>{let n=t.doc.resolve(e),r=n.marks().find(s=>s.type.name==="link");if(!r)return;let i=mM(n,r.type);if(i)return{href:r.attrs.href,from:i.from,to:i.to,text:t.doc.textBetween(i.from,i.to)}})}getSelectedLinkUrl(){return this.editor.transact(e=>{var t;return(t=this.getLinkMarkAtPos(e.selection.from))==null?void 0:t.href})}createLink(e,t){e!==""&&this.editor.transact(n=>{let{from:r,to:i}=n.selection,s=this.editor.pmSchema.mark("link",{href:e});t?n.insertText(t,r,i).addMark(r,r+t.length,s):n.addMark(r,i,s)})}editLink(e,t,n=this.editor.transact(r=>r.selection.anchor)){this.editor.transact(r=>{let{from:i,to:s}=this.getLinkMarkAtPos(n+1)||{from:r.selection.from,to:r.selection.to},o=this.editor.pmSchema.mark("link",{href:e});t!==r.doc.textBetween(i,s)&&r.insertText(t,i,s),r.addMark(i,i+t.length,o)}),this.editor.prosemirrorView.focus()}deleteLink(e=this.editor.transact(t=>t.selection.anchor)){this.editor.transact(t=>{let{from:n,to:r}=this.getLinkMarkAtPos(e+1)||{from:t.selection.from,to:t.selection.to};t.removeMark(n,r,this.editor.pmSchema.marks.link).setMeta("preventAutolink",!0)}),this.editor.prosemirrorView.focus()}};function _Re(e){return oMe(e.state.selection.$from,t=>t.type.name==="tableCell"||t.type.name==="tableHeader")!==void 0}function CRe(e,t){var i;let n=t.nodes.hardBreak,r=Ve.empty;return e.forEach(s=>{s.isTextblock&&s.childCount>0?(r=r.append(s.content),r=r.addToEnd(n.create())):s.isText?r=r.addToEnd(s):s.isBlock&&s.childCount>0&&(r=r.append(CRe(s.content,t)),r=r.addToEnd(n.create()))}),((i=r.lastChild)==null?void 0:i.type)===n&&(r=r.cut(0,r.size-1)),r}function e7t(e,t){let n=[];return e.forEach((r,i,s)=>{s!==t&&n.push(r)}),Ve.from(n)}function t7t(e,t){let n=[];for(let r=0;r<e.childCount;r++)if(e.child(r).type.name==="tableRow")if(n.length>0&&n[n.length-1].type.name==="table"){let i=n[n.length-1],s=i.copy(i.content.addToEnd(e.child(r)));n[n.length-1]=s}else{let i=t.nodes.table.createChecked(void 0,e.child(r));n.push(i)}else n.push(e.child(r));return e=Ve.from(n),e}function n7t(e,t){let n=Ve.from(e.content);n=t7t(n,t.state.schema);let r=r7t(n,t,e);if(r)return r;if(_Re(t)){let i=!1;if(n.descendants(s=>{s.type.isInGroup("tableContent")&&(i=!0)}),!i&&!t.state.schema.nodes.tableParagraph.validContent(n))return new ut(CRe(n,t.state.schema),0,0)}if(!i7t(n,t))return new ut(n,e.openStart,e.openEnd);for(let i=0;i<n.childCount;i++)if(n.child(i).type.spec.group==="blockContent"){let s=[n.child(i)];if(i+1<n.childCount&&n.child(i+1).type.name==="blockGroup"){let a=n.child(i+1).child(0).child(0);(a.type.name==="bulletListItem"||a.type.name==="numberedListItem"||a.type.name==="checkListItem")&&(s.push(n.child(i+1)),n=e7t(n,i+1))}let o=t.state.schema.nodes.blockContainer.createChecked(void 0,s);n=n.replaceChild(i,o)}return new ut(n,e.openStart,e.openEnd)}function r7t(e,t,n){if(_Re(t)||t.dragging)return null;let r=ii(t.state),i=r.isBlockContainer?r.blockContent.node:null;if(!i||i.type.name==="paragraph"||i.type.spec.content!=="inline*"||i.childCount>0)return null;let s=e.firstChild,o=s==null?void 0:s.firstChild,a=o==null?void 0:o.firstChild;if((s==null?void 0:s.type.name)!=="blockGroup"||(o==null?void 0:o.type.name)!=="blockContainer"||(a==null?void 0:a.type.name)!=="paragraph")return null;let l=i.type.create(i.attrs,a.content),c=o.copy(o.content.replaceChild(0,l)),u=s.copy(s.content.replaceChild(0,c));return new ut(e.replaceChild(0,u),n.openStart,n.openEnd)}function i7t(e,t){var s,o;let n=e.childCount===1,r=((s=e.firstChild)==null?void 0:s.type.spec.content)==="inline*",i=((o=e.firstChild)==null?void 0:o.type.spec.content)==="tableRow+";if(n){if(r)return!1;if(i){let a=ii(t.state);if(a.isBlockContainer)return a.blockContent.node.type.spec.content!=="tableRow+"}}return!0}var s7t={enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!1},o7t=class ERe extends wX{constructor(n){var c,u,d,h,p,m,y,v,b,S;super();lt(this,"pmSchema");lt(this,"_tiptapEditor");lt(this,"elementRenderer",null);lt(this,"blockCache",new WeakMap);lt(this,"dictionary");lt(this,"schema");lt(this,"blockImplementations");lt(this,"inlineContentImplementations");lt(this,"styleImplementations");lt(this,"uploadFile");lt(this,"onUploadStartCallbacks",[]);lt(this,"onUploadEndCallbacks",[]);lt(this,"resolveFileUrl");lt(this,"settings");lt(this,"_blockManager");lt(this,"_eventManager");lt(this,"_exportManager");lt(this,"_extensionManager");lt(this,"_selectionManager");lt(this,"_stateManager");lt(this,"_styleManager");lt(this,"unregisterExtension",(...n)=>this._extensionManager.unregisterExtension(...n));lt(this,"registerExtension",(...n)=>this._extensionManager.registerExtension(...n));lt(this,"getExtension",((...n)=>this._extensionManager.getExtension(...n)));lt(this,"mount",(n,r)=>{let i=n.getRootNode(),s=typeof ShadowRoot<"u"&&i instanceof ShadowRoot;((r==null?void 0:r.portalTarget)??n.parentElement??(s?i:document.body)).appendChild(this.portalElement),this._tiptapEditor.mount({mount:n})});lt(this,"unmount",()=>{var n;(n=this.portalElement)==null||n.remove(),this._tiptapEditor.unmount()});lt(this,"_portalElement");lt(this,"isWithinEditor",n=>{var r,i,s;return!!((i=(r=this.domElement)==null?void 0:r.parentElement)!=null&&i.contains(n)||(s=this.portalElement)!=null&&s.contains(n))});lt(this,"headless",!0);this.options=n,this.dictionary=n.dictionary||p6t,this.settings={tables:{splitCells:((c=n==null?void 0:n.tables)==null?void 0:c.splitCells)??!1,cellBackgroundColor:((u=n==null?void 0:n.tables)==null?void 0:u.cellBackgroundColor)??!1,cellTextColor:((d=n==null?void 0:n.tables)==null?void 0:d.cellTextColor)??!1,headers:((h=n==null?void 0:n.tables)==null?void 0:h.headers)??!1}};let r={defaultStyles:!0,schema:n.schema||bX.create(),...n,placeholders:{...this.dictionary.placeholders,...n.placeholders}};if(this.schema=r.schema,this.blockImplementations=r.schema.blockSpecs,this.inlineContentImplementations=r.schema.inlineContentSpecs,this.styleImplementations=r.schema.styleSpecs,r.uploadFile){let w=r.uploadFile;this.uploadFile=async(k,E)=>{this.onUploadStartCallbacks.forEach(C=>C.apply(this,[E]));try{return await w(k,E)}finally{this.onUploadEndCallbacks.forEach(C=>C.apply(this,[E]))}}}this.resolveFileUrl=r.resolveFileUrl,this._eventManager=new K6t(this),this._extensionManager=new V8t(this,r);let i=this._extensionManager.getTiptapExtensions(),s=this._extensionManager.hasExtension("ySync")||this._extensionManager.hasExtension("liveblocksExtension");s&&r.initialContent&&console.warn("When using Collaboration, initialContent might cause conflicts, because changes should come from the collaboration provider");let o={...s7t,...r._tiptapOptions,element:null,autofocus:r.autofocus??!1,extensions:i,editorProps:{...(p=r._tiptapOptions)==null?void 0:p.editorProps,attributes:{tabIndex:"0",...(y=(m=r._tiptapOptions)==null?void 0:m.editorProps)==null?void 0:y.attributes,...(v=r.domAttributes)==null?void 0:v.editor,class:vr("bn-editor",r.defaultStyles?"bn-default-styles":"",((S=(b=r.domAttributes)==null?void 0:b.editor)==null?void 0:S.class)||"")},transformPasted:n7t}};try{let w=r.initialContent||(s?[{type:"paragraph",id:"initialBlockId"}]:[{type:"paragraph",id:RM.options.generateID()}]);if(!Array.isArray(w)||w.length===0)throw Error("initialContent must be a non-empty array of blocks, received: "+w);let k=IAt(o.extensions),E=rj({type:"doc",content:[{type:"blockGroup",content:w.map(C=>qg(C,k,this.schema.styleSchema).toJSON())}]},k,o.parseOptions);this._tiptapEditor=new BNt({...o,content:E.toJSON()}),this.pmSchema=this._tiptapEditor.schema}catch(w){throw Error("Error creating document from blocks passed as `initialContent`",{cause:w})}let a,l=this.pmSchema.nodes.doc.createAndFill;this.pmSchema.nodes.doc.createAndFill=(...w)=>{if(a)return a;let k=l.apply(this.pmSchema.nodes.doc,w),E=JSON.parse(JSON.stringify(k.toJSON()));return E.content[0].content[0].attrs.id="initialBlockId",a=Dd.fromJSON(this.pmSchema,E),a},this.pmSchema.cached.blockNoteEditor=this,this._tiptapEditor.on("mount",()=>{this.headless=!1}),this._tiptapEditor.on("unmount",()=>{this.headless=!0}),this._blockManager=new Y6t(this),this._exportManager=new Dzt(this),this._selectionManager=new G8t(this),this._stateManager=new Y8t(this),this._styleManager=new J8t(this),this.emit("create")}static create(n){return new ERe(n??{})}get extensions(){return this._extensionManager.getExtensions()}exec(n){return this._stateManager.exec(n)}canExec(n){return this._stateManager.canExec(n)}transact(n){return this._stateManager.transact(n)}get prosemirrorState(){return this._stateManager.prosemirrorState}get prosemirrorView(){return this._stateManager.prosemirrorView}get domElement(){var n;if(!this.headless)return(n=this.prosemirrorView)==null?void 0:n.dom}get portalElement(){if(typeof document>"u")throw Error("Portal element accessed, but not available in headless mode");return this._portalElement||(this._portalElement=document.createElement("div")),this._portalElement}isFocused(){var n;return this.headless?!1:((n=this.prosemirrorView)==null?void 0:n.hasFocus())||!1}focus(){this.headless||this.prosemirrorView.focus()}blur(){var n;this.headless||((n=this.domElement)==null||n.blur())}onUploadStart(n){return this.onUploadStartCallbacks.push(n),()=>{let r=this.onUploadStartCallbacks.indexOf(n);r>-1&&this.onUploadStartCallbacks.splice(r,1)}}onUploadEnd(n){return this.onUploadEndCallbacks.push(n),()=>{let r=this.onUploadEndCallbacks.indexOf(n);r>-1&&this.onUploadEndCallbacks.splice(r,1)}}get topLevelBlocks(){return this.document}get document(){return this._blockManager.document}getBlock(n){return this._blockManager.getBlock(n)}getPrevBlock(n){return this._blockManager.getPrevBlock(n)}getNextBlock(n){return this._blockManager.getNextBlock(n)}getParentBlock(n){return this._blockManager.getParentBlock(n)}forEachBlock(n,r=!1){this._blockManager.forEachBlock(n,r)}onEditorContentChange(n){this._tiptapEditor.on("update",n)}onEditorSelectionChange(n){this._tiptapEditor.on("selectionUpdate",n)}onBeforeChange(n){return this._extensionManager.getExtension(ZNe).subscribe(n)}getTextCursorPosition(){return this._selectionManager.getTextCursorPosition()}setTextCursorPosition(n,r="start"){return this._selectionManager.setTextCursorPosition(n,r)}getSelection(){return this._selectionManager.getSelection()}getSelectionCutBlocks(n=!1){return this._selectionManager.getSelectionCutBlocks(n)}setSelection(n,r){return this._selectionManager.setSelection(n,r)}get isEditable(){return this._stateManager.isEditable}set isEditable(n){this._stateManager.isEditable=n}insertBlocks(n,r,i="before"){return this._blockManager.insertBlocks(n,r,i)}updateBlock(n,r){return this._blockManager.updateBlock(n,r)}removeBlocks(n){return this._blockManager.removeBlocks(n)}replaceBlocks(n,r){return this._blockManager.replaceBlocks(n,r)}undo(){return this._stateManager.undo()}redo(){return this._stateManager.redo()}insertInlineContent(n,{updateSelection:r=!1}={}){this._styleManager.insertInlineContent(n,{updateSelection:r})}getActiveStyles(){return this._styleManager.getActiveStyles()}addStyles(n){this._styleManager.addStyles(n)}removeStyles(n){this._styleManager.removeStyles(n)}toggleStyles(n){this._styleManager.toggleStyles(n)}getSelectedText(){return this._styleManager.getSelectedText()}getSelectedLinkUrl(){return this._styleManager.getSelectedLinkUrl()}createLink(n,r){this._styleManager.createLink(n,r)}getLinkMarkAtPos(n){return this._styleManager.getLinkMarkAtPos(n)}editLink(n,r,i){this._styleManager.editLink(n,r,i)}deleteLink(n){this._styleManager.deleteLink(n)}canNestBlock(){return this._blockManager.canNestBlock()}nestBlock(){this._blockManager.nestBlock()}canUnnestBlock(){return this._blockManager.canUnnestBlock()}unnestBlock(){this._blockManager.unnestBlock()}moveBlocksUp(n){return this._blockManager.moveBlocksUp(n)}moveBlocksDown(n){return this._blockManager.moveBlocksDown(n)}blocksToHTMLLossy(n=this.document){return this._exportManager.blocksToHTMLLossy(n)}blocksToFullHTML(n=this.document){return this._exportManager.blocksToFullHTML(n)}tryParseHTMLToBlocks(n){return this._exportManager.tryParseHTMLToBlocks(n)}blocksToMarkdownLossy(n=this.document){return this._exportManager.blocksToMarkdownLossy(n)}tryParseMarkdownToBlocks(n){return this._exportManager.tryParseMarkdownToBlocks(n)}onChange(n,r){return this._eventManager.onChange(n,r)}onSelectionChange(n,r){return this._eventManager.onSelectionChange(n,r)}onMount(n){return this._eventManager.onMount(n)}onUnmount(n){return this._eventManager.onUnmount(n)}getSelectionBoundingBox(){return this._selectionManager.getSelectionBoundingBox()}get isEmpty(){let n=this.document;return n.length===0||n.length===1&&n[0].type==="paragraph"&&n[0].content.length===0}pasteHTML(n,r=!1){this._exportManager.pasteHTML(n,r)}pasteText(n){return this._exportManager.pasteText(n)}pasteMarkdown(n){return this._exportManager.pasteMarkdown(n)}},Tz,f0e;function a7t(){return f0e||(f0e=1,Tz=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(i of t.entries())if(!n.has(i[0]))return!1;for(i of t.entries())if(!e(i[1],n.get(i[0])))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(i of t.entries())if(!n.has(i[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(t[i]!==n[i])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!(o==="_owner"&&t.$$typeof)&&!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}),Tz}var l7t=a7t();const c7t=eo(l7t);var TRe=O.createContext(void 0);function Pl(e){return O.useContext(TRe)}function Ut(e){let t=Pl();if(!(t!=null&&t.editor))throw Error("useBlockNoteEditor was called outside of a BlockNoteContext provider or BlockNoteView component");return t.editor}function Zn(e,t){let n=((t==null?void 0:t.editor)??Ut()).getExtension(e);if(!n)throw Error("Extension not found",{cause:{plugin:e}});return n}function Tr(e,t){let{store:n}=Zn(e,t);if(!n)throw Error("Store not found on plugin",{cause:{plugin:e}});return Rjt(n,t==null?void 0:t.selector)}function u7t(e){let t=new DOMRect,n="getBoundingClientRect"in e?()=>e.getBoundingClientRect():()=>e.element.getBoundingClientRect();return()=>e.element&&(e.cacheMountedBoundingClientRect??!0)?(e.element.isConnected&&(t=n()),t):n()}function d7t(e,t){return e?t?(n,r,i)=>{let s=e(n,r,i),o=t(n,r,i);return()=>{s==null||s(),o==null||o()}}:e:t}var Yc=e=>{var v,b,S,w,k,E;let t=Ut(),n=e.portalElement===null?typeof document<"u"?document.body:void 0:e.portalElement??(t==null?void 0:t.portalElement);if(!n)throw Error("Portal element not found");let{whileElementsMounted:r,...i}=e.useFloatingOptions??{},{refs:s,floatingStyles:o,context:a}=$S({whileElementsMounted:d7t(py,(v=e.useFloatingOptions)==null?void 0:v.whileElementsMounted),...i}),{isMounted:l,styles:c}=Tjt(a,e.useTransitionStylesProps),{status:u}=h5e(a,e.useTransitionStatusProps),{getFloatingProps:d}=eU([d5e(a,e.useDismissProps),YW(a,{enabled:!1,...e.useHoverProps})]),h=O.useRef(""),p=O.useRef(null),m=KTt([p,s.setFloating]);if(O.useEffect(()=>{var C;if(e.reference){let T="element"in e.reference?e.reference.element:void 0;T!==void 0&&((C=e.focusManagerProps)!=null&&C.disabled||!t.isWithinEditor(T))&&s.setReference(T),s.setPositionReference({getBoundingClientRect:u7t(e.reference),contextElement:T})}},[e.reference,s,(b=e.focusManagerProps)==null?void 0:b.disabled,t]),O.useEffect(()=>{var C;(u==="initial"||u==="open")&&((C=p.current)!=null&&C.innerHTML)&&(h.current=p.current.innerHTML)},[u,e.reference,e.children]),!l)return!1;let y={...e.elementProps,style:{display:"flex",...(S=e.elementProps)==null?void 0:S.style,zIndex:`calc(var(--bn-ui-base-z-index, 0) + ${((k=(w=e.elementProps)==null?void 0:w.style)==null?void 0:k.zIndex)||0})`,...o,...c},...d()};return u==="close"?f.jsx(I6,{root:n,children:f.jsx("div",{ref:m,...y,dangerouslySetInnerHTML:{__html:h.current}})}):(E=e.focusManagerProps)!=null&&E.disabled?f.jsx(I6,{root:n,children:f.jsx("div",{ref:m,...y,children:e.children})}):f.jsx(I6,{root:n,children:f.jsx(xjt,{...e.focusManagerProps,context:a,children:f.jsx("div",{ref:m,...y,children:e.children})})})},jRe=O.createContext(void 0);function Qt(){return O.useContext(jRe)}function dn(){return Pl().editor.dictionary}var h7t=typeof window<"u"?O.useLayoutEffect:O.useEffect,f7t=class{constructor(t){lt(this,"transactionNumber",0);lt(this,"lastTransactionNumber",0);lt(this,"lastSnapshot");lt(this,"editor");lt(this,"subscribers",new Set);this.editor=t,this.lastSnapshot={editor:t,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}watch(t,n){if(this.editor=t,this.editor){let r=()=>{this.transactionNumber+=1,this.subscribers.forEach(o=>o())},i=this.editor._tiptapEditor,s={all:["transaction","create","mount","unmount"],mount:["create","mount","unmount"],selection:["selectionUpdate"],change:["update"]};for(let o of s[n])i.on(o,r);return()=>{for(let o of s[n])i.off(o,r)}}}};function as(e){let t=Pl(),n=e.editor||(t==null?void 0:t.editor)||null,r=e.on||"all",[i]=O.useState(()=>new f7t(n)),s=I5.useSyncExternalStoreWithSelector(i.subscribe,i.getSnapshot,i.getServerSnapshot,e.selector,e.equalityFn??c7t);return h7t(()=>i.watch(n,r),[n,i,r]),O.useDebugValue(s),s}function Ug(e){let t=Pl();return e||(e=t==null?void 0:t.editor),as({editor:e,selector:n=>{var r;return(r=n.editor)==null?void 0:r.domElement},equalityFn:(n,r)=>n===r,on:"mount"})}var PRe=e=>{let{position:t,children:n,portalElement:r,...i}=e,{from:s,to:o}=t||{},a=Ut(),l=Ug();return f.jsx(Yc,{reference:O.useMemo(()=>{if(!(s===void 0||o===void 0))return{element:(l==null?void 0:l.firstElementChild)||void 0,getBoundingClientRect:()=>EU(a.prosemirrorView,s,o??s)}},[a,l,s,o]),portalElement:r,...i,children:t!==void 0&&n})},PX=(e={},t=[])=>O.useMemo(()=>{let n=o7t.create(e);return window&&(window.ProseMirror=n._tiptapEditor),n},t),MRe=e=>{let[t,n]=O.useState(!1),r=as({editor:e.editor,selector:({editor:a})=>a.isEmpty}),i=Qt(),s=O.useCallback(()=>{n(!0)},[]),o=O.useCallback(()=>{n(!1)},[]);return O.useEffect(()=>{e.editable&&e.autoFocus&&e.editor.focus()},[e.autoFocus,e.editable,e.editor]),f.jsxs(f.Fragment,{children:[f.jsx(i.Comments.Editor,{autoFocus:e.autoFocus,className:"bn-comment-editor",editor:e.editor,onFocus:s,onBlur:o,editable:e.editable}),e.actions&&f.jsx("div",{className:"bn-comment-actions-wrapper",children:e.actions({isFocused:t,isEmpty:r})})]})},{textColor:Ean,backgroundColor:Tan,...p7t}=yX,ARe=bX.create({blockSpecs:{paragraph:NNe()},styleSpecs:p7t}),p0e=Object.defineProperty,m7t=(e,t)=>{let n={};for(var r in e)p0e(n,r,{get:e[r],enumerable:!0});return p0e(n,Symbol.toStringTag,{value:"Module"}),n},m0e=jl.create({name:"comment",excludes:"",inclusive:!1,keepOnSplit:!0,addAttributes(){return{orphan:{parseHTML:e=>!!e.getAttribute("data-orphan"),renderHTML:e=>e.orphan?{"data-orphan":"true"}:{},default:!1},threadId:{parseHTML:e=>e.getAttribute("data-bn-thread-id"),renderHTML:e=>({"data-bn-thread-id":e.threadId}),default:""}}},renderHTML({HTMLAttributes:e}){return["span",La(e,{class:"bn-thread-mark"})]},parseHTML(){return[{tag:"span.bn-thread-mark"}]},extendMarkSchema(e){return e.name==="comment"?{blocknoteIgnore:!0}:{}}}),g7t=class extends wX{constructor(n){super();lt(this,"userCache",new Map);lt(this,"loadingUsers",new Set);this.resolveUsers=n}async loadUsers(n){let r=n.filter(i=>!this.userCache.has(i)&&!this.loadingUsers.has(i));if(r.length!==0){for(let i of r)this.loadingUsers.add(i);try{let i=await this.resolveUsers(r);for(let s of i)this.userCache.set(s.id,s);this.emit("update",this.userCache)}finally{for(let i of r)this.loadingUsers.delete(i)}}}getUser(n){return this.userCache.get(n)}subscribe(n){return this.on("update",n)}},QC=new In("blocknote-comments");function v7t(e,t){let n=new Map;return e.descendants((r,i)=>{r.marks.forEach(s=>{if(s.type.name===t){let o=s.attrs.threadId;if(!o)return;let a=i,l=a+r.nodeSize,c=n.get(o)??{from:1/0,to:0};n.set(o,{from:Math.min(a,c.from),to:Math.max(l,c.to)})}})}),n}var Kd=Dn(({editor:e,options:{schema:t,threadStore:n,resolveUsers:r}})=>{if(!r)throw Error("resolveUsers is required to be defined when using comments");if(!n)throw Error("threadStore is required to be defined when using comments");let i=m0e.name,s=new g7t(r),o=dp({pendingComment:!1,selectedThreadId:void 0,threadPositions:new Map},{onUpdate(){o.state.selectedThreadId!==o.prevState.selectedThreadId&&e.transact(l=>l.setMeta(QC,!0))}}),a=l=>{e.transact(c=>{c.doc.descendants((u,d)=>{u.marks.forEach(h=>{if(h.type.name===i){let p=h.type,m=h.attrs.threadId,y=l.get(m),v=!!(!y||y.resolved||y.deletedAt);if(v!==h.attrs.orphan){let b=Math.max(d,0),S=Math.min(d+u.nodeSize,c.doc.content.size-1,c.doc.content.size-1);c.removeMark(b,S,h),c.addMark(b,S,p.create({...h.attrs,orphan:v})),v&&o.state.selectedThreadId===m&&o.setState(w=>({...w,selectedThreadId:void 0}))}}})})})};return{key:"comments",store:o,runsBefore:["link"],tiptapExtensions:[m0e],prosemirrorPlugins:[new cn({key:QC,state:{init(){return{decorations:fn.empty}},apply(l,c){let u=l.getMeta(QC);if(!l.docChanged&&!u)return c;let d=l.docChanged?v7t(l.doc,i):o.state.threadPositions;(d.size>0||o.state.threadPositions.size>0)&&o.setState(p=>({...p,threadPositions:d}));let h=[];if(o.state.selectedThreadId){let p=d.get(o.state.selectedThreadId);p&&h.push(Dr.inline(p.from,p.to,{class:"bn-thread-mark-selected"}))}return{decorations:fn.create(l.doc,h)}}},props:{decorations(l){var c;return((c=QC.getState(l))==null?void 0:c.decorations)??fn.empty},handleClick:(l,c,u)=>{if(u.button!==0)return!1;let d=l.state.doc.nodeAt(c);if(!d)return o.setState(m=>({...m,selectedThreadId:void 0})),!1;let h=d.marks.find(m=>m.type.name===i&&m.attrs.orphan!==!0);if(!h)return o.state.selectedThreadId!==void 0&&o.setState(m=>({...m,selectedThreadId:void 0})),!1;let p=h.attrs.threadId;return p===o.state.selectedThreadId?!1:(o.setState(m=>({...m,selectedThreadId:p})),!0)}}})],threadStore:n,mount(){let l=n.subscribe(a);a(n.getThreads());let c=e.onSelectionChange(()=>{o.state.pendingComment&&o.setState(u=>({...u,pendingComment:!1}))});return()=>{l(),c()}},selectThread(l,c=!0){var u,d;if(o.state.selectedThreadId!==l&&(o.setState(h=>({...h,pendingComment:!1,selectedThreadId:l})),l&&c)){let h=o.state.threadPositions.get(l);if(!h)return;(d=(u=e.prosemirrorView)==null?void 0:u.domAtPos(h.from).node)==null||d.scrollIntoView({behavior:"smooth",block:"center"})}},startPendingComment(){var l,c;o.setState(u=>({...u,selectedThreadId:void 0,pendingComment:!0})),(l=e.domElement)==null||l.focus(),(c=e.getExtension(Oj))==null||c.showSelection(!0,"comments")},stopPendingComment(){var l;o.setState(c=>({...c,selectedThreadId:void 0,pendingComment:!1})),(l=e.getExtension(Oj))==null||l.showSelection(!1,"comments")},async createThread(l){let c=await n.createThread(l);if(n.addThreadToDocument){let u=e.prosemirrorView,d=u.state.selection,h=Sr.getState(u.state),p={prosemirror:{head:d.head,anchor:d.anchor},yjs:h?bj(h.binding,u.state):void 0};await n.addThreadToDocument({threadId:c.id,selection:p})}else e._tiptapEditor.commands.setMark(i,{orphan:!1,threadId:c.id})},userStore:s,commentEditorSchema:t}}),NRe={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},g0e=Kr.createContext&&Kr.createContext(NRe),y7t=["attr","size","title"];function b7t(e,t){if(e==null)return{};var n,r,i=x7t(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function x7t(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Sj(){return Sj=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sj.apply(null,arguments)}function v0e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function kj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?v0e(Object(n),!0).forEach(function(r){w7t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v0e(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function w7t(e,t,n){return(t=O7t(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O7t(e){var t=S7t(e,"string");return typeof t=="symbol"?t:t+""}function S7t(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function RRe(e){return e&&e.map((t,n)=>Kr.createElement(t.tag,kj({key:n},t.attr),RRe(t.child)))}function Ft(e){return t=>Kr.createElement(k7t,Sj({attr:kj({},e.attr)},t),RRe(e.child))}function k7t(e){var t=n=>{var r=e.attr,i=e.size,s=e.title,o=b7t(e,y7t),a=i||n.size||"1em",l;return n.className&&(l=n.className),e.className&&(l=(l?l+" ":"")+e.className),Kr.createElement("svg",Sj({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,o,{className:l,style:kj(kj({color:e.color||n.color},n.style),e.style),height:a,width:a,xmlns:"http://www.w3.org/2000/svg"}),s&&Kr.createElement("title",null,s),e.children)};return g0e!==void 0?Kr.createElement(g0e.Consumer,null,n=>t(n)):t(NRe)}function $Re(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM8 13H16C16 15.2091 14.2091 17 12 17C9.79086 17 8 15.2091 8 13ZM8 11C7.17157 11 6.5 10.3284 6.5 9.5C6.5 8.67157 7.17157 8 8 8C8.82843 8 9.5 8.67157 9.5 9.5C9.5 10.3284 8.82843 11 8 11ZM16 11C15.1716 11 14.5 10.3284 14.5 9.5C14.5 8.67157 15.1716 8 16 8C16.8284 8 17.5 8.67157 17.5 9.5C17.5 10.3284 16.8284 11 16 11Z"},child:[]}]})(e)}function _7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM8 13C8 15.2091 9.79086 17 12 17C14.2091 17 16 15.2091 16 13H8ZM8 11C8.82843 11 9.5 10.3284 9.5 9.5C9.5 8.67157 8.82843 8 8 8C7.17157 8 6.5 8.67157 6.5 9.5C6.5 10.3284 7.17157 11 8 11ZM16 11C16.8284 11 17.5 10.3284 17.5 9.5C17.5 8.67157 16.8284 8 16 8C15.1716 8 14.5 8.67157 14.5 9.5C14.5 10.3284 15.1716 11 16 11Z"},child:[]}]})(e)}function C7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M5 11V13H19V11H5Z"},child:[]}]})(e)}function E7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M5 10C3.9 10 3 10.9 3 12C3 13.1 3.9 14 5 14C6.1 14 7 13.1 7 12C7 10.9 6.1 10 5 10ZM19 10C17.9 10 17 10.9 17 12C17 13.1 17.9 14 19 14C20.1 14 21 13.1 21 12C21 10.9 20.1 10 19 10ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z"},child:[]}]})(e)}function T7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M10 6V8H5V19H16V14H18V20C18 20.5523 17.5523 21 17 21H4C3.44772 21 3 20.5523 3 20V7C3 6.44772 3.44772 6 4 6H10ZM21 3V12L17.206 8.207L11.2071 14.2071L9.79289 12.7929L15.792 6.793L12 3H21Z"},child:[]}]})(e)}function j7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M4 19H20V12H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V12H4V19ZM14 9H19L12 16L5 9H10V3H14V9Z"},child:[]}]})(e)}function P7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM9 11V17H11V11H9ZM13 11V17H15V11H13ZM9 4V6H15V4H9Z"},child:[]}]})(e)}function M7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM18 8H6V20H18V8ZM9 4V6H15V4H9Z"},child:[]}]})(e)}function A7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M9.9997 15.1709L19.1921 5.97852L20.6063 7.39273L9.9997 17.9993L3.63574 11.6354L5.04996 10.2212L9.9997 15.1709Z"},child:[]}]})(e)}function N7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M11 11V5H13V11H19V13H13V19H11V13H5V11H11Z"},child:[]}]})(e)}function R7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M2 16.0001H5.88889L11.1834 20.3319C11.2727 20.405 11.3846 20.4449 11.5 20.4449C11.7761 20.4449 12 20.2211 12 19.9449V4.05519C12 3.93977 11.9601 3.8279 11.887 3.73857C11.7121 3.52485 11.3971 3.49335 11.1834 3.66821L5.88889 8.00007H2C1.44772 8.00007 1 8.44778 1 9.00007V15.0001C1 15.5524 1.44772 16.0001 2 16.0001ZM23 12C23 15.292 21.5539 18.2463 19.2622 20.2622L17.8445 18.8444C19.7758 17.1937 21 14.7398 21 12C21 9.26016 19.7758 6.80629 17.8445 5.15557L19.2622 3.73779C21.5539 5.75368 23 8.70795 23 12ZM18 12C18 10.0883 17.106 8.38548 15.7133 7.28673L14.2842 8.71584C15.3213 9.43855 16 10.64 16 12C16 13.36 15.3213 14.5614 14.2842 15.2841L15.7133 16.7132C17.106 15.6145 18 13.9116 18 12Z"},child:[]}]})(e)}function DRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M22 18V20H2V18H22ZM2 3.5L10 8.5L2 13.5V3.5ZM22 11V13H12V11H22ZM22 4V6H12V4H22Z"},child:[]}]})(e)}function $7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M20 3C20.5523 3 21 3.44772 21 4V5.757L19 7.757V5H5V13.1L9 9.1005L13.328 13.429L12.0012 14.7562L11.995 18.995L16.2414 19.0012L17.571 17.671L18.8995 19H19V16.242L21 14.242V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20ZM21.7782 7.80761L23.1924 9.22183L15.4142 17L13.9979 16.9979L14 15.5858L21.7782 7.80761ZM15.5 7C16.3284 7 17 7.67157 17 8.5C17 9.32843 16.3284 10 15.5 10C14.6716 10 14 9.32843 14 8.5C14 7.67157 14.6716 7 15.5 7Z"},child:[]}]})(e)}function D7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M21 15V18H24V20H21V23H19V20H16V18H19V15H21ZM21.0082 3C21.556 3 22 3.44495 22 3.9934L22.0007 13.3417C21.3749 13.1204 20.7015 13 20 13V5H4L4.001 19L13.2929 9.70715C13.6528 9.34604 14.22 9.31823 14.6123 9.62322L14.7065 9.70772L18.2521 13.2586C15.791 14.0069 14 16.2943 14 19C14 19.7015 14.1204 20.3749 14.3417 21.0007L2.9918 21C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3H21.0082ZM8 7C9.10457 7 10 7.89543 10 9C10 10.1046 9.10457 11 8 11C6.89543 11 6 10.1046 6 9C6 7.89543 6.89543 7 8 7Z"},child:[]}]})(e)}function L7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M5 11.1005L7 9.1005L12.5 14.6005L16 11.1005L19 14.1005V5H5V11.1005ZM4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3ZM15.5 10C14.6716 10 14 9.32843 14 8.5C14 7.67157 14.6716 7 15.5 7C16.3284 7 17 7.67157 17 8.5C17 9.32843 16.3284 10 15.5 10Z"},child:[]}]})(e)}function I7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M2 3.9934C2 3.44476 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44495 22 3.9934V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934ZM8 5V19H16V5H8ZM4 5V7H6V5H4ZM18 5V7H20V5H18ZM4 9V11H6V9H4ZM18 9V11H20V9H18ZM4 13V15H6V13H4ZM18 13V15H20V13H18ZM4 17V19H6V17H4ZM18 17V19H20V17H18Z"},child:[]}]})(e)}function B7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 3V12C8 14.2091 9.79086 16 12 16C14.2091 16 16 14.2091 16 12V3H18V12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12V3H8ZM4 20H20V22H4V20Z"},child:[]}]})(e)}function MX(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M13 6V21H11V6H5V4H19V6H13Z"},child:[]}]})(e)}function z7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M13 10V14H19V10H13ZM11 10H5V14H11V10ZM13 19H19V16H13V19ZM11 19V16H5V19H11ZM13 5V8H19V5H13ZM11 5H5V8H11V5ZM4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3Z"},child:[]}]})(e)}function Q7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M17.1538 14C17.3846 14.5161 17.5 15.0893 17.5 15.7196C17.5 17.0625 16.9762 18.1116 15.9286 18.867C14.8809 19.6223 13.4335 20 11.5862 20C9.94674 20 8.32335 19.6185 6.71592 18.8555V16.6009C8.23538 17.4783 9.7908 17.917 11.3822 17.917C13.9333 17.917 15.2128 17.1846 15.2208 15.7196C15.2208 15.0939 15.0049 14.5598 14.5731 14.1173C14.5339 14.0772 14.4939 14.0381 14.4531 14H3V12H21V14H17.1538ZM13.076 11H7.62908C7.4566 10.8433 7.29616 10.6692 7.14776 10.4778C6.71592 9.92084 6.5 9.24559 6.5 8.45207C6.5 7.21602 6.96583 6.165 7.89749 5.299C8.82916 4.43299 10.2706 4 12.2219 4C13.6934 4 15.1009 4.32808 16.4444 4.98426V7.13591C15.2448 6.44921 13.9293 6.10587 12.4978 6.10587C10.0187 6.10587 8.77917 6.88793 8.77917 8.45207C8.77917 8.87172 8.99709 9.23796 9.43293 9.55079C9.86878 9.86362 10.4066 10.1135 11.0463 10.3004C11.6665 10.4816 12.3431 10.7148 13.076 11H13.076Z"},child:[]}]})(e)}function LRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M21 4H3V6H21V4ZM21 11H8V13H21V11ZM21 18H8V20H21V18ZM5 11H3V20H5V11Z"},child:[]}]})(e)}function F7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M21 20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20ZM19 11V5H13.001V7H15L12 10L9 7H11V5H5V11H7V13H5V19H11V17H9L12 14L15 17H13.001V19H19V13H17V11H19ZM11 13H9V11H11V13ZM15 13H13V11H15V13Z"},child:[]}]})(e)}function H7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M20 3C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20ZM11 5H5V10.999H7V9L10 12L7 15V13H5V19H11V17H13V19H19V13H17V15L14 12L17 9V10.999H19V5H13V7H11V5ZM13 13V15H11V13H13ZM13 9V11H11V9H13Z"},child:[]}]})(e)}function IRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 4H21V6H8V4ZM4.5 6.5C3.67157 6.5 3 5.82843 3 5C3 4.17157 3.67157 3.5 4.5 3.5C5.32843 3.5 6 4.17157 6 5C6 5.82843 5.32843 6.5 4.5 6.5ZM4.5 13.5C3.67157 13.5 3 12.8284 3 12C3 11.1716 3.67157 10.5 4.5 10.5C5.32843 10.5 6 11.1716 6 12C6 12.8284 5.32843 13.5 4.5 13.5ZM4.5 20.4C3.67157 20.4 3 19.7284 3 18.9C3 18.0716 3.67157 17.4 4.5 17.4C5.32843 17.4 6 18.0716 6 18.9C6 19.7284 5.32843 20.4 4.5 20.4ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z"},child:[]}]})(e)}function BRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 4H21V6H8V4ZM5 3V6H6V7H3V6H4V4H3V3H5ZM3 14V11.5H5V11H3V10H6V12.5H4V13H6V14H3ZM5 19.5H3V18.5H5V18H3V17H6V21H3V20H5V19.5ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z"},child:[]}]})(e)}function zRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8.00008 6V9H5.00008V6H8.00008ZM3.00008 4V11H10.0001V4H3.00008ZM13.0001 4H21.0001V6H13.0001V4ZM13.0001 11H21.0001V13H13.0001V11ZM13.0001 18H21.0001V20H13.0001V18ZM10.7072 16.2071L9.29297 14.7929L6.00008 18.0858L4.20718 16.2929L2.79297 17.7071L6.00008 20.9142L10.7072 16.2071Z"},child:[]}]})(e)}function QRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M18.3638 15.5355L16.9496 14.1213L18.3638 12.7071C20.3164 10.7545 20.3164 7.58866 18.3638 5.63604C16.4112 3.68341 13.2453 3.68341 11.2927 5.63604L9.87849 7.05025L8.46428 5.63604L9.87849 4.22182C12.6122 1.48815 17.0443 1.48815 19.778 4.22182C22.5117 6.95549 22.5117 11.3876 19.778 14.1213L18.3638 15.5355ZM15.5353 18.364L14.1211 19.7782C11.3875 22.5118 6.95531 22.5118 4.22164 19.7782C1.48797 17.0445 1.48797 12.6123 4.22164 9.87868L5.63585 8.46446L7.05007 9.87868L5.63585 11.2929C3.68323 13.2455 3.68323 16.4113 5.63585 18.364C7.58847 20.3166 10.7543 20.3166 12.7069 18.364L14.1211 16.9497L15.5353 18.364ZM14.8282 7.75736L16.2425 9.17157L9.17139 16.2426L7.75717 14.8284L14.8282 7.75736Z"},child:[]}]})(e)}function q7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M17 17H22V19H19V22H17V17ZM7 7H2V5H5V2H7V7ZM18.364 15.5355L16.9497 14.1213L18.364 12.7071C20.3166 10.7545 20.3166 7.58866 18.364 5.63604C16.4113 3.68342 13.2455 3.68342 11.2929 5.63604L9.87868 7.05025L8.46447 5.63604L9.87868 4.22183C12.6123 1.48816 17.0445 1.48816 19.7782 4.22183C22.5118 6.9555 22.5118 11.3877 19.7782 14.1213L18.364 15.5355ZM15.5355 18.364L14.1213 19.7782C11.3877 22.5118 6.9555 22.5118 4.22183 19.7782C1.48816 17.0445 1.48816 12.6123 4.22183 9.87868L5.63604 8.46447L7.05025 9.87868L5.63604 11.2929C3.68342 13.2455 3.68342 16.4113 5.63604 18.364C7.58866 20.3166 10.7545 20.3166 12.7071 18.364L14.1213 16.9497L15.5355 18.364ZM14.8284 7.75736L16.2426 9.17157L9.17157 16.2426L7.75736 14.8284L14.8284 7.75736Z"},child:[]}]})(e)}function V7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M15 20H7V18H9.92661L12.0425 6H9V4H17V6H14.0734L11.9575 18H15V20Z"},child:[]}]})(e)}function y0e(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 5H11V19H8V21H16V19H13V5H16V3H8V5ZM2 7C1.44772 7 1 7.44772 1 8V16C1 16.5523 1.44772 17 2 17H8V15H3V9H8V7H2ZM16 9H21V15H16V17H22C22.5523 17 23 16.5523 23 16V8C23 7.44772 22.5523 7 22 7H16V9Z"},child:[]}]})(e)}function W7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM3 19H21V21H3V19ZM11 14H21V16H11V14ZM11 9H21V11H11V9ZM7 12.5L3 16V9L7 12.5Z"},child:[]}]})(e)}function U7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM3 19H21V21H3V19ZM11 14H21V16H11V14ZM11 9H21V11H11V9ZM3 12.5L7 9V16L3 12.5Z"},child:[]}]})(e)}function FRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M21.097 8L18.499 12.5C20.7091 12.5 22.5 14.2909 22.5 16.5C22.5 18.7091 20.7091 20.5 18.5 20.5C16.2909 20.5 14.5 18.7091 14.5 16.5C14.5 15.7636 14.699 15.0737 15.0461 14.4811L18.788 8H21.097ZM4 4V11H11V4H13V20H11V13H4V20H2V4H4ZM18.5 14.5C17.3954 14.5 16.5 15.3954 16.5 16.5C16.5 17.6046 17.3954 18.5 18.5 18.5C19.6046 18.5 20.5 17.6046 20.5 16.5C20.5 15.3954 19.6046 14.5 18.5 14.5Z"},child:[]}]})(e)}function HRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M22 8V10H17.6769L17.2126 12.6358C17.5435 12.5472 17.8912 12.5 18.25 12.5C20.4591 12.5 22.25 14.2909 22.25 16.5C22.25 18.7091 20.4591 20.5 18.25 20.5C16.4233 20.5 14.8827 19.2756 14.4039 17.6027L16.3271 17.0519C16.5667 17.8881 17.3369 18.5 18.25 18.5C19.3546 18.5 20.25 17.6046 20.25 16.5C20.25 15.3954 19.3546 14.5 18.25 14.5C17.6194 14.5 17.057 14.7918 16.6904 15.2478L14.8803 14.3439L16 8H22ZM4 4V11H11V4H13V20H11V13H4V20H2V4H4Z"},child:[]}]})(e)}function qRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M13 20H11V13H4V20H2V4H4V11H11V4H13V20ZM22 8V16H23.5V18H22V20H20V18H14.5V16.66L19.5 8H22ZM20 11.133L17.19 16H20V11.133Z"},child:[]}]})(e)}function _j(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M22 8L21.9984 10L19.4934 12.883C21.0823 13.3184 22.25 14.7728 22.25 16.5C22.25 18.5711 20.5711 20.25 18.5 20.25C16.674 20.25 15.1528 18.9449 14.8184 17.2166L16.7821 16.8352C16.9384 17.6413 17.6481 18.25 18.5 18.25C19.4665 18.25 20.25 17.4665 20.25 16.5C20.25 15.5335 19.4665 14.75 18.5 14.75C18.214 14.75 17.944 14.8186 17.7056 14.9403L16.3992 13.3932L19.3484 10H15V8H22ZM4 4V11H11V4H13V20H11V13H4V20H2V4H4Z"},child:[]}]})(e)}function Cj(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M4 4V11H11V4H13V20H11V13H4V20H2V4H4ZM18.5 8C20.5711 8 22.25 9.67893 22.25 11.75C22.25 12.6074 21.9623 13.3976 21.4781 14.0292L21.3302 14.2102L18.0343 18H22V20H15L14.9993 18.444L19.8207 12.8981C20.0881 12.5908 20.25 12.1893 20.25 11.75C20.25 10.7835 19.4665 10 18.5 10C17.5818 10 16.8288 10.7071 16.7558 11.6065L16.75 11.75H14.75C14.75 9.67893 16.4289 8 18.5 8Z"},child:[]}]})(e)}function Ej(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M13 20H11V13H4V20H2V4H4V11H11V4H13V20ZM21.0005 8V20H19.0005L19 10.204L17 10.74V8.67L19.5005 8H21.0005Z"},child:[]}]})(e)}function b0e(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M5.55397 22H3.3999L10.9999 3H12.9999L20.5999 22H18.4458L16.0458 16H7.95397L5.55397 22ZM8.75397 14H15.2458L11.9999 5.88517L8.75397 14Z"},child:[]}]})(e)}function X7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3.41436 5.99995L5.70726 3.70706L4.29304 2.29285L0.585938 5.99995L4.29304 9.70706L5.70726 8.29285L3.41436 5.99995ZM9.58594 5.99995L7.29304 3.70706L8.70726 2.29285L12.4144 5.99995L8.70726 9.70706L7.29304 8.29285L9.58594 5.99995ZM14.0002 2.99995H21.0002C21.5524 2.99995 22.0002 3.44767 22.0002 3.99995V20C22.0002 20.5522 21.5524 21 21.0002 21H3.00015C2.44787 21 2.00015 20.5522 2.00015 20V12H4.00015V19H20.0002V4.99995H14.0002V2.99995Z"},child:[]}]})(e)}function Z7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 11H12.5C13.8807 11 15 9.88071 15 8.5C15 7.11929 13.8807 6 12.5 6H8V11ZM18 15.5C18 17.9853 15.9853 20 13.5 20H6V4H12.5C14.9853 4 17 6.01472 17 8.5C17 9.70431 16.5269 10.7981 15.7564 11.6058C17.0979 12.3847 18 13.837 18 15.5ZM8 13V18H13.5C14.8807 18 16 16.8807 16 15.5C16 14.1193 14.8807 13 13.5 13H8Z"},child:[]}]})(e)}function G7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM7 19H21V21H7V19ZM3 14H21V16H3V14ZM7 9H21V11H7V9Z"},child:[]}]})(e)}function Y7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM3 19H17V21H3V19ZM3 14H21V16H3V14ZM3 9H17V11H3V9Z"},child:[]}]})(e)}function K7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM3 19H21V21H3V19ZM3 14H21V16H3V14ZM3 9H21V11H3V9Z"},child:[]}]})(e)}function J7t(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 4H21V6H3V4ZM5 19H19V21H5V19ZM3 14H21V16H3V14ZM5 9H19V11H5V9Z"},child:[]}]})(e)}function eQt(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M23 12L15.9289 19.0711L14.5147 17.6569L20.1716 12L14.5147 6.34317L15.9289 4.92896L23 12ZM3.82843 12L9.48528 17.6569L8.07107 19.0711L1 12L8.07107 4.92896L9.48528 6.34317L3.82843 12Z"},child:[]}]})(e)}function tQt(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"},child:[]}]})(e)}function VRe(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M7.29117 20.8242L2 22L3.17581 16.7088C2.42544 15.3056 2 13.7025 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C10.2975 22 8.6944 21.5746 7.29117 20.8242ZM7.58075 18.711L8.23428 19.0605C9.38248 19.6745 10.6655 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 13.3345 4.32549 14.6175 4.93949 15.7657L5.28896 16.4192L4.63416 19.3658L7.58075 18.711Z"},child:[]}]})(e)}function nQt(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M7.24264 17.9967H3V13.754L14.435 2.319C14.8256 1.92848 15.4587 1.92848 15.8492 2.319L18.6777 5.14743C19.0682 5.53795 19.0682 6.17112 18.6777 6.56164L7.24264 17.9967ZM3 19.9967H21V21.9967H3V19.9967Z"},child:[]}]})(e)}function rQt(e){return Ft({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M8 7V11L2 6L8 1V5H13C17.4183 5 21 8.58172 21 13C21 17.4183 17.4183 21 13 21H4V19H13C16.3137 19 19 16.3137 19 13C19 9.68629 16.3137 7 13 7H8Z"},child:[]}]})(e)}var jz;async function iQt(){return jz||(jz=(async()=>{let[e,t]=await Promise.all([dy(()=>import("./module-D8iBLRih.js"),[]),dy(()=>import("./native-48B9X9Wg.js"),[])]),n="default"in e?e.default:e,r="default"in t?t.default:t;return await n.init({data:r}),{emojiMart:n,emojiData:r}})(),jz)}function sQt(e){let t=O.useRef(null),n=O.useRef(null);return n.current&&n.current.update(e),O.useEffect(()=>((async()=>{let{emojiMart:r}=await iQt();n.current=new r.Picker({...e,ref:t})})(),()=>{n.current=null}),[]),Kr.createElement("div",{ref:t})}var WRe=e=>{var o;let[t,n]=O.useState(!1),r=Qt(),i=Pl(),s=(o=i.editor)==null?void 0:o.portalElement;if(!s)throw Error("Portal root not found");return f.jsxs(r.Generic.Popover.Root,{open:t,portalRoot:s,children:[f.jsx(r.Generic.Popover.Trigger,{children:f.jsx("div",{onClick:a=>{var l;a.preventDefault(),a.stopPropagation(),n(!t),(l=e.onOpenChange)==null||l.call(e,!t)},style:{display:"flex",justifyContent:"center",alignItems:"center"},children:e.children})}),f.jsx(r.Generic.Popover.Content,{className:"bn-emoji-picker-popover",variant:"panel-popover",children:f.jsx(sQt,{perLine:7,onClickOutside:()=>{var a;n(!1),(a=e.onOpenChange)==null||a.call(e,!1)},onEmojiSelect:a=>{var l;e.onEmojiSelect(a),n(!1),(l=e.onOpenChange)==null||l.call(e,!1)},theme:i==null?void 0:i.colorSchemePreference})})]})};function URe(e){return HM([e]).get(e)}function HM(e){let t=Zn(Kd).userStore,n=O.useCallback(()=>{let i=new Map;for(let s of e){let o=t.getUser(s);o&&i.set(s,o)}return i},[t,e]),r=O.useMemo(()=>({current:n()}),[n]);return O.useSyncExternalStore(O.useCallback(i=>{let s=t.subscribe(o=>{r.current=n(),i()});return t.loadUsers(e),s},[t,n,e,r]),()=>r.current)}var oQt=e=>{let t=Qt(),n=dn(),r=Zn(Kd),i=e.comment.reactions.find(l=>l.emoji===e.emoji);if(!i)throw Error("Trying to render reaction badge for non-existing reaction");let[s,o]=O.useState([]),a=HM(s);return f.jsx(t.Generic.Badge.Root,{className:vr("bn-badge","bn-comment-reaction"),text:i.userIds.length.toString(),icon:i.emoji,isSelected:r.threadStore.auth.canDeleteReaction(e.comment,i.emoji),onClick:()=>e.onReactionSelect(i.emoji),onMouseEnter:()=>o(i.userIds),mainTooltip:n.comments.reactions.reacted_by,secondaryTooltip:`${Array.from(a.values()).map(l=>l.username).join(`
1007
- `)}`},i.emoji)},aQt=O.memo(({isEmpty:e,comment:t,isEditing:n,threadStore:r,onReactionSelect:i,onEditSubmit:s,onEditCancel:o,onEmojiPickerOpenChange:a,Components:l,dict:c})=>{let u=r.auth.canAddReaction(t);return f.jsxs(f.Fragment,{children:[t.reactions.length>0&&!n&&f.jsxs(l.Generic.Badge.Group,{className:vr("bn-badge-group","bn-comment-reactions"),children:[t.reactions.map(d=>f.jsx(oQt,{comment:t,emoji:d.emoji,onReactionSelect:i},d.emoji)),u&&f.jsx(WRe,{onEmojiSelect:d=>i(d.native),onOpenChange:a,children:f.jsx(l.Generic.Badge.Root,{className:vr("bn-badge","bn-comment-add-reaction"),text:"+",icon:f.jsx($Re,{size:16}),mainTooltip:c.comments.actions.add_reaction})})]}),n&&f.jsxs(l.Generic.Toolbar.Root,{variant:"action-toolbar",className:vr("bn-action-toolbar","bn-comment-actions"),children:[f.jsx(l.Generic.Toolbar.Button,{mainTooltip:c.comments.save_button_text,variant:"compact",onClick:s,isDisabled:e,children:c.comments.save_button_text}),f.jsx(l.Generic.Toolbar.Button,{className:"bn-button",mainTooltip:c.comments.cancel_button_text,variant:"compact",onClick:o,children:c.comments.cancel_button_text})]})]})}),XRe=({comment:e,thread:t,showResolveButton:n})=>{let r=Zn(Kd),i=dn(),s=PX({initialContent:e.body,trailingBlock:!1,dictionary:{...i,placeholders:{emptyDocument:i.placeholders.edit_comment}},schema:r.commentEditorSchema||ARe}),o=Qt(),[a,l]=O.useState(!1),[c,u]=O.useState(!1),d=r.threadStore,h=O.useCallback(()=>{l(!0)},[]),p=O.useCallback(()=>{s.replaceBlocks(s.document,e.body),l(!1)},[s,e.body]),m=O.useCallback(async A=>{await d.updateComment({commentId:e.id,comment:{body:s.document},threadId:t.id}),l(!1)},[e,t.id,s,d]),y=O.useCallback(async()=>{await d.deleteComment({commentId:e.id,threadId:t.id})},[e,t.id,d]),v=O.useCallback(async A=>{d.auth.canAddReaction(e,A)?await d.addReaction({threadId:t.id,commentId:e.id,emoji:A}):d.auth.canDeleteReaction(e,A)&&await d.deleteReaction({threadId:t.id,commentId:e.id,emoji:A})},[d,e,t.id]),b=O.useCallback(async()=>{await d.resolveThread({threadId:t.id})},[t.id,d]),S=O.useCallback(async()=>{await d.unresolveThread({threadId:t.id})},[t.id,d]),w=URe(e.userId);if(!e.body)return null;let k,E=d.auth.canAddReaction(e),C=d.auth.canDeleteComment(e),T=d.auth.canUpdateComment(e),j=n&&(t.resolved?d.auth.canUnresolveThread(t):d.auth.canResolveThread(t));a||(k=f.jsxs(o.Generic.Toolbar.Root,{className:vr("bn-action-toolbar","bn-comment-actions"),variant:"action-toolbar",children:[E&&f.jsx(WRe,{onEmojiSelect:A=>v(A.native),onOpenChange:u,children:f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.add_reaction,variant:"compact",children:f.jsx($Re,{size:16})},"add-reaction")}),j&&(t.resolved?f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.reopen,variant:"compact",onClick:S,children:f.jsx(rQt,{size:16})},"reopen"):f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.resolve,variant:"compact",onClick:b,children:f.jsx(A7t,{size:16})},"resolve")),(C||T)&&f.jsxs(o.Generic.Menu.Root,{position:"bottom-start",children:[f.jsx(o.Generic.Menu.Trigger,{children:f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.more_actions,variant:"compact",children:f.jsx(E7t,{size:16})},"more-actions")}),f.jsxs(o.Generic.Menu.Dropdown,{className:"bn-menu-dropdown",children:[T&&f.jsx(o.Generic.Menu.Item,{icon:f.jsx(nQt,{}),onClick:h,children:i.comments.actions.edit_comment},"edit-comment"),C&&f.jsx(o.Generic.Menu.Item,{icon:f.jsx(P7t,{}),onClick:y,children:i.comments.actions.delete_comment},"delete-comment")]})]})]}));let P=e.createdAt.toLocaleDateString(void 0,{month:"short",day:"numeric"});if(!e.body)throw Error("soft deletes are not yet supported");return f.jsx(o.Comments.Comment,{authorInfo:w??"loading",timeString:P,edited:e.updatedAt.getTime()!==e.createdAt.getTime(),showActions:"hover",actions:k,className:"bn-thread-comment",emojiPickerOpen:c,children:f.jsx(MRe,{autoFocus:a,editor:s,editable:a,actions:e.reactions.length>0||a?({isFocused:A,isEmpty:R})=>f.jsx(aQt,{isFocused:A,isEmpty:R,comment:e,isEditing:a,threadStore:d,onReactionSelect:v,onEditSubmit:m,onEditCancel:p,onEmojiPickerOpenChange:u,Components:o,dict:i}):void 0})})},ZRe=({thread:e,maxCommentsBeforeCollapse:t})=>{let n=Qt(),r=dn(),i=HM(e.resolvedBy?[e.resolvedBy]:[]),s=e.comments.map((o,a)=>f.jsx(XRe,{thread:e,comment:o,showResolveButton:a===0},o.id+JSON.stringify(o.body||"{}")));if(e.resolved&&e.resolvedUpdatedAt&&e.resolvedBy){if(!i.get(e.resolvedBy))throw Error(`User ${e.resolvedBy} resolved thread ${e.id}, but their data could not be found.`);let o=e.comments.findLastIndex(a=>e.resolvedUpdatedAt.getTime()>a.createdAt.getTime())+1;s.splice(o,0,f.jsx(n.Comments.Comment,{className:"bn-thread-comment",authorInfo:e.resolvedBy&&i.get(e.resolvedBy)||"loading",timeString:e.resolvedUpdatedAt.toLocaleDateString(void 0,{month:"short",day:"numeric"}),edited:!1,showActions:!1,children:f.jsx("div",{className:"bn-resolved-text",children:r.comments.sidebar.marked_as_resolved})},"resolved-comment"))}return t&&s.length>t&&s.splice(1,s.length-2,f.jsx(n.Comments.ExpandSectionsPrompt,{className:"bn-thread-expand-prompt",children:r.comments.sidebar.more_replies(e.comments.length-2)},"expand-prompt")),s},lQt=O.memo(({isEmpty:e,onNewCommentSave:t,Components:n,dict:r})=>e?null:f.jsx(n.Generic.Toolbar.Root,{variant:"action-toolbar",className:vr("bn-action-toolbar","bn-comment-actions"),children:f.jsx(n.Generic.Toolbar.Button,{mainTooltip:r.comments.save_button_text,variant:"compact",isDisabled:e,onClick:t,children:r.comments.save_button_text})})),AX=({thread:e,selected:t,orphaned:n,referenceText:r,maxCommentsBeforeCollapse:i,onFocus:s,onBlur:o,tabIndex:a})=>{let l=Qt(),c=dn(),u=Zn(Kd),d=PX({trailingBlock:!1,dictionary:{...c,placeholders:{emptyDocument:c.placeholders.comment_reply}},schema:u.commentEditorSchema||ARe}),h=O.useCallback(async()=>{await u.threadStore.addComment({comment:{body:d.document},threadId:e.id}),d.removeBlocks(d.document)},[u,d,e.id]);return f.jsxs(l.Comments.Card,{className:vr("bn-thread",n&&"bn-thread-orphaned"),headerText:r,onFocus:s,onBlur:o,selected:t,tabIndex:a,children:[f.jsx(l.Comments.CardSection,{className:"bn-thread-comments",children:f.jsx(ZRe,{thread:e,maxCommentsBeforeCollapse:t?void 0:i||5})}),t&&f.jsx(l.Comments.CardSection,{className:"bn-thread-composer",children:f.jsx(MRe,{autoFocus:!1,editable:!0,editor:d,actions:({isFocused:p,isEmpty:m})=>f.jsx(lQt,{isFocused:p,isEmpty:m,onNewCommentSave:h,Components:l,dict:c})})})]})};function GRe(){let e=Zn(Kd).threadStore,t=O.useRef(void 0);return t.current||(t.current=e.getThreads()),O.useSyncExternalStore(O.useCallback(n=>e.subscribe(r=>{t.current=r,n()}),[e]),()=>t.current)}var cQt=m7t({default:()=>YRe});function YRe(e){let t=Ut(),n=Zn(Kd),r=Tr(Kd,{editor:t,selector:l=>l.selectedThreadId?{id:l.selectedThreadId,position:l.threadPositions.get(l.selectedThreadId)}:void 0}),i=GRe(),s=O.useMemo(()=>r?i.get(r.id):void 0,[r,i]),o=O.useMemo(()=>{var l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:!!r,onOpenChange:(d,h,p)=>{p==="escape-key"&&t.focus(),d||n.selectThread(void 0)},placement:"bottom",middleware:[oc(10),Qg(),eg()],...(l=e.floatingUIOptions)==null?void 0:l.useFloatingOptions},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:30},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[n,t,e.floatingUIOptions,r]),a=e.floatingThread||AX;return f.jsx(PRe,{position:r==null?void 0:r.position,portalElement:e.portalElement,...o,children:s&&f.jsx(a,{thread:s,selected:!0})})}const uQt=Object.freeze(Object.defineProperty({__proto__:null,a:ZRe,c:HM,i:AX,n:cQt,o:XRe,r:GRe,s:URe,t:YRe},Symbol.toStringTag,{value:"Module"}));function dQt(e){return Ft({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8Z"},child:[]},{tag:"path",attr:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8Z"},child:[]}]})(e)}function hQt(e){return Ft({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 10 5 5 5-5z"},child:[]}]})(e)}function KRe(e){return Ft({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"},child:[]}]})(e)}var fQt=UOe(),pQt=(...e)=>t=>{e.forEach(n=>{typeof n=="function"?n(t):n&&(n.current=t)})},mQt=({contentComponent:e})=>{const t=fQt.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getServerSnapshot);return f.jsx(f.Fragment,{children:Object.values(t)})};function gQt(){const e=new Set;let t={};return{subscribe(n){return e.add(n),()=>{e.delete(n)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(n,r){t={...t,[n]:Nxe.createPortal(r.reactElement,r.element,n)},e.forEach(i=>i())},removeRenderer(n){const r={...t};delete r[n],t=r,e.forEach(i=>i())}}}var vQt=class extends Kr.Component{constructor(e){super(e),this.editorContentRef=Kr.createRef()}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){var e;const t=this.props.editor;if(t&&!t.isDestroyed&&((e=t.view.dom)!=null&&e.parentNode)){if(t.contentComponent)return;const n=this.editorContentRef.current;n.append(...t.view.dom.parentNode.childNodes),t.setOptions({element:n}),t.contentComponent=gQt(),t.createNodeViews(),t.isEditorContentInitialized=!0,this.forceUpdate()}}componentWillUnmount(){var e;const t=this.props.editor;if(t){t.isEditorContentInitialized=!1,t.isDestroyed||t.view.setProps({nodeViews:{}}),t.contentComponent=null;try{if(!((e=t.view.dom)!=null&&e.parentNode))return;const n=document.createElement("div");n.append(...t.view.dom.parentNode.childNodes),t.setOptions({element:n})}catch{}}}render(){const{editor:e,innerRef:t,...n}=this.props;return f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:pQt(t,this.editorContentRef),...n}),(e==null?void 0:e.contentComponent)&&f.jsx(mQt,{contentComponent:e.contentComponent})]})}},yQt=O.forwardRef((e,t)=>{const n=Kr.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[e.editor]);return Kr.createElement(vQt,{key:n,innerRef:t,...e})}),bQt=Kr.memo(yQt),JRe=O.createContext({editor:null});JRe.Consumer;var e$e=O.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),t$e=()=>O.useContext(e$e),xQt=Kr.forwardRef((e,t)=>{const{onDragStart:n}=t$e(),r=e.as||"div";return f.jsx(r,{...e,ref:t,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...e.style}})});function x0e(e){return!!(typeof e=="function"&&e.prototype&&e.prototype.isReactComponent)}function w0e(e){return!!(typeof e=="object"&&e.$$typeof&&(e.$$typeof.toString()==="Symbol(react.forward_ref)"||e.$$typeof.description==="react.forward_ref"))}function wQt(e){return!!(typeof e=="object"&&e.$$typeof&&(e.$$typeof.toString()==="Symbol(react.memo)"||e.$$typeof.description==="react.memo"))}function OQt(e){if(x0e(e)||w0e(e))return!0;if(wQt(e)){const t=e.type;if(t)return x0e(t)||w0e(t)}return!1}function SQt(){try{if(O.version)return parseInt(O.version.split(".")[0],10)>=19}catch{}return!1}var kQt=class{constructor(e,{editor:t,props:n={},as:r="div",className:i=""}){this.ref=null,this.destroyed=!1,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=e,this.editor=t,this.props=n,this.element=document.createElement(r),this.element.classList.add("react-renderer"),i&&this.element.classList.add(...i.split(" ")),this.editor.isEditorContentInitialized?vn.flushSync(()=>{this.render()}):queueMicrotask(()=>{this.destroyed||this.render()})}render(){var e;if(this.destroyed)return;const t=this.component,n=this.props,r=this.editor,i=SQt(),s=OQt(t),o={...n};o.ref&&!(i||s)&&delete o.ref,!o.ref&&(i||s)&&(o.ref=a=>{this.ref=a}),this.reactElement=f.jsx(t,{...o}),(e=r==null?void 0:r.contentComponent)==null||e.setRenderer(this.id,this)}updateProps(e={}){if(this.destroyed)return;let t=!1;const n=Object.keys(e);for(let r=0;r<n.length;r+=1){const i=n[r];if(e[i]!==this.props[i]){t=!0;break}}t&&(this.props={...this.props,...e},this.render())}destroy(){var e;this.destroyed=!0;const t=this.editor;(e=t==null?void 0:t.contentComponent)==null||e.removeRenderer(this.id);try{this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}catch{}}updateAttributes(e){Object.keys(e).forEach(t=>{this.element.setAttribute(t,e[t])})}};Kr.createContext({markViewContentRef:()=>{}});var _Qt=class extends zNt{constructor(e,t,n){if(super(e,t,n),this.selectionRafId=null,this.handlePositionUpdate=()=>{const r=this.getPos();typeof r!="number"||r===this.currentPos||(this.currentPos=r,this.renderer.updateProps({getPos:()=>this.getPos()}),typeof this.options.attrs=="function"&&this.updateElementAttributes())},this.cachedExtensionWithSyncedStorage=null,!this.node.isLeaf){this.options.contentDOMElementTag?this.contentDOMElement=document.createElement(this.options.contentDOMElementTag):this.contentDOMElement=document.createElement(this.node.isInline?"span":"div"),this.contentDOMElement.dataset.nodeViewContentReact="",this.contentDOMElement.dataset.nodeViewWrapper="",this.contentDOMElement.style.whiteSpace="inherit";const r=this.dom.querySelector("[data-node-view-content]");if(!r)return;r.appendChild(this.contentDOMElement)}this.options.trackNodeViewPosition&&this.editor.on("update",this.handlePositionUpdate)}get extensionWithSyncedStorage(){if(!this.cachedExtensionWithSyncedStorage){const e=this.editor,t=this.extension;this.cachedExtensionWithSyncedStorage=new Proxy(t,{get(n,r,i){var s;return r==="storage"?(s=e.storage[t.name])!=null?s:{}:Reflect.get(n,r,i)}})}return this.cachedExtensionWithSyncedStorage}mount(){const t={editor:this.editor,node:this.node,decorations:this.decorations,innerDecorations:this.innerDecorations,view:this.view,selected:!1,extension:this.extensionWithSyncedStorage,HTMLAttributes:this.HTMLAttributes,getPos:()=>this.getPos(),updateAttributes:(c={})=>this.updateAttributes(c),deleteNode:()=>this.deleteNode(),ref:O.createRef()};if(!this.component.displayName){const c=u=>u.charAt(0).toUpperCase()+u.substring(1);this.component.displayName=c(this.extension.name)}const i={onDragStart:this.onDragStart.bind(this),nodeViewContentRef:c=>{c&&this.contentDOMElement&&c.firstChild!==this.contentDOMElement&&(c.hasAttribute("data-node-view-wrapper")&&c.removeAttribute("data-node-view-wrapper"),c.appendChild(this.contentDOMElement))}},s=this.component,o=O.memo(c=>f.jsx(e$e.Provider,{value:i,children:O.createElement(s,c)}));o.displayName="ReactNodeView";let a=this.node.isInline?"span":"div";this.options.as&&(a=this.options.as);const{className:l=""}=this.options;this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.renderer=new kQt(o,{editor:this.editor,props:t,as:a,className:`node-${this.node.type.name} ${l}`.trim()}),this.editor.on("selectionUpdate",this.handleSelectionUpdate),this.updateElementAttributes(),this.currentPos=this.getPos()}get dom(){var e;if(this.renderer.element.firstElementChild&&!((e=this.renderer.element.firstElementChild)!=null&&e.hasAttribute("data-node-view-wrapper")))throw Error("Please use the NodeViewWrapper component for your node view.");return this.renderer.element}get contentDOM(){return this.node.isLeaf?null:this.contentDOMElement}handleSelectionUpdate(){this.selectionRafId&&(cancelAnimationFrame(this.selectionRafId),this.selectionRafId=null),this.selectionRafId=requestAnimationFrame(()=>{this.selectionRafId=null;const e=this.currentPos;if(typeof e!="number")return;if(WAt({selection:this.editor.state.selection,pos:e,nodeSize:this.node.nodeSize,selectedOnTextSelection:this.options.selectedOnTextSelection})){if(this.renderer.props.selected)return;this.selectNode()}else{if(!this.renderer.props.selected)return;this.deselectNode()}})}update(e,t,n){const r=a=>{this.renderer.updateProps(a),typeof this.options.attrs=="function"&&this.updateElementAttributes()};if(e.type!==this.node.type)return!1;if(typeof this.options.update=="function"){const a=this.node,l=this.decorations,c=this.innerDecorations;return this.node=e,this.decorations=t,this.innerDecorations=n,this.currentPos=this.getPos(),this.options.update({oldNode:a,oldDecorations:l,newNode:e,newDecorations:t,oldInnerDecorations:c,innerDecorations:n,updateProps:()=>r({node:e,decorations:t,innerDecorations:n,extension:this.extensionWithSyncedStorage})})}if(!(e!==this.node))return this.node=e,this.decorations=t,this.innerDecorations=n,!0;const s=this.getPos();this.node=e,this.decorations=t,this.innerDecorations=n,this.currentPos=s;const o={node:e,decorations:t,innerDecorations:n,extension:this.extensionWithSyncedStorage};return this.options.trackNodeViewPosition&&(o.getPos=()=>this.getPos()),r(o),!0}selectNode(){this.renderer.updateProps({selected:!0}),this.renderer.element.classList.add("ProseMirror-selectednode")}deselectNode(){this.renderer.updateProps({selected:!1}),this.renderer.element.classList.remove("ProseMirror-selectednode")}destroy(){this.renderer.destroy(),this.editor.off("selectionUpdate",this.handleSelectionUpdate),this.options.trackNodeViewPosition&&this.editor.off("update",this.handlePositionUpdate),this.contentDOMElement=null,this.selectionRafId&&(cancelAnimationFrame(this.selectionRafId),this.selectionRafId=null)}updateElementAttributes(){if(this.options.attrs){let e={};if(typeof this.options.attrs=="function"){const t=this.editor.extensionManager.attributes,n=Kw(this.node,t);e=this.options.attrs({node:this.node,HTMLAttributes:n})}else e=this.options.attrs;this.renderer.updateAttributes(e)}}};function CQt(e,t){return n=>n.editor.contentComponent?new _Qt(e,n,t):{}}var NX=O.createContext({get editor(){throw new Error("useTiptap must be used within a <Tiptap> provider")}});NX.displayName="TiptapContext";var EQt=()=>O.useContext(NX);function n$e({editor:e,instance:t,children:n}){const r=e??t;if(!r)throw new Error("Tiptap: An editor instance is required. Pass a non-null `editor` prop.");const i=O.useMemo(()=>({editor:r}),[r]),s=O.useMemo(()=>({editor:r}),[r]);return f.jsx(JRe.Provider,{value:s,children:f.jsx(NX.Provider,{value:i,children:n})})}n$e.displayName="Tiptap";function r$e({...e}){const{editor:t}=EQt();return f.jsx(bQt,{editor:t,...e})}r$e.displayName="Tiptap.Content";Object.assign(n$e,{Content:r$e});var i$e=e=>{let{blockId:t,children:n,portalElement:r,...i}=e,s=Ut();return f.jsx(Yc,{reference:O.useMemo(()=>s.transact(o=>{if(!t)return;let a=So(t,o.doc);if(!a)return;let{node:l}=s.prosemirrorView.domAtPos(a.posBeforeNode+1);if(l instanceof Element)return{element:l}}),[s,t]),portalElement:r,...i,children:t!==void 0&&n})},TQt=e=>{let t=Qt(),n=dn(),r=Ut(),i=r.getBlock(e.blockId),[s,o]=O.useState(""),a=O.useCallback(u=>{o(u.currentTarget.value)},[]),l=O.useCallback(u=>{u.key==="Enter"&&!u.nativeEvent.isComposing&&(u.preventDefault(),r.updateBlock(i.id,{props:{name:Pge(s),url:s}}))},[r,i.id,s]),c=O.useCallback(()=>{r.updateBlock(i.id,{props:{name:Pge(s),url:s}})},[r,i.id,s]);return f.jsxs(t.FilePanel.TabPanel,{className:"bn-tab-panel",children:[f.jsx(t.FilePanel.TextInput,{className:"bn-text-input",placeholder:n.file_panel.embed.url_placeholder,value:s,onChange:a,onKeyDown:l,"data-test":"embed-input"}),f.jsx(t.FilePanel.Button,{className:"bn-button",onClick:c,"data-test":"embed-input-button",children:n.file_panel.embed.embed_button[i.type]||n.file_panel.embed.embed_button.file})]})},jQt=e=>{var d,h;let t=Qt(),n=dn(),{setLoading:r}=e,i=Ut(),s=i.getBlock(e.blockId),[o,a]=O.useState(!1);O.useEffect(()=>{o&&setTimeout(()=>{a(!1)},3e3)},[o]);let l=O.useCallback(p=>{if(p===null)return;async function m(y){if(r(!0),i.uploadFile!==void 0)try{let v=await i.uploadFile(y,e.blockId);typeof v=="string"&&(v={props:{name:y.name,url:v}}),i.updateBlock(e.blockId,v)}catch{a(!0)}finally{r(!1)}}m(p)},[e.blockId,i,r]),c=i.schema.blockSpecs[s.type],u=(h=(d=c.implementation.meta)==null?void 0:d.fileBlockAccept)!=null&&h.length?c.implementation.meta.fileBlockAccept.join(","):"*/*";return f.jsxs(t.FilePanel.TabPanel,{className:"bn-tab-panel",children:[f.jsx(t.FilePanel.FileInput,{className:"bn-file-input","data-test":"upload-input",accept:u,placeholder:n.file_panel.upload.file_placeholder[s.type]||n.file_panel.upload.file_placeholder.file,value:null,onChange:l}),o&&f.jsx("div",{className:"bn-error-text",children:n.file_panel.upload.upload_error})]})},s$e=e=>{let t=Qt(),n=dn(),r=Ut(),[i,s]=O.useState(!1),o=e.tabs??[...r.uploadFile===void 0?[]:[{name:n.file_panel.upload.title,tabPanel:f.jsx(jQt,{blockId:e.blockId,setLoading:s})}],{name:n.file_panel.embed.title,tabPanel:f.jsx(TQt,{blockId:e.blockId})}],[a,l]=O.useState(e.defaultOpenTab||o[0].name);return f.jsx(t.FilePanel.Root,{className:"bn-panel",defaultOpenTab:a,openTab:a,setOpenTab:l,tabs:o,loading:i})},PQt=e=>{let t=Ut(),n=Zn(ec),r=Tr(ec),i=O.useMemo(()=>{var o,a,l;return{...e.floatingUIOptions,useFloatingOptions:{open:!!r,onOpenChange:(c,u,d)=>{c||n.closeMenu(),d==="escape-key"&&t.focus()},middleware:[oc(10),eg()],...(o=e.floatingUIOptions)==null?void 0:o.useFloatingOptions},focusManagerProps:{disabled:!0,...(a=e.floatingUIOptions)==null?void 0:a.focusManagerProps},elementProps:{style:{zIndex:90},...(l=e.floatingUIOptions)==null?void 0:l.elementProps}}},[r,t,n,e.floatingUIOptions]),s=e.filePanel||s$e;return f.jsx(i$e,{blockId:r,portalElement:e.portalElement,...i,children:r&&f.jsx(s,{blockId:r})})},MQt={bold:Z7t,italic:V7t,underline:B7t,strike:Q7t,code:eQt};function AQt(e,t){return e in t.schema.styleSchema&&t.schema.styleSchema[e].type===e&&t.schema.styleSchema[e].propSchema==="boolean"}var FC=e=>{let t=dn(),n=Qt(),r=Ut(),i=as({editor:r,selector:({editor:a})=>{var l;if(!(!a.isEditable||!AQt(e.basicTextStyle,a)||!(((l=a.getSelection())==null?void 0:l.blocks)||[a.getTextCursorPosition().block]).find(c=>c.content!==void 0)))return e.basicTextStyle in a.getActiveStyles()?{active:!0}:{active:!1}}}),s=O.useCallback(a=>{r.focus(),r.toggleStyles({[a]:!0})},[r,e]);if(i===void 0)return null;let o=MQt[e.basicTextStyle];return f.jsx(n.FormattingToolbar.Button,{className:"bn-button","data-test":e.basicTextStyle,onClick:()=>s(e.basicTextStyle),isSelected:i.active,label:t.formatting_toolbar[e.basicTextStyle].tooltip,mainTooltip:t.formatting_toolbar[e.basicTextStyle].tooltip,secondaryTooltip:el(t.formatting_toolbar[e.basicTextStyle].secondary_tooltip,t.generic.ctrl_shortcut),icon:f.jsx(o,{})})},Q9=e=>{let t=e.textColor||"default",n=e.backgroundColor||"default",r=e.size||16;return f.jsx("div",{className:"bn-color-icon","data-background-color":n,"data-text-color":t,style:O.useMemo(()=>({pointerEvents:"none",fontSize:(r*.75).toString()+"px",height:r.toString()+"px",lineHeight:r.toString()+"px",textAlign:"center",width:r.toString()+"px"}),[r]),children:"A"})},O0e=["default","gray","brown","red","orange","yellow","green","blue","purple","pink"],qM=e=>{let t=Qt(),n=dn();return f.jsxs(f.Fragment,{children:[f.jsx(()=>e.text?f.jsxs(f.Fragment,{children:[f.jsx(t.Generic.Menu.Label,{children:n.color_picker.text_title}),O0e.map(r=>f.jsx(t.Generic.Menu.Item,{onClick:()=>{e.onClick&&e.onClick(),e.text.setColor(r)},"data-test":"text-color-"+r,icon:f.jsx(Q9,{textColor:r,size:e.iconSize}),checked:e.text.color===r,children:n.color_picker.colors[r]},"text-color-"+r))]}):null,{}),f.jsx(()=>e.background?f.jsxs(f.Fragment,{children:[f.jsx(t.Generic.Menu.Label,{children:n.color_picker.background_title}),O0e.map(r=>f.jsx(t.Generic.Menu.Item,{onClick:()=>{e.onClick&&e.onClick(),e.background.setColor(r)},"data-test":"background-color-"+r,icon:f.jsx(Q9,{backgroundColor:r,size:e.iconSize}),checked:e.background.color===r,children:n.color_picker.colors[r]},"background-color-"+r))]}):null,{})]})};function HC(e,t){return`${e}Color`in t.schema.styleSchema&&t.schema.styleSchema[`${e}Color`].type===`${e}Color`&&t.schema.styleSchema[`${e}Color`].propSchema==="string"}var NQt=()=>{let e=Qt(),t=dn(),n=Ut(),r=HC("text",n),i=HC("background",n),s=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable||!(((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block]).find(h=>h.content!==void 0))return;let c=HC("text",l),u=HC("background",l);if(!(!c&&!u))return{textColor:c?l.getActiveStyles().textColor||"default":void 0,backgroundColor:u?l.getActiveStyles().backgroundColor||"default":void 0}}}),o=O.useCallback(l=>{if(!r)throw Error("Tried to set text color, but style does not exist in editor schema.");l==="default"?n.removeStyles({textColor:l}):n.addStyles({textColor:l}),setTimeout(()=>{n.focus()})},[n,r]),a=O.useCallback(l=>{if(!i)throw Error("Tried to set background color, but style does not exist in editor schema.");l==="default"?n.removeStyles({backgroundColor:l}):n.addStyles({backgroundColor:l}),setTimeout(()=>{n.focus()})},[i,n]);return s===void 0?null:f.jsxs(e.Generic.Menu.Root,{children:[f.jsx(e.Generic.Menu.Trigger,{children:f.jsx(e.FormattingToolbar.Button,{className:"bn-button","data-test":"colors",label:t.formatting_toolbar.colors.tooltip,mainTooltip:t.formatting_toolbar.colors.tooltip,icon:f.jsx(Q9,{textColor:s.textColor,backgroundColor:s.backgroundColor,size:20})})}),f.jsx(e.Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{text:s.textColor?{color:s.textColor,setColor:o}:void 0,background:s.backgroundColor?{color:s.backgroundColor,setColor:a}:void 0})})]})},S0e=e=>{for(let t of EBt)if(e.startsWith(t))return e;return`${TBt}://${e}`},o$e=e=>{let t=Qt(),n=dn(),{editLink:r}=Zn(GS),{url:i,text:s,showTextField:o}=e,[a,l]=O.useState(i),[c,u]=O.useState(s);O.useEffect(()=>{l(i),u(s)},[s,i]);let d=O.useCallback(y=>{var v,b;y.key==="Enter"&&!y.nativeEvent.isComposing&&(y.preventDefault(),r(S0e(a),c,e.range.from),(v=e.setToolbarOpen)==null||v.call(e,!1),(b=e.setToolbarPositionFrozen)==null||b.call(e,!1))},[r,a,c,e]),h=O.useCallback(y=>l(y.currentTarget.value),[]),p=O.useCallback(y=>u(y.currentTarget.value),[]),m=O.useCallback(()=>{var y,v;r(S0e(a),c,e.range.from),(y=e.setToolbarOpen)==null||y.call(e,!1),(v=e.setToolbarPositionFrozen)==null||v.call(e,!1)},[r,a,c,e]);return f.jsxs(t.Generic.Form.Root,{children:[f.jsx(t.Generic.Form.TextInput,{className:"bn-text-input",name:"url",icon:f.jsx(QRe,{}),autoFocus:!0,placeholder:n.link_toolbar.form.url_placeholder,value:a,onKeyDown:d,onChange:h,onSubmit:m}),o!==!1&&f.jsx(t.Generic.Form.TextInput,{className:"bn-text-input",name:"title",icon:f.jsx(MX,{}),placeholder:n.link_toolbar.form.title_placeholder,value:c,onKeyDown:d,onChange:p,onSubmit:m})]})};function RQt(e){return"link"in e.schema.inlineContentSchema&&e.schema.inlineContentSchema.link==="link"}var $Qt=()=>{let e=Ut(),t=Ug(),n=Qt(),r=dn(),i=Zn(ll),{showSelection:s}=Zn(Oj),[o,a]=O.useState(!1);O.useEffect(()=>(s(o,"createLinkButton"),()=>s(!1,"createLinkButton")),[o,s]);let l=as({editor:e,selector:({editor:c})=>{var u;if(!(!c.isEditable||!RQt(c)||N9(c.prosemirrorState.selection)||!(((u=c.getSelection())==null?void 0:u.blocks)||[c.getTextCursorPosition().block]).find(d=>d.content!==void 0)))return{url:c.getSelectedLinkUrl(),text:c.getSelectedText(),range:{from:c.prosemirrorState.selection.from,to:c.prosemirrorState.selection.to}}}});return O.useEffect(()=>{a(!1)},[l]),O.useEffect(()=>{let c=u=>{(u.ctrlKey||u.metaKey)&&u.key==="k"&&(a(!0),u.preventDefault())};return t==null||t.addEventListener("keydown",c),()=>{t==null||t.removeEventListener("keydown",c)}},[t]),l===void 0?null:f.jsxs(n.Generic.Popover.Root,{open:o,onOpenChange:a,children:[f.jsx(n.Generic.Popover.Trigger,{children:f.jsx(n.FormattingToolbar.Button,{className:"bn-button","data-test":"createLink",label:r.formatting_toolbar.link.tooltip,mainTooltip:r.formatting_toolbar.link.tooltip,secondaryTooltip:el(r.formatting_toolbar.link.secondary_tooltip,r.generic.ctrl_shortcut),icon:f.jsx(QRe,{}),onClick:()=>a(c=>!c)})}),f.jsx(n.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(o$e,{url:l.url||"",text:l.text,range:l.range,showTextField:!1,setToolbarOpen:c=>i.store.setState(c)})})]})},DQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable)return;let c=((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block];if(c.length!==1)return;let u=c[0];if(zo(u,l,u.type,{url:"string",caption:"string"}))return u}}),[i,s]=O.useState(!1),o=O.useCallback(l=>{r!==void 0&&Nr(n,r.type,{caption:"string"})&&n.updateBlock(r.id,{props:{caption:l.currentTarget.value}})},[r,n]),a=O.useCallback(l=>{l.key==="Enter"&&!l.nativeEvent.isComposing&&(l.preventDefault(),s(!1))},[]);return r===void 0?null:f.jsxs(t.Generic.Popover.Root,{open:i,onOpenChange:s,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_caption.tooltip,mainTooltip:e.formatting_toolbar.file_caption.tooltip,icon:f.jsx(y0e,{}),onClick:()=>s(l=>!l)})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(t.Generic.Form.Root,{children:f.jsx(t.Generic.Form.TextInput,{name:"file-caption",icon:f.jsx(y0e,{}),value:r.props.caption,autoFocus:!0,placeholder:e.formatting_toolbar.file_caption.input_placeholder,onKeyDown:a,onChange:o})})})]})},LQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;if(!s.isEditable)return;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string"}))return a}}),i=O.useCallback(()=>{r!==void 0&&(n.focus(),n.removeBlocks([r.id]))},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_delete.tooltip[r.type]||e.formatting_toolbar.file_delete.tooltip.file,mainTooltip:e.formatting_toolbar.file_delete.tooltip[r.type]||e.formatting_toolbar.file_delete.tooltip.file,icon:f.jsx(M7t,{}),onClick:i})},IQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable)return;let c=((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block];if(c.length!==1)return;let u=c[0];if(zo(u,l,u.type,{url:"string",name:"string"}))return u}}),[i,s]=O.useState(!1),o=O.useCallback(l=>{r!==void 0&&Nr(n,r.type,{name:"string"})&&n.updateBlock(r.id,{props:{name:l.currentTarget.value}})},[r,n]),a=O.useCallback(l=>{l.key==="Enter"&&!l.nativeEvent.isComposing&&(l.preventDefault(),s(!1))},[]);return r===void 0?null:f.jsxs(t.Generic.Popover.Root,{open:i,onOpenChange:s,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_rename.tooltip[r.type]||e.formatting_toolbar.file_rename.tooltip.file,mainTooltip:e.formatting_toolbar.file_rename.tooltip[r.type]||e.formatting_toolbar.file_rename.tooltip.file,icon:f.jsx(b0e,{}),onClick:()=>s(l=>!l)})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(t.Generic.Form.Root,{children:f.jsx(t.Generic.Form.TextInput,{name:"file-name",icon:f.jsx(b0e,{}),value:r.props.name,autoFocus:!0,placeholder:e.formatting_toolbar.file_rename.input_placeholder[r.type]||e.formatting_toolbar.file_rename.input_placeholder.file,onKeyDown:a,onChange:o})})})]})},BQt=()=>{let e=dn(),t=Qt(),n=as({editor:Ut(),selector:({editor:r})=>{var o;if(!r.isEditable)return;let i=((o=r.getSelection())==null?void 0:o.blocks)||[r.getTextCursorPosition().block];if(i.length!==1)return;let s=i[0];if(zo(s,r,s.type,{url:"string"}))return s}});return n===void 0?null:f.jsxs(t.Generic.Popover.Root,{position:"bottom",children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",mainTooltip:e.formatting_toolbar.file_replace.tooltip[n.type]||e.formatting_toolbar.file_replace.tooltip.file,label:e.formatting_toolbar.file_replace.tooltip[n.type]||e.formatting_toolbar.file_replace.tooltip.file,icon:f.jsx($7t,{})})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-panel-popover",variant:"panel-popover",children:f.jsx(s$e,{blockId:n.id})})]})},zQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var o;if(!(!s.isEditable||!(((o=s.getSelection())==null?void 0:o.blocks)||[s.getTextCursorPosition().block]).find(a=>a.content!==void 0)))return{canNestBlock:s.canNestBlock()}}}),i=O.useCallback(()=>{r!==void 0&&r.canNestBlock&&(n.focus(),n.nestBlock())},[n,r]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":"nestBlock",onClick:i,isDisabled:!r.canNestBlock,label:e.formatting_toolbar.nest.tooltip,mainTooltip:e.formatting_toolbar.nest.tooltip,secondaryTooltip:el(e.formatting_toolbar.nest.secondary_tooltip,e.generic.ctrl_shortcut),icon:f.jsx(W7t,{})})},QQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var o;if(!(!s.isEditable||!(((o=s.getSelection())==null?void 0:o.blocks)||[s.getTextCursorPosition().block]).find(a=>a.content!==void 0)))return{canUnnestBlock:s.canUnnestBlock()}}}),i=O.useCallback(()=>{r!==void 0&&r.canUnnestBlock&&(n.focus(),n.unnestBlock())},[n,r]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":"unnestBlock",onClick:i,isDisabled:!r.canUnnestBlock,label:e.formatting_toolbar.unnest.tooltip,mainTooltip:e.formatting_toolbar.unnest.tooltip,secondaryTooltip:el(e.formatting_toolbar.unnest.secondary_tooltip,e.generic.ctrl_shortcut),icon:f.jsx(U7t,{})})},FQt=e=>[{name:e.slash_menu.paragraph.title,type:"paragraph",icon:MX},{name:e.slash_menu.heading.title,type:"heading",props:{level:1,isToggleable:!1},icon:Ej},{name:e.slash_menu.heading_2.title,type:"heading",props:{level:2,isToggleable:!1},icon:Cj},{name:e.slash_menu.heading_3.title,type:"heading",props:{level:3,isToggleable:!1},icon:_j},{name:e.slash_menu.heading_4.title,type:"heading",props:{level:4,isToggleable:!1},icon:qRe},{name:e.slash_menu.heading_5.title,type:"heading",props:{level:5,isToggleable:!1},icon:HRe},{name:e.slash_menu.heading_6.title,type:"heading",props:{level:6,isToggleable:!1},icon:FRe},{name:e.slash_menu.toggle_heading.title,type:"heading",props:{level:1,isToggleable:!0},icon:Ej},{name:e.slash_menu.toggle_heading_2.title,type:"heading",props:{level:2,isToggleable:!0},icon:Cj},{name:e.slash_menu.toggle_heading_3.title,type:"heading",props:{level:3,isToggleable:!0},icon:_j},{name:e.slash_menu.quote.title,type:"quote",icon:LRe},{name:e.slash_menu.toggle_list.title,type:"toggleListItem",icon:DRe},{name:e.slash_menu.bullet_list.title,type:"bulletListItem",icon:IRe},{name:e.slash_menu.numbered_list.title,type:"numberedListItem",icon:BRe},{name:e.slash_menu.check_list.title,type:"checkListItem",icon:zRe}],HQt=e=>{let t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:a})=>{var l;return((l=a.getSelection())==null?void 0:l.blocks)||[a.getTextCursorPosition().block]}}),i=r[0],s=O.useMemo(()=>(e.items||FQt(n.dictionary)).filter(a=>Nr(n,a.type,Object.fromEntries(Object.entries(a.props||{}).map(([l,c])=>[l,typeof c])))),[n,e.items]),o=O.useMemo(()=>s.map(a=>{let l=a.icon,c=a.type===i.type,u=Object.entries(a.props||{}).filter(([d,h])=>h!==i.props[d]).length===0;return{text:a.name,icon:f.jsx(l,{size:16}),onClick:()=>{n.focus(),n.transact(()=>{for(let d of r)n.updateBlock(d,{type:a.type,props:a.props})})},isSelected:c&&u}}),[n,s,i.props,i.type,r]);return!O.useMemo(()=>o.find(a=>a.isSelected)!==void 0,[o])||!n.isEditable?null:f.jsx(t.FormattingToolbar.Select,{className:"bn-select",items:o})},qQt=()=>{let e=dn(),t=Qt(),n=Zn("comments"),{store:r}=Zn(ll),i=O.useCallback(()=>{n.startPendingComment(),r.setState(!1)},[n,r]);return f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.comment.tooltip,mainTooltip:e.formatting_toolbar.comment.tooltip,icon:f.jsx(VRe,{}),onClick:i})},VQt=()=>Ut().getExtension("comments")?f.jsx(qQt,{}):null,WQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=O.useCallback(()=>{n._tiptapEditor.chain().focus().addPendingComment().run()},[n]);return!n._tiptapEditor.commands.addPendingComment||!n.isEditable?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.comment.tooltip,mainTooltip:e.formatting_toolbar.comment.tooltip,icon:f.jsx(VRe,{}),onClick:r})};function F9(e,t){try{let n=new URL(e,t);if(n.protocol!=="javascript:")return n.href}catch{}return"#"}var UQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string"}))return a}}),i=O.useCallback(()=>{r!==void 0&&(n.focus(),n.resolveFileUrl?n.resolveFileUrl(r.props.url).then(s=>window.open(F9(s,window.location.href))):window.open(F9(r.props.url,window.location.href)))},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_download.tooltip[r.type]||e.formatting_toolbar.file_download.tooltip.file,mainTooltip:e.formatting_toolbar.file_download.tooltip[r.type]||e.formatting_toolbar.file_download.tooltip.file,icon:f.jsx(j7t,{}),onClick:i})},XQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;if(!s.isEditable)return;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string",showPreview:"boolean"}))return a}}),i=O.useCallback(()=>{r!==void 0&&Nr(n,r.type,{showPreview:"boolean"})&&n.updateBlock(r.id,{props:{showPreview:!r.props.showPreview}})},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:"Toggle preview",mainTooltip:e.formatting_toolbar.file_preview_toggle.tooltip,icon:f.jsx(D7t,{}),isSelected:r.props.showPreview,onClick:i})},ZQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=Zn(yr),i=as({editor:n,selector:({editor:o})=>{var c;if(!o.isEditable||!o.settings.tables.splitCells)return;let a=((c=o.getSelection())==null?void 0:c.blocks)||[o.getTextCursorPosition().block];if(a.length!==1)return;let l=a[0];if(l.type==="table")return{mergeDirection:r.getMergeDirection(l)}}}),s=O.useCallback(()=>{r==null||r.mergeCells()},[r]);return i===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.table_cell_merge.tooltip,mainTooltip:e.formatting_toolbar.table_cell_merge.tooltip,icon:i.mergeDirection==="horizontal"?f.jsx(H7t,{}):f.jsx(F7t,{}),onClick:s})},GQt=()=>Ut().getExtension(yr)?f.jsx(ZQt,{}):null,YQt={left:Y7t,center:J7t,right:G7t,justify:K7t},Pz=e=>{let t=Qt(),n=dn(),r=Ut(),i=as({editor:r,selector:({editor:a})=>{var u,d;if(!a.isEditable)return;let l=((u=a.getSelection())==null?void 0:u.blocks)||[a.getTextCursorPosition().block],c=l[0];if(zo(c,a,c.type,{textAlignment:Ln.textAlignment}))return{textAlignment:c.props.textAlignment,blocks:l};if(l.length===1&&zo(c,a,"table"))return(d=a.getExtension(yr))!=null&&d.getCellSelection()?{textAlignment:Ff(c.content.rows[0].cells[0]).props.textAlignment,blocks:[c]}:void 0}}),s=O.useCallback(a=>{var l;if(i!==void 0){r.focus();for(let c of i.blocks)if(zo(c,r,c.type,{textAlignment:Ln.textAlignment})&&Nr(r,c.type,{textAlignment:Ln.textAlignment}))r.updateBlock(c,{props:{textAlignment:a}});else if(c.type==="table"){let u=(l=r.getExtension(yr))==null?void 0:l.getCellSelection();if(!u)continue;let d=c.content.rows.map(h=>({...h,cells:h.cells.map(p=>Ff(p))}));u.cells.forEach(({row:h,col:p})=>{d[h].cells[p].props.textAlignment=a}),r.updateBlock(c,{type:"table",content:{...c.content,type:"tableContent",rows:d}}),r.setTextCursorPosition(c)}}},[r,i]);if(i===void 0)return null;let o=YQt[e.textAlignment];return f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":`alignText${e.textAlignment.slice(0,1).toUpperCase()+e.textAlignment.slice(1)}`,onClick:()=>s(e.textAlignment),isSelected:i.textAlignment===e.textAlignment,label:n.formatting_toolbar[`align_${e.textAlignment}`].tooltip,mainTooltip:n.formatting_toolbar[`align_${e.textAlignment}`].tooltip,icon:f.jsx(o,{})})},a$e=e=>[f.jsx(HQt,{items:e},"blockTypeSelect"),f.jsx(GQt,{},"tableCellMergeButton"),f.jsx(DQt,{},"fileCaptionButton"),f.jsx(BQt,{},"replaceFileButton"),f.jsx(IQt,{},"fileRenameButton"),f.jsx(LQt,{},"fileDeleteButton"),f.jsx(UQt,{},"fileDownloadButton"),f.jsx(XQt,{},"filePreviewButton"),f.jsx(FC,{basicTextStyle:"bold"},"boldStyleButton"),f.jsx(FC,{basicTextStyle:"italic"},"italicStyleButton"),f.jsx(FC,{basicTextStyle:"underline"},"underlineStyleButton"),f.jsx(FC,{basicTextStyle:"strike"},"strikeStyleButton"),f.jsx(Pz,{textAlignment:"left"},"textAlignLeftButton"),f.jsx(Pz,{textAlignment:"center"},"textAlignCenterButton"),f.jsx(Pz,{textAlignment:"right"},"textAlignRightButton"),f.jsx(NQt,{},"colorStyleButton"),f.jsx(zQt,{},"nestBlockButton"),f.jsx(QQt,{},"unnestBlockButton"),f.jsx($Qt,{},"createLinkButton"),f.jsx(VQt,{},"addCommentButton"),f.jsx(WQt,{},"addTiptapCommentButton")],l$e=e=>f.jsx(Qt().FormattingToolbar.Root,{className:"bn-toolbar bn-formatting-toolbar",children:e.children||a$e(e.blockTypeSelectItems)}),KQt=e=>{switch(e){case"left":return"top-start";case"center":return"top";case"right":return"top-end";default:return"top-start"}},c$e=e=>{let t=Ut(),n=Zn(ll,{editor:t}),r=Tr(ll,{editor:t}),i=as({editor:t,selector:({editor:l})=>n.store.state?{from:l.prosemirrorState.selection.from,to:l.prosemirrorState.selection.to}:void 0}),s=as({editor:t,selector:({editor:l})=>{let c=l.getTextCursorPosition().block;return zo(c,l,c.type,{textAlignment:Ln.textAlignment})?KQt(c.props.textAlignment):"top-start"}}),o=O.useMemo(()=>{var l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:r,onOpenChange:(d,h,p)=>{n.store.setState(d),p==="escape-key"&&t.focus()},placement:s,middleware:[oc(10),Qg(),eg()],...(l=e.floatingUIOptions)==null?void 0:l.useFloatingOptions},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:40},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[r,s,e.floatingUIOptions,n.store,t]),a=e.formattingToolbar||l$e;return f.jsx(PRe,{position:i,portalElement:e.portalElement,...o,children:r&&f.jsx(a,{})})},JQt=e=>{let t=Qt(),n=dn(),{deleteLink:r}=Zn(GS);return f.jsx(t.LinkToolbar.Button,{className:"bn-button",label:n.link_toolbar.delete.tooltip,mainTooltip:n.link_toolbar.delete.tooltip,isSelected:!1,onClick:()=>{var i;r(e.range.from),(i=e.setToolbarOpen)==null||i.call(e,!1)},icon:f.jsx(q7t,{})})},e9t=e=>{let t=Qt(),n=dn();return f.jsxs(t.Generic.Popover.Root,{onOpenChange:e.setToolbarPositionFrozen,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.LinkToolbar.Button,{className:"bn-button",mainTooltip:n.link_toolbar.edit.tooltip,isSelected:!1,children:n.link_toolbar.edit.text})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(o$e,{url:e.url,text:e.text,range:e.range,setToolbarOpen:e.setToolbarOpen,setToolbarPositionFrozen:e.setToolbarPositionFrozen})})]})},t9t=e=>{let t=Qt(),n=dn();return f.jsx(t.LinkToolbar.Button,{className:"bn-button",mainTooltip:n.link_toolbar.open.tooltip,label:n.link_toolbar.open.tooltip,isSelected:!1,onClick:()=>{window.open(F9(e.url,window.location.href),"_blank")},icon:f.jsx(T7t,{})})},n9t=e=>f.jsx(Qt().LinkToolbar.Root,{className:"bn-toolbar bn-link-toolbar",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(e9t,{url:e.url,text:e.text,range:e.range,setToolbarOpen:e.setToolbarOpen,setToolbarPositionFrozen:e.setToolbarPositionFrozen}),f.jsx(t9t,{url:e.url}),f.jsx(JQt,{range:e.range,setToolbarOpen:e.setToolbarOpen})]})}),r9t=e=>{let t=Ut(),[n,r]=O.useState(!1),[i,s]=O.useState(!1),o=Ug(),a=Zn(GS),[l,c]=O.useState(void 0);O.useEffect(()=>{let p=()=>{let b=a.getLinkAtSelection();if(!b){c(void 0),i||r(!1);return}c({cursorType:"text",url:b.mark.attrs.href,text:b.text,range:b.range,element:a.getLinkElementAtPos(b.range.from)}),i||r(!0)},m=b=>{if(l!==void 0&&l.cursorType==="text"||!(b.target instanceof HTMLElement))return;let S=a.getLinkAtElement(b.target);S&&c({cursorType:"mouse",url:S.mark.attrs.href,text:S.text,range:S.range,element:a.getLinkElementAtPos(S.range.from)})},y=t.onChange(p),v=t.onSelectionChange(p);return o==null||o.addEventListener("mouseover",m),()=>{y(),v(),o==null||o.removeEventListener("mouseover",m)}},[t,o,a,l,i]);let u=O.useMemo(()=>{var p,m,y,v;return{...e.floatingUIOptions,useFloatingOptions:{open:n,onOpenChange:(b,S,w)=>{i||l!==void 0&&l.cursorType==="text"&&w==="hover"||(w==="escape-key"&&t.focus(),r(b))},placement:"top-start",middleware:[oc(10),eg()],...(p=e.floatingUIOptions)==null?void 0:p.useFloatingOptions},useHoverProps:{enabled:l!==void 0&&l.cursorType==="mouse",delay:{open:250,close:250},handleClose:p5e(),...(m=e.floatingUIOptions)==null?void 0:m.useHoverProps},focusManagerProps:{disabled:!0,...(y=e.floatingUIOptions)==null?void 0:y.focusManagerProps},elementProps:{style:{zIndex:50},...(v=e.floatingUIOptions)==null?void 0:v.elementProps}}},[t,l,e.floatingUIOptions,n,i]),d=O.useMemo(()=>l!=null&&l.element?{element:l.element}:void 0,[l==null?void 0:l.element]);if(!t.isEditable)return null;let h=e.linkToolbar||n9t;return f.jsx(Yc,{reference:d,portalElement:e.portalElement,...u,children:l&&f.jsx(h,{url:l.url,text:l.text,range:l.range,setToolbarOpen:r,setToolbarPositionFrozen:s})})},i9t=()=>{let e=Qt(),t=dn(),n=Ut(),r=Zn(bl),i=Tr(kl,{editor:n,selector:o=>o==null?void 0:o.block}),s=O.useCallback(()=>{if(i===void 0)return;let o=i.content;if(o!==void 0&&Array.isArray(o)&&o.length===0)n.setTextCursorPosition(i),r.openSuggestionMenu("/");else{let a=n.insertBlocks([{type:"paragraph"}],i,"after")[0];n.setTextCursorPosition(a),r.openSuggestionMenu("/")}},[i,n,r]);return i===void 0?null:f.jsx(e.SideMenu.Button,{className:"bn-button",label:t.side_menu.add_block_label,icon:f.jsx(dQt,{size:24,onClick:s,"data-test":"dragHandleAdd"})})},s9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:i=>i==null?void 0:i.block});return r===void 0||!zo(r,n,r.type,{textColor:"string"})&&!zo(r,n,r.type,{backgroundColor:"string"})?null:f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:zo(r,n,r.type,{textColor:"string"})&&Nr(n,r.type,{textColor:"string"})?{color:r.props.textColor,setColor:i=>n.updateBlock(r,{type:r.type,props:{textColor:i}})}:void 0,background:zo(r,n,r.type,{backgroundColor:"string"})&&Nr(n,r.type,{backgroundColor:"string"})?{color:r.props.backgroundColor,setColor:i=>n.updateBlock(r,{props:{backgroundColor:i}})}:void 0})})]})},o9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:i=>i==null?void 0:i.block});return r===void 0?null:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",onClick:()=>{var o;let i=(o=n.getSelection())==null?void 0:o.blocks,s=i&&i.some(a=>a.id===r.id)?i:[r];n.removeBlocks(s)},children:e.children})},a9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block});if(r===void 0||r.type!=="table"||!n.settings.tables.headers)return null;let i=!!r.content.headerRows;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:i,onClick:()=>{n.updateBlock(r,{content:{...r.content,headerRows:i?void 0:1}})},children:e.children})},l9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block});if(r===void 0||r.type!=="table"||!n.settings.tables.headers)return null;let i=!!r.content.headerCols;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:i,onClick:()=>{n.updateBlock(r,{content:{...r.content,headerCols:i?void 0:1}})},children:e.children})},c9t=e=>{let t=Qt(),n=dn();return f.jsx(t.Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-drag-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(o9t,{children:n.drag_handle.delete_menuitem}),f.jsx(s9t,{children:n.drag_handle.colors_menuitem}),f.jsx(a9t,{children:n.drag_handle.header_row_menuitem}),f.jsx(l9t,{children:n.drag_handle.header_column_menuitem})]})})},u9t=e=>{let t=Qt(),n=dn(),r=Zn(kl),i=Tr(kl,{selector:o=>o==null?void 0:o.block});if(i===void 0)return null;let s=e.dragHandleMenu||c9t;return f.jsxs(t.Generic.Menu.Root,{onOpenChange:o=>{o?r.freezeMenu():r.unfreezeMenu()},position:"left",children:[f.jsx(t.Generic.Menu.Trigger,{children:f.jsx(t.SideMenu.Button,{label:n.side_menu.drag_handle_label,draggable:!0,onDragStart:o=>r.blockDragStart(o,i),onDragEnd:r.blockDragEnd,className:"bn-button",icon:f.jsx(KRe,{size:24,"data-test":"dragHandle"})})}),f.jsx(s,{children:e.children})]})},d9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block}),i=O.useMemo(()=>{var o;if(r===void 0)return{};let s={"data-block-type":r.type};return r.type==="heading"&&(s["data-level"]=r.props.level.toString()),(o=n.schema.blockSpecs[r.type].implementation.meta)!=null&&o.fileBlockAccept&&(r.props.url?s["data-url"]="true":s["data-url"]="false"),s},[r,n.schema.blockSpecs]);return f.jsx(t.SideMenu.Root,{className:"bn-side-menu",...i,children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(i9t,{}),f.jsx(u9t,{dragHandleMenu:e.dragHandleMenu})]})})},h9t=e=>{let t=Ut(),{show:n,block:r}=Tr(kl,{selector:a=>a===void 0?void 0:{show:a.show,block:a.block}})||{},i=O.useCallback((a,l,c)=>{let u=!1;return py(a,l,()=>{var d;if(!u){u=!0;return}(d=t.getExtension(kl))==null||d.hideMenuIfNotFrozen()},{ancestorScroll:!0,ancestorResize:!1,elementResize:!1,layoutShift:!1})},[t]),s=O.useMemo(()=>{var a,l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:n,placement:"left-start",whileElementsMounted:i,...(a=e.floatingUIOptions)==null?void 0:a.useFloatingOptions},useDismissProps:{enabled:!1,...(l=e.floatingUIOptions)==null?void 0:l.useDismissProps},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:20},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[e.floatingUIOptions,n,i]),o=e.sideMenu||d9t;return f.jsx(i$e,{blockId:n?r==null?void 0:r.id:void 0,portalElement:e.portalElement,...s,children:(r==null?void 0:r.id)&&f.jsx(o,{})})};async function f9t(e,t){return(await a6t(e,t)).map(({id:n,onItemClick:r})=>({id:n,onItemClick:r,icon:n}))}function p9t(e){let t=Qt(),n=dn(),{items:r,loadingState:i,selectedIndex:s,onItemClick:o,columns:a}=e,l=i==="loading-initial"||i==="loading"?f.jsx(t.GridSuggestionMenu.Loader,{className:"bn-grid-suggestion-menu-loader",columns:a}):null,c=O.useMemo(()=>{let u=[];for(let d=0;d<r.length;d++){let h=r[d];u.push(f.jsx(t.GridSuggestionMenu.Item,{className:"bn-grid-suggestion-menu-item",item:h,id:`bn-grid-suggestion-menu-item-${d}`,isSelected:d===s,onClick:()=>o==null?void 0:o(h)},h.id))}return u},[t,r,o,s]);return f.jsxs(t.GridSuggestionMenu.Root,{id:"bn-grid-suggestion-menu",columns:a,className:"bn-grid-suggestion-menu",children:[l,c,c.length===0&&e.loadingState==="loaded"&&f.jsx(t.GridSuggestionMenu.EmptyItem,{className:"bn-grid-suggestion-menu-empty-item",columns:a,children:n.suggestion_menu.no_items_title})]})}function u$e(e,t,n,r=3){let i=O.useRef(0);O.useEffect(()=>{t!==void 0&&(e.length>0?i.current=t.length:t.length-i.current>r&&n())},[n,r,e.length,t])}function d$e(e,t){let[n,r]=O.useState([]),[i,s]=O.useState(!1),o=O.useRef(void 0),a=O.useRef(void 0);return O.useEffect(()=>{let l=e;o.current=e,s(!0),t(e).then(c=>{o.current===l&&(r(c),s(!1),a.current=l)})},[e,t]),{items:n||[],usedQuery:a.current,loadingState:a.current===void 0?"loading-initial":i?"loading":"loaded"}}function m9t(e,t,n,r,i){let s=Ug(e),[o,a]=O.useState(0);return O.useEffect(()=>{let l=c=>(c.key==="ArrowLeft"&&(c.preventDefault(),n.length&&a((o-1+n.length)%n.length)),c.key==="ArrowRight"&&(c.preventDefault(),n.length&&a((o+1+n.length)%n.length)),c.key==="ArrowUp"?(c.preventDefault(),n.length&&a((o-r+n.length)%n.length),!0):c.key==="ArrowDown"?(c.preventDefault(),n.length&&a((o+r)%n.length),!0):c.key==="Enter"&&!c.isComposing?(c.stopPropagation(),c.preventDefault(),n.length&&(i==null||i(n[o])),!0):!1);return s==null||s.addEventListener("keydown",l,!0),()=>{s==null||s.removeEventListener("keydown",l,!0)}},[s,n,o,i,r,r!==void 0&&r>1]),O.useEffect(()=>{a(0)},[t]),{selectedIndex:n.length===0?void 0:o}}function g9t(e){let t=Pl().setContentEditableProps,n=Ut(),{getItems:r,gridSuggestionMenuComponent:i,query:s,clearQuery:o,closeMenu:a,onItemClick:l,columns:c}=e,u=O.useCallback(y=>{a(),o(),l==null||l(y)},[l,a,o]),{items:d,usedQuery:h,loadingState:p}=d$e(s,r);u$e(d,h,a);let{selectedIndex:m}=m9t(n,s,d,c,u);return O.useEffect(()=>(t(y=>({...y,"aria-expanded":!0,"aria-controls":"bn-suggestion-menu"})),()=>{t(y=>({...y,"aria-expanded":!1,"aria-controls":void 0}))}),[t]),O.useEffect(()=>(t(y=>({...y,"aria-activedescendant":m?"bn-suggestion-menu-item-"+m:void 0})),()=>{t(y=>({...y,"aria-activedescendant":void 0}))}),[t,m]),f.jsx(i,{items:d,onItemClick:u,loadingState:p,selectedIndex:m,columns:c})}function v9t(e){let t=Ut(),n=Ug(),{triggerCharacter:r,gridSuggestionMenuComponent:i,columns:s,shouldOpen:o,minQueryLength:a,onItemClick:l,getItems:c}=e,u=O.useMemo(()=>l||(v=>{v.onItemClick(t)}),[t,l]),d=O.useMemo(()=>c||(async v=>await f9t(t,v)),[t,c]),h=Zn(bl);O.useEffect(()=>{h.addSuggestionMenu({triggerCharacter:r,shouldOpen:o})},[h,r,o]);let p=Tr(bl),m=Tr(bl,{selector:v=>({element:(n==null?void 0:n.firstChild)||void 0,getBoundingClientRect:()=>(v==null?void 0:v.referencePos)||new DOMRect})}),y=O.useMemo(()=>{var v,b,S;return{...e.floatingUIOptions,useFloatingOptions:{open:(p==null?void 0:p.show)&&(p==null?void 0:p.triggerCharacter)===r,onOpenChange:w=>{w||h.closeMenu()},placement:"bottom-start",middleware:[oc(10),s5e({allowedPlacements:["bottom-start","top-start"],padding:10}),Qg(),Bw({apply({elements:w,availableHeight:k}){w.floating.style.maxHeight=`${Math.max(0,k)}px`},padding:10})],...(v=e.floatingUIOptions)==null?void 0:v.useFloatingOptions},focusManagerProps:{disabled:!0,...(b=e.floatingUIOptions)==null?void 0:b.focusManagerProps},elementProps:{onMouseDownCapture:w=>w.preventDefault(),style:{zIndex:70},...(S=e.floatingUIOptions)==null?void 0:S.elementProps}}},[e.floatingUIOptions,p==null?void 0:p.show,p==null?void 0:p.triggerCharacter,h,r]);return!p||!p.ignoreQueryLength&&a&&(p.query.startsWith(" ")||p.query.length<a)?null:f.jsx(Yc,{reference:m,portalElement:e.portalElement,...y,children:r&&f.jsx(g9t,{query:p.query,closeMenu:h.closeMenu,clearQuery:h.clearQuery,getItems:d,columns:s,gridSuggestionMenuComponent:i||p9t,onItemClick:u})})}function y9t(e){let t=Qt(),n=dn(),{items:r,loadingState:i,selectedIndex:s,onItemClick:o}=e,a=i==="loading-initial"||i==="loading"?f.jsx(t.SuggestionMenu.Loader,{className:"bn-suggestion-menu-loader"}):null,l=O.useMemo(()=>{let c,u=[];for(let d=0;d<r.length;d++){let h=r[d];h.group!==c&&(c=h.group,u.push(f.jsx(t.SuggestionMenu.Label,{className:"bn-suggestion-menu-label",children:c},c))),u.push(f.jsx(t.SuggestionMenu.Item,{className:vr("bn-suggestion-menu-item",h.size==="small"?"bn-suggestion-menu-item-small":""),item:h,id:`bn-suggestion-menu-item-${d}`,isSelected:d===s,onClick:()=>o==null?void 0:o(h)},h.title))}return u},[t,r,o,s]);return f.jsxs(t.SuggestionMenu.Root,{id:"bn-suggestion-menu",className:"bn-suggestion-menu",children:[l,l.length===0&&(e.loadingState==="loading"||e.loadingState==="loaded")&&f.jsx(t.SuggestionMenu.EmptyItem,{className:"bn-suggestion-menu-item",children:n.suggestion_menu.no_items_title}),a]})}function b9t(e,t){let[n,r]=O.useState(0);return{selectedIndex:n,setSelectedIndex:r,handler:i=>{if(i.key==="ArrowUp")return i.preventDefault(),e.length&&r((n-1+e.length)%e.length),!0;if(i.key==="ArrowDown")return i.preventDefault(),e.length&&r((n+1)%e.length),!0;if(i.key==="PageUp")return i.preventDefault(),e.length&&r(0),!0;if(i.key==="PageDown")return i.preventDefault(),e.length&&r(e.length-1),!0;let s=x9t(i)?i.nativeEvent.isComposing:i.isComposing;return i.key==="Enter"&&!s?(i.preventDefault(),i.stopPropagation(),e.length&&(t==null||t(e[n])),!0):!1}}}function x9t(e){return e.nativeEvent!==void 0}function w9t(e,t,n,r,i){let s=Ug(),{selectedIndex:o,setSelectedIndex:a,handler:l}=b9t(n,r);return O.useEffect(()=>{let c=s;return c==null||c.addEventListener("keydown",l,!0),()=>{c==null||c.removeEventListener("keydown",l,!0)}},[s,n,o,r,i,l]),O.useEffect(()=>{a(0)},[t,a]),{selectedIndex:n.length===0?void 0:o}}function O9t(e){let t=Pl().setContentEditableProps,n=Ut(),{getItems:r,suggestionMenuComponent:i,query:s,clearQuery:o,closeMenu:a,onItemClick:l}=e,c=O.useCallback(m=>{a(),o(),l==null||l(m)},[l,a,o]),{items:u,usedQuery:d,loadingState:h}=d$e(s,r);u$e(u,d,a);let{selectedIndex:p}=w9t(n,s,u,c);return O.useEffect(()=>(t(m=>({...m,"aria-expanded":!0,"aria-controls":"bn-suggestion-menu"})),()=>{t(m=>({...m,"aria-expanded":!1,"aria-controls":void 0}))}),[t]),O.useEffect(()=>(t(m=>({...m,"aria-activedescendant":p?"bn-suggestion-menu-item-"+p:void 0})),()=>{t(m=>({...m,"aria-activedescendant":void 0}))}),[t,p]),f.jsx(i,{items:u,onItemClick:c,loadingState:h,selectedIndex:p})}var S9t={heading:Ej,heading_2:Cj,heading_3:_j,heading_4:qRe,heading_5:HRe,heading_6:FRe,toggle_heading:Ej,toggle_heading_2:Cj,toggle_heading_3:_j,quote:LRe,toggle_list:DRe,numbered_list:BRe,bullet_list:IRe,check_list:zRe,paragraph:MX,table:z7t,image:L7t,video:I7t,audio:R7t,file:tQt,emoji:_7t,code_block:X7t,divider:C7t};function h$e(e){return Z3t(e).map(t=>{let n=S9t[t.key];return{...t,icon:f.jsx(n,{size:18})}})}function f$e(e){let t=Ut(),n=Ug(),{triggerCharacter:r,suggestionMenuComponent:i,shouldOpen:s,minQueryLength:o,onItemClick:a,getItems:l}=e,c=O.useMemo(()=>a||(y=>{y.onItemClick(t)}),[t,a]),u=O.useMemo(()=>l||(async y=>DNe(h$e(t),y)),[t,l]),d=Zn(bl);O.useEffect(()=>{d.addSuggestionMenu({triggerCharacter:r,shouldOpen:s})},[d,r,s]);let h=Tr(bl),p=Tr(bl,{selector:y=>({element:(n==null?void 0:n.firstChild)||void 0,getBoundingClientRect:()=>(y==null?void 0:y.referencePos)||new DOMRect})}),m=O.useMemo(()=>{var y,v,b;return{...e.floatingUIOptions,useFloatingOptions:{open:(h==null?void 0:h.show)&&(h==null?void 0:h.triggerCharacter)===r,onOpenChange:S=>{S||d.closeMenu()},placement:"bottom-start",middleware:[oc(10),s5e({allowedPlacements:["bottom-start","top-start"],padding:10}),Qg(),Bw({apply({elements:S,availableHeight:w}){S.floating.style.maxHeight=`${Math.max(0,w)}px`},padding:10})],...(y=e.floatingUIOptions)==null?void 0:y.useFloatingOptions},focusManagerProps:{disabled:!0,...(v=e.floatingUIOptions)==null?void 0:v.focusManagerProps},elementProps:{onMouseDownCapture:S=>S.preventDefault(),style:{zIndex:80},...(b=e.floatingUIOptions)==null?void 0:b.elementProps}}},[e.floatingUIOptions,h==null?void 0:h.show,h==null?void 0:h.triggerCharacter,d,r]);return!h||!h.ignoreQueryLength&&o&&(h.query.startsWith(" ")||h.query.length<o)?null:f.jsx(Yc,{reference:p,portalElement:e.portalElement,...m,children:r&&f.jsx(O9t,{query:h.query,closeMenu:d.closeMenu,clearQuery:d.clearQuery,getItems:u,suggestionMenuComponent:i||y9t,onItemClick:c})})}var k9t=(e,t=.3)=>{let n=Math.floor(e)+t,r=Math.ceil(e)-t;return e>=n&&e<=r?Math.round(e):e<n?Math.floor(e):Math.ceil(e)},_9t=e=>{let t=Qt(),n=Ut(),r=Zn(yr),i=Tr(yr,{selector:u=>u==null?void 0:u.block}),s=O.useRef(!1),[o,a]=O.useState(),l=O.useCallback(u=>{r.freezeHandles(),e.hideOtherElements(!0),i&&(a({originalContent:i.content,originalCroppedContent:{rows:r.cropEmptyRowsOrColumns(i,e.orientation==="addOrRemoveColumns"?"columns":"rows")},startPos:e.orientation==="addOrRemoveColumns"?u.clientX:u.clientY}),s.current=!1,u.preventDefault())},[i,e,r]),c=O.useCallback(()=>{!i||s.current||n.updateBlock(i,{type:"table",content:{...i.content,rows:e.orientation==="addOrRemoveColumns"?r.addRowsOrColumns(i,"columns",1):r.addRowsOrColumns(i,"rows",1)}})},[i,n,e.orientation,r]);return O.useEffect(()=>{let u=d=>{var b,S;if(!i)return;if(!o)throw Error("editingState is undefined");s.current=!0;let h=(e.orientation==="addOrRemoveColumns"?d.clientX:d.clientY)-o.startPos,p=e.orientation==="addOrRemoveColumns"?((b=o.originalCroppedContent.rows[0])==null?void 0:b.cells.length)??0:o.originalCroppedContent.rows.length,m=e.orientation==="addOrRemoveColumns"?((S=o.originalContent.rows[0])==null?void 0:S.cells.length)??0:o.originalContent.rows.length,y=e.orientation==="addOrRemoveColumns"?i.content.rows[0].cells.length:i.content.rows.length,v=m+k9t(h/(e.orientation==="addOrRemoveColumns"?A3t:N3t),.3);v>=p&&v>0&&v!==y&&(n.updateBlock(i,{type:"table",content:{...i.content,rows:e.orientation==="addOrRemoveColumns"?r.addRowsOrColumns({type:"table",content:o.originalCroppedContent},"columns",v-p):r.addRowsOrColumns({type:"table",content:o.originalCroppedContent},"rows",v-p)}}),i.content&&n.setTextCursorPosition(i))};return o&&window.addEventListener("mousemove",u),()=>{window.removeEventListener("mousemove",u)}},[i,o,n,e.orientation,r]),O.useEffect(()=>{let u=()=>{e.hideOtherElements(!1),r.unfreezeHandles(),a(void 0)};return o&&window.addEventListener("mouseup",u),()=>{window.removeEventListener("mouseup",u)}},[o,e,r]),n.isEditable?f.jsx(t.TableHandle.ExtendButton,{className:vr("bn-extend-button",e.orientation==="addOrRemoveColumns"?"bn-extend-button-add-remove-columns":"bn-extend-button-add-remove-rows",o===null?"":"bn-extend-button-editing"),onClick:c,onMouseDown:l,children:e.children||f.jsx(N7t,{size:18,"data-test":"extendButton"})}):null},C9t=e=>{var c,u;let t=Qt(),n=dn(),r=Ut(),{block:i,colIndex:s,rowIndex:o}=Tr(yr,{selector:d=>({block:d==null?void 0:d.block,colIndex:d==null?void 0:d.colIndex,rowIndex:d==null?void 0:d.rowIndex})}),a=(d,h)=>{if(i===void 0||s===void 0||o===void 0)return;let p=i.content.rows.map(m=>({...m,cells:m.cells.map(y=>Ff(y))}));h==="text"?p[o].cells[s].props.textColor=d:p[o].cells[s].props.backgroundColor=d,r.updateBlock(i,{type:"table",content:{...i.content,rows:p}}),r.setTextCursorPosition(i)};if(i===void 0||s===void 0||o===void 0)return null;let l=(u=(c=i.content.rows[o])==null?void 0:c.cells)==null?void 0:u[s];return!l||r.settings.tables.cellTextColor===!1&&r.settings.tables.cellBackgroundColor===!1?null:f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children||n.drag_handle.colors_menuitem})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:r.settings.tables.cellTextColor?{color:Hf(l)?l.props.textColor:"default",setColor:d=>a(d,"text")}:void 0,background:r.settings.tables.cellBackgroundColor?{color:Hf(l)?l.props.backgroundColor:"default",setColor:d=>a(d,"background")}:void 0})})]})},E9t=()=>{var l,c;let e=Qt(),t=dn(),n=Ut(),r=Zn(yr),{block:i,colIndex:s,rowIndex:o}=Tr(yr,{selector:u=>({block:u==null?void 0:u.block,colIndex:u==null?void 0:u.colIndex,rowIndex:u==null?void 0:u.rowIndex})});if(i===void 0||s===void 0||o===void 0)return null;let a=(c=(l=i.content.rows[o])==null?void 0:l.cells)==null?void 0:c[s];return!a||!Hf(a)||pO(a)===1&&mg(a)===1||!n.settings.tables.splitCells?null:f.jsx(e.Generic.Menu.Item,{onClick:()=>{r.splitCell({row:o,col:s})},children:t.table_handle.split_cell_menuitem})},T9t=e=>f.jsx(Qt().Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-table-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(E9t,{}),f.jsx(C9t,{})]})}),j9t=e=>{let t=Qt(),n=Ut(),r=Zn(yr),i=e.tableCellMenu||T9t;return!n.settings.tables.splitCells&&!n.settings.tables.cellBackgroundColor&&!n.settings.tables.cellTextColor?null:f.jsxs(t.Generic.Menu.Root,{onOpenChange:s=>{s?(r.freezeHandles(),e.hideOtherElements(!0)):(r.unfreezeHandles(),e.hideOtherElements(!1),n.focus())},position:"right",children:[f.jsx(t.Generic.Menu.Trigger,{children:f.jsx(t.Generic.Menu.Button,{className:"bn-table-cell-handle",children:e.children||f.jsx(hQt,{size:12,"data-test":"tableCellHandle"})})}),f.jsx(i,{})]})},k0e=e=>{let t=Qt(),n=dn(),r=Zn(yr),i=Tr(yr,{selector:s=>e.orientation==="column"?s==null?void 0:s.colIndex:s==null?void 0:s.rowIndex});return r===void 0||i===void 0?null:f.jsx(t.Generic.Menu.Item,{onClick:()=>{r.addRowOrColumn(i,e.orientation==="row"?{orientation:"row",side:e.side}:{orientation:"column",side:e.side})},children:n.table_handle[`add_${e.side}_menuitem`]})},P9t=e=>{let t=Qt(),n=dn(),r=Zn(yr),i=Tr(yr,{selector:s=>e.orientation==="column"?s==null?void 0:s.colIndex:s==null?void 0:s.rowIndex});return r===void 0||i===void 0?null:f.jsx(t.Generic.Menu.Item,{onClick:()=>r.removeRowOrColumn(i,e.orientation),children:e.orientation==="row"?n.table_handle.delete_row_menuitem:n.table_handle.delete_column_menuitem})},M9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),{block:s,index:o}=Tr(yr,{selector:u=>({block:u==null?void 0:u.block,index:e.orientation==="column"?u==null?void 0:u.colIndex:u==null?void 0:u.rowIndex})}),a=O.useMemo(()=>i===void 0||s===void 0||o===void 0?[]:e.orientation==="row"?i.getCellsAtRowHandle(s,o):i.getCellsAtColumnHandle(s,o),[s,o,e.orientation,i]),l=(u,d)=>{if(s===void 0)return;let h=s.content.rows.map(p=>({...p,cells:p.cells.map(m=>Ff(m))}));a.forEach(({row:p,col:m})=>{d==="text"?h[p].cells[m].props.textColor=u:h[p].cells[m].props.backgroundColor=u}),r.updateBlock(s,{type:"table",content:{...s.content,rows:h}}),r.setTextCursorPosition(s)};if(!a||!a[0]||!i||r.settings.tables.cellTextColor===!1&&r.settings.tables.cellBackgroundColor===!1)return null;let c=Ff(a[0].cell);return f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children||n.drag_handle.colors_menuitem})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:r.settings.tables.cellTextColor?{color:a.every(({cell:u})=>Hf(u)&&u.props.textColor===c.props.textColor)?c.props.textColor:"default",setColor:u=>{l(u,"text")}}:void 0,background:r.settings.tables.cellBackgroundColor?{color:a.every(({cell:u})=>Hf(u)&&u.props.backgroundColor===c.props.backgroundColor)?c.props.backgroundColor:"default",setColor:u=>l(u,"background")}:void 0})})]})},A9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),{block:s,index:o}=Tr(yr,{selector:l=>({block:l==null?void 0:l.block,index:e.orientation==="column"?l==null?void 0:l.colIndex:l==null?void 0:l.rowIndex})});if(i===void 0||s===void 0||o!==0||e.orientation!=="row"||!r.settings.tables.headers)return null;let a=!!s.content.headerRows;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:a,onClick:()=>{r.updateBlock(s,{...s,content:{...s.content,headerRows:a?void 0:1}})},children:n.drag_handle.header_row_menuitem})},N9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),s=Tr(yr,{selector:l=>l==null?void 0:l.block}),o=Tr(yr,{selector:l=>e.orientation==="column"?l==null?void 0:l.colIndex:l==null?void 0:l.rowIndex});if(!i||o!==0||!s||e.orientation!=="column"||!r.settings.tables.headers)return null;let a=!!s.content.headerCols;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:a,onClick:()=>{r.updateBlock(s,{...s,content:{...s.content,headerCols:a?void 0:1}})},children:n.drag_handle.header_column_menuitem})},R9t=e=>f.jsx(Qt().Generic.Menu.Dropdown,{className:"bn-table-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(P9t,{orientation:e.orientation}),f.jsx(k0e,{orientation:e.orientation,side:e.orientation==="row"?"above":"left"}),f.jsx(k0e,{orientation:e.orientation,side:e.orientation==="row"?"below":"right"}),f.jsx(A9t,{orientation:e.orientation}),f.jsx(N9t,{orientation:e.orientation}),f.jsx(M9t,{orientation:e.orientation})]})}),$9t=e=>{let t=Ut(),n=Qt(),[r,i]=O.useState(!1),s=e.tableHandleMenu||R9t,o=Zn(yr),a=Tr(yr),l=O.useMemo(()=>!o||!a||!a.block||a.block.type!=="table"?!1:e.orientation==="column"?o.getCellsAtColumnHandle(a.block,a.colIndex).every(({cell:c})=>mg(c)===1):o.getCellsAtRowHandle(a.block,a.rowIndex).every(({cell:c})=>pO(c)===1),[e.orientation,a,o]);return a?f.jsxs(n.Generic.Menu.Root,{onOpenChange:c=>{c?(o.freezeHandles(),e.hideOtherElements(!0)):(o.unfreezeHandles(),e.hideOtherElements(!1),t.focus())},position:"right",children:[f.jsx(n.Generic.Menu.Trigger,{children:f.jsx(n.TableHandle.Root,{className:vr("bn-table-handle",r?"bn-table-handle-dragging":"",l?"":"bn-table-handle-not-draggable"),draggable:l,onDragStart:c=>{i(!0),e.hideOtherElements(!0),e.orientation==="column"?o.colDragStart(c):o.rowDragStart(c)},onDragEnd:()=>{o.dragEnd(),e.hideOtherElements(!1),i(!1)},style:e.orientation==="column"?{transform:"rotate(0.25turn)"}:void 0,children:e.children||f.jsx(KRe,{size:24,"data-test":"tableHandle"})})}),f.jsx(s,{orientation:e.orientation})]}):null},D9t=e=>{let t=Ut(),[n,r]=O.useState(),i=Tr(yr),s=O.useMemo(()=>{let d={};if(i===void 0)return{};let h=So(i.block.id,t.prosemirrorState.doc);if(!h)return{};let p=h.posBeforeNode+1,m=t.prosemirrorView.domAtPos(p+1).node;if(!(m instanceof Element))return{};if(d.tableReference={element:m},i.rowIndex===void 0||i.colIndex===void 0)return d;let y=t.prosemirrorState.doc.resolve(p+1).posAtIndex(i.rowIndex),v=t.prosemirrorState.doc.resolve(y+1).posAtIndex(i.colIndex),b=t.prosemirrorView.domAtPos(v+1).node;return b instanceof Element?(d.cellReference={element:b},d.rowReference={element:m,getBoundingClientRect:()=>{let S=m.getBoundingClientRect(),w=b.getBoundingClientRect();return new DOMRect(S.x,i.draggingState&&i.draggingState.draggedCellOrientation==="row"?i.draggingState.mousePos-w.height/2:w.y,S.width,w.height)}},d.columnReference={element:m,getBoundingClientRect:()=>{let S=m.getBoundingClientRect(),w=b.getBoundingClientRect();return new DOMRect(i.draggingState&&i.draggingState.draggedCellOrientation==="col"?i.draggingState.mousePos-w.width/2:w.x,S.y,w.width,S.height)}},d):{}},[t,i]),o=O.useCallback((d,h,p)=>{let m=!1;return py(d,h,()=>{var y;if(!m){m=!0;return}(y=t.getExtension(yr))==null||y.hideHandlesIfNotFrozen()},{ancestorScroll:!0,ancestorResize:!1,elementResize:!1,layoutShift:!1})},[t]),a=O.useMemo(()=>i===void 0?void 0:{rowTableHandle:{useFloatingOptions:{open:i.show&&i.rowIndex!==void 0&&(!n||n==="rowTableHandle"),placement:"left",middleware:[oc(-10)],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},columnTableHandle:{useFloatingOptions:{open:i.show&&i.colIndex!==void 0&&(!n||n==="columnTableHandle"),placement:"top",middleware:[oc(-12)],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},tableCellHandle:{useFloatingOptions:{open:i.show&&i.rowIndex!==void 0&&i.colIndex!==void 0&&(!n||n==="tableCellHandle"),placement:"top-end",middleware:[oc({mainAxis:-15,crossAxis:-1})],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},extendRowsButton:{useFloatingOptions:{open:i.show&&i.showAddOrRemoveRowsButton&&(!n||n==="extendRowsButton"),placement:"bottom",whileElementsMounted:o,middleware:[Bw({apply({rects:d,elements:h}){Object.assign(h.floating.style,{width:`${d.reference.width}px`})}})]},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},extendColumnsButton:{useFloatingOptions:{open:i.show&&i.showAddOrRemoveColumnsButton&&(!n||n==="extendColumnsButton"),placement:"right",whileElementsMounted:o,middleware:[Bw({apply({rects:d,elements:h}){Object.assign(h.floating.style,{height:`${d.reference.height}px`})}})]},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}}},[n,i,o]);if(!i)return null;let l=e.tableHandle||$9t,c=e.extendButton||_9t,u=e.tableCellHandle||j9t;return f.jsxs(f.Fragment,{children:[f.jsx(Yc,{reference:s==null?void 0:s.rowReference,portalElement:e.portalElement,...a==null?void 0:a.rowTableHandle,children:i.show&&i.rowIndex!==void 0&&(!n||n==="rowTableHandle")&&f.jsx(l,{orientation:"row",hideOtherElements:d=>r(d?"rowTableHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.columnReference,portalElement:e.portalElement,...a==null?void 0:a.columnTableHandle,children:i.show&&i.colIndex!==void 0&&(!n||n==="columnTableHandle")&&f.jsx(l,{orientation:"column",hideOtherElements:d=>r(d?"columnTableHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.cellReference,portalElement:e.portalElement,...a==null?void 0:a.tableCellHandle,children:i.show&&i.rowIndex!==void 0&&i.colIndex!==void 0&&(!n||n==="tableCellHandle")&&f.jsx(u,{hideOtherElements:d=>r(d?"tableCellHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.tableReference,portalElement:e.portalElement,...a==null?void 0:a.extendRowsButton,children:i.show&&i.showAddOrRemoveRowsButton&&(!n||n==="extendRowsButton")&&f.jsx(c,{orientation:"addOrRemoveRows",hideOtherElements:d=>r(d?"extendRowsButton":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.tableReference,portalElement:e.portalElement,...a==null?void 0:a.extendColumnsButton,children:i.show&&i.showAddOrRemoveColumnsButton&&(!n||n==="extendColumnsButton")&&f.jsx(c,{orientation:"addOrRemoveColumns",hideOtherElements:d=>r(d?"extendColumnsButton":void 0)})})]})};function ud(e){if(e!==void 0){if(e===null)return typeof document<"u"?document.body:void 0;if(typeof e=="string"){if(typeof document>"u")return;let t=document.querySelector(e);if(!t){console.warn(`[BlockNote] portalElements selector "${e}" did not match any element`);return}return t}return e}}var L9t=O.lazy(()=>dy(()=>import("./FloatingComposerController-5A3GJtK4-CmhhFjZ3.js"),[]).then(e=>e.n)),I9t=O.lazy(()=>dy(()=>Promise.resolve().then(()=>uQt),void 0).then(e=>e.n));function B9t(e){let t=Ut();if(!t)throw Error("BlockNoteDefaultUI must be used within a BlockNoteContext.Provider");let n=e.portalElements,r=ud(n==null?void 0:n.formattingToolbar),i=ud(n==null?void 0:n.linkToolbar),s=ud(n==null?void 0:n.slashMenu),o=ud(n==null?void 0:n.emojiPicker),a=ud(n==null?void 0:n.sideMenu),l=ud(n==null?void 0:n.filePanel),c=ud(n==null?void 0:n.tableHandles),u=ud(n==null?void 0:n.comments);return f.jsxs(f.Fragment,{children:[t.getExtension(ll)&&e.formattingToolbar!==!1&&f.jsx(c$e,{portalElement:r}),t.getExtension(GS)&&e.linkToolbar!==!1&&f.jsx(r9t,{portalElement:i}),t.getExtension(bl)&&e.slashMenu!==!1&&f.jsx(f$e,{triggerCharacter:"/",shouldOpen:d=>!d.selection.$from.parent.type.isInGroup("tableContent"),portalElement:s}),t.getExtension(bl)&&e.emojiPicker!==!1&&f.jsx(v9t,{triggerCharacter:":",columns:10,minQueryLength:2,portalElement:o}),t.getExtension(kl)&&e.sideMenu!==!1&&f.jsx(h9t,{portalElement:a}),t.getExtension(ec)&&e.filePanel!==!1&&f.jsx(PQt,{portalElement:l}),t.getExtension(yr)&&e.tableHandles!==!1&&f.jsx(D9t,{portalElement:c}),t.getExtension(Kd)&&e.comments!==!1&&f.jsxs(O.Suspense,{children:[f.jsx(L9t,{portalElement:u}),f.jsx(I9t,{portalElement:u})]})]})}function z9t(e,t){let n=Pl();t||(t=n==null?void 0:n.editor),O.useEffect(()=>{if(!t)throw Error("'editor' is required, either from BlockNoteContext or as a function argument");return t.onChange(e)},[e,t])}function Q9t(e,t,n){let r=Pl();t||(t=r==null?void 0:r.editor),O.useEffect(()=>{if(!t)throw Error("'editor' is required, either from BlockNoteContext or as a function argument");return t.onSelectionChange(e,n)},[e,t,n])}var p$e=()=>{let e=O.useMemo(()=>{var o;return(o=window.matchMedia)==null?void 0:o.call(window,"(prefers-color-scheme: dark)")},[]),t=O.useMemo(()=>{var o;return(o=window.matchMedia)==null?void 0:o.call(window,"(prefers-color-scheme: light)")},[]),n=e==null?void 0:e.matches,r=t==null?void 0:t.matches,[i,s]=O.useState(n?"dark":r?"light":"no-preference");return O.useEffect(()=>{s(n?"dark":r?"light":"no-preference")},[n,r]),O.useEffect(()=>{if(typeof(e==null?void 0:e.addEventListener)=="function"){let o=({matches:l})=>l&&s("dark"),a=({matches:l})=>l&&s("light");return e==null||e.addEventListener("change",o),t==null||t.addEventListener("change",a),()=>{e==null||e.removeEventListener("change",o),t==null||t.removeEventListener("change",a)}}else{let o=()=>s(e.matches?"dark":t.matches?"light":"no-preference");return e==null||e.addEventListener("change",o),t==null||t.addEventListener("change",o),()=>{e==null||e.removeEventListener("change",o),t==null||t.removeEventListener("change",o)}}},[e,t]),i},m$e=O.createContext(void 0);function F9t(){return O.useContext(m$e)}function H9t(){let e=new Set,t={};return{subscribe(n){return e.add(n),()=>{e.delete(n)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(n,r){t={...t,[n]:vn.createPortal(r.reactElement,r.element,n)},e.forEach(i=>i())},removeRenderer(n){let r={...t};delete r[n],t=r,e.forEach(i=>i())}}}var q9t=({contentComponent:e})=>{let t=O.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getServerSnapshot);return f.jsx(f.Fragment,{children:Object.values(t)})},V9t=O.forwardRef((e,t)=>{let[n,r]=O.useState();return O.useImperativeHandle(t,()=>(i,s)=>{vn.flushSync(()=>{r({node:i,container:s})}),r(void 0)},[]),f.jsx(f.Fragment,{children:n&&vn.createPortal(n.node,n.container)})}),_0e=()=>{};function W9t(e,t){let{editor:n,className:r,theme:i,children:s,editable:o,onSelectionChange:a,onChange:l,formattingToolbar:c,linkToolbar:u,slashMenu:d,emojiPicker:h,sideMenu:p,filePanel:m,tableHandles:y,comments:v,portalElements:b,autoFocus:S,renderEditor:w=!0,...k}=e,E=O.useMemo(()=>ud(b==null?void 0:b.default)??null,[b==null?void 0:b.default]),[C,T]=O.useState(),j=Pl(),P=p$e(),A=(j==null?void 0:j.colorSchemePreference)||P,R=i||(A==="dark"?"dark":"light"),N=Qt(),D=O.useMemo(()=>({formattingToolbar:N?c:!1,linkToolbar:N?u:!1,sideMenu:N?p:!1,slashMenu:N?d:!1,filePanel:N?m:!1,tableHandles:N?y:!1,emojiPicker:N?h:!1,comments:N?v:!1,portalElements:b}),[v,N,h,m,c,u,p,d,y,b]);z9t(l||_0e,n),Q9t(a||_0e,n);let $=O.useCallback(V=>{n.elementRenderer=V},[n]);O.useEffect(()=>{if(!n.portalElement)throw Error("Portal element not found");n.portalElement.className=vr("bn-root",R,r||""),n.portalElement.setAttribute("data-color-scheme",R)},[n,R,r]);let I=O.useMemo(()=>({...j,editor:n,setContentEditableProps:T,colorSchemePreference:R}),[j,n,R]),H=O.useMemo(()=>({editorProps:{autoFocus:S,contentEditableProps:C,editable:o,portalTarget:E},defaultUIProps:D}),[S,C,o,D,E]);return f.jsx(TRe.Provider,{value:I,children:f.jsxs(m$e.Provider,{value:H,children:[f.jsx(V9t,{ref:$}),f.jsx(U9t,{className:r,renderEditor:w,editorColorScheme:R,ref:t,...k,children:s})]})})}var U9t=Kr.forwardRef(({className:e,renderEditor:t,editorColorScheme:n,children:r,...i},s)=>f.jsx("div",{className:vr("bn-root","bn-container",n,e),"data-color-scheme":n,...i,ref:s,children:t?f.jsx(Z9t,{children:r}):r})),X9t=Kr.forwardRef(W9t),Z9t=e=>{let t=F9t(),n=Ut(),r=O.useMemo(()=>H9t(),[]),i=t.editorProps.portalTarget,s=O.useCallback(o=>{n.isEditable=t.editorProps.editable!==!1,n._tiptapEditor.contentComponent=r,o?n.mount(o,{portalTarget:i}):n.unmount()},[t.editorProps.editable,n,r,i]);return f.jsxs(f.Fragment,{children:[f.jsx(q9t,{contentComponent:r}),f.jsx(G9t,{...t.editorProps,...e,mount:s}),f.jsx(B9t,{...t.defaultUIProps}),e.children]})},G9t=e=>{let{autoFocus:t,mount:n,contentEditableProps:r}=e;return f.jsx("div",{"aria-autocomplete":"list","aria-haspopup":"listbox","data-bn-autofocus":t,ref:n,...r})};function C0e(e,t){let n,r=document.createElement("div"),i;if(t!=null&&t.elementRenderer)t.elementRenderer(e(l=>n=l||void 0),r);else{if(!(t!=null&&t.headless))throw Error("elementRenderer not available, expected headless editor");i=fxe.createRoot(r),vn.flushSync(()=>{i.render(e(l=>n=l||void 0))})}if(!r.childElementCount)return console.warn("ReactInlineContentSpec: renderHTML() failed"),{dom:document.createElement("span")};n==null||n.setAttribute("data-tmp-find","true");let s=r.cloneNode(!0),o=s.firstElementChild,a=s.querySelector("[data-tmp-find]");return a==null||a.removeAttribute("data-tmp-find"),i==null||i.unmount(),{dom:o,contentDOM:a||void 0}}function Mz(e){var t;return f.jsx(xQt,{onDragOver:n=>n.preventDefault(),...Object.fromEntries(Object.entries(e.domAttributes||{}).filter(([n])=>n!=="class")),className:vr("bn-block-content",((t=e.domAttributes)==null?void 0:t.class)||""),"data-content-type":e.blockType,...Object.fromEntries(Object.entries(e.blockProps).filter(([n,r])=>r!==e.propSchema[n].default).map(([n,r])=>[mO(n),r])),"data-file-block":e.isFileBlock===!0||void 0,children:e.children})}function g$e(e,t,n){return(r={})=>{let i=typeof e=="function"?e(r):e,s=typeof t=="function"?t(r):t;return{config:i,implementation:{...s,toExternalHTML(a,l,c){let u=s.toExternalHTML||s.render;return C0e(d=>{var h;return f.jsx(Mz,{blockType:a.type,blockProps:a.props,propSchema:i.propSchema,domAttributes:this.blockContentDOMAttributes,isFileBlock:((h=s.meta)==null?void 0:h.fileBlockAccept)!==void 0,children:f.jsx(u,{block:a,editor:l,contentRef:p=>{d(p),p&&(p.className=vr("bn-inline-content",p.className))},context:c})})},l)},render(a,l){if(this.renderType==="nodeView")return CQt(c=>{var p;let u=mNe(c.getPos,l,c.editor,i.type),d=t$e().nodeViewContentRef;if(!d)throw Error("nodeViewContentRef is not set");let h=s.render;return f.jsx(Mz,{blockType:u.type,blockProps:u.props,propSchema:i.propSchema,isFileBlock:!!((p=s.meta)!=null&&p.fileBlockAccept),domAttributes:this.blockContentDOMAttributes,children:f.jsx(h,{block:u,editor:l,contentRef:m=>{d(m),m&&(m.className=vr("bn-inline-content",m.className),m.dataset.nodeViewContent="")}})})},{className:"bn-react-node-view-renderer"})(this.props);{let c=s.render;return C0e(u=>f.jsx(Mz,{blockType:a.type,blockProps:a.props,propSchema:i.propSchema,domAttributes:this.blockContentDOMAttributes,children:f.jsx(c,{block:a,editor:l,contentRef:d=>{u(d),d&&(d.className=vr("bn-inline-content",d.className))}})}),l)}}},extensions:void 0}}}Kr.memo(({thread:e,selectedThreadId:t,maxCommentsBeforeCollapse:n,referenceText:r,orphaned:i})=>{let s=Zn(Kd),o=O.useCallback(l=>{l.target.closest(".bn-action-toolbar")||s.selectThread(e.id)},[s,e.id]),a=O.useCallback(l=>{if(!l.relatedTarget||l.relatedTarget.closest(".bn-action-toolbar"))return;let c=l.target instanceof Node?l.target:null,u=l.relatedTarget instanceof Node?l.relatedTarget.closest(".bn-thread"):null;(!c||!u||!u.contains(c))&&s.selectThread(void 0)},[s]);return f.jsx(AX,{thread:e,selected:e.id===t,orphaned:i,referenceText:r,maxCommentsBeforeCollapse:n,onFocus:o,onBlur:a,tabIndex:0})});function v$e(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.top<r.top,s=n.bottom>r.bottom;return i&&s?"both":i?"top":s?"bottom":"none"}function Y9t(e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}function mu(e){return Object.keys(e)}function Az(e){return e&&typeof e=="object"&&!Array.isArray(e)}function RX(e,t){const n={...e},r=t;return Az(e)&&Az(t)&&Object.keys(t).forEach(i=>{Az(r[i])&&i in e?n[i]=RX(n[i],r[i]):n[i]=r[i]}),n}function K9t(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function J9t(e){var t;return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:(t=e.match(/^calc\((.*?)\)$/))==null?void 0:t[1].split("*")[0].trim()}function eFt(e){const t=J9t(e);return typeof t=="number"?t:typeof t=="string"?t.includes("calc")||t.includes("var")?t:t.includes("px")?Number(t.replace("px","")):t.includes("rem")?Number(t.replace("rem",""))*16:t.includes("em")?Number(t.replace("em",""))*16:Number(t):NaN}function E0e(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function y$e(e,{shouldScale:t=!1}={}){function n(r){if(r===0||r==="0")return`0${e}`;if(typeof r=="number"){const i=`${r/16}${e}`;return t?E0e(i):i}if(typeof r=="string"){if(r===""||r.startsWith("calc(")||r.startsWith("clamp(")||r.includes("rgba("))return r;if(r.includes(","))return r.split(",").map(s=>n(s)).join(",");if(r.includes(" "))return r.split(" ").map(s=>n(s)).join(" ");const i=r.replace("px","");if(!Number.isNaN(Number(i))){const s=`${Number(i)/16}${e}`;return t?E0e(s):s}}return r}return n}const ot=y$e("rem",{shouldScale:!0}),T0e=y$e("em");function VM(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[n]=e[n]),t),{})}function b$e(e){if(typeof e=="number")return!0;if(typeof e=="string"){if(e.startsWith("calc(")||e.startsWith("var(")||e.includes(" ")&&e.trim()!=="")return!0;const t=/^[+-]?[0-9]+(\.[0-9]+)?(px|em|rem|ex|ch|lh|rlh|vw|vh|vmin|vmax|vb|vi|svw|svh|lvw|lvh|dvw|dvh|cm|mm|in|pt|pc|q|cqw|cqh|cqi|cqb|cqmin|cqmax|%)?$/;return e.trim().split(/\s+/).every(n=>t.test(n))}return!1}function x$e(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==O.Fragment:!1}function WM(e){const t=O.createContext(null);return[t,()=>{const r=O.use(t);if(r===null)throw new Error(e);return r}]}function j0e(e,t){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(t);return`${e}-${n}`}}function Tj(e,t){let n=e;for(;(n=n.parentElement)&&!n.matches(t););return n}function P0e(e,t,n){for(let r=e-1;r>=0;r-=1)if(!t[r].disabled)return r;if(n){for(let r=t.length-1;r>-1;r-=1)if(!t[r].disabled)return r}return e}function M0e(e,t,n){for(let r=e+1;r<t.length;r+=1)if(!t[r].disabled)return r;if(n){for(let r=0;r<t.length;r+=1)if(!t[r].disabled)return r}return e}function tFt(e,t,n){return Tj(e,n)===Tj(t,n)}function UM({parentSelector:e,siblingSelector:t,onKeyDown:n,loop:r=!0,activateOnFocus:i=!1,dir:s="rtl",orientation:o}){return a=>{var m,y,v;n==null||n(a);const l=Array.from(((m=Tj(a.currentTarget,e))==null?void 0:m.querySelectorAll(t))||[]).filter(b=>tFt(a.currentTarget,b,e)),c=l.findIndex(b=>a.currentTarget===b),u=M0e(c,l,r),d=P0e(c,l,r),h=s==="rtl"?d:u,p=s==="rtl"?u:d;switch(a.key){case"ArrowRight":o==="horizontal"&&(a.stopPropagation(),a.preventDefault(),l[h].focus(),i&&l[h].click());break;case"ArrowLeft":o==="horizontal"&&(a.stopPropagation(),a.preventDefault(),l[p].focus(),i&&l[p].click());break;case"ArrowUp":o==="vertical"&&(a.stopPropagation(),a.preventDefault(),l[d].focus(),i&&l[d].click());break;case"ArrowDown":o==="vertical"&&(a.stopPropagation(),a.preventDefault(),l[u].focus(),i&&l[u].click());break;case"Home":a.stopPropagation(),a.preventDefault(),(y=l[M0e(-1,l,!1)])==null||y.focus();break;case"End":a.stopPropagation(),a.preventDefault(),(v=l[P0e(l.length,l,!1)])==null||v.focus();break}}}const nFt={app:100,modal:200,popover:300,overlay:400,max:9999};function YS(e){return nFt[e]}const rFt=()=>{};function iFt(e,t={active:!0}){return typeof e!="function"||!t.active?t.onKeyDown||rFt:n=>{var r;n.key==="Escape"&&(e(n),(r=t.onTrigger)==null||r.call(t))}}function Cr(e,t="size",n=!0){if(e!==void 0)return b$e(e)?n?ot(e):e:`var(--${t}-${e})`}function KS(e){return Cr(e,"mantine-spacing")}function so(e){return e===void 0?"var(--mantine-radius-default)":Cr(e,"mantine-radius")}function Ws(e){return Cr(e,"mantine-font-size")}function sFt(e){return Cr(e,"mantine-line-height",!1)}function w$e(e){if(e)return Cr(e,"mantine-shadow",!1)}function Fr(e,t){return n=>{e==null||e(n),t==null||t(n)}}function oFt(e,t,n){var r;return n?Array.from(((r=Tj(n,t))==null?void 0:r.querySelectorAll(e))||[]).findIndex(i=>i===n):null}function aFt(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function A0e(e){const t=O.useRef(e);return O.useEffect(()=>{t.current=e}),O.useMemo(()=>((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)}),[])}const lFt=["mousedown","touchstart"];function cFt(e,t,n,r=!0){const i=O.useRef(null),s=t||lFt,o=O.useEffectEvent(l=>{const{target:c}=l??{};if(!document.body.contains(c)&&(c==null?void 0:c.tagName)!=="HTML")return;const u=l.composedPath();Array.isArray(n)?n.every(d=>!!d&&!u.includes(d))&&e(l):i.current&&!u.includes(i.current)&&e(l)}),a=s.join(",");return O.useEffect(()=>{if(!r)return;const l=a.split(",");return l.forEach(c=>document.addEventListener(c,o)),()=>{l.forEach(c=>document.removeEventListener(c,o))}},[a,r]),i}function uFt(e,t){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function dFt(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[r,i]=O.useState(n?t:uFt(e));return O.useEffect(()=>{try{if("matchMedia"in window){const s=window.matchMedia(e);i(s.matches);const o=a=>i(a.matches);return s.addEventListener("change",o),()=>{s.removeEventListener("change",o)}}}catch{return}},[e]),r||!1}const vg=typeof document<"u"?O.useLayoutEffect:O.useEffect;function $X(e,t){const n=O.useRef(!1);O.useEffect(()=>()=>{n.current=!1},[]),O.useEffect(()=>{if(n.current)return e();n.current=!0},t)}function hFt({opened:e,shouldReturnFocus:t=!0}){const n=O.useRef(null),r=()=>{var i;n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&((i=n.current)==null||i.focus({preventScroll:!0}))};return $X(()=>{let i=-1;const s=o=>{o.key==="Tab"&&window.clearTimeout(i)};if(document.addEventListener("keydown",s),e)n.current=document.activeElement;else if(t){const o=document.activeElement;i=window.setTimeout(()=>{const a=document.activeElement;(a===null||a===document.body||a===o)&&r()},10)}return()=>{window.clearTimeout(i),document.removeEventListener("keydown",s)}},[e,t]),r}const fFt=/input|select|textarea|button|object/,O$e="a, input, select, textarea, button, object, [tabindex]";function pFt(e){return e.style.display==="none"}function mFt(e){if(e.getAttribute("aria-hidden")||e.getAttribute("hidden")||e.getAttribute("type")==="hidden")return!1;let t=e;for(;t&&!(t===document.body||t.nodeType===11);){if(pFt(t))return!1;t=t.parentNode}return!0}function S$e(e){let t=e.getAttribute("tabindex");return t===null&&(t=void 0),parseInt(t,10)}function H9(e){const t=e.nodeName.toLowerCase(),n=!Number.isNaN(S$e(e));return(fFt.test(t)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&mFt(e)}function k$e(e){const t=S$e(e);return(Number.isNaN(t)||t>=0)&&H9(e)}function gFt(e){return Array.from(e.querySelectorAll(O$e)).filter(k$e)}function vFt(e,t){const n=gFt(e);if(!n.length){t.preventDefault();return}const r=n[t.shiftKey?0:n.length-1],i=e.getRootNode();let s=r===i.activeElement||e===i.activeElement;const o=i.activeElement;if(o.tagName==="INPUT"&&o.getAttribute("type")==="radio"&&(s=n.filter(l=>l.getAttribute("type")==="radio"&&l.getAttribute("name")===o.getAttribute("name")).includes(r)),!s)return;t.preventDefault();const a=n[t.shiftKey?n.length-1:0];a&&a.focus()}function _$e(e=!0){const t=O.useRef(null),n=i=>{let s=i.querySelector("[data-autofocus]");if(!s){const o=Array.from(i.querySelectorAll(O$e));s=o.find(k$e)||o.find(H9)||null,!s&&H9(i)&&(s=i)}s?s.focus({preventScroll:!0}):console.warn("[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node",i)},r=O.useCallback(i=>{if(e){if(i===null){t.current=null;return}t.current!==i&&(setTimeout(()=>{i.getRootNode()?n(i):console.warn("[@mantine/hooks/use-focus-trap] Ref node is not part of the dom",i)}),t.current=i)}},[e]);return O.useEffect(()=>{if(!e)return;t.current&&setTimeout(()=>{t.current&&n(t.current)});const i=s=>{s.key==="Tab"&&t.current&&vFt(t.current,s)};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[e]),r}const yFt=e=>(e+1)%1e6;function bFt(){const[,e]=O.useReducer(yFt,0);return e}function mb(e){const[t,n]=O.useState(`mantine-${O.useId().replace(/:/g,"")}`),r=O.useRef(!1);return vg(()=>{r.current||(r.current=!0,n(aFt()))},[]),typeof e=="string"?e:t}function jj(e,t){if(typeof e=="function")return e(t);typeof e=="object"&&e!==null&&"current"in e&&(e.current=t)}function XM(...e){const t=new Map;return n=>{if(e.forEach(r=>{const i=jj(r,n);i&&t.set(r,i)}),t.size>0)return()=>{e.forEach(r=>{const i=t.get(r);i&&typeof i=="function"?i():jj(r,null)}),t.clear()}}}function Ba(...e){return O.useCallback(XM(...e),e)}function $u({value:e,defaultValue:t,finalValue:n,onChange:r=()=>{}}){const[i,s]=O.useState(t!==void 0?t:n),o=(a,...l)=>{s(a),r==null||r(a,...l)};return e!==void 0?[e,r,!0]:[i,o,!1]}function xFt(e,t){return dFt("(prefers-reduced-motion: reduce)",e,t)}function wFt(){const[e,t]=O.useState(!1),n=O.useRef(null),r=O.useCallback(()=>{t(!0)},[]),i=O.useCallback(()=>{t(!1)},[]);return{ref:O.useCallback(s=>(n.current&&(n.current.removeEventListener("mouseenter",r),n.current.removeEventListener("mouseleave",i)),s&&(s.addEventListener("mouseenter",r),s.addEventListener("mouseleave",i)),n.current=s,()=>{n.current=null,t(!1)}),[r,i]),hovered:e}}function OFt(e){return e.currentTarget instanceof HTMLElement&&e.relatedTarget instanceof HTMLElement?e.currentTarget.contains(e.relatedTarget):!1}function SFt({onBlur:e,onFocus:t}={}){const[n,r]=O.useState(!1),i=O.useRef(!1),s=O.useRef(null),o=A0e(t),a=A0e(e),l=O.useCallback(h=>{r(h),i.current=h},[]),c=O.useCallback(h=>{i.current||(l(!0),o(h))},[]),u=O.useCallback(h=>{i.current&&!OFt(h)&&(l(!1),a(h))},[]),d=O.useCallback(h=>{h&&(s.current&&(s.current.removeEventListener("focusin",c),s.current.removeEventListener("focusout",u)),h.addEventListener("focusin",c),h.addEventListener("focusout",u),s.current=h)},[c,u]);return O.useEffect(()=>()=>{s.current&&(s.current.removeEventListener("focusin",c),s.current.removeEventListener("focusout",u))},[]),{ref:d,focused:n}}const kFt=["mouse","touch"],_Ft=10;function CFt(e,t={}){const{threshold:n=400,events:r=kFt,cancelOnMove:i=!1,onStart:s,onFinish:o,onCancel:a}=t,l=O.useRef(!1),c=O.useRef(!1),u=O.useRef(-1),d=O.useRef(null);return O.useEffect(()=>()=>window.clearTimeout(u.current),[]),O.useMemo(()=>{if(typeof e!="function")return{};const h=i!==!1,p=i===!0?_Ft:i===!1?0:i,m=S=>{!R0e(S)&&!q9(S)||(s&&s(S),d.current=N0e(S),c.current=!0,u.current=window.setTimeout(()=>{e(S),l.current=!0},n))},y=S=>{!R0e(S)&&!q9(S)||(l.current?o&&o(S):c.current&&a&&a(S),l.current=!1,c.current=!1,d.current=null,u.current!==-1&&(window.clearTimeout(u.current),u.current=-1))},v=S=>{if(!h||!c.current||l.current)return;const w=N0e(S);if(!w||!d.current)return;const k=w.x-d.current.x,E=w.y-d.current.y;Math.sqrt(k*k+E*E)>p&&y(S)},b={};return r.includes("mouse")&&(b.onMouseDown=m,b.onMouseUp=y,b.onMouseLeave=y,h&&(b.onMouseMove=v)),r.includes("touch")&&(b.onTouchStart=m,b.onTouchEnd=y,b.onTouchCancel=y,h&&(b.onTouchMove=v)),b},[e,n,a,o,s,i,r.join(",")])}function N0e(e){if(q9(e)){const t=e.touches[0]??e.changedTouches[0];return t?{x:t.clientX,y:t.clientY}:null}return{x:e.clientX,y:e.clientY}}function q9(e){return window.TouchEvent?e.nativeEvent instanceof TouchEvent:"touches"in e.nativeEvent}function R0e(e){return e.nativeEvent instanceof MouseEvent}function DX(e){var n;const t=Kr.version;return typeof Kr.version!="string"||t.startsWith("18.")?e==null?void 0:e.ref:(n=e==null?void 0:e.props)==null?void 0:n.ref}function Xg(e){const t=O.Children.toArray(e);return t.length!==1||!x$e(t[0])?null:t[0]}const EFt={};function TFt(e){const t={};return e.forEach(n=>{Object.entries(n).forEach(([r,i])=>{t[r]?t[r]=ln(t[r],i):t[r]=i})}),t}function yO({theme:e,classNames:t,props:n,stylesCtx:r}){return TFt((Array.isArray(t)?t:[t]).map(i=>typeof i=="function"?i(e,n,r):i||EFt))}function Pj({theme:e,styles:t,props:n,stylesCtx:r}){const i=Array.isArray(t)?t:[t],s={};for(const o of i)typeof o=="function"?Object.assign(s,o(e,n,r)):o&&Object.assign(s,o);return s}function $0e(e){return e==="auto"||e==="dark"||e==="light"}function jFt({key:e="mantine-color-scheme-value"}={}){let t;return{get:n=>{if(typeof window>"u")return n;try{const r=window.localStorage.getItem(e);return $0e(r)?r:n}catch{return n}},set:n=>{try{window.localStorage.setItem(e,n)}catch(r){console.warn("[@mantine/core] Local storage color scheme manager was unable to save color scheme.",r)}},subscribe:n=>{t=r=>{r.storageArea===window.localStorage&&r.key===e&&$0e(r.newValue)&&n(r.newValue)},window.addEventListener("storage",t)},unsubscribe:()=>{window.removeEventListener("storage",t)},clear:()=>{window.localStorage.removeItem(e)}}}function bO(e,t){return typeof e.primaryShade=="number"?e.primaryShade:t==="dark"?e.primaryShade.dark:e.primaryShade.light}function PFt(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function MFt(e){let t=e.replace("#","");if(t.length===3){const r=t.split("");t=[r[0],r[0],r[1],r[1],r[2],r[2]].join("")}if(t.length===8){const r=parseInt(t.slice(6,8),16)/255;return{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16),a:r}}const n=parseInt(t,16);return{r:n>>16&255,g:n>>8&255,b:n&255,a:1}}function AFt(e){const[t,n,r,i]=e.replace(/[^0-9,./]/g,"").split(/[/,]/).map(Number);return{r:t,g:n,b:r,a:i===void 0?1:i}}function NFt(e){const t=e.match(/^hsla?\(\s*(\d+)\s*,\s*(\d+%)\s*,\s*(\d+%)\s*(,\s*(0?\.\d+|\d+(\.\d+)?))?\s*\)$/i);if(!t)return{r:0,g:0,b:0,a:1};const n=parseInt(t[1],10),r=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100,s=t[5]?parseFloat(t[5]):void 0,o=(1-Math.abs(2*i-1))*r,a=n/60,l=o*(1-Math.abs(a%2-1)),c=i-o/2;let u,d,h;return a>=0&&a<1?(u=o,d=l,h=0):a>=1&&a<2?(u=l,d=o,h=0):a>=2&&a<3?(u=0,d=o,h=l):a>=3&&a<4?(u=0,d=l,h=o):a>=4&&a<5?(u=l,d=0,h=o):(u=o,d=0,h=l),{r:Math.round((u+c)*255),g:Math.round((d+c)*255),b:Math.round((h+c)*255),a:s||1}}function LX(e){return PFt(e)?MFt(e):e.startsWith("rgb")?AFt(e):e.startsWith("hsl")?NFt(e):{r:0,g:0,b:0,a:1}}function Nz(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function RFt(e){const t=e.match(/oklch\((.*?)%\s/);return t?parseFloat(t[1]):null}function $Ft(e){if(e.startsWith("oklch("))return(RFt(e)||0)/100;const{r:t,g:n,b:r}=LX(e),i=t/255,s=n/255,o=r/255,a=Nz(i),l=Nz(s),c=Nz(o);return .2126*a+.7152*l+.0722*c}function Hx(e,t=.179){return e.startsWith("var(")?!1:$Ft(e)>t}function gp({color:e,theme:t,colorScheme:n}){if(typeof e!="string")throw new Error(`[@mantine/core] Failed to parse color. Expected color to be a string, instead got ${typeof e}`);if(e==="bright")return{color:e,value:n==="dark"?t.white:t.black,shade:void 0,isThemeColor:!1,isLight:Hx(n==="dark"?t.white:t.black,t.luminanceThreshold),variable:"--mantine-color-bright"};if(e==="dimmed")return{color:e,value:n==="dark"?t.colors.dark[2]:t.colors.gray[7],shade:void 0,isThemeColor:!1,isLight:Hx(n==="dark"?t.colors.dark[2]:t.colors.gray[6],t.luminanceThreshold),variable:"--mantine-color-dimmed"};if(e==="white"||e==="black")return{color:e,value:e==="white"?t.white:t.black,shade:void 0,isThemeColor:!1,isLight:Hx(e==="white"?t.white:t.black,t.luminanceThreshold),variable:`--mantine-color-${e}`};const[r,i]=e.split("."),s=i?Number(i):void 0,o=r in t.colors;if(o){const a=s!==void 0?t.colors[r][s]:t.colors[r][bO(t,n||"light")];return{color:r,value:a,shade:s,isThemeColor:o,isLight:Hx(a,t.luminanceThreshold),variable:i?`--mantine-color-${r}-${s}`:`--mantine-color-${r}-filled`}}return{color:e,value:e,isThemeColor:o,isLight:Hx(e,t.luminanceThreshold),shade:s,variable:void 0}}function Uf(e,t){const n=gp({color:e||t.primaryColor,theme:t});return n.variable?`var(${n.variable})`:e}function IX(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function om(e,t){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${t*100}%)`;const{r:n,g:r,b:i,a:s}=LX(e),o=1-t,a=l=>Math.round(l*o);return`rgba(${a(n)}, ${a(r)}, ${a(i)}, ${s})`}function V9(e,t){const n={from:(e==null?void 0:e.from)||t.defaultGradient.from,to:(e==null?void 0:e.to)||t.defaultGradient.to,deg:(e==null?void 0:e.deg)??t.defaultGradient.deg??0},r=Uf(n.from,t),i=Uf(n.to,t);return`linear-gradient(${n.deg}deg, ${r} 0%, ${i} 100%)`}function lf(e,t){if(typeof e!="string"||t>1||t<0)return"rgba(0, 0, 0, 1)";if(e.startsWith("var("))return`color-mix(in srgb, ${e}, transparent ${(1-t)*100}%)`;if(e.startsWith("oklch"))return e.includes("/")?e.replace(/\/\s*[\d.]+\s*\)/,`/ ${t})`):e.replace(")",` / ${t})`);const{r:n,g:r,b:i}=LX(e);return`rgba(${n}, ${r}, ${i}, ${t})`}const D0e=lf,DFt=({color:e,theme:t,variant:n,gradient:r,autoContrast:i})=>{const s=gp({color:e,theme:t}),o=typeof i=="boolean"?i:t.autoContrast;if(n==="none")return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if(n==="filled"){const a=s.isThemeColor&&s.shade===void 0&&IX(t.colors[s.color]),l=o?a?`var(--mantine-color-${s.color}-contrast)`:s.isLight?"var(--mantine-color-black)":"var(--mantine-color-white)":"var(--mantine-color-white)";return s.isThemeColor?s.shade===void 0?{background:`var(--mantine-color-${e}-filled)`,hover:`var(--mantine-color-${e}-filled-hover)`,color:l,border:`${ot(1)} solid transparent`}:{background:`var(--mantine-color-${s.color}-${s.shade})`,hover:`var(--mantine-color-${s.color}-${s.shade===9?8:s.shade+1})`,color:l,border:`${ot(1)} solid transparent`}:{background:e,hover:om(e,.1),color:l,border:`${ot(1)} solid transparent`}}if(n==="light"){if(s.isThemeColor){if(s.shade===void 0)return{background:`var(--mantine-color-${e}-light)`,hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`};const a=t.colors[s.color][s.shade];return{background:a,hover:om(a,.1),color:`var(--mantine-color-${s.color}-light-color)`,border:`${ot(1)} solid transparent`}}return{background:lf(e,.1),hover:lf(e,.12),color:e,border:`${ot(1)} solid transparent`}}if(n==="outline")return s.isThemeColor?s.shade===void 0?{background:"transparent",hover:`var(--mantine-color-${e}-outline-hover)`,color:`var(--mantine-color-${e}-outline)`,border:`${ot(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:lf(t.colors[s.color][s.shade],.05),color:`var(--mantine-color-${s.color}-${s.shade})`,border:`${ot(1)} solid var(--mantine-color-${s.color}-${s.shade})`}:{background:"transparent",hover:lf(e,.05),color:e,border:`${ot(1)} solid ${e}`};if(n==="subtle"){if(s.isThemeColor){if(s.shade===void 0)return{background:"transparent",hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`};const a=t.colors[s.color][s.shade];return{background:"transparent",hover:lf(a,.12),color:`var(--mantine-color-${s.color}-${Math.min(s.shade,6)})`,border:`${ot(1)} solid transparent`}}return{background:"transparent",hover:lf(e,.12),color:e,border:`${ot(1)} solid transparent`}}return n==="transparent"?s.isThemeColor?s.shade===void 0?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${s.color}-${Math.min(s.shade,6)})`,border:`${ot(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${ot(1)} solid transparent`}:n==="white"?s.isThemeColor?s.shade===void 0?{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${ot(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:`var(--mantine-color-${s.color}-${s.shade})`,border:`${ot(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:e,border:`${ot(1)} solid transparent`}:n==="gradient"?{background:V9(r,t),hover:V9(r,t),color:"var(--mantine-color-white)",border:"none"}:n==="default"?{background:"var(--mantine-color-default)",hover:"var(--mantine-color-default-hover)",color:"var(--mantine-color-default-color)",border:`${ot(1)} solid var(--mantine-color-default-border)`}:{}};function BX({color:e,theme:t,autoContrast:n,colorScheme:r}){return(typeof n=="boolean"?n:t.autoContrast)&&gp({color:e||t.primaryColor,theme:t,colorScheme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function W9(e,t,n){return BX({color:n==="dark"?e.dark:e.light,theme:t,colorScheme:n,autoContrast:!0})}function L0e(e,t){const n=e.colors[e.primaryColor];return IX(n)?e.autoContrast?W9(n,e,t):"var(--mantine-color-white)":BX({color:n[bO(e,t)],theme:e,autoContrast:null})}function LFt(e,t){return typeof e=="boolean"?e:t.autoContrast}const zX=O.createContext(null);function mh(){const e=O.use(zX);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function IFt(){return mh().cssVariablesResolver}function BFt(){return mh().classNamesPrefix}function QX(){return mh().getStyleNonce}function zFt(){return mh().withStaticClasses}function QFt(){return mh().headless}function FFt(){var e;return(e=mh().stylesTransform)==null?void 0:e.sx}function HFt(){var e;return(e=mh().stylesTransform)==null?void 0:e.styles}function ZM(){return mh().env||"default"}function C$e(){return mh().deduplicateInlineStyles}function G0(e,t){var i,s;const n=typeof window<"u"&&"matchMedia"in window&&((i=window.matchMedia("(prefers-color-scheme: dark)"))==null?void 0:i.matches),r=e!=="auto"?e:n?"dark":"light";(s=t())==null||s.setAttribute("data-mantine-color-scheme",r)}function qFt({manager:e,defaultColorScheme:t,getRootElement:n,forceColorScheme:r}){const i=O.useRef(null),[s,o]=O.useState(()=>e.get(t)),a=r||s,l=O.useCallback(u=>{r||(G0(u,n),o(u),e.set(u))},[e.set,a,r]),c=O.useCallback(()=>{o(t),G0(t,n),e.clear()},[e.clear,t]);return O.useEffect(()=>(e.subscribe(l),e.unsubscribe),[e.subscribe,e.unsubscribe]),vg(()=>{G0(e.get(t),n)},[]),O.useEffect(()=>{var d;if(r)return G0(r,n),()=>{};r===void 0&&G0(s,n),typeof window<"u"&&"matchMedia"in window&&(i.current=window.matchMedia("(prefers-color-scheme: dark)"));const u=h=>{s==="auto"&&G0(h.matches?"dark":"light",n)};return(d=i.current)==null||d.addEventListener("change",u),()=>{var h;return(h=i.current)==null?void 0:h.removeEventListener("change",u)}},[s,r]),{colorScheme:a,setColorScheme:l,clearColorScheme:c}}const VFt={dark:["#C9C9C9","#b8b8b8","#828282","#696969","#424242","#3b3b3b","#2e2e2e","#242424","#1f1f1f","#141414"],gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]},I0e="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",FX={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:VFt,primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:DFt,autoContrast:!1,luminanceThreshold:.3,fontFamily:I0e,fontFamilyMonospace:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",respectReducedMotion:!1,cursorType:"default",defaultGradient:{from:"blue",to:"cyan",deg:45},defaultRadius:"md",activeClassName:"mantine-active",focusClassName:"",headings:{fontFamily:I0e,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:ot(34),lineHeight:"1.3"},h2:{fontSize:ot(26),lineHeight:"1.35"},h3:{fontSize:ot(22),lineHeight:"1.4"},h4:{fontSize:ot(18),lineHeight:"1.45"},h5:{fontSize:ot(16),lineHeight:"1.5"},h6:{fontSize:ot(14),lineHeight:"1.5"}}},fontSizes:{xs:ot(12),sm:ot(14),md:ot(16),lg:ot(18),xl:ot(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},fontWeights:{regular:"400",medium:"600",bold:"700"},radius:{xs:ot(2),sm:ot(4),md:ot(8),lg:ot(16),xl:ot(32)},spacing:{xs:ot(10),sm:ot(12),md:ot(16),lg:ot(20),xl:ot(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), 0 ${ot(1)} ${ot(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(10)} ${ot(15)} ${ot(-5)}, rgba(0, 0, 0, 0.04) 0 ${ot(7)} ${ot(7)} ${ot(-5)}`,md:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(20)} ${ot(25)} ${ot(-5)}, rgba(0, 0, 0, 0.04) 0 ${ot(10)} ${ot(10)} ${ot(-5)}`,lg:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(28)} ${ot(23)} ${ot(-7)}, rgba(0, 0, 0, 0.04) 0 ${ot(12)} ${ot(12)} ${ot(-7)}`,xl:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(36)} ${ot(28)} ${ot(-7)}, rgba(0, 0, 0, 0.04) 0 ${ot(17)} ${ot(17)} ${ot(-7)}`},other:{},components:{}},WFt="[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color",B0e="[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";function Rz(e){return e<0||e>9?!1:parseInt(e.toString(),10)===e}function z0e(e){if(!(e.primaryColor in e.colors))throw new Error(WFt);if(typeof e.primaryShade=="object"&&(!Rz(e.primaryShade.dark)||!Rz(e.primaryShade.light)))throw new Error(B0e);if(typeof e.primaryShade=="number"&&!Rz(e.primaryShade))throw new Error(B0e)}function UFt(e,t){var r;if(!t)return z0e(e),e;const n=RX(e,t);return t.fontFamily&&!((r=t.headings)!=null&&r.fontFamily)&&(n.headings={...n.headings,fontFamily:t.fontFamily}),z0e(n),n}const HX=O.createContext(null),XFt=()=>O.use(HX)||FX;function Go(){const e=O.use(HX);if(!e)throw new Error("@mantine/core: MantineProvider was not found in component tree, make sure you have it in your app");return e}function E$e({theme:e,children:t,inherit:n=!0}){const r=XFt();return f.jsx(HX,{value:O.useMemo(()=>UFt(n?r:FX,e),[e,r,n]),children:t})}E$e.displayName="@mantine/core/MantineThemeProvider";function $z(e){return Object.entries(e).map(([t,n])=>`${t}: ${n};`).join("")}function T$e(e,t){const n=t?[t]:[":root",":host"],r=$z(e.variables),i=r?`${n.join(", ")}{${r}}`:"",s=$z(e.dark),o=$z(e.light),a=l=>n.map(c=>c===":host"?`${c}([data-mantine-color-scheme="${l}"])`:`${c}[data-mantine-color-scheme="${l}"]`).join(", ");return`${i}
1007
+ `)}`},i.emoji)},aQt=O.memo(({isEmpty:e,comment:t,isEditing:n,threadStore:r,onReactionSelect:i,onEditSubmit:s,onEditCancel:o,onEmojiPickerOpenChange:a,Components:l,dict:c})=>{let u=r.auth.canAddReaction(t);return f.jsxs(f.Fragment,{children:[t.reactions.length>0&&!n&&f.jsxs(l.Generic.Badge.Group,{className:vr("bn-badge-group","bn-comment-reactions"),children:[t.reactions.map(d=>f.jsx(oQt,{comment:t,emoji:d.emoji,onReactionSelect:i},d.emoji)),u&&f.jsx(WRe,{onEmojiSelect:d=>i(d.native),onOpenChange:a,children:f.jsx(l.Generic.Badge.Root,{className:vr("bn-badge","bn-comment-add-reaction"),text:"+",icon:f.jsx($Re,{size:16}),mainTooltip:c.comments.actions.add_reaction})})]}),n&&f.jsxs(l.Generic.Toolbar.Root,{variant:"action-toolbar",className:vr("bn-action-toolbar","bn-comment-actions"),children:[f.jsx(l.Generic.Toolbar.Button,{mainTooltip:c.comments.save_button_text,variant:"compact",onClick:s,isDisabled:e,children:c.comments.save_button_text}),f.jsx(l.Generic.Toolbar.Button,{className:"bn-button",mainTooltip:c.comments.cancel_button_text,variant:"compact",onClick:o,children:c.comments.cancel_button_text})]})]})}),XRe=({comment:e,thread:t,showResolveButton:n})=>{let r=Zn(Kd),i=dn(),s=PX({initialContent:e.body,trailingBlock:!1,dictionary:{...i,placeholders:{emptyDocument:i.placeholders.edit_comment}},schema:r.commentEditorSchema||ARe}),o=Qt(),[a,l]=O.useState(!1),[c,u]=O.useState(!1),d=r.threadStore,h=O.useCallback(()=>{l(!0)},[]),p=O.useCallback(()=>{s.replaceBlocks(s.document,e.body),l(!1)},[s,e.body]),m=O.useCallback(async A=>{await d.updateComment({commentId:e.id,comment:{body:s.document},threadId:t.id}),l(!1)},[e,t.id,s,d]),y=O.useCallback(async()=>{await d.deleteComment({commentId:e.id,threadId:t.id})},[e,t.id,d]),v=O.useCallback(async A=>{d.auth.canAddReaction(e,A)?await d.addReaction({threadId:t.id,commentId:e.id,emoji:A}):d.auth.canDeleteReaction(e,A)&&await d.deleteReaction({threadId:t.id,commentId:e.id,emoji:A})},[d,e,t.id]),b=O.useCallback(async()=>{await d.resolveThread({threadId:t.id})},[t.id,d]),S=O.useCallback(async()=>{await d.unresolveThread({threadId:t.id})},[t.id,d]),w=URe(e.userId);if(!e.body)return null;let k,E=d.auth.canAddReaction(e),C=d.auth.canDeleteComment(e),T=d.auth.canUpdateComment(e),j=n&&(t.resolved?d.auth.canUnresolveThread(t):d.auth.canResolveThread(t));a||(k=f.jsxs(o.Generic.Toolbar.Root,{className:vr("bn-action-toolbar","bn-comment-actions"),variant:"action-toolbar",children:[E&&f.jsx(WRe,{onEmojiSelect:A=>v(A.native),onOpenChange:u,children:f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.add_reaction,variant:"compact",children:f.jsx($Re,{size:16})},"add-reaction")}),j&&(t.resolved?f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.reopen,variant:"compact",onClick:S,children:f.jsx(rQt,{size:16})},"reopen"):f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.resolve,variant:"compact",onClick:b,children:f.jsx(A7t,{size:16})},"resolve")),(C||T)&&f.jsxs(o.Generic.Menu.Root,{position:"bottom-start",children:[f.jsx(o.Generic.Menu.Trigger,{children:f.jsx(o.Generic.Toolbar.Button,{mainTooltip:i.comments.actions.more_actions,variant:"compact",children:f.jsx(E7t,{size:16})},"more-actions")}),f.jsxs(o.Generic.Menu.Dropdown,{className:"bn-menu-dropdown",children:[T&&f.jsx(o.Generic.Menu.Item,{icon:f.jsx(nQt,{}),onClick:h,children:i.comments.actions.edit_comment},"edit-comment"),C&&f.jsx(o.Generic.Menu.Item,{icon:f.jsx(P7t,{}),onClick:y,children:i.comments.actions.delete_comment},"delete-comment")]})]})]}));let P=e.createdAt.toLocaleDateString(void 0,{month:"short",day:"numeric"});if(!e.body)throw Error("soft deletes are not yet supported");return f.jsx(o.Comments.Comment,{authorInfo:w??"loading",timeString:P,edited:e.updatedAt.getTime()!==e.createdAt.getTime(),showActions:"hover",actions:k,className:"bn-thread-comment",emojiPickerOpen:c,children:f.jsx(MRe,{autoFocus:a,editor:s,editable:a,actions:e.reactions.length>0||a?({isFocused:A,isEmpty:R})=>f.jsx(aQt,{isFocused:A,isEmpty:R,comment:e,isEditing:a,threadStore:d,onReactionSelect:v,onEditSubmit:m,onEditCancel:p,onEmojiPickerOpenChange:u,Components:o,dict:i}):void 0})})},ZRe=({thread:e,maxCommentsBeforeCollapse:t})=>{let n=Qt(),r=dn(),i=HM(e.resolvedBy?[e.resolvedBy]:[]),s=e.comments.map((o,a)=>f.jsx(XRe,{thread:e,comment:o,showResolveButton:a===0},o.id+JSON.stringify(o.body||"{}")));if(e.resolved&&e.resolvedUpdatedAt&&e.resolvedBy){if(!i.get(e.resolvedBy))throw Error(`User ${e.resolvedBy} resolved thread ${e.id}, but their data could not be found.`);let o=e.comments.findLastIndex(a=>e.resolvedUpdatedAt.getTime()>a.createdAt.getTime())+1;s.splice(o,0,f.jsx(n.Comments.Comment,{className:"bn-thread-comment",authorInfo:e.resolvedBy&&i.get(e.resolvedBy)||"loading",timeString:e.resolvedUpdatedAt.toLocaleDateString(void 0,{month:"short",day:"numeric"}),edited:!1,showActions:!1,children:f.jsx("div",{className:"bn-resolved-text",children:r.comments.sidebar.marked_as_resolved})},"resolved-comment"))}return t&&s.length>t&&s.splice(1,s.length-2,f.jsx(n.Comments.ExpandSectionsPrompt,{className:"bn-thread-expand-prompt",children:r.comments.sidebar.more_replies(e.comments.length-2)},"expand-prompt")),s},lQt=O.memo(({isEmpty:e,onNewCommentSave:t,Components:n,dict:r})=>e?null:f.jsx(n.Generic.Toolbar.Root,{variant:"action-toolbar",className:vr("bn-action-toolbar","bn-comment-actions"),children:f.jsx(n.Generic.Toolbar.Button,{mainTooltip:r.comments.save_button_text,variant:"compact",isDisabled:e,onClick:t,children:r.comments.save_button_text})})),AX=({thread:e,selected:t,orphaned:n,referenceText:r,maxCommentsBeforeCollapse:i,onFocus:s,onBlur:o,tabIndex:a})=>{let l=Qt(),c=dn(),u=Zn(Kd),d=PX({trailingBlock:!1,dictionary:{...c,placeholders:{emptyDocument:c.placeholders.comment_reply}},schema:u.commentEditorSchema||ARe}),h=O.useCallback(async()=>{await u.threadStore.addComment({comment:{body:d.document},threadId:e.id}),d.removeBlocks(d.document)},[u,d,e.id]);return f.jsxs(l.Comments.Card,{className:vr("bn-thread",n&&"bn-thread-orphaned"),headerText:r,onFocus:s,onBlur:o,selected:t,tabIndex:a,children:[f.jsx(l.Comments.CardSection,{className:"bn-thread-comments",children:f.jsx(ZRe,{thread:e,maxCommentsBeforeCollapse:t?void 0:i||5})}),t&&f.jsx(l.Comments.CardSection,{className:"bn-thread-composer",children:f.jsx(MRe,{autoFocus:!1,editable:!0,editor:d,actions:({isFocused:p,isEmpty:m})=>f.jsx(lQt,{isFocused:p,isEmpty:m,onNewCommentSave:h,Components:l,dict:c})})})]})};function GRe(){let e=Zn(Kd).threadStore,t=O.useRef(void 0);return t.current||(t.current=e.getThreads()),O.useSyncExternalStore(O.useCallback(n=>e.subscribe(r=>{t.current=r,n()}),[e]),()=>t.current)}var cQt=m7t({default:()=>YRe});function YRe(e){let t=Ut(),n=Zn(Kd),r=Tr(Kd,{editor:t,selector:l=>l.selectedThreadId?{id:l.selectedThreadId,position:l.threadPositions.get(l.selectedThreadId)}:void 0}),i=GRe(),s=O.useMemo(()=>r?i.get(r.id):void 0,[r,i]),o=O.useMemo(()=>{var l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:!!r,onOpenChange:(d,h,p)=>{p==="escape-key"&&t.focus(),d||n.selectThread(void 0)},placement:"bottom",middleware:[oc(10),Qg(),eg()],...(l=e.floatingUIOptions)==null?void 0:l.useFloatingOptions},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:30},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[n,t,e.floatingUIOptions,r]),a=e.floatingThread||AX;return f.jsx(PRe,{position:r==null?void 0:r.position,portalElement:e.portalElement,...o,children:s&&f.jsx(a,{thread:s,selected:!0})})}const uQt=Object.freeze(Object.defineProperty({__proto__:null,a:ZRe,c:HM,i:AX,n:cQt,o:XRe,r:GRe,s:URe,t:YRe},Symbol.toStringTag,{value:"Module"}));function dQt(e){return Ft({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8Z"},child:[]},{tag:"path",attr:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8Z"},child:[]}]})(e)}function hQt(e){return Ft({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 10 5 5 5-5z"},child:[]}]})(e)}function KRe(e){return Ft({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"},child:[]}]})(e)}var fQt=UOe(),pQt=(...e)=>t=>{e.forEach(n=>{typeof n=="function"?n(t):n&&(n.current=t)})},mQt=({contentComponent:e})=>{const t=fQt.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getServerSnapshot);return f.jsx(f.Fragment,{children:Object.values(t)})};function gQt(){const e=new Set;let t={};return{subscribe(n){return e.add(n),()=>{e.delete(n)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(n,r){t={...t,[n]:Nxe.createPortal(r.reactElement,r.element,n)},e.forEach(i=>i())},removeRenderer(n){const r={...t};delete r[n],t=r,e.forEach(i=>i())}}}var vQt=class extends Kr.Component{constructor(e){super(e),this.editorContentRef=Kr.createRef()}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){var e;const t=this.props.editor;if(t&&!t.isDestroyed&&((e=t.view.dom)!=null&&e.parentNode)){if(t.contentComponent)return;const n=this.editorContentRef.current;n.append(...t.view.dom.parentNode.childNodes),t.setOptions({element:n}),t.contentComponent=gQt(),t.createNodeViews(),t.isEditorContentInitialized=!0,this.forceUpdate()}}componentWillUnmount(){var e;const t=this.props.editor;if(t){t.isEditorContentInitialized=!1,t.isDestroyed||t.view.setProps({nodeViews:{}}),t.contentComponent=null;try{if(!((e=t.view.dom)!=null&&e.parentNode))return;const n=document.createElement("div");n.append(...t.view.dom.parentNode.childNodes),t.setOptions({element:n})}catch{}}}render(){const{editor:e,innerRef:t,...n}=this.props;return f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:pQt(t,this.editorContentRef),...n}),(e==null?void 0:e.contentComponent)&&f.jsx(mQt,{contentComponent:e.contentComponent})]})}},yQt=O.forwardRef((e,t)=>{const n=Kr.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[e.editor]);return Kr.createElement(vQt,{key:n,innerRef:t,...e})}),bQt=Kr.memo(yQt),JRe=O.createContext({editor:null});JRe.Consumer;var e$e=O.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),t$e=()=>O.useContext(e$e),xQt=Kr.forwardRef((e,t)=>{const{onDragStart:n}=t$e(),r=e.as||"div";return f.jsx(r,{...e,ref:t,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...e.style}})});function x0e(e){return!!(typeof e=="function"&&e.prototype&&e.prototype.isReactComponent)}function w0e(e){return!!(typeof e=="object"&&e.$$typeof&&(e.$$typeof.toString()==="Symbol(react.forward_ref)"||e.$$typeof.description==="react.forward_ref"))}function wQt(e){return!!(typeof e=="object"&&e.$$typeof&&(e.$$typeof.toString()==="Symbol(react.memo)"||e.$$typeof.description==="react.memo"))}function OQt(e){if(x0e(e)||w0e(e))return!0;if(wQt(e)){const t=e.type;if(t)return x0e(t)||w0e(t)}return!1}function SQt(){try{if(O.version)return parseInt(O.version.split(".")[0],10)>=19}catch{}return!1}var kQt=class{constructor(e,{editor:t,props:n={},as:r="div",className:i=""}){this.ref=null,this.destroyed=!1,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=e,this.editor=t,this.props=n,this.element=document.createElement(r),this.element.classList.add("react-renderer"),i&&this.element.classList.add(...i.split(" ")),this.editor.isEditorContentInitialized?vn.flushSync(()=>{this.render()}):queueMicrotask(()=>{this.destroyed||this.render()})}render(){var e;if(this.destroyed)return;const t=this.component,n=this.props,r=this.editor,i=SQt(),s=OQt(t),o={...n};o.ref&&!(i||s)&&delete o.ref,!o.ref&&(i||s)&&(o.ref=a=>{this.ref=a}),this.reactElement=f.jsx(t,{...o}),(e=r==null?void 0:r.contentComponent)==null||e.setRenderer(this.id,this)}updateProps(e={}){if(this.destroyed)return;let t=!1;const n=Object.keys(e);for(let r=0;r<n.length;r+=1){const i=n[r];if(e[i]!==this.props[i]){t=!0;break}}t&&(this.props={...this.props,...e},this.render())}destroy(){var e;this.destroyed=!0;const t=this.editor;(e=t==null?void 0:t.contentComponent)==null||e.removeRenderer(this.id);try{this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}catch{}}updateAttributes(e){Object.keys(e).forEach(t=>{this.element.setAttribute(t,e[t])})}};Kr.createContext({markViewContentRef:()=>{}});var _Qt=class extends zNt{constructor(e,t,n){if(super(e,t,n),this.selectionRafId=null,this.handlePositionUpdate=()=>{const r=this.getPos();typeof r!="number"||r===this.currentPos||(this.currentPos=r,this.renderer.updateProps({getPos:()=>this.getPos()}),typeof this.options.attrs=="function"&&this.updateElementAttributes())},this.cachedExtensionWithSyncedStorage=null,!this.node.isLeaf){this.options.contentDOMElementTag?this.contentDOMElement=document.createElement(this.options.contentDOMElementTag):this.contentDOMElement=document.createElement(this.node.isInline?"span":"div"),this.contentDOMElement.dataset.nodeViewContentReact="",this.contentDOMElement.dataset.nodeViewWrapper="",this.contentDOMElement.style.whiteSpace="inherit";const r=this.dom.querySelector("[data-node-view-content]");if(!r)return;r.appendChild(this.contentDOMElement)}this.options.trackNodeViewPosition&&this.editor.on("update",this.handlePositionUpdate)}get extensionWithSyncedStorage(){if(!this.cachedExtensionWithSyncedStorage){const e=this.editor,t=this.extension;this.cachedExtensionWithSyncedStorage=new Proxy(t,{get(n,r,i){var s;return r==="storage"?(s=e.storage[t.name])!=null?s:{}:Reflect.get(n,r,i)}})}return this.cachedExtensionWithSyncedStorage}mount(){const t={editor:this.editor,node:this.node,decorations:this.decorations,innerDecorations:this.innerDecorations,view:this.view,selected:!1,extension:this.extensionWithSyncedStorage,HTMLAttributes:this.HTMLAttributes,getPos:()=>this.getPos(),updateAttributes:(c={})=>this.updateAttributes(c),deleteNode:()=>this.deleteNode(),ref:O.createRef()};if(!this.component.displayName){const c=u=>u.charAt(0).toUpperCase()+u.substring(1);this.component.displayName=c(this.extension.name)}const i={onDragStart:this.onDragStart.bind(this),nodeViewContentRef:c=>{c&&this.contentDOMElement&&c.firstChild!==this.contentDOMElement&&(c.hasAttribute("data-node-view-wrapper")&&c.removeAttribute("data-node-view-wrapper"),c.appendChild(this.contentDOMElement))}},s=this.component,o=O.memo(c=>f.jsx(e$e.Provider,{value:i,children:O.createElement(s,c)}));o.displayName="ReactNodeView";let a=this.node.isInline?"span":"div";this.options.as&&(a=this.options.as);const{className:l=""}=this.options;this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.renderer=new kQt(o,{editor:this.editor,props:t,as:a,className:`node-${this.node.type.name} ${l}`.trim()}),this.editor.on("selectionUpdate",this.handleSelectionUpdate),this.updateElementAttributes(),this.currentPos=this.getPos()}get dom(){var e;if(this.renderer.element.firstElementChild&&!((e=this.renderer.element.firstElementChild)!=null&&e.hasAttribute("data-node-view-wrapper")))throw Error("Please use the NodeViewWrapper component for your node view.");return this.renderer.element}get contentDOM(){return this.node.isLeaf?null:this.contentDOMElement}handleSelectionUpdate(){this.selectionRafId&&(cancelAnimationFrame(this.selectionRafId),this.selectionRafId=null),this.selectionRafId=requestAnimationFrame(()=>{this.selectionRafId=null;const e=this.currentPos;if(typeof e!="number")return;if(WAt({selection:this.editor.state.selection,pos:e,nodeSize:this.node.nodeSize,selectedOnTextSelection:this.options.selectedOnTextSelection})){if(this.renderer.props.selected)return;this.selectNode()}else{if(!this.renderer.props.selected)return;this.deselectNode()}})}update(e,t,n){const r=a=>{this.renderer.updateProps(a),typeof this.options.attrs=="function"&&this.updateElementAttributes()};if(e.type!==this.node.type)return!1;if(typeof this.options.update=="function"){const a=this.node,l=this.decorations,c=this.innerDecorations;return this.node=e,this.decorations=t,this.innerDecorations=n,this.currentPos=this.getPos(),this.options.update({oldNode:a,oldDecorations:l,newNode:e,newDecorations:t,oldInnerDecorations:c,innerDecorations:n,updateProps:()=>r({node:e,decorations:t,innerDecorations:n,extension:this.extensionWithSyncedStorage})})}if(!(e!==this.node))return this.node=e,this.decorations=t,this.innerDecorations=n,!0;const s=this.getPos();this.node=e,this.decorations=t,this.innerDecorations=n,this.currentPos=s;const o={node:e,decorations:t,innerDecorations:n,extension:this.extensionWithSyncedStorage};return this.options.trackNodeViewPosition&&(o.getPos=()=>this.getPos()),r(o),!0}selectNode(){this.renderer.updateProps({selected:!0}),this.renderer.element.classList.add("ProseMirror-selectednode")}deselectNode(){this.renderer.updateProps({selected:!1}),this.renderer.element.classList.remove("ProseMirror-selectednode")}destroy(){this.renderer.destroy(),this.editor.off("selectionUpdate",this.handleSelectionUpdate),this.options.trackNodeViewPosition&&this.editor.off("update",this.handlePositionUpdate),this.contentDOMElement=null,this.selectionRafId&&(cancelAnimationFrame(this.selectionRafId),this.selectionRafId=null)}updateElementAttributes(){if(this.options.attrs){let e={};if(typeof this.options.attrs=="function"){const t=this.editor.extensionManager.attributes,n=Kw(this.node,t);e=this.options.attrs({node:this.node,HTMLAttributes:n})}else e=this.options.attrs;this.renderer.updateAttributes(e)}}};function CQt(e,t){return n=>n.editor.contentComponent?new _Qt(e,n,t):{}}var NX=O.createContext({get editor(){throw new Error("useTiptap must be used within a <Tiptap> provider")}});NX.displayName="TiptapContext";var EQt=()=>O.useContext(NX);function n$e({editor:e,instance:t,children:n}){const r=e??t;if(!r)throw new Error("Tiptap: An editor instance is required. Pass a non-null `editor` prop.");const i=O.useMemo(()=>({editor:r}),[r]),s=O.useMemo(()=>({editor:r}),[r]);return f.jsx(JRe.Provider,{value:s,children:f.jsx(NX.Provider,{value:i,children:n})})}n$e.displayName="Tiptap";function r$e({...e}){const{editor:t}=EQt();return f.jsx(bQt,{editor:t,...e})}r$e.displayName="Tiptap.Content";Object.assign(n$e,{Content:r$e});var i$e=e=>{let{blockId:t,children:n,portalElement:r,...i}=e,s=Ut();return f.jsx(Yc,{reference:O.useMemo(()=>s.transact(o=>{if(!t)return;let a=So(t,o.doc);if(!a)return;let{node:l}=s.prosemirrorView.domAtPos(a.posBeforeNode+1);if(l instanceof Element)return{element:l}}),[s,t]),portalElement:r,...i,children:t!==void 0&&n})},TQt=e=>{let t=Qt(),n=dn(),r=Ut(),i=r.getBlock(e.blockId),[s,o]=O.useState(""),a=O.useCallback(u=>{o(u.currentTarget.value)},[]),l=O.useCallback(u=>{u.key==="Enter"&&!u.nativeEvent.isComposing&&(u.preventDefault(),r.updateBlock(i.id,{props:{name:Pge(s),url:s}}))},[r,i.id,s]),c=O.useCallback(()=>{r.updateBlock(i.id,{props:{name:Pge(s),url:s}})},[r,i.id,s]);return f.jsxs(t.FilePanel.TabPanel,{className:"bn-tab-panel",children:[f.jsx(t.FilePanel.TextInput,{className:"bn-text-input",placeholder:n.file_panel.embed.url_placeholder,value:s,onChange:a,onKeyDown:l,"data-test":"embed-input"}),f.jsx(t.FilePanel.Button,{className:"bn-button",onClick:c,"data-test":"embed-input-button",children:n.file_panel.embed.embed_button[i.type]||n.file_panel.embed.embed_button.file})]})},jQt=e=>{var d,h;let t=Qt(),n=dn(),{setLoading:r}=e,i=Ut(),s=i.getBlock(e.blockId),[o,a]=O.useState(!1);O.useEffect(()=>{o&&setTimeout(()=>{a(!1)},3e3)},[o]);let l=O.useCallback(p=>{if(p===null)return;async function m(y){if(r(!0),i.uploadFile!==void 0)try{let v=await i.uploadFile(y,e.blockId);typeof v=="string"&&(v={props:{name:y.name,url:v}}),i.updateBlock(e.blockId,v)}catch{a(!0)}finally{r(!1)}}m(p)},[e.blockId,i,r]),c=i.schema.blockSpecs[s.type],u=(h=(d=c.implementation.meta)==null?void 0:d.fileBlockAccept)!=null&&h.length?c.implementation.meta.fileBlockAccept.join(","):"*/*";return f.jsxs(t.FilePanel.TabPanel,{className:"bn-tab-panel",children:[f.jsx(t.FilePanel.FileInput,{className:"bn-file-input","data-test":"upload-input",accept:u,placeholder:n.file_panel.upload.file_placeholder[s.type]||n.file_panel.upload.file_placeholder.file,value:null,onChange:l}),o&&f.jsx("div",{className:"bn-error-text",children:n.file_panel.upload.upload_error})]})},s$e=e=>{let t=Qt(),n=dn(),r=Ut(),[i,s]=O.useState(!1),o=e.tabs??[...r.uploadFile===void 0?[]:[{name:n.file_panel.upload.title,tabPanel:f.jsx(jQt,{blockId:e.blockId,setLoading:s})}],{name:n.file_panel.embed.title,tabPanel:f.jsx(TQt,{blockId:e.blockId})}],[a,l]=O.useState(e.defaultOpenTab||o[0].name);return f.jsx(t.FilePanel.Root,{className:"bn-panel",defaultOpenTab:a,openTab:a,setOpenTab:l,tabs:o,loading:i})},PQt=e=>{let t=Ut(),n=Zn(ec),r=Tr(ec),i=O.useMemo(()=>{var o,a,l;return{...e.floatingUIOptions,useFloatingOptions:{open:!!r,onOpenChange:(c,u,d)=>{c||n.closeMenu(),d==="escape-key"&&t.focus()},middleware:[oc(10),eg()],...(o=e.floatingUIOptions)==null?void 0:o.useFloatingOptions},focusManagerProps:{disabled:!0,...(a=e.floatingUIOptions)==null?void 0:a.focusManagerProps},elementProps:{style:{zIndex:90},...(l=e.floatingUIOptions)==null?void 0:l.elementProps}}},[r,t,n,e.floatingUIOptions]),s=e.filePanel||s$e;return f.jsx(i$e,{blockId:r,portalElement:e.portalElement,...i,children:r&&f.jsx(s,{blockId:r})})},MQt={bold:Z7t,italic:V7t,underline:B7t,strike:Q7t,code:eQt};function AQt(e,t){return e in t.schema.styleSchema&&t.schema.styleSchema[e].type===e&&t.schema.styleSchema[e].propSchema==="boolean"}var FC=e=>{let t=dn(),n=Qt(),r=Ut(),i=as({editor:r,selector:({editor:a})=>{var l;if(!(!a.isEditable||!AQt(e.basicTextStyle,a)||!(((l=a.getSelection())==null?void 0:l.blocks)||[a.getTextCursorPosition().block]).find(c=>c.content!==void 0)))return e.basicTextStyle in a.getActiveStyles()?{active:!0}:{active:!1}}}),s=O.useCallback(a=>{r.focus(),r.toggleStyles({[a]:!0})},[r,e]);if(i===void 0)return null;let o=MQt[e.basicTextStyle];return f.jsx(n.FormattingToolbar.Button,{className:"bn-button","data-test":e.basicTextStyle,onClick:()=>s(e.basicTextStyle),isSelected:i.active,label:t.formatting_toolbar[e.basicTextStyle].tooltip,mainTooltip:t.formatting_toolbar[e.basicTextStyle].tooltip,secondaryTooltip:el(t.formatting_toolbar[e.basicTextStyle].secondary_tooltip,t.generic.ctrl_shortcut),icon:f.jsx(o,{})})},Q9=e=>{let t=e.textColor||"default",n=e.backgroundColor||"default",r=e.size||16;return f.jsx("div",{className:"bn-color-icon","data-background-color":n,"data-text-color":t,style:O.useMemo(()=>({pointerEvents:"none",fontSize:(r*.75).toString()+"px",height:r.toString()+"px",lineHeight:r.toString()+"px",textAlign:"center",width:r.toString()+"px"}),[r]),children:"A"})},O0e=["default","gray","brown","red","orange","yellow","green","blue","purple","pink"],qM=e=>{let t=Qt(),n=dn();return f.jsxs(f.Fragment,{children:[f.jsx(()=>e.text?f.jsxs(f.Fragment,{children:[f.jsx(t.Generic.Menu.Label,{children:n.color_picker.text_title}),O0e.map(r=>f.jsx(t.Generic.Menu.Item,{onClick:()=>{e.onClick&&e.onClick(),e.text.setColor(r)},"data-test":"text-color-"+r,icon:f.jsx(Q9,{textColor:r,size:e.iconSize}),checked:e.text.color===r,children:n.color_picker.colors[r]},"text-color-"+r))]}):null,{}),f.jsx(()=>e.background?f.jsxs(f.Fragment,{children:[f.jsx(t.Generic.Menu.Label,{children:n.color_picker.background_title}),O0e.map(r=>f.jsx(t.Generic.Menu.Item,{onClick:()=>{e.onClick&&e.onClick(),e.background.setColor(r)},"data-test":"background-color-"+r,icon:f.jsx(Q9,{backgroundColor:r,size:e.iconSize}),checked:e.background.color===r,children:n.color_picker.colors[r]},"background-color-"+r))]}):null,{})]})};function HC(e,t){return`${e}Color`in t.schema.styleSchema&&t.schema.styleSchema[`${e}Color`].type===`${e}Color`&&t.schema.styleSchema[`${e}Color`].propSchema==="string"}var NQt=()=>{let e=Qt(),t=dn(),n=Ut(),r=HC("text",n),i=HC("background",n),s=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable||!(((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block]).find(h=>h.content!==void 0))return;let c=HC("text",l),u=HC("background",l);if(!(!c&&!u))return{textColor:c?l.getActiveStyles().textColor||"default":void 0,backgroundColor:u?l.getActiveStyles().backgroundColor||"default":void 0}}}),o=O.useCallback(l=>{if(!r)throw Error("Tried to set text color, but style does not exist in editor schema.");l==="default"?n.removeStyles({textColor:l}):n.addStyles({textColor:l}),setTimeout(()=>{n.focus()})},[n,r]),a=O.useCallback(l=>{if(!i)throw Error("Tried to set background color, but style does not exist in editor schema.");l==="default"?n.removeStyles({backgroundColor:l}):n.addStyles({backgroundColor:l}),setTimeout(()=>{n.focus()})},[i,n]);return s===void 0?null:f.jsxs(e.Generic.Menu.Root,{children:[f.jsx(e.Generic.Menu.Trigger,{children:f.jsx(e.FormattingToolbar.Button,{className:"bn-button","data-test":"colors",label:t.formatting_toolbar.colors.tooltip,mainTooltip:t.formatting_toolbar.colors.tooltip,icon:f.jsx(Q9,{textColor:s.textColor,backgroundColor:s.backgroundColor,size:20})})}),f.jsx(e.Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{text:s.textColor?{color:s.textColor,setColor:o}:void 0,background:s.backgroundColor?{color:s.backgroundColor,setColor:a}:void 0})})]})},S0e=e=>{for(let t of EBt)if(e.startsWith(t))return e;return`${TBt}://${e}`},o$e=e=>{let t=Qt(),n=dn(),{editLink:r}=Zn(GS),{url:i,text:s,showTextField:o}=e,[a,l]=O.useState(i),[c,u]=O.useState(s);O.useEffect(()=>{l(i),u(s)},[s,i]);let d=O.useCallback(y=>{var v,b;y.key==="Enter"&&!y.nativeEvent.isComposing&&(y.preventDefault(),r(S0e(a),c,e.range.from),(v=e.setToolbarOpen)==null||v.call(e,!1),(b=e.setToolbarPositionFrozen)==null||b.call(e,!1))},[r,a,c,e]),h=O.useCallback(y=>l(y.currentTarget.value),[]),p=O.useCallback(y=>u(y.currentTarget.value),[]),m=O.useCallback(()=>{var y,v;r(S0e(a),c,e.range.from),(y=e.setToolbarOpen)==null||y.call(e,!1),(v=e.setToolbarPositionFrozen)==null||v.call(e,!1)},[r,a,c,e]);return f.jsxs(t.Generic.Form.Root,{children:[f.jsx(t.Generic.Form.TextInput,{className:"bn-text-input",name:"url",icon:f.jsx(QRe,{}),autoFocus:!0,placeholder:n.link_toolbar.form.url_placeholder,value:a,onKeyDown:d,onChange:h,onSubmit:m}),o!==!1&&f.jsx(t.Generic.Form.TextInput,{className:"bn-text-input",name:"title",icon:f.jsx(MX,{}),placeholder:n.link_toolbar.form.title_placeholder,value:c,onKeyDown:d,onChange:p,onSubmit:m})]})};function RQt(e){return"link"in e.schema.inlineContentSchema&&e.schema.inlineContentSchema.link==="link"}var $Qt=()=>{let e=Ut(),t=Ug(),n=Qt(),r=dn(),i=Zn(ll),{showSelection:s}=Zn(Oj),[o,a]=O.useState(!1);O.useEffect(()=>(s(o,"createLinkButton"),()=>s(!1,"createLinkButton")),[o,s]);let l=as({editor:e,selector:({editor:c})=>{var u;if(!(!c.isEditable||!RQt(c)||N9(c.prosemirrorState.selection)||!(((u=c.getSelection())==null?void 0:u.blocks)||[c.getTextCursorPosition().block]).find(d=>d.content!==void 0)))return{url:c.getSelectedLinkUrl(),text:c.getSelectedText(),range:{from:c.prosemirrorState.selection.from,to:c.prosemirrorState.selection.to}}}});return O.useEffect(()=>{a(!1)},[l]),O.useEffect(()=>{let c=u=>{(u.ctrlKey||u.metaKey)&&u.key==="k"&&(a(!0),u.preventDefault())};return t==null||t.addEventListener("keydown",c),()=>{t==null||t.removeEventListener("keydown",c)}},[t]),l===void 0?null:f.jsxs(n.Generic.Popover.Root,{open:o,onOpenChange:a,children:[f.jsx(n.Generic.Popover.Trigger,{children:f.jsx(n.FormattingToolbar.Button,{className:"bn-button","data-test":"createLink",label:r.formatting_toolbar.link.tooltip,mainTooltip:r.formatting_toolbar.link.tooltip,secondaryTooltip:el(r.formatting_toolbar.link.secondary_tooltip,r.generic.ctrl_shortcut),icon:f.jsx(QRe,{}),onClick:()=>a(c=>!c)})}),f.jsx(n.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(o$e,{url:l.url||"",text:l.text,range:l.range,showTextField:!1,setToolbarOpen:c=>i.store.setState(c)})})]})},DQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable)return;let c=((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block];if(c.length!==1)return;let u=c[0];if(zo(u,l,u.type,{url:"string",caption:"string"}))return u}}),[i,s]=O.useState(!1),o=O.useCallback(l=>{r!==void 0&&Nr(n,r.type,{caption:"string"})&&n.updateBlock(r.id,{props:{caption:l.currentTarget.value}})},[r,n]),a=O.useCallback(l=>{l.key==="Enter"&&!l.nativeEvent.isComposing&&(l.preventDefault(),s(!1))},[]);return r===void 0?null:f.jsxs(t.Generic.Popover.Root,{open:i,onOpenChange:s,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_caption.tooltip,mainTooltip:e.formatting_toolbar.file_caption.tooltip,icon:f.jsx(y0e,{}),onClick:()=>s(l=>!l)})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(t.Generic.Form.Root,{children:f.jsx(t.Generic.Form.TextInput,{name:"file-caption",icon:f.jsx(y0e,{}),value:r.props.caption,autoFocus:!0,placeholder:e.formatting_toolbar.file_caption.input_placeholder,onKeyDown:a,onChange:o})})})]})},LQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;if(!s.isEditable)return;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string"}))return a}}),i=O.useCallback(()=>{r!==void 0&&(n.focus(),n.removeBlocks([r.id]))},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_delete.tooltip[r.type]||e.formatting_toolbar.file_delete.tooltip.file,mainTooltip:e.formatting_toolbar.file_delete.tooltip[r.type]||e.formatting_toolbar.file_delete.tooltip.file,icon:f.jsx(M7t,{}),onClick:i})},IQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:l})=>{var d;if(!l.isEditable)return;let c=((d=l.getSelection())==null?void 0:d.blocks)||[l.getTextCursorPosition().block];if(c.length!==1)return;let u=c[0];if(zo(u,l,u.type,{url:"string",name:"string"}))return u}}),[i,s]=O.useState(!1),o=O.useCallback(l=>{r!==void 0&&Nr(n,r.type,{name:"string"})&&n.updateBlock(r.id,{props:{name:l.currentTarget.value}})},[r,n]),a=O.useCallback(l=>{l.key==="Enter"&&!l.nativeEvent.isComposing&&(l.preventDefault(),s(!1))},[]);return r===void 0?null:f.jsxs(t.Generic.Popover.Root,{open:i,onOpenChange:s,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_rename.tooltip[r.type]||e.formatting_toolbar.file_rename.tooltip.file,mainTooltip:e.formatting_toolbar.file_rename.tooltip[r.type]||e.formatting_toolbar.file_rename.tooltip.file,icon:f.jsx(b0e,{}),onClick:()=>s(l=>!l)})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(t.Generic.Form.Root,{children:f.jsx(t.Generic.Form.TextInput,{name:"file-name",icon:f.jsx(b0e,{}),value:r.props.name,autoFocus:!0,placeholder:e.formatting_toolbar.file_rename.input_placeholder[r.type]||e.formatting_toolbar.file_rename.input_placeholder.file,onKeyDown:a,onChange:o})})})]})},BQt=()=>{let e=dn(),t=Qt(),n=as({editor:Ut(),selector:({editor:r})=>{var o;if(!r.isEditable)return;let i=((o=r.getSelection())==null?void 0:o.blocks)||[r.getTextCursorPosition().block];if(i.length!==1)return;let s=i[0];if(zo(s,r,s.type,{url:"string"}))return s}});return n===void 0?null:f.jsxs(t.Generic.Popover.Root,{position:"bottom",children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",mainTooltip:e.formatting_toolbar.file_replace.tooltip[n.type]||e.formatting_toolbar.file_replace.tooltip.file,label:e.formatting_toolbar.file_replace.tooltip[n.type]||e.formatting_toolbar.file_replace.tooltip.file,icon:f.jsx($7t,{})})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-panel-popover",variant:"panel-popover",children:f.jsx(s$e,{blockId:n.id})})]})},zQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var o;if(!(!s.isEditable||!(((o=s.getSelection())==null?void 0:o.blocks)||[s.getTextCursorPosition().block]).find(a=>a.content!==void 0)))return{canNestBlock:s.canNestBlock()}}}),i=O.useCallback(()=>{r!==void 0&&r.canNestBlock&&(n.focus(),n.nestBlock())},[n,r]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":"nestBlock",onClick:i,isDisabled:!r.canNestBlock,label:e.formatting_toolbar.nest.tooltip,mainTooltip:e.formatting_toolbar.nest.tooltip,secondaryTooltip:el(e.formatting_toolbar.nest.secondary_tooltip,e.generic.ctrl_shortcut),icon:f.jsx(W7t,{})})},QQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var o;if(!(!s.isEditable||!(((o=s.getSelection())==null?void 0:o.blocks)||[s.getTextCursorPosition().block]).find(a=>a.content!==void 0)))return{canUnnestBlock:s.canUnnestBlock()}}}),i=O.useCallback(()=>{r!==void 0&&r.canUnnestBlock&&(n.focus(),n.unnestBlock())},[n,r]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":"unnestBlock",onClick:i,isDisabled:!r.canUnnestBlock,label:e.formatting_toolbar.unnest.tooltip,mainTooltip:e.formatting_toolbar.unnest.tooltip,secondaryTooltip:el(e.formatting_toolbar.unnest.secondary_tooltip,e.generic.ctrl_shortcut),icon:f.jsx(U7t,{})})},FQt=e=>[{name:e.slash_menu.paragraph.title,type:"paragraph",icon:MX},{name:e.slash_menu.heading.title,type:"heading",props:{level:1,isToggleable:!1},icon:Ej},{name:e.slash_menu.heading_2.title,type:"heading",props:{level:2,isToggleable:!1},icon:Cj},{name:e.slash_menu.heading_3.title,type:"heading",props:{level:3,isToggleable:!1},icon:_j},{name:e.slash_menu.heading_4.title,type:"heading",props:{level:4,isToggleable:!1},icon:qRe},{name:e.slash_menu.heading_5.title,type:"heading",props:{level:5,isToggleable:!1},icon:HRe},{name:e.slash_menu.heading_6.title,type:"heading",props:{level:6,isToggleable:!1},icon:FRe},{name:e.slash_menu.toggle_heading.title,type:"heading",props:{level:1,isToggleable:!0},icon:Ej},{name:e.slash_menu.toggle_heading_2.title,type:"heading",props:{level:2,isToggleable:!0},icon:Cj},{name:e.slash_menu.toggle_heading_3.title,type:"heading",props:{level:3,isToggleable:!0},icon:_j},{name:e.slash_menu.quote.title,type:"quote",icon:LRe},{name:e.slash_menu.toggle_list.title,type:"toggleListItem",icon:DRe},{name:e.slash_menu.bullet_list.title,type:"bulletListItem",icon:IRe},{name:e.slash_menu.numbered_list.title,type:"numberedListItem",icon:BRe},{name:e.slash_menu.check_list.title,type:"checkListItem",icon:zRe}],HQt=e=>{let t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:a})=>{var l;return((l=a.getSelection())==null?void 0:l.blocks)||[a.getTextCursorPosition().block]}}),i=r[0],s=O.useMemo(()=>(e.items||FQt(n.dictionary)).filter(a=>Nr(n,a.type,Object.fromEntries(Object.entries(a.props||{}).map(([l,c])=>[l,typeof c])))),[n,e.items]),o=O.useMemo(()=>s.map(a=>{let l=a.icon,c=a.type===i.type,u=Object.entries(a.props||{}).filter(([d,h])=>h!==i.props[d]).length===0;return{text:a.name,icon:f.jsx(l,{size:16}),onClick:()=>{n.focus(),n.transact(()=>{for(let d of r)n.updateBlock(d,{type:a.type,props:a.props})})},isSelected:c&&u}}),[n,s,i.props,i.type,r]);return!O.useMemo(()=>o.find(a=>a.isSelected)!==void 0,[o])||!n.isEditable?null:f.jsx(t.FormattingToolbar.Select,{className:"bn-select",items:o})},qQt=()=>{let e=dn(),t=Qt(),n=Zn("comments"),{store:r}=Zn(ll),i=O.useCallback(()=>{n.startPendingComment(),r.setState(!1)},[n,r]);return f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.comment.tooltip,mainTooltip:e.formatting_toolbar.comment.tooltip,icon:f.jsx(VRe,{}),onClick:i})},VQt=()=>Ut().getExtension("comments")?f.jsx(qQt,{}):null,WQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=O.useCallback(()=>{n._tiptapEditor.chain().focus().addPendingComment().run()},[n]);return!n._tiptapEditor.commands.addPendingComment||!n.isEditable?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.comment.tooltip,mainTooltip:e.formatting_toolbar.comment.tooltip,icon:f.jsx(VRe,{}),onClick:r})};function F9(e,t){try{let n=new URL(e,t);if(n.protocol!=="javascript:")return n.href}catch{}return"#"}var UQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string"}))return a}}),i=O.useCallback(()=>{r!==void 0&&(n.focus(),n.resolveFileUrl?n.resolveFileUrl(r.props.url).then(s=>window.open(F9(s,window.location.href))):window.open(F9(r.props.url,window.location.href)))},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.file_download.tooltip[r.type]||e.formatting_toolbar.file_download.tooltip.file,mainTooltip:e.formatting_toolbar.file_download.tooltip[r.type]||e.formatting_toolbar.file_download.tooltip.file,icon:f.jsx(j7t,{}),onClick:i})},XQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=as({editor:n,selector:({editor:s})=>{var l;if(!s.isEditable)return;let o=((l=s.getSelection())==null?void 0:l.blocks)||[s.getTextCursorPosition().block];if(o.length!==1)return;let a=o[0];if(zo(a,s,a.type,{url:"string",showPreview:"boolean"}))return a}}),i=O.useCallback(()=>{r!==void 0&&Nr(n,r.type,{showPreview:"boolean"})&&n.updateBlock(r.id,{props:{showPreview:!r.props.showPreview}})},[r,n]);return r===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:"Toggle preview",mainTooltip:e.formatting_toolbar.file_preview_toggle.tooltip,icon:f.jsx(D7t,{}),isSelected:r.props.showPreview,onClick:i})},ZQt=()=>{let e=dn(),t=Qt(),n=Ut(),r=Zn(yr),i=as({editor:n,selector:({editor:o})=>{var c;if(!o.isEditable||!o.settings.tables.splitCells)return;let a=((c=o.getSelection())==null?void 0:c.blocks)||[o.getTextCursorPosition().block];if(a.length!==1)return;let l=a[0];if(l.type==="table")return{mergeDirection:r.getMergeDirection(l)}}}),s=O.useCallback(()=>{r==null||r.mergeCells()},[r]);return i===void 0?null:f.jsx(t.FormattingToolbar.Button,{className:"bn-button",label:e.formatting_toolbar.table_cell_merge.tooltip,mainTooltip:e.formatting_toolbar.table_cell_merge.tooltip,icon:i.mergeDirection==="horizontal"?f.jsx(H7t,{}):f.jsx(F7t,{}),onClick:s})},GQt=()=>Ut().getExtension(yr)?f.jsx(ZQt,{}):null,YQt={left:Y7t,center:J7t,right:G7t,justify:K7t},Pz=e=>{let t=Qt(),n=dn(),r=Ut(),i=as({editor:r,selector:({editor:a})=>{var u,d;if(!a.isEditable)return;let l=((u=a.getSelection())==null?void 0:u.blocks)||[a.getTextCursorPosition().block],c=l[0];if(zo(c,a,c.type,{textAlignment:Ln.textAlignment}))return{textAlignment:c.props.textAlignment,blocks:l};if(l.length===1&&zo(c,a,"table"))return(d=a.getExtension(yr))!=null&&d.getCellSelection()?{textAlignment:Ff(c.content.rows[0].cells[0]).props.textAlignment,blocks:[c]}:void 0}}),s=O.useCallback(a=>{var l;if(i!==void 0){r.focus();for(let c of i.blocks)if(zo(c,r,c.type,{textAlignment:Ln.textAlignment})&&Nr(r,c.type,{textAlignment:Ln.textAlignment}))r.updateBlock(c,{props:{textAlignment:a}});else if(c.type==="table"){let u=(l=r.getExtension(yr))==null?void 0:l.getCellSelection();if(!u)continue;let d=c.content.rows.map(h=>({...h,cells:h.cells.map(p=>Ff(p))}));u.cells.forEach(({row:h,col:p})=>{d[h].cells[p].props.textAlignment=a}),r.updateBlock(c,{type:"table",content:{...c.content,type:"tableContent",rows:d}}),r.setTextCursorPosition(c)}}},[r,i]);if(i===void 0)return null;let o=YQt[e.textAlignment];return f.jsx(t.FormattingToolbar.Button,{className:"bn-button","data-test":`alignText${e.textAlignment.slice(0,1).toUpperCase()+e.textAlignment.slice(1)}`,onClick:()=>s(e.textAlignment),isSelected:i.textAlignment===e.textAlignment,label:n.formatting_toolbar[`align_${e.textAlignment}`].tooltip,mainTooltip:n.formatting_toolbar[`align_${e.textAlignment}`].tooltip,icon:f.jsx(o,{})})},a$e=e=>[f.jsx(HQt,{items:e},"blockTypeSelect"),f.jsx(GQt,{},"tableCellMergeButton"),f.jsx(DQt,{},"fileCaptionButton"),f.jsx(BQt,{},"replaceFileButton"),f.jsx(IQt,{},"fileRenameButton"),f.jsx(LQt,{},"fileDeleteButton"),f.jsx(UQt,{},"fileDownloadButton"),f.jsx(XQt,{},"filePreviewButton"),f.jsx(FC,{basicTextStyle:"bold"},"boldStyleButton"),f.jsx(FC,{basicTextStyle:"italic"},"italicStyleButton"),f.jsx(FC,{basicTextStyle:"underline"},"underlineStyleButton"),f.jsx(FC,{basicTextStyle:"strike"},"strikeStyleButton"),f.jsx(Pz,{textAlignment:"left"},"textAlignLeftButton"),f.jsx(Pz,{textAlignment:"center"},"textAlignCenterButton"),f.jsx(Pz,{textAlignment:"right"},"textAlignRightButton"),f.jsx(NQt,{},"colorStyleButton"),f.jsx(zQt,{},"nestBlockButton"),f.jsx(QQt,{},"unnestBlockButton"),f.jsx($Qt,{},"createLinkButton"),f.jsx(VQt,{},"addCommentButton"),f.jsx(WQt,{},"addTiptapCommentButton")],l$e=e=>f.jsx(Qt().FormattingToolbar.Root,{className:"bn-toolbar bn-formatting-toolbar",children:e.children||a$e(e.blockTypeSelectItems)}),KQt=e=>{switch(e){case"left":return"top-start";case"center":return"top";case"right":return"top-end";default:return"top-start"}},c$e=e=>{let t=Ut(),n=Zn(ll,{editor:t}),r=Tr(ll,{editor:t}),i=as({editor:t,selector:({editor:l})=>n.store.state?{from:l.prosemirrorState.selection.from,to:l.prosemirrorState.selection.to}:void 0}),s=as({editor:t,selector:({editor:l})=>{let c=l.getTextCursorPosition().block;return zo(c,l,c.type,{textAlignment:Ln.textAlignment})?KQt(c.props.textAlignment):"top-start"}}),o=O.useMemo(()=>{var l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:r,onOpenChange:(d,h,p)=>{n.store.setState(d),p==="escape-key"&&t.focus()},placement:s,middleware:[oc(10),Qg(),eg()],...(l=e.floatingUIOptions)==null?void 0:l.useFloatingOptions},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:40},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[r,s,e.floatingUIOptions,n.store,t]),a=e.formattingToolbar||l$e;return f.jsx(PRe,{position:i,portalElement:e.portalElement,...o,children:r&&f.jsx(a,{})})},JQt=e=>{let t=Qt(),n=dn(),{deleteLink:r}=Zn(GS);return f.jsx(t.LinkToolbar.Button,{className:"bn-button",label:n.link_toolbar.delete.tooltip,mainTooltip:n.link_toolbar.delete.tooltip,isSelected:!1,onClick:()=>{var i;r(e.range.from),(i=e.setToolbarOpen)==null||i.call(e,!1)},icon:f.jsx(q7t,{})})},e9t=e=>{let t=Qt(),n=dn();return f.jsxs(t.Generic.Popover.Root,{onOpenChange:e.setToolbarPositionFrozen,children:[f.jsx(t.Generic.Popover.Trigger,{children:f.jsx(t.LinkToolbar.Button,{className:"bn-button",mainTooltip:n.link_toolbar.edit.tooltip,isSelected:!1,children:n.link_toolbar.edit.text})}),f.jsx(t.Generic.Popover.Content,{className:"bn-popover-content bn-form-popover",variant:"form-popover",children:f.jsx(o$e,{url:e.url,text:e.text,range:e.range,setToolbarOpen:e.setToolbarOpen,setToolbarPositionFrozen:e.setToolbarPositionFrozen})})]})},t9t=e=>{let t=Qt(),n=dn();return f.jsx(t.LinkToolbar.Button,{className:"bn-button",mainTooltip:n.link_toolbar.open.tooltip,label:n.link_toolbar.open.tooltip,isSelected:!1,onClick:()=>{window.open(F9(e.url,window.location.href),"_blank")},icon:f.jsx(T7t,{})})},n9t=e=>f.jsx(Qt().LinkToolbar.Root,{className:"bn-toolbar bn-link-toolbar",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(e9t,{url:e.url,text:e.text,range:e.range,setToolbarOpen:e.setToolbarOpen,setToolbarPositionFrozen:e.setToolbarPositionFrozen}),f.jsx(t9t,{url:e.url}),f.jsx(JQt,{range:e.range,setToolbarOpen:e.setToolbarOpen})]})}),r9t=e=>{let t=Ut(),[n,r]=O.useState(!1),[i,s]=O.useState(!1),o=Ug(),a=Zn(GS),[l,c]=O.useState(void 0);O.useEffect(()=>{let p=()=>{let b=a.getLinkAtSelection();if(!b){c(void 0),i||r(!1);return}c({cursorType:"text",url:b.mark.attrs.href,text:b.text,range:b.range,element:a.getLinkElementAtPos(b.range.from)}),i||r(!0)},m=b=>{if(l!==void 0&&l.cursorType==="text"||!(b.target instanceof HTMLElement))return;let S=a.getLinkAtElement(b.target);S&&c({cursorType:"mouse",url:S.mark.attrs.href,text:S.text,range:S.range,element:a.getLinkElementAtPos(S.range.from)})},y=t.onChange(p),v=t.onSelectionChange(p);return o==null||o.addEventListener("mouseover",m),()=>{y(),v(),o==null||o.removeEventListener("mouseover",m)}},[t,o,a,l,i]);let u=O.useMemo(()=>{var p,m,y,v;return{...e.floatingUIOptions,useFloatingOptions:{open:n,onOpenChange:(b,S,w)=>{i||l!==void 0&&l.cursorType==="text"&&w==="hover"||(w==="escape-key"&&t.focus(),r(b))},placement:"top-start",middleware:[oc(10),eg()],...(p=e.floatingUIOptions)==null?void 0:p.useFloatingOptions},useHoverProps:{enabled:l!==void 0&&l.cursorType==="mouse",delay:{open:250,close:250},handleClose:p5e(),...(m=e.floatingUIOptions)==null?void 0:m.useHoverProps},focusManagerProps:{disabled:!0,...(y=e.floatingUIOptions)==null?void 0:y.focusManagerProps},elementProps:{style:{zIndex:50},...(v=e.floatingUIOptions)==null?void 0:v.elementProps}}},[t,l,e.floatingUIOptions,n,i]),d=O.useMemo(()=>l!=null&&l.element?{element:l.element}:void 0,[l==null?void 0:l.element]);if(!t.isEditable)return null;let h=e.linkToolbar||n9t;return f.jsx(Yc,{reference:d,portalElement:e.portalElement,...u,children:l&&f.jsx(h,{url:l.url,text:l.text,range:l.range,setToolbarOpen:r,setToolbarPositionFrozen:s})})},i9t=()=>{let e=Qt(),t=dn(),n=Ut(),r=Zn(bl),i=Tr(kl,{editor:n,selector:o=>o==null?void 0:o.block}),s=O.useCallback(()=>{if(i===void 0)return;let o=i.content;if(o!==void 0&&Array.isArray(o)&&o.length===0)n.setTextCursorPosition(i),r.openSuggestionMenu("/");else{let a=n.insertBlocks([{type:"paragraph"}],i,"after")[0];n.setTextCursorPosition(a),r.openSuggestionMenu("/")}},[i,n,r]);return i===void 0?null:f.jsx(e.SideMenu.Button,{className:"bn-button",label:t.side_menu.add_block_label,icon:f.jsx(dQt,{size:24,onClick:s,"data-test":"dragHandleAdd"})})},s9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:i=>i==null?void 0:i.block});return r===void 0||!zo(r,n,r.type,{textColor:"string"})&&!zo(r,n,r.type,{backgroundColor:"string"})?null:f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:zo(r,n,r.type,{textColor:"string"})&&Nr(n,r.type,{textColor:"string"})?{color:r.props.textColor,setColor:i=>n.updateBlock(r,{type:r.type,props:{textColor:i}})}:void 0,background:zo(r,n,r.type,{backgroundColor:"string"})&&Nr(n,r.type,{backgroundColor:"string"})?{color:r.props.backgroundColor,setColor:i=>n.updateBlock(r,{props:{backgroundColor:i}})}:void 0})})]})},o9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:i=>i==null?void 0:i.block});return r===void 0?null:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",onClick:()=>{var o;let i=(o=n.getSelection())==null?void 0:o.blocks,s=i&&i.some(a=>a.id===r.id)?i:[r];n.removeBlocks(s)},children:e.children})},a9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block});if(r===void 0||r.type!=="table"||!n.settings.tables.headers)return null;let i=!!r.content.headerRows;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:i,onClick:()=>{n.updateBlock(r,{content:{...r.content,headerRows:i?void 0:1}})},children:e.children})},l9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block});if(r===void 0||r.type!=="table"||!n.settings.tables.headers)return null;let i=!!r.content.headerCols;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:i,onClick:()=>{n.updateBlock(r,{content:{...r.content,headerCols:i?void 0:1}})},children:e.children})},c9t=e=>{let t=Qt(),n=dn();return f.jsx(t.Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-drag-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(o9t,{children:n.drag_handle.delete_menuitem}),f.jsx(s9t,{children:n.drag_handle.colors_menuitem}),f.jsx(a9t,{children:n.drag_handle.header_row_menuitem}),f.jsx(l9t,{children:n.drag_handle.header_column_menuitem})]})})},u9t=e=>{let t=Qt(),n=dn(),r=Zn(kl),i=Tr(kl,{selector:o=>o==null?void 0:o.block});if(i===void 0)return null;let s=e.dragHandleMenu||c9t;return f.jsxs(t.Generic.Menu.Root,{onOpenChange:o=>{o?r.freezeMenu():r.unfreezeMenu()},position:"left",children:[f.jsx(t.Generic.Menu.Trigger,{children:f.jsx(t.SideMenu.Button,{label:n.side_menu.drag_handle_label,draggable:!0,onDragStart:o=>r.blockDragStart(o,i),onDragEnd:r.blockDragEnd,className:"bn-button",icon:f.jsx(KRe,{size:24,"data-test":"dragHandle"})})}),f.jsx(s,{children:e.children})]})},d9t=e=>{let t=Qt(),n=Ut(),r=Tr(kl,{editor:n,selector:s=>s==null?void 0:s.block}),i=O.useMemo(()=>{var o;if(r===void 0)return{};let s={"data-block-type":r.type};return r.type==="heading"&&(s["data-level"]=r.props.level.toString()),(o=n.schema.blockSpecs[r.type].implementation.meta)!=null&&o.fileBlockAccept&&(r.props.url?s["data-url"]="true":s["data-url"]="false"),s},[r,n.schema.blockSpecs]);return f.jsx(t.SideMenu.Root,{className:"bn-side-menu",...i,children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(i9t,{}),f.jsx(u9t,{dragHandleMenu:e.dragHandleMenu})]})})},h9t=e=>{let t=Ut(),{show:n,block:r}=Tr(kl,{selector:a=>a===void 0?void 0:{show:a.show,block:a.block}})||{},i=O.useCallback((a,l,c)=>{let u=!1;return py(a,l,()=>{var d;if(!u){u=!0;return}(d=t.getExtension(kl))==null||d.hideMenuIfNotFrozen()},{ancestorScroll:!0,ancestorResize:!1,elementResize:!1,layoutShift:!1})},[t]),s=O.useMemo(()=>{var a,l,c,u;return{...e.floatingUIOptions,useFloatingOptions:{open:n,placement:"left-start",whileElementsMounted:i,...(a=e.floatingUIOptions)==null?void 0:a.useFloatingOptions},useDismissProps:{enabled:!1,...(l=e.floatingUIOptions)==null?void 0:l.useDismissProps},focusManagerProps:{disabled:!0,...(c=e.floatingUIOptions)==null?void 0:c.focusManagerProps},elementProps:{style:{zIndex:20},...(u=e.floatingUIOptions)==null?void 0:u.elementProps}}},[e.floatingUIOptions,n,i]),o=e.sideMenu||d9t;return f.jsx(i$e,{blockId:n?r==null?void 0:r.id:void 0,portalElement:e.portalElement,...s,children:(r==null?void 0:r.id)&&f.jsx(o,{})})};async function f9t(e,t){return(await a6t(e,t)).map(({id:n,onItemClick:r})=>({id:n,onItemClick:r,icon:n}))}function p9t(e){let t=Qt(),n=dn(),{items:r,loadingState:i,selectedIndex:s,onItemClick:o,columns:a}=e,l=i==="loading-initial"||i==="loading"?f.jsx(t.GridSuggestionMenu.Loader,{className:"bn-grid-suggestion-menu-loader",columns:a}):null,c=O.useMemo(()=>{let u=[];for(let d=0;d<r.length;d++){let h=r[d];u.push(f.jsx(t.GridSuggestionMenu.Item,{className:"bn-grid-suggestion-menu-item",item:h,id:`bn-grid-suggestion-menu-item-${d}`,isSelected:d===s,onClick:()=>o==null?void 0:o(h)},h.id))}return u},[t,r,o,s]);return f.jsxs(t.GridSuggestionMenu.Root,{id:"bn-grid-suggestion-menu",columns:a,className:"bn-grid-suggestion-menu",children:[l,c,c.length===0&&e.loadingState==="loaded"&&f.jsx(t.GridSuggestionMenu.EmptyItem,{className:"bn-grid-suggestion-menu-empty-item",columns:a,children:n.suggestion_menu.no_items_title})]})}function u$e(e,t,n,r=3){let i=O.useRef(0);O.useEffect(()=>{t!==void 0&&(e.length>0?i.current=t.length:t.length-i.current>r&&n())},[n,r,e.length,t])}function d$e(e,t){let[n,r]=O.useState([]),[i,s]=O.useState(!1),o=O.useRef(void 0),a=O.useRef(void 0);return O.useEffect(()=>{let l=e;o.current=e,s(!0),t(e).then(c=>{o.current===l&&(r(c),s(!1),a.current=l)})},[e,t]),{items:n||[],usedQuery:a.current,loadingState:a.current===void 0?"loading-initial":i?"loading":"loaded"}}function m9t(e,t,n,r,i){let s=Ug(e),[o,a]=O.useState(0);return O.useEffect(()=>{let l=c=>(c.key==="ArrowLeft"&&(c.preventDefault(),n.length&&a((o-1+n.length)%n.length)),c.key==="ArrowRight"&&(c.preventDefault(),n.length&&a((o+1+n.length)%n.length)),c.key==="ArrowUp"?(c.preventDefault(),n.length&&a((o-r+n.length)%n.length),!0):c.key==="ArrowDown"?(c.preventDefault(),n.length&&a((o+r)%n.length),!0):c.key==="Enter"&&!c.isComposing?(c.stopPropagation(),c.preventDefault(),n.length&&(i==null||i(n[o])),!0):!1);return s==null||s.addEventListener("keydown",l,!0),()=>{s==null||s.removeEventListener("keydown",l,!0)}},[s,n,o,i,r,r!==void 0&&r>1]),O.useEffect(()=>{a(0)},[t]),{selectedIndex:n.length===0?void 0:o}}function g9t(e){let t=Pl().setContentEditableProps,n=Ut(),{getItems:r,gridSuggestionMenuComponent:i,query:s,clearQuery:o,closeMenu:a,onItemClick:l,columns:c}=e,u=O.useCallback(y=>{a(),o(),l==null||l(y)},[l,a,o]),{items:d,usedQuery:h,loadingState:p}=d$e(s,r);u$e(d,h,a);let{selectedIndex:m}=m9t(n,s,d,c,u);return O.useEffect(()=>(t(y=>({...y,"aria-expanded":!0,"aria-controls":"bn-suggestion-menu"})),()=>{t(y=>({...y,"aria-expanded":!1,"aria-controls":void 0}))}),[t]),O.useEffect(()=>(t(y=>({...y,"aria-activedescendant":m?"bn-suggestion-menu-item-"+m:void 0})),()=>{t(y=>({...y,"aria-activedescendant":void 0}))}),[t,m]),f.jsx(i,{items:d,onItemClick:u,loadingState:p,selectedIndex:m,columns:c})}function v9t(e){let t=Ut(),n=Ug(),{triggerCharacter:r,gridSuggestionMenuComponent:i,columns:s,shouldOpen:o,minQueryLength:a,onItemClick:l,getItems:c}=e,u=O.useMemo(()=>l||(v=>{v.onItemClick(t)}),[t,l]),d=O.useMemo(()=>c||(async v=>await f9t(t,v)),[t,c]),h=Zn(bl);O.useEffect(()=>{h.addSuggestionMenu({triggerCharacter:r,shouldOpen:o})},[h,r,o]);let p=Tr(bl),m=Tr(bl,{selector:v=>({element:(n==null?void 0:n.firstChild)||void 0,getBoundingClientRect:()=>(v==null?void 0:v.referencePos)||new DOMRect})}),y=O.useMemo(()=>{var v,b,S;return{...e.floatingUIOptions,useFloatingOptions:{open:(p==null?void 0:p.show)&&(p==null?void 0:p.triggerCharacter)===r,onOpenChange:w=>{w||h.closeMenu()},placement:"bottom-start",middleware:[oc(10),s5e({allowedPlacements:["bottom-start","top-start"],padding:10}),Qg(),Bw({apply({elements:w,availableHeight:k}){w.floating.style.maxHeight=`${Math.max(0,k)}px`},padding:10})],...(v=e.floatingUIOptions)==null?void 0:v.useFloatingOptions},focusManagerProps:{disabled:!0,...(b=e.floatingUIOptions)==null?void 0:b.focusManagerProps},elementProps:{onMouseDownCapture:w=>w.preventDefault(),style:{zIndex:70},...(S=e.floatingUIOptions)==null?void 0:S.elementProps}}},[e.floatingUIOptions,p==null?void 0:p.show,p==null?void 0:p.triggerCharacter,h,r]);return!p||!p.ignoreQueryLength&&a&&(p.query.startsWith(" ")||p.query.length<a)?null:f.jsx(Yc,{reference:m,portalElement:e.portalElement,...y,children:r&&f.jsx(g9t,{query:p.query,closeMenu:h.closeMenu,clearQuery:h.clearQuery,getItems:d,columns:s,gridSuggestionMenuComponent:i||p9t,onItemClick:u})})}function y9t(e){let t=Qt(),n=dn(),{items:r,loadingState:i,selectedIndex:s,onItemClick:o}=e,a=i==="loading-initial"||i==="loading"?f.jsx(t.SuggestionMenu.Loader,{className:"bn-suggestion-menu-loader"}):null,l=O.useMemo(()=>{let c,u=[];for(let d=0;d<r.length;d++){let h=r[d];h.group!==c&&(c=h.group,u.push(f.jsx(t.SuggestionMenu.Label,{className:"bn-suggestion-menu-label",children:c},c))),u.push(f.jsx(t.SuggestionMenu.Item,{className:vr("bn-suggestion-menu-item",h.size==="small"?"bn-suggestion-menu-item-small":""),item:h,id:`bn-suggestion-menu-item-${d}`,isSelected:d===s,onClick:()=>o==null?void 0:o(h)},h.title))}return u},[t,r,o,s]);return f.jsxs(t.SuggestionMenu.Root,{id:"bn-suggestion-menu",className:"bn-suggestion-menu",children:[l,l.length===0&&(e.loadingState==="loading"||e.loadingState==="loaded")&&f.jsx(t.SuggestionMenu.EmptyItem,{className:"bn-suggestion-menu-item",children:n.suggestion_menu.no_items_title}),a]})}function b9t(e,t){let[n,r]=O.useState(0);return{selectedIndex:n,setSelectedIndex:r,handler:i=>{if(i.key==="ArrowUp")return i.preventDefault(),e.length&&r((n-1+e.length)%e.length),!0;if(i.key==="ArrowDown")return i.preventDefault(),e.length&&r((n+1)%e.length),!0;if(i.key==="PageUp")return i.preventDefault(),e.length&&r(0),!0;if(i.key==="PageDown")return i.preventDefault(),e.length&&r(e.length-1),!0;let s=x9t(i)?i.nativeEvent.isComposing:i.isComposing;return i.key==="Enter"&&!s?(i.preventDefault(),i.stopPropagation(),e.length&&(t==null||t(e[n])),!0):!1}}}function x9t(e){return e.nativeEvent!==void 0}function w9t(e,t,n,r,i){let s=Ug(),{selectedIndex:o,setSelectedIndex:a,handler:l}=b9t(n,r);return O.useEffect(()=>{let c=s;return c==null||c.addEventListener("keydown",l,!0),()=>{c==null||c.removeEventListener("keydown",l,!0)}},[s,n,o,r,i,l]),O.useEffect(()=>{a(0)},[t,a]),{selectedIndex:n.length===0?void 0:o}}function O9t(e){let t=Pl().setContentEditableProps,n=Ut(),{getItems:r,suggestionMenuComponent:i,query:s,clearQuery:o,closeMenu:a,onItemClick:l}=e,c=O.useCallback(m=>{a(),o(),l==null||l(m)},[l,a,o]),{items:u,usedQuery:d,loadingState:h}=d$e(s,r);u$e(u,d,a);let{selectedIndex:p}=w9t(n,s,u,c);return O.useEffect(()=>(t(m=>({...m,"aria-expanded":!0,"aria-controls":"bn-suggestion-menu"})),()=>{t(m=>({...m,"aria-expanded":!1,"aria-controls":void 0}))}),[t]),O.useEffect(()=>(t(m=>({...m,"aria-activedescendant":p?"bn-suggestion-menu-item-"+p:void 0})),()=>{t(m=>({...m,"aria-activedescendant":void 0}))}),[t,p]),f.jsx(i,{items:u,onItemClick:c,loadingState:h,selectedIndex:p})}var S9t={heading:Ej,heading_2:Cj,heading_3:_j,heading_4:qRe,heading_5:HRe,heading_6:FRe,toggle_heading:Ej,toggle_heading_2:Cj,toggle_heading_3:_j,quote:LRe,toggle_list:DRe,numbered_list:BRe,bullet_list:IRe,check_list:zRe,paragraph:MX,table:z7t,image:L7t,video:I7t,audio:R7t,file:tQt,emoji:_7t,code_block:X7t,divider:C7t};function h$e(e){return Z3t(e).map(t=>{let n=S9t[t.key];return{...t,icon:f.jsx(n,{size:18})}})}function f$e(e){let t=Ut(),n=Ug(),{triggerCharacter:r,suggestionMenuComponent:i,shouldOpen:s,minQueryLength:o,onItemClick:a,getItems:l}=e,c=O.useMemo(()=>a||(y=>{y.onItemClick(t)}),[t,a]),u=O.useMemo(()=>l||(async y=>DNe(h$e(t),y)),[t,l]),d=Zn(bl);O.useEffect(()=>{d.addSuggestionMenu({triggerCharacter:r,shouldOpen:s})},[d,r,s]);let h=Tr(bl),p=Tr(bl,{selector:y=>({element:(n==null?void 0:n.firstChild)||void 0,getBoundingClientRect:()=>(y==null?void 0:y.referencePos)||new DOMRect})}),m=O.useMemo(()=>{var y,v,b;return{...e.floatingUIOptions,useFloatingOptions:{open:(h==null?void 0:h.show)&&(h==null?void 0:h.triggerCharacter)===r,onOpenChange:S=>{S||d.closeMenu()},placement:"bottom-start",middleware:[oc(10),s5e({allowedPlacements:["bottom-start","top-start"],padding:10}),Qg(),Bw({apply({elements:S,availableHeight:w}){S.floating.style.maxHeight=`${Math.max(0,w)}px`},padding:10})],...(y=e.floatingUIOptions)==null?void 0:y.useFloatingOptions},focusManagerProps:{disabled:!0,...(v=e.floatingUIOptions)==null?void 0:v.focusManagerProps},elementProps:{onMouseDownCapture:S=>S.preventDefault(),style:{zIndex:80},...(b=e.floatingUIOptions)==null?void 0:b.elementProps}}},[e.floatingUIOptions,h==null?void 0:h.show,h==null?void 0:h.triggerCharacter,d,r]);return!h||!h.ignoreQueryLength&&o&&(h.query.startsWith(" ")||h.query.length<o)?null:f.jsx(Yc,{reference:p,portalElement:e.portalElement,...m,children:r&&f.jsx(O9t,{query:h.query,closeMenu:d.closeMenu,clearQuery:d.clearQuery,getItems:u,suggestionMenuComponent:i||y9t,onItemClick:c})})}var k9t=(e,t=.3)=>{let n=Math.floor(e)+t,r=Math.ceil(e)-t;return e>=n&&e<=r?Math.round(e):e<n?Math.floor(e):Math.ceil(e)},_9t=e=>{let t=Qt(),n=Ut(),r=Zn(yr),i=Tr(yr,{selector:u=>u==null?void 0:u.block}),s=O.useRef(!1),[o,a]=O.useState(),l=O.useCallback(u=>{r.freezeHandles(),e.hideOtherElements(!0),i&&(a({originalContent:i.content,originalCroppedContent:{rows:r.cropEmptyRowsOrColumns(i,e.orientation==="addOrRemoveColumns"?"columns":"rows")},startPos:e.orientation==="addOrRemoveColumns"?u.clientX:u.clientY}),s.current=!1,u.preventDefault())},[i,e,r]),c=O.useCallback(()=>{!i||s.current||n.updateBlock(i,{type:"table",content:{...i.content,rows:e.orientation==="addOrRemoveColumns"?r.addRowsOrColumns(i,"columns",1):r.addRowsOrColumns(i,"rows",1)}})},[i,n,e.orientation,r]);return O.useEffect(()=>{let u=d=>{var b,S;if(!i)return;if(!o)throw Error("editingState is undefined");s.current=!0;let h=(e.orientation==="addOrRemoveColumns"?d.clientX:d.clientY)-o.startPos,p=e.orientation==="addOrRemoveColumns"?((b=o.originalCroppedContent.rows[0])==null?void 0:b.cells.length)??0:o.originalCroppedContent.rows.length,m=e.orientation==="addOrRemoveColumns"?((S=o.originalContent.rows[0])==null?void 0:S.cells.length)??0:o.originalContent.rows.length,y=e.orientation==="addOrRemoveColumns"?i.content.rows[0].cells.length:i.content.rows.length,v=m+k9t(h/(e.orientation==="addOrRemoveColumns"?A3t:N3t),.3);v>=p&&v>0&&v!==y&&(n.updateBlock(i,{type:"table",content:{...i.content,rows:e.orientation==="addOrRemoveColumns"?r.addRowsOrColumns({type:"table",content:o.originalCroppedContent},"columns",v-p):r.addRowsOrColumns({type:"table",content:o.originalCroppedContent},"rows",v-p)}}),i.content&&n.setTextCursorPosition(i))};return o&&window.addEventListener("mousemove",u),()=>{window.removeEventListener("mousemove",u)}},[i,o,n,e.orientation,r]),O.useEffect(()=>{let u=()=>{e.hideOtherElements(!1),r.unfreezeHandles(),a(void 0)};return o&&window.addEventListener("mouseup",u),()=>{window.removeEventListener("mouseup",u)}},[o,e,r]),n.isEditable?f.jsx(t.TableHandle.ExtendButton,{className:vr("bn-extend-button",e.orientation==="addOrRemoveColumns"?"bn-extend-button-add-remove-columns":"bn-extend-button-add-remove-rows",o===null?"":"bn-extend-button-editing"),onClick:c,onMouseDown:l,children:e.children||f.jsx(N7t,{size:18,"data-test":"extendButton"})}):null},C9t=e=>{var c,u;let t=Qt(),n=dn(),r=Ut(),{block:i,colIndex:s,rowIndex:o}=Tr(yr,{selector:d=>({block:d==null?void 0:d.block,colIndex:d==null?void 0:d.colIndex,rowIndex:d==null?void 0:d.rowIndex})}),a=(d,h)=>{if(i===void 0||s===void 0||o===void 0)return;let p=i.content.rows.map(m=>({...m,cells:m.cells.map(y=>Ff(y))}));h==="text"?p[o].cells[s].props.textColor=d:p[o].cells[s].props.backgroundColor=d,r.updateBlock(i,{type:"table",content:{...i.content,rows:p}}),r.setTextCursorPosition(i)};if(i===void 0||s===void 0||o===void 0)return null;let l=(u=(c=i.content.rows[o])==null?void 0:c.cells)==null?void 0:u[s];return!l||r.settings.tables.cellTextColor===!1&&r.settings.tables.cellBackgroundColor===!1?null:f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children||n.drag_handle.colors_menuitem})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:r.settings.tables.cellTextColor?{color:Hf(l)?l.props.textColor:"default",setColor:d=>a(d,"text")}:void 0,background:r.settings.tables.cellBackgroundColor?{color:Hf(l)?l.props.backgroundColor:"default",setColor:d=>a(d,"background")}:void 0})})]})},E9t=()=>{var l,c;let e=Qt(),t=dn(),n=Ut(),r=Zn(yr),{block:i,colIndex:s,rowIndex:o}=Tr(yr,{selector:u=>({block:u==null?void 0:u.block,colIndex:u==null?void 0:u.colIndex,rowIndex:u==null?void 0:u.rowIndex})});if(i===void 0||s===void 0||o===void 0)return null;let a=(c=(l=i.content.rows[o])==null?void 0:l.cells)==null?void 0:c[s];return!a||!Hf(a)||pO(a)===1&&mg(a)===1||!n.settings.tables.splitCells?null:f.jsx(e.Generic.Menu.Item,{onClick:()=>{r.splitCell({row:o,col:s})},children:t.table_handle.split_cell_menuitem})},T9t=e=>f.jsx(Qt().Generic.Menu.Dropdown,{className:"bn-menu-dropdown bn-table-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(E9t,{}),f.jsx(C9t,{})]})}),j9t=e=>{let t=Qt(),n=Ut(),r=Zn(yr),i=e.tableCellMenu||T9t;return!n.settings.tables.splitCells&&!n.settings.tables.cellBackgroundColor&&!n.settings.tables.cellTextColor?null:f.jsxs(t.Generic.Menu.Root,{onOpenChange:s=>{s?(r.freezeHandles(),e.hideOtherElements(!0)):(r.unfreezeHandles(),e.hideOtherElements(!1),n.focus())},position:"right",children:[f.jsx(t.Generic.Menu.Trigger,{children:f.jsx(t.Generic.Menu.Button,{className:"bn-table-cell-handle",children:e.children||f.jsx(hQt,{size:12,"data-test":"tableCellHandle"})})}),f.jsx(i,{})]})},k0e=e=>{let t=Qt(),n=dn(),r=Zn(yr),i=Tr(yr,{selector:s=>e.orientation==="column"?s==null?void 0:s.colIndex:s==null?void 0:s.rowIndex});return r===void 0||i===void 0?null:f.jsx(t.Generic.Menu.Item,{onClick:()=>{r.addRowOrColumn(i,e.orientation==="row"?{orientation:"row",side:e.side}:{orientation:"column",side:e.side})},children:n.table_handle[`add_${e.side}_menuitem`]})},P9t=e=>{let t=Qt(),n=dn(),r=Zn(yr),i=Tr(yr,{selector:s=>e.orientation==="column"?s==null?void 0:s.colIndex:s==null?void 0:s.rowIndex});return r===void 0||i===void 0?null:f.jsx(t.Generic.Menu.Item,{onClick:()=>r.removeRowOrColumn(i,e.orientation),children:e.orientation==="row"?n.table_handle.delete_row_menuitem:n.table_handle.delete_column_menuitem})},M9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),{block:s,index:o}=Tr(yr,{selector:u=>({block:u==null?void 0:u.block,index:e.orientation==="column"?u==null?void 0:u.colIndex:u==null?void 0:u.rowIndex})}),a=O.useMemo(()=>i===void 0||s===void 0||o===void 0?[]:e.orientation==="row"?i.getCellsAtRowHandle(s,o):i.getCellsAtColumnHandle(s,o),[s,o,e.orientation,i]),l=(u,d)=>{if(s===void 0)return;let h=s.content.rows.map(p=>({...p,cells:p.cells.map(m=>Ff(m))}));a.forEach(({row:p,col:m})=>{d==="text"?h[p].cells[m].props.textColor=u:h[p].cells[m].props.backgroundColor=u}),r.updateBlock(s,{type:"table",content:{...s.content,rows:h}}),r.setTextCursorPosition(s)};if(!a||!a[0]||!i||r.settings.tables.cellTextColor===!1&&r.settings.tables.cellBackgroundColor===!1)return null;let c=Ff(a[0].cell);return f.jsxs(t.Generic.Menu.Root,{position:"right",sub:!0,children:[f.jsx(t.Generic.Menu.Trigger,{sub:!0,children:f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",subTrigger:!0,children:e.children||n.drag_handle.colors_menuitem})}),f.jsx(t.Generic.Menu.Dropdown,{sub:!0,className:"bn-menu-dropdown bn-color-picker-dropdown",children:f.jsx(qM,{iconSize:18,text:r.settings.tables.cellTextColor?{color:a.every(({cell:u})=>Hf(u)&&u.props.textColor===c.props.textColor)?c.props.textColor:"default",setColor:u=>{l(u,"text")}}:void 0,background:r.settings.tables.cellBackgroundColor?{color:a.every(({cell:u})=>Hf(u)&&u.props.backgroundColor===c.props.backgroundColor)?c.props.backgroundColor:"default",setColor:u=>l(u,"background")}:void 0})})]})},A9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),{block:s,index:o}=Tr(yr,{selector:l=>({block:l==null?void 0:l.block,index:e.orientation==="column"?l==null?void 0:l.colIndex:l==null?void 0:l.rowIndex})});if(i===void 0||s===void 0||o!==0||e.orientation!=="row"||!r.settings.tables.headers)return null;let a=!!s.content.headerRows;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:a,onClick:()=>{r.updateBlock(s,{...s,content:{...s.content,headerRows:a?void 0:1}})},children:n.drag_handle.header_row_menuitem})},N9t=e=>{let t=Qt(),n=dn(),r=Ut(),i=Zn(yr),s=Tr(yr,{selector:l=>l==null?void 0:l.block}),o=Tr(yr,{selector:l=>e.orientation==="column"?l==null?void 0:l.colIndex:l==null?void 0:l.rowIndex});if(!i||o!==0||!s||e.orientation!=="column"||!r.settings.tables.headers)return null;let a=!!s.content.headerCols;return f.jsx(t.Generic.Menu.Item,{className:"bn-menu-item",checked:a,onClick:()=>{r.updateBlock(s,{...s,content:{...s.content,headerCols:a?void 0:1}})},children:n.drag_handle.header_column_menuitem})},R9t=e=>f.jsx(Qt().Generic.Menu.Dropdown,{className:"bn-table-handle-menu",children:e.children||f.jsxs(f.Fragment,{children:[f.jsx(P9t,{orientation:e.orientation}),f.jsx(k0e,{orientation:e.orientation,side:e.orientation==="row"?"above":"left"}),f.jsx(k0e,{orientation:e.orientation,side:e.orientation==="row"?"below":"right"}),f.jsx(A9t,{orientation:e.orientation}),f.jsx(N9t,{orientation:e.orientation}),f.jsx(M9t,{orientation:e.orientation})]})}),$9t=e=>{let t=Ut(),n=Qt(),[r,i]=O.useState(!1),s=e.tableHandleMenu||R9t,o=Zn(yr),a=Tr(yr),l=O.useMemo(()=>!o||!a||!a.block||a.block.type!=="table"?!1:e.orientation==="column"?o.getCellsAtColumnHandle(a.block,a.colIndex).every(({cell:c})=>mg(c)===1):o.getCellsAtRowHandle(a.block,a.rowIndex).every(({cell:c})=>pO(c)===1),[e.orientation,a,o]);return a?f.jsxs(n.Generic.Menu.Root,{onOpenChange:c=>{c?(o.freezeHandles(),e.hideOtherElements(!0)):(o.unfreezeHandles(),e.hideOtherElements(!1),t.focus())},position:"right",children:[f.jsx(n.Generic.Menu.Trigger,{children:f.jsx(n.TableHandle.Root,{className:vr("bn-table-handle",r?"bn-table-handle-dragging":"",l?"":"bn-table-handle-not-draggable"),draggable:l,onDragStart:c=>{i(!0),e.hideOtherElements(!0),e.orientation==="column"?o.colDragStart(c):o.rowDragStart(c)},onDragEnd:()=>{o.dragEnd(),e.hideOtherElements(!1),i(!1)},style:e.orientation==="column"?{transform:"rotate(0.25turn)"}:void 0,children:e.children||f.jsx(KRe,{size:24,"data-test":"tableHandle"})})}),f.jsx(s,{orientation:e.orientation})]}):null},D9t=e=>{let t=Ut(),[n,r]=O.useState(),i=Tr(yr),s=O.useMemo(()=>{let d={};if(i===void 0)return{};let h=So(i.block.id,t.prosemirrorState.doc);if(!h)return{};let p=h.posBeforeNode+1,m=t.prosemirrorView.domAtPos(p+1).node;if(!(m instanceof Element))return{};if(d.tableReference={element:m},i.rowIndex===void 0||i.colIndex===void 0)return d;let y=t.prosemirrorState.doc.resolve(p+1).posAtIndex(i.rowIndex),v=t.prosemirrorState.doc.resolve(y+1).posAtIndex(i.colIndex),b=t.prosemirrorView.domAtPos(v+1).node;return b instanceof Element?(d.cellReference={element:b},d.rowReference={element:m,getBoundingClientRect:()=>{let S=m.getBoundingClientRect(),w=b.getBoundingClientRect();return new DOMRect(S.x,i.draggingState&&i.draggingState.draggedCellOrientation==="row"?i.draggingState.mousePos-w.height/2:w.y,S.width,w.height)}},d.columnReference={element:m,getBoundingClientRect:()=>{let S=m.getBoundingClientRect(),w=b.getBoundingClientRect();return new DOMRect(i.draggingState&&i.draggingState.draggedCellOrientation==="col"?i.draggingState.mousePos-w.width/2:w.x,S.y,w.width,S.height)}},d):{}},[t,i]),o=O.useCallback((d,h,p)=>{let m=!1;return py(d,h,()=>{var y;if(!m){m=!0;return}(y=t.getExtension(yr))==null||y.hideHandlesIfNotFrozen()},{ancestorScroll:!0,ancestorResize:!1,elementResize:!1,layoutShift:!1})},[t]),a=O.useMemo(()=>i===void 0?void 0:{rowTableHandle:{useFloatingOptions:{open:i.show&&i.rowIndex!==void 0&&(!n||n==="rowTableHandle"),placement:"left",middleware:[oc(-10)],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},columnTableHandle:{useFloatingOptions:{open:i.show&&i.colIndex!==void 0&&(!n||n==="columnTableHandle"),placement:"top",middleware:[oc(-12)],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},tableCellHandle:{useFloatingOptions:{open:i.show&&i.rowIndex!==void 0&&i.colIndex!==void 0&&(!n||n==="tableCellHandle"),placement:"top-end",middleware:[oc({mainAxis:-15,crossAxis:-1})],whileElementsMounted:o},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},extendRowsButton:{useFloatingOptions:{open:i.show&&i.showAddOrRemoveRowsButton&&(!n||n==="extendRowsButton"),placement:"bottom",whileElementsMounted:o,middleware:[Bw({apply({rects:d,elements:h}){Object.assign(h.floating.style,{width:`${d.reference.width}px`})}})]},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}},extendColumnsButton:{useFloatingOptions:{open:i.show&&i.showAddOrRemoveColumnsButton&&(!n||n==="extendColumnsButton"),placement:"right",whileElementsMounted:o,middleware:[Bw({apply({rects:d,elements:h}){Object.assign(h.floating.style,{height:`${d.reference.height}px`})}})]},focusManagerProps:{disabled:!0},elementProps:{style:{zIndex:10}}}},[n,i,o]);if(!i)return null;let l=e.tableHandle||$9t,c=e.extendButton||_9t,u=e.tableCellHandle||j9t;return f.jsxs(f.Fragment,{children:[f.jsx(Yc,{reference:s==null?void 0:s.rowReference,portalElement:e.portalElement,...a==null?void 0:a.rowTableHandle,children:i.show&&i.rowIndex!==void 0&&(!n||n==="rowTableHandle")&&f.jsx(l,{orientation:"row",hideOtherElements:d=>r(d?"rowTableHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.columnReference,portalElement:e.portalElement,...a==null?void 0:a.columnTableHandle,children:i.show&&i.colIndex!==void 0&&(!n||n==="columnTableHandle")&&f.jsx(l,{orientation:"column",hideOtherElements:d=>r(d?"columnTableHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.cellReference,portalElement:e.portalElement,...a==null?void 0:a.tableCellHandle,children:i.show&&i.rowIndex!==void 0&&i.colIndex!==void 0&&(!n||n==="tableCellHandle")&&f.jsx(u,{hideOtherElements:d=>r(d?"tableCellHandle":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.tableReference,portalElement:e.portalElement,...a==null?void 0:a.extendRowsButton,children:i.show&&i.showAddOrRemoveRowsButton&&(!n||n==="extendRowsButton")&&f.jsx(c,{orientation:"addOrRemoveRows",hideOtherElements:d=>r(d?"extendRowsButton":void 0)})}),f.jsx(Yc,{reference:s==null?void 0:s.tableReference,portalElement:e.portalElement,...a==null?void 0:a.extendColumnsButton,children:i.show&&i.showAddOrRemoveColumnsButton&&(!n||n==="extendColumnsButton")&&f.jsx(c,{orientation:"addOrRemoveColumns",hideOtherElements:d=>r(d?"extendColumnsButton":void 0)})})]})};function ud(e){if(e!==void 0){if(e===null)return typeof document<"u"?document.body:void 0;if(typeof e=="string"){if(typeof document>"u")return;let t=document.querySelector(e);if(!t){console.warn(`[BlockNote] portalElements selector "${e}" did not match any element`);return}return t}return e}}var L9t=O.lazy(()=>dy(()=>import("./FloatingComposerController-5A3GJtK4-aq1FcbTU.js"),[]).then(e=>e.n)),I9t=O.lazy(()=>dy(()=>Promise.resolve().then(()=>uQt),void 0).then(e=>e.n));function B9t(e){let t=Ut();if(!t)throw Error("BlockNoteDefaultUI must be used within a BlockNoteContext.Provider");let n=e.portalElements,r=ud(n==null?void 0:n.formattingToolbar),i=ud(n==null?void 0:n.linkToolbar),s=ud(n==null?void 0:n.slashMenu),o=ud(n==null?void 0:n.emojiPicker),a=ud(n==null?void 0:n.sideMenu),l=ud(n==null?void 0:n.filePanel),c=ud(n==null?void 0:n.tableHandles),u=ud(n==null?void 0:n.comments);return f.jsxs(f.Fragment,{children:[t.getExtension(ll)&&e.formattingToolbar!==!1&&f.jsx(c$e,{portalElement:r}),t.getExtension(GS)&&e.linkToolbar!==!1&&f.jsx(r9t,{portalElement:i}),t.getExtension(bl)&&e.slashMenu!==!1&&f.jsx(f$e,{triggerCharacter:"/",shouldOpen:d=>!d.selection.$from.parent.type.isInGroup("tableContent"),portalElement:s}),t.getExtension(bl)&&e.emojiPicker!==!1&&f.jsx(v9t,{triggerCharacter:":",columns:10,minQueryLength:2,portalElement:o}),t.getExtension(kl)&&e.sideMenu!==!1&&f.jsx(h9t,{portalElement:a}),t.getExtension(ec)&&e.filePanel!==!1&&f.jsx(PQt,{portalElement:l}),t.getExtension(yr)&&e.tableHandles!==!1&&f.jsx(D9t,{portalElement:c}),t.getExtension(Kd)&&e.comments!==!1&&f.jsxs(O.Suspense,{children:[f.jsx(L9t,{portalElement:u}),f.jsx(I9t,{portalElement:u})]})]})}function z9t(e,t){let n=Pl();t||(t=n==null?void 0:n.editor),O.useEffect(()=>{if(!t)throw Error("'editor' is required, either from BlockNoteContext or as a function argument");return t.onChange(e)},[e,t])}function Q9t(e,t,n){let r=Pl();t||(t=r==null?void 0:r.editor),O.useEffect(()=>{if(!t)throw Error("'editor' is required, either from BlockNoteContext or as a function argument");return t.onSelectionChange(e,n)},[e,t,n])}var p$e=()=>{let e=O.useMemo(()=>{var o;return(o=window.matchMedia)==null?void 0:o.call(window,"(prefers-color-scheme: dark)")},[]),t=O.useMemo(()=>{var o;return(o=window.matchMedia)==null?void 0:o.call(window,"(prefers-color-scheme: light)")},[]),n=e==null?void 0:e.matches,r=t==null?void 0:t.matches,[i,s]=O.useState(n?"dark":r?"light":"no-preference");return O.useEffect(()=>{s(n?"dark":r?"light":"no-preference")},[n,r]),O.useEffect(()=>{if(typeof(e==null?void 0:e.addEventListener)=="function"){let o=({matches:l})=>l&&s("dark"),a=({matches:l})=>l&&s("light");return e==null||e.addEventListener("change",o),t==null||t.addEventListener("change",a),()=>{e==null||e.removeEventListener("change",o),t==null||t.removeEventListener("change",a)}}else{let o=()=>s(e.matches?"dark":t.matches?"light":"no-preference");return e==null||e.addEventListener("change",o),t==null||t.addEventListener("change",o),()=>{e==null||e.removeEventListener("change",o),t==null||t.removeEventListener("change",o)}}},[e,t]),i},m$e=O.createContext(void 0);function F9t(){return O.useContext(m$e)}function H9t(){let e=new Set,t={};return{subscribe(n){return e.add(n),()=>{e.delete(n)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(n,r){t={...t,[n]:vn.createPortal(r.reactElement,r.element,n)},e.forEach(i=>i())},removeRenderer(n){let r={...t};delete r[n],t=r,e.forEach(i=>i())}}}var q9t=({contentComponent:e})=>{let t=O.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getServerSnapshot);return f.jsx(f.Fragment,{children:Object.values(t)})},V9t=O.forwardRef((e,t)=>{let[n,r]=O.useState();return O.useImperativeHandle(t,()=>(i,s)=>{vn.flushSync(()=>{r({node:i,container:s})}),r(void 0)},[]),f.jsx(f.Fragment,{children:n&&vn.createPortal(n.node,n.container)})}),_0e=()=>{};function W9t(e,t){let{editor:n,className:r,theme:i,children:s,editable:o,onSelectionChange:a,onChange:l,formattingToolbar:c,linkToolbar:u,slashMenu:d,emojiPicker:h,sideMenu:p,filePanel:m,tableHandles:y,comments:v,portalElements:b,autoFocus:S,renderEditor:w=!0,...k}=e,E=O.useMemo(()=>ud(b==null?void 0:b.default)??null,[b==null?void 0:b.default]),[C,T]=O.useState(),j=Pl(),P=p$e(),A=(j==null?void 0:j.colorSchemePreference)||P,R=i||(A==="dark"?"dark":"light"),N=Qt(),D=O.useMemo(()=>({formattingToolbar:N?c:!1,linkToolbar:N?u:!1,sideMenu:N?p:!1,slashMenu:N?d:!1,filePanel:N?m:!1,tableHandles:N?y:!1,emojiPicker:N?h:!1,comments:N?v:!1,portalElements:b}),[v,N,h,m,c,u,p,d,y,b]);z9t(l||_0e,n),Q9t(a||_0e,n);let $=O.useCallback(V=>{n.elementRenderer=V},[n]);O.useEffect(()=>{if(!n.portalElement)throw Error("Portal element not found");n.portalElement.className=vr("bn-root",R,r||""),n.portalElement.setAttribute("data-color-scheme",R)},[n,R,r]);let I=O.useMemo(()=>({...j,editor:n,setContentEditableProps:T,colorSchemePreference:R}),[j,n,R]),H=O.useMemo(()=>({editorProps:{autoFocus:S,contentEditableProps:C,editable:o,portalTarget:E},defaultUIProps:D}),[S,C,o,D,E]);return f.jsx(TRe.Provider,{value:I,children:f.jsxs(m$e.Provider,{value:H,children:[f.jsx(V9t,{ref:$}),f.jsx(U9t,{className:r,renderEditor:w,editorColorScheme:R,ref:t,...k,children:s})]})})}var U9t=Kr.forwardRef(({className:e,renderEditor:t,editorColorScheme:n,children:r,...i},s)=>f.jsx("div",{className:vr("bn-root","bn-container",n,e),"data-color-scheme":n,...i,ref:s,children:t?f.jsx(Z9t,{children:r}):r})),X9t=Kr.forwardRef(W9t),Z9t=e=>{let t=F9t(),n=Ut(),r=O.useMemo(()=>H9t(),[]),i=t.editorProps.portalTarget,s=O.useCallback(o=>{n.isEditable=t.editorProps.editable!==!1,n._tiptapEditor.contentComponent=r,o?n.mount(o,{portalTarget:i}):n.unmount()},[t.editorProps.editable,n,r,i]);return f.jsxs(f.Fragment,{children:[f.jsx(q9t,{contentComponent:r}),f.jsx(G9t,{...t.editorProps,...e,mount:s}),f.jsx(B9t,{...t.defaultUIProps}),e.children]})},G9t=e=>{let{autoFocus:t,mount:n,contentEditableProps:r}=e;return f.jsx("div",{"aria-autocomplete":"list","aria-haspopup":"listbox","data-bn-autofocus":t,ref:n,...r})};function C0e(e,t){let n,r=document.createElement("div"),i;if(t!=null&&t.elementRenderer)t.elementRenderer(e(l=>n=l||void 0),r);else{if(!(t!=null&&t.headless))throw Error("elementRenderer not available, expected headless editor");i=fxe.createRoot(r),vn.flushSync(()=>{i.render(e(l=>n=l||void 0))})}if(!r.childElementCount)return console.warn("ReactInlineContentSpec: renderHTML() failed"),{dom:document.createElement("span")};n==null||n.setAttribute("data-tmp-find","true");let s=r.cloneNode(!0),o=s.firstElementChild,a=s.querySelector("[data-tmp-find]");return a==null||a.removeAttribute("data-tmp-find"),i==null||i.unmount(),{dom:o,contentDOM:a||void 0}}function Mz(e){var t;return f.jsx(xQt,{onDragOver:n=>n.preventDefault(),...Object.fromEntries(Object.entries(e.domAttributes||{}).filter(([n])=>n!=="class")),className:vr("bn-block-content",((t=e.domAttributes)==null?void 0:t.class)||""),"data-content-type":e.blockType,...Object.fromEntries(Object.entries(e.blockProps).filter(([n,r])=>r!==e.propSchema[n].default).map(([n,r])=>[mO(n),r])),"data-file-block":e.isFileBlock===!0||void 0,children:e.children})}function g$e(e,t,n){return(r={})=>{let i=typeof e=="function"?e(r):e,s=typeof t=="function"?t(r):t;return{config:i,implementation:{...s,toExternalHTML(a,l,c){let u=s.toExternalHTML||s.render;return C0e(d=>{var h;return f.jsx(Mz,{blockType:a.type,blockProps:a.props,propSchema:i.propSchema,domAttributes:this.blockContentDOMAttributes,isFileBlock:((h=s.meta)==null?void 0:h.fileBlockAccept)!==void 0,children:f.jsx(u,{block:a,editor:l,contentRef:p=>{d(p),p&&(p.className=vr("bn-inline-content",p.className))},context:c})})},l)},render(a,l){if(this.renderType==="nodeView")return CQt(c=>{var p;let u=mNe(c.getPos,l,c.editor,i.type),d=t$e().nodeViewContentRef;if(!d)throw Error("nodeViewContentRef is not set");let h=s.render;return f.jsx(Mz,{blockType:u.type,blockProps:u.props,propSchema:i.propSchema,isFileBlock:!!((p=s.meta)!=null&&p.fileBlockAccept),domAttributes:this.blockContentDOMAttributes,children:f.jsx(h,{block:u,editor:l,contentRef:m=>{d(m),m&&(m.className=vr("bn-inline-content",m.className),m.dataset.nodeViewContent="")}})})},{className:"bn-react-node-view-renderer"})(this.props);{let c=s.render;return C0e(u=>f.jsx(Mz,{blockType:a.type,blockProps:a.props,propSchema:i.propSchema,domAttributes:this.blockContentDOMAttributes,children:f.jsx(c,{block:a,editor:l,contentRef:d=>{u(d),d&&(d.className=vr("bn-inline-content",d.className))}})}),l)}}},extensions:void 0}}}Kr.memo(({thread:e,selectedThreadId:t,maxCommentsBeforeCollapse:n,referenceText:r,orphaned:i})=>{let s=Zn(Kd),o=O.useCallback(l=>{l.target.closest(".bn-action-toolbar")||s.selectThread(e.id)},[s,e.id]),a=O.useCallback(l=>{if(!l.relatedTarget||l.relatedTarget.closest(".bn-action-toolbar"))return;let c=l.target instanceof Node?l.target:null,u=l.relatedTarget instanceof Node?l.relatedTarget.closest(".bn-thread"):null;(!c||!u||!u.contains(c))&&s.selectThread(void 0)},[s]);return f.jsx(AX,{thread:e,selected:e.id===t,orphaned:i,referenceText:r,maxCommentsBeforeCollapse:n,onFocus:o,onBlur:a,tabIndex:0})});function v$e(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.top<r.top,s=n.bottom>r.bottom;return i&&s?"both":i?"top":s?"bottom":"none"}function Y9t(e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}function mu(e){return Object.keys(e)}function Az(e){return e&&typeof e=="object"&&!Array.isArray(e)}function RX(e,t){const n={...e},r=t;return Az(e)&&Az(t)&&Object.keys(t).forEach(i=>{Az(r[i])&&i in e?n[i]=RX(n[i],r[i]):n[i]=r[i]}),n}function K9t(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function J9t(e){var t;return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:(t=e.match(/^calc\((.*?)\)$/))==null?void 0:t[1].split("*")[0].trim()}function eFt(e){const t=J9t(e);return typeof t=="number"?t:typeof t=="string"?t.includes("calc")||t.includes("var")?t:t.includes("px")?Number(t.replace("px","")):t.includes("rem")?Number(t.replace("rem",""))*16:t.includes("em")?Number(t.replace("em",""))*16:Number(t):NaN}function E0e(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function y$e(e,{shouldScale:t=!1}={}){function n(r){if(r===0||r==="0")return`0${e}`;if(typeof r=="number"){const i=`${r/16}${e}`;return t?E0e(i):i}if(typeof r=="string"){if(r===""||r.startsWith("calc(")||r.startsWith("clamp(")||r.includes("rgba("))return r;if(r.includes(","))return r.split(",").map(s=>n(s)).join(",");if(r.includes(" "))return r.split(" ").map(s=>n(s)).join(" ");const i=r.replace("px","");if(!Number.isNaN(Number(i))){const s=`${Number(i)/16}${e}`;return t?E0e(s):s}}return r}return n}const ot=y$e("rem",{shouldScale:!0}),T0e=y$e("em");function VM(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[n]=e[n]),t),{})}function b$e(e){if(typeof e=="number")return!0;if(typeof e=="string"){if(e.startsWith("calc(")||e.startsWith("var(")||e.includes(" ")&&e.trim()!=="")return!0;const t=/^[+-]?[0-9]+(\.[0-9]+)?(px|em|rem|ex|ch|lh|rlh|vw|vh|vmin|vmax|vb|vi|svw|svh|lvw|lvh|dvw|dvh|cm|mm|in|pt|pc|q|cqw|cqh|cqi|cqb|cqmin|cqmax|%)?$/;return e.trim().split(/\s+/).every(n=>t.test(n))}return!1}function x$e(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==O.Fragment:!1}function WM(e){const t=O.createContext(null);return[t,()=>{const r=O.use(t);if(r===null)throw new Error(e);return r}]}function j0e(e,t){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(t);return`${e}-${n}`}}function Tj(e,t){let n=e;for(;(n=n.parentElement)&&!n.matches(t););return n}function P0e(e,t,n){for(let r=e-1;r>=0;r-=1)if(!t[r].disabled)return r;if(n){for(let r=t.length-1;r>-1;r-=1)if(!t[r].disabled)return r}return e}function M0e(e,t,n){for(let r=e+1;r<t.length;r+=1)if(!t[r].disabled)return r;if(n){for(let r=0;r<t.length;r+=1)if(!t[r].disabled)return r}return e}function tFt(e,t,n){return Tj(e,n)===Tj(t,n)}function UM({parentSelector:e,siblingSelector:t,onKeyDown:n,loop:r=!0,activateOnFocus:i=!1,dir:s="rtl",orientation:o}){return a=>{var m,y,v;n==null||n(a);const l=Array.from(((m=Tj(a.currentTarget,e))==null?void 0:m.querySelectorAll(t))||[]).filter(b=>tFt(a.currentTarget,b,e)),c=l.findIndex(b=>a.currentTarget===b),u=M0e(c,l,r),d=P0e(c,l,r),h=s==="rtl"?d:u,p=s==="rtl"?u:d;switch(a.key){case"ArrowRight":o==="horizontal"&&(a.stopPropagation(),a.preventDefault(),l[h].focus(),i&&l[h].click());break;case"ArrowLeft":o==="horizontal"&&(a.stopPropagation(),a.preventDefault(),l[p].focus(),i&&l[p].click());break;case"ArrowUp":o==="vertical"&&(a.stopPropagation(),a.preventDefault(),l[d].focus(),i&&l[d].click());break;case"ArrowDown":o==="vertical"&&(a.stopPropagation(),a.preventDefault(),l[u].focus(),i&&l[u].click());break;case"Home":a.stopPropagation(),a.preventDefault(),(y=l[M0e(-1,l,!1)])==null||y.focus();break;case"End":a.stopPropagation(),a.preventDefault(),(v=l[P0e(l.length,l,!1)])==null||v.focus();break}}}const nFt={app:100,modal:200,popover:300,overlay:400,max:9999};function YS(e){return nFt[e]}const rFt=()=>{};function iFt(e,t={active:!0}){return typeof e!="function"||!t.active?t.onKeyDown||rFt:n=>{var r;n.key==="Escape"&&(e(n),(r=t.onTrigger)==null||r.call(t))}}function Cr(e,t="size",n=!0){if(e!==void 0)return b$e(e)?n?ot(e):e:`var(--${t}-${e})`}function KS(e){return Cr(e,"mantine-spacing")}function so(e){return e===void 0?"var(--mantine-radius-default)":Cr(e,"mantine-radius")}function Ws(e){return Cr(e,"mantine-font-size")}function sFt(e){return Cr(e,"mantine-line-height",!1)}function w$e(e){if(e)return Cr(e,"mantine-shadow",!1)}function Fr(e,t){return n=>{e==null||e(n),t==null||t(n)}}function oFt(e,t,n){var r;return n?Array.from(((r=Tj(n,t))==null?void 0:r.querySelectorAll(e))||[]).findIndex(i=>i===n):null}function aFt(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function A0e(e){const t=O.useRef(e);return O.useEffect(()=>{t.current=e}),O.useMemo(()=>((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)}),[])}const lFt=["mousedown","touchstart"];function cFt(e,t,n,r=!0){const i=O.useRef(null),s=t||lFt,o=O.useEffectEvent(l=>{const{target:c}=l??{};if(!document.body.contains(c)&&(c==null?void 0:c.tagName)!=="HTML")return;const u=l.composedPath();Array.isArray(n)?n.every(d=>!!d&&!u.includes(d))&&e(l):i.current&&!u.includes(i.current)&&e(l)}),a=s.join(",");return O.useEffect(()=>{if(!r)return;const l=a.split(",");return l.forEach(c=>document.addEventListener(c,o)),()=>{l.forEach(c=>document.removeEventListener(c,o))}},[a,r]),i}function uFt(e,t){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function dFt(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[r,i]=O.useState(n?t:uFt(e));return O.useEffect(()=>{try{if("matchMedia"in window){const s=window.matchMedia(e);i(s.matches);const o=a=>i(a.matches);return s.addEventListener("change",o),()=>{s.removeEventListener("change",o)}}}catch{return}},[e]),r||!1}const vg=typeof document<"u"?O.useLayoutEffect:O.useEffect;function $X(e,t){const n=O.useRef(!1);O.useEffect(()=>()=>{n.current=!1},[]),O.useEffect(()=>{if(n.current)return e();n.current=!0},t)}function hFt({opened:e,shouldReturnFocus:t=!0}){const n=O.useRef(null),r=()=>{var i;n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&((i=n.current)==null||i.focus({preventScroll:!0}))};return $X(()=>{let i=-1;const s=o=>{o.key==="Tab"&&window.clearTimeout(i)};if(document.addEventListener("keydown",s),e)n.current=document.activeElement;else if(t){const o=document.activeElement;i=window.setTimeout(()=>{const a=document.activeElement;(a===null||a===document.body||a===o)&&r()},10)}return()=>{window.clearTimeout(i),document.removeEventListener("keydown",s)}},[e,t]),r}const fFt=/input|select|textarea|button|object/,O$e="a, input, select, textarea, button, object, [tabindex]";function pFt(e){return e.style.display==="none"}function mFt(e){if(e.getAttribute("aria-hidden")||e.getAttribute("hidden")||e.getAttribute("type")==="hidden")return!1;let t=e;for(;t&&!(t===document.body||t.nodeType===11);){if(pFt(t))return!1;t=t.parentNode}return!0}function S$e(e){let t=e.getAttribute("tabindex");return t===null&&(t=void 0),parseInt(t,10)}function H9(e){const t=e.nodeName.toLowerCase(),n=!Number.isNaN(S$e(e));return(fFt.test(t)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&mFt(e)}function k$e(e){const t=S$e(e);return(Number.isNaN(t)||t>=0)&&H9(e)}function gFt(e){return Array.from(e.querySelectorAll(O$e)).filter(k$e)}function vFt(e,t){const n=gFt(e);if(!n.length){t.preventDefault();return}const r=n[t.shiftKey?0:n.length-1],i=e.getRootNode();let s=r===i.activeElement||e===i.activeElement;const o=i.activeElement;if(o.tagName==="INPUT"&&o.getAttribute("type")==="radio"&&(s=n.filter(l=>l.getAttribute("type")==="radio"&&l.getAttribute("name")===o.getAttribute("name")).includes(r)),!s)return;t.preventDefault();const a=n[t.shiftKey?n.length-1:0];a&&a.focus()}function _$e(e=!0){const t=O.useRef(null),n=i=>{let s=i.querySelector("[data-autofocus]");if(!s){const o=Array.from(i.querySelectorAll(O$e));s=o.find(k$e)||o.find(H9)||null,!s&&H9(i)&&(s=i)}s?s.focus({preventScroll:!0}):console.warn("[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node",i)},r=O.useCallback(i=>{if(e){if(i===null){t.current=null;return}t.current!==i&&(setTimeout(()=>{i.getRootNode()?n(i):console.warn("[@mantine/hooks/use-focus-trap] Ref node is not part of the dom",i)}),t.current=i)}},[e]);return O.useEffect(()=>{if(!e)return;t.current&&setTimeout(()=>{t.current&&n(t.current)});const i=s=>{s.key==="Tab"&&t.current&&vFt(t.current,s)};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[e]),r}const yFt=e=>(e+1)%1e6;function bFt(){const[,e]=O.useReducer(yFt,0);return e}function mb(e){const[t,n]=O.useState(`mantine-${O.useId().replace(/:/g,"")}`),r=O.useRef(!1);return vg(()=>{r.current||(r.current=!0,n(aFt()))},[]),typeof e=="string"?e:t}function jj(e,t){if(typeof e=="function")return e(t);typeof e=="object"&&e!==null&&"current"in e&&(e.current=t)}function XM(...e){const t=new Map;return n=>{if(e.forEach(r=>{const i=jj(r,n);i&&t.set(r,i)}),t.size>0)return()=>{e.forEach(r=>{const i=t.get(r);i&&typeof i=="function"?i():jj(r,null)}),t.clear()}}}function Ba(...e){return O.useCallback(XM(...e),e)}function $u({value:e,defaultValue:t,finalValue:n,onChange:r=()=>{}}){const[i,s]=O.useState(t!==void 0?t:n),o=(a,...l)=>{s(a),r==null||r(a,...l)};return e!==void 0?[e,r,!0]:[i,o,!1]}function xFt(e,t){return dFt("(prefers-reduced-motion: reduce)",e,t)}function wFt(){const[e,t]=O.useState(!1),n=O.useRef(null),r=O.useCallback(()=>{t(!0)},[]),i=O.useCallback(()=>{t(!1)},[]);return{ref:O.useCallback(s=>(n.current&&(n.current.removeEventListener("mouseenter",r),n.current.removeEventListener("mouseleave",i)),s&&(s.addEventListener("mouseenter",r),s.addEventListener("mouseleave",i)),n.current=s,()=>{n.current=null,t(!1)}),[r,i]),hovered:e}}function OFt(e){return e.currentTarget instanceof HTMLElement&&e.relatedTarget instanceof HTMLElement?e.currentTarget.contains(e.relatedTarget):!1}function SFt({onBlur:e,onFocus:t}={}){const[n,r]=O.useState(!1),i=O.useRef(!1),s=O.useRef(null),o=A0e(t),a=A0e(e),l=O.useCallback(h=>{r(h),i.current=h},[]),c=O.useCallback(h=>{i.current||(l(!0),o(h))},[]),u=O.useCallback(h=>{i.current&&!OFt(h)&&(l(!1),a(h))},[]),d=O.useCallback(h=>{h&&(s.current&&(s.current.removeEventListener("focusin",c),s.current.removeEventListener("focusout",u)),h.addEventListener("focusin",c),h.addEventListener("focusout",u),s.current=h)},[c,u]);return O.useEffect(()=>()=>{s.current&&(s.current.removeEventListener("focusin",c),s.current.removeEventListener("focusout",u))},[]),{ref:d,focused:n}}const kFt=["mouse","touch"],_Ft=10;function CFt(e,t={}){const{threshold:n=400,events:r=kFt,cancelOnMove:i=!1,onStart:s,onFinish:o,onCancel:a}=t,l=O.useRef(!1),c=O.useRef(!1),u=O.useRef(-1),d=O.useRef(null);return O.useEffect(()=>()=>window.clearTimeout(u.current),[]),O.useMemo(()=>{if(typeof e!="function")return{};const h=i!==!1,p=i===!0?_Ft:i===!1?0:i,m=S=>{!R0e(S)&&!q9(S)||(s&&s(S),d.current=N0e(S),c.current=!0,u.current=window.setTimeout(()=>{e(S),l.current=!0},n))},y=S=>{!R0e(S)&&!q9(S)||(l.current?o&&o(S):c.current&&a&&a(S),l.current=!1,c.current=!1,d.current=null,u.current!==-1&&(window.clearTimeout(u.current),u.current=-1))},v=S=>{if(!h||!c.current||l.current)return;const w=N0e(S);if(!w||!d.current)return;const k=w.x-d.current.x,E=w.y-d.current.y;Math.sqrt(k*k+E*E)>p&&y(S)},b={};return r.includes("mouse")&&(b.onMouseDown=m,b.onMouseUp=y,b.onMouseLeave=y,h&&(b.onMouseMove=v)),r.includes("touch")&&(b.onTouchStart=m,b.onTouchEnd=y,b.onTouchCancel=y,h&&(b.onTouchMove=v)),b},[e,n,a,o,s,i,r.join(",")])}function N0e(e){if(q9(e)){const t=e.touches[0]??e.changedTouches[0];return t?{x:t.clientX,y:t.clientY}:null}return{x:e.clientX,y:e.clientY}}function q9(e){return window.TouchEvent?e.nativeEvent instanceof TouchEvent:"touches"in e.nativeEvent}function R0e(e){return e.nativeEvent instanceof MouseEvent}function DX(e){var n;const t=Kr.version;return typeof Kr.version!="string"||t.startsWith("18.")?e==null?void 0:e.ref:(n=e==null?void 0:e.props)==null?void 0:n.ref}function Xg(e){const t=O.Children.toArray(e);return t.length!==1||!x$e(t[0])?null:t[0]}const EFt={};function TFt(e){const t={};return e.forEach(n=>{Object.entries(n).forEach(([r,i])=>{t[r]?t[r]=ln(t[r],i):t[r]=i})}),t}function yO({theme:e,classNames:t,props:n,stylesCtx:r}){return TFt((Array.isArray(t)?t:[t]).map(i=>typeof i=="function"?i(e,n,r):i||EFt))}function Pj({theme:e,styles:t,props:n,stylesCtx:r}){const i=Array.isArray(t)?t:[t],s={};for(const o of i)typeof o=="function"?Object.assign(s,o(e,n,r)):o&&Object.assign(s,o);return s}function $0e(e){return e==="auto"||e==="dark"||e==="light"}function jFt({key:e="mantine-color-scheme-value"}={}){let t;return{get:n=>{if(typeof window>"u")return n;try{const r=window.localStorage.getItem(e);return $0e(r)?r:n}catch{return n}},set:n=>{try{window.localStorage.setItem(e,n)}catch(r){console.warn("[@mantine/core] Local storage color scheme manager was unable to save color scheme.",r)}},subscribe:n=>{t=r=>{r.storageArea===window.localStorage&&r.key===e&&$0e(r.newValue)&&n(r.newValue)},window.addEventListener("storage",t)},unsubscribe:()=>{window.removeEventListener("storage",t)},clear:()=>{window.localStorage.removeItem(e)}}}function bO(e,t){return typeof e.primaryShade=="number"?e.primaryShade:t==="dark"?e.primaryShade.dark:e.primaryShade.light}function PFt(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function MFt(e){let t=e.replace("#","");if(t.length===3){const r=t.split("");t=[r[0],r[0],r[1],r[1],r[2],r[2]].join("")}if(t.length===8){const r=parseInt(t.slice(6,8),16)/255;return{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16),a:r}}const n=parseInt(t,16);return{r:n>>16&255,g:n>>8&255,b:n&255,a:1}}function AFt(e){const[t,n,r,i]=e.replace(/[^0-9,./]/g,"").split(/[/,]/).map(Number);return{r:t,g:n,b:r,a:i===void 0?1:i}}function NFt(e){const t=e.match(/^hsla?\(\s*(\d+)\s*,\s*(\d+%)\s*,\s*(\d+%)\s*(,\s*(0?\.\d+|\d+(\.\d+)?))?\s*\)$/i);if(!t)return{r:0,g:0,b:0,a:1};const n=parseInt(t[1],10),r=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100,s=t[5]?parseFloat(t[5]):void 0,o=(1-Math.abs(2*i-1))*r,a=n/60,l=o*(1-Math.abs(a%2-1)),c=i-o/2;let u,d,h;return a>=0&&a<1?(u=o,d=l,h=0):a>=1&&a<2?(u=l,d=o,h=0):a>=2&&a<3?(u=0,d=o,h=l):a>=3&&a<4?(u=0,d=l,h=o):a>=4&&a<5?(u=l,d=0,h=o):(u=o,d=0,h=l),{r:Math.round((u+c)*255),g:Math.round((d+c)*255),b:Math.round((h+c)*255),a:s||1}}function LX(e){return PFt(e)?MFt(e):e.startsWith("rgb")?AFt(e):e.startsWith("hsl")?NFt(e):{r:0,g:0,b:0,a:1}}function Nz(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function RFt(e){const t=e.match(/oklch\((.*?)%\s/);return t?parseFloat(t[1]):null}function $Ft(e){if(e.startsWith("oklch("))return(RFt(e)||0)/100;const{r:t,g:n,b:r}=LX(e),i=t/255,s=n/255,o=r/255,a=Nz(i),l=Nz(s),c=Nz(o);return .2126*a+.7152*l+.0722*c}function Hx(e,t=.179){return e.startsWith("var(")?!1:$Ft(e)>t}function gp({color:e,theme:t,colorScheme:n}){if(typeof e!="string")throw new Error(`[@mantine/core] Failed to parse color. Expected color to be a string, instead got ${typeof e}`);if(e==="bright")return{color:e,value:n==="dark"?t.white:t.black,shade:void 0,isThemeColor:!1,isLight:Hx(n==="dark"?t.white:t.black,t.luminanceThreshold),variable:"--mantine-color-bright"};if(e==="dimmed")return{color:e,value:n==="dark"?t.colors.dark[2]:t.colors.gray[7],shade:void 0,isThemeColor:!1,isLight:Hx(n==="dark"?t.colors.dark[2]:t.colors.gray[6],t.luminanceThreshold),variable:"--mantine-color-dimmed"};if(e==="white"||e==="black")return{color:e,value:e==="white"?t.white:t.black,shade:void 0,isThemeColor:!1,isLight:Hx(e==="white"?t.white:t.black,t.luminanceThreshold),variable:`--mantine-color-${e}`};const[r,i]=e.split("."),s=i?Number(i):void 0,o=r in t.colors;if(o){const a=s!==void 0?t.colors[r][s]:t.colors[r][bO(t,n||"light")];return{color:r,value:a,shade:s,isThemeColor:o,isLight:Hx(a,t.luminanceThreshold),variable:i?`--mantine-color-${r}-${s}`:`--mantine-color-${r}-filled`}}return{color:e,value:e,isThemeColor:o,isLight:Hx(e,t.luminanceThreshold),shade:s,variable:void 0}}function Uf(e,t){const n=gp({color:e||t.primaryColor,theme:t});return n.variable?`var(${n.variable})`:e}function IX(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function om(e,t){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${t*100}%)`;const{r:n,g:r,b:i,a:s}=LX(e),o=1-t,a=l=>Math.round(l*o);return`rgba(${a(n)}, ${a(r)}, ${a(i)}, ${s})`}function V9(e,t){const n={from:(e==null?void 0:e.from)||t.defaultGradient.from,to:(e==null?void 0:e.to)||t.defaultGradient.to,deg:(e==null?void 0:e.deg)??t.defaultGradient.deg??0},r=Uf(n.from,t),i=Uf(n.to,t);return`linear-gradient(${n.deg}deg, ${r} 0%, ${i} 100%)`}function lf(e,t){if(typeof e!="string"||t>1||t<0)return"rgba(0, 0, 0, 1)";if(e.startsWith("var("))return`color-mix(in srgb, ${e}, transparent ${(1-t)*100}%)`;if(e.startsWith("oklch"))return e.includes("/")?e.replace(/\/\s*[\d.]+\s*\)/,`/ ${t})`):e.replace(")",` / ${t})`);const{r:n,g:r,b:i}=LX(e);return`rgba(${n}, ${r}, ${i}, ${t})`}const D0e=lf,DFt=({color:e,theme:t,variant:n,gradient:r,autoContrast:i})=>{const s=gp({color:e,theme:t}),o=typeof i=="boolean"?i:t.autoContrast;if(n==="none")return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if(n==="filled"){const a=s.isThemeColor&&s.shade===void 0&&IX(t.colors[s.color]),l=o?a?`var(--mantine-color-${s.color}-contrast)`:s.isLight?"var(--mantine-color-black)":"var(--mantine-color-white)":"var(--mantine-color-white)";return s.isThemeColor?s.shade===void 0?{background:`var(--mantine-color-${e}-filled)`,hover:`var(--mantine-color-${e}-filled-hover)`,color:l,border:`${ot(1)} solid transparent`}:{background:`var(--mantine-color-${s.color}-${s.shade})`,hover:`var(--mantine-color-${s.color}-${s.shade===9?8:s.shade+1})`,color:l,border:`${ot(1)} solid transparent`}:{background:e,hover:om(e,.1),color:l,border:`${ot(1)} solid transparent`}}if(n==="light"){if(s.isThemeColor){if(s.shade===void 0)return{background:`var(--mantine-color-${e}-light)`,hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`};const a=t.colors[s.color][s.shade];return{background:a,hover:om(a,.1),color:`var(--mantine-color-${s.color}-light-color)`,border:`${ot(1)} solid transparent`}}return{background:lf(e,.1),hover:lf(e,.12),color:e,border:`${ot(1)} solid transparent`}}if(n==="outline")return s.isThemeColor?s.shade===void 0?{background:"transparent",hover:`var(--mantine-color-${e}-outline-hover)`,color:`var(--mantine-color-${e}-outline)`,border:`${ot(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:lf(t.colors[s.color][s.shade],.05),color:`var(--mantine-color-${s.color}-${s.shade})`,border:`${ot(1)} solid var(--mantine-color-${s.color}-${s.shade})`}:{background:"transparent",hover:lf(e,.05),color:e,border:`${ot(1)} solid ${e}`};if(n==="subtle"){if(s.isThemeColor){if(s.shade===void 0)return{background:"transparent",hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`};const a=t.colors[s.color][s.shade];return{background:"transparent",hover:lf(a,.12),color:`var(--mantine-color-${s.color}-${Math.min(s.shade,6)})`,border:`${ot(1)} solid transparent`}}return{background:"transparent",hover:lf(e,.12),color:e,border:`${ot(1)} solid transparent`}}return n==="transparent"?s.isThemeColor?s.shade===void 0?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${ot(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${s.color}-${Math.min(s.shade,6)})`,border:`${ot(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${ot(1)} solid transparent`}:n==="white"?s.isThemeColor?s.shade===void 0?{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${ot(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:`var(--mantine-color-${s.color}-${s.shade})`,border:`${ot(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:om(t.white,.01),color:e,border:`${ot(1)} solid transparent`}:n==="gradient"?{background:V9(r,t),hover:V9(r,t),color:"var(--mantine-color-white)",border:"none"}:n==="default"?{background:"var(--mantine-color-default)",hover:"var(--mantine-color-default-hover)",color:"var(--mantine-color-default-color)",border:`${ot(1)} solid var(--mantine-color-default-border)`}:{}};function BX({color:e,theme:t,autoContrast:n,colorScheme:r}){return(typeof n=="boolean"?n:t.autoContrast)&&gp({color:e||t.primaryColor,theme:t,colorScheme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function W9(e,t,n){return BX({color:n==="dark"?e.dark:e.light,theme:t,colorScheme:n,autoContrast:!0})}function L0e(e,t){const n=e.colors[e.primaryColor];return IX(n)?e.autoContrast?W9(n,e,t):"var(--mantine-color-white)":BX({color:n[bO(e,t)],theme:e,autoContrast:null})}function LFt(e,t){return typeof e=="boolean"?e:t.autoContrast}const zX=O.createContext(null);function mh(){const e=O.use(zX);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function IFt(){return mh().cssVariablesResolver}function BFt(){return mh().classNamesPrefix}function QX(){return mh().getStyleNonce}function zFt(){return mh().withStaticClasses}function QFt(){return mh().headless}function FFt(){var e;return(e=mh().stylesTransform)==null?void 0:e.sx}function HFt(){var e;return(e=mh().stylesTransform)==null?void 0:e.styles}function ZM(){return mh().env||"default"}function C$e(){return mh().deduplicateInlineStyles}function G0(e,t){var i,s;const n=typeof window<"u"&&"matchMedia"in window&&((i=window.matchMedia("(prefers-color-scheme: dark)"))==null?void 0:i.matches),r=e!=="auto"?e:n?"dark":"light";(s=t())==null||s.setAttribute("data-mantine-color-scheme",r)}function qFt({manager:e,defaultColorScheme:t,getRootElement:n,forceColorScheme:r}){const i=O.useRef(null),[s,o]=O.useState(()=>e.get(t)),a=r||s,l=O.useCallback(u=>{r||(G0(u,n),o(u),e.set(u))},[e.set,a,r]),c=O.useCallback(()=>{o(t),G0(t,n),e.clear()},[e.clear,t]);return O.useEffect(()=>(e.subscribe(l),e.unsubscribe),[e.subscribe,e.unsubscribe]),vg(()=>{G0(e.get(t),n)},[]),O.useEffect(()=>{var d;if(r)return G0(r,n),()=>{};r===void 0&&G0(s,n),typeof window<"u"&&"matchMedia"in window&&(i.current=window.matchMedia("(prefers-color-scheme: dark)"));const u=h=>{s==="auto"&&G0(h.matches?"dark":"light",n)};return(d=i.current)==null||d.addEventListener("change",u),()=>{var h;return(h=i.current)==null?void 0:h.removeEventListener("change",u)}},[s,r]),{colorScheme:a,setColorScheme:l,clearColorScheme:c}}const VFt={dark:["#C9C9C9","#b8b8b8","#828282","#696969","#424242","#3b3b3b","#2e2e2e","#242424","#1f1f1f","#141414"],gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]},I0e="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",FX={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:VFt,primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:DFt,autoContrast:!1,luminanceThreshold:.3,fontFamily:I0e,fontFamilyMonospace:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",respectReducedMotion:!1,cursorType:"default",defaultGradient:{from:"blue",to:"cyan",deg:45},defaultRadius:"md",activeClassName:"mantine-active",focusClassName:"",headings:{fontFamily:I0e,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:ot(34),lineHeight:"1.3"},h2:{fontSize:ot(26),lineHeight:"1.35"},h3:{fontSize:ot(22),lineHeight:"1.4"},h4:{fontSize:ot(18),lineHeight:"1.45"},h5:{fontSize:ot(16),lineHeight:"1.5"},h6:{fontSize:ot(14),lineHeight:"1.5"}}},fontSizes:{xs:ot(12),sm:ot(14),md:ot(16),lg:ot(18),xl:ot(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},fontWeights:{regular:"400",medium:"600",bold:"700"},radius:{xs:ot(2),sm:ot(4),md:ot(8),lg:ot(16),xl:ot(32)},spacing:{xs:ot(10),sm:ot(12),md:ot(16),lg:ot(20),xl:ot(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), 0 ${ot(1)} ${ot(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(10)} ${ot(15)} ${ot(-5)}, rgba(0, 0, 0, 0.04) 0 ${ot(7)} ${ot(7)} ${ot(-5)}`,md:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(20)} ${ot(25)} ${ot(-5)}, rgba(0, 0, 0, 0.04) 0 ${ot(10)} ${ot(10)} ${ot(-5)}`,lg:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(28)} ${ot(23)} ${ot(-7)}, rgba(0, 0, 0, 0.04) 0 ${ot(12)} ${ot(12)} ${ot(-7)}`,xl:`0 ${ot(1)} ${ot(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${ot(36)} ${ot(28)} ${ot(-7)}, rgba(0, 0, 0, 0.04) 0 ${ot(17)} ${ot(17)} ${ot(-7)}`},other:{},components:{}},WFt="[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color",B0e="[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";function Rz(e){return e<0||e>9?!1:parseInt(e.toString(),10)===e}function z0e(e){if(!(e.primaryColor in e.colors))throw new Error(WFt);if(typeof e.primaryShade=="object"&&(!Rz(e.primaryShade.dark)||!Rz(e.primaryShade.light)))throw new Error(B0e);if(typeof e.primaryShade=="number"&&!Rz(e.primaryShade))throw new Error(B0e)}function UFt(e,t){var r;if(!t)return z0e(e),e;const n=RX(e,t);return t.fontFamily&&!((r=t.headings)!=null&&r.fontFamily)&&(n.headings={...n.headings,fontFamily:t.fontFamily}),z0e(n),n}const HX=O.createContext(null),XFt=()=>O.use(HX)||FX;function Go(){const e=O.use(HX);if(!e)throw new Error("@mantine/core: MantineProvider was not found in component tree, make sure you have it in your app");return e}function E$e({theme:e,children:t,inherit:n=!0}){const r=XFt();return f.jsx(HX,{value:O.useMemo(()=>UFt(n?r:FX,e),[e,r,n]),children:t})}E$e.displayName="@mantine/core/MantineThemeProvider";function $z(e){return Object.entries(e).map(([t,n])=>`${t}: ${n};`).join("")}function T$e(e,t){const n=t?[t]:[":root",":host"],r=$z(e.variables),i=r?`${n.join(", ")}{${r}}`:"",s=$z(e.dark),o=$z(e.light),a=l=>n.map(c=>c===":host"?`${c}([data-mantine-color-scheme="${l}"])`:`${c}[data-mantine-color-scheme="${l}"]`).join(", ");return`${i}
1008
1008
 
1009
1009
  ${s?`${a("dark")}{${s}}`:""}
1010
1010
 
@@ -16,7 +16,7 @@
16
16
  </script>
17
17
  <link rel="preconnect" href="https://fonts.googleapis.com" />
18
18
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
19
- <script type="module" crossorigin src="/assets/index-vTvGYIx2.js"></script>
19
+ <script type="module" crossorigin src="/assets/index-D7opcM5v.js"></script>
20
20
  <link rel="stylesheet" crossorigin href="/assets/index-Dq3KywHj.css">
21
21
  </head>
22
22
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clitrigger",
3
- "version": "0.2.20",
3
+ "version": "0.2.21",
4
4
  "description": "Spawn isolated git worktrees and orchestrate Claude/Gemini/Codex CLI tasks in parallel from a web UI.",
5
5
  "keywords": [
6
6
  "claude",