@coffer-org/web 7.2.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/ChatWidget-Bhj-WiNC.js +5 -0
- package/dist/assets/DiagnosticsPage-CAWQ6aOl.js +1 -0
- package/dist/assets/{MarkdownEditor-0mNSwLu_.js → MarkdownEditor-On2GbApm.js} +3 -3
- package/dist/assets/NewRecordView-Y6PoWPB9.js +1 -0
- package/dist/assets/PluginSettingsPage-CcTksC-8.js +1 -0
- package/dist/assets/ScanSummary-xxY2oZVM.js +1 -0
- package/dist/assets/SettingsForm-NWfklsPY.js +1 -0
- package/dist/assets/SettingsPage-CjsbuhdW.js +3 -0
- package/dist/assets/ThemeSwitcher-DKrSbFhp.js +1 -0
- package/dist/assets/{api-DD1tY5Dq.js → api-QNHQU9to.js} +1 -1
- package/dist/assets/{auth-context-BCos5wiL.js → auth-context-CoCE5oPD.js} +1 -1
- package/dist/assets/condition-B5taAXkb.js +1 -0
- package/dist/assets/countries-CoGvAZ5u.js +1 -0
- package/dist/assets/{data-size-qpzofknI.js → data-size-BMG0D59K.js} +1 -1
- package/dist/assets/{development-olQNibq5.js → development-ChLInqDF.js} +1 -1
- package/dist/assets/{esm-BsLSfif3.js → esm-CX8ST5Fv.js} +1 -1
- package/dist/assets/esm-oGoWacTd.js +24 -0
- package/dist/assets/extend-yQ8zoqGc.js +1 -0
- package/dist/assets/fields-CV3RQg0Y.js +64 -0
- package/dist/assets/file-text-CITvp61x.js +1 -0
- package/dist/assets/{icons-BTbA1N7a.js → icons-0CjpO0K1.js} +1 -1
- package/dist/assets/ilamy-view-CQD1H32m.js +7 -0
- package/dist/assets/index-4Lr8BOK1.js +22 -0
- package/dist/assets/index-lbeXf7OV.css +2 -0
- package/dist/assets/{input-tJjsdU1x.js → input-BFMNMo6y.js} +1 -1
- package/dist/assets/list-cache-DOhsI_p2.js +1 -0
- package/dist/assets/{markdown-vendor-CtaBI5gJ.js → markdown-vendor-WSL3P01P.js} +15 -15
- package/dist/assets/phone-input-BZ9vGYpI.js +21 -0
- package/dist/assets/phone-input-BpNLpzg_.js +1 -0
- package/dist/assets/plugin-Cjr7lgQH.js +1 -0
- package/dist/assets/{version-CtfLXkhy.js → plugin-label-CfdhA4_L.js} +1 -1
- package/dist/assets/{popover-C2xHG6L3.js → popover-C1KB68Kk.js} +1 -1
- package/dist/assets/registration-BBxYynR4.js +1 -0
- package/dist/assets/settings-Bo5IOwVg.js +1 -0
- package/dist/assets/shelf-Cj_pNvd-.js +1 -0
- package/dist/assets/showcase-BeBnutzT.js +1 -0
- package/dist/assets/src-0TBpEeKK.js +1 -0
- package/dist/assets/src-1AsWJbID.js +7 -0
- package/dist/assets/src-4bmZI2h_.js +1 -0
- package/dist/assets/src-B2aXBzDf.js +4 -0
- package/dist/assets/src-BHz-TcxU.js +1 -0
- package/dist/assets/src-BZK1QVol.js +1 -0
- package/dist/assets/src-BjYucEBM.js +1 -0
- package/dist/assets/src-Bl8rYgUt2.js +1 -0
- package/dist/assets/src-BmyfVP9z.js +1 -0
- package/dist/assets/src-BrHtOaqX.js +1 -0
- package/dist/assets/src-Bzgh6Ge5.js +1 -0
- package/dist/assets/src-C46sbhiF.js +2 -0
- package/dist/assets/src-CD1zBxk2.js +1 -0
- package/dist/assets/src-CE1TPDES.js +6 -0
- package/dist/assets/src-CQOQ3BNT.js +1 -0
- package/dist/assets/{src-IYiBUs1S.js → src-Cz38tTr3.js} +1 -1
- package/dist/assets/src-D14fQdLH.js +1 -0
- package/dist/assets/src-DgQcfYnz.js +1 -0
- package/dist/assets/src-DnN2GqEI.js +1 -0
- package/dist/assets/src-Dr_dOgc9.js +6 -0
- package/dist/assets/src-Ds6m7Evp2.js +1 -0
- package/dist/assets/src-Mln-mCD3.js +1 -0
- package/dist/assets/src-Q4BhkNtH.js +1 -0
- package/dist/assets/src-qJ0szNVM.js +1 -0
- package/dist/assets/src-rMuD7zD4.js +1 -0
- package/dist/assets/{src-DEcZTAam.js → src-tKMBP4Dv.js} +3 -3
- package/dist/assets/src-xh_qAK43.js +1 -0
- package/dist/assets/ui-BuqzqLDw.js +2 -0
- package/dist/assets/ui-CqUVBwcW.js +2 -0
- package/dist/assets/ui-Dj0Nsb2P.js +2 -0
- package/dist/assets/ui-QzaKLk9q.js +2 -0
- package/dist/assets/ui-vendor-C0IUUP3F.js +44 -0
- package/dist/index.html +22 -22
- package/dist-vendor/web-ui.js +20098 -14890
- package/package.json +1 -1
- package/dist/assets/ChatWidget-ByBb2eNs.js +0 -31
- package/dist/assets/DiagnosticsPage-tAFkmCz8.js +0 -1
- package/dist/assets/NewRecordView-CTSqFBfe.js +0 -1
- package/dist/assets/PluginSettingsPage-BFsSZgTa.js +0 -1
- package/dist/assets/ScanSummary-CaG-s5qh.js +0 -1
- package/dist/assets/SettingsForm-C_K9RpFr.js +0 -1
- package/dist/assets/SettingsPage-Cqp1tUyi.js +0 -3
- package/dist/assets/ThemeSwitcher-BPuCvU1U.js +0 -1
- package/dist/assets/arrow-left-DDsxjRCq.js +0 -1
- package/dist/assets/esm-DJsKiDbH.js +0 -24
- package/dist/assets/extend-BMkkNVfm.js +0 -1
- package/dist/assets/fields-GPyF03tK.js +0 -64
- package/dist/assets/file-text-DI3tERhf.js +0 -1
- package/dist/assets/index-C5rNjIku.css +0 -2
- package/dist/assets/index-DpBBejzP.js +0 -24
- package/dist/assets/lib-DU7Qh2A4.js +0 -1
- package/dist/assets/list-cache-B4i_A9fj.js +0 -1
- package/dist/assets/phone-input-BeYLRpyW.js +0 -1
- package/dist/assets/phone-input-CZF7hU3E.js +0 -21
- package/dist/assets/plugin-CFEkHH3f.js +0 -1
- package/dist/assets/plugin-ui-CKd6q8ec.js +0 -1
- package/dist/assets/settings-rQsBFoL2.js +0 -1
- package/dist/assets/shelf-CpE68_8d.js +0 -1
- package/dist/assets/showcase-CUDyXMb7.js +0 -1
- package/dist/assets/src-2QhdFJyH.js +0 -1
- package/dist/assets/src-BRA1s942.js +0 -1
- package/dist/assets/src-Bmc_xgWr.js +0 -1
- package/dist/assets/src-BnvKHmLu.js +0 -1
- package/dist/assets/src-Bv7IbF5F.js +0 -1
- package/dist/assets/src-C3X1cmlu.js +0 -1
- package/dist/assets/src-C3hdIsRT.js +0 -1
- package/dist/assets/src-CIrBx5O0.js +0 -1
- package/dist/assets/src-CTlBmB5n.js +0 -1
- package/dist/assets/src-Cp4yFztL.js +0 -4
- package/dist/assets/src-CvUhNHtO.js +0 -1
- package/dist/assets/src-D5pqHmdF.js +0 -1
- package/dist/assets/src-D9ZNj5Fi2.js +0 -1
- package/dist/assets/src-DAUYP87f2.js +0 -1
- package/dist/assets/src-DEqFDnFO.js +0 -1
- package/dist/assets/src-DXSkgVrX.js +0 -4
- package/dist/assets/src-DaHZILQZ.js +0 -1
- package/dist/assets/src-Dvbi--2I.js +0 -6
- package/dist/assets/src-Uu0k-CHA.js +0 -1
- package/dist/assets/src-WB1-7_Wh.js +0 -1
- package/dist/assets/src-dXlj2maQ.js +0 -1
- package/dist/assets/src-d_-Z83D-.js +0 -2
- package/dist/assets/src-eAsO2o4h2.js +0 -1
- package/dist/assets/src-uWOnIJWD.js +0 -6
- package/dist/assets/src-yL3q5Nfe.js +0 -1
- package/dist/assets/ui-A8aS2-NQ.js +0 -2
- package/dist/assets/ui-BK1F_c4b.js +0 -2
- package/dist/assets/ui-C9-epiVm.js +0 -2
- package/dist/assets/ui-kICtw37s.js +0 -1
- package/dist/assets/ui-vendor-BuwRGdK1.js +0 -44
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{l as r,t as i}from"./react-vendor-CzSUaSLk.js";import{Ar as a,Br as o,Bt as s,Ct as c,Hr as l,Ir as u,Lr as d,Nr as f,Pr as p,St as m,Wr as h,_i as g,cr as _,kr as v,ur as y}from"./src-1AsWJbID.js";import{n as b,r as x}from"./input-BFMNMo6y.js";import{f as S,p as C}from"./phone-input-BZ9vGYpI.js";import{c as w}from"./popover-C1KB68Kk.js";import{t as T}from"./file-text-CITvp61x.js";var E=x(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),D=x(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),O=x(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),k=x(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),A=e(t(),1);async function*j(e){let t=e.getReader(),n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a;for(;(a=r.indexOf(`
|
|
2
|
+
|
|
3
|
+
`))!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=`message`,n=[];for(let r of e.split(`
|
|
4
|
+
`))!r||r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trim():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));n.length&&(yield{event:t,data:n.join(`
|
|
5
|
+
`)})}}}var M=`/api/plugins/webchat/user`;async function N(e,t){let n=await fetch(`${M}/${e}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(e);return await n.json()}async function P(){return(await N(`threads`,{})).threads}async function F(e){return N(`history`,{convId:e})}async function I(e){let t=await N(`agents`,{convId:e});return{agents:t.agents??[],defaultAgentId:t.defaultAgentId??null,selection:t.selection??{agentId:null,presetId:null},starters:t.starters??[]}}async function L(e,t){return(await N(`selectAgent`,{convId:e,...t})).selection}async function R(e,t){return N(`setVisibility`,{convId:e,private:t})}async function ee(e){return N(`send`,{convId:e.convId,text:e.text,replyTo:e.replyTo,context:e.context,...e.attachments?.length?{attachments:e.attachments}:{}})}async function z(e){if(!(await fetch(`${M}/stop`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e})})).ok)throw Error(`stop`)}async function te(e,t,n){let r=await fetch(`${M}/channel/stream`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e}),signal:n});if(!r.ok||!r.body)throw Error(`http ${r.status}`);for await(let e of j(r.body))try{let n=JSON.parse(e.data);e.event===`user`?t.onUser({msgId:String(n.msgId??``),text:String(n.text??``),ts:typeof n.ts==`number`?n.ts:0,...Array.isArray(n.attachments)?{attachments:n.attachments}:{}}):e.event===`message`?t.onMessage({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`delta`?t.onDelta({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`reasoning`?t.onReasoning({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`done`?t.onDone({msgId:n.msgId??null,parentMsgId:String(n.parentMsgId??``),suggestions:Array.isArray(n.suggestions)?n.suggestions:null}):e.event===`error`&&t.onError({message:n.message??null,parentMsgId:typeof n.parentMsgId==`string`?n.parentMsgId:null})}catch(e){t.onError({message:`malformed frame: ${String(e)}`,parentMsgId:null})}}function B(){return crypto.randomUUID()}function V(e){switch(e.kind){case`user`:case`message`:case`delta`:case`reasoning`:return e.data.msgId;case`done`:return e.data.msgId;case`error`:return null}}var H=1e3,U=3e4;function ne(){let[e,t]=(0,A.useState)([]),[n,r]=(0,A.useState)(null),[i,a]=(0,A.useState)([]),[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(null),[u,d]=(0,A.useState)(null),[f,p]=(0,A.useState)([]),[m,h]=(0,A.useState)(null),[g,_]=(0,A.useState)({agentId:null,presetId:null}),[v,y]=(0,A.useState)([]),[b,x]=(0,A.useState)(null),S=(0,A.useRef)(null),C=(0,A.useRef)(!1),w=(0,A.useRef)(null),T=(0,A.useRef)(``),E=(0,A.useRef)(null),D=(0,A.useRef)(0),O=(0,A.useRef)(!0);(0,A.useEffect)(()=>(O.current=!0,()=>{O.current=!1,D.current++}),[]);let k=(0,A.useCallback)(()=>{P().then(e=>{O.current&&t(e)}).catch(()=>{})},[]);(0,A.useEffect)(()=>{if(!n)return;let e=!1;return I(n).then(t=>{e||(p(t.agents),h(t.defaultAgentId),_(t.selection),y(t.starters))}).catch(()=>{}),()=>{e=!0}},[n]);let j=(0,A.useCallback)((e,t)=>{let n=V(e),r=t!==null&&n!==null&&t.has(n);switch(e.kind){case`user`:{if(r)break;let{msgId:t,text:n,ts:i,attachments:o}=e.data;a(e=>e.some(e=>e.msgId===t)?e:[...e,{msgId:t,role:`user`,text:n,ts:i,...o?.length?{attachments:o}:{}}]);break}case`message`:case`delta`:if(r)break;T.current=e.data.text,s(e.data.text);break;case`reasoning`:if(r)break;E.current=e.data.text,l(e.data.text);break;case`done`:{let{msgId:t,parentMsgId:n,suggestions:i}=e.data;if(S.current=t??n,x(i??null),!r&&t&&T.current){let e=T.current,n=E.current;a(r=>r.some(e=>e.msgId===t)?r:[...r,{msgId:t,role:`assistant`,text:e,ts:Math.floor(Date.now()/1e3),...n?{reasoning:n}:{}}])}T.current=``,E.current=null,s(null),l(null),w.current!==null&&w.current===n&&(C.current=!1,w.current=null),k();break}case`error`:d(e.data.message??`error`),T.current=``,E.current=null,s(null),l(null),w.current!==null&&w.current===e.data.parentMsgId&&(C.current=!1,w.current=null);break}},[k]);(0,A.useEffect)(()=>{if(!n)return;let e=n,t=!1,r=null,i=0,o=new AbortController;async function s(){if(t)return;let n=!0,c=!1,l=[],u=e=>{t||(c=!0,n?l.push(e):j(e,null))},f=te(e,{onUser:e=>u({kind:`user`,data:e}),onMessage:e=>u({kind:`message`,data:e}),onDelta:e=>u({kind:`delta`,data:e}),onReasoning:e=>u({kind:`reasoning`,data:e}),onDone:e=>u({kind:`done`,data:e}),onError:e=>u({kind:`error`,data:e})},o.signal).then(()=>!0,()=>!1);try{let r=await F(e);if(t)return;S.current=r.headMsgId;let i=new Set(r.messages.map(e=>e.msgId));a(e=>{let t=w.current,n=e.filter(e=>!i.has(e.msgId)&&(e.msgId.startsWith(`local-`)||e.msgId===t));return n.length?[...r.messages,...n]:r.messages}),x(r.messages.at(-1)?.suggestions??null),n=!1;for(let e of l)j(e,i)}catch(e){if(t)return;d(e.message),n=!1;for(let e of l)j(e,null)}if(await f,t)return;c&&(i=0);let p=Math.min(H*2**i,U);i++,r=setTimeout(()=>void s(),p)}return s(),()=>{t=!0,r&&clearTimeout(r),o.abort()}},[n,j]);let M=(0,A.useCallback)(e=>{let t=g;_(e),n&&L(n,e).then(_).catch(e=>{_(t),d(e instanceof Error?e.message:String(e))})},[n,g]),N=(0,A.useCallback)((n,r)=>{let i=e.find(e=>e.convId===n)?.private??!1;t(e=>e.map(e=>e.convId===n?{...e,private:r}:e)),R(n,r).then(e=>{t(t=>t.map(t=>t.convId===n?{...t,private:e.visibility===`private`}:t))}).catch(()=>{t(e=>e.map(e=>e.convId===n?{...e,private:i}:e))})},[e]),ne=(0,A.useMemo)(()=>{let e=f.find(e=>e.id===g.agentId)?.media;return!e||e.image.accepts.length>0||e.document.accepts.length>0},[f,g]),re=(0,A.useCallback)(()=>{D.current++,C.current=!1,w.current=null,S.current=null,r(B()),a([]),s(null),l(null),T.current=``,E.current=null,d(null),x(null)},[]),ie=(0,A.useCallback)(async e=>{D.current++,C.current=!1,w.current=null,r(e),S.current=null,a([]),s(null),l(null),T.current=``,E.current=null,d(null),x(null)},[]),ae=(0,A.useCallback)(()=>{n&&z(n).catch(()=>{})},[n]);return{threads:e,convId:n,messages:i,pending:o,pendingReasoning:c,error:u,agents:f,defaultAgentId:m,selection:g,starters:v,suggestions:b,attachmentsAllowed:ne,chooseAgent:M,togglePrivate:N,send:(0,A.useCallback)((e,t,i=[])=>{if(!e.trim()||C.current)return!1;C.current=!0;let o=D.current,c=n??B();n===null&&r(c),d(null),x(null);let u=`local-${B()}`;return a(t=>[...t,{msgId:u,role:`user`,text:e,ts:Math.floor(Date.now()/1e3),...i.length?{attachments:i}:{}}]),s(``),(async()=>{try{let{msgId:n}=await ee({convId:c,text:e,replyTo:S.current,context:t,attachments:i});if(D.current!==o)return;if(n===null){C.current=!1,s(null),l(null);return}a(e=>e.some(e=>e.msgId===n)?e.filter(e=>e.msgId!==u):e.map(e=>e.msgId===u?{...e,msgId:n}:e)),w.current=n}catch(e){D.current===o&&(C.current=!1,d(e.message),s(null),l(null))}})(),!0},[n]),open:ie,newConversation:re,loadThreads:k,stop:ae}}var re=`—`;function ie(){if(typeof document>`u`)return;let e=document.querySelector(`[role="heading"][aria-level="1"]`)?.textContent?.trim();return e&&e!==re?e:void 0}function ae(e){let t=e.split(`/`).filter(Boolean),n=new Set([`settings`,`browse`,`plugins`,`login`,`setup`]);if(t.length<2||n.has(t[0]))return{path:e};let[r,i,a]=t,o=!!(a&&a!==`new`),s=o?ie():void 0;return{path:e,library:r,type:i,...o?{id:a}:{},...s?{title:s}:{}}}function oe(){let{pathname:e}=r();return(0,A.useCallback)(()=>ae(e),[e])}var W=i(),se=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-nav.tsx`,ce=(0,A.createContext)(()=>{});function le({onNavigate:e,children:t}){return(0,W.jsxDEV)(ce.Provider,{value:e,children:t},void 0,!1,{fileName:se,lineNumber:9,columnNumber:10},this)}function ue(){return(0,A.useContext)(ce)}var de=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-markdown.tsx`;function fe({text:e,className:t}){let n=ue();return(0,W.jsxDEV)(s,{value:e,className:t??`md-static md-chat`,onNavigate:n},void 0,!1,{fileName:de,lineNumber:21,columnNumber:10},this)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatMessages.tsx`;function pe({messages:e,pending:t,pendingReasoning:r,trailing:i}){let{t:a}=n(),o=(0,A.useRef)(null);return(0,A.useEffect)(()=>{let e=o.current;e&&(e.scrollTop=e.scrollHeight)},[e.length,t]),(0,W.jsxDEV)(`div`,{ref:o,"data-chat-list":!0,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2`,children:[!e.length&&t===null&&r===null?(0,W.jsxDEV)(`div`,{className:`flex-1 grid place-items-center text-muted-foreground text-sm`,children:a(`webchat.empty`)},void 0,!1,{fileName:G,lineNumber:39,columnNumber:9},this):(0,W.jsxDEV)(W.Fragment,{children:[e.map(e=>(0,W.jsxDEV)(me,{role:e.role,text:e.text,reasoning:e.reasoning,attachments:e.attachments},e.msgId,!1,{fileName:G,lineNumber:43,columnNumber:13},this)),t!==null&&(0,W.jsxDEV)(me,{role:`assistant`,text:t||a(`webchat.thinking`),reasoning:r},void 0,!1,{fileName:G,lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:41,columnNumber:9},this),i]},void 0,!0,{fileName:G,lineNumber:37,columnNumber:5},this)}var me=(0,A.memo)(function({role:e,text:t,reasoning:r,attachments:i}){let{t:a}=n();return e===`user`?(0,W.jsxDEV)(`div`,{className:`self-end max-w-[85%] rounded-2xl border border-ring bg-muted px-3 py-2 text-[0.8125rem] whitespace-pre-wrap break-words`,children:[i?.length?(0,W.jsxDEV)(`div`,{className:`mb-1.5 flex flex-wrap gap-1`,children:i.map(e=>(0,W.jsxDEV)(`span`,{className:`inline-flex max-w-full items-center rounded-md bg-background px-1.5 py-0.5 text-xs`,title:e.name,children:e.label??e.name},e.name,!1,{fileName:G,lineNumber:80,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:78,columnNumber:11},this):null,t]},void 0,!0,{fileName:G,lineNumber:76,columnNumber:7},this):(0,W.jsxDEV)(`div`,{className:`self-start max-w-[95%] min-w-0 rounded-2xl bg-muted px-3 py-2 text-sm break-words`,children:[r?(0,W.jsxDEV)(`details`,{className:`mb-2 rounded-lg border border-border px-2 py-1`,children:[(0,W.jsxDEV)(`summary`,{className:`cursor-pointer select-none text-xs text-muted-foreground`,children:a(`webchat.reasoning`)},void 0,!1,{fileName:G,lineNumber:99,columnNumber:11},this),(0,W.jsxDEV)(fe,{text:r,className:`md-static md-chat md-chat-sub mt-1 text-muted-foreground`},void 0,!1,{fileName:G,lineNumber:102,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:98,columnNumber:9},this):null,(0,W.jsxDEV)(fe,{text:t,className:`md-static md-chat`},void 0,!1,{fileName:G,lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:95,columnNumber:5},this)}),K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/AgentPicker.tsx`,he=5;function ge({quality:e,time:t,hint:r}){let{t:i}=n();if(e===void 0||t===void 0)return r?(0,W.jsxDEV)(`span`,{className:`shrink-0 text-muted-foreground`,children:r},void 0,!1,{fileName:K,lineNumber:27,columnNumber:19},this):null;let a=e!==t;return(0,W.jsxDEV)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-muted-foreground tabular-nums`,children:[(0,W.jsxDEV)(`span`,{className:`flex items-center gap-0.5`,title:i(`webchat.quality`,{value:e}),children:[e,(0,W.jsxDEV)(f,{size:11,"aria-hidden":!0,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:37,columnNumber:9},this),(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.quality`,{value:e})},void 0,!1,{fileName:K,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:35,columnNumber:7},this),a?(0,W.jsxDEV)(`span`,{className:`flex items-center gap-0.5`,title:i(`webchat.time`,{value:t}),children:[t,(0,W.jsxDEV)(h,{size:11,"aria-hidden":!0,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:43,columnNumber:11},this),(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.time`,{value:t})},void 0,!1,{fileName:K,lineNumber:44,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:41,columnNumber:9},this):(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.time`,{value:t})},void 0,!1,{fileName:K,lineNumber:47,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:34,columnNumber:5},this)}function _e(e,t){if(t||e.length<2||e.length>he)return null;let n=Array.from({length:e.length});for(let t of e){let r=t.quality;if(r===void 0||!Number.isInteger(r)||r<1||r>e.length||n[r-1])return null;n[r-1]=t}return n.every(e=>e!==void 0)?n:null}function ve({agents:e,defaultAgentId:t,selection:r,onChange:i}){let{t:a}=n(),[o,s]=(0,A.useState)(!1),[c,l]=(0,A.useState)(null),u=(0,A.useRef)(null),d=(0,A.useRef)(null);(0,A.useEffect)(()=>{if(!o)return;function e(e){u.current&&!u.current.contains(e.target)&&s(!1)}function t(e){e.key===`Escape`&&(s(!1),d.current?.focus())}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]);let p=e.length>1,h=e.flatMap(e=>e.presets.map(t=>({agentId:e.id,presetId:t.id,label:p?`${e.title} · ${t.title}`:t.title,hint:t.hint,quality:t.quality,time:t.time,isDefault:t.default===!0})));if(h.length===0)return null;let g=h.find(e=>e.agentId===r.agentId&&e.presetId===r.presetId)??h.find(e=>e.agentId===t&&e.isDefault)??h.find(e=>e.isDefault)??h[0],_=_e(h,p);if(_){let e=_.indexOf(g)+1,t=c??e,n=(e,t)=>`${e.label} · ${a(`webchat.level`,{value:t,max:_.length})}`;return(0,W.jsxDEV)(`ul`,{"aria-label":a(`webchat.agentPicker`),className:`flex shrink-0 items-center`,onPointerLeave:()=>l(null),children:_.map((e,r)=>{let a=r+1;return(0,W.jsxDEV)(`li`,{children:(0,W.jsxDEV)(`button`,{type:`button`,...e===g?{"aria-current":!0}:{},"aria-label":n(e,a),className:`flex rounded p-1 focus-visible:outline-2 focus-visible:outline-ring`,onPointerEnter:()=>l(a),onFocus:()=>l(a),onBlur:()=>l(null),onClick:()=>i({agentId:e.agentId,presetId:e.presetId}),children:(0,W.jsxDEV)(f,{size:16,"aria-hidden":!0,className:a<=t?`fill-current`:`text-border`,style:a<=t?{color:m(`yellow`)}:void 0},void 0,!1,{fileName:K,lineNumber:181,columnNumber:17},this)},void 0,!1,{fileName:K,lineNumber:166,columnNumber:15},this)},`${e.agentId}/${e.presetId}`,!1,{fileName:K,lineNumber:165,columnNumber:13},this)})},void 0,!1,{fileName:K,lineNumber:157,columnNumber:7},this)}return(0,W.jsxDEV)(`div`,{className:`relative`,ref:u,children:[(0,W.jsxDEV)(`button`,{ref:d,type:`button`,"aria-haspopup":`menu`,"aria-expanded":o,className:`flex items-center gap-1 rounded-md px-2 py-1 text-xs text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>s(e=>!e),children:[(0,W.jsxDEV)(`span`,{className:`max-w-40 truncate`,children:g.label},void 0,!1,{fileName:K,lineNumber:205,columnNumber:9},this),(0,W.jsxDEV)(C,{size:12,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:206,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:197,columnNumber:7},this),o&&(0,W.jsxDEV)(`ul`,{"aria-label":a(`webchat.agentPicker`),className:`absolute bottom-full left-0 z-10 mb-1 max-h-64 w-64 max-w-[calc(100vw-2rem)] overflow-y-auto rounded-md border border-border bg-muted py-1 shadow-lg`,children:h.map(e=>{let t=e===g;return(0,W.jsxDEV)(`li`,{children:(0,W.jsxDEV)(`button`,{type:`button`,...t?{"aria-current":!0}:{},className:`flex w-full items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-card focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{s(!1),i({agentId:e.agentId,presetId:e.presetId})},children:[(0,W.jsxDEV)(b,{size:12,className:t?`shrink-0 text-primary`:`shrink-0 opacity-0`},void 0,!1,{fileName:K,lineNumber:234,columnNumber:19},this),(0,W.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label},void 0,!1,{fileName:K,lineNumber:235,columnNumber:19},this),(0,W.jsxDEV)(ge,{quality:e.quality,time:e.time,hint:e.hint},void 0,!1,{fileName:K,lineNumber:236,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:225,columnNumber:17},this)},`${e.agentId}/${e.presetId}`,!1,{fileName:K,lineNumber:224,columnNumber:15},this)})},void 0,!1,{fileName:K,lineNumber:214,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:196,columnNumber:5},this)}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatComposer.tsx`;function ye({streaming:e,onSend:t,onStop:r,attachments:i,uploading:a,uploadError:o,uploadProgress:s,canRetryUpload:c,onRetryUpload:d,onPickFiles:f,onRemoveAttachment:m,agents:h,defaultAgentId:g,selection:_,onChooseAgent:v,attachmentsAllowed:y}){let{t:b}=n(),[x,C]=(0,A.useState)(``);function w(){!x.trim()||e||t(x.trim(),i)&&C(``)}return(0,W.jsxDEV)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border p-2`,children:[(i.length>0||a||o)&&(0,W.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1`,"data-chat-attachments":!0,children:[i.map((e,t)=>(0,W.jsxDEV)(`span`,{className:`inline-flex min-w-0 max-w-full items-center gap-1 rounded-md bg-muted px-2 py-1 text-xs`,children:[(0,W.jsxDEV)(T,{size:13,className:`shrink-0 text-muted-foreground`},void 0,!1,{fileName:q,lineNumber:65,columnNumber:15},this),(0,W.jsxDEV)(`span`,{className:`max-w-48 truncate`,children:e.label??e.name},void 0,!1,{fileName:q,lineNumber:66,columnNumber:15},this),(0,W.jsxDEV)(`button`,{type:`button`,"aria-label":b(`webchat.removeAttachment`,{name:e.label??e.name}),className:`shrink-0 rounded p-0.5 text-muted-foreground hover:text-destructive`,onClick:()=>m(t),children:(0,W.jsxDEV)(S,{size:13},void 0,!1,{fileName:q,lineNumber:73,columnNumber:17},this)},void 0,!1,{fileName:q,lineNumber:67,columnNumber:15},this)]},`${e.name}-${t}`,!0,{fileName:q,lineNumber:61,columnNumber:13},this)),a&&(0,W.jsxDEV)(`div`,{className:`flex min-w-32 flex-1 items-center gap-2`,"aria-label":b(`webchat.uploading`),children:[(0,W.jsxDEV)(l,{size:14,className:`shrink-0 animate-spin text-muted-foreground`},void 0,!1,{fileName:q,lineNumber:79,columnNumber:15},this),(0,W.jsxDEV)(`div`,{role:`progressbar`,"aria-label":b(`webchat.uploadProgress`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":s,className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-border`,children:(0,W.jsxDEV)(`div`,{className:`h-full rounded-full bg-primary transition-[width]`,style:{width:`${s}%`}},void 0,!1,{fileName:q,lineNumber:88,columnNumber:17},this)},void 0,!1,{fileName:q,lineNumber:80,columnNumber:15},this),(0,W.jsxDEV)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:[s,`%`]},void 0,!0,{fileName:q,lineNumber:93,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:78,columnNumber:13},this),o&&(0,W.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-destructive`,children:[(0,W.jsxDEV)(`span`,{className:`min-w-0 flex-1`,children:b(o)},void 0,!1,{fileName:q,lineNumber:98,columnNumber:15},this),c&&(0,W.jsxDEV)(`button`,{type:`button`,className:`inline-flex shrink-0 items-center gap-1 rounded px-1.5 py-0.5 font-medium text-primary hover:bg-muted`,onClick:d,children:[(0,W.jsxDEV)(u,{size:12},void 0,!1,{fileName:q,lineNumber:105,columnNumber:19},this),` `,b(`webchat.retryUpload`)]},void 0,!0,{fileName:q,lineNumber:100,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:97,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:59,columnNumber:9},this),(0,W.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,W.jsxDEV)(`textarea`,{className:`w-full resize-none rounded-lg border border-border bg-background px-3 py-2 text-sm max-h-32`,rows:1,value:x,placeholder:b(`webchat.placeholder`),onChange:e=>C(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),w())}},void 0,!1,{fileName:q,lineNumber:115,columnNumber:9},this),(0,W.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[y&&(0,W.jsxDEV)(`label`,{"aria-label":b(`webchat.attach`),className:`shrink-0 cursor-pointer rounded-lg p-1.5 text-muted-foreground hover:bg-muted hover:text-primary ${a?`pointer-events-none opacity-60`:``}`,children:[(0,W.jsxDEV)(O,{size:18},void 0,!1,{fileName:q,lineNumber:135,columnNumber:15},this),(0,W.jsxDEV)(`input`,{type:`file`,multiple:!0,className:`hidden`,disabled:a,onChange:e=>{e.target.files?.length&&f(e.target.files),e.currentTarget.value=``}},void 0,!1,{fileName:q,lineNumber:136,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:131,columnNumber:13},this),(0,W.jsxDEV)(ve,{agents:h,defaultAgentId:g,selection:_,onChange:v},void 0,!1,{fileName:q,lineNumber:148,columnNumber:11},this),(0,W.jsxDEV)(`div`,{className:`flex-1`},void 0,!1,{fileName:q,lineNumber:149,columnNumber:11},this),e?(0,W.jsxDEV)(`button`,{"aria-label":b(`webchat.stop`),className:`shrink-0 rounded-lg p-1.5 hover:bg-muted`,onClick:r,children:(0,W.jsxDEV)(p,{size:18},void 0,!1,{fileName:q,lineNumber:156,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:151,columnNumber:13},this):(0,W.jsxDEV)(`button`,{"aria-label":b(`webchat.send`),className:`shrink-0 rounded-lg p-1.5 hover:bg-muted`,onClick:w,children:(0,W.jsxDEV)(k,{size:18},void 0,!1,{fileName:q,lineNumber:164,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:159,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:129,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:114,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:57,columnNumber:5},this)}var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatThreadList.tsx`;function be({threads:e,activeId:t,onOpen:r,onNew:i,onTogglePrivate:a,className:o=`w-[220px] shrink-0`}){let{t:s}=n();return(0,W.jsxDEV)(`aside`,{"aria-label":s(`webchat.threads`),className:`${o} border-r border-border flex flex-col`,children:[(0,W.jsxDEV)(`button`,{className:`flex items-center gap-2 px-3 py-2 text-sm hover:bg-muted`,onClick:i,children:[(0,W.jsxDEV)(d,{size:16},void 0,!1,{fileName:J,lineNumber:29,columnNumber:9},this),` `,s(`webchat.newConversation`)]},void 0,!0,{fileName:J,lineNumber:28,columnNumber:7},this),(0,W.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:e.map(e=>{let n=e.convId===t;return(0,W.jsxDEV)(`div`,{className:`flex items-center gap-1 pl-1 pr-2 ${n?`bg-muted`:`hover:bg-muted`}`,children:[(0,W.jsxDEV)(`button`,{onClick:()=>r(e.convId),className:`min-w-0 flex-1 py-2 pl-2 text-left text-sm ${n?`font-medium`:``}`,children:[(0,W.jsxDEV)(`span`,{className:`block truncate`,children:e.title||s(`webchat.newConversation`)},void 0,!1,{fileName:J,lineNumber:43,columnNumber:17},this),(e.mine||e.ownerName)&&(0,W.jsxDEV)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.mine?s(`webchat.you`):e.ownerName},void 0,!1,{fileName:J,lineNumber:48,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:39,columnNumber:15},this),e.mine&&(0,W.jsxDEV)(`button`,{type:`button`,"aria-label":e.private?s(`webchat.makePublic`):s(`webchat.makePrivate`),title:e.private?s(`webchat.makePublic`):s(`webchat.makePrivate`),onClick:t=>{t.stopPropagation(),a(e.convId,!e.private)},className:`shrink-0 rounded p-1 text-muted-foreground hover:bg-card hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,children:(0,W.jsxDEV)(v,{name:e.private?`lucide:shield`:`lucide:globe`,size:14},void 0,!1,{fileName:J,lineNumber:64,columnNumber:19},this)},void 0,!1,{fileName:J,lineNumber:54,columnNumber:17},this)]},e.convId,!0,{fileName:J,lineNumber:35,columnNumber:13},this)})},void 0,!1,{fileName:J,lineNumber:31,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:27,columnNumber:5},this)}var xe=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/SuggestionChips.tsx`;function Se({items:e,onPick:t}){let{t:r}=n();return e?.length?(0,W.jsxDEV)(`div`,{role:`group`,"aria-label":r(`webchat.suggestions`),className:`flex flex-wrap gap-1.5 px-2 pb-1.5`,children:e.map((e,n)=>(0,W.jsxDEV)(`button`,{type:`button`,title:e,className:`max-w-full truncate rounded-full border border-border bg-muted px-3 py-1 text-xs text-foreground hover:border-border2 hover:bg-card focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>t(e),children:e},`${n}-${e}`,!1,{fileName:xe,lineNumber:24,columnNumber:9},this))},void 0,!1,{fileName:xe,lineNumber:22,columnNumber:5},this):null}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatWidget.tsx`,Ce=25*1024*1024;function X(e){return Array.from(e.dataTransfer.types).includes(`Files`)}function we({children:e,onFiles:t,className:r}){let{t:i}=n(),[o,s]=(0,A.useState)(!1),c=(0,A.useRef)(0);function l(e){X(e)&&(e.preventDefault(),c.current+=1,s(!0))}function u(e){X(e)&&(e.preventDefault(),c.current=Math.max(0,c.current-1),c.current===0&&s(!1))}function d(e){X(e)&&(e.preventDefault(),c.current=0,s(!1),t(Array.from(e.dataTransfer.files)))}return(0,W.jsxDEV)(`div`,{className:r,onDragEnter:l,onDragLeave:u,onDragOver:e=>{X(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:d,children:[e,o&&(0,W.jsxDEV)(`div`,{"data-chat-drop-overlay":!0,"data-testid":`chat-drop-overlay`,className:`pointer-events-none absolute inset-0 z-50 grid place-items-center bg-card/95 p-6 text-center backdrop-blur-sm`,children:(0,W.jsxDEV)(`div`,{className:`flex h-full w-full flex-col items-center justify-center rounded-2xl border-2 border-dashed border-ring text-primary`,children:[(0,W.jsxDEV)(a,{size:34},void 0,!1,{fileName:Y,lineNumber:83,columnNumber:13},this),(0,W.jsxDEV)(`span`,{className:`mt-3 text-base font-medium`,children:i(`webchat.dropFiles`)},void 0,!1,{fileName:Y,lineNumber:84,columnNumber:13},this),(0,W.jsxDEV)(`span`,{className:`mt-1 text-xs text-muted-foreground`,children:i(`webchat.dropFilesHint`)},void 0,!1,{fileName:Y,lineNumber:85,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:59,columnNumber:5},this)}function Z(e){return e?[`bubble`,`panel`,`modal`]:[`bubble`,`modal`]}function Q(e){return Z(e)[1]}function $(e,t,n){let r=Z(t),i=r.indexOf(e)+n;return r[Math.min(r.length-1,Math.max(0,i))]}function Te(){let{t:e}=n(),t=ne(),r=oe(),[i,a]=(0,A.useState)(`bubble`),[s,l]=(0,A.useState)(!1),[u,f]=(0,A.useState)([]),[p,m]=(0,A.useState)(!1),[h,v]=(0,A.useState)(0),[b,x]=(0,A.useState)(null),[C,T]=(0,A.useState)([]),O=c(`sm`,640),k=O&&i===`modal`,j=(0,A.useCallback)(()=>{a(Q(O))},[O]),M=(0,A.useRef)(null),N=(0,A.useRef)(`bubble`);(0,A.useEffect)(()=>{if(i!==`modal`)return;let e=e=>{e.key===`Escape`&&a($(`modal`,O,-1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,O]),(0,A.useEffect)(()=>{Z(O).includes(i)||a(Q(O))},[i,O]),(0,A.useEffect)(()=>{i===`panel`&&N.current===`modal`&&M.current?.focus(),N.current=i},[i]),(0,A.useEffect)(()=>{(i===`bubble`||k)&&l(!1)},[i,k]),(0,A.useEffect)(()=>{if(i!==`modal`)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[i]);let P=i!==`bubble`;(0,A.useEffect)(()=>{P&&t.loadThreads()},[P,t.loadThreads]);let{convId:F,newConversation:I}=t;(0,A.useEffect)(()=>{P&&F===null&&I()},[P,F,I]);function L(){t.newConversation(),f([]),x(null),T([]),l(!1)}let R=(0,A.useCallback)(async e=>{if(!e.length)return;x(null),T([]),m(!0),v(0);let t=[],n=[],r=null;for(let i of e){if(i.size>Ce){r??=`webchat.uploadTooLarge`;continue}try{v(0);let e=await g(i,v);e?t.push({...e,label:i.name}):(n.push(i),r??=`webchat.uploadFailed`)}catch{n.push(i),r??=`webchat.uploadFailed`}}t.length&&f(e=>[...e,...t]),m(!1),v(0),T(n),r&&x(r)},[]),ee=(0,A.useCallback)(()=>{C.length&&R(C)},[R,C]),z=(0,A.useCallback)((e,n)=>{let i=r(),a=n.length?t.send(e,i,n):t.send(e,i);return a&&(f([]),x(null),T([])),a},[t,r]),te=t.messages.length>0||t.pending!==null,B=t.threads.find(e=>e.convId===t.convId)?.title,V=(0,W.jsxDEV)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-border px-3 py-2`,children:[(0,W.jsxDEV)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:B||e(`webchat.title`)},void 0,!1,{fileName:Y,lineNumber:295,columnNumber:7},this),(0,W.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[!k&&(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.threads`),"aria-expanded":s,className:`rounded p-1 hover:bg-muted`,onClick:()=>l(e=>!e),children:(0,W.jsxDEV)(w,{size:16},void 0,!1,{fileName:Y,lineNumber:307,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:301,columnNumber:11},this),te&&(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.newConversation`),className:`rounded p-1 hover:bg-muted`,onClick:L,children:(0,W.jsxDEV)(d,{size:16},void 0,!1,{fileName:Y,lineNumber:316,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:315,columnNumber:11},this),Z(O).includes(`panel`)&&(0,W.jsxDEV)(`button`,{ref:M,"aria-label":e(i===`modal`?`webchat.collapse`:`webchat.expand`),className:`rounded p-1 hover:bg-muted`,onClick:()=>a($(i,O,i===`modal`?-1:1)),children:i===`modal`?(0,W.jsxDEV)(D,{size:16},void 0,!1,{fileName:Y,lineNumber:328,columnNumber:33},this):(0,W.jsxDEV)(E,{size:16},void 0,!1,{fileName:Y,lineNumber:328,columnNumber:59},this)},void 0,!1,{fileName:Y,lineNumber:322,columnNumber:11},this),(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.close`),className:`rounded p-1 hover:bg-muted`,onClick:()=>a(`bubble`),children:(0,W.jsxDEV)(S,{size:16},void 0,!1,{fileName:Y,lineNumber:336,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:331,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:296,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:294,columnNumber:5},this),H=(0,W.jsxDEV)(be,{threads:t.threads,activeId:t.convId,onOpen:e=>{t.open(e),f([]),x(null),T([]),l(!1)},onNew:L,onTogglePrivate:t.togglePrivate,className:k?`w-[220px] shrink-0`:`w-full`},void 0,!1,{fileName:Y,lineNumber:345,columnNumber:5},this),U=(0,W.jsxDEV)(le,{onNavigate:j,children:(0,W.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[t.error&&(0,W.jsxDEV)(`div`,{className:`px-3 py-2 text-sm text-destructive`,children:e(`webchat.error`,{message:t.error})},void 0,!1,{fileName:Y,lineNumber:367,columnNumber:11},this),(0,W.jsxDEV)(pe,{messages:t.messages,pending:t.pending,pendingReasoning:t.pendingReasoning,trailing:t.messages.length===0?(0,W.jsxDEV)(Se,{items:t.starters,onPick:e=>z(e,u)},void 0,!1,{fileName:Y,lineNumber:375,columnNumber:15},this):(0,W.jsxDEV)(Se,{items:t.suggestions,onPick:e=>z(e,u)},void 0,!1,{fileName:Y,lineNumber:377,columnNumber:15},this)},void 0,!1,{fileName:Y,lineNumber:369,columnNumber:9},this),(0,W.jsxDEV)(ye,{streaming:t.pending!==null,attachments:u,uploading:p,uploadProgress:h,uploadError:b,canRetryUpload:C.length>0&&!p,onRetryUpload:ee,onPickFiles:e=>void R(Array.from(e)),onRemoveAttachment:e=>f(t=>t.filter((t,n)=>n!==e)),agents:t.agents,defaultAgentId:t.defaultAgentId,selection:t.selection,onChooseAgent:t.chooseAgent,attachmentsAllowed:t.attachmentsAllowed,onSend:z,onStop:t.stop},void 0,!1,{fileName:Y,lineNumber:381,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:365,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:362,columnNumber:5},this);return i===`bubble`?(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.open`),onClick:()=>a(Q(O)),className:`fixed bottom-4 right-4 z-40 grid h-14 w-14 place-items-center rounded-full bg-primary text-on-accent ring-1 ring-border2 shadow-lg`,children:(0,W.jsxDEV)(o,{size:24},void 0,!1,{fileName:Y,lineNumber:427,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:405,columnNumber:7},this):i===`panel`?(0,W.jsxDEV)(we,{onFiles:R,className:`fixed bottom-4 right-4 z-40 flex h-[560px] max-h-[80dvh] w-[380px] max-w-[calc(100vw-2rem)] flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-xl`,children:[V,s?H:U]},void 0,!0,{fileName:Y,lineNumber:434,columnNumber:7},this):(0,W.jsxDEV)(_,{open:!0,modal:!1,onOpenChange:e=>!e&&a($(`modal`,O,-1)),children:[(0,W.jsxDEV)(`div`,{"data-chat-backdrop":!0,"aria-hidden":`true`,className:`fixed inset-0 z-[45] bg-black/50 backdrop-blur-sm`},void 0,!1,{fileName:Y,lineNumber:456,columnNumber:7},this),(0,W.jsxDEV)(y,{hideClose:!0,className:`h-[85dvh] w-full p-0 md:h-[85dvh] md:w-[80vw] md:max-w-[1040px] md:overflow-y-hidden`,children:(0,W.jsxDEV)(we,{onFiles:R,className:`h-full`,children:(0,W.jsxDEV)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[V,(0,W.jsxDEV)(`div`,{className:`flex min-h-0 flex-1`,children:[(k||s)&&H,(k||!s)&&U]},void 0,!0,{fileName:Y,lineNumber:469,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:467,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:466,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:462,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:453,columnNumber:5},this)}export{Te as ChatWidget,Te as default,Z as chatModes,Q as restingMode,$ as stepMode};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-CzSUaSLk.js";import{Or as i,Vt as a,Yn as o,br as s,kr as c,vr as l}from"./src-1AsWJbID.js";import{l as u}from"./phone-input-BZ9vGYpI.js";import{h as d,m as f,y as p}from"./api-QNHQU9to.js";import{n as m}from"./auth-context-CoCE5oPD.js";import{n as h,t as g}from"./plugin-label-CfdhA4_L.js";var _=e(t(),1),v=r(),y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/DiagnosticsPage.tsx`;function b(){let{t:e}=n(),{role:t}=m(),[r,b]=(0,_.useState)(null),[S,C]=(0,_.useState)([]),[w,T]=(0,_.useState)(null),[E,D]=(0,_.useState)(`loading`),[O,k]=(0,_.useState)(!0),[A,j]=(0,_.useState)(!1),M=(0,_.useCallback)(async()=>{k(!0),j(!1),D(`loading`);let e=fetch(`/health`).then(e=>D(e.ok?`ok`:`error`)).catch(()=>D(`error`));try{let[e,t,n]=await Promise.all([f(),p(),d()]);b(e),C(t),T(n)}catch{j(!0)}finally{await e,k(!1)}},[]);if((0,_.useEffect)(()=>{t===`admin`&&M()},[M,t]),t!==`admin`)return(0,v.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,v.jsxDEV)(a,{overline:e(`settings.title`),title:e(`diagnostics.title`)},void 0,!1,{fileName:y,lineNumber:64,columnNumber:9},this),(0,v.jsxDEV)(i,{children:(0,v.jsxDEV)(`p`,{className:`text-sm text-destructive`,children:e(`diagnostics.adminOnly`)},void 0,!1,{fileName:y,lineNumber:66,columnNumber:11},this)},void 0,!1,{fileName:y,lineNumber:65,columnNumber:9},this)]},void 0,!0,{fileName:y,lineNumber:63,columnNumber:7},this);let N=S.filter(e=>e.latestVersion&&h(e.latestVersion,e.installedVersion));return(0,v.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,v.jsxDEV)(a,{overline:e(`settings.title`),title:e(`diagnostics.title`),actions:(0,v.jsxDEV)(u,{type:`button`,variant:`ghost`,size:`sm`,className:`shrink-0 border border-border`,disabled:O,onClick:()=>void M(),children:[(0,v.jsxDEV)(c,{name:`lucide:refresh-cw`,size:15,className:O?`animate-spin`:void 0},void 0,!1,{fileName:y,lineNumber:88,columnNumber:13},this),e(O?`diagnostics.refreshing`:`diagnostics.refresh`)]},void 0,!0,{fileName:y,lineNumber:80,columnNumber:11},this)},void 0,!1,{fileName:y,lineNumber:76,columnNumber:7},this),(0,v.jsxDEV)(i,{children:[(0,v.jsxDEV)(`p`,{className:`mb-6 text-sm text-muted-foreground`,children:e(`diagnostics.description`)},void 0,!1,{fileName:y,lineNumber:94,columnNumber:9},this),A&&(0,v.jsxDEV)(o,{tone:`danger`,className:`mb-5`,children:e(`diagnostics.loadFailed`)},void 0,!1,{fileName:y,lineNumber:97,columnNumber:11},this),(0,v.jsxDEV)(`div`,{className:`grid gap-4 sm:grid-cols-3`,children:[(0,v.jsxDEV)(l,{className:`px-4 py-3`,children:[(0,v.jsxDEV)(`div`,{className:`text-xs text-muted-foreground`,children:e(`diagnostics.server`)},void 0,!1,{fileName:y,lineNumber:104,columnNumber:13},this),(0,v.jsxDEV)(`div`,{className:`mt-2 flex items-center gap-2 font-semibold text-foreground`,children:[(0,v.jsxDEV)(`span`,{className:`h-2.5 w-2.5 rounded-full ${E===`ok`?`bg-success`:E===`error`?`bg-destructive`:`bg-muted`}`},void 0,!1,{fileName:y,lineNumber:106,columnNumber:15},this),e(E===`ok`?`diagnostics.healthy`:E===`error`?`diagnostics.unavailable`:`common.loading`)]},void 0,!0,{fileName:y,lineNumber:105,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:103,columnNumber:11},this),(0,v.jsxDEV)(l,{className:`px-4 py-3`,children:[(0,v.jsxDEV)(`div`,{className:`text-xs text-muted-foreground`,children:e(`diagnostics.agents`)},void 0,!1,{fileName:y,lineNumber:117,columnNumber:13},this),(0,v.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:r?.agents.map(e=>(0,v.jsxDEV)(s,{variant:`secondary`,children:e},e,!1,{fileName:y,lineNumber:120,columnNumber:17},this))??(0,v.jsxDEV)(`span`,{className:`text-sm text-muted-foreground`,children:`—`},void 0,!1,{fileName:y,lineNumber:123,columnNumber:21},this)},void 0,!1,{fileName:y,lineNumber:118,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:116,columnNumber:11},this),(0,v.jsxDEV)(l,{className:`px-4 py-3`,children:[(0,v.jsxDEV)(`div`,{className:`text-xs text-muted-foreground`,children:e(`diagnostics.connectors`)},void 0,!1,{fileName:y,lineNumber:127,columnNumber:13},this),(0,v.jsxDEV)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:r?.connectors.map(e=>(0,v.jsxDEV)(s,{variant:`secondary`,children:e},e,!1,{fileName:y,lineNumber:130,columnNumber:17},this))??(0,v.jsxDEV)(`span`,{className:`text-sm text-muted-foreground`,children:`—`},void 0,!1,{fileName:y,lineNumber:133,columnNumber:21},this)},void 0,!1,{fileName:y,lineNumber:128,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:126,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:102,columnNumber:9},this),(0,v.jsxDEV)(`section`,{className:`mt-6`,children:[(0,v.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold text-foreground`,children:e(`diagnostics.versions`)},void 0,!1,{fileName:y,lineNumber:139,columnNumber:11},this),(0,v.jsxDEV)(l,{className:`overflow-hidden`,children:[(0,v.jsxDEV)(`div`,{className:`grid grid-cols-[1fr_auto_auto] gap-x-4 border-b border-border px-4 py-2 text-xs font-medium text-muted-foreground`,children:[(0,v.jsxDEV)(`span`,{children:e(`diagnostics.component`)},void 0,!1,{fileName:y,lineNumber:142,columnNumber:15},this),(0,v.jsxDEV)(`span`,{children:e(`diagnostics.installed`)},void 0,!1,{fileName:y,lineNumber:143,columnNumber:15},this),(0,v.jsxDEV)(`span`,{children:e(`diagnostics.latest`)},void 0,!1,{fileName:y,lineNumber:144,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:141,columnNumber:13},this),w?.installedVersion&&(0,v.jsxDEV)(x,{name:e(`plugins.runtimeLabel`),installed:w.installedVersion,latest:w.latestVersion},void 0,!1,{fileName:y,lineNumber:147,columnNumber:15},this),S.filter(e=>e.id!==`core`).map(t=>(0,v.jsxDEV)(x,{name:g(e,t),installed:t.installedVersion,latest:t.latestVersion},t.id,!1,{fileName:y,lineNumber:156,columnNumber:17},this)),!w?.installedVersion&&S.length===0&&(0,v.jsxDEV)(`div`,{className:`px-4 py-4 text-sm text-muted-foreground`,children:e(`diagnostics.noData`)},void 0,!1,{fileName:y,lineNumber:164,columnNumber:15},this),N.length>0&&(0,v.jsxDEV)(`div`,{className:`border-t border-border px-4 py-2 text-xs text-primary`,children:e(`diagnostics.outdated`,{count:N.length})},void 0,!1,{fileName:y,lineNumber:167,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:140,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:138,columnNumber:9},this),(0,v.jsxDEV)(`section`,{className:`mt-6`,children:[(0,v.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold text-foreground`,children:e(`diagnostics.recentMessages`)},void 0,!1,{fileName:y,lineNumber:175,columnNumber:11},this),(0,v.jsxDEV)(l,{className:`overflow-x-auto`,children:r?.recentMessages.length?(0,v.jsxDEV)(`table`,{className:`w-full min-w-[34rem] text-left text-xs`,children:[(0,v.jsxDEV)(`thead`,{className:`border-b border-border text-muted-foreground`,children:(0,v.jsxDEV)(`tr`,{children:[(0,v.jsxDEV)(`th`,{className:`px-4 py-2 font-medium`,children:e(`diagnostics.time`)},void 0,!1,{fileName:y,lineNumber:181,columnNumber:21},this),(0,v.jsxDEV)(`th`,{className:`px-4 py-2 font-medium`,children:e(`diagnostics.connector`)},void 0,!1,{fileName:y,lineNumber:182,columnNumber:21},this),(0,v.jsxDEV)(`th`,{className:`px-4 py-2 font-medium`,children:e(`diagnostics.role`)},void 0,!1,{fileName:y,lineNumber:183,columnNumber:21},this),(0,v.jsxDEV)(`th`,{className:`px-4 py-2 text-right font-medium`,children:e(`diagnostics.duration`)},void 0,!1,{fileName:y,lineNumber:184,columnNumber:21},this),(0,v.jsxDEV)(`th`,{className:`px-4 py-2 text-right font-medium`,children:e(`diagnostics.tokens`)},void 0,!1,{fileName:y,lineNumber:185,columnNumber:21},this)]},void 0,!0,{fileName:y,lineNumber:180,columnNumber:19},this)},void 0,!1,{fileName:y,lineNumber:179,columnNumber:17},this),(0,v.jsxDEV)(`tbody`,{children:r.recentMessages.map(e=>(0,v.jsxDEV)(`tr`,{className:`border-b border-border last:border-0`,children:[(0,v.jsxDEV)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:new Date(e.ts).toLocaleString()},void 0,!1,{fileName:y,lineNumber:191,columnNumber:23},this),(0,v.jsxDEV)(`td`,{className:`px-4 py-2 text-foreground`,children:e.connector},void 0,!1,{fileName:y,lineNumber:192,columnNumber:23},this),(0,v.jsxDEV)(`td`,{className:`px-4 py-2 text-foreground`,children:e.role},void 0,!1,{fileName:y,lineNumber:193,columnNumber:23},this),(0,v.jsxDEV)(`td`,{className:`px-4 py-2 text-right text-muted-foreground`,children:e.ms==null?`—`:`${e.ms} ms`},void 0,!1,{fileName:y,lineNumber:194,columnNumber:23},this),(0,v.jsxDEV)(`td`,{className:`px-4 py-2 text-right text-muted-foreground`,children:e.tokensIn==null&&e.tokensOut==null?`—`:`${e.tokensIn??0} / ${e.tokensOut??0}`},void 0,!1,{fileName:y,lineNumber:197,columnNumber:23},this)]},e.id,!0,{fileName:y,lineNumber:190,columnNumber:21},this))},void 0,!1,{fileName:y,lineNumber:188,columnNumber:17},this)]},void 0,!0,{fileName:y,lineNumber:178,columnNumber:15},this):(0,v.jsxDEV)(`div`,{className:`px-4 py-4 text-sm text-muted-foreground`,children:e(`diagnostics.noMessages`)},void 0,!1,{fileName:y,lineNumber:207,columnNumber:15},this)},void 0,!1,{fileName:y,lineNumber:176,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:174,columnNumber:9},this),(0,v.jsxDEV)(`section`,{className:`mt-6`,children:[(0,v.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold text-foreground`,children:e(`diagnostics.recentErrors`)},void 0,!1,{fileName:y,lineNumber:213,columnNumber:11},this),(0,v.jsxDEV)(l,{className:`overflow-hidden`,children:r?.recentErrors.length?r.recentErrors.map((e,t)=>(0,v.jsxDEV)(`div`,{className:`border-b border-border px-4 py-3 last:border-0`,children:[(0,v.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,v.jsxDEV)(s,{variant:`destructive`,children:e.level},void 0,!1,{fileName:y,lineNumber:219,columnNumber:21},this),(0,v.jsxDEV)(`span`,{className:`font-medium text-foreground`,children:e.source},void 0,!1,{fileName:y,lineNumber:220,columnNumber:21},this),(0,v.jsxDEV)(`span`,{className:`text-muted-foreground`,children:new Date(e.ts).toLocaleString()},void 0,!1,{fileName:y,lineNumber:221,columnNumber:21},this)]},void 0,!0,{fileName:y,lineNumber:218,columnNumber:19},this),(0,v.jsxDEV)(`div`,{className:`mt-1 break-words text-sm text-destructive`,children:e.message},void 0,!1,{fileName:y,lineNumber:223,columnNumber:19},this)]},`${e.ts}-${t}`,!0,{fileName:y,lineNumber:217,columnNumber:17},this)):(0,v.jsxDEV)(`div`,{className:`px-4 py-4 text-sm text-muted-foreground`,children:e(`diagnostics.noErrors`)},void 0,!1,{fileName:y,lineNumber:227,columnNumber:15},this)},void 0,!1,{fileName:y,lineNumber:214,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:212,columnNumber:9},this)]},void 0,!0,{fileName:y,lineNumber:93,columnNumber:7},this)]},void 0,!0,{fileName:y,lineNumber:75,columnNumber:5},this)}function x({name:e,installed:t,latest:n}){return(0,v.jsxDEV)(`div`,{className:`grid grid-cols-[1fr_auto_auto] gap-x-4 border-b border-border px-4 py-2.5 text-sm last:border-0`,children:[(0,v.jsxDEV)(`span`,{className:`min-w-0 truncate text-foreground`,children:e},void 0,!1,{fileName:y,lineNumber:239,columnNumber:7},this),(0,v.jsxDEV)(`span`,{className:`text-muted-foreground`,children:[`v`,t]},void 0,!0,{fileName:y,lineNumber:240,columnNumber:7},this),(0,v.jsxDEV)(`span`,{className:n&&h(n,t)?`text-primary`:`text-muted-foreground`,children:n?`v${n}`:`—`},void 0,!1,{fileName:y,lineNumber:241,columnNumber:7},this)]},void 0,!0,{fileName:y,lineNumber:238,columnNumber:5},this)}export{b as DiagnosticsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./rolldown-runtime-QTnfLwEv.js";import{a as r,n as i,t as a}from"./i18n-vendor-T6EnJ_TL.js";import{h as o,t as s}from"./react-vendor-CzSUaSLk.js";import{n as c,r as l,t as u}from"./input-tJjsdU1x.js";import{a as d,c as f,d as p,i as m,l as h,o as g,s as _,t as v,u as y}from"./popover-C2xHG6L3.js";import{o as b}from"./icons-BTbA1N7a.js";import{I as x,dt as S,ft as C,lt as w,ut as ee}from"./ui-vendor-BuwRGdK1.js";var te=l(`between-horizontal-end`,[[`rect`,{width:`13`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`11xb64`}],[`path`,{d:`m22 15-3-3 3-3`,key:`26chmm`}],[`rect`,{width:`13`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`k6ky7n`}]]),ne=l(`between-vertical-end`,[[`rect`,{width:`7`,height:`13`,x:`3`,y:`3`,rx:`1`,key:`1fdu0f`}],[`path`,{d:`m9 22 3-3 3 3`,key:`17z65a`}],[`rect`,{width:`7`,height:`13`,x:`14`,y:`3`,rx:`1`,key:`1squn4`}]]),re=l(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),ie=l(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),ae=l(`columns-3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),oe=l(`grid-2x2-x`,[[`path`,{d:`M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3`,key:`11za1p`}],[`path`,{d:`m16 16 5 5`,key:`8tpb07`}],[`path`,{d:`m16 21 5-5`,key:`193jll`}]]),se=l(`heading-1`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`m17 12 3-2v8`,key:`1hhhft`}]]),ce=l(`heading-2`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1`,key:`9jr5yi`}]]),le=l(`heading-3`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2`,key:`68ncm8`}],[`path`,{d:`M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2`,key:`1ejuhz`}]]),ue=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),de=l(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),fe=l(`list-ordered`,[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]),pe=l(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]),me=l(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),he=l(`strikethrough`,[[`path`,{d:`M16 4H9a3 3 0 0 0-2.83 4`,key:`43sutm`}],[`path`,{d:`M14 12a4 4 0 0 1 0 8H6`,key:`nlfj13`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),ge=l(`table`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),_e=l(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),ve=l(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),T=t(r(),1),ye=t(o(),1),be=i(),xe=b(),Se=x();function Ce(e){this.content=e}Ce.prototype={constructor:Ce,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new Ce(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new Ce(n)},addToStart:function(e,t){return new Ce([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Ce(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new Ce(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=Ce.from(e),e.size?new Ce(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Ce.from(e),e.size?new Ce(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Ce.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},Ce.from=function(e){if(e instanceof Ce)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Ce(t)};function we(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&De(e.charCodeAt(r-1))&&Ee(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=we(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Te(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&De(e.charCodeAt(i-1))&&Ee(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=Te(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function Ee(e){return e>=56320&&e<57344}function De(e){return e>=55296&&e<56320}var E=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return we(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Te(this,e,t,n)}findIndex(e){if(e==0)return ke(0,e);if(e==this.size)return ke(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ke(t+1,i):ke(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};E.empty=new E([],0);var Oe={index:0,offset:0};function ke(e,t){return Oe.index=e,Oe.offset=t,Oe}function Ae(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Ae(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ae(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var D=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Ae(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};D.none=[];var je=class extends Error{},O=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=Ne(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(Me(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(E.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};O.empty=new O(E.empty,0,0);function Me(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(Me(a.content,t-i-1,n-i-1)))}function Ne(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=Ne(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function Pe(e,t,n){if(n.openStart>e.depth)throw new je(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new je(`Inconsistent open depths`);return Fe(e,t,n,0)}function Fe(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Fe(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return Be(a,He(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Be(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Ue(n,e);return Be(a,Ve(e,i,o,t,r))}}function Ie(e,t){if(!t.type.compatibleContent(e.type))throw new je(`Cannot join `+t.type.name+` onto `+e.type.name)}function Le(e,t,n){let r=e.node(n);return Ie(r,t.node(n)),r}function Re(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function ze(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(Re(e.nodeAfter,r),a++));for(let e=a;e<o;e++)Re(i.child(e),r);t&&t.depth==n&&t.textOffset&&Re(t.nodeBefore,r)}function Be(e,t){if(!e.type.validContent(t))throw new je(`Invalid content for node `+e.type.name);return e.copy(t)}function Ve(e,t,n,r,i){let a=e.depth>i&&Le(e,t,i+1),o=r.depth>i&&Le(n,r,i+1),s=[];return ze(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Ie(a,o),Re(Be(a,Ve(e,t,n,r,i+1)),s)):(a&&Re(Be(a,He(e,t,i+1)),s),ze(t,n,i,s),o&&Re(Be(o,He(n,r,i+1)),s)),ze(r,null,i,s),new E(s)}function He(e,t,n){let r=[];return ze(null,e,n,r),e.depth>n&&Re(Be(Le(e,t,n+1),He(e,t,n+1)),r),ze(t,null,n,r),new E(r)}function Ue(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(E.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var We=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return D.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Je(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=qe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else qe.set(t,r=new Ge);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Ke,i}},Ge=class{constructor(){this.elts=[],this.i=0}},Ke=12,qe=new WeakMap,Je=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ye=Object.create(null),Xe=class e{constructor(e,t,n,r=D.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||E.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Ae(this.attrs,t||e.defaultAttrs||Ye)&&D.sameSet(this.marks,n||D.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return O.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new O(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Pe(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return We.resolveCached(this,e)}resolveNoCache(e){return We.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),Qe(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=E.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=D.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!D.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=E.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Xe.prototype.text=void 0;var Ze=class e extends Xe{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Qe(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function Qe(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var $e=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new et(t,n);if(r.next==null)return e.empty;let i=tt(r);r.next&&r.err(`Unexpected trailing text`);let a=dt(ct(i));return ft(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return E.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
1
|
+
import{n as e,r as t,t as n}from"./rolldown-runtime-QTnfLwEv.js";import{a as r,n as i,t as a}from"./i18n-vendor-T6EnJ_TL.js";import{h as o,t as s}from"./react-vendor-CzSUaSLk.js";import{n as c,r as l,t as u}from"./input-BFMNMo6y.js";import{a as d,c as f,d as p,i as m,l as h,o as g,s as _,t as v,u as y}from"./popover-C1KB68Kk.js";import{s as b}from"./icons-0CjpO0K1.js";import{Ft as x,Mt as S,Nt as C,Pt as w,Z as ee}from"./ui-vendor-C0IUUP3F.js";var te=l(`between-horizontal-end`,[[`rect`,{width:`13`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`11xb64`}],[`path`,{d:`m22 15-3-3 3-3`,key:`26chmm`}],[`rect`,{width:`13`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`k6ky7n`}]]),ne=l(`between-vertical-end`,[[`rect`,{width:`7`,height:`13`,x:`3`,y:`3`,rx:`1`,key:`1fdu0f`}],[`path`,{d:`m9 22 3-3 3 3`,key:`17z65a`}],[`rect`,{width:`7`,height:`13`,x:`14`,y:`3`,rx:`1`,key:`1squn4`}]]),re=l(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),ie=l(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),ae=l(`columns-3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),oe=l(`grid-2x2-x`,[[`path`,{d:`M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3`,key:`11za1p`}],[`path`,{d:`m16 16 5 5`,key:`8tpb07`}],[`path`,{d:`m16 21 5-5`,key:`193jll`}]]),se=l(`heading-1`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`m17 12 3-2v8`,key:`1hhhft`}]]),ce=l(`heading-2`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1`,key:`9jr5yi`}]]),le=l(`heading-3`,[[`path`,{d:`M4 12h8`,key:`17cfdx`}],[`path`,{d:`M4 18V6`,key:`1rz3zl`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}],[`path`,{d:`M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2`,key:`68ncm8`}],[`path`,{d:`M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2`,key:`1ejuhz`}]]),ue=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),de=l(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),fe=l(`list-ordered`,[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]),pe=l(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]),me=l(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),he=l(`strikethrough`,[[`path`,{d:`M16 4H9a3 3 0 0 0-2.83 4`,key:`43sutm`}],[`path`,{d:`M14 12a4 4 0 0 1 0 8H6`,key:`nlfj13`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),ge=l(`table`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),_e=l(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),ve=l(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),T=t(r(),1),ye=t(o(),1),be=i(),xe=b(),Se=ee();function Ce(e){this.content=e}Ce.prototype={constructor:Ce,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new Ce(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new Ce(n)},addToStart:function(e,t){return new Ce([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Ce(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new Ce(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=Ce.from(e),e.size?new Ce(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Ce.from(e),e.size?new Ce(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Ce.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},Ce.from=function(e){if(e instanceof Ce)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Ce(t)};function we(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&De(e.charCodeAt(r-1))&&Ee(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=we(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Te(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&De(e.charCodeAt(i-1))&&Ee(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=Te(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function Ee(e){return e>=56320&&e<57344}function De(e){return e>=55296&&e<56320}var E=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return we(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Te(this,e,t,n)}findIndex(e){if(e==0)return ke(0,e);if(e==this.size)return ke(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ke(t+1,i):ke(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};E.empty=new E([],0);var Oe={index:0,offset:0};function ke(e,t){return Oe.index=e,Oe.offset=t,Oe}function Ae(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Ae(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ae(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var D=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Ae(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};D.none=[];var je=class extends Error{},O=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=Ne(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(Me(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(E.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};O.empty=new O(E.empty,0,0);function Me(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(Me(a.content,t-i-1,n-i-1)))}function Ne(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=Ne(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function Pe(e,t,n){if(n.openStart>e.depth)throw new je(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new je(`Inconsistent open depths`);return Fe(e,t,n,0)}function Fe(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Fe(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return Be(a,He(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Be(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Ue(n,e);return Be(a,Ve(e,i,o,t,r))}}function Ie(e,t){if(!t.type.compatibleContent(e.type))throw new je(`Cannot join `+t.type.name+` onto `+e.type.name)}function Le(e,t,n){let r=e.node(n);return Ie(r,t.node(n)),r}function Re(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function ze(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(Re(e.nodeAfter,r),a++));for(let e=a;e<o;e++)Re(i.child(e),r);t&&t.depth==n&&t.textOffset&&Re(t.nodeBefore,r)}function Be(e,t){if(!e.type.validContent(t))throw new je(`Invalid content for node `+e.type.name);return e.copy(t)}function Ve(e,t,n,r,i){let a=e.depth>i&&Le(e,t,i+1),o=r.depth>i&&Le(n,r,i+1),s=[];return ze(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Ie(a,o),Re(Be(a,Ve(e,t,n,r,i+1)),s)):(a&&Re(Be(a,He(e,t,i+1)),s),ze(t,n,i,s),o&&Re(Be(o,He(n,r,i+1)),s)),ze(r,null,i,s),new E(s)}function He(e,t,n){let r=[];return ze(null,e,n,r),e.depth>n&&Re(Be(Le(e,t,n+1),He(e,t,n+1)),r),ze(t,null,n,r),new E(r)}function Ue(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(E.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var We=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return D.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Je(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=qe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else qe.set(t,r=new Ge);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Ke,i}},Ge=class{constructor(){this.elts=[],this.i=0}},Ke=12,qe=new WeakMap,Je=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ye=Object.create(null),Xe=class e{constructor(e,t,n,r=D.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||E.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Ae(this.attrs,t||e.defaultAttrs||Ye)&&D.sameSet(this.marks,n||D.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return O.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new O(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Pe(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return We.resolveCached(this,e)}resolveNoCache(e){return We.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),Qe(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=E.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=D.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!D.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=E.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Xe.prototype.text=void 0;var Ze=class e extends Xe{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Qe(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function Qe(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var $e=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new et(t,n);if(r.next==null)return e.empty;let i=tt(r);r.next&&r.err(`Unexpected trailing text`);let a=dt(ct(i));return ft(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return E.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
2
2
|
`)}};$e.empty=new $e(!0);var et=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function tt(e){let t=[];do t.push(nt(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function nt(e){let t=[];do t.push(rt(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function rt(e){let t=st(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=at(e,t);else break;return t}function it(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function at(e,t){let n=it(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:it(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function ot(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function st(e){if(e.eat(`(`)){let t=tt(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=ot(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function ct(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function lt(e,t){return t-e}function ut(e,t){let n=[];return r(t),n.sort(lt);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function dt(e){let t=Object.create(null);return n(ut(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);ut(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new $e(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(lt);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function ft(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function pt(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function mt(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function ht(e,t,n,r){for(let i in t)if(!(i in e))throw RangeError(`Unsupported attribute ${i} for ${n} of type ${r}`);for(let n in e)e[n].validate&&e[n].validate(t[n])}function gt(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new yt(e,r,t[r]);return n}var _t=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=gt(e,n.attrs),this.defaultAttrs=pt(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==$e.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:mt(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new Xe(this,this.computeAttrs(e),E.from(t),D.setFrom(n))}createChecked(e=null,t,n){return t=E.from(t),this.checkContent(t),new Xe(this,this.computeAttrs(e),t,D.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=E.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(E.empty,!0);return i?new Xe(this,e,t.append(i),D.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){ht(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:D.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function vt(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var yt=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?vt(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},bt=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=gt(e,r.attrs),this.excluded=null;let i=pt(this.attrs);this.instance=i?new D(this,i):null}create(e=null){return!e&&this.instance?this.instance:new D(this,mt(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){ht(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},xt=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=Ce.from(e.nodes),t.marks=Ce.from(e.marks||{}),this.nodes=_t.compile(this.spec.nodes,this),this.marks=bt.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=$e.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?St(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:St(this,n.split(` `))}this.nodeFromJSON=e=>Xe.fromJSON(this,e),this.markFromJSON=e=>D.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof _t))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new Ze(n,n.defaultAttrs,e,D.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function St(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function Ct(e){return e.tag!=null}function wt(e){return e.style!=null}var Tt=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(Ct(e))this.tags.push(e);else if(wt(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new Pt(this,t,!1);return n.addAll(e,D.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new Pt(this,t,!0);return n.addAll(e,D.none,t.from,t.to),O.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(It(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Lt(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Lt(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},Et={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Dt={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Ot={ol:!0,ul:!0},kt=1,At=2,jt=4;function Mt(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?kt:0)|(t===`full`?At:0)}var Nt=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=D.none,this.match=i||(a&jt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(E.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&kt)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=E.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(E.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Et.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},Pt=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=Mt(null,t.preserveWhitespace,0)|(n?jt:0);i=r?new Nt(r.type,r.attrs,D.none,!0,t.topMatch||r.type.contentMatch,a):n?new Nt(null,null,D.none,!0,null,a):new Nt(e.schema.topNodeType,null,D.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&At?`full`:this.localPreserveWS||(r.options&kt)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
|
|
3
3
|
`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;Ot.hasOwnProperty(a)&&this.parser.normalizeLists&&Ft(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:Dt.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(Et.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
4
4
|
`),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=D.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):Rt(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=Mt(e,i,a.options);a.options&jt&&a.content.length==0&&(o|=jt);let s=D.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):Rt(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new Nt(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=kt);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function Ft(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Ot.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function It(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function Lt(e){let t={};for(let n in e)t[n]=e[n];return t}function Rt(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var zt=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=Vt(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){if(e.isText)return Vt(t).createTextNode(e.text);let{dom:n,contentDOM:r}=Gt(Vt(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&Gt(Vt(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:Gt(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=Bt(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return Bt(e.marks)}};function Bt(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function Vt(e){return e.document||window.document}var Ht=new WeakMap;function Ut(e){let t=Ht.get(e);return t===void 0&&Ht.set(e,t=Wt(e)),t}function Wt(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function Gt(e,t,n,r){if(t.nodeType==1)return{dom:t};if(t.dom&&t.dom.nodeType==1)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=Ut(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=Gt(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var Kt=65535,qt=2**16;function Jt(e,t){return e+t*qt}function Yt(e){return e&Kt}function Xt(e){return(e-(e&Kt))/qt}var Zt=1,Qt=2,$t=4,en=8,tn=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&en)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&$t)>0}},nn=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=Yt(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+Xt(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:Jt(o/3,e-s),f=e==s?Qt:e==u?Zt:$t;return(t<0?e!=s:e!=u)&&(f|=en),new tn(a,f,d)}r+=l-c}return n?e+r:new tn(e+r,0,null)}touches(e,t){let n=0,r=Yt(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};nn.empty=new nn([]);var rn=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new tn(e,r,null)}},an=Object.create(null),on=class{getMap(){return nn.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=an[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in an)throw RangeError(`Duplicate use of step JSON ID `+e);return an[e]=t,t.prototype.jsonID=e,t}},sn=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof je)return e.fail(t.message);throw t}}};function cn(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(cn(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return E.fromArray(r)}var ln=class e extends on{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new O(cn(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return sn.fromReplace(e,this.from,this.to,i)}invert(){return new un(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};on.jsonID(`addMark`,ln);var un=class e extends on{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new O(cn(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return sn.fromReplace(e,this.from,this.to,n)}invert(){return new ln(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};on.jsonID(`removeMark`,un);var dn=class e extends on{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return sn.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return sn.fromReplace(e,this.pos,this.pos+1,new O(E.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new fn(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};on.jsonID(`addNodeMark`,dn);var fn=class e extends on{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return sn.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return sn.fromReplace(e,this.pos,this.pos+1,new O(E.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new dn(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};on.jsonID(`removeNodeMark`,fn);var pn=class e extends on{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&hn(e,this.from,this.to)?sn.fail(`Structure replace would overwrite content`):sn.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new nn([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?O.empty:new O(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?O.empty:new O(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,O.fromJSON(t,n.slice),!!n.structure)}};pn.MAP_BIAS=1,on.jsonID(`replace`,pn);var mn=class e extends on{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(hn(e,this.from,this.gapFrom)||hn(e,this.gapTo,this.to)))return sn.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return sn.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?sn.fromReplace(e,this.from,this.to,n):sn.fail(`Content does not fit in gap`)}getMap(){return new nn([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,O.fromJSON(t,n.slice),n.insert,!!n.structure)}};on.jsonID(`replaceAround`,mn);function hn(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function gn(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new un(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new ln(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function _n(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof bt){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new un(t.from,t.to,t.style)))}function vn(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new pn(s,l,O.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new un(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new O(E.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new pn(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(E.empty,!0);e.replace(s,s,new O(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function yn(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function bn(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!yn(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function xn(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=E.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=E.from(r.node(e).copy(u)),d++):c--;let f=E.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=E.from(i.node(e).copy(f)),p++):l++;e.step(new mn(c,l,o,s,new O(u.append(f),d,p),u.size-d,!0))}function Sn(e,t,n=null,r=e){let i=wn(e,t),a=i&&Tn(r,t);return a?i.map(Cn).concat({type:t,attrs:n}).concat(a.map(Cn)):null}function Cn(e){return{type:e,attrs:null}}function wn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function Tn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function En(e,t,n){let r=E.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=E.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new mn(i,a,i,a,new O(r,0,0),n.length,!0))}function Dn(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&An(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&kn(e,t,n,a),vn(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new mn(c,l,c+1,l-1,new O(E.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&On(e,t,n,a),!1}})}function On(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function kn(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
|
|
@@ -185,5 +185,5 @@ ${t.innerHTML}
|
|
|
185
185
|
`);return}},parse:{}}}}}),rD=H.create({name:`heading`}).extend({addStorage(){return{markdown:{serialize:OE.nodes.heading,parse:{}}}}}),iD=H.create({name:`horizontalRule`}).extend({addStorage(){return{markdown:{serialize:OE.nodes.horizontal_rule,parse:{}}}}}),aD=H.create({name:`image`}).extend({addStorage(){return{markdown:{serialize:OE.nodes.image,parse:{}}}}}),oD=H.create({name:`listItem`}).extend({addStorage(){return{markdown:{serialize:OE.nodes.list_item,parse:{}}}}}),sD=H.create({name:`orderedList`});function cD(e,t,n){let r=0;for(;n-r>0&&t.child(n-r-1).type.name===e.type.name;r++);return r}var lD=sD.extend({addStorage(){return{markdown:{serialize(e,t,n,r){let i=t.attrs.start||1,a=String(i+t.childCount-1).length,o=e.repeat(` `,a+2),s=cD(t,n,r)%2?`) `:`. `;e.renderList(t,o,t=>{let n=String(i+t);return e.repeat(` `,a-n.length)+n+s})},parse:{}}}}}),uD=H.create({name:`paragraph`}).extend({addStorage(){return{markdown:{serialize:OE.nodes.paragraph,parse:{}}}}});function dD(e){var t;return(e==null||(t=e.content)==null?void 0:t.content)??[]}var fD=H.create({name:`table`}).extend({addStorage(){return{markdown:{serialize(e,t,n){if(!mD(t)){XE.storage.markdown.serialize.call(this,e,t,n);return}e.inTable=!0,t.forEach((t,n,r)=>{if(e.write(`| `),t.forEach((t,n,r)=>{r&&e.write(` | `);let i=t.firstChild;i.textContent.trim()&&e.renderInline(i)}),e.write(` |`),e.ensureNewLine(),!r){let n=Array.from({length:t.childCount}).map(()=>`---`).join(` | `);e.write(`| ${n} |`),e.ensureNewLine()}}),e.closeBlock(t),e.inTable=!1},parse:{}}}}});function pD(e){return e.attrs.colspan>1||e.attrs.rowspan>1}function mD(e){let t=dD(e),n=t[0],r=t.slice(1);return!(dD(n).some(e=>e.type.name!==`tableHeader`||pD(e)||e.childCount>1)||r.some(e=>dD(e).some(e=>e.type.name===`tableHeader`||pD(e)||e.childCount>1)))}var hD=[$E,eD,tD,nD,rD,iD,XE,aD,oD,lD,uD,fD,H.create({name:`taskItem`}).extend({addStorage(){return{markdown:{serialize(e,t){let n=t.attrs.checked?`[x]`:`[ ]`;e.write(`${n} `),e.renderContent(t)},parse:{updateDOM(e){[...e.querySelectorAll(`.task-list-item`)].forEach(e=>{let t=e.querySelector(`input`);e.setAttribute(`data-type`,`taskItem`),t&&(e.setAttribute(`data-checked`,t.checked),t.remove())})}}}}}}),H.create({name:`taskList`}).extend({addStorage(){return{markdown:{serialize:eD.storage.markdown.serialize,parse:{setup(e){e.use(ME.default)},updateDOM(e){[...e.querySelectorAll(`.contains-task-list`)].forEach(e=>{e.setAttribute(`data-type`,`taskList`)})}}}}}}),H.create({name:`text`}).extend({addStorage(){return{markdown:{serialize(e,t){e.text(qE(t.text))},parse:{}}}}}),Ff.create({name:`bold`}).extend({addStorage(){return{markdown:{serialize:OE.marks.strong,parse:{}}}}}),Ff.create({name:`code`}).extend({addStorage(){return{markdown:{serialize:OE.marks.code,parse:{}}}}}),WE,Ff.create({name:`italic`}).extend({addStorage(){return{markdown:{serialize:OE.marks.em,parse:{}}}}}),Ff.create({name:`link`}).extend({addStorage(){return{markdown:{serialize:OE.marks.link,parse:{}}}}}),Ff.create({name:`strike`}).extend({addStorage(){return{markdown:{serialize:{open:`~~`,close:`~~`,expelEnclosingWhitespace:!0},parse:{}}}}})];function gD(e){let t=e.storage?.markdown,n=hD.find(t=>t.name===e.name)?.storage.markdown;return t||n?{...n,...t}:null}var _D=class{constructor(e){FE(this,`editor`,null),this.editor=e}serialize(e){let t=new UE(this.nodes,this.marks,{hardBreakNodeName:nD.name});return t.renderContent(e),t.out}get nodes(){return{...Object.fromEntries(Object.keys(this.editor.schema.nodes).map(e=>[e,this.serializeNode(XE)])),...Object.fromEntries(this.editor.extensionManager.extensions.filter(e=>e.type===`node`&&this.serializeNode(e)).map(e=>[e.name,this.serializeNode(e)])??[])}}get marks(){return{...Object.fromEntries(Object.keys(this.editor.schema.marks).map(e=>[e,this.serializeMark(WE)])),...Object.fromEntries(this.editor.extensionManager.extensions.filter(e=>e.type===`mark`&&this.serializeMark(e)).map(e=>[e.name,this.serializeMark(e)])??[])}}serializeNode(e){var t;return(t=gD(e))==null||(t=t.serialize)==null?void 0:t.bind({editor:this.editor,options:e.options})}serializeMark(e){let t=gD(e)?.serialize;return t?{...t,open:typeof t.open==`function`?t.open.bind({editor:this.editor,options:e.options}):t.open,close:typeof t.close==`function`?t.close.bind({editor:this.editor,options:e.options}):t.close}:null}},vD=class{constructor(e,t){FE(this,`editor`,null),FE(this,`md`,null);let{html:n,linkify:r,breaks:i}=t;this.editor=e,this.md=this.withPatchedRenderer(gE({html:n,linkify:r,breaks:i}))}parse(e){let{inline:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof e==`string`){this.editor.extensionManager.extensions.forEach(e=>{var t;return(t=gD(e))==null||(t=t.parse)==null||(t=t.setup)==null?void 0:t.call({editor:this.editor,options:e.options},this.md)});let n=KE(this.md.render(e));return this.editor.extensionManager.extensions.forEach(e=>{var t;return(t=gD(e))==null||(t=t.parse)==null||(t=t.updateDOM)==null?void 0:t.call({editor:this.editor,options:e.options},n)}),this.normalizeDOM(n,{inline:t,content:e}),n.innerHTML}return e}normalizeDOM(e,t){let{inline:n,content:r}=t;return this.normalizeBlocks(e),e.querySelectorAll(`*`).forEach(e=>{e.nextSibling?.nodeType===Node.TEXT_NODE&&!e.closest(`pre`)&&(e.nextSibling.textContent=e.nextSibling.textContent.replace(/^\n/,``))}),n&&this.normalizeInline(e,r),e}normalizeBlocks(e){let t=Object.values(this.editor.schema.nodes).filter(e=>e.isBlock).map(e=>e.spec.parseDOM?.map(e=>e.tag)).flat().filter(Boolean).join(`,`);t&&[...e.querySelectorAll(t)].forEach(e=>{e.parentElement.matches(`p`)&&JE(e)})}normalizeInline(e,t){var n;if((n=e.firstElementChild)!=null&&n.matches(`p`)){let n=e.firstElementChild,{nextElementSibling:r}=n,i=t.match(/^\s+/)?.[0]??``,a=r?``:t.match(/\s+$/)?.[0]??``;if(t.match(/^\n\n/)){n.innerHTML=`${n.innerHTML}${a}`;return}YE(n),e.innerHTML=`${i}${e.innerHTML}${a}`}}withPatchedRenderer(e){let t=e=>function(){let t=e(...arguments);return t===`
|
|
186
186
|
`?t:t[t.length-1]===`
|
|
187
187
|
`?t.slice(0,-1):t};return e.renderer.rules.hardbreak=t(e.renderer.rules.hardbreak),e.renderer.rules.softbreak=t(e.renderer.rules.softbreak),e.renderer.rules.fence=t(e.renderer.rules.fence),e.renderer.rules.code_block=t(e.renderer.rules.code_block),e.renderer.renderToken=t(e.renderer.renderToken.bind(e.renderer)),e}},yD=V.create({name:`markdownClipboard`,addOptions(){return{transformPastedText:!1,transformCopiedText:!1}},addProseMirrorPlugins(){return[new M({key:new N(`markdownClipboard`),props:{clipboardTextParser:(e,t,n)=>{if(n||!this.options.transformPastedText)return null;let r=this.editor.storage.markdown.parser.parse(e,{inline:!0});return Tt.fromSchema(this.editor.schema).parseSlice(KE(r),{preserveWhitespace:!0,context:t})},clipboardTextSerializer:e=>this.options.transformCopiedText?this.editor.storage.markdown.serializer.serialize(e.content):null}})]}}),bD=V.create({name:`markdown`,priority:50,addOptions(){return{html:!0,tightLists:!0,tightListClass:`tight`,bulletListMarker:`-`,linkify:!1,breaks:!1,transformPastedText:!1,transformCopiedText:!1}},addCommands(){let e=Uf.Commands.config.addCommands();return{setContent:(t,n)=>r=>e.setContent(r.editor.storage.markdown.parser.parse(t),n)(r),insertContentAt:(t,n,r)=>i=>e.insertContentAt(t,i.editor.storage.markdown.parser.parse(n,{inline:!0}),r)(i)}},onBeforeCreate(){this.editor.storage.markdown={options:{...this.options},parser:new vD(this.editor,this.options),serializer:new _D(this.editor),getMarkdown:()=>this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)},this.editor.options.initialContent=this.editor.options.content,this.editor.options.content=this.editor.storage.markdown.parser.parse(this.editor.options.content)},onCreate(){this.editor.options.content=this.editor.options.initialContent,delete this.editor.options.initialContent},addStorage(){return{}},addExtensions(){return[IE.configure({tight:this.options.tightLists,tightClass:this.options.tightListClass}),yD.configure({transformPastedText:this.options.transformPastedText,transformCopiedText:this.options.transformCopiedText})]}});function xD(e){let{char:t,allowSpaces:n,allowToIncludeChar:r,allowedPrefixes:i,startOfLine:a,$position:o}=e,s=n&&!r,c=hf(t),l=RegExp(`\\s${c}$`),u=a?`^`:``,d=r?``:c,f=RegExp(s?`${u}${c}.*?(?=\\s${d}|$)`:`${u}(?:^)?${c}[^\\s${d}]*`,`gm`),p=o.nodeBefore?.isText&&o.nodeBefore.text;if(!p)return null;let m=o.pos-p.length,h=Array.from(p.matchAll(f)).pop();if(!h||h.input===void 0||h.index===void 0)return null;let g=h.input.slice(Math.max(0,h.index-1),h.index),_=RegExp(`^[${i?.join(``)}\0]?$`).test(g);if(i!==null&&!_)return null;let v=m+h.index,y=v+h[0].length;return s&&l.test(p.slice(y-1,y+1))&&(h[0]+=` `,y+=1),v<o.pos&&y>=o.pos?{range:{from:v,to:y},query:h[0].slice(t.length),text:h[0]}:null}function SD(e){return e.docChanged?e.steps.some(e=>{let t=e.slice;if(!t?.content)return!1;let n=t.content.textBetween(0,t.content.size,`
|
|
188
|
-
`);return/\s/.test(n)}):!1}function CD(e){return()=>{let t=e.state.selection.$anchor.pos,{top:n,right:r,bottom:i,left:a}=e.view.coordsAtPos(t);try{return new DOMRect(a,n,r-a,i-n)}catch{return null}}}function wD(e,t,n,r){return n?()=>{let n=r.getState(e.state)?.decorationId;return t.dom.querySelector(`[data-decoration-id="${n}"]`)?.getBoundingClientRect()||null}:CD(e)}function TD({match:e,dismissedRange:t,state:n,transaction:r,editor:i,shouldResetDismissed:a,effectiveAllowSpaces:o}){return a?.({editor:i,state:n,range:t,match:e,transaction:r,allowSpaces:o})?!1:o?e.range.from===t.from:e.range.from===t.from&&!SD(r)}function ED({view:e,pluginKeyRef:t}){let n=e.state.tr.setMeta(t,{exit:!0});e.dispatch(n)}function DD({pluginKey:e,decorationTag:t,decorationClass:n,decorationContent:r,decorationEmptyClass:i,renderer:a,dispatchExit:o}){return{handleKeyDown(t,n){var r;let i=e.getState(t.state);return i.active?n.key===`Escape`||n.key===`Esc`?((r=a?.onKeyDown)==null||r.call(a,{view:t,event:n,range:i.range}),o(t),!0):(a?.onKeyDown)?.call(a,{view:t,event:n,range:i.range})||!1:!1},decorations(a){let{active:o,range:s,decorationId:c,query:l}=e.getState(a);if(!o)return null;let u=!l?.length,d=[n];return u&&d.push(i),I.create(a.doc,[Zs.inline(s.from,s.to,{nodeName:t,class:d.join(` `),"data-decoration-id":c||void 0,"data-decoration-content":r})])}}}function OD({editor:e,char:t,effectiveAllowSpaces:n,allowToIncludeChar:r,allowedPrefixes:i,startOfLine:a,findSuggestionMatch:o,allow:s,shouldShow:c,shouldKeepDismissed:l,pluginKey:u}){return{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1,dismissedRange:null}},apply(d,f,p,m){let{isEditable:h}=e,{composing:g}=e.view,{selection:_}=d,{empty:v,from:y}=_,b={...f},x=d.getMeta(u);if(x&&x.exit)return b.active=!1,b.decorationId=null,b.range={from:0,to:0},b.query=null,b.text=null,b.dismissedRange=f.active?{...f.range}:f.dismissedRange,b;if(b.composing=g,d.docChanged&&b.dismissedRange!==null&&(b.dismissedRange={from:d.mapping.map(b.dismissedRange.from),to:d.mapping.map(b.dismissedRange.to)}),h&&(v||e.view.composing)){(y<f.range.from||y>f.range.to)&&!g&&!f.composing&&(b.active=!1);let u=o({char:t,allowSpaces:n,allowToIncludeChar:r,allowedPrefixes:i,startOfLine:a,$position:_.$from}),p=`id_${Math.floor(Math.random()*4294967295)}`;u&&s({editor:e,state:m,range:u.range,isActive:f.active})&&(!c||c({editor:e,range:u.range,query:u.query,text:u.text,transaction:d}))?(b.dismissedRange!==null&&!l({match:u,dismissedRange:b.dismissedRange,state:m,transaction:d})&&(b.dismissedRange=null),b.dismissedRange===null?(b.active=!0,b.decorationId=f.decorationId||p,b.range=u.range,b.query=u.query,b.text=u.text):b.active=!1):(u||(b.dismissedRange=null),b.active=!1)}else b.active=!1;return b.active||(b.decorationId=null,b.range={from:0,to:0},b.query=null,b.text=null),b}}}function kD({editor:e,items:t}){let n=null,r=null,i=null,a=()=>{r!==null&&(clearTimeout(r),r=null),i?.(),i=null},o=e=>new Promise(t=>{i=t,r=setTimeout(()=>{r=null;let e=i;i=null,e?.()},e)}),s=()=>{n?.abort(),a(),n=null};return{abort:s,fetch:async(r,i)=>{s(),n=new AbortController;let a=n;if(i>0&&await o(i),n!==a||a.signal.aborted)return{status:`aborted`};try{let i=await t({editor:e,query:r,signal:a.signal});return n!==a||a.signal.aborted?{status:`aborted`}:{status:`resolved`,items:i}}catch{return n!==a||a.signal.aborted?{status:`aborted`}:{status:`error`}}}}}function AD({placement:e,offset:t,flip:n,floatingUi:r}){let i=[
|
|
189
|
-
`],items:({query:t})=>e.filter(t),command:({editor:e,range:t,props:n})=>n.run({editor:e,range:t}),render:()=>{let t=t=>e.open({rect:t.clientRect?.()??null,items:t.items,pick:t.command});return{onStart:t,onUpdate:t,onKeyDown:({event:t})=>e.keyDown(t),onExit:()=>e.close()}}})]}})}function RD(e){return[Xy.configure({link:{openOnClick:!1},underline:!1}),Mv,jv.configure({nested:!0}),sS,Gx,Wx,Ux,lS.configure({inline:!1}),bD.configure({transformPastedText:!0,linkify:!1}),...e.placeholder?[Hy.configure({placeholder:e.placeholder})]:[],...e.slash?[LD(e.slash)]:[]]}var zD=(e,t)=>{let n=e.chain().focus();return t?n.deleteRange(t):n},BD=(e,t)=>({key:`h${e}`,icon:t,run:(t,n)=>zD(t,n).toggleHeading({level:e}).run(),active:t=>t.isActive(`heading`,{level:e})}),VD=[BD(1,se),BD(2,ce),BD(3,le),{key:`bulletList`,icon:f,run:(e,t)=>zD(e,t).toggleBulletList().run(),active:e=>e.isActive(`bulletList`)},{key:`orderedList`,icon:fe,run:(e,t)=>zD(e,t).toggleOrderedList().run(),active:e=>e.isActive(`orderedList`)},{key:`taskList`,icon:h,run:(e,t)=>zD(e,t).toggleTaskList().run(),active:e=>e.isActive(`taskList`)},{key:`blockquote`,icon:pe,run:(e,t)=>zD(e,t).toggleBlockquote().run(),active:e=>e.isActive(`blockquote`)},{key:`codeBlock`,icon:ie,run:(e,t)=>zD(e,t).toggleCodeBlock().run(),active:e=>e.isActive(`codeBlock`)},{key:`horizontalRule`,icon:_,run:(e,t)=>zD(e,t).setHorizontalRule().run()},{key:`table`,icon:ge,run:(e,t)=>zD(e,t).insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),active:e=>e.isActive(`table`)}],Q=s(),$=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/markdown/toolbar.tsx`,HD=(0,T.forwardRef)(({icon:e,label:t,active:n,disabled:r,tone:i,onClick:a,...o},s)=>(0,Q.jsxDEV)(`button`,{ref:s,type:`button`,"aria-label":t,title:t,"aria-pressed":n??!1,disabled:r,onClick:a,...o,className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-40 ${i===`danger`?`hover:bg-elevated hover:text-danger`:`hover:bg-elevated hover:text-text`} ${n?`bg-elevated text-accent`:``}`,children:(0,Q.jsxDEV)(e,{size:15},void 0,!1,{fileName:$,lineNumber:66,columnNumber:5},void 0)},void 0,!1,{fileName:$,lineNumber:53,columnNumber:3},void 0));HD.displayName=`ToolButton`;var UD=()=>(0,Q.jsxDEV)(`span`,{className:`mx-0.5 h-5 w-px shrink-0 bg-border`,"aria-hidden":!0},void 0,!1,{fileName:$,lineNumber:71,columnNumber:23},void 0),WD=[{key:`bold`,icon:re,run:e=>e.chain().focus().toggleBold().run(),active:e=>e.isActive(`bold`)},{key:`italic`,icon:de,run:e=>e.chain().focus().toggleItalic().run(),active:e=>e.isActive(`italic`)},{key:`strike`,icon:he,run:e=>e.chain().focus().toggleStrike().run(),active:e=>e.isActive(`strike`)},{key:`code`,icon:p,run:e=>e.chain().focus().toggleCode().run(),active:e=>e.isActive(`code`)}];function GD({editor:e,onDone:t}){let{t:n}=a(),[r,i]=(0,T.useState)(e.getAttributes(`link`).href??``),o=()=>{let n=e.chain().focus().extendMarkRange(`link`);r.trim()===``?n.unsetLink().run():n.setLink({href:r.trim()}).run(),t()};return(0,Q.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsxDEV)(u,{autoFocus:!0,value:r,placeholder:`https://`,"aria-label":n(`form.mdLink`),onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),o()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 flex-1 text-sm`},void 0,!1,{fileName:$,lineNumber:103,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:c,label:n(`actions.save`),onClick:o},void 0,!1,{fileName:$,lineNumber:121,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ve,label:n(`form.md.unlink`),onClick:()=>{e.chain().focus().extendMarkRange(`link`).unsetLink().run(),t()}},void 0,!1,{fileName:$,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:102,columnNumber:5},this)}function KD({editor:e,onDone:t}){let{t:n}=a(),[r,i]=(0,T.useState)(``),[o,s]=(0,T.useState)(``),l=()=>{let n=r.trim();n&&e.chain().focus().setImage({src:n,alt:o.trim()||void 0}).run(),t()};return(0,Q.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,Q.jsxDEV)(u,{autoFocus:!0,value:r,placeholder:`https://… /uploads/…`,"aria-label":n(`form.md.imageUrl`),onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),l()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 min-w-0 flex-1 text-sm`},void 0,!1,{fileName:$,lineNumber:156,columnNumber:7},this),(0,Q.jsxDEV)(u,{value:o,placeholder:n(`form.md.imageAlt`),"aria-label":n(`form.md.imageAlt`),onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),l()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 w-32 text-sm`},void 0,!1,{fileName:$,lineNumber:174,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:c,label:n(`actions.save`),disabled:!r.trim(),onClick:l},void 0,!1,{fileName:$,lineNumber:191,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:155,columnNumber:5},this)}function qD({editor:e}){let{t}=a();return(0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:205,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ne,label:t(`form.md.addRow`),onClick:()=>e.chain().focus().addRowAfter().run()},void 0,!1,{fileName:$,lineNumber:206,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:te,label:t(`form.md.addColumn`),onClick:()=>e.chain().focus().addColumnAfter().run()},void 0,!1,{fileName:$,lineNumber:211,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:g,tone:`danger`,label:t(`form.md.deleteRow`),onClick:()=>e.chain().focus().deleteRow().run()},void 0,!1,{fileName:$,lineNumber:216,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ae,tone:`danger`,label:t(`form.md.deleteColumn`),onClick:()=>e.chain().focus().deleteColumn().run()},void 0,!1,{fileName:$,lineNumber:222,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:oe,tone:`danger`,label:t(`form.md.deleteTable`),onClick:()=>e.chain().focus().deleteTable().run()},void 0,!1,{fileName:$,lineNumber:228,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:204,columnNumber:5},this)}function JD({icon:e,label:t,active:n,open:r,onOpenChange:i,children:a}){return(0,Q.jsxDEV)(v,{open:r,onOpenChange:i,children:[(0,Q.jsxDEV)(d,{asChild:!0,children:(0,Q.jsxDEV)(HD,{icon:e,label:t,active:n||r},void 0,!1,{fileName:$,lineNumber:258,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:257,columnNumber:7},this),(0,Q.jsxDEV)(m,{align:`start`,className:`w-80 p-2`,children:a},void 0,!1,{fileName:$,lineNumber:260,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:256,columnNumber:5},this)}function YD({editor:e}){let{t}=a(),[n,r]=(0,T.useState)(null),i=vm({editor:e,selector:({editor:e})=>e&&!e.isDestroyed?{marks:WD.map(t=>t.active(e)),blocks:VD.map(t=>t.active?.(e)??!1),link:e.isActive(`link`),table:e.isActive(`table`),canUndo:e.can().undo(),canRedo:e.can().redo()}:{marks:WD.map(()=>!1),blocks:VD.map(()=>!1),link:!1,table:!1,canUndo:!1,canRedo:!1}}),o=e=>(0,Q.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:e},void 0,!1,{fileName:$,lineNumber:301,columnNumber:42},this);return(0,Q.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:(0,Q.jsxDEV)(`div`,{className:`-mx-0.5 flex items-center gap-0.5 overflow-x-auto overscroll-x-contain border-b border-border px-0.5 pb-1.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[o((0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(HD,{icon:_e,label:t(`form.md.undo`),disabled:!i.canUndo,onClick:()=>e.chain().focus().undo().run()},void 0,!1,{fileName:$,lineNumber:310,columnNumber:13},this),(0,Q.jsxDEV)(HD,{icon:me,label:t(`form.md.redo`),disabled:!i.canRedo,onClick:()=>e.chain().focus().redo().run()},void 0,!1,{fileName:$,lineNumber:316,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:309,columnNumber:11},this)),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:324,columnNumber:9},this),o(WD.map((n,r)=>(0,Q.jsxDEV)(HD,{icon:n.icon,label:t(`form.md.${n.key}`),active:i.marks[r],onClick:()=>n.run(e)},n.key,!1,{fileName:$,lineNumber:327,columnNumber:13},this))),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:336,columnNumber:9},this),o(VD.map((n,r)=>(0,Q.jsxDEV)(HD,{icon:n.icon,label:t(`form.md.${n.key}`),active:i.blocks[r],onClick:()=>n.run(e)},n.key,!1,{fileName:$,lineNumber:339,columnNumber:13},this))),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:348,columnNumber:9},this),o((0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(JD,{icon:y,label:t(`form.md.link`),active:i.link,open:n===`link`,onOpenChange:e=>r(e?`link`:null),children:(0,Q.jsxDEV)(GD,{editor:e,onDone:()=>r(null)},void 0,!1,{fileName:$,lineNumber:358,columnNumber:15},this)},void 0,!1,{fileName:$,lineNumber:351,columnNumber:13},this),(0,Q.jsxDEV)(JD,{icon:ue,label:t(`form.md.image`),open:n===`image`,onOpenChange:e=>r(e?`image`:null),children:(0,Q.jsxDEV)(KD,{editor:e,onDone:()=>r(null)},void 0,!1,{fileName:$,lineNumber:366,columnNumber:15},this)},void 0,!1,{fileName:$,lineNumber:360,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:350,columnNumber:11},this)),i.table&&(0,Q.jsxDEV)(qD,{editor:e},void 0,!1,{fileName:$,lineNumber:370,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:307,columnNumber:7},this)},void 0,!1,{fileName:$,lineNumber:304,columnNumber:5},this)}var XD=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/MarkdownEditor.tsx`,ZD=e=>e&&!e.isDestroyed?e.storage.markdown:void 0;function QD({value:e,onChange:t,placeholder:n,readonly:r}){let{t:i}=a(),[o,s]=(0,T.useState)(null),c=(0,T.useRef)(null);c.current=o;let l=e=>i(`form.md.${e}`),u=(0,T.useRef)(l);u.current=l;let d=(0,T.useMemo)(()=>({filter:e=>{let t=e.trim().toLowerCase(),n=VD.map(e=>({key:e.key,run:({editor:t,range:n})=>e.run(t,n)}));return t?n.filter(e=>e.key.toLowerCase().includes(t)||u.current(e.key).toLowerCase().includes(t)):n},open:({rect:e,items:t,pick:n})=>s(r=>({rect:e,items:t,pick:n,index:r&&r.index<t.length?r.index:0})),close:()=>s(null),keyDown:e=>{let t=c.current;if(!t)return!1;let n=t.items.length-1;if(e.key===`ArrowDown`)return s({...t,index:t.index>=n?0:t.index+1}),!0;if(e.key===`ArrowUp`)return s({...t,index:t.index<=0?n:t.index-1}),!0;if(e.key===`Enter`){let e=t.items[t.index];return e?(t.pick(e),!0):!1}return e.key===`Escape`?(s(null),!0):!1}}),[]),f=Cm({editable:!r,extensions:RD({placeholder:r?void 0:n,slash:d}),content:e,autofocus:!1,onUpdate:({editor:e})=>{let n=ZD(e);n&&t?.(n.getMarkdown())},editorProps:{attributes:{class:`md-static outline-none`}}});return(0,T.useEffect)(()=>{let t=ZD(f);!f||!t||e!==t.getMarkdown()&&f.commands.setContent(e,{emitUpdate:!1})},[f,e]),!f||f.isDestroyed?null:(0,Q.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-1.5 md:gap-2`,children:[!r&&(0,Q.jsxDEV)(YD,{editor:f},void 0,!1,{fileName:XD,lineNumber:138,columnNumber:21},this),(0,Q.jsxDEV)(hm,{editor:f,className:`min-h-48 w-full min-w-0 max-w-full flex-1 overflow-y-auto rounded-lg border border-border bg-bg px-2 py-1.5 transition-colors focus-within:border-accent md:min-h-64 md:rounded-xl md:px-4 md:py-3`},void 0,!1,{fileName:XD,lineNumber:141,columnNumber:7},this),o&&o.items.length>0&&(0,Q.jsxDEV)(`div`,{role:`listbox`,className:`fixed z-50 max-h-64 w-56 overflow-y-auto rounded-lg border border-border bg-surface p-1 shadow-lg`,style:{top:(o.rect?.bottom??0)+4,left:o.rect?.left??0},children:o.items.map((e,t)=>{let n=VD.find(t=>t.key===e.key)?.icon;return(0,Q.jsxDEV)(`button`,{type:`button`,role:`option`,"aria-selected":t===o.index,onMouseEnter:()=>s({...o,index:t}),onClick:()=>o.pick(e),className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm ${t===o.index?`bg-elevated text-text`:`text-muted`}`,children:[n&&(0,Q.jsxDEV)(n,{size:15,className:`shrink-0`},void 0,!1,{fileName:XD,lineNumber:165,columnNumber:26},this),l(e.key)]},e.key,!0,{fileName:XD,lineNumber:154,columnNumber:15},this)})},void 0,!1,{fileName:XD,lineNumber:146,columnNumber:9},this)]},void 0,!0,{fileName:XD,lineNumber:137,columnNumber:5},this)}export{QD as default};
|
|
188
|
+
`);return/\s/.test(n)}):!1}function CD(e){return()=>{let t=e.state.selection.$anchor.pos,{top:n,right:r,bottom:i,left:a}=e.view.coordsAtPos(t);try{return new DOMRect(a,n,r-a,i-n)}catch{return null}}}function wD(e,t,n,r){return n?()=>{let n=r.getState(e.state)?.decorationId;return t.dom.querySelector(`[data-decoration-id="${n}"]`)?.getBoundingClientRect()||null}:CD(e)}function TD({match:e,dismissedRange:t,state:n,transaction:r,editor:i,shouldResetDismissed:a,effectiveAllowSpaces:o}){return a?.({editor:i,state:n,range:t,match:e,transaction:r,allowSpaces:o})?!1:o?e.range.from===t.from:e.range.from===t.from&&!SD(r)}function ED({view:e,pluginKeyRef:t}){let n=e.state.tr.setMeta(t,{exit:!0});e.dispatch(n)}function DD({pluginKey:e,decorationTag:t,decorationClass:n,decorationContent:r,decorationEmptyClass:i,renderer:a,dispatchExit:o}){return{handleKeyDown(t,n){var r;let i=e.getState(t.state);return i.active?n.key===`Escape`||n.key===`Esc`?((r=a?.onKeyDown)==null||r.call(a,{view:t,event:n,range:i.range}),o(t),!0):(a?.onKeyDown)?.call(a,{view:t,event:n,range:i.range})||!1:!1},decorations(a){let{active:o,range:s,decorationId:c,query:l}=e.getState(a);if(!o)return null;let u=!l?.length,d=[n];return u&&d.push(i),I.create(a.doc,[Zs.inline(s.from,s.to,{nodeName:t,class:d.join(` `),"data-decoration-id":c||void 0,"data-decoration-content":r})])}}}function OD({editor:e,char:t,effectiveAllowSpaces:n,allowToIncludeChar:r,allowedPrefixes:i,startOfLine:a,findSuggestionMatch:o,allow:s,shouldShow:c,shouldKeepDismissed:l,pluginKey:u}){return{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1,dismissedRange:null}},apply(d,f,p,m){let{isEditable:h}=e,{composing:g}=e.view,{selection:_}=d,{empty:v,from:y}=_,b={...f},x=d.getMeta(u);if(x&&x.exit)return b.active=!1,b.decorationId=null,b.range={from:0,to:0},b.query=null,b.text=null,b.dismissedRange=f.active?{...f.range}:f.dismissedRange,b;if(b.composing=g,d.docChanged&&b.dismissedRange!==null&&(b.dismissedRange={from:d.mapping.map(b.dismissedRange.from),to:d.mapping.map(b.dismissedRange.to)}),h&&(v||e.view.composing)){(y<f.range.from||y>f.range.to)&&!g&&!f.composing&&(b.active=!1);let u=o({char:t,allowSpaces:n,allowToIncludeChar:r,allowedPrefixes:i,startOfLine:a,$position:_.$from}),p=`id_${Math.floor(Math.random()*4294967295)}`;u&&s({editor:e,state:m,range:u.range,isActive:f.active})&&(!c||c({editor:e,range:u.range,query:u.query,text:u.text,transaction:d}))?(b.dismissedRange!==null&&!l({match:u,dismissedRange:b.dismissedRange,state:m,transaction:d})&&(b.dismissedRange=null),b.dismissedRange===null?(b.active=!0,b.decorationId=f.decorationId||p,b.range=u.range,b.query=u.query,b.text=u.text):b.active=!1):(u||(b.dismissedRange=null),b.active=!1)}else b.active=!1;return b.active||(b.decorationId=null,b.range={from:0,to:0},b.query=null,b.text=null),b}}}function kD({editor:e,items:t}){let n=null,r=null,i=null,a=()=>{r!==null&&(clearTimeout(r),r=null),i?.(),i=null},o=e=>new Promise(t=>{i=t,r=setTimeout(()=>{r=null;let e=i;i=null,e?.()},e)}),s=()=>{n?.abort(),a(),n=null};return{abort:s,fetch:async(r,i)=>{s(),n=new AbortController;let a=n;if(i>0&&await o(i),n!==a||a.signal.aborted)return{status:`aborted`};try{let i=await t({editor:e,query:r,signal:a.signal});return n!==a||a.signal.aborted?{status:`aborted`}:{status:`resolved`,items:i}}catch{return n!==a||a.signal.aborted?{status:`aborted`}:{status:`error`}}}}}function AD({placement:e,offset:t,flip:n,floatingUi:r}){let i=[x({mainAxis:t.mainAxis??4,crossAxis:t.crossAxis??0})];return n&&i.push(w()),r?.middleware?.length&&i.push(...r.middleware),{placement:e,strategy:r?.strategy??`absolute`,middleware:i}}function jD(e){if(e instanceof HTMLElement)return e;if(typeof e==`string`)try{let t=document.querySelector(e);if(t)return t}catch{return document.body}return document.body}function MD({getReferenceRect:e,contextElement:t,config:n,container:r,dismissOnOutsideClick:i,dismiss:a}){return(o,s={})=>{let c={getBoundingClientRect:()=>e()??new DOMRect,contextElement:t},l=!1,u=!o.isConnected;u&&jD(r).appendChild(o),s.onPosition||(o.style.visibility=`hidden`,o.style.width=`max-content`);let d=S(c,o,()=>{C(c,o,{placement:n.placement,strategy:n.strategy,middleware:n.middleware}).then(({x:e,y:t,placement:n,strategy:r})=>{if(s.onPosition){s.onPosition({x:e,y:t,placement:n,strategy:r});return}Object.assign(o.style,{position:r,left:`${e}px`,top:`${t}px`}),l||(l=!0,o.style.visibility=``)})},s.autoUpdate),f;return i&&(f=e=>{let n=e.target;!(n instanceof Node)||o.contains(n)||t.contains(n)||a()},document.addEventListener(`pointerdown`,f,!0)),()=>{d(),f&&document.removeEventListener(`pointerdown`,f,!0),u&&o.remove()}}}function ND({editor:e,pluginKey:t,items:n,renderer:r,minQueryLength:i,debounce:a,initialItems:o,placement:s,offset:c,container:l,flip:u,floatingUi:d,dismissOnOutsideClick:f,command:p,clientRectFor:m,dispatchExit:h}){let g,_=kD({editor:e,items:n}),v=AD({placement:s,offset:c,flip:u,floatingUi:d});function y(e,t){var n,i,a;switch(e){case`started`:(n=r?.onStart)==null||n.call(r,t);break;case`updated`:(i=r?.onUpdate)==null||i.call(r,t);break;case`stopped`:(a=r?.onExit)==null||a.call(r,t);break;default:break}}return{update:async(n,d)=>{var b,x;let S=t.getState(d),C=t.getState(n.state);if(!S||!C)return;let w=null,ee=S.query!==C.query,te=S.text!==C.text,ne=S.range.from!==C.range.from||S.range.to!==C.range.to,re=ee||te||ne;if(!S.active&&C.active)w=`started`;else if(S.active&&!C.active)w=`stopped`;else if(C.active&&re)w=`updated`;else return;let ie=w===`stopped`?S:C,ae=n.dom.querySelector(`[data-decoration-id="${ie.decorationId}"]`),oe=m(n,ae),se=i===0||(ie.query?ie.query.length>=i:!1),ce=(w===`started`||w===`updated`)&&se;if(g={editor:e,range:ie.range,query:ie.query||``,text:ie.text||``,items:o??[],command:t=>p({editor:e,range:ie.range,props:t}),decorationNode:ae,clientRect:oe,loading:ce,placement:s,offset:{mainAxis:c.mainAxis??4,crossAxis:c.crossAxis??0},container:l,flip:u,floatingUi:v,mount:MD({getReferenceRect:oe,contextElement:n.dom,config:v,container:l,dismissOnOutsideClick:f,dismiss:()=>h(e.view)})},w===`started`&&((b=r?.onBeforeStart)==null||b.call(r,g)),w===`updated`&&((x=r?.onBeforeUpdate)==null||x.call(r,g)),w===`started`&&y(w,g),w===`started`||w===`updated`)if(!ce)_.abort(),g={...g,items:o??[],loading:!1};else{g={...g,items:o??[],loading:!0},w=`updated`,y(w,g);let e=await _.fetch(ie.query||``,a);if(e.status===`aborted`)return;if(!t.getState(n.state)?.active){_.abort();return}g=e.status===`resolved`?{...g,items:e.items,loading:!1}:{...g,loading:!1}}if(w===`stopped`){_.abort(),y(w,g),g=void 0;return}w===`updated`&&y(w,g)},destroy:()=>{var e;_.abort(),g&&((e=r?.onExit)==null||e.call(r,g))}}}var PD=new N(`suggestion`);function FD({pluginKey:e=PD,editor:t,char:n=`@`,allowSpaces:r=!1,allowToIncludeChar:i=!1,allowedPrefixes:a=[` `],startOfLine:o=!1,decorationTag:s=`span`,decorationClass:c=`suggestion`,decorationContent:l=``,decorationEmptyClass:u=`is-empty`,command:d=()=>null,items:f=()=>[],minQueryLength:p=0,debounce:m=0,initialItems:h,placement:g=`bottom-start`,offset:_={},container:v,flip:y=!0,floatingUi:b,dismissOnOutsideClick:x=!0,render:S=()=>({}),allow:C=()=>!0,findSuggestionMatch:w=xD,shouldShow:ee,shouldResetDismissed:te}){let ne=S?.(),re=r&&!i,ie=(n,r)=>wD(t,n,r,e);function ae(e){return TD({...e,editor:t,shouldResetDismissed:te,effectiveAllowSpaces:re})}let oe=t=>ED({view:t,pluginKeyRef:e});return new M({key:e,view:()=>ND({editor:t,pluginKey:e,items:f,renderer:ne,minQueryLength:p,debounce:m,initialItems:h,placement:g,offset:_,container:v,flip:y,floatingUi:b,dismissOnOutsideClick:x,command:d,clientRectFor:ie,dispatchExit:oe}),state:OD({editor:t,char:n,effectiveAllowSpaces:re,allowToIncludeChar:i,allowedPrefixes:a,startOfLine:o,findSuggestionMatch:w,allow:C,shouldShow:ee,shouldKeepDismissed:ae,pluginKey:e}),props:DD({pluginKey:e,decorationTag:s,decorationClass:c,decorationContent:l,decorationEmptyClass:u,renderer:ne,dispatchExit:oe})})}var ID=FD;function LD(e){return V.create({name:`slashMenu`,addProseMirrorPlugins(){return[ID({editor:this.editor,char:`/`,allowedPrefixes:[` `,`
|
|
189
|
+
`],items:({query:t})=>e.filter(t),command:({editor:e,range:t,props:n})=>n.run({editor:e,range:t}),render:()=>{let t=t=>e.open({rect:t.clientRect?.()??null,items:t.items,pick:t.command});return{onStart:t,onUpdate:t,onKeyDown:({event:t})=>e.keyDown(t),onExit:()=>e.close()}}})]}})}function RD(e){return[Xy.configure({link:{openOnClick:!1},underline:!1}),Mv,jv.configure({nested:!0}),sS,Gx,Wx,Ux,lS.configure({inline:!1}),bD.configure({transformPastedText:!0,linkify:!1}),...e.placeholder?[Hy.configure({placeholder:e.placeholder})]:[],...e.slash?[LD(e.slash)]:[]]}var zD=(e,t)=>{let n=e.chain().focus();return t?n.deleteRange(t):n},BD=(e,t)=>({key:`h${e}`,icon:t,run:(t,n)=>zD(t,n).toggleHeading({level:e}).run(),active:t=>t.isActive(`heading`,{level:e})}),VD=[BD(1,se),BD(2,ce),BD(3,le),{key:`bulletList`,icon:f,run:(e,t)=>zD(e,t).toggleBulletList().run(),active:e=>e.isActive(`bulletList`)},{key:`orderedList`,icon:fe,run:(e,t)=>zD(e,t).toggleOrderedList().run(),active:e=>e.isActive(`orderedList`)},{key:`taskList`,icon:h,run:(e,t)=>zD(e,t).toggleTaskList().run(),active:e=>e.isActive(`taskList`)},{key:`blockquote`,icon:pe,run:(e,t)=>zD(e,t).toggleBlockquote().run(),active:e=>e.isActive(`blockquote`)},{key:`codeBlock`,icon:ie,run:(e,t)=>zD(e,t).toggleCodeBlock().run(),active:e=>e.isActive(`codeBlock`)},{key:`horizontalRule`,icon:_,run:(e,t)=>zD(e,t).setHorizontalRule().run()},{key:`table`,icon:ge,run:(e,t)=>zD(e,t).insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),active:e=>e.isActive(`table`)}],Q=s(),$=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/markdown/toolbar.tsx`,HD=(0,T.forwardRef)(({icon:e,label:t,active:n,disabled:r,tone:i,onClick:a,...o},s)=>(0,Q.jsxDEV)(`button`,{ref:s,type:`button`,"aria-label":t,title:t,"aria-pressed":n??!1,disabled:r,onClick:a,...o,className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40 ${i===`danger`?`hover:bg-muted hover:text-destructive`:`hover:bg-muted hover:text-foreground`} ${n?`bg-muted text-primary`:``}`,children:(0,Q.jsxDEV)(e,{size:15},void 0,!1,{fileName:$,lineNumber:66,columnNumber:5},void 0)},void 0,!1,{fileName:$,lineNumber:53,columnNumber:3},void 0));HD.displayName=`ToolButton`;var UD=()=>(0,Q.jsxDEV)(`span`,{className:`mx-0.5 h-5 w-px shrink-0 bg-border`,"aria-hidden":!0},void 0,!1,{fileName:$,lineNumber:71,columnNumber:23},void 0),WD=[{key:`bold`,icon:re,run:e=>e.chain().focus().toggleBold().run(),active:e=>e.isActive(`bold`)},{key:`italic`,icon:de,run:e=>e.chain().focus().toggleItalic().run(),active:e=>e.isActive(`italic`)},{key:`strike`,icon:he,run:e=>e.chain().focus().toggleStrike().run(),active:e=>e.isActive(`strike`)},{key:`code`,icon:p,run:e=>e.chain().focus().toggleCode().run(),active:e=>e.isActive(`code`)}];function GD({editor:e,onDone:t}){let{t:n}=a(),[r,i]=(0,T.useState)(e.getAttributes(`link`).href??``),o=()=>{let n=e.chain().focus().extendMarkRange(`link`);r.trim()===``?n.unsetLink().run():n.setLink({href:r.trim()}).run(),t()};return(0,Q.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsxDEV)(u,{autoFocus:!0,value:r,placeholder:`https://`,"aria-label":n(`form.mdLink`),onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),o()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 flex-1 text-sm`},void 0,!1,{fileName:$,lineNumber:103,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:c,label:n(`actions.save`),onClick:o},void 0,!1,{fileName:$,lineNumber:121,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ve,label:n(`form.md.unlink`),onClick:()=>{e.chain().focus().extendMarkRange(`link`).unsetLink().run(),t()}},void 0,!1,{fileName:$,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:102,columnNumber:5},this)}function KD({editor:e,onDone:t}){let{t:n}=a(),[r,i]=(0,T.useState)(``),[o,s]=(0,T.useState)(``),l=()=>{let n=r.trim();n&&e.chain().focus().setImage({src:n,alt:o.trim()||void 0}).run(),t()};return(0,Q.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,Q.jsxDEV)(u,{autoFocus:!0,value:r,placeholder:`https://… /uploads/…`,"aria-label":n(`form.md.imageUrl`),onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),l()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 min-w-0 flex-1 text-sm`},void 0,!1,{fileName:$,lineNumber:156,columnNumber:7},this),(0,Q.jsxDEV)(u,{value:o,placeholder:n(`form.md.imageAlt`),"aria-label":n(`form.md.imageAlt`),onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),l()),e.key===`Escape`&&(e.preventDefault(),t())},className:`h-7 w-32 text-sm`},void 0,!1,{fileName:$,lineNumber:174,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:c,label:n(`actions.save`),disabled:!r.trim(),onClick:l},void 0,!1,{fileName:$,lineNumber:191,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:155,columnNumber:5},this)}function qD({editor:e}){let{t}=a();return(0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:205,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ne,label:t(`form.md.addRow`),onClick:()=>e.chain().focus().addRowAfter().run()},void 0,!1,{fileName:$,lineNumber:206,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:te,label:t(`form.md.addColumn`),onClick:()=>e.chain().focus().addColumnAfter().run()},void 0,!1,{fileName:$,lineNumber:211,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:g,tone:`danger`,label:t(`form.md.deleteRow`),onClick:()=>e.chain().focus().deleteRow().run()},void 0,!1,{fileName:$,lineNumber:216,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:ae,tone:`danger`,label:t(`form.md.deleteColumn`),onClick:()=>e.chain().focus().deleteColumn().run()},void 0,!1,{fileName:$,lineNumber:222,columnNumber:7},this),(0,Q.jsxDEV)(HD,{icon:oe,tone:`danger`,label:t(`form.md.deleteTable`),onClick:()=>e.chain().focus().deleteTable().run()},void 0,!1,{fileName:$,lineNumber:228,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:204,columnNumber:5},this)}function JD({icon:e,label:t,active:n,open:r,onOpenChange:i,children:a}){return(0,Q.jsxDEV)(v,{open:r,onOpenChange:i,children:[(0,Q.jsxDEV)(d,{asChild:!0,children:(0,Q.jsxDEV)(HD,{icon:e,label:t,active:n||r},void 0,!1,{fileName:$,lineNumber:258,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:257,columnNumber:7},this),(0,Q.jsxDEV)(m,{align:`start`,className:`w-80 p-2`,children:a},void 0,!1,{fileName:$,lineNumber:260,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:256,columnNumber:5},this)}function YD({editor:e}){let{t}=a(),[n,r]=(0,T.useState)(null),i=vm({editor:e,selector:({editor:e})=>e&&!e.isDestroyed?{marks:WD.map(t=>t.active(e)),blocks:VD.map(t=>t.active?.(e)??!1),link:e.isActive(`link`),table:e.isActive(`table`),canUndo:e.can().undo(),canRedo:e.can().redo()}:{marks:WD.map(()=>!1),blocks:VD.map(()=>!1),link:!1,table:!1,canUndo:!1,canRedo:!1}}),o=e=>(0,Q.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:e},void 0,!1,{fileName:$,lineNumber:301,columnNumber:42},this);return(0,Q.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:(0,Q.jsxDEV)(`div`,{className:`-mx-0.5 flex items-center gap-0.5 overflow-x-auto overscroll-x-contain border-b border-border px-0.5 pb-1.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[o((0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(HD,{icon:_e,label:t(`form.md.undo`),disabled:!i.canUndo,onClick:()=>e.chain().focus().undo().run()},void 0,!1,{fileName:$,lineNumber:310,columnNumber:13},this),(0,Q.jsxDEV)(HD,{icon:me,label:t(`form.md.redo`),disabled:!i.canRedo,onClick:()=>e.chain().focus().redo().run()},void 0,!1,{fileName:$,lineNumber:316,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:309,columnNumber:11},this)),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:324,columnNumber:9},this),o(WD.map((n,r)=>(0,Q.jsxDEV)(HD,{icon:n.icon,label:t(`form.md.${n.key}`),active:i.marks[r],onClick:()=>n.run(e)},n.key,!1,{fileName:$,lineNumber:327,columnNumber:13},this))),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:336,columnNumber:9},this),o(VD.map((n,r)=>(0,Q.jsxDEV)(HD,{icon:n.icon,label:t(`form.md.${n.key}`),active:i.blocks[r],onClick:()=>n.run(e)},n.key,!1,{fileName:$,lineNumber:339,columnNumber:13},this))),(0,Q.jsxDEV)(UD,{},void 0,!1,{fileName:$,lineNumber:348,columnNumber:9},this),o((0,Q.jsxDEV)(Q.Fragment,{children:[(0,Q.jsxDEV)(JD,{icon:y,label:t(`form.md.link`),active:i.link,open:n===`link`,onOpenChange:e=>r(e?`link`:null),children:(0,Q.jsxDEV)(GD,{editor:e,onDone:()=>r(null)},void 0,!1,{fileName:$,lineNumber:358,columnNumber:15},this)},void 0,!1,{fileName:$,lineNumber:351,columnNumber:13},this),(0,Q.jsxDEV)(JD,{icon:ue,label:t(`form.md.image`),open:n===`image`,onOpenChange:e=>r(e?`image`:null),children:(0,Q.jsxDEV)(KD,{editor:e,onDone:()=>r(null)},void 0,!1,{fileName:$,lineNumber:366,columnNumber:15},this)},void 0,!1,{fileName:$,lineNumber:360,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:350,columnNumber:11},this)),i.table&&(0,Q.jsxDEV)(qD,{editor:e},void 0,!1,{fileName:$,lineNumber:370,columnNumber:25},this)]},void 0,!0,{fileName:$,lineNumber:307,columnNumber:7},this)},void 0,!1,{fileName:$,lineNumber:304,columnNumber:5},this)}var XD=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/MarkdownEditor.tsx`,ZD=e=>e&&!e.isDestroyed?e.storage.markdown:void 0;function QD({value:e,onChange:t,placeholder:n,readonly:r}){let{t:i}=a(),[o,s]=(0,T.useState)(null),c=(0,T.useRef)(null);c.current=o;let l=e=>i(`form.md.${e}`),u=(0,T.useRef)(l);u.current=l;let d=(0,T.useMemo)(()=>({filter:e=>{let t=e.trim().toLowerCase(),n=VD.map(e=>({key:e.key,run:({editor:t,range:n})=>e.run(t,n)}));return t?n.filter(e=>e.key.toLowerCase().includes(t)||u.current(e.key).toLowerCase().includes(t)):n},open:({rect:e,items:t,pick:n})=>s(r=>({rect:e,items:t,pick:n,index:r&&r.index<t.length?r.index:0})),close:()=>s(null),keyDown:e=>{let t=c.current;if(!t)return!1;let n=t.items.length-1;if(e.key===`ArrowDown`)return s({...t,index:t.index>=n?0:t.index+1}),!0;if(e.key===`ArrowUp`)return s({...t,index:t.index<=0?n:t.index-1}),!0;if(e.key===`Enter`){let e=t.items[t.index];return e?(t.pick(e),!0):!1}return e.key===`Escape`?(s(null),!0):!1}}),[]),f=Cm({editable:!r,extensions:RD({placeholder:r?void 0:n,slash:d}),content:e,autofocus:!1,onUpdate:({editor:e})=>{let n=ZD(e);n&&t?.(n.getMarkdown())},editorProps:{attributes:{class:`md-static outline-none`}}});return(0,T.useEffect)(()=>{let t=ZD(f);!f||!t||e!==t.getMarkdown()&&f.commands.setContent(e,{emitUpdate:!1})},[f,e]),!f||f.isDestroyed?null:(0,Q.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-1.5 md:gap-2`,children:[!r&&(0,Q.jsxDEV)(YD,{editor:f},void 0,!1,{fileName:XD,lineNumber:138,columnNumber:21},this),(0,Q.jsxDEV)(hm,{editor:f,className:`min-h-48 w-full min-w-0 max-w-full flex-1 overflow-y-auto rounded-lg border border-border bg-background px-2 py-1.5 transition-colors focus-within:border-ring md:min-h-64 md:rounded-xl md:px-4 md:py-3`},void 0,!1,{fileName:XD,lineNumber:141,columnNumber:7},this),o&&o.items.length>0&&(0,Q.jsxDEV)(`div`,{role:`listbox`,className:`fixed z-50 max-h-64 w-56 overflow-y-auto rounded-lg border border-border bg-card p-1 shadow-lg`,style:{top:(o.rect?.bottom??0)+4,left:o.rect?.left??0},children:o.items.map((e,t)=>{let n=VD.find(t=>t.key===e.key)?.icon;return(0,Q.jsxDEV)(`button`,{type:`button`,role:`option`,"aria-selected":t===o.index,onMouseEnter:()=>s({...o,index:t}),onClick:()=>o.pick(e),className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm ${t===o.index?`bg-muted text-foreground`:`text-muted-foreground`}`,children:[n&&(0,Q.jsxDEV)(n,{size:15,className:`shrink-0`},void 0,!1,{fileName:XD,lineNumber:165,columnNumber:26},this),l(e.key)]},e.key,!0,{fileName:XD,lineNumber:154,columnNumber:15},this)})},void 0,!1,{fileName:XD,lineNumber:146,columnNumber:9},this)]},void 0,!0,{fileName:XD,lineNumber:137,columnNumber:5},this)}export{QD as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{a as r,d as i,t as a,u as o}from"./react-vendor-CzSUaSLk.js";import{o as s,t as c}from"./list-cache-DOhsI_p2.js";import{c as l}from"./api-QNHQU9to.js";var u=e(t(),1),d=a(),f=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/NewRecordView.tsx`,p=new Map;function m(e,t){let n=`${e}/${t}`,r=p.get(n);if(r)return r;let i=l(e,t,{}).finally(()=>{p.delete(n)});return p.set(n,i),i}function h(){let{t:e}=n(),{library:t,shelf:a}=i(),l=o(),p=s().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===a),[h,g]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{if(!p||p.standalone===!1||p.single)return;let e=`${p.library}/${p.shelf}`,t=!0;return m(p.library,p.shelf).then(n=>{if(t){if(!n.ok||n.row?.id==null){g(!0);return}c(e),l(`/${e}/${String(n.row.id)}`,{replace:!0})}}),()=>{t=!1}},[p,l]),!p||p.standalone===!1?(0,d.jsxDEV)(`div`,{className:`p-6 text-muted-foreground`,children:e(`common.notFound`)},void 0,!1,{fileName:f,lineNumber:79,columnNumber:44},this):p.single?(0,d.jsxDEV)(r,{to:`/${t}/${a}`,replace:!0},void 0,!1,{fileName:f,lineNumber:84,columnNumber:24},this):h?(0,d.jsxDEV)(`div`,{className:`p-6 text-destructive text-sm`,role:`alert`,children:e(`common.error`)},void 0,!1,{fileName:f,lineNumber:88,columnNumber:7},this):(0,d.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted-foreground text-sm`,children:e(`common.loading`)},void 0,!1,{fileName:f,lineNumber:94,columnNumber:5},this)}export{h as NewRecordView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{d as r,t as i}from"./react-vendor-CzSUaSLk.js";import{Or as a}from"./src-1AsWJbID.js";import{t as o}from"./SettingsForm-NWfklsPY.js";var s=e(t(),1),c=i(),l=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/PluginSettingsPage.tsx`;function u(){let{groupId:e}=r(),{t}=n(),[i,u]=(0,s.useState)(null),[d,f]=(0,s.useState)(!0);if((0,s.useEffect)(()=>{let t=!1;return f(!0),fetch(`/api/settings`).then(e=>e.ok?e.json():[]).then(n=>{t||(u(n.find(t=>t.id===e)??null),f(!1))}).catch(()=>{t||(u(null),f(!1))}),()=>{t=!0}},[e]),d)return(0,c.jsxDEV)(a,{children:(0,c.jsxDEV)(`p`,{className:`text-muted-foreground`,children:t(`plugins.loading`)},void 0,!1,{fileName:l,lineNumber:44,columnNumber:9},this)},void 0,!1,{fileName:l,lineNumber:43,columnNumber:7},this);if(!i||i.fields.length===0)return(0,c.jsxDEV)(a,{children:(0,c.jsxDEV)(`p`,{className:`text-muted-foreground`,children:t(`common.notFound`)},void 0,!1,{fileName:l,lineNumber:52,columnNumber:9},this)},void 0,!1,{fileName:l,lineNumber:51,columnNumber:7},this);async function p(){let t=await fetch(`/api/settings/${e}`);return t.ok?t.json():{}}async function m(t){let n=await fetch(`/api/settings/${e}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});return n.ok?{ok:!0,row:(await n.json()).row??{}}:n.status===422?{ok:!1,status:422,issues:(await n.json()).issues}:{ok:!1,status:n.status}}return(0,c.jsxDEV)(o,{fields:i.fields,recordCtx:{library:``,shelf:e??``,recordId:`settings`},load:p,save:m,title:t(i.label,{defaultValue:e??``}),overline:t(`settings.title`)},void 0,!1,{fileName:l,lineNumber:80,columnNumber:5},this)}export{u as PluginSettingsPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-vendor-CzSUaSLk.js";var t=e(),n=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/templates/ScanSummary.tsx`,r=({title:e,body:r,children:i})=>(0,t.jsxDEV)(`div`,{className:`space-y-1 border-t pt-2`,children:[(0,t.jsxDEV)(`p`,{className:`text-sm font-medium`,children:e},void 0,!1,{fileName:n,lineNumber:23,columnNumber:5},void 0),(0,t.jsxDEV)(`p`,{className:`text-xs text-muted-foreground`,children:r},void 0,!1,{fileName:n,lineNumber:24,columnNumber:5},void 0),(0,t.jsxDEV)(`ul`,{className:`space-y-1`,children:i},void 0,!1,{fileName:n,lineNumber:25,columnNumber:5},void 0)]},void 0,!0,{fileName:n,lineNumber:22,columnNumber:3},void 0);function i({data:e,t:i}){let a=e.failed??[],o=e.noMac??[],s=[[`devices.scan.activeLabel`,e.active],[`devices.scan.createdLabel`,e.created],[`devices.scan.macUpdatedLabel`,e.macChanged],[`devices.scan.skippedLabel`,e.skipped],...a.length?[[`devices.scan.failedLabel`,a.length]]:[]];return(0,t.jsxDEV)(`div`,{className:`space-y-2`,children:[(0,t.jsxDEV)(`p`,{className:`font-medium`,children:i(a.length?`devices.scan.summaryPartialTitle`:`devices.scan.summaryTitle`)},void 0,!1,{fileName:n,lineNumber:49,columnNumber:7},this),(0,t.jsxDEV)(`dl`,{className:`grid grid-cols-2 gap-x-4 gap-y-1 text-sm`,children:s.map(([e,r])=>(0,t.jsxDEV)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,t.jsxDEV)(`dt`,{className:`text-muted-foreground`,children:i(e)},void 0,!1,{fileName:n,lineNumber:55,columnNumber:13},this),(0,t.jsxDEV)(`dd`,{className:`font-mono tabular-nums`,children:r},void 0,!1,{fileName:n,lineNumber:56,columnNumber:13},this)]},e,!0,{fileName:n,lineNumber:54,columnNumber:11},this))},void 0,!1,{fileName:n,lineNumber:52,columnNumber:7},this),a.length>0&&(0,t.jsxDEV)(r,{title:i(`devices.scan.failedTitle`,{count:a.length}),body:i(`devices.scan.failedBody`),children:a.map(e=>(0,t.jsxDEV)(`li`,{className:`flex flex-wrap items-center gap-1.5 text-sm`,children:[(0,t.jsxDEV)(`span`,{className:`font-medium`,children:e.name||e.subject},void 0,!1,{fileName:n,lineNumber:64,columnNumber:15},this),(0,t.jsxDEV)(`code`,{className:`text-xs text-muted-foreground`,children:e.subject},void 0,!1,{fileName:n,lineNumber:65,columnNumber:15},this),(e.issues?.length?e.issues.map(e=>`${e.path}: ${e.code}`):[e.message]).map(e=>(0,t.jsxDEV)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 text-xs`,children:e},e,!1,{fileName:n,lineNumber:67,columnNumber:17},this))]},`${e.subject}-${e.kind}`,!0,{fileName:n,lineNumber:63,columnNumber:13},this))},void 0,!1,{fileName:n,lineNumber:61,columnNumber:9},this),o.length>0&&(0,t.jsxDEV)(r,{title:i(`devices.scan.noMacTitle`,{count:o.length}),body:i(`devices.scan.noMacBody`),children:o.map(e=>(0,t.jsxDEV)(`li`,{className:`flex items-center gap-2 text-sm`,children:[(0,t.jsxDEV)(`code`,{children:e.ip},void 0,!1,{fileName:n,lineNumber:79,columnNumber:15},this),e.hostname&&(0,t.jsxDEV)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-xs`,children:e.hostname},void 0,!1,{fileName:n,lineNumber:80,columnNumber:30},this),(0,t.jsxDEV)(`button`,{type:`button`,className:`ml-auto text-xs underline opacity-70 hover:opacity-100`,onClick:()=>void navigator.clipboard?.writeText(e.ip),children:i(`devices.scan.copyIp`)},void 0,!1,{fileName:n,lineNumber:81,columnNumber:15},this)]},e.ip,!0,{fileName:n,lineNumber:78,columnNumber:13},this))},void 0,!1,{fileName:n,lineNumber:76,columnNumber:9},this)]},void 0,!0,{fileName:n,lineNumber:48,columnNumber:5},this)}export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-CzSUaSLk.js";import{L as i,Oi as a,Or as o,Vt as s,Yn as c,g as l}from"./src-1AsWJbID.js";import{n as u}from"./input-BFMNMo6y.js";import{l as d}from"./phone-input-BZ9vGYpI.js";import{o as f,s as p}from"./shelf-Cj_pNvd-.js";var m=e(t(),1),h=r(),g=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SettingsForm.tsx`;function _(e){let{t}=n(),r=(0,m.useMemo)(()=>f(e.fields),[e.fields]),_=(0,m.useMemo)(()=>p(e.fields),[e.fields]),[v,y]=(0,m.useState)(!1),[b,x]=(0,m.useState)(null),{values:S,setValues:C,errors:w,setErrors:T,bridge:E}=l({fm:_,mode:`edit`,recordCtx:e.recordCtx,initial:{}});function D(e){let t={};for(let[n,i]of r)t[n]=e[n]??i.default??(i.prim!==`checkbox`&&``);return t}(0,m.useEffect)(()=>{C({}),T({});let n=!0;return e.load().then(e=>n&&C(D(e))).catch(()=>n&&x(t(`common.loadError`))),()=>{n=!1}},[`${e.recordCtx.library}/${e.recordCtx.shelf}/${e.recordCtx.recordId}`]);async function O(){y(!0),T({});let n=a.loading(t(`save.saving`)),r=await e.save(S);if(y(!1),r.ok){C(D(r.row)),a.success(t(`save.done`),{id:n});return}if(r.status===422&&r.issues){let e={};for(let n of r.issues)n.field&&(e[n.field]=t(`validation.${n.code}`,n.params));T(e)}a.error(t(`save.failed`),{id:n})}return(0,h.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,h.jsxDEV)(s,{overline:e.overline,title:e.title,actions:(0,h.jsxDEV)(d,{onClick:O,disabled:v,children:[(0,h.jsxDEV)(u,{size:16},void 0,!1,{fileName:g,lineNumber:102,columnNumber:13},this),(0,h.jsxDEV)(`span`,{className:`hidden sm:inline`,children:t(`actions.save`)},void 0,!1,{fileName:g,lineNumber:103,columnNumber:13},this)]},void 0,!0,{fileName:g,lineNumber:101,columnNumber:11},this)},void 0,!1,{fileName:g,lineNumber:97,columnNumber:7},this),(0,h.jsxDEV)(o,{children:[b&&(0,h.jsxDEV)(c,{tone:`danger`,className:`mb-5`,children:b},void 0,!1,{fileName:g,lineNumber:110,columnNumber:11},this),(0,h.jsxDEV)(`div`,{className:`flex flex-col gap-5`,children:(0,h.jsxDEV)(i,{items:e.fields,ctx:{bridge:E}},void 0,!1,{fileName:g,lineNumber:116,columnNumber:11},this)},void 0,!1,{fileName:g,lineNumber:115,columnNumber:9},this),e.footer]},void 0,!0,{fileName:g,lineNumber:108,columnNumber:7},this)]},void 0,!0,{fileName:g,lineNumber:96,columnNumber:5},this)}export{_ as t};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{r,t as i}from"./react-vendor-CzSUaSLk.js";import{Ht as a,Or as o,Vt as s,Yn as c,_n as l,br as u,kr as d,sr as f,vr as p}from"./src-1AsWJbID.js";import{t as m}from"./ThemeSwitcher-DKrSbFhp.js";import{l as h}from"./phone-input-BZ9vGYpI.js";import{A as g,I as _,N as v,P as y,h as b,y as x}from"./api-QNHQU9to.js";import{n as S}from"./auth-context-CoCE5oPD.js";import{n as C,t as w}from"./plugin-label-CfdhA4_L.js";var T=e(t(),1),E=i(),D=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SettingsPage.tsx`,O=null,k=null;function A(){O=null}function j(e=!1){if(!e&&O)return Promise.resolve(O);if(!e&&k)return k;let t=Promise.all([x(e?{refresh:!0}:void 0),b(e?{refresh:!0}:void 0)]).then(([e,t])=>{let n={plugins:e,runtime:t,checkedAt:Date.now()};return O=n,n});return e||(k=t,t.then(()=>{k===t&&(k=null)},()=>{k===t&&(k=null)})),t}async function M(){let e=Date.now();for(;Date.now()-e<6e4;){await new Promise(e=>setTimeout(e,1e3));try{if((await fetch(`/health`)).ok)return!0}catch{}}return!1}function N(){let{t:e}=n(),{role:t}=S(),i=t===`admin`,[b,x]=(0,T.useState)(()=>O?.plugins??[]),[k,N]=(0,T.useState)(()=>O===null),[F,I]=(0,T.useState)(()=>O?.checkedAt??null),[L,R]=(0,T.useState)(null),[z,B]=(0,T.useState)(!1),V=e=>L===e||L===`*`,[H,U]=(0,T.useState)(()=>O?.runtime??null),W=b.filter(e=>e.latestVersion&&C(e.latestVersion,e.installedVersion)),G=!!(H?.latestVersion&&H.installedVersion&&C(H.latestVersion,H.installedVersion)),K=W.length+ +!!G,[q,J]=(0,T.useState)(null),[Y,X]=(0,T.useState)(!1),Z=t=>{let n=b.find(e=>e.id===t);return n?w(e,n):t},Q={has_dependents:t=>e(`plugins.errors.has_dependents`,{list:t.dependents.join(`, `)}),missing_deps:t=>e(`plugins.errors.missing_deps`,{list:t.deps.join(`, `)}),unknown_plugin:()=>e(`plugins.errors.unknown_plugin`)},$=(e=!1)=>j(e).then(({plugins:e,runtime:t,checkedAt:n})=>{x(e),U(t),I(n),N(!1)});(0,T.useEffect)(()=>{$()},[]);async function ee(){B(!0),J(null);try{await $(!0)}catch{J(e(`plugins.updateCheckError`))}finally{B(!1)}}async function te(t){R(t.id),J(null);let n=await g(t.id,!t.enabled);if(!n.ok){R(null),J(Q[n.error]?.(n.data??{})??e(`plugins.genericError`,{code:n.error}));return}window.location.reload()}async function ne(t){if(!t.latestVersion||!await f({title:e(`plugins.updateTitle`,{from:t.installedVersion,to:t.latestVersion}),description:e(`plugins.confirmUpdate`,{id:t.id,from:t.installedVersion,to:t.latestVersion}),confirmLabel:e(`plugins.updateButton`)}))return;R(t.id),J(null);let n=await y(t.id);if(!n.ok){R(null),J(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}X(!0),await M()?(A(),window.location.reload()):(R(null),J(e(`plugins.restartTimeout`)))}async function re(){if(K===0)return;let t=W.map(t=>`${w(e,t)}: v${t.installedVersion} → v${t.latestVersion}`);G&&t.push(`${e(`plugins.runtimeLabel`)}: v${H.installedVersion} → v${H.latestVersion}`);let n=t.join(`
|
|
2
|
+
`);if(!await f({title:e(`plugins.updateAllButton`,{count:K}),description:e(`plugins.confirmUpdateAll`,{count:K,list:n}),confirmLabel:e(`plugins.updateButton`)}))return;R(`*`),J(null);let r=await v();if(!r.ok){R(null),J(r.stderr?`${e(`plugins.updateError`)}: ${r.stderr}`:e(`plugins.genericError`,{code:r.error}));return}X(!0),await M()?(A(),window.location.reload()):(R(null),J(e(`plugins.restartTimeout`)))}let ie=G;async function ae(){let t=[];if(G&&t.push(`${e(`plugins.runtimeLabel`)}: v${H.installedVersion} → v${H.latestVersion}`),t.length===0||!await f({title:e(`plugins.updateAllButton`,{count:t.length}),description:e(`plugins.confirmUpdateAll`,{count:t.length,list:t.join(`
|
|
3
|
+
`)}),confirmLabel:e(`plugins.updateButton`)}))return;R(`*`),J(null);let n=await _();if(!n.ok){R(null),J(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}X(!0),await M()?(A(),window.location.reload()):(R(null),J(e(`plugins.restartTimeout`)))}return(0,E.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,E.jsxDEV)(s,{overline:e(`dashboard.title`),title:e(`settings.title`)},void 0,!1,{fileName:D,lineNumber:291,columnNumber:7},this),(0,E.jsxDEV)(o,{children:[(0,E.jsxDEV)(`section`,{className:`mb-6`,children:[(0,E.jsxDEV)(`h2`,{className:`mb-1 ${a}`,children:e(`settings.appearance`)},void 0,!1,{fileName:D,lineNumber:294,columnNumber:11},this),(0,E.jsxDEV)(p,{className:`flex items-center gap-4 px-4 py-2`,children:(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,E.jsxDEV)(m,{},void 0,!1,{fileName:D,lineNumber:299,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:298,columnNumber:13},this)},void 0,!1,{fileName:D,lineNumber:297,columnNumber:11},this)]},void 0,!0,{fileName:D,lineNumber:293,columnNumber:9},this),(0,E.jsxDEV)(`section`,{className:`mb-6`,children:[(0,E.jsxDEV)(`h2`,{className:`mb-1 ${a}`,children:e(`settings.personalTitle`)},void 0,!1,{fileName:D,lineNumber:306,columnNumber:11},this),(0,E.jsxDEV)(p,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,E.jsxDEV)(`span`,{className:`font-semibold text-foreground`,children:e(`auth.accountTitle`)},void 0,!1,{fileName:D,lineNumber:309,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:308,columnNumber:13},this),(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,E.jsxDEV)(r,{to:`/settings/account`,title:e(`auth.accountTitle`),"aria-label":e(`auth.accountTitle`),children:(0,E.jsxDEV)(d,{name:`lucide:settings`,size:16},void 0,!1,{fileName:D,lineNumber:313,columnNumber:17},this)},void 0,!1,{fileName:D,lineNumber:312,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:311,columnNumber:13},this)]},void 0,!0,{fileName:D,lineNumber:307,columnNumber:11},this)]},void 0,!0,{fileName:D,lineNumber:305,columnNumber:9},this),i&&(0,E.jsxDEV)(E.Fragment,{children:[(0,E.jsxDEV)(`section`,{className:`mb-6`,children:[(0,E.jsxDEV)(`h2`,{className:`mb-1 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted-foreground`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:D,lineNumber:323,columnNumber:15},this),(0,E.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:e(`settings.usersDescription`)},void 0,!1,{fileName:D,lineNumber:324,columnNumber:15},this),(0,E.jsxDEV)(p,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,E.jsxDEV)(`span`,{className:`font-semibold text-foreground`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:D,lineNumber:327,columnNumber:19},this)},void 0,!1,{fileName:D,lineNumber:326,columnNumber:17},this),(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,E.jsxDEV)(r,{to:`/settings/users`,title:e(`settings.usersTitle`),"aria-label":e(`settings.usersTitle`),children:(0,E.jsxDEV)(d,{name:`lucide:settings`,size:16},void 0,!1,{fileName:D,lineNumber:331,columnNumber:21},this)},void 0,!1,{fileName:D,lineNumber:330,columnNumber:19},this)},void 0,!1,{fileName:D,lineNumber:329,columnNumber:17},this)]},void 0,!0,{fileName:D,lineNumber:325,columnNumber:15},this)]},void 0,!0,{fileName:D,lineNumber:322,columnNumber:13},this),(0,E.jsxDEV)(`section`,{className:`mb-6`,children:[(0,E.jsxDEV)(`h2`,{className:`mb-1 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted-foreground`,children:e(`settings.diagnosticsTitle`)},void 0,!1,{fileName:D,lineNumber:338,columnNumber:15},this),(0,E.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:e(`settings.diagnosticsDescription`)},void 0,!1,{fileName:D,lineNumber:339,columnNumber:15},this),(0,E.jsxDEV)(p,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,E.jsxDEV)(`span`,{className:`font-semibold text-foreground`,children:e(`diagnostics.title`)},void 0,!1,{fileName:D,lineNumber:342,columnNumber:19},this)},void 0,!1,{fileName:D,lineNumber:341,columnNumber:17},this),(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,E.jsxDEV)(r,{to:`/settings/diagnostics`,title:e(`diagnostics.title`),"aria-label":e(`diagnostics.title`),children:(0,E.jsxDEV)(d,{name:`lucide:activity`,size:16},void 0,!1,{fileName:D,lineNumber:346,columnNumber:21},this)},void 0,!1,{fileName:D,lineNumber:345,columnNumber:19},this)},void 0,!1,{fileName:D,lineNumber:344,columnNumber:17},this)]},void 0,!0,{fileName:D,lineNumber:340,columnNumber:15},this)]},void 0,!0,{fileName:D,lineNumber:337,columnNumber:13},this),(0,E.jsxDEV)(`section`,{children:[(0,E.jsxDEV)(`div`,{className:`mb-1 flex items-center gap-3`,children:[(0,E.jsxDEV)(`h2`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted-foreground`,children:e(`settings.componentsTitle`)},void 0,!1,{fileName:D,lineNumber:355,columnNumber:17},this),(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,disabled:L!==null||z,onClick:ee,title:e(`plugins.checkUpdates`),className:`shrink-0 border border-border`,children:[(0,E.jsxDEV)(d,{name:`lucide:refresh-cw`,size:14,className:z?`animate-spin`:void 0},void 0,!1,{fileName:D,lineNumber:365,columnNumber:19},this),e(z?`plugins.checkingUpdates`:`plugins.checkUpdates`)]},void 0,!0,{fileName:D,lineNumber:356,columnNumber:17},this),K>0&&(0,E.jsxDEV)(h,{size:`sm`,type:`button`,disabled:L!==null,onClick:re,variant:`accentOutline`,className:`shrink-0`,children:e(`plugins.updateAllButton`,{count:K})},void 0,!1,{fileName:D,lineNumber:369,columnNumber:19},this)]},void 0,!0,{fileName:D,lineNumber:354,columnNumber:15},this),(0,E.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:e(`settings.componentsDescription`)},void 0,!1,{fileName:D,lineNumber:381,columnNumber:15},this),!k&&F!==null&&(0,E.jsxDEV)(`p`,{className:`mb-3 text-xs text-muted-foreground`,"aria-live":`polite`,children:[K>0?e(`plugins.updatesAvailable`,{count:K}):e(`plugins.noUpdates`),` `,e(`plugins.lastChecked`,{time:new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(F)})]},void 0,!0,{fileName:D,lineNumber:383,columnNumber:17},this),k?(0,E.jsxDEV)(`p`,{className:`text-muted-foreground`,children:e(`plugins.loading`)},void 0,!1,{fileName:D,lineNumber:394,columnNumber:17},this):(0,E.jsxDEV)(E.Fragment,{children:[Y&&(0,E.jsxDEV)(c,{tone:`info`,className:`mb-5`,children:[e(`plugins.restartBannerBefore`),(0,E.jsxDEV)(`b`,{children:e(`plugins.restartBannerBold`)},void 0,!1,{fileName:D,lineNumber:400,columnNumber:23},this),e(`plugins.restartBannerAfter`)]},void 0,!0,{fileName:D,lineNumber:398,columnNumber:21},this),q&&(0,E.jsxDEV)(c,{tone:`danger`,className:`mb-5`,children:q},void 0,!1,{fileName:D,lineNumber:405,columnNumber:21},this),(0,E.jsxDEV)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-card`,children:[(0,E.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 sm:flex-row sm:items-center sm:gap-4`,children:[(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,E.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsxDEV)(`span`,{className:`font-semibold text-foreground`,children:e(`core.settings.label`)},void 0,!1,{fileName:D,lineNumber:415,columnNumber:27},this),H?.installedVersion&&(0,E.jsxDEV)(u,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,H.installedVersion]},void 0,!0,{fileName:D,lineNumber:417,columnNumber:29},this),ie&&(0,E.jsxDEV)(h,{size:`sm`,type:`button`,disabled:L!==null,onClick:ae,title:e(`settings.systemUpdateTitle`),variant:`accentOutline`,className:`shrink-0`,children:e(`plugins.updateButton`)},void 0,!1,{fileName:D,lineNumber:422,columnNumber:29},this)]},void 0,!0,{fileName:D,lineNumber:414,columnNumber:25},this),(0,E.jsxDEV)(`div`,{className:`text-xs text-muted-foreground mt-0.5 truncate`,children:e(`settings.systemDescription`)},void 0,!1,{fileName:D,lineNumber:435,columnNumber:25},this)]},void 0,!0,{fileName:D,lineNumber:413,columnNumber:23},this),(0,E.jsxDEV)(`div`,{className:`flex w-full shrink-0 justify-end border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,E.jsxDEV)(r,{to:`/settings/system`,title:e(`core.settings.label`),"aria-label":e(`core.settings.label`),children:(0,E.jsxDEV)(d,{name:`lucide:settings`,size:16},void 0,!1,{fileName:D,lineNumber:446,columnNumber:29},this)},void 0,!1,{fileName:D,lineNumber:441,columnNumber:27},this)},void 0,!1,{fileName:D,lineNumber:440,columnNumber:25},this)},void 0,!1,{fileName:D,lineNumber:439,columnNumber:23},this)]},void 0,!0,{fileName:D,lineNumber:412,columnNumber:21},this),b.map(t=>{let n=t.description?e(t.description):``,i=t.enabled?b.filter(e=>e.enabled&&e.id!==t.id&&e.dependsOn.includes(t.id)):[],a=i.length>0,o=a?e(`plugins.blockedByDependents`,{list:i.map(t=>w(e,t)).join(`, `)}):t.enabled?e(`plugins.switchDisable`):e(`plugins.switchEnable`),s=[t.dependsOn.length>0&&`${e(`plugins.metaDepends`)} ${t.dependsOn.map(Z).join(`, `)}`,t.libraries.length>0&&`${e(`plugins.metaLibraries`)} ${t.libraries.map(t=>e(t.label)).join(`, `)}`,t.extends.length>0&&`${e(`plugins.metaExtends`)} ${t.extends.map(t=>e(t.label)).join(`, `)}`].filter(Boolean).join(` · `)||`—`;return(0,E.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 last:border-b-0 sm:flex-row sm:items-center sm:gap-4`,children:[(0,E.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,E.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,E.jsxDEV)(`span`,{className:`font-semibold text-foreground`,children:w(e,t)},void 0,!1,{fileName:D,lineNumber:483,columnNumber:31},this),(0,E.jsxDEV)(P,{plugin:t,busy:V(t.id),onUpdate:()=>ne(t)},void 0,!1,{fileName:D,lineNumber:484,columnNumber:31},this)]},void 0,!0,{fileName:D,lineNumber:482,columnNumber:29},this),n&&(0,E.jsxDEV)(`div`,{className:`text-xs text-muted-foreground mt-0.5 truncate`,children:n},void 0,!1,{fileName:D,lineNumber:487,columnNumber:31},this),(0,E.jsxDEV)(`div`,{className:`text-xs text-muted-foreground mt-0.5 truncate`,children:s},void 0,!1,{fileName:D,lineNumber:489,columnNumber:29},this)]},void 0,!0,{fileName:D,lineNumber:481,columnNumber:27},this),(0,E.jsxDEV)(`div`,{className:`flex w-full shrink-0 items-center justify-end gap-2 border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:[t.hasSettings&&(0,E.jsxDEV)(h,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,E.jsxDEV)(r,{to:`/settings/${t.id}`,title:e(`plugins.settingsTitle`),"aria-label":e(`plugins.settingsTitle`),children:(0,E.jsxDEV)(d,{name:`lucide:settings`,size:16},void 0,!1,{fileName:D,lineNumber:499,columnNumber:35},this)},void 0,!1,{fileName:D,lineNumber:494,columnNumber:33},this)},void 0,!1,{fileName:D,lineNumber:493,columnNumber:31},this),(0,E.jsxDEV)(`span`,{title:o,children:(0,E.jsxDEV)(l,{checked:t.enabled,disabled:V(t.id)||a,onCheckedChange:()=>te(t),title:o},void 0,!1,{fileName:D,lineNumber:506,columnNumber:31},this)},void 0,!1,{fileName:D,lineNumber:505,columnNumber:29},this)]},void 0,!0,{fileName:D,lineNumber:491,columnNumber:27},this)]},t.id,!0,{fileName:D,lineNumber:477,columnNumber:25},this)})]},void 0,!0,{fileName:D,lineNumber:410,columnNumber:19},this)]},void 0,!0,{fileName:D,lineNumber:396,columnNumber:17},this)]},void 0,!0,{fileName:D,lineNumber:353,columnNumber:13},this)]},void 0,!0,{fileName:D,lineNumber:320,columnNumber:11},this)]},void 0,!0,{fileName:D,lineNumber:292,columnNumber:7},this)]},void 0,!0,{fileName:D,lineNumber:290,columnNumber:5},this)}function P({plugin:e,busy:t,onUpdate:r}){let{t:i}=n(),a=!!(e.latestVersion&&C(e.latestVersion,e.installedVersion));return(0,E.jsxDEV)(E.Fragment,{children:[(0,E.jsxDEV)(u,{variant:`secondary`,className:`text-[11px] font-medium`,children:[`v`,e.installedVersion]},void 0,!0,{fileName:D,lineNumber:533,columnNumber:7},this),a&&(0,E.jsxDEV)(h,{size:`sm`,type:`button`,disabled:t,onClick:r,title:i(`plugins.updateTitle`,{from:e.installedVersion,to:e.latestVersion}),variant:`accentOutline`,className:`shrink-0`,children:i(`plugins.updateButton`)},void 0,!1,{fileName:D,lineNumber:537,columnNumber:9},this)]},void 0,!0,{fileName:D,lineNumber:532,columnNumber:5},this)}export{N as SettingsPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-CzSUaSLk.js";import{zr as i}from"./src-1AsWJbID.js";import{i as a,r as o}from"./input-BFMNMo6y.js";import{a as s,i as c,t as l}from"./popover-C1KB68Kk.js";var u=o(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),d=o(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),f=o(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),p=e(t(),1),m=`coffer-theme`;function h(e){return e===`light`||e===`dark`||e===`eink`?e:`auto`}function g(){try{return h(localStorage.getItem(m))}catch{return h(null)}}function _(e){if(e===`auto`){delete document.documentElement.dataset.theme;try{localStorage.removeItem(m)}catch{}}else{document.documentElement.dataset.theme=e;try{localStorage.setItem(m,e)}catch{}}}function v(e,t,n){let r=n*Math.PI/180,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c;return{r:4.0767416621*l-3.3077115913*u+.2309699292*d,g:-1.2684380046*l+2.6097574011*u-.3413193965*d,b:-.0041960863*l-.7034186147*u+1.707614701*d}}function y(e){let t=e<0?-1:1,n=Math.abs(e);return t*(n<=.0031308?12.92*n:1.055*n**(1/2.4)-.055)}function b(e,t,n){let r=v(e,t,n);return{r:y(r.r),g:y(r.g),b:y(r.b)}}function x(e,t,n){let{r,g:i,b:a}=b(e,t,n);return[r,i,a].every(e=>e>=-.002&&e<=1.002)}function S(e,t){let n=0,r=.4;for(let i=0;i<40;i++){let i=(n+r)/2;x(e,i,t)?n=i:r=i}return n}var C=`coffer-accent`,w=`oklch(0.62 0.107 162)`,T=[{titleKey:`appearance.colours`,items:[[12,`red`],[42,`orange`],[72,`yellow`],[102,`lime`],[132,`green`],[162,`emerald`],[192,`teal`],[222,`azure`],[252,`blue`],[282,`violet`],[312,`purple`],[342,`pink`]].map(([e,t])=>({id:`oklch(0.62 0.107 ${e})`,titleKey:`appearance.hue.${t}`}))},{titleKey:`appearance.neutral`,items:[{id:`oklch(0.5 0 0)`,titleKey:`appearance.hue.grey`}]}],E=/^(#[0-9a-f]{6}|oklch\(\s*[\d.]+\s+[\d.]+\s+[\d.]+\s*\))$/i;function D(e){let t=e?.trim();return t&&E.test(t)?t:w}function O(){try{return D(localStorage.getItem(C))}catch{return w}}var k=.09,A=[`panel`,`panel-raised`];function j(e){let t=/^oklch\(\s*[\d.]+\s+([\d.]+)\s+([\d.]+)\s*\)$/i.exec(e);return t?Number.parseFloat(t[1])===0?null:Number.parseFloat(t[2]):null}function M(e){let t=document.documentElement,n=j(D(e));for(let e of A){if(n===null){t.style.removeProperty(`--c-${e}-max`);continue}let r=Number.parseFloat(getComputedStyle(t).getPropertyValue(`--l-${e}`));Number.isFinite(r)&&t.style.setProperty(`--c-${e}-max`,String(Math.min(k,S(r,n))))}}function N(e){let t=D(e);document.documentElement.style.setProperty(`--accent`,t),M(t);try{t===`oklch(0.62 0.107 162)`?localStorage.removeItem(C):localStorage.setItem(C,t)}catch{}}function P(){let[e,t]=(0,p.useState)(()=>g()),[n,r]=(0,p.useState)(()=>O());return(0,p.useEffect)(()=>{M(O())},[]),{choice:e,setChoice:(0,p.useCallback)(e=>{_(e),M(O()),t(e)},[]),accent:n,setAccent:(0,p.useCallback)(e=>{N(e),r(e)},[])}}var F=r(),I=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/theme/ThemeSwitcher.tsx`,L=[{value:`auto`,Icon:i,labelKey:`theme.auto`},{value:`light`,Icon:f,labelKey:`theme.light`},{value:`dark`,Icon:d,labelKey:`theme.dark`},{value:`eink`,Icon:u,labelKey:`theme.eink`}];function R({compact:e=!1}){let{t}=n(),{choice:r,setChoice:i,accent:o,setAccent:u}=P();return(0,F.jsxDEV)(l,{children:[(0,F.jsxDEV)(s,{"aria-label":t(`appearance.label`),className:a(`flex min-h-11 touch-manipulation items-center rounded-xl text-sm text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,e?`w-full flex-col gap-0.5 py-2`:`w-full gap-2 px-3 py-2`),children:[(0,F.jsxDEV)(`span`,{className:`block size-4 shrink-0 rounded-full border border-border`,style:{background:o}},void 0,!1,{fileName:I,lineNumber:40,columnNumber:9},this),e?(0,F.jsxDEV)(`span`,{className:`text-[10px] font-semibold`,children:t(`appearance.label`)},void 0,!1,{fileName:I,lineNumber:42,columnNumber:11},this):(0,F.jsxDEV)(`span`,{className:`flex-1 text-left`,children:t(`appearance.label`)},void 0,!1,{fileName:I,lineNumber:44,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:31,columnNumber:7},this),(0,F.jsxDEV)(c,{align:`end`,className:`w-[292px] max-w-[calc(100vw-32px)] p-3`,children:[(0,F.jsxDEV)(`section`,{children:[(0,F.jsxDEV)(`h3`,{className:`label mb-1.5 border-b border-border pb-1.5`,children:t(`appearance.theme`)},void 0,!1,{fileName:I,lineNumber:50,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-1`,children:L.map(({value:e,Icon:n,labelKey:o})=>(0,F.jsxDEV)(`button`,{type:`button`,"aria-pressed":r===e,onClick:()=>i(e),className:a(`flex min-h-11 touch-manipulation items-center gap-2 rounded-md border border-transparent px-2 text-sm hover:bg-background`,r===e&&`border-border bg-background text-foreground`),children:[(0,F.jsxDEV)(n,{size:15,className:`shrink-0`},void 0,!1,{fileName:I,lineNumber:63,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`truncate`,children:t(o)},void 0,!1,{fileName:I,lineNumber:64,columnNumber:17},this)]},e,!0,{fileName:I,lineNumber:53,columnNumber:15},this))},void 0,!1,{fileName:I,lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:49,columnNumber:9},this),T.map(e=>(0,F.jsxDEV)(`section`,{className:`mt-3`,children:[(0,F.jsxDEV)(`h3`,{className:`label mb-1.5 border-b border-border pb-1.5`,children:t(e.titleKey)},void 0,!1,{fileName:I,lineNumber:72,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-0.5`,children:e.items.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,"aria-pressed":o===e.id,onClick:()=>u(e.id),className:a(`flex min-w-0 touch-manipulation flex-col items-center gap-1.5 rounded-md border border-transparent px-1 py-2 hover:bg-background`,o===e.id&&`border-text bg-background`),children:[(0,F.jsxDEV)(`span`,{className:`block size-4 shrink-0 rounded-full border border-border`,style:{background:e.id}},void 0,!1,{fileName:I,lineNumber:86,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:a(`w-full truncate text-[11px] leading-tight`,o===e.id?`text-foreground`:`text-muted-foreground`),children:t(e.titleKey)},void 0,!1,{fileName:I,lineNumber:90,columnNumber:19},this)]},e.id,!0,{fileName:I,lineNumber:76,columnNumber:17},this))},void 0,!1,{fileName:I,lineNumber:74,columnNumber:13},this)]},e.titleKey,!0,{fileName:I,lineNumber:71,columnNumber:11},this))]},void 0,!0,{fileName:I,lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:I,lineNumber:30,columnNumber:5},this)}export{R as t};
|