@lyfie/luthor 2.7.3 → 2.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/{LegacyRichEditor-BK1LjaUd.d.ts → LegacyRichEditor-BJYk4DIh.d.ts} +1 -1
  3. package/dist/{chunk-6UNJGUCM.js → chunk-3DVRGGFP.js} +1 -1
  4. package/dist/{chunk-IZH46QEO.js → chunk-4QWDXM4Z.js} +1 -1
  5. package/dist/chunk-6XCGMELC.js +1 -0
  6. package/dist/{chunk-S4COFPXG.js → chunk-I2DU3ERA.js} +1 -1
  7. package/dist/chunk-LTDDNZY7.js +1 -0
  8. package/dist/chunk-NSEVF7IZ.js +1 -0
  9. package/dist/chunk-V2UXNC6V.js +1 -0
  10. package/dist/{chunk-CNIX7SRP.js → chunk-XKUPKZG4.js} +1 -1
  11. package/dist/chunk-ZD3C3KYY.js +18 -0
  12. package/dist/{index-eZXI9w3M.d.ts → index-D8EFfJrS.d.ts} +0 -2
  13. package/dist/{index-D2lyPRu1.d.ts → index-oHYmGmpX.d.ts} +1 -1
  14. package/dist/index.css +1 -1
  15. package/dist/index.d.ts +5 -5
  16. package/dist/index.js +1 -1
  17. package/dist/presets/compose/index.d.ts +1 -1
  18. package/dist/presets/compose/index.js +1 -1
  19. package/dist/presets/extensive/index.d.ts +2 -2
  20. package/dist/presets/extensive/index.js +1 -1
  21. package/dist/presets/headless-editor/index.d.ts +1 -1
  22. package/dist/presets/headless-editor/index.js +1 -1
  23. package/dist/presets/html-editor/index.d.ts +2 -2
  24. package/dist/presets/html-editor/index.js +1 -1
  25. package/dist/presets/legacy-rich/index.d.ts +2 -2
  26. package/dist/presets/legacy-rich/index.js +1 -1
  27. package/dist/presets/md-editor/index.d.ts +2 -2
  28. package/dist/presets/md-editor/index.js +1 -1
  29. package/dist/presets/simple-editor/index.d.ts +1 -1
  30. package/dist/presets/simple-editor/index.js +1 -1
  31. package/dist/presets/slash-editor/index.d.ts +1 -1
  32. package/dist/presets/slash-editor/index.js +1 -1
  33. package/package.json +2 -2
  34. package/dist/chunk-4DHY4VVC.js +0 -18
  35. package/dist/chunk-5VVQH4YY.js +0 -1
  36. package/dist/chunk-6KIISXIV.js +0 -1
  37. package/dist/chunk-CXFVQX2C.js +0 -1
  38. package/dist/chunk-H33QXH5Y.js +0 -1
package/README.md CHANGED
@@ -28,7 +28,7 @@
28
28
  ## Install
29
29
 
30
30
  ```bash
31
- pnpm add @lyfie/luthor
31
+ pnpm add @lyfie/luthor react react-dom
32
32
  ```
33
33
 
34
34
  ## Quick Usage
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { E as ExtensiveEditorProps, F as FeatureFlagOverrides, a as ExtensiveEditorRef, T as ToolbarLayout } from './index-eZXI9w3M.js';
2
+ import { E as ExtensiveEditorProps, F as FeatureFlagOverrides, a as ExtensiveEditorRef, T as ToolbarLayout } from './index-D8EFfJrS.js';
3
3
 
4
4
  declare const LEGACY_RICH_MARKDOWN_MODES: readonly ["visual-only", "visual", "json", "markdown"];
5
5
  declare const LEGACY_RICH_HTML_MODES: readonly ["visual-only", "visual", "json", "html"];
@@ -1 +1 @@
1
- import {a}from'./chunk-4DHY4VVC.js';var s=class{constructor(e,a$1={}){a(this,"defaults");a(this,"enforced");this.defaults={...e},this.enforced={...a$1};}resolve(e){return {...this.defaults,...e??{},...this.enforced}}};function n(...t){return t.filter(e=>typeof e=="string"&&e.trim().length>0).join(" ")}export{s as a,n as b};
1
+ import {a}from'./chunk-ZD3C3KYY.js';var s=class{constructor(e,a$1={}){a(this,"defaults");a(this,"enforced");this.defaults={...e},this.enforced={...a$1};}resolve(e){return {...this.defaults,...e??{},...this.enforced}}};function n(...t){return t.filter(e=>typeof e=="string"&&e.trim().length>0).join(" ")}export{s as a,n as b};
@@ -1 +1 @@
1
- import {d,f,e as e$1}from'./chunk-5VVQH4YY.js';import {b}from'./chunk-6UNJGUCM.js';import {ha,sa}from'./chunk-4DHY4VVC.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var e={...d,codeIntelligence:true},L=e$1,r=forwardRef(({className:n,variantClassName:l,toolbarClassName:E,toolbarLayout:m,initialMode:c="visual",defaultEditorView:p,featureFlags:u,...M},f$1)=>{let D={...e,...u??{}};return jsx(f,{ref:f$1,...M,className:b("luthor-preset-md-editor",n),variantClassName:b("luthor-preset-md-editor__variant",l),toolbarClassName:b("luthor-preset-md-editor__toolbar",E),sourceFormat:"markdown",initialMode:c,defaultEditorView:p,markdownBridgeFlavor:"github",markdownSourceOfTruth:true,featureFlags:D,toolbarLayout:m??L})});r.displayName="MarkDownEditor";var g={id:"md-editor",label:"MD Editor",description:"Markdown-native feature set with visual, JSON, and MD source views.",extensions:sa({featureFlags:e}),components:{Editor:r},toolbar:["undo","redo","blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","bold","italic","strikethrough","code","codeBlock","link","unorderedList","orderedList","checkList","horizontalRule","table","image"],config:ha("md-editor","Write markdown..."),css:"md-editor/styles.css"};export{r as a,g as b};
1
+ import {d,f,e as e$1}from'./chunk-NSEVF7IZ.js';import {b}from'./chunk-3DVRGGFP.js';import {ha,sa}from'./chunk-ZD3C3KYY.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var e={...d,codeIntelligence:true},L=e$1,r=forwardRef(({className:n,variantClassName:l,toolbarClassName:E,toolbarLayout:m,initialMode:c="visual",defaultEditorView:p,featureFlags:u,...M},f$1)=>{let D={...e,...u??{}};return jsx(f,{ref:f$1,...M,className:b("luthor-preset-md-editor",n),variantClassName:b("luthor-preset-md-editor__variant",l),toolbarClassName:b("luthor-preset-md-editor__toolbar",E),sourceFormat:"markdown",initialMode:c,defaultEditorView:p,markdownBridgeFlavor:"github",markdownSourceOfTruth:true,featureFlags:D,toolbarLayout:m??L})});r.displayName="MarkDownEditor";var g={id:"md-editor",label:"MD Editor",description:"Markdown-native feature set with visual, JSON, and MD source views.",extensions:sa({featureFlags:e}),components:{Editor:r},toolbar:["undo","redo","blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","bold","italic","strikethrough","code","codeBlock","link","unorderedList","orderedList","checkList","horizontalRule","table","image"],config:ha("md-editor","Write markdown..."),css:"md-editor/styles.css"};export{r as a,g as b};
@@ -0,0 +1 @@
1
+ import {a as a$1,b as b$1}from'./chunk-3DVRGGFP.js';import {ha,sa,Ea}from'./chunk-ZD3C3KYY.js';import {jsx}from'react/jsx-runtime';var b=["visual-only","visual","json","markdown","html"],g={bold:true,italic:true,underline:true,strikethrough:true,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:true,horizontalRule:true,table:true,list:true,history:true,image:false,blockFormat:true,code:true,codeIntelligence:false,codeFormat:true,tabIndent:true,enterKeyBehavior:true,iframeEmbed:false,youTubeEmbed:false,slashCommand:true,draggableBlock:true,commandPalette:false,floatingToolbar:false,contextMenu:false,emoji:false,customNode:false,themeToggle:false},E={slashCommand:true,commandPalette:false},p=new a$1(g,E),t=["format.bold","format.italic","format.underline","format.strikethrough","format.code","block.paragraph","block.heading1","block.heading2","block.heading3","block.heading4","block.heading5","block.heading6","block.quote","block.codeblock","list.bullet","list.numbered","list.check","link.insert","insert.horizontal-rule","insert.table"],F={allowlist:t};function a({className:i,variantClassName:n,slashVisibility:d,isDraggableEnabled:u=true,featureFlags:m,isToolbarEnabled:f=false,...c}){let h={...p.resolve(m),draggableBlock:u};return jsx(Ea,{...c,className:b$1("luthor-preset-slash-editor",i),variantClassName:b$1("luthor-preset-slash-editor__variant",n),availableModes:b,isToolbarEnabled:f,slashCommandVisibility:d??F,featureFlags:h})}var T={id:"slash-editor",label:"Slash Editor",description:"Slash-first editing with curated commands and draggable block support.",extensions:sa({featureFlags:{bold:true,italic:true,underline:true,strikethrough:true,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:true,horizontalRule:true,table:true,list:true,history:true,image:false,blockFormat:true,code:true,codeIntelligence:false,codeFormat:true,tabIndent:true,enterKeyBehavior:true,iframeEmbed:false,youTubeEmbed:false,slashCommand:true,draggableBlock:true,floatingToolbar:false,contextMenu:false,commandPalette:false,emoji:false,customNode:false,themeToggle:false}}),components:{Editor:a},toolbar:[...t],config:ha("slash-editor","Type '/' for commands..."),css:"slash-editor/styles.css"};export{a,T as b};
@@ -1 +1 @@
1
- import {ha,sa,Ea,ja}from'./chunk-4DHY4VVC.js';import {jsonToMarkdown}from'@lyfie/luthor-headless';import {useRef,useState,useMemo,useCallback,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';var W=JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:null,format:"",indent:0,type:"paragraph",version:1}],direction:null,format:"",indent:0,type:"root",version:1}});function N(o){return typeof o=="number"?`${o}px`:o}function D(o,n){if(typeof o=="number"&&Number.isFinite(o))return o;if(typeof o=="string"){let l=o.trim();if(l.length===0)return n;let g=Number.parseFloat(l.replace("px",""));if(Number.isFinite(g))return g}return n}function ce(o){try{let n=o?JSON.parse(o):void 0;return ja(jsonToMarkdown(n))}catch{return ""}}function Z(o,n,l){return l<=n?n:Math.min(l,Math.max(n,o))}function me(o,n,l){o.focus();let L=Array.from(o.children).filter(s=>s instanceof HTMLElement).reduce((s,r)=>{let u=r.getBoundingClientRect(),M=u.top+u.height/2;if(!s)return r;let y=s.getBoundingClientRect(),P=y.top+y.height/2;return Math.abs(M-l)<Math.abs(P-l)?r:s},null)??o.firstElementChild??o,C=o.getBoundingClientRect(),x=L.getBoundingClientRect(),a=Z(n,C.left+1,C.right-1),c=Z(l,x.top+1,x.bottom-1),d=document,m=d.caretPositionFromPoint?.(a,c);if(m){let s=window.getSelection();if(!s)return;let r=document.createRange();r.setStart(m.offsetNode,m.offset),r.collapse(true),s.removeAllRanges(),s.addRange(r);return}let f=d.caretRangeFromPoint?.(a,c);if(!f)return;let p=window.getSelection();p&&(f.collapse(true),p.removeAllRanges(),p.addRange(f));}function j({className:o,variantClassName:n,initialTheme:l,onThemeChange:g,theme:z,defaultContent:L,showDefaultContent:C=false,placeholder:x,formattingOptions:a,onSend:c,outputFormat:d="md",clearOnSend:m=true,allowEmptySend:f=false,submitOnEnter:p=false,allowShiftEnter:s=true,minHeight:r=56,maxHeight:u=220,minWidth:M=240,maxWidth:y="100%",showBottomToolbar:P=true,toolbarButtons:te=[],toolbarClassName:oe,toolbarStyle:re,showSendButton:R=true,sendButtonPlacement:w="inside",sendButtonContent:K="Send",sendButtonAriaLabel:V="Send message",sendButtonClassName:I,scrollAreaClassName:B}){let F=useRef(null),E=useRef(null),[J,ie]=useState(()=>D(r,56)),q=useMemo(()=>D(r,56),[r]),A=useMemo(()=>D(u,220),[u]),O=useMemo(()=>({bold:a?.bold!==false,italic:a?.italic!==false,strikethrough:a?.strikethrough!==false}),[a]),ne=useMemo(()=>({disabledCommandIds:["history.undo","history.redo"],bindings:{"format.bold":[{key:"b",ctrlKey:true},{key:"b",metaKey:true}],"format.italic":[{key:"i",ctrlKey:true},{key:"i",metaKey:true}],"format.strikethrough":[{key:"x",ctrlKey:true,shiftKey:true},{key:"x",metaKey:true,shiftKey:true}],"format.code":false,"block.codeblock":false}}),[]),_=useCallback(()=>{let e=F.current?.getJSON()??W,t=ce(e);return {json:e,markdown:t,text:d==="json"?e:t}},[d]),T=useCallback(()=>{if(!c)return;let e=_();!f&&!e.markdown.trim()||(c({format:d,text:e.text,markdown:e.markdown,json:e.json}),m&&F.current?.injectJSON(W));},[f,m,c,d,_]),h=useCallback(()=>{let e=E.current;if(!e)return;let t=e.querySelector(".luthor-content-editable");if(!t)return;let i=Math.max(q,Math.min(A,t.scrollHeight));ie(i);},[A,q]),se=useCallback(e=>{!p||e.key!=="Enter"||e.nativeEvent.isComposing||e.shiftKey&&s||(e.preventDefault(),T());},[s,T,p]),le=useCallback(e=>{let t=e.target;if(t.closest("button, a, input, textarea, [contenteditable='true']")||t.closest(".luthor-simple-editor-bottom-toolbar"))return;let S=E.current?.querySelector(".luthor-content-editable");S&&(e.preventDefault(),me(S,e.clientX,e.clientY));},[]);useEffect(()=>{h();},[h]),useEffect(()=>{let e=E.current;if(!e)return;let t=e.querySelector(".luthor-content-editable");if(!t)return;let i=()=>h();t.addEventListener("input",i),t.addEventListener("keyup",i),t.addEventListener("paste",i);let S=typeof ResizeObserver<"u"?new ResizeObserver(()=>h()):null;S?.observe(t);let Y=new MutationObserver(()=>h());return Y.observe(t,{childList:true,subtree:true,characterData:true}),()=>{t.removeEventListener("input",i),t.removeEventListener("keyup",i),t.removeEventListener("paste",i),S?.disconnect(),Y.disconnect();}},[h]),useEffect(()=>{let t=E.current?.querySelector(".luthor-richtext-container");if(!t||!B)return;let i=B.split(/\s+/).filter(Boolean);if(i.length!==0)return t.classList.add(...i),()=>{t.classList.remove(...i);}},[B]);let ae=useMemo(()=>({"--luthor-simple-editor-min-height":N(r),"--luthor-simple-editor-max-height":N(u),"--luthor-simple-editor-current-height":`${J}px`,"--luthor-simple-editor-min-width":N(M),"--luthor-simple-editor-max-width":N(y)}),[J,u,y,r,M]);return jsx("div",{ref:E,className:["luthor-preset-simple-editor",R&&w==="inside"?"luthor-preset-simple-editor--send-inside":"",o].filter(Boolean).join(" "),style:ae,onKeyDownCapture:se,onMouseDownCapture:le,children:jsxs("div",{className:"luthor-simple-editor-row",children:[jsxs("div",{className:"luthor-simple-editor-shell",children:[jsx(Ea,{ref:F,initialTheme:l,onThemeChange:g,theme:z,defaultContent:L,showDefaultContent:C,placeholder:x,variantClassName:["luthor-preset-simple-editor__variant",n].filter(Boolean).join(" "),isToolbarEnabled:false,availableModes:["visual-only","visual"],initialMode:"visual",shortcutConfig:ne,featureFlags:{bold:O.bold,italic:O.italic,underline:false,strikethrough:O.strikethrough,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:false,horizontalRule:false,table:false,list:false,image:false,blockFormat:false,code:false,codeIntelligence:false,codeFormat:false,iframeEmbed:false,youTubeEmbed:false,floatingToolbar:false,contextMenu:false,commandPalette:false,slashCommand:false,emoji:false,draggableBlock:false,customNode:false,themeToggle:false,history:false}}),R&&w==="inside"&&jsx("button",{type:"button",className:["luthor-simple-editor-action","luthor-simple-editor-action-send","luthor-simple-editor-action-send--inside",I].filter(Boolean).join(" "),"data-testid":"simple-editor-send-button",onClick:T,"aria-label":V,children:K}),P&&jsx("div",{className:["luthor-simple-editor-bottom-toolbar",oe].filter(Boolean).join(" "),style:re,"data-testid":"simple-editor-actions",children:te.map(e=>jsx("button",{type:"button",className:["luthor-simple-editor-action",e.className].filter(Boolean).join(" "),"aria-label":e.ariaLabel,disabled:e.disabled,title:e.title,onClick:e.onClick,children:e.content},e.id))})]}),R&&w==="right"&&jsx("button",{type:"button",className:["luthor-simple-editor-action","luthor-simple-editor-action-send","luthor-simple-editor-action-send--right",I].filter(Boolean).join(" "),"data-testid":"simple-editor-send-button",onClick:T,"aria-label":V,children:K})]})})}var fe={id:"simple-editor",label:"Simple Editor",description:"Lightweight editor with constrained formatting and send controls.",extensions:sa({featureFlags:{bold:true,italic:true,underline:false,strikethrough:true,table:false,image:false,blockFormat:false,code:false,codeIntelligence:false,codeFormat:false,list:false,iframeEmbed:false,youTubeEmbed:false,commandPalette:false,slashCommand:false,draggableBlock:false,customNode:false,history:false}}),components:{Editor:j},toolbar:[],config:ha("simple-editor","Type your message..."),css:"simple-editor/styles.css"};export{j as a,fe as b};
1
+ import {ha,sa,Ea,ja}from'./chunk-ZD3C3KYY.js';import {jsonToMarkdown}from'@lyfie/luthor-headless';import {useRef,useState,useMemo,useCallback,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';var W=JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:null,format:"",indent:0,type:"paragraph",version:1}],direction:null,format:"",indent:0,type:"root",version:1}});function N(o){return typeof o=="number"?`${o}px`:o}function D(o,n){if(typeof o=="number"&&Number.isFinite(o))return o;if(typeof o=="string"){let l=o.trim();if(l.length===0)return n;let g=Number.parseFloat(l.replace("px",""));if(Number.isFinite(g))return g}return n}function ce(o){try{let n=o?JSON.parse(o):void 0;return ja(jsonToMarkdown(n))}catch{return ""}}function Z(o,n,l){return l<=n?n:Math.min(l,Math.max(n,o))}function me(o,n,l){o.focus();let L=Array.from(o.children).filter(s=>s instanceof HTMLElement).reduce((s,r)=>{let u=r.getBoundingClientRect(),M=u.top+u.height/2;if(!s)return r;let y=s.getBoundingClientRect(),P=y.top+y.height/2;return Math.abs(M-l)<Math.abs(P-l)?r:s},null)??o.firstElementChild??o,C=o.getBoundingClientRect(),x=L.getBoundingClientRect(),a=Z(n,C.left+1,C.right-1),c=Z(l,x.top+1,x.bottom-1),d=document,m=d.caretPositionFromPoint?.(a,c);if(m){let s=window.getSelection();if(!s)return;let r=document.createRange();r.setStart(m.offsetNode,m.offset),r.collapse(true),s.removeAllRanges(),s.addRange(r);return}let f=d.caretRangeFromPoint?.(a,c);if(!f)return;let p=window.getSelection();p&&(f.collapse(true),p.removeAllRanges(),p.addRange(f));}function j({className:o,variantClassName:n,initialTheme:l,onThemeChange:g,theme:z,defaultContent:L,showDefaultContent:C=false,placeholder:x,formattingOptions:a,onSend:c,outputFormat:d="md",clearOnSend:m=true,allowEmptySend:f=false,submitOnEnter:p=false,allowShiftEnter:s=true,minHeight:r=56,maxHeight:u=220,minWidth:M=240,maxWidth:y="100%",showBottomToolbar:P=true,toolbarButtons:te=[],toolbarClassName:oe,toolbarStyle:re,showSendButton:R=true,sendButtonPlacement:w="inside",sendButtonContent:K="Send",sendButtonAriaLabel:V="Send message",sendButtonClassName:I,scrollAreaClassName:B}){let F=useRef(null),E=useRef(null),[J,ie]=useState(()=>D(r,56)),q=useMemo(()=>D(r,56),[r]),A=useMemo(()=>D(u,220),[u]),O=useMemo(()=>({bold:a?.bold!==false,italic:a?.italic!==false,strikethrough:a?.strikethrough!==false}),[a]),ne=useMemo(()=>({disabledCommandIds:["history.undo","history.redo"],bindings:{"format.bold":[{key:"b",ctrlKey:true},{key:"b",metaKey:true}],"format.italic":[{key:"i",ctrlKey:true},{key:"i",metaKey:true}],"format.strikethrough":[{key:"x",ctrlKey:true,shiftKey:true},{key:"x",metaKey:true,shiftKey:true}],"format.code":false,"block.codeblock":false}}),[]),_=useCallback(()=>{let e=F.current?.getJSON()??W,t=ce(e);return {json:e,markdown:t,text:d==="json"?e:t}},[d]),T=useCallback(()=>{if(!c)return;let e=_();!f&&!e.markdown.trim()||(c({format:d,text:e.text,markdown:e.markdown,json:e.json}),m&&F.current?.injectJSON(W));},[f,m,c,d,_]),h=useCallback(()=>{let e=E.current;if(!e)return;let t=e.querySelector(".luthor-content-editable");if(!t)return;let i=Math.max(q,Math.min(A,t.scrollHeight));ie(i);},[A,q]),se=useCallback(e=>{!p||e.key!=="Enter"||e.nativeEvent.isComposing||e.shiftKey&&s||(e.preventDefault(),T());},[s,T,p]),le=useCallback(e=>{let t=e.target;if(t.closest("button, a, input, textarea, [contenteditable='true']")||t.closest(".luthor-simple-editor-bottom-toolbar"))return;let S=E.current?.querySelector(".luthor-content-editable");S&&(e.preventDefault(),me(S,e.clientX,e.clientY));},[]);useEffect(()=>{h();},[h]),useEffect(()=>{let e=E.current;if(!e)return;let t=e.querySelector(".luthor-content-editable");if(!t)return;let i=()=>h();t.addEventListener("input",i),t.addEventListener("keyup",i),t.addEventListener("paste",i);let S=typeof ResizeObserver<"u"?new ResizeObserver(()=>h()):null;S?.observe(t);let Y=new MutationObserver(()=>h());return Y.observe(t,{childList:true,subtree:true,characterData:true}),()=>{t.removeEventListener("input",i),t.removeEventListener("keyup",i),t.removeEventListener("paste",i),S?.disconnect(),Y.disconnect();}},[h]),useEffect(()=>{let t=E.current?.querySelector(".luthor-richtext-container");if(!t||!B)return;let i=B.split(/\s+/).filter(Boolean);if(i.length!==0)return t.classList.add(...i),()=>{t.classList.remove(...i);}},[B]);let ae=useMemo(()=>({"--luthor-simple-editor-min-height":N(r),"--luthor-simple-editor-max-height":N(u),"--luthor-simple-editor-current-height":`${J}px`,"--luthor-simple-editor-min-width":N(M),"--luthor-simple-editor-max-width":N(y)}),[J,u,y,r,M]);return jsx("div",{ref:E,className:["luthor-preset-simple-editor",R&&w==="inside"?"luthor-preset-simple-editor--send-inside":"",o].filter(Boolean).join(" "),style:ae,onKeyDownCapture:se,onMouseDownCapture:le,children:jsxs("div",{className:"luthor-simple-editor-row",children:[jsxs("div",{className:"luthor-simple-editor-shell",children:[jsx(Ea,{ref:F,initialTheme:l,onThemeChange:g,theme:z,defaultContent:L,showDefaultContent:C,placeholder:x,variantClassName:["luthor-preset-simple-editor__variant",n].filter(Boolean).join(" "),isToolbarEnabled:false,availableModes:["visual-only","visual"],initialMode:"visual",shortcutConfig:ne,featureFlags:{bold:O.bold,italic:O.italic,underline:false,strikethrough:O.strikethrough,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:false,horizontalRule:false,table:false,list:false,image:false,blockFormat:false,code:false,codeIntelligence:false,codeFormat:false,iframeEmbed:false,youTubeEmbed:false,floatingToolbar:false,contextMenu:false,commandPalette:false,slashCommand:false,emoji:false,draggableBlock:false,customNode:false,themeToggle:false,history:false}}),R&&w==="inside"&&jsx("button",{type:"button",className:["luthor-simple-editor-action","luthor-simple-editor-action-send","luthor-simple-editor-action-send--inside",I].filter(Boolean).join(" "),"data-testid":"simple-editor-send-button",onClick:T,"aria-label":V,children:K}),P&&jsx("div",{className:["luthor-simple-editor-bottom-toolbar",oe].filter(Boolean).join(" "),style:re,"data-testid":"simple-editor-actions",children:te.map(e=>jsx("button",{type:"button",className:["luthor-simple-editor-action",e.className].filter(Boolean).join(" "),"aria-label":e.ariaLabel,disabled:e.disabled,title:e.title,onClick:e.onClick,children:e.content},e.id))})]}),R&&w==="right"&&jsx("button",{type:"button",className:["luthor-simple-editor-action","luthor-simple-editor-action-send","luthor-simple-editor-action-send--right",I].filter(Boolean).join(" "),"data-testid":"simple-editor-send-button",onClick:T,"aria-label":V,children:K})]})})}var fe={id:"simple-editor",label:"Simple Editor",description:"Lightweight editor with constrained formatting and send controls.",extensions:sa({featureFlags:{bold:true,italic:true,underline:false,strikethrough:true,table:false,image:false,blockFormat:false,code:false,codeIntelligence:false,codeFormat:false,list:false,iframeEmbed:false,youTubeEmbed:false,commandPalette:false,slashCommand:false,draggableBlock:false,customNode:false,history:false}}),components:{Editor:j},toolbar:[],config:ha("simple-editor","Type your message..."),css:"simple-editor/styles.css"};export{j as a,fe as b};
@@ -0,0 +1 @@
1
+ import {a,b as b$1}from'./chunk-3DVRGGFP.js';import {Ea,ha,sa}from'./chunk-ZD3C3KYY.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var E={bold:true,italic:true,underline:true,strikethrough:true,list:true,history:true,link:true,blockFormat:true,codeFormat:true,image:false,table:false,iframeEmbed:false,youTubeEmbed:false,emoji:false,floatingToolbar:false,contextMenu:false,commandPalette:false,slashCommand:false,draggableBlock:false,customNode:false},b=new a(E),o=forwardRef(({className:m,variantClassName:d,compactToolbar:t=false,toolbarClassName:p,featureFlags:f,...c},n)=>jsx("div",{className:b$1("luthor-preset-compose",m),children:jsx(Ea,{ref:n,...c,className:"luthor-preset-compose__editor",variantClassName:b$1(t?"luthor-preset-compose--compact":void 0,"luthor-preset-compose__variant",d),toolbarClassName:b$1(t?"luthor-preset-compose__toolbar--compact":void 0,p),availableModes:["visual-only","visual","json"],featureFlags:b.resolve(f)})}));o.displayName="ComposeEditor";var g={id:"compose",label:"Compose Editor",description:"Focused rich text drafting preset with a compact, practical toolbar.",extensions:sa({featureFlags:{image:false,table:false,iframeEmbed:false,youTubeEmbed:false,emoji:true,commandPalette:false,slashCommand:false,draggableBlock:false,customNode:false}}),components:{Editor:o},toolbar:["bold","italic","underline","strikethrough","link","unorderedList","orderedList","checkList","undo","redo"],config:ha("compose","Write your draft..."),css:"compose/styles.css"};export{o as a,g as b};
@@ -0,0 +1 @@
1
+ import {a,b}from'./chunk-3DVRGGFP.js';import {Ea,ha,sa}from'./chunk-ZD3C3KYY.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var d=["visual-only","visual","json","markdown"],u=["visual-only","visual","json","html"],E=["visual-only","visual","markdown","html"],o={bold:true,italic:true,underline:false,strikethrough:true,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:true,horizontalRule:true,table:true,list:true,history:true,image:true,blockFormat:true,code:true,codeIntelligence:false,codeFormat:true,tabIndent:true,enterKeyBehavior:true,iframeEmbed:false,youTubeEmbed:false,floatingToolbar:false,contextMenu:false,commandPalette:false,slashCommand:false,emoji:false,draggableBlock:false,customNode:false,themeToggle:true},A={tabIndent:true,draggableBlock:false,iframeEmbed:false,youTubeEmbed:false,customNode:false,emoji:false,commandPalette:false,slashCommand:false},M=new a(o,A),m={sections:[{items:["undo","redo"]},{items:["blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify"]},{items:["bold","italic","strikethrough","code","link"]},{items:["unorderedList","orderedList","checkList","indentList","outdentList"]},{items:["codeBlock","horizontalRule","table","image"]},{items:["themeToggle"]}]};function v(e){return e==="both"?E:e==="html"?u:d}var r=forwardRef(({className:e,variantClassName:f,toolbarClassName:L,toolbarLayout:g,sourceFormat:h="both",initialMode:y="visual",defaultEditorView:_,featureFlags:R,...p},C)=>{let a=v(h),i=_??y,b$1=a.includes(i)?i:"visual";return jsx(Ea,{ref:C,...p,className:b("luthor-preset-legacy-rich",e),variantClassName:b("luthor-preset-legacy-rich__variant",f),toolbarClassName:b("luthor-preset-legacy-rich__toolbar",L),availableModes:a,initialMode:b$1,sourceMetadataMode:"none",isListStyleDropdownEnabled:false,toolbarLayout:g??m,featureFlags:M.resolve(R)})});r.displayName="LegacyRichEditor";var x={id:"legacy-rich",label:"Legacy Rich Editor",description:"Metadata-free rich text profile for native markdown and html compatibility.",extensions:sa({featureFlags:o}),components:{Editor:r},toolbar:["undo","redo","blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","bold","italic","strikethrough","code","link","unorderedList","orderedList","checkList","codeBlock","horizontalRule","table","image"],config:ha("legacy-rich","Write metadata-free content...")};export{d as a,u as b,E as c,o as d,m as e,r as f,x as g};
@@ -0,0 +1 @@
1
+ import {a,b}from'./chunk-3DVRGGFP.js';import {sa,ha,ka,ja,ia,fa,ga}from'./chunk-ZD3C3KYY.js';import {forwardRef,useState,useMemo,useRef,useEffect,useImperativeHandle,useCallback}from'react';import {createEditorSystem,jsonToHTML,jsonToMarkdown,RichText,htmlToJSON,markdownToJSON}from'@lyfie/luthor-headless';import {jsx,jsxs}from'react/jsx-runtime';var{Provider:me,useEditor:pe}=createEditorSystem(),te=["visual-only","visual","json","markdown","html"],Ee={"visual-only":"Visual Only",visual:"Visual",json:"JSON",markdown:"MD",html:"HTML"},ge={json:"Invalid JSON",markdown:"Invalid Markdown",html:"Invalid HTML"},Y="Start writing...",W="Enter JSON document content...",X="Enter Markdown content...",Z="Enter HTML content...",M={root:{type:"root",version:1,format:"",indent:0,direction:null,children:[{type:"paragraph",version:1,format:"",indent:0,direction:null,children:[{type:"text",version:1,text:"",detail:0,format:0,mode:"normal",style:""}]}]}},B={bold:true,italic:true,underline:false,strikethrough:true,fontFamily:false,fontSize:false,lineHeight:false,textColor:false,textHighlight:false,subscript:false,superscript:false,link:false,horizontalRule:true,table:false,list:true,history:true,image:false,blockFormat:true,code:true,codeIntelligence:false,codeFormat:true,tabIndent:true,enterKeyBehavior:true,iframeEmbed:false,youTubeEmbed:false,floatingToolbar:false,contextMenu:false,commandPalette:false,slashCommand:false,emoji:false,draggableBlock:false,customNode:false,themeToggle:false},fe={draggableBlock:false,themeToggle:false,table:false,image:false,iframeEmbed:false,youTubeEmbed:false,customNode:false,slashCommand:false,commandPalette:false,contextMenu:false,floatingToolbar:false},ve=new a(B,fe);function I(r){return r instanceof Error&&r.message.trim()?r.message.trim():"Unable to process the current source content."}function oe(r){return r&&typeof r=="object"?r:M}function se(r){let l=r.trim();return l?JSON.parse(l):M}function He(r,l){switch(r){case "json":return se(l);case "markdown":return markdownToJSON(l);case "html":return htmlToJSON(l)}}function x(r){return r==="visual"||r==="visual-only"}function c(r,l){let d=oe(l);switch(r){case "json":return ia(JSON.stringify(d));case "markdown":return ja(jsonToMarkdown(d));case "html":return ka(jsonToHTML(d))}}function Se(r){return typeof r=="string"||typeof r>"u"?{visual:r??Y,json:W,markdown:X,html:Z}:{visual:r.visual??Y,json:r.json??W,markdown:r.markdown??X,html:r.html??Z}}function _e({initialMode:r,placeholders:l,showLineNumbers:d,onReady:f}){let{activeStates:L,commands:e,export:u,import:p}=pe(),[a,H]=useState(r),[h,m]=useState({json:"",markdown:"",html:""}),[S,b]=useState(null),v=useRef(false),t=L,E=useCallback(()=>{let s=oe(u.toJSON()),i={json:c("json",s),markdown:c("markdown",s),html:c("html",s)};return m(i),i},[u]),C=useCallback((s,i)=>{let A=He(s,i);return p.fromJSON(A),A},[p]),w=useMemo(()=>({injectJSON:s=>{try{let i=se(s);p.fromJSON(i),b(null),E();}catch(i){b({mode:"json",error:I(i)});}},getJSON:()=>c("json",u.toJSON()),getMarkdown:()=>c("markdown",u.toJSON()),getHTML:()=>c("html",u.toJSON())}),[u,p,E]);useEffect(()=>{!f||v.current||(v.current=true,f(w));},[w,f]);let _=useCallback(s=>{if(s!==a){if(x(a)){if(!x(s))try{E(),b(null);}catch(i){b({mode:s,error:I(i)});return}H(s);return}try{let i=h[a],A=C(a,i);if(x(s)){b(null),H(s);return}let re=c(s,A);m(ae=>({...ae,[s]:re})),b(null),H(s);}catch(i){b({mode:a,error:I(i)});}}},[a,C,h,E]),T=useCallback(()=>{a==="visual"&&(t.bold&&e.toggleBold?.(),t.italic&&e.toggleItalic?.(),t.strikethrough&&e.toggleStrikethrough?.(),t.code&&e.formatText?.("code"),e.removeLink?.());},[e,a,t.bold,t.code,t.italic,t.strikethrough]),j=useCallback(()=>{a==="visual"&&(t.unorderedList&&e.toggleUnorderedList?.(),t.orderedList&&e.toggleOrderedList?.(),t.isQuote&&e.toggleQuote?.(),t.isInCodeBlock&&e.toggleCodeBlock?.(),e.toggleParagraph?.());},[e,a,t.isInCodeBlock,t.isQuote,t.orderedList,t.unorderedList]),P=useCallback(()=>{a==="visual"&&e.insertHardBreak?.();},[e,a]),k=x(a),n=a==="visual",F=a==="visual-only";return jsxs("div",{className:"luthor-editor","data-mode":a,children:[jsx("div",{className:"luthor-editor-header",children:jsx(fa,{mode:a,onModeChange:s=>_(s),availableModes:te,labels:Ee})}),jsxs("div",{className:"luthor-preset-headless-editor__toolbar",role:"toolbar","aria-label":"Headless editor toolbar",children:[jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.bold?" is-active":""}`,onClick:()=>e.toggleBold?.(),disabled:!n,children:"Bold"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.italic?" is-active":""}`,onClick:()=>e.toggleItalic?.(),disabled:!n,children:"Italic"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.strikethrough?" is-active":""}`,onClick:()=>e.toggleStrikethrough?.(),disabled:!n,children:"Strike"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.code?" is-active":""}`,onClick:()=>e.formatText?.("code"),disabled:!n,children:"Code"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:T,disabled:!n,children:"Clear marks"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:j,disabled:!n,children:"Clear nodes"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isParagraph?" is-active":""}`,onClick:()=>e.toggleParagraph?.(),disabled:!n,children:"Paragraph"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH1?" is-active":""}`,onClick:()=>e.toggleHeading?.("h1"),disabled:!n,children:"H1"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH2?" is-active":""}`,onClick:()=>e.toggleHeading?.("h2"),disabled:!n,children:"H2"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH3?" is-active":""}`,onClick:()=>e.toggleHeading?.("h3"),disabled:!n,children:"H3"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH4?" is-active":""}`,onClick:()=>e.toggleHeading?.("h4"),disabled:!n,children:"H4"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH5?" is-active":""}`,onClick:()=>e.toggleHeading?.("h5"),disabled:!n,children:"H5"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isH6?" is-active":""}`,onClick:()=>e.toggleHeading?.("h6"),disabled:!n,children:"H6"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.unorderedList?" is-active":""}`,onClick:()=>e.toggleUnorderedList?.(),disabled:!n,children:"Bullet list"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.orderedList?" is-active":""}`,onClick:()=>e.toggleOrderedList?.(),disabled:!n,children:"Ordered list"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isInCodeBlock?" is-active":""}`,onClick:()=>e.toggleCodeBlock?.(),disabled:!n,children:"Code block"}),jsx("button",{type:"button",className:`luthor-preset-headless-editor__button${t.isQuote?" is-active":""}`,onClick:()=>e.toggleQuote?.(),disabled:!n,children:"Blockquote"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:()=>e.insertHorizontalRule?.(),disabled:!n,children:"Horizontal rule"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:P,disabled:!n,children:"Hard break"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:()=>e.undo?.(),disabled:!n||!t.canUndo,children:"Undo"}),jsx("button",{type:"button",className:"luthor-preset-headless-editor__button",onClick:()=>e.redo?.(),disabled:!n||!t.canRedo,children:"Redo"})]}),jsx("div",{className:`luthor-preset-headless-editor__visual-shell${k?"":" is-hidden"}`,"aria-hidden":!k,children:jsx(RichText,{placeholder:l.visual,nonEditableVisualMode:F,onEditIntent:F?()=>_("visual"):void 0,classNames:{container:"luthor-richtext-container luthor-preset-headless-editor__container",contentEditable:"luthor-content-editable luthor-preset-headless-editor__content",placeholder:"luthor-placeholder luthor-preset-headless-editor__placeholder"}})}),!k&&jsxs("div",{className:"luthor-source-panel",children:[S&&S.mode===a&&jsxs("div",{className:"luthor-source-error",children:[jsx("div",{className:"luthor-source-error-icon",children:"!"}),jsxs("div",{className:"luthor-source-error-message",children:[jsx("strong",{children:ge[a]}),jsx("p",{children:S.error}),jsx("small",{children:"Fix the source input and try again."})]})]}),a==="json"&&jsx(ga,{value:h.json,onChange:s=>{m(i=>({...i,json:s}));},placeholder:l.json,showLineNumbers:d}),a==="markdown"&&jsx(ga,{value:h.markdown,onChange:s=>{m(i=>({...i,markdown:s}));},placeholder:l.markdown,className:"luthor-source-view--wrapped",wrap:"soft",showLineNumbers:d}),a==="html"&&jsx(ga,{value:h.html,onChange:s=>{m(i=>({...i,html:s}));},placeholder:l.html,className:"luthor-source-view--wrapped",wrap:"soft",showLineNumbers:d})]})]})}var J=forwardRef(({className:r,variantClassName:l,initialTheme:d="light",onThemeChange:f,placeholder:L,onReady:e,defaultContent:u,showDefaultContent:p=true,initialMode:a="visual",defaultEditorView:H,showLineNumbers:h=true,featureFlags:m,...S},b$1)=>{let[v,t]=useState(d),E=H??a,C=te.includes(E)?E:"visual",w=useMemo(()=>Se(L),[L]),_=useMemo(()=>ve.resolve(m),[m]),T=useMemo(()=>JSON.stringify(_),[_]),j=useMemo(()=>{let s=JSON.parse(T);return sa({featureFlags:s,showLineNumbers:h})},[T,h]),[P,k]=useState(null),n=useRef(false);useEffect(()=>{t(d);},[d]),useEffect(()=>{f?.(v);},[v,f]),useImperativeHandle(b$1,()=>P??{injectJSON:()=>{},getJSON:()=>c("json",M),getMarkdown:()=>c("markdown",M),getHTML:()=>c("html",M)},[P]);let F=useCallback(s=>{k(s),n.current||(u&&s.injectJSON(u),n.current=true),e?.(s);},[u,e,p]);return jsx("div",{className:b("luthor-preset","luthor-preset-headless-editor","luthor-editor-wrapper","luthor-preset-headless-editor__variant",l,r),"data-editor-theme":v,children:jsx(me,{extensions:j,children:jsx(_e,{initialMode:C,placeholders:w,showLineNumbers:h,onReady:F})})})});J.displayName="HeadlessEditorPreset";var ke={id:"headless-editor",label:"Headless Editor",description:"Headless-style rich editor with text toolbar pills and source tabs.",extensions:sa({featureFlags:B}),components:{Editor:J},toolbar:["bold","italic","strikethrough","code","clearMarks","clearNodes","paragraph","h1","h2","h3","h4","h5","h6","unorderedList","orderedList","codeBlock","quote","horizontalRule","hardBreak","undo","redo"],config:ha("headless-editor","Start writing..."),css:"headless-editor/styles.css"};export{J as a,ke as b};
@@ -1 +1 @@
1
- import {f as f$1,e,d}from'./chunk-5VVQH4YY.js';import {b}from'./chunk-6UNJGUCM.js';import {ha,sa}from'./chunk-4DHY4VVC.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var a=d,f=e,o=forwardRef(({className:l,variantClassName:E,toolbarClassName:m,toolbarLayout:L,initialMode:n="visual",defaultEditorView:c,...p},T)=>jsx(f$1,{ref:T,...p,className:b("luthor-preset-html-editor",l),variantClassName:b("luthor-preset-html-editor__variant",E),toolbarClassName:b("luthor-preset-html-editor__toolbar",m),sourceFormat:"html",initialMode:n,defaultEditorView:c,toolbarLayout:L??f}));o.displayName="HTMLEditor";var _={id:"html-editor",label:"HTML Editor",description:"HTML-focused preset with visual, JSON, and HTML source views.",extensions:sa({featureFlags:a}),components:{Editor:o},toolbar:["undo","redo","blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","bold","italic","strikethrough","code","codeBlock","link","unorderedList","orderedList","checkList","horizontalRule","table","image"],config:ha("html-editor","Write HTML-compatible content..."),css:"html-editor/styles.css"};export{o as a,_ as b};
1
+ import {f as f$1,e,d}from'./chunk-NSEVF7IZ.js';import {b}from'./chunk-3DVRGGFP.js';import {ha,sa}from'./chunk-ZD3C3KYY.js';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var a=d,f=e,o=forwardRef(({className:l,variantClassName:E,toolbarClassName:m,toolbarLayout:L,initialMode:n="visual",defaultEditorView:c,...p},T)=>jsx(f$1,{ref:T,...p,className:b("luthor-preset-html-editor",l),variantClassName:b("luthor-preset-html-editor__variant",E),toolbarClassName:b("luthor-preset-html-editor__toolbar",m),sourceFormat:"html",initialMode:n,defaultEditorView:c,toolbarLayout:L??f}));o.displayName="HTMLEditor";var _={id:"html-editor",label:"HTML Editor",description:"HTML-focused preset with visual, JSON, and HTML source views.",extensions:sa({featureFlags:a}),components:{Editor:o},toolbar:["undo","redo","blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","bold","italic","strikethrough","code","codeBlock","link","unorderedList","orderedList","checkList","horizontalRule","table","image"],config:ha("html-editor","Write HTML-compatible content..."),css:"html-editor/styles.css"};export{o as a,_ as b};
@@ -0,0 +1,18 @@
1
+ import {ImageExtension,TableExtension,IframeEmbedExtension,YouTubeEmbedExtension,ContextMenuExtension,CommandPaletteExtension,SlashCommandExtension,EmojiExtension,DraggableBlockExtension,LinkExtension,textColorExtension,textHighlightExtension,createCustomNodeExtension,createEditorSystem,mergeThemes,defaultLuthorTheme,createEditorThemeStyleVars,FloatingToolbarExtension,FontFamilyExtension,FontSizeExtension,LineHeightExtension,codeExtension,codeIntelligenceExtension,ListExtension,TabIndentExtension,boldExtension,italicExtension,underlineExtension,strikethroughExtension,subscriptExtension,superscriptExtension,horizontalRuleExtension,historyExtension,blockFormatExtension,codeFormatExtension,enterKeyBehaviorExtension,jsonToMarkdown,jsonToHTML,RichText,markdownToJSON,clearLexicalSelection,resolveLinkNodeKeyFromAnchor,htmlToJSON}from'@lyfie/luthor-headless';import Ll,{forwardRef,useState,useRef,useMemo,useEffect,useImperativeHandle,createElement,useCallback,useLayoutEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {createPortal}from'react-dom';var gi=Object.defineProperty;var fi=(e,t,n)=>t in e?gi(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var Rs=(e,t,n)=>fi(e,typeof t!="symbol"?t+"":t,n);var $e=["h1","h2","h3","h4","h5","h6"],Ps={sections:[{items:["fontFamily","fontSize","lineHeight","textColor","textHighlight","bold","italic","underline","strikethrough","subscript","superscript","code","link"]},{items:["blockFormat","quote","alignLeft","alignCenter","alignRight","alignJustify","codeBlock"]},{items:["unorderedList","orderedList","checkList","indentList","outdentList"]},{items:["horizontalRule"]},{items:["table"]},{items:["image"]},{items:["emoji"]},{items:["embed"]},{items:["customComponent"]},{items:["undo","redo"]},{items:["commandPalette"]},{items:["themeToggle"]}]},hn={sections:[{items:["undo","redo"]},{items:["fontFamily","blockFormat","fontSize","lineHeight"]},{items:["bold","italic","underline","strikethrough","textColor","textHighlight"]},{items:["alignLeft","alignCenter","alignRight","alignJustify"]},{items:["unorderedList","orderedList","checkList","indentList","outdentList"]},{items:["link"]},{items:["image","table","code","codeBlock","horizontalRule","quote"]},{items:["subscript","superscript","emoji","embed","customComponent"]},{items:["commandPalette","themeToggle"]}]};function hi(e){if(!(e instanceof Element))return false;if(e.closest('[contenteditable="true"]'))return true;let t=e.tagName.toLowerCase();return t==="input"||t==="textarea"||t==="select"}function pi(e,t){return hi(e.target)?So(t):false}function So(e){let t=e.key.toLowerCase();return !(!!e.ctrlKey||!!e.metaKey)||e.altKey?false:t==="b"||t==="i"||t==="u"||t==="k"}function To(e){return typeof e.setCodeLanguage=="function"&&typeof e.autoDetectCodeLanguage=="function"}function bi(e){return typeof e.toggleSubscript=="function"}function yi(e){return typeof e.toggleSuperscript=="function"}function vi(e){return typeof e.insertIframeEmbed=="function"}function Ci(e){return typeof e.insertYouTubeEmbed=="function"}function Ei(e){return typeof e.insertEmoji=="function"}function ki(e){return e.slice(1)}function Li(e){switch(e){case "h1":return "Convert to large heading";case "h2":return "Convert to medium heading";case "h3":return "Convert to small heading";case "h4":return "Convert to heading level 4";case "h5":return "Convert to heading level 5";case "h6":return "Convert to heading level 6"}}function wi(e){if(!e||e.length===0)return [...$e];let t=new Set,n=[];for(let o of e)!$e.includes(o)||t.has(o)||(t.add(o),n.push(o));return n.length>0?n:[...$e]}function jn(e,t){return Ii($n(t),t?.shortcutConfig).filter(o=>!o.condition||o.condition(e))}function ne(e,t){return typeof e[t]=="function"}function pn(e){if(!e||e.length===0)return new Set;let t=e.map(n=>n.trim()).filter(n=>n.length>0);return new Set(t)}function Ti(e){if(!e)return {allowlist:new Set,denylist:new Set};if(Array.isArray(e)){let n=[];for(let o of e)for(let[i,r]of Object.entries(o))r&&n.push(i);return {allowlist:pn(n),denylist:new Set}}let t=e;return {allowlist:pn(t.allowlist),denylist:pn(t.denylist)}}function xo(e){let t=e.key.trim();return t?{key:t,ctrlKey:!!e.ctrlKey,metaKey:!!e.metaKey,shiftKey:!!e.shiftKey,altKey:!!e.altKey,preventDefault:e.preventDefault}:null}function Si(e){if(e===false||e===null)return [];let t=Array.isArray(e)?e:[e],n=[];for(let o of t){let i=xo(o);i&&n.push(i);}return n}function xi(e){return [e.key.toLowerCase(),e.ctrlKey?"ctrl":"",e.metaKey?"meta":"",e.shiftKey?"shift":"",e.altKey?"alt":""].join(":")}function Ii(e,t){if(!t)return [...e];let n=pn(t.disabledCommandIds),o=t.bindings,i=t.preventNativeConflicts!==false,r=t.preventCollisions!==false,l=new Set;return e.filter(u=>!n.has(u.id)).map(u=>{let d=u.shortcuts?[...u.shortcuts]:void 0;if(!!o&&Object.prototype.hasOwnProperty.call(o,u.id)&&o){let v=o[u.id],b=v===void 0?[]:Si(v);d=b.length>0?b:void 0;}if(d&&d.length>0){let v=[];for(let b of d){let h=xo(b);if(!h||i&&So(h))continue;let g=xi(h);r&&l.has(g)||(l.add(g),v.push(h));}d=v.length>0?v:void 0;}return {...u,shortcuts:d}})}function $n(e){let t=e?.isFeatureEnabled??(()=>true),n=wi(e?.headingOptions),o=e?.paragraphLabel?.trim()||"Paragraph",i=n.map(r=>{let l=ki(r);return {id:`block.heading${l}`,label:`Heading ${l}`,description:Li(r),category:"Block",action:s=>s.toggleHeading?.(r),shortcuts:[{key:l,ctrlKey:true,altKey:true}],keywords:["heading",r],condition:s=>t("blockFormat")&&ne(s,"toggleHeading")}});return [{id:"format.bold",label:"Toggle Bold",description:"Make text bold or remove bold formatting",category:"Format",action:r=>r.toggleBold?.(),shortcuts:[{key:"b",ctrlKey:true}],keywords:["bold","strong","format"],condition:r=>t("bold")&&ne(r,"toggleBold")},{id:"format.italic",label:"Toggle Italic",description:"Make text italic or remove italic formatting",category:"Format",action:r=>r.toggleItalic?.(),shortcuts:[{key:"i",ctrlKey:true}],keywords:["italic","emphasis","format"],condition:r=>t("italic")&&ne(r,"toggleItalic")},{id:"format.underline",label:"Toggle Underline",description:"Add or remove underline formatting",category:"Format",action:r=>r.toggleUnderline?.(),shortcuts:[{key:"u",ctrlKey:true}],keywords:["underline","format"],condition:r=>t("underline")&&ne(r,"toggleUnderline")},{id:"format.strikethrough",label:"Toggle Strikethrough",description:"Add or remove strikethrough formatting",category:"Format",action:r=>r.toggleStrikethrough?.(),keywords:["strikethrough","format"],condition:r=>t("strikethrough")&&ne(r,"toggleStrikethrough")},{id:"format.subscript",label:"Toggle Subscript",description:"Format text as subscript",category:"Format",action:r=>r.toggleSubscript?.(),keywords:["subscript","format"],condition:r=>t("subscript")&&bi(r)},{id:"format.superscript",label:"Toggle Superscript",description:"Format text as superscript",category:"Format",action:r=>r.toggleSuperscript?.(),keywords:["superscript","format"],condition:r=>t("superscript")&&yi(r)},{id:"format.code",label:"Toggle Inline Code",description:"Format text as inline code",category:"Format",action:r=>r.formatText?.("code"),shortcuts:[{key:"`",ctrlKey:true}],keywords:["code","inline","format"],condition:r=>t("codeFormat")&&ne(r,"formatText")},{id:"block.paragraph",label:o,description:"Convert to paragraph",category:"Block",action:r=>r.toggleParagraph?.(),shortcuts:[{key:"0",ctrlKey:true,altKey:true}],keywords:["paragraph","text"],condition:r=>t("blockFormat")&&ne(r,"toggleParagraph")},...i,{id:"block.quote",label:"Quote",description:"Convert to blockquote",category:"Block",action:r=>r.toggleQuote?.(),keywords:["quote","blockquote"],condition:r=>t("blockFormat")&&ne(r,"toggleQuote")},{id:"block.align-left",label:"Align Left",description:"Align selected blocks to the left",category:"Block",action:r=>r.setTextAlignment?.("left"),keywords:["align","left","text"],condition:r=>t("blockFormat")&&ne(r,"setTextAlignment")},{id:"block.align-center",label:"Align Center",description:"Center-align selected blocks",category:"Block",action:r=>r.setTextAlignment?.("center"),keywords:["align","center","text"],condition:r=>t("blockFormat")&&ne(r,"setTextAlignment")},{id:"block.align-right",label:"Align Right",description:"Align selected blocks to the right",category:"Block",action:r=>r.setTextAlignment?.("right"),keywords:["align","right","text"],condition:r=>t("blockFormat")&&ne(r,"setTextAlignment")},{id:"block.align-justify",label:"Justify",description:"Justify selected blocks",category:"Block",action:r=>r.setTextAlignment?.("justify"),keywords:["align","justify","text"],condition:r=>t("blockFormat")&&ne(r,"setTextAlignment")},{id:"block.codeblock",label:"Code Block",description:"Convert to code block",category:"Block",action:r=>r.toggleCodeBlock?.(),shortcuts:[{key:"`",ctrlKey:true,shiftKey:true}],keywords:["code","block"],condition:r=>t("code")&&ne(r,"toggleCodeBlock")},{id:"block.code-language",label:"Set Code Language",description:"Set language for selected code block",category:"Block",action:r=>{if(!r.setCodeLanguage)return;let l=prompt("Code language (e.g. ts, css, python):")?.trim();l&&r.setCodeLanguage(l);},keywords:["code","language","syntax"],condition:r=>t("codeIntelligence")&&To(r)},{id:"block.code-language.auto",label:"Auto-Detect Code Language",description:"Detect language from selected code block",category:"Block",action:r=>{r.autoDetectCodeLanguage?.();},keywords:["code","language","auto","detect"],condition:r=>t("codeIntelligence")&&To(r)},{id:"list.bullet",label:"Bullet List",description:"Create or toggle bullet list",category:"List",action:r=>r.toggleUnorderedList?.(),shortcuts:[{key:"l",ctrlKey:true,shiftKey:true}],keywords:["list","bullet"],condition:r=>t("list")&&ne(r,"toggleUnorderedList")},{id:"list.numbered",label:"Numbered List",description:"Create or toggle numbered list",category:"List",action:r=>r.toggleOrderedList?.(),shortcuts:[{key:"l",ctrlKey:true,altKey:true}],keywords:["list","numbered"],condition:r=>t("list")&&ne(r,"toggleOrderedList")},{id:"list.check",label:"Checklist",description:"Create or toggle checklist",category:"List",action:r=>r.toggleCheckList?.(),shortcuts:[{key:"x",ctrlKey:true,shiftKey:true}],keywords:["list","check","todo","task"],condition:r=>t("list")&&ne(r,"toggleCheckList")},{id:"link.insert",label:"Insert Link",description:"Insert or edit a link",category:"Insert",action:r=>r.insertLink?.(),shortcuts:[{key:"k",ctrlKey:true}],keywords:["link","url"],condition:r=>t("link")&&ne(r,"insertLink")},{id:"link.remove",label:"Remove Link",description:"Remove link formatting",category:"Format",action:r=>r.removeLink?.(),shortcuts:[{key:"k",ctrlKey:true,shiftKey:true}],keywords:["unlink","remove","link"],condition:r=>t("link")&&ne(r,"removeLink")},{id:"insert.horizontal-rule",label:"Insert Horizontal Rule",description:"Insert a horizontal line separator",category:"Insert",action:r=>r.insertHorizontalRule?.(),keywords:["horizontal","rule","hr","divider","separator"],condition:r=>t("horizontalRule")&&ne(r,"insertHorizontalRule")},{id:"insert.image",label:"Insert Image",description:"Insert an image from URL",category:"Insert",action:r=>{let l=prompt("Enter image URL:");if(l){let s=prompt("Enter alt text:")||"";r.insertImage?.({src:l,alt:s});}},keywords:["image","photo"],condition:r=>t("image")&&ne(r,"insertImage")},{id:"insert.gif",label:"Insert GIF",description:"Insert an animated GIF from URL",category:"Insert",action:r=>{let l=prompt("Enter GIF URL:");l&&r.insertImage?.({src:l,alt:"GIF"});},keywords:["gif","animated","image"],condition:r=>t("image")&&ne(r,"insertImage")},{id:"insert.emoji",label:"Insert Emoji",description:"Insert an emoji character",category:"Insert",action:r=>{let l=prompt("Enter emoji or shortcode (example :sparkles:):")?.trim();if(!l||typeof r.insertEmoji!="function")return;let s=l.match(/^:([a-z0-9_+-]+):$/i);if(s){let u=s[1];if(!u)return;if(typeof r.resolveEmojiShortcode=="function"){let d=r.resolveEmojiShortcode(u);if(d?.emoji){r.insertEmoji(d.emoji);return}}else if(typeof r.getEmojiSuggestions=="function"){let[d]=r.getEmojiSuggestions(u);if(d?.emoji){r.insertEmoji(d.emoji);return}}}r.insertEmoji(l);},keywords:["emoji","reaction","symbol","smile"],condition:r=>t("emoji")&&Ei(r)},{id:"insert.table",label:"Insert Table",description:"Insert a 3x3 table",category:"Insert",action:r=>r.insertTable?.({rows:3,columns:3,includeHeaders:true}),keywords:["table","grid"],condition:r=>t("table")&&ne(r,"insertTable")},{id:"insert.iframe",label:"Insert iframe",description:"Insert an iframe embed from URL",category:"Insert",action:r=>{if(typeof r.insertIframeEmbed!="function")return;let l=prompt("Enter iframe URL:");l&&r.insertIframeEmbed(l);},keywords:["iframe","embed","url"],condition:r=>t("iframeEmbed")&&vi(r)},{id:"insert.youtube",label:"Insert YouTube Video",description:"Insert an embedded YouTube video",category:"Insert",action:r=>{if(typeof r.insertYouTubeEmbed!="function")return;let l=prompt("Enter YouTube URL:");l&&r.insertYouTubeEmbed(l);},keywords:["youtube","video","embed"],condition:r=>t("youTubeEmbed")&&Ci(r)},{id:"edit.undo",label:"Undo",description:"Undo the last action",category:"Edit",action:r=>r.undo?.(),shortcuts:[{key:"z",ctrlKey:true}],keywords:["undo","revert"],condition:r=>t("history")&&ne(r,"undo")},{id:"edit.redo",label:"Redo",description:"Redo the last undone action",category:"Edit",action:r=>r.redo?.(),shortcuts:[{key:"y",ctrlKey:true},{key:"z",ctrlKey:true,shiftKey:true}],keywords:["redo","repeat"],condition:r=>t("history")&&ne(r,"redo")},{id:"palette.show",label:"Show Command Palette",description:"Open the command palette",category:"View",action:r=>r.showCommandPalette?.(),shortcuts:[{key:"p",ctrlKey:true,shiftKey:true}],keywords:["command","palette"],condition:r=>t("commandPalette")&&ne(r,"showCommandPalette")}]}function Io(e,t){let n=t?.commandPaletteShortcutOnly===true;return jn(e,t).filter(o=>!n||!!o.shortcuts&&o.shortcuts.length>0).map(o=>({id:o.id,label:o.label,description:o.description,category:o.category,action:()=>o.action(e),keywords:o.keywords,shortcut:o.shortcuts?.[0]?Mo(o.shortcuts[0]):void 0}))}function Fo(e,t){let n=new Set(["block.paragraph","block.quote","block.codeblock"]),o=s=>s.category==="Insert"||s.category==="List"?true:s.category==="Block"?s.id.startsWith("block.heading")?true:n.has(s.id):false,{allowlist:i,denylist:r}=Ti(t?.slashCommandVisibility),l=i.size>0;return jn(e,t).filter(s=>r.has(s.id)?false:l?i.has(s.id):o(s)).map(s=>({id:s.id,label:s.label,description:s.description,category:s.category,action:()=>s.action(e),keywords:s.keywords,shortcut:s.shortcuts?.[0]?Mo(s.shortcuts[0]):void 0}))}function Mo(e){let t=[];return e.ctrlKey&&t.push("Ctrl"),e.metaKey&&t.push("Cmd"),e.altKey&&t.push("Alt"),e.shiftKey&&t.push("Shift"),t.push(e.key.toUpperCase()),t.join("+")}function Oo(e,t=document.body,n){let o=jn(e,n),i=(l,s)=>l.key.toLowerCase()===s.key.toLowerCase()||s.key==="`"&&l.code==="Backquote",r=l=>{let s=typeof n?.scope=="function"?n.scope():n?.scope;if(!(s&&l.target instanceof Node&&!s.contains(l.target))){for(let u of o)if(u.shortcuts){for(let d of u.shortcuts)if(!(n?.shortcutConfig?.preventNativeConflicts!==false&&pi(l,d))&&i(l,d)&&!!l.ctrlKey==!!d.ctrlKey&&!!l.metaKey==!!d.metaKey&&!!l.shiftKey==!!d.shiftKey&&!!l.altKey==!!d.altKey){d.preventDefault!==false&&l.preventDefault(),(!u.condition||u.condition(e))&&u.action(e);return}}}};return t.addEventListener("keydown",r),()=>t.removeEventListener("keydown",r)}function U(e,t){let n=forwardRef(function({size:i=24,strokeWidth:r=2,...l},s){return jsx("svg",{ref:s,xmlns:"http://www.w3.org/2000/svg",width:i,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...l,children:t})});return n.displayName=e,n}var bn=U("BoldIcon",jsx("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"})),yn=U("ItalicIcon",jsxs(Fragment,{children:[jsx("line",{x1:"19",x2:"10",y1:"4",y2:"4"}),jsx("line",{x1:"14",x2:"5",y1:"20",y2:"20"}),jsx("line",{x1:"15",x2:"9",y1:"4",y2:"20"})]})),vn=U("UnderlineIcon",jsxs(Fragment,{children:[jsx("path",{d:"M6 4v6a6 6 0 0 0 12 0V4"}),jsx("line",{x1:"4",x2:"20",y1:"20",y2:"20"})]})),Cn=U("StrikethroughIcon",jsxs(Fragment,{children:[jsx("path",{d:"M16 4H9a3 3 0 0 0-2.83 4"}),jsx("path",{d:"M14 12a4 4 0 0 1 0 8H6"}),jsx("line",{x1:"4",x2:"20",y1:"12",y2:"12"})]})),En=U("CodeIcon",jsxs(Fragment,{children:[jsx("path",{d:"m16 18 6-6-6-6"}),jsx("path",{d:"m8 6-6 6 6 6"})]})),No=U("CodeBlockIcon",jsxs(Fragment,{children:[jsx("path",{d:"m10 9-3 3 3 3"}),jsx("path",{d:"m14 15 3-3-3-3"}),jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"})]})),Pt=U("LinkIcon",jsxs(Fragment,{children:[jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})),Ft=U("UnlinkIcon",jsxs(Fragment,{children:[jsx("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"}),jsx("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"}),jsx("line",{x1:"8",x2:"8",y1:"2",y2:"5"}),jsx("line",{x1:"2",x2:"5",y1:"8",y2:"8"}),jsx("line",{x1:"16",x2:"16",y1:"19",y2:"22"}),jsx("line",{x1:"19",x2:"22",y1:"16",y2:"16"})]})),Wt=U("ListIcon",jsxs(Fragment,{children:[jsx("path",{d:"M3 5h.01"}),jsx("path",{d:"M3 12h.01"}),jsx("path",{d:"M3 19h.01"}),jsx("path",{d:"M8 5h13"}),jsx("path",{d:"M8 12h13"}),jsx("path",{d:"M8 19h13"})]})),Xt=U("ListCheckIcon",jsxs(Fragment,{children:[jsx("path",{d:"M16 5H3"}),jsx("path",{d:"M16 12H3"}),jsx("path",{d:"M11 19H3"}),jsx("path",{d:"m15 18 2 2 4-4"})]})),Qt=U("ListOrderedIcon",jsxs(Fragment,{children:[jsx("path",{d:"M11 5h10"}),jsx("path",{d:"M11 12h10"}),jsx("path",{d:"M11 19h10"}),jsx("path",{d:"M4 4h1v5"}),jsx("path",{d:"M4 9h2"}),jsx("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"})]})),Ho=U("UndoIcon",jsxs(Fragment,{children:[jsx("path",{d:"M3 7v6h6"}),jsx("path",{d:"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"})]})),Ro=U("RedoIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 7v6h-6"}),jsx("path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"})]})),qn=U("ImageIcon",jsxs(Fragment,{children:[jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),jsx("circle",{cx:"9",cy:"9",r:"2"}),jsx("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]})),zt=U("AlignLeftIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 5H3"}),jsx("path",{d:"M15 12H3"}),jsx("path",{d:"M17 19H3"})]})),Mt=U("AlignCenterIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 5H3"}),jsx("path",{d:"M17 12H7"}),jsx("path",{d:"M19 19H5"})]})),Ao=U("AlignJustifyIcon",jsxs(Fragment,{children:[jsx("path",{d:"M3 5h18"}),jsx("path",{d:"M3 12h18"}),jsx("path",{d:"M3 19h18"})]})),Dt=U("AlignRightIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 5H3"}),jsx("path",{d:"M21 12H9"}),jsx("path",{d:"M21 19H7"})]})),Yn=U("UploadIcon",jsxs(Fragment,{children:[jsx("path",{d:"M12 3v12"}),jsx("path",{d:"m17 8-5-5-5 5"}),jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"})]})),Po=U("MinusIcon",jsx("path",{d:"M5 12h14"})),zo=U("TableIcon",jsxs(Fragment,{children:[jsx("path",{d:"M12 3v18"}),jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}),jsx("path",{d:"M3 9h18"}),jsx("path",{d:"M3 15h18"})]})),Do=U("FileCodeIcon",jsxs(Fragment,{children:[jsx("path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}),jsx("path",{d:"M14 2v5a1 1 0 0 0 1 1h5"}),jsx("path",{d:"M10 12.5 8 15l2 2.5"}),jsx("path",{d:"m14 12.5 2 2.5-2 2.5"})]})),Ks=U("EyeIcon",jsxs(Fragment,{children:[jsx("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}),jsx("circle",{cx:"12",cy:"12",r:"3"})]})),Bo=U("HighlighterIcon",jsxs(Fragment,{children:[jsx("path",{d:"m9 11-6 6v3h9l3-3"}),jsx("path",{d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"})]})),_s=U("PencilIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}),jsx("path",{d:"m15 5 4 4"})]})),kn=U("CommandIcon",jsx("path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"})),Uo=U("PaletteIcon",jsxs(Fragment,{children:[jsx("path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"}),jsx("circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor"}),jsx("circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor"}),jsx("circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor"}),jsx("circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor"})]})),Ko=U("TypeIcon",jsxs(Fragment,{children:[jsx("path",{d:"M12 4v16"}),jsx("path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2"}),jsx("path",{d:"M9 20h6"})]})),Ln=U("QuoteIcon",jsxs(Fragment,{children:[jsx("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"}),jsx("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"})]})),_o=U("IndentIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 5H11"}),jsx("path",{d:"M21 12H11"}),jsx("path",{d:"M21 19H11"}),jsx("path",{d:"m3 8 4 4-4 4"})]})),Vo=U("OutdentIcon",jsxs(Fragment,{children:[jsx("path",{d:"M21 5H11"}),jsx("path",{d:"M21 12H11"}),jsx("path",{d:"M21 19H11"}),jsx("path",{d:"m7 8-4 4 4 4"})]})),jo=U("SunIcon",jsxs(Fragment,{children:[jsx("circle",{cx:"12",cy:"12",r:"4"}),jsx("path",{d:"M12 2v2"}),jsx("path",{d:"M12 20v2"}),jsx("path",{d:"m4.93 4.93 1.41 1.41"}),jsx("path",{d:"m17.66 17.66 1.41 1.41"}),jsx("path",{d:"M2 12h2"}),jsx("path",{d:"M20 12h2"}),jsx("path",{d:"m6.34 17.66-1.41 1.41"}),jsx("path",{d:"m19.07 4.93-1.41 1.41"})]})),$o=U("MoonIcon",jsx("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"})),qo=U("SearchIcon",jsxs(Fragment,{children:[jsx("path",{d:"m21 21-4.34-4.34"}),jsx("circle",{cx:"11",cy:"11",r:"8"})]})),Jn=U("EmojiIcon",jsxs(Fragment,{children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M8 14s1.5 2 4 2 4-2 4-2"}),jsx("line",{x1:"9",x2:"9.01",y1:"9",y2:"9"}),jsx("line",{x1:"15",x2:"15.01",y1:"9",y2:"9"})]})),Yo=U("SubscriptIcon",jsxs(Fragment,{children:[jsx("path",{d:"m4 5 8 8"}),jsx("path",{d:"m12 5-8 8"}),jsx("path",{d:"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07"})]})),Jo=U("SuperscriptIcon",jsxs(Fragment,{children:[jsx("path",{d:"m4 19 8-8"}),jsx("path",{d:"m12 19-8-8"}),jsx("path",{d:"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06"})]})),Bt=U("ChevronDownIcon",jsx("path",{d:"m6 9 6 6 6-6"})),Go=U("CloseIcon",jsxs(Fragment,{children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]}));function Qo({isOpen:e,onClose:t,commands:n}){let[o,i]=useState(""),[r,l]=useState(0),s=useRef(null),u=useRef(null),d=n.filter(b=>`${b.label} ${b.description||""} ${b.keywords?.join(" ")||""}`.toLowerCase().includes(o.toLowerCase())),E=d.reduce((b,h)=>{let g=h.category||"Other";return b[g]||(b[g]=[]),b[g].push(h),b},{}),v=d;return useEffect(()=>{l(0);},[o]),useEffect(()=>{e&&s.current&&(s.current.focus({preventScroll:true}),i(""),l(0));},[e]),useEffect(()=>{if(!e)return;let b=u.current;if(!b)return;b.querySelector(".luthor-command-palette-item.selected")?.scrollIntoView({block:"nearest"});},[e,r,o]),useEffect(()=>{let b=h=>{if(e)switch(h.key){case "Escape":h.preventDefault(),h.stopPropagation(),t();break;case "ArrowDown":h.preventDefault(),h.stopPropagation(),l(g=>Math.min(g+1,v.length-1));break;case "ArrowUp":h.preventDefault(),h.stopPropagation(),l(g=>Math.max(g-1,0));break;case "Enter":h.preventDefault(),h.stopPropagation(),v[r]&&(v[r].action(),t());break}};return document.addEventListener("keydown",b,true),()=>document.removeEventListener("keydown",b,true)},[e,r,v,t]),e?jsx("div",{className:"luthor-command-palette-overlay",onClick:t,children:jsxs("div",{className:"luthor-command-palette",role:"dialog","aria-modal":"true","aria-label":"Command Palette",onClick:b=>b.stopPropagation(),children:[jsxs("div",{className:"luthor-command-palette-header",children:[jsx(qo,{size:16,className:"luthor-command-palette-icon"}),jsx("input",{ref:s,type:"text",placeholder:"Type a command or search...",value:o,onChange:b=>i(b.target.value),className:"luthor-command-palette-input"}),jsx("kbd",{className:"luthor-command-palette-kbd",children:"ESC"})]}),jsx("div",{ref:u,className:"luthor-command-palette-list",children:Object.keys(E).length===0?jsx("div",{className:"luthor-command-palette-empty",children:"No commands found"}):Object.entries(E).map(([b,h])=>jsxs("div",{className:"luthor-command-palette-group",children:[jsx("div",{className:"luthor-command-palette-group-title",children:b}),h.map(g=>{let p=v.indexOf(g);return jsxs("div",{className:`luthor-command-palette-item ${p===r?"selected":""}`,onClick:()=>{g.action(),t();},onMouseEnter:()=>l(p),children:[jsxs("div",{className:"luthor-command-palette-item-content",children:[jsx("div",{className:"luthor-command-palette-item-title",children:g.label}),g.description&&jsx("div",{className:"luthor-command-palette-item-description",children:g.description})]}),g.shortcut&&jsx("kbd",{className:"luthor-command-palette-item-shortcut",children:g.shortcut})]},g.id)})]},b))}),jsx("div",{className:"luthor-command-palette-footer",children:jsxs("span",{className:"luthor-command-palette-hint",children:[jsx(kn,{size:14}),jsx("span",{children:"Use arrow keys, Enter, ESC"})]})})]})}):null}var Mi={"--luthor-bg":"#ffffff","--luthor-fg":"#0f172a","--luthor-border":"#e2e8f0","--luthor-border-hover":"#cbd5e1","--luthor-border-active":"#94a3b8","--luthor-accent":"#0f172a","--luthor-accent-hover":"#1e293b","--luthor-shadow":"rgba(0, 0, 0, 0.08)","--luthor-muted":"#f8fafc","--luthor-muted-fg":"#64748b","--luthor-theme-transition":"0.2s ease","--luthor-drag-gutter-width":"56px","--luthor-line-height-ratio":"1","--luthor-toolbar-bg":"#f8fafc","--luthor-toolbar-section-border":"#e2e8f0","--luthor-toolbar-button-fg":"#0f172a","--luthor-toolbar-button-hover-bg":"#f8fafc","--luthor-toolbar-button-hover-border":"#cbd5e1","--luthor-toolbar-button-hover-shadow":"0 4px 12px rgba(0, 0, 0, 0.15)","--luthor-toolbar-button-press-shadow":"0 2px 8px rgba(0, 0, 0, 0.1)","--luthor-toolbar-button-active-bg":"#0f172a","--luthor-toolbar-button-active-border":"#0f172a","--luthor-toolbar-button-active-fg":"#ffffff","--luthor-toolbar-button-active-shadow":"0 2px 8px rgba(0, 0, 0, 0.2)","--luthor-toolbar-button-overlay":"linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%)","--luthor-toolbar-button-active-overlay":"linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 100%)","--luthor-toolbar-color-indicator-border":"#000000","--luthor-toolbar-highlight-bg":"#f8fafc","--luthor-quote-bg":"#f8fafc","--luthor-quote-fg":"#0f172a","--luthor-quote-border":"#0f172a","--luthor-syntax-comment":"#64748b","--luthor-syntax-keyword":"#64748b","--luthor-syntax-string":"#64748b","--luthor-syntax-number":"#64748b","--luthor-syntax-function":"#64748b","--luthor-syntax-variable":"#64748b","--luthor-floating-bg":"#ffffff","--luthor-floating-fg":"#0f172a","--luthor-floating-border":"#e2e8f0","--luthor-floating-shadow":"rgba(0, 0, 0, 0.08)","--luthor-floating-muted":"#f8fafc","--luthor-floating-border-hover":"#cbd5e1","--luthor-floating-border-active":"#94a3b8","--luthor-floating-accent":"#0f172a","--luthor-floating-accent-fg":"#ffffff","--luthor-z-dropdown":"60","--luthor-z-popover":"64","--luthor-z-menu":"68","--luthor-z-overlay":"72","--luthor-z-modal":"76","--luthor-preset-bg":"#ffffff","--luthor-preset-fg":"#0f172a","--luthor-preset-border":"#dbe2ea","--luthor-preset-muted":"#f8fafc","--luthor-preset-muted-fg":"#64748b","--luthor-preset-accent":"#2563eb","--luthor-preset-radius":"10px","--luthor-preset-shadow":"0 1px 3px rgba(15, 23, 42, 0.08)","--luthor-preset-content-padding":"16px","--luthor-preset-content-min-height":"180px"};function Oi(e){return e?e.closest(".luthor-editor-wrapper"):null}function Ni(e){return e?Oi(e)??e:null}function Hi(e){if(typeof window>"u"||!e)return {};let t=window.getComputedStyle(e),n={};for(let[o,i]of Object.entries(Mi)){let r=t.getPropertyValue(o).trim()||i;n[o]=r;}return n}function qe(e){return Hi(Ni(e))}function Kt(){if(typeof window>"u")return {};let t=window.getSelection()?.anchorNode;if(!t)return {};let n=t.nodeType===Node.ELEMENT_NODE?t:t.parentElement;return qe(n)}function Ot(e){return e?e.closest(".luthor-editor-wrapper")??null:null}function Zo(e,t,n){return e<t?t:e>n?n:e}function Ri(e){if(!e||typeof window>"u"){let n=typeof window>"u"?0:window.innerWidth,o=typeof window>"u"?0:window.innerHeight;return {left:0,top:0,right:n,bottom:o,width:n,height:o}}let t=e.getBoundingClientRect();return {left:t.left,top:t.top,right:t.right,bottom:t.bottom,width:t.width,height:t.height}}function Ai(e,t,n,o,i,r){let l=i==="end"?e.right-t:i==="center"?e.left+e.width/2-t/2:e.left,s=i==="end"?e.left:i==="center"?e.left+e.width/2-t/2:e.right-t,u=l,d=n.left+o,E=Math.max(d,n.right-t-o);if(r){let v=u<d||u>E,b=s>=d&&s<=E;v&&b&&(u=s);}return Zo(u,d,E)}function Pi(e,t,n,o,i,r,l){let s=r==="top"?e.top-t-o:e.bottom+o,u=r==="top"?e.bottom+o:e.top-t-o,d=s,E=n.top+i,v=Math.max(E,n.bottom-t-i);if(l){let b=d<E||d>v,h=u>=E&&u<=v;b&&h&&(d=u);}return Zo(d,E,v)}function ke({anchorRect:e,overlay:t,portalContainer:n=null,gap:o=4,margin:i=8,preferredX:r="start",preferredY:l="bottom",flipX:s=true,flipY:u=true}){let d=Ri(n),E=Math.max(0,d.width-i*2),v=Math.max(0,d.height-i*2),b=Math.max(0,Math.min(t.width,E)),h=Math.max(0,Math.min(t.height,v)),g=Ai(e,b,d,i,r,s),p=Pi(e,h,d,o,i,l,u);if(n){let m=n.getBoundingClientRect();return {position:"absolute",left:g-m.left+n.scrollLeft,top:p-m.top+n.scrollTop,maxWidth:E>0?E:void 0,maxHeight:v>0?v:void 0}}return {position:"fixed",left:g,top:p,maxWidth:E>0?E:void 0,maxHeight:v>0?v:void 0}}function Tn(e,t){return {x:e,y:t,width:1,height:1,left:e,right:e+1,top:t,bottom:t+1,toJSON:()=>({})}}function tr({isOpen:e,query:t,position:n,portalContainer:o,suggestions:i,onClose:r,onExecute:l}){let[s,u]=useState(0),d=useRef(null),[E,v]=useState(void 0);useEffect(()=>{u(0);},[t,e]),useEffect(()=>{if(!e)return;let g=p=>{let m=i.length>0;switch(p.key){case "Escape":p.preventDefault(),p.stopPropagation(),r();break;case "ArrowDown":if(!m)return;p.preventDefault(),p.stopPropagation(),u(I=>Math.min(I+1,Math.max(i.length-1,0)));break;case "ArrowUp":if(!m)return;p.preventDefault(),p.stopPropagation(),u(I=>Math.max(I-1,0));break;case "Enter":case "Tab":if(!m||!i[s])return;p.preventDefault(),p.stopPropagation(),l(i[s].emoji);break}};return document.addEventListener("keydown",g,true),()=>document.removeEventListener("keydown",g,true)},[e,r,l,s,i]);let b=useCallback(g=>{if(!n)return;let p=d.current?.getBoundingClientRect(),m=ke({anchorRect:Tn(n.x,n.y),overlay:{width:p?.width??320,height:p?.height??280},portalContainer:o??null,gap:6,margin:12,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});v({...m,visibility:g?"visible":"hidden",...Kt()});},[o,n]);if(useLayoutEffect(()=>{if(!e||!n)return;b(false);let g=window.requestAnimationFrame(()=>b(true));return ()=>window.cancelAnimationFrame(g)},[e,n,b]),useEffect(()=>{if(!e||!n)return;let g=()=>b(true);return window.addEventListener("resize",g),window.addEventListener("scroll",g,true),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,true);}},[e,n,b]),!e||!n)return null;let h=jsxs("div",{className:"luthor-emoji-menu",ref:d,style:E,onPointerDown:g=>{g.stopPropagation();},onMouseDown:g=>{g.stopPropagation();},children:[jsxs("div",{className:"luthor-emoji-menu-header",children:[jsx("span",{className:"luthor-emoji-menu-title",children:"Emoji"}),jsxs("span",{className:"luthor-emoji-menu-query",children:[":",t]})]}),jsx("div",{className:"luthor-emoji-menu-list",children:i.length===0?jsx("div",{className:"luthor-emoji-menu-empty",children:"No matching emoji"}):i.map((g,p)=>{let m=p===s,I=g.shortcodes[0]?`:${g.shortcodes[0]}:`:"";return jsxs("button",{type:"button",className:`luthor-emoji-menu-item ${m?"selected":""}`,onMouseEnter:()=>u(p),onMouseDown:k=>{k.preventDefault(),k.stopPropagation();},onClick:k=>{k.preventDefault(),k.stopPropagation(),l(g.emoji);},children:[jsx("span",{className:"luthor-emoji-menu-item-symbol","aria-hidden":"true",children:g.emoji}),jsxs("span",{className:"luthor-emoji-menu-item-content",children:[jsx("span",{className:"luthor-emoji-menu-item-title",children:g.label}),I&&jsx("span",{className:"luthor-emoji-menu-item-shortcode",children:I})]})]},`${g.emoji}-${g.label}`)})})]});return typeof document>"u"?h:createPortal(h,o??document.body)}function rr({isOpen:e,query:t,position:n,portalContainer:o,commands:i,onClose:r,onExecute:l}){let[s,u]=useState(0),d=useRef(null),[E,v]=useState(void 0),b=useMemo(()=>{let m=t.trim().toLowerCase();return m?i.filter(I=>`${I.label} ${I.description||""} ${I.keywords?.join(" ")||""}`.toLowerCase().includes(m)):i},[i,t]),h=useMemo(()=>b.reduce((m,I)=>{let k=I.category||"Other";return m[k]||(m[k]=[]),m[k].push(I),m},{}),[b]);useEffect(()=>{u(0);},[t,e]),useEffect(()=>{if(!e)return;let m=I=>{let k=b.length>0;switch(I.key){case "Escape":I.preventDefault(),I.stopPropagation(),r();break;case "ArrowDown":if(!k)return;I.preventDefault(),I.stopPropagation(),u(A=>Math.min(A+1,Math.max(b.length-1,0)));break;case "ArrowUp":if(!k)return;I.preventDefault(),I.stopPropagation(),u(A=>Math.max(A-1,0));break;case "Enter":case "Tab":if(!k||!b[s])return;I.preventDefault(),I.stopPropagation(),l(b[s].id);break}};return document.addEventListener("keydown",m,true),()=>document.removeEventListener("keydown",m,true)},[b,e,r,l,s]);let g=useCallback(m=>{if(!n)return;let I=d.current?.getBoundingClientRect(),k=ke({anchorRect:Tn(n.x,n.y),overlay:{width:I?.width??420,height:I?.height??360},portalContainer:o??null,gap:6,margin:12,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});v({...k,visibility:m?"visible":"hidden",...Kt()});},[o,n]);if(useLayoutEffect(()=>{if(!e||!n)return;g(false);let m=window.requestAnimationFrame(()=>g(true));return ()=>window.cancelAnimationFrame(m)},[e,n,g]),useEffect(()=>{if(!e||!n)return;let m=()=>g(true);return window.addEventListener("resize",m),window.addEventListener("scroll",m,true),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",m,true);}},[e,n,g]),!e||!n)return null;let p=jsxs("div",{className:"luthor-slash-menu",ref:d,style:E,onPointerDown:m=>{m.stopPropagation();},onMouseDown:m=>{m.stopPropagation();},children:[jsxs("div",{className:"luthor-slash-menu-header",children:[jsx("span",{className:"luthor-slash-menu-title",children:"Insert block"}),jsxs("span",{className:"luthor-slash-menu-query",children:["/",t]})]}),jsx("div",{className:"luthor-slash-menu-list",children:b.length===0?jsx("div",{className:"luthor-slash-menu-empty",children:"No matching commands"}):Object.entries(h).map(([m,I])=>jsxs("div",{className:"luthor-slash-menu-group",children:[jsx("div",{className:"luthor-slash-menu-group-title",children:m}),I.map(k=>{let A=b.indexOf(k);return jsxs("button",{type:"button",className:`luthor-slash-menu-item ${A===s?"selected":""}`,onMouseEnter:()=>u(A),onMouseDown:M=>{M.preventDefault(),M.stopPropagation();},onClick:M=>{M.preventDefault(),M.stopPropagation(),l(k.id);},children:[jsxs("span",{className:"luthor-slash-menu-item-content",children:[jsx("span",{className:"luthor-slash-menu-item-title",children:k.label}),k.description&&jsx("span",{className:"luthor-slash-menu-item-description",children:k.description})]}),k.shortcut&&jsx("kbd",{className:"luthor-slash-menu-item-shortcut",children:k.shortcut})]},k.id)})]},m))})]});return typeof document>"u"?p:createPortal(p,o??document.body)}function H({children:e,onClick:t,title:n,active:o,disabled:i,className:r,type:l="button"}){return jsx("button",{type:l,className:`luthor-toolbar-button${o?" active":""}${r?` ${r}`:""}`,onClick:t,title:n,disabled:i,children:e})}function Xn({children:e,onClick:t,variant:n="primary",type:o="button",className:i}){return jsx("button",{type:o,onClick:t,className:`${n==="primary"?"luthor-button-primary":"luthor-button-secondary"}${i?` ${i}`:""}`,children:e})}function on({value:e,onValueChange:t,options:n,placeholder:o="Select..."}){let[i,r]=useState(false),[l,s]=useState(void 0),[u,d]=useState(null),E=useRef(null),v=useRef(null);useEffect(()=>{if(!i)return;let h=()=>{let p=E.current?.querySelector(".luthor-select-trigger");if(!p)return;let m=p.getBoundingClientRect(),I=v.current?.getBoundingClientRect(),k=Math.max(I?.width??0,v.current?.scrollWidth??0),A=Ot(p);d(A);let R=Math.max(m.width,k),M=I?.height??220,ae=ke({anchorRect:m,overlay:{width:R,height:M},portalContainer:A,gap:4,margin:8,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});s({...ae,width:R,...qe(p)});};h();let g=()=>h();return window.addEventListener("resize",g),window.addEventListener("scroll",g,true),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,true),d(null);}},[i]),useLayoutEffect(()=>{if(!i)return;let h=E.current?.querySelector(".luthor-select-trigger");if(!h)return;let g=h.getBoundingClientRect(),p=Ot(h);d(p);let m=ke({anchorRect:g,overlay:{width:g.width,height:220},portalContainer:p,gap:4,margin:8});s({...m,width:g.width,...qe(h)});let I=window.requestAnimationFrame(()=>{let k=v.current?.getBoundingClientRect(),A=Math.max(k?.width??0,v.current?.scrollWidth??0),R=Math.max(g.width,A),M=ke({anchorRect:g,overlay:{width:R,height:k?.height??220},portalContainer:p,gap:4,margin:8});s({...M,width:R,...qe(h)});});return ()=>window.cancelAnimationFrame(I)},[i]),useEffect(()=>{function h(g){let p=g.target;E.current?.contains(p)||v.current?.contains(p)||r(false);}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);let b=n.find(h=>h.value===e);return jsxs("div",{className:"luthor-select",ref:E,children:[jsxs("button",{className:`luthor-select-trigger ${i?"open":""}`,onClick:()=>r(!i),type:"button",children:[jsx("span",{children:b?.label||o}),jsx(Bt,{size:14})]}),i&&typeof document<"u"&&createPortal(jsx("div",{ref:v,className:"luthor-select-dropdown",style:l,children:n.map(h=>jsx("button",{className:`luthor-select-option ${e===h.value?"selected":""}`,onClick:()=>{t(h.value),r(false);},type:"button",children:h.label},h.value))}),u??document.body)]})}function vt({trigger:e,children:t,isOpen:n,onOpenChange:o}){let i=useRef(null),r=useRef(null),l=useRef(null),[s,u]=useState(void 0),[d,E]=useState(null);return useEffect(()=>{if(!n)return;let v=()=>{let h=r.current;if(!h)return;let g=h.getBoundingClientRect(),p=l.current?.getBoundingClientRect(),m=Ot(h);E(m);let I=ke({anchorRect:g,overlay:{width:p?.width??220,height:p?.height??200},portalContainer:m,gap:4,margin:8,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});u({...I,...qe(h)});},b=()=>v();return window.addEventListener("resize",b),window.addEventListener("scroll",b,true),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,true),E(null);}},[n]),useLayoutEffect(()=>{if(!n)return;let v=r.current;if(!v)return;let b=v.getBoundingClientRect(),h=Ot(v);E(h);let g=ke({anchorRect:b,overlay:{width:220,height:200},portalContainer:h,gap:4,margin:8});u({...g,...qe(v)});let p=window.requestAnimationFrame(()=>{let m=l.current?.getBoundingClientRect(),I=ke({anchorRect:b,overlay:{width:m?.width??220,height:m?.height??200},portalContainer:h,gap:4,margin:8});u({...I,...qe(v)});});return ()=>window.cancelAnimationFrame(p)},[n]),useEffect(()=>{function v(b){let h=b.target;i.current?.contains(h)||l.current?.contains(h)||o(false);}return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[o]),jsxs("div",{className:"luthor-dropdown",ref:i,children:[jsx("div",{ref:r,onClick:()=>o(!n),children:e}),n&&typeof document<"u"&&createPortal(jsx("div",{ref:l,className:"luthor-dropdown-content",style:s,children:t}),d??document.body)]})}function ar({isOpen:e,onClose:t,title:n,children:o}){let i=useRef(null);return useEffect(()=>{function r(s){i.current&&!i.current.contains(s.target)&&t();}function l(s){s.key==="Escape"&&t();}return e&&(document.addEventListener("mousedown",r),document.addEventListener("keydown",l)),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("keydown",l);}},[e,t]),e?jsx("div",{className:"luthor-dialog-overlay",children:jsxs("div",{className:"luthor-dialog",ref:i,children:[jsxs("div",{className:"luthor-dialog-header",children:[jsx("h3",{className:"luthor-dialog-title",children:n}),jsx("button",{className:"luthor-dialog-close",onClick:t,type:"button",children:jsx(Go,{size:16})})]}),jsx("div",{className:"luthor-dialog-content",children:o})]})}):null}function sr({isVisible:e,selectionRect:t,commands:n,activeStates:o,editorTheme:i="light",hide:r,isFeatureEnabled:l=()=>true}){let u=useRef(null),[d,E]=useState(""),[v,b]=useState(""),[h,g]=useState(""),[p,m]=useState(""),[I,k]=useState(""),[A,R]=useState(""),[M,ae]=useState(null),[ie,ge]=useState(null),[L,F]=useState(null),T=!!o.isIframeEmbedSelected,S=!!o.isYouTubeEmbedSelected,D=l("iframeEmbed"),V=l("youTubeEmbed"),ue=l("image"),ye=D&&T||V&&S;if(useEffect(()=>{if(!e)return;let P=j=>{let de=j.target;de&&(u.current?.contains(de)||r?.());};return document.addEventListener("mousedown",P,true),document.addEventListener("touchstart",P,true),()=>{document.removeEventListener("mousedown",P,true),document.removeEventListener("touchstart",P,true);}},[e,r]),useEffect(()=>{if(!e||!T)return;let P=false;return typeof n.getIframeEmbedCaption=="function"&&n.getIframeEmbedCaption().then(j=>{P||b(j??"");}),typeof n.getIframeEmbedUrl=="function"&&n.getIframeEmbedUrl().then(j=>{P||E(j??"");}),ae(null),()=>{P=true;}},[n,T,e]),useEffect(()=>{if(!e||!o.imageSelected)return;let P=false;return typeof n.getImageCaption=="function"&&n.getImageCaption().then(j=>{P||g(j??"");}),()=>{P=true;}},[o.imageSelected,n,e]),useEffect(()=>{if(!e||!S)return;let P=false;return typeof n.getYouTubeEmbedCaption=="function"&&n.getYouTubeEmbedCaption().then(j=>{P||m(j??"");}),typeof n.getYouTubeEmbedUrl=="function"&&n.getYouTubeEmbedUrl().then(j=>{P||k(j??"");}),ge(null),()=>{P=true;}},[n,e,S]),useEffect(()=>{if(!e||!o.isLink)return;let P=false;return typeof n.getCurrentLink=="function"&&n.getCurrentLink().then(j=>{!P&&j&&R(j.url??"");}),F(null),()=>{P=true;}},[o.isLink,n,e]),!e||!t)return null;let he={...Kt(),position:"absolute",top:t.y,left:t.positionFromRight?"auto":t.x,right:t.positionFromRight?20:"auto",maxWidth:"calc(100% - 40px)",boxSizing:"border-box",zIndex:"var(--luthor-z-menu, 460)",pointerEvents:"auto"};if(ye){let P=Z=>{if(T){n.setIframeEmbedAlignment?.(Z);return}S&&n.setYouTubeEmbedAlignment?.(Z);},j=T?o.isIframeEmbedAlignedLeft:o.isYouTubeEmbedAlignedLeft,de=T?o.isIframeEmbedAlignedCenter:o.isYouTubeEmbedAlignedCenter,st=T?o.isIframeEmbedAlignedRight:o.isYouTubeEmbedAlignedRight,et=T?typeof n.setIframeEmbedCaption=="function":typeof n.setYouTubeEmbedCaption=="function",He=T?typeof n.updateIframeEmbedUrl=="function":typeof n.updateYouTubeEmbedUrl=="function",Re=T?v:p,ve=T?b:m,ut=T?d:I,ee=T?M:ie,Ue=()=>{if(et){if(T){n.setIframeEmbedCaption?.(v);return}n.setYouTubeEmbedCaption?.(p);}},Se=Z=>{T?ae(Z):ge(Z);},Ge=Z=>{T?E(Z):k(Z);},Ke=()=>{if(!He)return;if(!(T?n.updateIframeEmbedUrl?.(d)??false:n.updateYouTubeEmbedUrl?.(I)??false)){Se(T?"Enter a valid http(s) URL":"Enter a valid YouTube URL"),T&&typeof n.getIframeEmbedUrl=="function"?n.getIframeEmbedUrl().then(Ce=>E(Ce??"")):!T&&typeof n.getYouTubeEmbedUrl=="function"&&n.getYouTubeEmbedUrl().then(Ce=>k(Ce??""));return}Se(null);};return jsxs("div",{className:"luthor-floating-toolbar","data-theme":i,ref:u,style:he,children:[jsx(H,{onClick:()=>P("left"),active:j,title:"Align Left",children:jsx(zt,{size:14})}),jsx(H,{onClick:()=>P("center"),active:de,title:"Align Center",children:jsx(Mt,{size:14})}),jsx(H,{onClick:()=>P("right"),active:st,title:"Align Right",children:jsx(Dt,{size:14})}),et||He?jsxs(Fragment,{children:[jsx("div",{className:"luthor-floating-toolbar-separator"}),jsxs("div",{className:"luthor-floating-toolbar-fields",children:[He?jsxs("div",{className:"luthor-floating-toolbar-field-row",children:[jsx("input",{type:"url",value:ut,className:`luthor-floating-toolbar-input${ee?" is-error":""}`,placeholder:T?"https://example.com/embed":"https://youtube.com/watch?v=...","aria-label":T?"Iframe URL":"YouTube URL","aria-invalid":ee?true:void 0,onChange:Z=>{Ge(Z.target.value),ee&&Se(null);},onBlur:Ke,onKeyDown:Z=>{Z.key==="Enter"&&(Z.preventDefault(),Ke());}}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-floating-toolbar-action luthor-floating-toolbar-action-primary",onClick:Ke,children:"Update URL"})]}):null,et?jsxs("div",{className:"luthor-floating-toolbar-field-row",children:[jsx("input",{type:"text",value:Re,className:"luthor-floating-toolbar-input",placeholder:"Add caption","aria-label":T?"Iframe caption":"YouTube caption",onChange:Z=>ve(Z.target.value),onBlur:Ue,onKeyDown:Z=>{Z.key==="Enter"&&(Z.preventDefault(),Ue());}}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-floating-toolbar-action",onClick:Ue,children:"Update Caption"})]}):null]})]}):null]})}if(ue&&o.imageSelected){let P=typeof n.setImageCaption=="function",j=()=>{P&&n.setImageCaption(h);};return jsxs("div",{className:"luthor-floating-toolbar","data-theme":i,ref:u,style:he,children:[jsx(H,{onClick:()=>n.setImageAlignment("left"),active:o.isImageAlignedLeft,title:"Align Left",children:jsx(zt,{size:14})}),jsx(H,{onClick:()=>n.setImageAlignment("center"),active:o.isImageAlignedCenter,title:"Align Center",children:jsx(Mt,{size:14})}),jsx(H,{onClick:()=>n.setImageAlignment("right"),active:o.isImageAlignedRight,title:"Align Right",children:jsx(Dt,{size:14})}),P?jsxs(Fragment,{children:[jsx("div",{className:"luthor-floating-toolbar-separator"}),jsxs("div",{className:"luthor-floating-toolbar-field-row",children:[jsx("input",{type:"text",value:h,className:"luthor-floating-toolbar-input",placeholder:"Add caption","aria-label":"Image caption",onChange:de=>g(de.target.value),onBlur:j,onKeyDown:de=>{de.key==="Enter"&&(de.preventDefault(),j());}}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-floating-toolbar-action",onClick:j,children:"Update Caption"})]})]}):null]})}let X=l("bold"),Q=l("italic"),W=l("underline"),me=l("strikethrough"),O=l("codeFormat"),Be=!!(o.unorderedList||o.orderedList||o.checkList),Oe=l("blockFormat")&&!Be,pe=l("link"),Ze=l("list")&&!Be,Ye=X||Q||W||me,we=O||Oe||pe,Te=Ze,Je=!!o.isLink&&typeof n.updateLink=="function"&&typeof n.removeLink=="function",Ne=()=>{if(!Je)return;if(!(n.updateLink?.(A)??false)){F("Enter a valid URL"),typeof n.getCurrentLink=="function"&&n.getCurrentLink().then(j=>{R(j?.url??"");});return}F(null);};return !Ye&&!we&&!Te?null:jsxs("div",{className:"luthor-floating-toolbar","data-theme":i,ref:u,style:he,children:[Ye?jsxs(Fragment,{children:[X?jsx(H,{onClick:()=>n.toggleBold(),active:o.bold,title:"Bold",children:jsx(bn,{size:14})}):null,Q?jsx(H,{onClick:()=>n.toggleItalic(),active:o.italic,title:"Italic",children:jsx(yn,{size:14})}):null,W?jsx(H,{onClick:()=>n.toggleUnderline(),active:o.underline,title:"Underline",children:jsx(vn,{size:14})}):null,me?jsx(H,{onClick:()=>n.toggleStrikethrough(),active:o.strikethrough,title:"Strikethrough",children:jsx(Cn,{size:14})}):null]}):null,Ye&&we?jsx("div",{className:"luthor-floating-toolbar-separator"}):null,we?jsxs(Fragment,{children:[O?jsx(H,{onClick:()=>n.formatText("code"),active:o.code,title:"Inline Code",children:jsx(En,{size:14})}):null,Oe?jsx(H,{onClick:()=>n.toggleQuote(),active:o.isQuote,title:"Quote",children:jsx(Ln,{size:14})}):null,pe?jsxs(Fragment,{children:[jsx(H,{onClick:()=>o.isLink?n.removeLink():n.insertLink(),active:o.isLink,title:o.isLink?"Remove Link":"Insert Link",children:o.isLink?jsx(Ft,{size:14}):jsx(Pt,{size:14})}),Je?jsxs("div",{className:"luthor-floating-toolbar-field-row",children:[jsx("input",{type:"url",value:A,className:`luthor-floating-toolbar-input${L?" is-error":""}`,placeholder:"https://example.com","aria-label":"Link URL","aria-invalid":L?true:void 0,onChange:P=>{R(P.target.value),L&&F(null);},onBlur:Ne,onKeyDown:P=>{P.key==="Enter"&&(P.preventDefault(),Ne());}}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-floating-toolbar-action luthor-floating-toolbar-action-primary",onClick:Ne,children:"Update Link"}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-floating-toolbar-action luthor-floating-toolbar-action-danger",onClick:()=>n.removeLink(),"aria-label":"Unlink",children:jsx(Ft,{size:13})})]}):null]}):null]}):null,(Ye||we)&&Te?jsx("div",{className:"luthor-floating-toolbar-separator"}):null,Te?jsxs(Fragment,{children:[jsx(H,{onClick:()=>n.toggleUnorderedList(),active:o.unorderedList,title:"Bullet List",children:jsx(Wt,{size:14})}),jsx(H,{onClick:()=>n.toggleOrderedList(),active:o.orderedList,title:"Numbered List",children:jsx(Qt,{size:14})}),jsx(H,{onClick:()=>n.toggleCheckList(),active:o.checkList,title:"Checklist",children:jsx(Xt,{size:14})})]}):null]})}var lt={commands:{},activeStates:{},editorTheme:"light",isFeatureEnabled:()=>true};function Qn(e,t,n,o=()=>true){lt.commands=e,lt.activeStates=t,lt.editorTheme=n,lt.isFeatureEnabled=o;}function ur(){let e=sr,t=new FloatingToolbarExtension;return t.config={...t.config,render:n=>createElement(e,{...n,commands:lt.commands,activeStates:lt.activeStates,editorTheme:lt.editorTheme,isFeatureEnabled:lt.isFeatureEnabled}),getCommands:()=>lt.commands,getActiveStates:()=>lt.activeStates},t}var Zi=120,el=58;function tl(e,t=el){return e.length<=t?e:`${e.slice(0,t-3)}...`}function cr(){let e=window.getSelection();return !e||e.rangeCount===0?false:!e.getRangeAt(0).collapsed}function dr(e,t){if(!(e instanceof Element))return null;let n=e.closest("a");return !(n instanceof HTMLAnchorElement)||!t.contains(n)?null:n}function fr({editor:e,commands:t,editorTheme:n="light",disabled:o=false}){let i=useRef(null),r=useRef(null),l=useRef(null),s=useRef(null),[u,d]=useState(null),[E,v]=useState(false),[b,h]=useState(""),[g,p]=useState(null),[m,I]=useState(null),[k,A]=useState(null),R=useCallback(()=>{s.current!==null&&(window.clearTimeout(s.current),s.current=null);},[]),M=useCallback(()=>{R(),d(null),v(false),h(""),p(null),I(null);},[R]),ae=useCallback(()=>{R(),s.current=window.setTimeout(()=>{M();},Zi);},[R,M]),ie=useCallback((S,D)=>{let V=S.getBoundingClientRect(),ue=i.current?.getBoundingClientRect(),ye=ke({anchorRect:V,overlay:{width:ue?.width??340,height:ue?.height??48},portalContainer:D,gap:8,margin:10,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});I({top:typeof ye.top=="number"?ye.top:0,left:typeof ye.left=="number"?ye.left:0});},[]),ge=useCallback((S,D)=>{if(typeof t.getLinkByKey!="function"){d(V=>!V||V.nodeKey!==S?V:{...V,url:D});return}t.getLinkByKey(S).then(V=>{if(!V){M();return}d(ue=>!ue||ue.nodeKey!==S?ue:{...ue,url:V.url});});},[t,M]);useEffect(()=>{if(!e||o||typeof window>"u"){M(),A(null),r.current=null;return}let S=e.getRootElement();if(!S){M(),A(null),r.current=null;return}let D=S.closest(".luthor-editor-wrapper")??null;A(D),r.current=D;let V=Q=>{let W=dr(Q.target,S);if(!W)return;if(cr()){M();return}R();let me=resolveLinkNodeKeyFromAnchor(e,W);if(!me)return;let O=W.getAttribute("href")??W.href;d({nodeKey:me,url:O,anchorEl:W}),ie(W,r.current),p(null),E||h(O),ge(me,O);},ue=Q=>{if(!u)return;let W=Q.relatedTarget;W&&i.current?.contains(W)||dr(W,S)||ae();},ye=()=>{cr()&&M();},he=()=>{d(Q=>{if(!Q)return Q;let W=Q.anchorEl.isConnected&&S.contains(Q.anchorEl)?Q.anchorEl:S.querySelector(`a[data-lexical-node-key="${Q.nodeKey}"]`);return W?(ie(W,r.current),{...Q,anchorEl:W,url:W.getAttribute("href")??W.href}):(M(),null)});},X=()=>{l.current===null&&(l.current=window.requestAnimationFrame(()=>{l.current=null,he();}));};return S.addEventListener("mouseover",V),S.addEventListener("mouseout",ue),document.addEventListener("selectionchange",ye),window.addEventListener("scroll",X,true),window.addEventListener("resize",X),()=>{S.removeEventListener("mouseover",V),S.removeEventListener("mouseout",ue),document.removeEventListener("selectionchange",ye),window.removeEventListener("scroll",X,true),window.removeEventListener("resize",X),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),R();}},[t,o,e,u,E,M,ae,ge,ie,R]),useLayoutEffect(()=>{u&&ie(u.anchorEl,r.current);},[u,E,ie]);let L=useMemo(()=>{if(!(!u||!m))return {...qe(u.anchorEl),position:k?"absolute":"fixed",top:m.top,left:m.left,zIndex:"var(--luthor-z-menu, 460)"}},[u,m,k]);if(!u||!m||typeof document>"u")return null;let F=()=>{(t.removeLinkByKey?.(u.nodeKey)??false)&&M();},T=()=>{let S=b.trim();if(!(t.updateLinkByKey?.(u.nodeKey,S)??false)){p("Enter a valid URL"),ge(u.nodeKey,u.url);return}d(V=>!V||V.nodeKey!==u.nodeKey?V:{...V,url:S}),p(null),v(false),queueMicrotask(()=>{ge(u.nodeKey,S);});};return createPortal(jsx("div",{ref:i,className:"luthor-floating-toolbar luthor-link-hover-bubble","data-theme":n,style:L,onMouseEnter:R,onMouseLeave:ae,children:E?jsxs(Fragment,{children:[jsx("input",{type:"url",value:b,className:`luthor-link-hover-bubble-input${g?" is-error":""}`,placeholder:"https://example.com","aria-label":"Edit link URL","aria-invalid":g?true:void 0,onChange:S=>{h(S.target.value),g&&p(null);},onKeyDown:S=>{if(S.key==="Enter"){S.preventDefault(),T();return}S.key==="Escape"&&(S.preventDefault(),v(false),h(u.url),p(null));}}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-link-hover-bubble-button luthor-link-hover-bubble-button-primary",onClick:T,children:"Update"}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-link-hover-bubble-button",onClick:()=>{v(false),h(u.url),p(null);},children:"Cancel"})]}):jsxs(Fragment,{children:[jsx("span",{className:"luthor-link-hover-bubble-url",title:u.url,children:tl(u.url)}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-link-hover-bubble-button",onClick:()=>{h(u.url),v(true),p(null);},children:"Edit"}),jsx("button",{type:"button",className:"luthor-toolbar-button luthor-link-hover-bubble-button luthor-link-hover-bubble-button-danger",onClick:F,"aria-label":"Unlink",children:jsx(Ft,{size:13})})]})}),k??document.body)}var ol=400,rl=14,il=.6,Zn=2;function ll(e){return e?e.split(`
2
+ `):[""]}function eo(e){return Array.from({length:Math.max(1,e)},(t,n)=>`${n+1}`).join(`
3
+ `)}function to(e){let t=Number.parseFloat(e);return Number.isFinite(t)?t:0}function al(e){let n=(to(e.fontSize)||rl)*il;if(typeof document>"u")return n;try{if(!document.body)return n;let o="0000000000",i=document.createElement("span");i.textContent=o,i.style.position="absolute",i.style.visibility="hidden",i.style.whiteSpace="pre",i.style.font=e.font,i.style.fontFamily=e.fontFamily,i.style.fontSize=e.fontSize,i.style.fontWeight=e.fontWeight,i.style.letterSpacing=e.letterSpacing,i.style.lineHeight=e.lineHeight,i.style.padding="0",i.style.border="0",i.style.margin="0",document.body.appendChild(i);let r=i.getBoundingClientRect().width;if(i.remove(),Number.isFinite(r)&&r>0)return r/o.length}catch{return n}return n}function sl(e){let t=window.getComputedStyle(e),n=to(t.paddingLeft)+to(t.paddingRight),o=Math.max(0,e.clientWidth-n);if(o<=0)return 0;let i=al(t);return i<=0?0:Math.max(1,Math.floor(o/i))}function ul(e){let t=window.getComputedStyle(e),n=Number.parseInt(t.tabSize,10);return Number.isFinite(n)&&n>0?n:Zn}function cl(e,t,n){if(t<=0)return 1;let o=0;for(let i of e){if(i===" "){let r=o%n,l=r===0?n:n-r;o+=l;continue}o+=1;}return Math.max(1,Math.ceil(o/t))}function dl(e,t,n){if(t<=0)return eo(e.length);let o=[];for(let i=0;i<e.length;i+=1){o.push(`${i+1}`);let r=cl(e[i]??"",t,n);for(let l=1;l<r;l+=1)o.push("");}return o.join(`
4
+ `)}function Cr({mode:e,onModeChange:t,labels:n,availableModes:o,isConverting:i}){let r=p=>p==="visual"?"visual-editor":p,l=(o??[]).includes("visual-editor")?"visual-editor":"visual",s=p=>p==="visual-editor"?l:p,u=["visual-only","visual-editor","json","markdown","html"],d=o??["visual-only","visual-editor","json","markdown","html"],E=new Set(d.map(r)),v=u.filter(p=>E.has(p)),b=r(e),h=i?r(i):null,g={"visual-only":n?.["visual-only"]??"Visual Only","visual-editor":n?.["visual-editor"]??n?.visual??"Visual Editor",json:n?.json??"JSON",markdown:n?.markdown??"Markdown",html:n?.html??"HTML"};return jsx("div",{className:"luthor-mode-tabs",children:v.map(p=>jsxs("button",{className:`luthor-mode-tab ${b===p?"active":""}`,onClick:()=>t(s(p)),children:[g[p],h===p&&jsx("span",{className:"luthor-tab-converting-spinner"})]},p))})}function xn({value:e,onChange:t,placeholder:n,className:o,wrap:i,showLineNumbers:r=true}){let l=useRef(null),s=useRef(null),u=(i??"off")!=="off",d=useMemo(()=>ll(e),[e]),E=d.length,[v,b]=useState(0),[h,g]=useState(Zn),p=useCallback(()=>{if(!r||!u){b(0),g(Zn);return}let k=l.current;if(!k)return;let A=sl(k),R=ul(k);b(M=>M===A?M:A),g(M=>M===R?M:R);},[u,r]),m=useMemo(()=>!u||v<=0?eo(E):dl(d,v,h),[u,E,d,v,h]),I=`luthor-source-view${o?` ${o}`:""}`;return useLayoutEffect(()=>{let k=l.current;if(!k)return;k.style.height="auto";let A=Math.max(0,k.offsetHeight-k.clientHeight),R=Math.max(k.scrollHeight+A+1,ol);k.style.height=`${R}px`;},[e]),useLayoutEffect(()=>{p();},[p,e]),useEffect(()=>{if(!r||!u)return;let k=l.current;if(!k||typeof ResizeObserver>"u")return;let A=new ResizeObserver(()=>{p();});return A.observe(k),()=>{A.disconnect();}},[u,p,r]),useEffect(()=>{if(!r)return;let k=l.current,A=s.current;if(!k||!A)return;let R=()=>{A.scrollTop=k.scrollTop;};return R(),k.addEventListener("scroll",R,{passive:true}),()=>{k.removeEventListener("scroll",R);}},[m,r]),r?jsxs("div",{className:"luthor-source-view-shell",style:{"--luthor-source-line-number-gutter-width":`${Math.max(2,String(E).length)}ch`},children:[jsx("div",{ref:s,className:"luthor-source-view-line-numbers","aria-hidden":"true",children:m}),jsx("textarea",{ref:l,className:`${I} luthor-source-view--with-line-numbers`,value:e,onChange:k=>t(k.target.value),placeholder:n,spellCheck:false,wrap:i??"off"})]}):jsx("textarea",{ref:l,className:I,value:e,onChange:k=>t(k.target.value),placeholder:n,spellCheck:false,wrap:i??"off"})}function kr(e,t){let n=`luthor-preset-${e}`;return {placeholder:t,classNames:{container:`luthor-preset ${n} ${n}__container`,contentEditable:`luthor-content-editable ${n}__content`,placeholder:`luthor-placeholder ${n}__placeholder`}}}function Fn(e){return e.replace(/\r\n?/g,`
5
+ `)}function ml(e){return e.replace(/&#(9|10|13|32|160);/g,(t,n)=>{switch(n){case "9":return " ";case "10":return `
6
+ `;case "13":return "\r";case "32":return " ";case "160":return " ";default:return t}})}function gl(e,t){let n=t.replace(/([*~])/g,"\\$1"),o=e;return o=o.replace(new RegExp(`${n}(\\s+)([^\\n]+?)${n}`,"g"),(i,r,l)=>`${r}${t}${l}${t}`),o=o.replace(new RegExp(`${n}([^\\n]+?)(\\s+)${n}`,"g"),(i,r,l)=>`${t}${r}${t}${l}`),o}function fl(e){return ["***","**","~~","*"].reduce((n,o)=>gl(n,o),e)}var hl=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),pl=new Set(["pre","script","style","textarea"]),bl=new Set(["address","article","aside","blockquote","details","dialog","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","li","main","menu","nav","ol","p","pre","section","table","tbody","td","tfoot","th","thead","tr","ul"]),yl=1,Mn=3,vl=8;function Lr(e){return e.nodeType===yl}function no(e){return e.nodeType===Mn&&(e.textContent??"").trim().length>0}function In(e){return e.tagName.toLowerCase()}function wr(e){return Array.from(e.childNodes).filter(t=>t.nodeType!==Mn?true:no(t))}function Cl(e){let t=e.outerHTML,n=t.indexOf(">");return n===-1?`<${In(e)}>`:t.slice(0,n+1)}function El(e){let t=In(e);if(hl.has(t)||pl.has(t))return false;let n=wr(e);if(n.length===0||n.some(no))return false;let o=n.filter(Lr);return o.length===0?false:o.every(i=>bl.has(In(i)))}function Tr(e,t){let n=" ".repeat(Math.max(t,0));if(e.nodeType===vl)return `${n}<!--${e.data}-->`;if(e.nodeType===Mn){let r=Fn(e.textContent??"");return r.trim()?`${n}${r.trim()}`:null}if(!Lr(e))return null;if(!El(e))return `${n}${e.outerHTML}`;let o=In(e),i=[`${n}${Cl(e)}`];for(let r of wr(e)){let l=Tr(r,t+1);l&&i.push(l);}return i.push(`${n}</${o}>`),i.join(`
7
+ `)}function kl(e){if(typeof DOMParser>"u")return e;let t=new DOMParser().parseFromString(e,"text/html"),o=Array.from(t.body.childNodes).filter(i=>i.nodeType!==Mn?true:no(i)).map(i=>Tr(i,0)).filter(i=>typeof i=="string"&&i.length>0);return o.length===0?t.body.innerHTML.trim()||e:o.join(`
8
+ `)}function Sr(e){let t=Fn(e).trim();if(!t)return "";try{let n=JSON.parse(t);return JSON.stringify(n,null,2)}catch{return t}}function xr(e){return fl(ml(Fn(e))).trim()}function Ir(e){let t=Fn(e).trim();if(!t)return "";try{return kl(t)}catch{return t}}var ro=6,Sl=["#ffffff","#f2f2f2","#d9d9d9","#bfbfbf","#808080","#404040","#000000","#fbe5d6","#f8cbad","#f4b183","#ed7d31","#c55a11","#fff2cc","#ffe699","#ffd966","#ffc000","#bf9000","#7f6000","#e2f0d9","#c6e0b4","#a9d18e","#70ad47","#548235","#375623","#ddebf7","#bdd7ee","#9dc3e6","#5b9bd5","#2f75b5","#1f4e78","#e4dfec","#d9c2e9","#b4a7d6","#8e7cc3","#674ea7","#351c75"],xl=[{title:"1. a. i. style",pattern:"decimal-alpha-roman"},{title:"A. a. i. style",pattern:"upper-alpha-lower-alpha"},{title:"1. 1.1 1.2 style",pattern:"decimal-hierarchical"},{title:"I. A. 1. style",pattern:"upper-roman-upper-alpha"}],Il=[{title:"Dot / Circle / Square",pattern:"disc-circle-square"},{title:"Arrow / Diamond / Dot",pattern:"arrow-diamond-disc"},{title:"Square / Square / Square",pattern:"square-square-square"},{title:"Arrow / Circle / Square",pattern:"arrow-circle-square"}];function Fl(e){switch(e){case "disc-circle-square":return ["disc","circle","square"];case "arrow-diamond-disc":return ["arrow","diamond","disc"];case "square-square-square":return ["square","square","square"];case "arrow-circle-square":return ["arrow","circle","square"]}}function Ml({type:e,cy:t}){switch(e){case "disc":return jsx("circle",{cx:"16",cy:t,r:"3.2",className:"luthor-unordered-variant-marker"});case "circle":return jsx("circle",{cx:"16",cy:t,r:"3.2",className:"luthor-unordered-variant-marker-open"});case "square":return jsx("rect",{x:"12.8",y:t-3.2,width:"6.4",height:"6.4",className:"luthor-unordered-variant-marker"});case "diamond":return jsx("path",{d:`M16 ${t-3.8} L19.8 ${t} L16 ${t+3.8} L12.2 ${t} Z`,className:"luthor-unordered-variant-marker"});case "arrow":return jsx("path",{d:`M11.6 ${t-2.8} L16.8 ${t} L11.6 ${t+2.8} M11.6 ${t} H19.6`,className:"luthor-unordered-variant-arrow"})}}function Ol({pattern:e}){let t=Fl(e),n=[12.5,24.5,36.5,48.5,60.5],o=e==="disc-circle-square"?[0,1,1,2,0]:e==="arrow-diamond-disc"?[0,1,1,2,0]:e==="square-square-square"?[0,1,2,1,0]:[0,1,1,2,0],i=[t[0],t[1],t[1],t[2],t[0]];return jsxs("svg",{width:"94",height:"74",viewBox:"0 0 94 74",role:"img","aria-hidden":"true",className:"luthor-unordered-variant-svg",children:[jsx("rect",{x:"0.5",y:"0.5",width:"93",height:"73",rx:"3",className:"luthor-unordered-variant-frame"}),n.map((r,l)=>{let s=o[l]??0,u=12+s*12,d=24+s*12,E=57-s*10;return jsxs("g",{children:[jsx("g",{transform:`translate(${u-16}, 0)`,children:jsx(Ml,{type:i[l]??t[0],cy:r})}),jsx("rect",{x:d,y:r-2.5,width:E,height:"5",rx:"2.5",className:"luthor-unordered-variant-line"})]},`${e}-row-${l}`)})]})}function Mr({variant:e}){return jsxs("svg",{width:"78",height:"42",viewBox:"0 0 78 42",role:"img","aria-hidden":"true",className:"luthor-checklist-variant-svg",children:[jsx("rect",{x:"0.5",y:"0.5",width:"77",height:"41",rx:"3",className:"luthor-checklist-variant-frame"}),jsx("rect",{x:"10.5",y:"10.5",width:"10",height:"10",rx:"1.5",className:"luthor-checklist-variant-box"}),jsx("rect",{x:"10.5",y:"24.5",width:"10",height:"10",rx:"1.5",className:"luthor-checklist-variant-box"}),jsx("path",{d:"M12.6 29.2l2 2.2 3.8-4.3",className:"luthor-checklist-variant-check"}),jsx("rect",{x:"26.5",y:"11.8",width:"40",height:"6",rx:"2",className:"luthor-checklist-variant-line"}),jsx("rect",{x:"26.5",y:"25.8",width:"40",height:"6",rx:"2",className:"luthor-checklist-variant-line"}),e==="strikethrough"?jsx(Fragment,{children:jsx("line",{x1:"26.5",y1:"28.8",x2:"66.5",y2:"28.8",className:"luthor-checklist-variant-strike"})}):null]})}function Nl({pattern:e}){let t=[12.5,24.5,36.5,48.5,60.5],n=[0,1,1,2,0],o=e==="decimal-alpha-roman"?["1.","a.","b.","i.","2."]:e==="upper-alpha-lower-alpha"?["A.","a.","b.","i.","B."]:e==="decimal-hierarchical"?["1.","1.1.","1.2.","1.2.1.","2."]:["I.","A.","B.","1.","II."];return jsxs("svg",{width:"94",height:"74",viewBox:"0 0 94 74",role:"img","aria-hidden":"true",className:"luthor-ordered-variant-svg",children:[jsx("rect",{x:"0.5",y:"0.5",width:"93",height:"73",rx:"3",className:"luthor-ordered-variant-frame"}),t.map((i,r)=>{let l=n[r]??0,s=9+l*12,u=26+l*12,d=56-l*10;return jsxs("g",{children:[jsx("text",{x:s,y:i+2.8,className:"luthor-ordered-variant-label",children:o[r]}),jsx("rect",{x:u,y:i-2.5,width:d,height:"5",rx:"2.5",className:"luthor-ordered-variant-line"})]},`${e}-ordered-row-${r}`)})]})}function Nn(e){return e.trim().toLowerCase().replace(/\s+/g,"")}function Hl(e,t){let n=Nn(t);for(let o of e)if(Nn(o.value)===n)return o.color;return null}function Rl(e,t,n){if(!e||e==="default")return n;let o=Hl(t,e);return o||e}function Al(e,t){let n=e.trim();return /^#([\da-f]{6})$/i.test(n)?n:/^#([\da-f]{3})$/i.test(n)?`#${n.slice(1).split("").map(i=>`${i}${i}`).join("")}`:t}var io="Inherited",On="16px",lo="1.5";function Le(e){return e.trim().toLowerCase().replace(/\s+/g,"")}function Or(e){let t=e.split(",")[0]??"";return Le(t.replace(/["']/g,""))}function Hn(e){let t=e.trim().toLowerCase().match(/^(-?\d*\.?\d+)px$/);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?n:null}function Ht(){if(typeof window>"u")return null;let t=window.getSelection()?.anchorNode;if(!t)return null;let n=t.nodeType===Node.ELEMENT_NODE?t:t.parentElement;if(!n||!n.closest(".luthor-content-editable"))return null;let i=window.getComputedStyle(n);return {fontFamily:i.fontFamily,fontSize:i.fontSize,lineHeight:i.lineHeight}}function oo(){if(typeof window>"u"||typeof document>"u")return null;let e=document.querySelector(".luthor-content-editable");if(!(e instanceof HTMLElement))return null;let t=window.getComputedStyle(e);return {fontFamily:t.fontFamily,fontSize:t.fontSize,lineHeight:t.lineHeight}}function Nr(e){return (e.split(",")[0]?.trim()??"").replace(/^['"]|['"]$/g,"").trim()}function Pl(e,t){let n=Le(e);if(n&&n!=="inherit"){let i=Nr(e);if(i)return i}return Nr(t?.fontFamily??"")||io}function zl(e,t){let n=Le(e);return n&&n!=="inherit"?e.trim():(t?.fontSize??"").trim()||On}function Dl(e,t){let n=Le(e);return n&&n!=="normal"?e.trim():(t?.lineHeight??"").trim()||lo}function Bl(e,t){if(!e)return null;let n=Or(e);return n?t.find(i=>Le(i.value)===n?true:Or(i.fontFamily)===n)?.value??null:null}function Ul(e,t){if(!e)return null;let n=Le(e),o=t.find(l=>Le(String(l.value))===n?true:Le(String(l.fontSize))===n);if(o)return String(o.value);let i=Hn(e);if(i==null)return null;let r=null;for(let l of t){let s=Hn(String(l.fontSize));if(s==null)continue;let u=Math.abs(s-i);(!r||u<r.distance)&&(r={value:String(l.value),distance:u});}return r?.value??null}function Kl(e,t,n){if(!e)return null;let o=Le(e),i=n.find(d=>Le(d.value)===o?true:Le(d.lineHeight)===o);if(i)return i.value;let r=t?Hn(t):null,l=Hn(e),s=null;if(l!=null&&r!=null&&r>0)s=l/r;else {let d=Number(e);Number.isFinite(d)&&(s=d);}if(s==null)return null;let u=null;for(let d of n){let E=Number(d.lineHeight);if(!Number.isFinite(E))continue;let v=Math.abs(E-s);(!u||v<u.distance)&&(u={value:d.value,distance:v});}return u?.value??null}function Hr({title:e,value:t,options:n,recentColors:o,active:i,fallbackColor:r,highlight:l,onChange:s,onClear:u,onAddRecent:d}){let E=useRef(null),v=useRef(null),b=useRef(null),h=useRef(null),g=useRef(null),[p,m]=useState(false),[I,k]=useState(void 0),[A,R]=useState(null),M=Rl(t,n,r),ae=useMemo(()=>Sl,[]),ie=useMemo(()=>{let F=[...o].slice(0,ro);for(;F.length<ro;)F.push("");return F},[o]);useEffect(()=>()=>{h.current&&window.cancelAnimationFrame(h.current);},[]);let ge=useCallback(F=>{g.current=F,!h.current&&(h.current=window.requestAnimationFrame(()=>{h.current=null,g.current&&(s(g.current),g.current=null);}));},[s]),L=useCallback(F=>{let T=E.current;if(!T)return;let S=T.getBoundingClientRect(),D=v.current?.getBoundingClientRect(),V=Ot(T);R(V);let ue=ke({anchorRect:S,overlay:{width:D?.width??248,height:D?.height??340},portalContainer:V,gap:6,margin:8,preferredX:"start",preferredY:"bottom",flipX:true,flipY:true});k({...ue,visibility:F?"visible":"hidden",...qe(T)});},[]);return useLayoutEffect(()=>{if(!p)return;L(false);let F=window.requestAnimationFrame(()=>{L(true);});return ()=>{window.cancelAnimationFrame(F);}},[p,L]),useEffect(()=>{if(!p)return;let F=D=>{let V=D.target;E.current?.contains(V)||v.current?.contains(V)||m(false);},T=D=>{D.key==="Escape"&&m(false);},S=()=>L(true);return window.addEventListener("resize",S),window.addEventListener("scroll",S,true),document.addEventListener("mousedown",F),document.addEventListener("keydown",T),()=>{window.removeEventListener("resize",S),window.removeEventListener("scroll",S,true),document.removeEventListener("mousedown",F),document.removeEventListener("keydown",T),R(null);}},[p,L]),jsxs(Fragment,{children:[jsxs("button",{ref:E,type:"button",className:`luthor-toolbar-button luthor-color-button${i?" active":""}${l?" is-highlight":""}`,title:e,"aria-label":e,onClick:()=>m(F=>!F),children:[l?jsx(Bo,{size:15,className:"luthor-color-button-highlighter"}):jsx("span",{className:"luthor-color-button-letter",children:"A"}),jsx("span",{className:"luthor-color-button-indicator",style:{backgroundColor:M}})]}),p&&typeof document<"u"&&createPortal(jsxs("div",{ref:v,className:"luthor-color-picker",style:I,children:[jsx("div",{className:"luthor-color-picker-header",children:jsx("span",{className:"luthor-color-picker-title",children:e})}),jsxs("div",{className:"luthor-color-picker-section",children:[jsx("p",{className:"luthor-color-picker-label",children:"Colors"}),jsx("div",{className:"luthor-color-swatch-grid",children:ae.map(F=>jsx("button",{type:"button",className:"luthor-color-swatch",style:{backgroundColor:F},"aria-label":`Use color ${F}`,onClick:()=>{s(F),d(F),m(false);}},F))})]}),jsxs("div",{className:"luthor-color-picker-section",children:[jsx("p",{className:"luthor-color-picker-label",children:"Recent colors"}),jsx("div",{className:"luthor-color-swatch-row",children:ie.map((F,T)=>jsx("button",{type:"button",className:"luthor-color-swatch",style:{backgroundColor:F||"transparent"},"aria-label":F?`Use recent color ${F}`:"Empty recent color slot",disabled:!F,onClick:()=>{F&&(s(F),d(F),m(false));}},`${F||"empty"}-${T}`))})]}),jsxs("div",{className:"luthor-color-picker-footer",children:[jsx("button",{type:"button",className:"luthor-color-picker-clear",onClick:()=>{u(),m(false);},children:"Reset to Default"}),jsxs("button",{type:"button",className:"luthor-color-picker-custom",onClick:()=>b.current?.click(),children:[jsx(Uo,{size:14}),jsx("span",{children:"Custom Color"})]}),jsx("input",{ref:b,type:"color",className:"luthor-color-picker-native luthor-color-picker-native-hidden",value:Al(M,r),onInput:F=>{ge(F.target.value);},onChange:F=>{let T=F.target.value;s(T),d(T);}})]})]}),A??document.body)]})}function _l(e,t){let n=useRef(null),o=useRef(null);return {handlers:useMemo(()=>({insertFromUrl:()=>{let r=prompt("Enter image URL:");if(!r)return;let l=prompt("Enter alt text:")||"",s=prompt("Enter caption (optional):")||void 0;e.insertImage({src:r,alt:l,caption:s});},insertFromFile:()=>n.current?.click(),insertGifFromUrl:()=>{let r=prompt("Enter GIF URL:");if(!r)return;let l=prompt("Enter alt text (optional):")||"GIF";e.insertImage({src:r,alt:l});},insertGifFromFile:()=>o.current?.click(),handleUpload:async r=>{let l=r.target.files?.[0];if(!l)return;let s;if(t)try{s=await t(l);}catch{alert("Failed to upload image");return}else s=URL.createObjectURL(l);e.insertImage({src:s,alt:l.name,file:l}),r.target.value="";},handleGifUpload:async r=>{let l=r.target.files?.[0];if(!l)return;if(!(l.type==="image/gif"||l.name.toLowerCase().endsWith(".gif"))){alert("Please select a GIF file."),r.target.value="";return}let u;if(t)try{u=await t(l);}catch{alert("Failed to upload GIF");return}else u=URL.createObjectURL(l);e.insertImage({src:u,alt:l.name||"GIF",file:l}),r.target.value="";},setAlignment:r=>{e.setImageAlignment(r);},setCaption:()=>{let r=prompt("Enter caption:")||"";e.setImageCaption(r);}}),[e,t]),fileInputRef:n,gifInputRef:o}}function Vl(e){return useMemo(()=>({insertIframe:()=>{let t=prompt("Enter iframe URL:");t&&typeof e.insertIframeEmbed=="function"&&e.insertIframeEmbed(t);},insertYouTube:()=>{let t=prompt("Enter YouTube URL:");t&&typeof e.insertYouTubeEmbed=="function"&&e.insertYouTubeEmbed(t);}}),[e])}function jl(e,t){switch(e){case "fontFamily":return t("fontFamily");case "fontSize":return t("fontSize");case "lineHeight":return t("lineHeight");case "textColor":return t("textColor");case "textHighlight":return t("textHighlight");case "subscript":return t("subscript");case "superscript":return t("superscript");case "blockFormat":case "quote":case "alignLeft":case "alignCenter":case "alignRight":case "alignJustify":return t("blockFormat");case "codeBlock":return t("code");case "unorderedList":case "orderedList":case "checkList":case "indentList":case "outdentList":return t("list");case "horizontalRule":return t("horizontalRule");case "table":return t("table");case "image":return t("image");case "emoji":return t("emoji");case "embed":return t("iframeEmbed")||t("youtubeEmbed");case "undo":case "redo":return t("history");default:return true}}function $l(e,t,n){return jl(e,t)?n?.[e]!==false:false}function ql(e,t,n){return {sections:e.sections.map(o=>({...o,items:o.items.filter(i=>$l(i,t,n))})).filter(o=>o.items.length>0)}}function Rr({commands:e,hasExtension:t,activeStates:n,isDark:o,toggleTheme:i,onCommandPaletteOpen:r,imageUploadHandler:l,classNames:s,toolbarStyleVars:u,layout:d,toolbarVisibility:E,headingOptions:v,paragraphLabel:b,isListStyleDropdownEnabled:h=true}){let{handlers:g,fileInputRef:p,gifInputRef:m}=_l(e,l),I=Vl(e),k=t("iframeEmbed")||t("youtubeEmbed"),A=n.isIframeEmbedSelected||n.isYouTubeEmbedSelected,[R,M]=useState(false),[ae,ie]=useState(false),[ge,L]=useState(false),[F,T]=useState(false),[S,D]=useState(false),[V,ue]=useState(false),[ye,he]=useState(false),[X,Q]=useState(false),[W,me]=useState("default"),[O,Be]=useState([{value:"default",label:io}]),[Oe,pe]=useState("default"),[Ze,Ye]=useState([{value:"default",label:On}]),[we,Te]=useState("default"),[Je,Ne]=useState([{value:"default",label:lo}]),[P,j]=useState("default"),[de,st]=useState([{value:"default",label:"Default",color:"inherit"}]),[et,He]=useState([]),[Re,ve]=useState("default"),[ut,ee]=useState([{value:"default",label:"Default",color:"transparent"}]),[Ue,Se]=useState([]),[Ge,Ke]=useState(0),[_e,Z]=useState({rows:3,columns:3,includeHeaders:false}),Ce=useRef(null),We=useRef("");useEffect(()=>{if(typeof document>"u")return;let y=()=>{Ce.current===null&&(Ce.current=window.requestAnimationFrame(()=>{Ce.current=null;let C=window.getSelection();if(!C||C.rangeCount===0||!C.getRangeAt(0).collapsed)return;let B=Ht();if(!B)return;let K=`${B.fontFamily}|${B.fontSize}|${B.lineHeight}`;K!==We.current&&(We.current=K,Ke(J=>J+1));}));};return document.addEventListener("selectionchange",y),()=>{document.removeEventListener("selectionchange",y),Ce.current!==null&&(cancelAnimationFrame(Ce.current),Ce.current=null);}},[]);let tt=useMemo(()=>t("emoji")?typeof e.getEmojiSuggestions=="function"?e.getEmojiSuggestions(""):typeof e.getEmojiCatalog=="function"?e.getEmojiCatalog():[]:[],[e,t]);useEffect(()=>{if(!t("fontFamily")||typeof e.getFontFamilyOptions!="function")return;let y=Ht()??oo(),C=e.getFontFamilyOptions().map(K=>({value:K.value,label:Le(K.value)==="default"?Pl(K.fontFamily,y):K.label})),B=C.length>0?C:[{value:"default",label:io}];Be(B),me(K=>B.some(J=>J.value===K)?K:"default");},[e,t]),useEffect(()=>{if(!t("fontFamily")||typeof e.getCurrentFontFamily!="function")return;let y=e.getFontFamilyOptions;if(typeof y!="function")return;let C=false;return e.getCurrentFontFamily().then(B=>{if(C)return;if(B&&B!=="default"){me(B);return}let K=Ht(),J=Bl(K?.fontFamily,y());me(J??"default");}),()=>{C=true;}},[n,e,t,Ge]),useEffect(()=>{if(!t("fontSize")||typeof e.getFontSizeOptions!="function")return;let y=Ht()??oo(),C=e.getFontSizeOptions().map(J=>({value:String(J.value).trim(),label:Le(String(J.value))==="default"?zl(String(J.fontSize),y):String(J.label).trim()})).filter(J=>J.value.length>0&&J.label.length>0),B=C.some(J=>Le(J.value)==="default"),K=C.length===0?[{value:"default",label:On}]:B?C:[{value:"default",label:On},...C];Ye(K),pe(J=>K.some(se=>se.value===J)?J:"default");},[e,t]),useEffect(()=>{if(!t("fontSize")||typeof e.getCurrentFontSize!="function")return;let y=e.getFontSizeOptions;if(typeof y!="function")return;let C=false;return e.getCurrentFontSize().then(B=>{if(C)return;if(B&&B!=="default"){pe(B);return}let K=Ht(),J=Ul(K?.fontSize,y());pe(J??"default");}),()=>{C=true;}},[n,e,t,Ge]),useEffect(()=>{if(!t("lineHeight")||typeof e.getLineHeightOptions!="function")return;let y=Ht()??oo(),C=e.getLineHeightOptions().map(K=>({value:K.value,label:Le(K.value)==="default"?Dl(K.lineHeight,y):K.label})),B=C.length>0?C:[{value:"default",label:lo}];Ne(B);},[e,t]),useEffect(()=>{if(!t("lineHeight")||typeof e.getCurrentLineHeight!="function")return;let y=e.getLineHeightOptions;if(typeof y!="function")return;let C=false;return e.getCurrentLineHeight().then(B=>{if(C)return;if(B){Te(B);return}let K=Ht(),J=Kl(K?.lineHeight,K?.fontSize,y());Te(J??"default");}),()=>{C=true;}},[n,e,t,Ge]),useEffect(()=>{if(!t("textColor")||typeof e.getTextColorOptions!="function")return;let y=e.getTextColorOptions().map(C=>({value:C.value,label:C.label,color:C.color}));y.length>0&&st(y);},[e,t]),useEffect(()=>{if(!t("textColor")||typeof e.getCurrentTextColor!="function")return;let y=false;return e.getCurrentTextColor().then(C=>{y||j(C??"default");}),()=>{y=true;}},[n,e,t,Ge]),useEffect(()=>{if(!t("textHighlight")||typeof e.getTextHighlightOptions!="function")return;let y=e.getTextHighlightOptions().map(C=>({value:C.value,label:C.label,color:C.backgroundColor}));y.length>0&&ee(y);},[e,t]),useEffect(()=>{if(!t("textHighlight")||typeof e.getCurrentTextHighlight!="function")return;let y=false;return e.getCurrentTextHighlight().then(C=>{y||ve(C??"default");}),()=>{y=true;}},[n,e,t,Ge]);let ht=useMemo(()=>{if(!v||v.length===0)return [...$e];let y=new Set,C=[];for(let B of v)!$e.includes(B)||y.has(B)||(y.add(B),C.push(B));return C.length>0?C:[...$e]},[v]),Lt=b?.trim()||"Paragraph",nt=useMemo(()=>{let y=ht.map(C=>({value:C,label:`Heading ${C.slice(1)}`}));return [{value:"p",label:Lt},...y]},[ht,Lt]),pt=n.isH1?"h1":n.isH2?"h2":n.isH3?"h3":n.isH4?"h4":n.isH5?"h5":n.isH6?"h6":"p",Ve=nt.some(y=>y.value===pt)?pt:"p",be=y=>{y==="p"?e.toggleParagraph():y.startsWith("h")&&ht.includes(y)&&e.toggleHeading(y);},je=y=>{y==="default"?e.clearFontFamily?.():e.setFontFamily?.(y),me(y);},xe=y=>{y==="default"?e.clearFontSize?.():e.setFontSize?.(y),pe(y);},Xe=y=>{e.setLineHeight?.(y),Te(y);},ct=(y,C)=>{y(B=>{let K=Nn(C),J=B.filter(se=>Nn(se)!==K);return [C,...J].slice(0,ro)});},wt=y=>{if(y==="default"){e.clearTextColor?.(),j("default");return}e.setTextColor?.(y),j(y);},ot=y=>{if(y==="default"){e.clearTextHighlight?.(),ve("default");return}e.setTextHighlight?.(y),ve(y);},Tt=y=>{if(typeof e.setOrderedListPattern=="function"){e.setOrderedListPattern(y);return}e.toggleOrderedList();},bt=y=>{if(typeof e.setUnorderedListPattern=="function"){e.setUnorderedListPattern(y);return}e.toggleUnorderedList();},yt=y=>{if(typeof e.setCheckListVariant=="function"){e.setCheckListVariant(y);return}e.toggleCheckList();},rt=y=>{switch(y){case "fontFamily":return t("fontFamily")?jsx(on,{value:W,onValueChange:je,options:O,placeholder:"Font"},"fontFamily"):null;case "fontSize":return t("fontSize")?jsx(on,{value:Oe,onValueChange:xe,options:Ze,placeholder:"Size"},"fontSize"):null;case "lineHeight":return t("lineHeight")?jsx(on,{value:we,onValueChange:Xe,options:Je,placeholder:"Line"},"lineHeight"):null;case "textColor":return t("textColor")?jsx(Hr,{title:"Text Color",value:P,options:de,recentColors:et,active:n.hasCustomTextColor,fallbackColor:"#0f172a",onChange:wt,onClear:()=>wt("default"),onAddRecent:C=>ct(He,C)},"textColor"):null;case "textHighlight":return t("textHighlight")?jsx(Hr,{title:"Text Highlight",value:Re,options:ut,recentColors:Ue,active:n.hasTextHighlight,fallbackColor:"#fef08a",highlight:true,onChange:ot,onClear:()=>ot("default"),onAddRecent:C=>ct(Se,C)},"textHighlight"):null;case "bold":return jsx(H,{onClick:()=>e.toggleBold(),active:n.bold,title:"Bold (Ctrl+B)",children:jsx(bn,{size:16})},"bold");case "italic":return jsx(H,{onClick:()=>e.toggleItalic(),active:n.italic,title:"Italic (Ctrl+I)",children:jsx(yn,{size:16})},"italic");case "underline":return jsx(H,{onClick:()=>e.toggleUnderline(),active:n.underline,title:"Underline (Ctrl+U)",children:jsx(vn,{size:16})},"underline");case "strikethrough":return jsx(H,{onClick:()=>e.toggleStrikethrough(),active:n.strikethrough,title:"Strikethrough",children:jsx(Cn,{size:16})},"strikethrough");case "subscript":return t("subscript")?jsx(H,{onClick:()=>e.toggleSubscript?.(),active:n.subscript,title:"Subscript",children:jsx(Yo,{size:16})},"subscript"):null;case "superscript":return t("superscript")?jsx(H,{onClick:()=>e.toggleSuperscript?.(),active:n.superscript,title:"Superscript",children:jsx(Jo,{size:16})},"superscript"):null;case "code":return jsx(H,{onClick:()=>e.formatText("code"),active:n.code,title:"Inline Code",children:jsx(En,{size:16})},"code");case "link":return jsx(H,{onClick:()=>n.isLink?e.removeLink():e.insertLink(),active:n.isLink,title:n.isLink?"Remove Link":"Insert Link",children:n.isLink?jsx(Ft,{size:16}):jsx(Pt,{size:16})},"link");case "blockFormat":return t("blockFormat")?jsx(on,{value:Ve,onValueChange:be,options:nt,placeholder:"Format"},"blockFormat"):null;case "quote":return t("blockFormat")?jsx(H,{onClick:()=>e.toggleQuote(),active:n.isQuote,title:"Quote",children:jsx(Ln,{size:16})},"quote"):null;case "alignLeft":return t("blockFormat")?jsx(H,{onClick:()=>e.setTextAlignment("left"),active:n.isTextAlignedLeft,title:"Align Left",children:jsx(zt,{size:16})},"alignLeft"):null;case "alignCenter":return t("blockFormat")?jsx(H,{onClick:()=>e.setTextAlignment("center"),active:n.isTextAlignedCenter,title:"Align Center",children:jsx(Mt,{size:16})},"alignCenter"):null;case "alignRight":return t("blockFormat")?jsx(H,{onClick:()=>e.setTextAlignment("right"),active:n.isTextAlignedRight,title:"Align Right",children:jsx(Dt,{size:16})},"alignRight"):null;case "alignJustify":return t("blockFormat")?jsx(H,{onClick:()=>e.setTextAlignment("justify"),active:n.isTextAlignedJustify,title:"Justify",children:jsx(Ao,{size:16})},"alignJustify"):null;case "codeBlock":return t("code")?jsx(H,{onClick:()=>e.toggleCodeBlock(),active:n.isInCodeBlock,title:"Code Block",children:jsx(No,{size:16})},"codeBlock"):null;case "unorderedList":return t("list")?h?jsxs("div",{className:"luthor-toolbar-split-button",children:[jsx(H,{onClick:()=>e.toggleUnorderedList(),active:n.unorderedList,title:"Bullet List",children:jsx(Wt,{size:16})}),jsx(vt,{trigger:jsx("button",{type:"button",className:`luthor-toolbar-button luthor-toolbar-button-arrow${n.unorderedList?" active":""}`,title:"Bullet List Styles","aria-label":"Bullet List Styles",children:jsx(Bt,{size:12})}),isOpen:S,onOpenChange:D,children:jsx("div",{className:"luthor-unordered-variant-grid",children:Il.map(C=>jsx("button",{className:"luthor-unordered-variant-option",type:"button",title:C.title,"aria-label":C.title,onClick:()=>{bt(C.pattern),D(false);},children:jsx(Ol,{pattern:C.pattern})},C.pattern))})})]},"unorderedList"):jsx(H,{onClick:()=>e.toggleUnorderedList(),active:n.unorderedList,title:"Bullet List",children:jsx(Wt,{size:16})},"unorderedList"):null;case "orderedList":return t("list")?h?jsxs("div",{className:"luthor-toolbar-split-button",children:[jsx(H,{onClick:()=>e.toggleOrderedList(),active:n.orderedList,title:"Numbered List",children:jsx(Qt,{size:16})}),jsx(vt,{trigger:jsx("button",{type:"button",className:`luthor-toolbar-button luthor-toolbar-button-arrow${n.orderedList?" active":""}`,title:"Numbered List Styles","aria-label":"Numbered List Styles",children:jsx(Bt,{size:12})}),isOpen:V,onOpenChange:ue,children:jsx("div",{className:"luthor-ordered-variant-grid",children:xl.map(C=>jsx("button",{className:"luthor-ordered-variant-option",type:"button",title:C.title,"aria-label":C.title,onClick:()=>{Tt(C.pattern),ue(false);},children:jsx(Nl,{pattern:C.pattern})},C.pattern))})})]},"orderedList"):jsx(H,{onClick:()=>e.toggleOrderedList(),active:n.orderedList,title:"Numbered List",children:jsx(Qt,{size:16})},"orderedList"):null;case "checkList":return t("list")?h?jsxs("div",{className:"luthor-toolbar-split-button",children:[jsx(H,{onClick:()=>e.toggleCheckList(),active:n.checkList,title:"Checklist",children:jsx(Xt,{size:16})}),jsx(vt,{trigger:jsx("button",{type:"button",className:`luthor-toolbar-button luthor-toolbar-button-arrow${n.checkList?" active":""}`,title:"Checklist Styles","aria-label":"Checklist Styles",children:jsx(Bt,{size:12})}),isOpen:ye,onOpenChange:he,children:jsxs("div",{className:"luthor-checklist-variant-grid",children:[jsx("button",{className:"luthor-checklist-variant-option",type:"button",title:"Checked = Strike through","aria-label":"Checked = Strike through",onClick:()=>{yt("strikethrough"),he(false);},children:jsx(Mr,{variant:"strikethrough"})}),jsx("button",{className:"luthor-checklist-variant-option",type:"button",title:"Checked = Keep text","aria-label":"Checked = Keep text",onClick:()=>{yt("plain"),he(false);},children:jsx(Mr,{variant:"plain"})})]})})]},"checkList"):jsx(H,{onClick:()=>e.toggleCheckList(),active:n.checkList,title:"Checklist",children:jsx(Xt,{size:16})},"checkList"):null;case "indentList":return t("list")?jsx(H,{onClick:()=>e.indentList(),title:"Indent List",children:jsx(_o,{size:14})},"indentList"):null;case "outdentList":return t("list")?jsx(H,{onClick:()=>e.outdentList(),title:"Outdent List",children:jsx(Vo,{size:14})},"outdentList"):null;case "horizontalRule":return t("horizontalRule")?jsx(H,{onClick:()=>e.insertHorizontalRule(),title:"Insert Horizontal Rule",children:jsx(Po,{size:16})},"horizontalRule"):null;case "table":return t("table")?jsx(H,{onClick:()=>Q(true),title:"Insert Table",children:jsx(zo,{size:16})},"table"):null;case "image":return t("image")?jsxs(Fragment,{children:[jsxs(vt,{trigger:jsx("button",{className:`luthor-toolbar-button ${n.imageSelected?"active":""}`,title:"Insert Image",children:jsx(qn,{size:16})}),isOpen:R,onOpenChange:M,children:[jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.insertFromUrl(),M(false);},children:[jsx(Pt,{size:16}),jsx("span",{children:"From URL"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.insertFromFile(),M(false);},children:[jsx(Yn,{size:16}),jsx("span",{children:"Upload File"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.insertGifFromUrl(),M(false);},children:[jsx(Jn,{size:16}),jsx("span",{children:"Insert GIF URL"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.insertGifFromFile(),M(false);},children:[jsx(Yn,{size:16}),jsx("span",{children:"Upload GIF"})]})]},"image"),n.imageSelected&&jsxs(vt,{trigger:jsx("button",{className:"luthor-toolbar-button",title:"Align Image",children:jsx(Mt,{size:16})}),isOpen:ge,onOpenChange:L,children:[jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.setAlignment("left"),L(false);},children:[jsx(zt,{size:16}),jsx("span",{children:"Align Left"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.setAlignment("center"),L(false);},children:[jsx(Mt,{size:16}),jsx("span",{children:"Align Center"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.setAlignment("right"),L(false);},children:[jsx(Dt,{size:16}),jsx("span",{children:"Align Right"})]}),jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{g.setCaption(),L(false);},children:[jsx(Ko,{size:16}),jsx("span",{children:"Set Caption"})]})]},"imageAlign")]}):null;case "emoji":return !t("emoji")||tt.length===0?null:jsx(vt,{trigger:jsx("button",{className:"luthor-toolbar-button",title:"Insert Emoji",children:jsx(Jn,{size:16})}),isOpen:ae,onOpenChange:ie,children:jsx("div",{className:"luthor-emoji-picker-grid",role:"listbox","aria-label":"Emoji picker",children:tt.map(C=>jsx("button",{type:"button",className:"luthor-emoji-picker-item",title:C.shortcodes[0]?`${C.label} (:${C.shortcodes[0]}:)`:C.label,onClick:()=>{e.insertEmoji?.(C.emoji),ie(false);},children:C.emoji},`${C.emoji}-${C.label}`))})},"emoji");case "embed":return k?jsxs(vt,{trigger:jsx("button",{className:`luthor-toolbar-button ${A?"active":""}`,title:"Insert Embed",children:jsx(Do,{size:16})}),isOpen:F,onOpenChange:T,children:[t("iframeEmbed")?jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{I.insertIframe(),T(false);},children:[jsx(Pt,{size:16}),jsx("span",{children:"Embed iframe"})]}):null,t("youtubeEmbed")?jsxs("button",{className:"luthor-dropdown-item",onClick:()=>{I.insertYouTube(),T(false);},children:[jsx(qn,{size:16}),jsx("span",{children:"Embed YouTube Video"})]}):null]},"embed"):null;case "undo":return t("history")?jsx(H,{onClick:()=>e.undo(),disabled:!n.canUndo,title:"Undo (Ctrl+Z)",children:jsx(Ho,{size:16})},"undo"):null;case "redo":return t("history")?jsx(H,{onClick:()=>e.redo(),disabled:!n.canRedo,title:"Redo (Ctrl+Y)",children:jsx(Ro,{size:16})},"redo"):null;case "commandPalette":return jsx(H,{onClick:()=>r?.(),title:"Command Palette (Ctrl+Shift+P)",children:jsx(kn,{size:16})},"commandPalette");case "themeToggle":return jsx(H,{onClick:i,title:o?"Light Mode":"Dark Mode",children:o?jsx(jo,{size:16}):jsx($o,{size:16})},"themeToggle");default:return null}},it=d??hn,St=useMemo(()=>ql(it,t,E),[it,t,E]);return jsxs(Fragment,{children:[jsx("div",{className:s?.toolbar??"luthor-toolbar",style:u,children:St.sections.map((y,C)=>{let B=y.items.map((K,J)=>{let se=rt(K);return se?Array.isArray(se)?se.map((Ie,xt)=>Ie&&typeof Ie=="object"&&"key"in Ie&&Ie.key!=null?Ie:jsx("span",{children:Ie},`toolbar-item-${C}-${J}-${xt}`)):se.type===Ll.Fragment?jsx("span",{children:se},`toolbar-item-${C}-${J}`):se&&typeof se=="object"&&"key"in se&&se.key!=null?se:jsx("span",{children:se},`toolbar-item-${C}-${J}`):null}).flat().filter(K=>K!==null);return B.length===0?null:jsx("div",{className:s?.section??"luthor-toolbar-section",children:B},C)})}),jsx("input",{ref:p,type:"file",accept:"image/*",onChange:g.handleUpload,className:"luthor-file-input"}),jsx("input",{ref:m,type:"file",accept:"image/gif",onChange:g.handleGifUpload,className:"luthor-file-input"}),jsx(ar,{isOpen:X,onClose:()=>Q(false),title:"Insert Table",children:jsxs("div",{className:"luthor-table-dialog",children:[jsxs("div",{className:"luthor-form-group",children:[jsx("label",{htmlFor:"table-rows",children:"Rows:"}),jsx("input",{id:"table-rows",type:"number",min:"1",max:"20",value:_e.rows,onChange:y=>Z(C=>({...C,rows:parseInt(y.target.value)||1})),className:"luthor-input"})]}),jsxs("div",{className:"luthor-form-group",children:[jsx("label",{htmlFor:"table-columns",children:"Columns:"}),jsx("input",{id:"table-columns",type:"number",min:"1",max:"20",value:_e.columns,onChange:y=>Z(C=>({...C,columns:parseInt(y.target.value)||1})),className:"luthor-input"})]}),jsx("div",{className:"luthor-form-group",children:jsxs("label",{className:"luthor-checkbox-label",children:[jsx("input",{type:"checkbox",checked:_e.includeHeaders||false,onChange:y=>Z(C=>({...C,includeHeaders:y.target.checked})),className:"luthor-checkbox"}),"Include headers"]})}),jsxs("div",{className:"luthor-dialog-actions",children:[jsx(Xn,{variant:"secondary",onClick:()=>Q(false),children:"Cancel"}),jsx(Xn,{variant:"primary",onClick:()=>{e.insertTable(_e),Q(false);},children:"Insert Table"})]})]})})]})}var fo=["bold","italic","underline","strikethrough","fontFamily","fontSize","lineHeight","textColor","textHighlight","subscript","superscript","link","horizontalRule","table","list","history","image","blockFormat","code","codeIntelligence","codeFormat","tabIndent","enterKeyBehavior","iframeEmbed","youTubeEmbed","floatingToolbar","contextMenu","commandPalette","slashCommand","emoji","draggableBlock","customNode","themeToggle"],Kr={bold:true,italic:true,underline:true,strikethrough:true,fontFamily:true,fontSize:true,lineHeight:true,textColor:true,textHighlight:true,subscript:true,superscript:true,link:true,horizontalRule:true,table:true,list:true,history:true,image:true,blockFormat:true,code:true,codeIntelligence:true,codeFormat:true,tabIndent:true,enterKeyBehavior:true,iframeEmbed:true,youTubeEmbed:true,floatingToolbar:true,contextMenu:true,commandPalette:true,slashCommand:true,emoji:true,draggableBlock:true,customNode:true,themeToggle:true};function un(e){let t={...Kr};if(!e)return t;for(let n of fo)typeof e[n]=="boolean"&&(t[n]=e[n]);return t}function _r(e,t){return e[t]!==false}var zr=8,Dr=[{value:"default",label:"Default",fontFamily:"inherit"},{value:"inter",label:"Inter",fontFamily:"'Inter', 'Segoe UI', Arial, sans-serif",cssImportUrl:"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"},{value:"merriweather",label:"Merriweather",fontFamily:"'Merriweather', Georgia, 'Times New Roman', serif",cssImportUrl:"https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700&display=swap"},{value:"jetbrains-mono",label:"JetBrains Mono",fontFamily:"'JetBrains Mono', 'Courier New', monospace",cssImportUrl:"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap"}],ka={value:"default",label:"Default",fontFamily:"inherit"},Br=[{value:"default",label:"Default",fontSize:"inherit"},{value:"12",label:"12px",fontSize:"12px"},{value:"14",label:"14px",fontSize:"14px"},{value:"16",label:"16px",fontSize:"16px"},{value:"18",label:"18px",fontSize:"18px"},{value:"20",label:"20px",fontSize:"20px"},{value:"24",label:"24px",fontSize:"24px"},{value:"32",label:"32px",fontSize:"32px"}],La={value:"default",label:"Default",fontSize:"inherit"},Ur=[{value:"default",label:"Default",lineHeight:"1.5"},{value:"1",label:"1.0",lineHeight:"1"},{value:"1.15",label:"1.15",lineHeight:"1.15"},{value:"1.5",label:"1.5",lineHeight:"1.5"},{value:"1.75",label:"1.75",lineHeight:"1.75"},{value:"2",label:"2.0",lineHeight:"2"}],wa={value:"default",label:"Default",lineHeight:"1.5"},sn="1.5",Ta=1;function Rt(e){return e.trim().toLowerCase()}function Vr(e){return /^[a-z0-9][a-z0-9-]*$/i.test(e)}function Sa(e){return Rt(e)==="default"?true:An(e)!==null}function xa(e){let t=e??Dr,n=new Set,o=[];for(let r of t){let l=r.value.trim(),s=r.label.trim(),u=r.fontFamily.trim();if(!l||!s||!u||!Vr(l))continue;let d=Rt(l);n.has(d)||(n.add(d),o.push({value:l,label:s,fontFamily:u,cssImportUrl:r.cssImportUrl?.trim()||void 0}));}return o.length===0?Dr:o.some(r=>Rt(r.value)==="default")?o:[ka,...o]}function Ia(e){let t=e??Br,n=new Set,o=[];for(let r of t){let l=String(r.value).trim(),s=String(r.label).trim(),u=String(r.fontSize).trim();if(!l||!s||!u||!Vr(l))continue;let d=Rt(l);n.has(d)||(n.add(d),o.push({value:l,label:s,fontSize:u}));}return o.length===0?Br:o.some(r=>Rt(r.value)==="default")?o:[La,...o]}function An(e){let t=e.trim();if(!/^\d*\.?\d+$/.test(t))return null;let n=Number(t);return !Number.isFinite(n)||n<Ta?null:n.toString()}function Fa(e){if(!Number.isFinite(e))return zr;let t=Math.floor(e);return t>=0?t:zr}function Ma(e){return typeof e=="number"?Number.isFinite(e)?An(e.toString())??sn:sn:typeof e=="string"?An(e)??sn:sn}function Oa(e,t=sn){let n=e??Ur,o=new Set,i=[];for(let l of n){let s=String(l.value).trim(),u=String(l.label).trim();if(!s||!u||!Sa(s))continue;let d=Rt(s);if(o.has(d))continue;if(d==="default"){o.add(d),i.push({value:s,label:u,lineHeight:t});continue}let E=An(String(l.lineHeight));E&&(o.add(d),i.push({value:s,label:u,lineHeight:E}));}return i.length===0?Ur:i.some(l=>Rt(l.value)==="default")?i:[{...wa,lineHeight:t},...i]}function kt({children:e}){return jsx("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:e})}var Na=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M3.5 11h17"}),jsx("path",{d:"M10.5 14.5h3"}),jsx("path",{d:"M12 2.8v4.4"}),jsx("path",{d:"M9.8 5h4.4"})]}),Ha=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M3.5 11h17"}),jsx("path",{d:"M10.5 8.5h3"}),jsx("path",{d:"M12 16.8v4.4"}),jsx("path",{d:"M9.8 19h4.4"})]}),Ra=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M11.5 5v14"}),jsx("path",{d:"M7.5 10.5v3"}),jsx("path",{d:"M2.8 12h4.4"}),jsx("path",{d:"M5 9.8v4.4"})]}),Aa=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M12.5 5v14"}),jsx("path",{d:"M16.5 10.5v3"}),jsx("path",{d:"M16.8 12h4.4"}),jsx("path",{d:"M19 9.8v4.4"})]}),Pa=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M3.5 11h17"}),jsx("path",{d:"M9.8 14.8l4.4 4.4"}),jsx("path",{d:"M14.2 14.8l-4.4 4.4"})]}),za=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M12 5v14"}),jsx("path",{d:"M14.8 9.8l4.4 4.4"}),jsx("path",{d:"M19.2 9.8l-4.4 4.4"})]}),Da=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M3.5 10.5h17"}),jsx("path",{d:"M10.5 5v14"}),jsx("path",{d:"M14.8 9.8l4.4 4.4"}),jsx("path",{d:"M19.2 9.8l-4.4 4.4"})]}),Ba=()=>jsxs(kt,{children:[jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"1.5"}),jsx("path",{d:"M3.5 10.5h17"}),jsx("path",{d:"M10.5 5v14"}),jsx("path",{d:"M3.5 8h17"})]}),Pn=new ImageExtension;Pn.config={...Pn.config,uploadHandler:async e=>URL.createObjectURL(e),defaultAlignment:"center",resizable:true,pasteListener:{insert:true,replace:true},debug:false};var ao=new TableExtension;ao.config={...ao.config,enableContextMenu:true,tableBubbleRenderer:({headersEnabled:e,setHeadersEnabled:t,actions:n})=>jsxs(Fragment,{children:[jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Insert row above","aria-label":"Insert row above",onClick:n.insertRowAbove,children:jsx(Na,{})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Insert row below","aria-label":"Insert row below",onClick:n.insertRowBelow,children:jsx(Ha,{})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Insert column left","aria-label":"Insert column left",onClick:n.insertColumnLeft,children:jsx(Ra,{})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Insert column right","aria-label":"Insert column right",onClick:n.insertColumnRight,children:jsx(Aa,{})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Delete selected row","aria-label":"Delete selected row",onClick:n.deleteSelectedRow,children:jsx(Pa,{})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon",title:"Delete selected column","aria-label":"Delete selected column",onClick:n.deleteSelectedColumn,children:jsx(za,{})}),jsx("label",{className:"luthor-table-bubble-checkbox",title:"Use first row as table headers",children:jsx("button",{type:"button",className:`luthor-table-bubble-button luthor-table-bubble-button-icon${e?" luthor-table-bubble-button-active":""}`,title:"Use first row as table headers","aria-label":"Use first row as table headers","aria-pressed":e,onClick:()=>t(!e),children:jsx(Ba,{})})}),jsx("button",{type:"button",className:"luthor-table-bubble-button luthor-table-bubble-button-icon luthor-table-bubble-button-danger",title:"Delete table","aria-label":"Delete table",onClick:n.deleteTable,children:jsx(Da,{})})]})};var so=new IframeEmbedExtension;so.config={...so.config,defaultWidth:720,defaultHeight:405,defaultAlignment:"center"};var uo=new YouTubeEmbedExtension;uo.config={...uo.config,defaultWidth:720,defaultHeight:405,defaultAlignment:"center",nocookie:true,controls:true,rel:1};var Ua=ur(),co=new ContextMenuExtension;co.config={...co.config,preventDefault:true};var Ka=new CommandPaletteExtension,_a=new SlashCommandExtension,Va=new EmojiExtension,mo=new DraggableBlockExtension;mo.config={...mo.config,buttonStackPosition:"left"};var go=new LinkExtension;go.config={...go.config,linkSelectedTextOnPaste:true,autoLinkText:true,autoLinkUrls:true};var ja=textColorExtension.configure({options:[{value:"default",label:"Default",color:"inherit"},{value:"slate",label:"Slate",color:"#334155"},{value:"red",label:"Red",color:"#dc2626"},{value:"orange",label:"Orange",color:"#ea580c"},{value:"green",label:"Green",color:"#16a34a"},{value:"blue",label:"Blue",color:"#2563eb"},{value:"purple",label:"Purple",color:"#7c3aed"}]}),$a=textHighlightExtension.configure({options:[{value:"default",label:"Default",backgroundColor:"transparent"},{value:"yellow",label:"Yellow",backgroundColor:"#fef08a"},{value:"green",label:"Green",backgroundColor:"#bbf7d0"},{value:"blue",label:"Blue",backgroundColor:"#bfdbfe"},{value:"pink",label:"Pink",backgroundColor:"#fbcfe8"},{value:"orange",label:"Orange",backgroundColor:"#fed7aa"}]}),{extension:qa}=createCustomNodeExtension({nodeType:"featureCard",defaultPayload:{title:"AI Draft Block",description:"AI-generated first draft. Review and edit before publishing to customers.",tag:"AI Draft"},render:({payload:e,isSelected:t})=>jsxs("aside",{className:`luthor-extensive-feature-card${t?" is-selected":""}`,children:[jsx("div",{className:"luthor-extensive-feature-card__tag",children:e.tag??"AI Draft"}),jsx("h4",{className:"luthor-extensive-feature-card__title",children:e.title??"Generated Draft"}),jsx("p",{className:"luthor-extensive-feature-card__description",children:e.description??"AI-generated first pass. Review and finalize before sharing."})]})});function jr({fontFamilyOptions:e,fontSizeOptions:t,lineHeightOptions:n,minimumDefaultLineHeight:o,featureFlags:i,isDraggableBoxEnabled:r,scaleByRatio:l,syntaxHighlighting:s,codeHighlightProvider:u,loadCodeHighlightProvider:d,maxAutoDetectCodeLength:E,isCopyAllowed:v,languageOptions:b,showLineNumbers:h,maxListIndentation:g}={}){let p=un(i),m=F=>_r(p,F),I=(r??true)&&m("draggableBlock"),k=Ma(o),A=Fa(g),R=new FontFamilyExtension().configure({options:xa(e),cssLoadStrategy:"on-demand"}),M=new FontSizeExtension().configure({options:Ia(t)}),ae=new LineHeightExtension().configure({options:Oa(n,k),defaultLineHeight:k});Pn.configure({scaleByRatio:l??false}),codeExtension.configure({syntaxHighlighting:s??"auto",provider:u??void 0,loadProvider:d,showLineNumbers:h??true}),codeIntelligenceExtension.configure({provider:u??void 0,loadProvider:d,maxAutoDetectLength:E,isCopyAllowed:v??true,languageOptions:b});let ie=new ListExtension({maxDepth:A+1}),ge=new TabIndentExtension({maxListDepth:A+1}),L=[];return m("bold")&&L.push(boldExtension),m("italic")&&L.push(italicExtension),m("underline")&&L.push(underlineExtension),m("strikethrough")&&L.push(strikethroughExtension),m("fontFamily")&&L.push(R),m("fontSize")&&L.push(M),m("lineHeight")&&L.push(ae),m("textColor")&&L.push(ja),m("textHighlight")&&L.push($a),m("subscript")&&L.push(subscriptExtension),m("superscript")&&L.push(superscriptExtension),m("link")&&L.push(go),m("horizontalRule")&&L.push(horizontalRuleExtension),m("table")&&L.push(ao),m("list")&&L.push(ie),m("history")&&L.push(historyExtension),m("image")&&L.push(Pn),m("blockFormat")&&L.push(blockFormatExtension),m("code")&&L.push(codeExtension),m("codeIntelligence")&&L.push(codeIntelligenceExtension),m("codeFormat")&&L.push(codeFormatExtension),m("tabIndent")&&L.push(ge),m("enterKeyBehavior")&&L.push(enterKeyBehaviorExtension),m("iframeEmbed")&&L.push(so),m("youTubeEmbed")&&L.push(uo),m("floatingToolbar")&&L.push(Ua),m("contextMenu")&&L.push(co),m("commandPalette")&&L.push(Ka),m("slashCommand")&&L.push(_a),m("emoji")&&L.push(Va),I&&L.push(mo),m("customNode")&&L.push(qa),L}function cn(e){return jr(e)}var ho=jr();function $r(e){if(!e)return "__default__";let t=Object.entries(e).filter(([,n])=>typeof n=="string"&&n.trim().length>0).sort(([n],[o])=>n.localeCompare(o));return t.length>0?JSON.stringify(t):"__default__"}function qr(e){if(!e)return;let t={},n=(o,i)=>{typeof i=="string"&&i.trim().length>0&&(t[o]=i.trim());};return n("--luthor-fg",e.font?.color),n("--luthor-text-bold-color",e.font?.boldColor),n("--luthor-link-color",e.link?.color),n("--luthor-list-marker-color",e.list?.markerColor),n("--luthor-list-checkbox-color",e.list?.checkboxColor),n("--luthor-quote-bg",e.quote?.backgroundColor),n("--luthor-quote-fg",e.quote?.color),n("--luthor-quote-border",e.quote?.indicatorColor),n("--luthor-table-border-color",e.table?.borderColor),n("--luthor-table-header-bg",e.table?.headerBackgroundColor),n("--luthor-hr-color",e.hr?.color),n("--luthor-placeholder-color",e.placeholder?.color),n("--luthor-codeblock-bg",e.codeblock?.backgroundColor),n("--luthor-toolbar-bg",e.toolbar?.backgroundColor),Object.keys(t).length>0?t:void 0}function Yr(e){if(!(e instanceof Element))return false;if(e.closest('[contenteditable="true"]'))return true;let t=e.tagName.toLowerCase();return t==="input"||t==="textarea"||t==="select"}function Jr(e,t){if(e.key.toLowerCase()!==t.key.toLowerCase())return false;let n=e.ctrlKey||e.metaKey;return !(!!t.requiresPrimary!==n||!!t.shift!=!!e.shiftKey||!!t.alt!=!!e.altKey)}function Gr(e,t,n){let o={...e??{}};for(let[i,r]of Object.entries(n))(Array.isArray(r)?r:[r]).some(u=>t[u]!==false)||(o[i]=false);return o}function Wr(e,t,n){let o={...e},i=(r,l)=>{t[r]===false&&l();};return i("bold",()=>{o.toggleBold=()=>{};}),i("italic",()=>{o.toggleItalic=()=>{};}),i("underline",()=>{o.toggleUnderline=()=>{};}),i("strikethrough",()=>{o.toggleStrikethrough=()=>{};}),i("codeFormat",()=>{o.formatText=()=>{};}),i("fontFamily",()=>{o.setFontFamily=()=>{},o.clearFontFamily=()=>{};}),i("fontSize",()=>{o.setFontSize=()=>{},o.clearFontSize=()=>{};}),i("lineHeight",()=>{o.setLineHeight=()=>{},o.clearLineHeight=()=>{};}),i("textColor",()=>{o.setTextColor=()=>{},o.clearTextColor=()=>{};}),i("textHighlight",()=>{o.setTextHighlight=()=>{},o.clearTextHighlight=()=>{};}),i("subscript",()=>{o.toggleSubscript=()=>{};}),i("superscript",()=>{o.toggleSuperscript=()=>{};}),i("link",()=>{o.insertLink=()=>{},o.removeLink=()=>{},o.updateLink=()=>false,o.getCurrentLink=async()=>null,o.getLinkByKey=async()=>null,o.updateLinkByKey=()=>false,o.removeLinkByKey=()=>false;}),i("blockFormat",()=>{o.toggleParagraph=()=>{},o.toggleHeading=()=>{},o.toggleQuote=()=>{},o.setTextAlignment=()=>{};}),i("code",()=>{o.toggleCodeBlock=()=>{};}),i("codeIntelligence",()=>{o.setCodeLanguage=()=>{},o.autoDetectCodeLanguage=async()=>null,o.copySelectedCodeBlock=async()=>false;}),i("list",()=>{o.toggleUnorderedList=()=>{},o.toggleOrderedList=()=>{},o.toggleCheckList=()=>{},o.indentList=()=>{},o.outdentList=()=>{};}),i("horizontalRule",()=>{o.insertHorizontalRule=()=>{};}),i("table",()=>{o.insertTable=()=>{};}),i("image",()=>{o.insertImage=()=>{},o.setImageAlignment=()=>{},o.setImageCaption=()=>{},o.getImageCaption=async()=>"";}),i("emoji",()=>{o.insertEmoji=()=>{},o.executeEmojiSuggestion=()=>false,o.closeEmojiSuggestions=()=>{},o.getEmojiSuggestions=()=>[],o.getEmojiCatalog=()=>[],o.resolveEmojiShortcode=()=>null,o.setEmojiCatalog=()=>{},o.setEmojiCatalogAdapter=()=>{},o.getEmojiCatalogAdapter=()=>({search:()=>[],resolveShortcode:()=>null,getAll:()=>[]});}),i("iframeEmbed",()=>{o.insertIframeEmbed=()=>{},o.setIframeEmbedAlignment=()=>{},o.resizeIframeEmbed=()=>{},o.setIframeEmbedCaption=()=>{},o.getIframeEmbedCaption=async()=>"",o.updateIframeEmbedUrl=()=>false,o.getIframeEmbedUrl=async()=>"";}),i("youTubeEmbed",()=>{o.insertYouTubeEmbed=()=>{},o.setYouTubeEmbedAlignment=()=>{},o.resizeYouTubeEmbed=()=>{},o.setYouTubeEmbedCaption=()=>{},o.getYouTubeEmbedCaption=async()=>"",o.updateYouTubeEmbedUrl=()=>false,o.getYouTubeEmbedUrl=async()=>"";}),i("history",()=>{o.undo=()=>{},o.redo=()=>{};}),i("commandPalette",()=>{o.showCommandPalette=()=>{},o.hideCommandPalette=()=>{},o.registerCommand=()=>{},o.unregisterCommand=()=>{};}),i("slashCommand",()=>{o.registerSlashCommand=()=>{},o.unregisterSlashCommand=()=>{},o.setSlashCommands=()=>{},o.closeSlashMenu=()=>{},o.executeSlashCommand=()=>false;}),n&&(o.toggleBold=()=>{},o.toggleItalic=()=>{},o.toggleUnderline=()=>{},o.toggleStrikethrough=()=>{},o.formatText=()=>{},o.setFontFamily=()=>{},o.clearFontFamily=()=>{},o.setFontSize=()=>{},o.clearFontSize=()=>{},o.setLineHeight=()=>{},o.clearLineHeight=()=>{},o.setTextColor=()=>{},o.clearTextColor=()=>{},o.setTextHighlight=()=>{},o.clearTextHighlight=()=>{},o.toggleSubscript=()=>{},o.toggleSuperscript=()=>{},o.insertLink=()=>{},o.removeLink=()=>{},o.updateLink=()=>false,o.toggleParagraph=()=>{},o.toggleHeading=()=>{},o.toggleQuote=()=>{},o.setTextAlignment=()=>{},o.toggleUnorderedList=()=>{},o.toggleOrderedList=()=>{},o.toggleCheckList=()=>{},o.indentList=()=>{},o.outdentList=()=>{},o.insertHorizontalRule=()=>{},o.insertTable=()=>{},o.insertImage=()=>{},o.setImageAlignment=()=>{},o.setImageCaption=()=>{},o.insertIframeEmbed=()=>{},o.setIframeEmbedAlignment=()=>{},o.resizeIframeEmbed=()=>{},o.setIframeEmbedCaption=()=>{},o.updateIframeEmbedUrl=()=>false,o.insertYouTubeEmbed=()=>{},o.setYouTubeEmbedAlignment=()=>{},o.resizeYouTubeEmbed=()=>{},o.setYouTubeEmbedCaption=()=>{},o.updateYouTubeEmbedUrl=()=>false),o}function Xr(e){return new Set(e)}function po(e,t){e.clear();for(let n of t)e.add(n);}function Qr(e,t){return e.has(t)}function Yt(e,t){e.add(t);}var{Provider:ns,useEditor:os}=createEditorSystem(),ti="Write anything...",ni="Enter JSON document content...",oi="Enter Markdown content...",ri="Enter HTML content...",ui=new Set(["auto","scroll","overlay"]),rs={json:"Invalid JSON",markdown:"Invalid Markdown",html:"Invalid HTML"};function mn(e){return e==="visual"?"visual-editor":e}function te(e){return mn(e)==="visual-editor"}function vo(e,t){return e.some(n=>mn(n)===t)}function zn(e){return e==="json"||e==="markdown"||e==="html"}function ci(e){let t=e.overflowY;return t&&t!=="visible"?t:e.overflow||t||"visible"}function is(e){if(typeof e.scrollTo=="function")try{e.scrollTo({top:0,behavior:"auto"});}catch{e.scrollTop=0;return}e.scrollTop!==0&&(e.scrollTop=0);}function ls(e){let t=new Set,n=o=>{o&&t.add(o);};if(n(e),n(e.closest(".luthor-richtext-container")),n(e.closest(".luthor-editor-visual-shell")),n(e.closest(".luthor-editor")),n(e.closest(".luthor-editor-wrapper")),typeof window<"u"){let o=e.parentElement;for(;o&&o!==document.body&&o!==document.documentElement;){let i=ci(window.getComputedStyle(o));ui.has(i)&&n(o),o=o.parentElement;}}t.forEach(o=>{is(o);});}function as(e){if(typeof window<"u"&&typeof window.requestAnimationFrame=="function"){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>e());});return}globalThis.setTimeout(e,0);}function ii(e){if(typeof window>"u")return ()=>{};let t=[],n=e.parentElement;for(;n&&n!==document.body&&n!==document.documentElement;){let o=window.getComputedStyle(n),i=ci(o);if(!ui.has(i)){n=n.parentElement;continue}if(n.scrollHeight>n.clientHeight+1)break;if(i==="auto"||i==="overlay"){t.push({element:n,overflowY:n.style.overflowY}),n.style.overflowY="visible",n=n.parentElement;continue}break}return ()=>{for(let o=t.length-1;o>=0;o-=1){let i=t[o];i&&(i.element.style.overflowY=i.overflowY);}}}function ss(e){if(typeof window>"u")return ()=>{};let t=ii(e),n=()=>{t(),t=ii(e);};return window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n),t();}}function Co(e){let n=e.replace(/\r\n?/g,`
9
+ `).trim().split(/\n{2,}/).map(i=>i.replace(/\s+/g," ").trim()).filter(i=>i.length>0);return {root:{type:"root",version:1,format:"",indent:0,direction:null,children:(n.length>0?n:[""]).map(i=>({type:"paragraph",version:1,format:"",indent:0,direction:null,children:[{type:"text",version:1,text:i,detail:0,format:0,mode:"normal",style:""}]}))}}}var dn=Co("");function li(e,t,n){return n<=t?t:Math.min(n,Math.max(t,e))}function us(e,t){let n=document,o=window.getSelection();if(!o)return false;let i=n.caretPositionFromPoint?.(e,t);if(i){let l=document.createRange();return l.setStart(i.offsetNode,i.offset),l.collapse(true),o.removeAllRanges(),o.addRange(l),true}let r=n.caretRangeFromPoint?.(e,t);return r?(r.collapse(true),o.removeAllRanges(),o.addRange(r),true):false}function cs(e,t,n){let r=Array.from(e.children).filter(E=>E instanceof HTMLElement).reduce((E,v)=>{let b=v.getBoundingClientRect(),h=b.top+b.height/2;if(!E)return v;let g=E.getBoundingClientRect(),p=g.top+g.height/2;return Math.abs(h-n)<Math.abs(p-n)?v:E},null)??e.firstElementChild??e,l=e.getBoundingClientRect(),s=r.getBoundingClientRect(),u=li(t,l.left+1,l.right-1),d=li(n,s.top+1,s.bottom-1);us(u,d);}function ds(e){try{let t=JSON.parse(e);return JSON.stringify(t)}catch{return JSON.stringify(Co(e))}}function Me(e,t,n="preserve",o="luthor"){let i=t??dn;if(e==="json")return Sr(JSON.stringify(i));if(e==="markdown"){let l=o==="lexical-native"?jsonToMarkdown(i,{bridgeFlavor:"lexical-native"}):n==="none"?jsonToMarkdown(i,{metadataMode:"none"}):jsonToMarkdown(i);return xr(l)}let r=n==="none"?jsonToHTML(i,{metadataMode:"none"}):jsonToHTML(i);return Ir(r)}function ai(e){let t=e.replace(/\r\n?/g,`
10
+ `),n=t.split(`
11
+ `);if(n.length<3)return {frontmatter:null,body:t};if((n[0]??"").replace(/^\uFEFF/,"").trim()!=="---")return {frontmatter:null,body:t};let i=-1;for(let l=1;l<n.length;l+=1){let s=(n[l]??"").trim();if(s==="---"||s==="..."){i=l;break}}if(i<2)return {frontmatter:null,body:t};let r=n.slice(1,i).join(`
12
+ `);return /^[^#\n]*:/m.test(r)?{frontmatter:n.slice(0,i+1).join(`
13
+ `).trim(),body:n.slice(i+1).join(`
14
+ `)}:{frontmatter:null,body:t}}function ms(e,t){let n=ai(e);if(!n.frontmatter||ai(t).frontmatter)return t;let i=t.replace(/\r\n?/g,`
15
+ `).trim();return i.length>0?`${n.frontmatter}
16
+
17
+ ${i}`:`${n.frontmatter}
18
+ `}function gs(e){return !e||e.length===0?"__default__":JSON.stringify(e.map(t=>({value:t.value.trim(),label:t.label.trim(),fontFamily:t.fontFamily.trim(),cssImportUrl:t.cssImportUrl?.trim()||""})))}function fs(e){return !e||e.length===0?"__default__":JSON.stringify(e.map(t=>({value:String(t.value).trim(),label:String(t.label).trim(),fontSize:String(t.fontSize).trim()})))}function hs(e){return !e||e.length===0?"__default__":JSON.stringify(e.map(t=>({value:String(t.value).trim(),label:String(t.label).trim(),lineHeight:String(t.lineHeight).trim()})))}function ps(e){if(typeof e=="number")return !Number.isFinite(e)||e<1?"1.5":e.toString();if(typeof e=="string"){let n=e.trim();if(n.length===0)return "1.5";let o=Number(n);return !Number.isFinite(o)||o<1?"1.5":o.toString()}return "1.5"}function bs(e){if(!Number.isFinite(e))return "8";let t=Math.floor(e);return t<0?"8":t.toString()}function yo(e){return $r(e)}function ys(e){if(!e)return "__default__";if(Array.isArray(e))return JSON.stringify({mode:"append",values:e.map(o=>o.trim())});let t=e,n=Array.isArray(t.values)?t.values:[];return JSON.stringify({mode:t.mode??"append",values:n.map(o=>o.trim())})}function vs(e){return qr(e)}function Cs(e){let t=un(e);return JSON.stringify(fo.map(n=>[n,t[n]]))}function si(e){return Yr(e)}var Es=[{feature:"bold",key:"b",requiresPrimary:true},{feature:"italic",key:"i",requiresPrimary:true},{feature:"underline",key:"u",requiresPrimary:true},{feature:"link",key:"k",requiresPrimary:true},{feature:"history",key:"z",requiresPrimary:true},{feature:"history",key:"y",requiresPrimary:true},{feature:"history",key:"z",requiresPrimary:true,shift:true},{feature:"commandPalette",key:"p",requiresPrimary:true,shift:true},{feature:"codeFormat",key:"`",requiresPrimary:true},{feature:"code",key:"`",requiresPrimary:true,shift:true},{feature:"list",key:"l",requiresPrimary:true,shift:true},{feature:"list",key:"l",requiresPrimary:true,alt:true},{feature:"list",key:"x",requiresPrimary:true,shift:true},{feature:"blockFormat",key:"0",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"1",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"2",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"3",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"4",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"5",requiresPrimary:true,alt:true},{feature:"blockFormat",key:"6",requiresPrimary:true,alt:true}];function ks(e,t){return Jr(e,t)}function Ls(e,t,n){return Wr(e,t,n)}var ws={fontFamily:"fontFamily",fontSize:"fontSize",lineHeight:"lineHeight",textColor:"textColor",textHighlight:"textHighlight",bold:"bold",italic:"italic",underline:"underline",strikethrough:"strikethrough",subscript:"subscript",superscript:"superscript",code:"codeFormat",link:"link",blockFormat:"blockFormat",quote:"blockFormat",alignLeft:"blockFormat",alignCenter:"blockFormat",alignRight:"blockFormat",alignJustify:"blockFormat",codeBlock:"code",unorderedList:"list",orderedList:"list",checkList:"list",indentList:"list",outdentList:"list",horizontalRule:"horizontalRule",table:"table",image:"image",emoji:"emoji",embed:["iframeEmbed","youTubeEmbed"],undo:"history",redo:"history",commandPalette:"commandPalette",themeToggle:"themeToggle"};function Ts(e,t){return Gr(e,t,ws)}function Ss(e){if(!e||e.length===0)return [...$e];let t=new Set,n=[];for(let o of e)!$e.includes(o)||t.has(o)||(t.add(o),n.push(o));return n.length>0?n:[...$e]}function xs(e){if(!e)return "__default__";if(Array.isArray(e)){let r=new Set,l=[];for(let s of e)for(let[u,d]of Object.entries(s)){let E=u.trim();!d||!E||r.has(E)||(r.add(E),l.push(E));}return l.length===0?"__default__":JSON.stringify({allowlist:l,denylist:[]})}let t=r=>{if(!r||r.length===0)return [];let l=new Set,s=[];for(let u of r){let d=u.trim();!d||l.has(d)||(l.add(d),s.push(d));}return s},n=e,o=t(n.allowlist),i=t(n.denylist);return o.length===0&&i.length===0?"__default__":JSON.stringify({allowlist:o,denylist:i})}function Is(e){if(!e||e.length===0)return [];let t=new Set,n=[];for(let o of e){let i=o.trim();!i||t.has(i)||(t.add(i),n.push(i));}return n}function Fs(e,t){return e.key.toLowerCase()===t.key.toLowerCase()&&!!e.ctrlKey==!!t.ctrlKey&&!!e.metaKey==!!t.metaKey&&!!e.shiftKey==!!t.shiftKey&&!!e.altKey==!!t.altKey}function Ms(e){if(!e)return "__default__";let t=Array.isArray(e.disabledCommandIds)?[...e.disabledCommandIds].map(o=>o.trim()).filter(o=>o.length>0).sort((o,i)=>o.localeCompare(i)):[],n=e.bindings?Object.entries(e.bindings).map(([o,i])=>{if(i===false||i===null)return [o,false];let l=(Array.isArray(i)?i:[i]).map(s=>({key:s.key.trim(),ctrlKey:!!s.ctrlKey,metaKey:!!s.metaKey,shiftKey:!!s.shiftKey,altKey:!!s.altKey,preventDefault:s.preventDefault})).filter(s=>s.key.length>0).sort((s,u)=>{let d=`${s.key}:${s.ctrlKey?1:0}:${s.metaKey?1:0}:${s.shiftKey?1:0}:${s.altKey?1:0}`,E=`${u.key}:${u.ctrlKey?1:0}:${u.metaKey?1:0}:${u.shiftKey?1:0}:${u.altKey?1:0}`;return d.localeCompare(E)});return l.length===0?[o,false]:[o,l]}).sort(([o],[i])=>o.localeCompare(i)):[];return JSON.stringify({disabledCommandIds:t,bindings:n,preventCollisions:e.preventCollisions!==false,preventNativeConflicts:e.preventNativeConflicts!==false})}function Os({isDark:e,toggleTheme:t,visualPlaceholder:n,jsonPlaceholder:o,markdownPlaceholder:i,htmlPlaceholder:r,initialMode:l,availableModes:s,onReady:u,toolbarLayout:d,toolbarVisibility:E,toolbarPosition:v,toolbarAlignment:b,toolbarClassName:h,toolbarStyleVars:g,isToolbarEnabled:p,isToolbarPinned:m,isEditorViewTabsVisible:I,headingOptions:k,paragraphLabel:A,syncHeadingOptionsWithCommands:R,slashCommandVisibility:M,shortcutConfig:ae,commandPaletteShortcutOnly:ie,isListStyleDropdownEnabled:ge,featureFlags:L,editOnClick:F,sourceMetadataMode:T,markdownBridgeFlavor:S,markdownSourceOfTruth:D,showLineNumbers:V}){let{commands:ue,hasExtension:ye,activeStates:he,lexical:X,extensions:Q,export:W,import:me}=os(),[O,Be]=useState(l),[Oe,pe]=useState({json:"",markdown:"",html:""}),[Ze,Ye]=useState(null),[we,Te]=useState(null),[Je,Ne]=useState({isOpen:false,commands:[]}),[P,j]=useState({isOpen:false,query:"",position:null,commands:[]}),[de,st]=useState({isOpen:false,query:"",position:null,suggestions:[]}),et=useRef(false),He=useMemo(()=>Ss(k),[k]),Re=R?He:void 0,ve=R?A:void 0,ut=he.isInCodeBlock===true,ee=useMemo(()=>Ls(ue,L,ut),[ue,L,ut]),Ue=useMemo(()=>f=>Object.prototype.hasOwnProperty.call(L,f)?L[f]!==false:true,[L]),Se=useMemo(()=>f=>te(O)&&Ue(f),[O,Ue]),Ge=useMemo(()=>Ts(E,L),[E,L]),Ke=L.draggableBlock!==false,_e=xs(M),Z=useRef(M),Ce=useRef(_e),We=Ms(ae),tt=useRef(ae),ht=useRef(We),Lt=useMemo(()=>Is(ae?.disabledCommandIds),[ae?.disabledCommandIds]),nt=useMemo(()=>new Set(Lt),[Lt]),pt=useMemo(()=>nt.size===0?[]:$n({headingOptions:Re,paragraphLabel:ve,isFeatureEnabled:Ue}).filter(f=>nt.has(f.id)).flatMap(f=>f.shortcuts??[]),[nt,Re,ve,Ue]);Ce.current!==_e&&(Ce.current=_e,Z.current=M),ht.current!==We&&(ht.current=We,tt.current=ae);let Ve=useRef(Xr(["visual-editor"])),be=useRef({json:false,markdown:false,html:false}),je=useRef(""),xe=useRef(true),Xe=useRef(false),ct=useRef(false),wt=useRef(0),ot=useRef(null);useEffect(()=>{Qn(ee,he,e?"dark":"light",Se);},[ee,he,e,Se]);let Tt=useMemo(()=>{let f=Qe=>{let It=Me("json",Qe,T,S),Vn=Me("markdown",Qe,T,S),wo=Me("html",Qe,T,S);pe(fn=>fn.json===It&&fn.markdown===Vn&&fn.html===wo?fn:{json:It,markdown:Vn,html:wo}),be.current.json=false,be.current.markdown=false,be.current.html=false,Yt(Ve.current,"json"),Yt(Ve.current,"markdown"),Yt(Ve.current,"html"),D&&(je.current=Vn,xe.current=false);},w=Qe=>{setTimeout(()=>{try{let It=JSON.parse(Qe);me.fromJSON(It),f(It);}catch(It){console.error("Failed to inject JSON:",It);return}},100);},z=()=>{if(!D)return Me("markdown",W.toJSON(),T,S);if(xe.current){let Qe=Me("markdown",W.toJSON(),T,S);je.current=Qe,xe.current=false;}return je.current},$=()=>{let Qe=z();return S==="lexical-native"?markdownToJSON(Qe,{bridgeFlavor:"lexical-native"}):T==="none"?markdownToJSON(Qe,{metadataMode:"none"}):markdownToJSON(Qe)};return {injectJSON:w,getJSON:()=>D?Me("json",$(),T,S):Me("json",W.toJSON()),getMarkdown:()=>z(),getHTML:()=>D?Me("html",$(),T,S):Me("html",W.toJSON(),T,S)}},[W,me,S,D,T]);useEffect(()=>{if(!X||!ee)return;let f=ee,w=Io(f,{headingOptions:Re,paragraphLabel:ve,isFeatureEnabled:Se,shortcutConfig:tt.current,commandPaletteShortcutOnly:ie});typeof f.registerCommand=="function"&&w.forEach(G=>f.registerCommand(G));let z=Fo(f,{headingOptions:Re,paragraphLabel:ve,slashCommandVisibility:Z.current,isFeatureEnabled:Se,shortcutConfig:tt.current});typeof f.setSlashCommands=="function"?f.setSlashCommands(z):z.forEach(G=>f.registerSlashCommand?.(G));let $=Oo(f,document.body,{headingOptions:Re,paragraphLabel:ve,isFeatureEnabled:Se,shortcutConfig:tt.current,scope:()=>X.getRootElement()});return et.current||(et.current=true,u?.(Tt)),()=>{$(),typeof f.unregisterCommand=="function"&&w.forEach(G=>f.unregisterCommand(G.id)),typeof f.setSlashCommands=="function"?f.setSlashCommands([]):z.forEach(G=>f.unregisterSlashCommand?.(G.id));}},[X,ee,Tt,u,Re,ve,_e,We,Se,ie]),useEffect(()=>{let f=()=>X?.getRootElement(),w=Es.filter($=>L[$.feature]===false);if(w.length===0)return;let z=$=>{let G=f();G&&$.target instanceof Node&&!G.contains($.target)||!si($.target)||!w.some(Lo=>ks($,Lo))||($.preventDefault(),$.stopPropagation());};return document.addEventListener("keydown",z,true),()=>{document.removeEventListener("keydown",z,true);}},[X,L]),useEffect(()=>{let f=Q.find(w=>w.name==="commandPalette");if(!(!f||!f.subscribe))return f.subscribe((w,z)=>{let $=z.filter(G=>nt.has(G.id)?false:ie?typeof G.shortcut=="string"&&G.shortcut.trim().length>0:true);Ne({isOpen:te(O)?w:false,commands:$});})},[Q,nt,ie,O]),useEffect(()=>{if(pt.length===0)return;let f=()=>X?.getRootElement(),w=z=>{let $=f();$&&z.target instanceof Node&&!$.contains(z.target)||!si(z.target)||!pt.some(Ee=>Fs(z,Ee))||(z.preventDefault(),z.stopPropagation());};return document.addEventListener("keydown",w,true),()=>{document.removeEventListener("keydown",w,true);}},[X,pt]),useEffect(()=>{let f=Q.find(w=>w.name==="slashCommand");if(!(!f||!f.subscribe))return f.subscribe(w=>{j({isOpen:te(O)?w.isOpen:false,query:te(O)?w.query:"",position:te(O)?w.position:null,commands:te(O)?w.commands:[]});})},[Q,O]),useEffect(()=>{let f=Q.find(w=>w.name==="emoji");if(!(!f||!f.subscribe))return f.subscribe(w=>{st({isOpen:te(O)?w.isOpen:false,query:te(O)?w.query:"",position:te(O)?w.position:null,suggestions:te(O)?w.suggestions:[]});})},[Q,O]),useEffect(()=>{te(O)||(Ne(f=>f.isOpen?{...f,isOpen:false}:f),j(f=>f.isOpen||f.query.length>0||f.position!==null||f.commands.length>0?{isOpen:false,query:"",position:null,commands:[]}:f),st(f=>f.isOpen||f.query.length>0||f.position!==null||f.suggestions.length>0?{isOpen:false,query:"",position:null,suggestions:[]}:f),ee.hideCommandPalette?.(),ee.closeSlashMenu?.(),ee.closeEmojiSuggestions?.());},[O,ee]),useEffect(()=>!X||!W?void 0:X.registerUpdateListener(({dirtyElements:w,dirtyLeaves:z})=>{if((w.size>0||z.size>0)&&(wt.current+=1,po(Ve.current,["visual-editor"]),D)){if(!te(O)||ct.current)return;if(Xe.current){Xe.current=false;return}xe.current=true;}}),[X,W,D,O]);let bt=f=>S==="lexical-native"?markdownToJSON(f,{bridgeFlavor:"lexical-native"}):T==="none"?markdownToJSON(f,{metadataMode:"none"}):markdownToJSON(f),yt=(f,w)=>f==="json"?w.trim()?JSON.parse(w):Co(""):f==="markdown"?bt(w):T==="none"?htmlToJSON(w,{metadataMode:"none"}):htmlToJSON(w),rt=f=>{let w=W.toJSON()??dn;return Me(f,w,T,S)},it=()=>{let f=rt("markdown"),w=ms(je.current,f);return je.current=w,xe.current=false,be.current.markdown=false,Yt(Ve.current,"markdown"),pe(z=>z.markdown===w?z:{...z,markdown:w}),w},St=()=>D?xe.current?it():je.current:rt("markdown"),y=f=>{let w=St(),z=bt(w);return Me(f,z,T,S)},C=f=>{let w=Oe[f],z=yt(f,w),$=D&&f==="markdown";D&&f==="markdown"&&(Xe.current=true),$&&(ct.current=true);try{me.fromJSON(z);}finally{$&&(ct.current=false);}D&&(f==="markdown"?(je.current=w,xe.current=false):xe.current=true),be.current[f]=false,po(Ve.current,["visual-editor"]);},B=(f,w,z)=>{pe($=>({...$,[f]:w})),be.current[f]=z?.dirty===true,D&&f==="markdown"&&(je.current=w,xe.current=false);},K=async f=>{let w=mn(f);if(w===O||!vo(s,w))return;let z=O,$=null;try{if(Te(null),zn(z)){let G=z;be.current[G]&&($=G,C(G),await new Promise(Ee=>setTimeout(Ee,50)),$=null);}if(D&&xe.current&&(te(z)||zn(z)&&z!=="markdown")&&it(),te(z)&&!te(w)&&(X&&clearLexicalSelection(X),X?.getRootElement()?.blur()),Be(w),zn(w)){let G=w;if(!Qr(Ve.current,G)){Ye(G),await new Promise(Ee=>setTimeout(Ee,50));try{$=G;let Ee=D?G==="markdown"?St():y(G):rt(G);B(G,Ee),Yt(Ve.current,G),$=null;}finally{Ye(null);}}}te(w)&&(z==="visual-only"&&ot.current!==null?setTimeout(()=>X?.focus(),100):as(()=>{let Ee=X?.getRootElement();Ee&&ls(Ee);}));}catch(G){let Ee=G instanceof Error?G.message:"Invalid format - could not parse content";$&&typeof window<"u"&&Te({mode:$,error:Ee});}},J=f=>{!F||O!=="visual-only"||!vo(s,"visual-editor")||(ot.current=f,K("visual-editor"));};useEffect(()=>{if(!te(O))return;let f=ot.current;if(!f)return;ot.current=null;let w=()=>{let $=X?.getRootElement();$&&cs($,f.clientX,f.clientY);};if(typeof window<"u"&&typeof window.requestAnimationFrame=="function"){window.requestAnimationFrame(()=>w());return}let z=globalThis.setTimeout(w,0);return ()=>{globalThis.clearTimeout(z);}},[X,O]);let se=p?jsx(Rr,{commands:ee,hasExtension:f=>ye(f),activeStates:he,isDark:e,toggleTheme:t,onCommandPaletteOpen:()=>{te(O)&&L.commandPalette!==false&&ee.showCommandPalette();},imageUploadHandler:f=>Q.find(w=>w.name==="image")?.config?.uploadHandler?.(f)??Promise.resolve(URL.createObjectURL(f)),layout:d??hn,toolbarVisibility:Ge,toolbarStyleVars:g,headingOptions:He,paragraphLabel:A,isListStyleDropdownEnabled:ge,classNames:{toolbar:`luthor-toolbar luthor-toolbar--align-${b}${h?` ${h}`:""}`}}):null,Ie=I,xt=te(O)&&p&&v==="top",Un=["luthor-editor-top-region",m&&v==="top"&&Ie?"luthor-editor-top-region--pinned":""].filter(Boolean).join(" "),fe=["luthor-editor-toolbar-slot","luthor-editor-toolbar-slot--top",xt&&(m&&v==="top"&&!Ie)?"luthor-editor-toolbar-slot--pinned":""].filter(Boolean).join(" "),gn=te(O)&&p&&v==="bottom",Gt=X?.getRootElement()?.closest(".luthor-editor-wrapper")??null,dt=zn(O)?O:null,Kn=O==="visual-only",ko=te(O)||Kn,_n=!Ke||!te(O);return jsxs(Fragment,{children:[jsxs("div",{className:`luthor-editor${_n?" luthor-editor--draggable-disabled":""}`,"data-mode":O,children:[(Ie||xt)&&jsxs("div",{className:Un,children:[Ie&&jsx("div",{className:"luthor-editor-header",children:jsx(Cr,{mode:O,onModeChange:K,availableModes:s,isConverting:Ze})}),xt&&jsx("div",{className:fe,children:se})]}),jsxs("div",{className:`luthor-editor-visual-shell${ko?"":" is-hidden"}${_n?" luthor-editor-visual-shell--no-gutter":""}`,"aria-hidden":!ko,children:[!_n&&jsx("div",{className:"luthor-editor-visual-gutter","aria-hidden":"true"}),jsx(RichText,{placeholder:n,nonEditableVisualMode:Kn,onEditIntent:Kn?J:void 0,classNames:{container:"luthor-richtext-container luthor-preset-extensive__container",contentEditable:"luthor-content-editable luthor-preset-extensive__content",placeholder:"luthor-placeholder luthor-preset-extensive__placeholder"}})]}),dt&&jsxs("div",{className:"luthor-source-panel",children:[we&&we.mode===dt&&jsxs("div",{className:"luthor-source-error",children:[jsx("div",{className:"luthor-source-error-icon",children:"!"}),jsxs("div",{className:"luthor-source-error-message",children:[jsx("strong",{children:rs[dt]}),jsx("p",{children:we.error}),jsx("small",{children:"Fix the errors above and try switching modes again"})]})]}),dt==="json"&&jsx(xn,{value:Oe.json,onChange:f=>B("json",f,{dirty:true}),placeholder:o,showLineNumbers:V}),dt==="markdown"&&jsx(xn,{value:Oe.markdown,onChange:f=>B("markdown",f,{dirty:true}),placeholder:i,className:"luthor-source-view--wrapped",wrap:"soft",showLineNumbers:V}),dt==="html"&&jsx(xn,{value:Oe.html,onChange:f=>B("html",f,{dirty:true}),placeholder:r,className:"luthor-source-view--wrapped",wrap:"soft",showLineNumbers:V})]})]}),jsx(fr,{editor:X,commands:ee,editorTheme:e?"dark":"light",disabled:!te(O)}),gn&&jsx("div",{className:"luthor-editor-toolbar-slot luthor-editor-toolbar-slot--bottom",children:se}),te(O)&&jsx(Qo,{isOpen:Je.isOpen,onClose:()=>ee.hideCommandPalette(),commands:Je.commands}),te(O)&&jsx(rr,{isOpen:P.isOpen,query:P.query,position:P.position,portalContainer:Gt,commands:P.commands,onClose:()=>ee.closeSlashMenu?.(),onExecute:f=>{ee.executeSlashCommand?.(f);}}),te(O)&&jsx(tr,{isOpen:de.isOpen,query:de.query,position:de.position,portalContainer:Gt,suggestions:de.suggestions,onClose:()=>ee.closeEmojiSuggestions?.(),onExecute:f=>{ee.executeEmojiSuggestion?.(f);}})]})}var Dn=forwardRef(({className:e,onReady:t,initialTheme:n="light",onThemeChange:o,theme:i,defaultContent:r,showDefaultContent:l=true,placeholder:s=ti,defaultEditorView:u,initialMode:d="visual-editor",isEditorViewTabsVisible:E,isEditorViewsTabVisible:v,availableModes:b=["visual-editor","visual-only","json","markdown","html"],variantClassName:h,toolbarLayout:g,toolbarVisibility:p,toolbarPosition:m="top",toolbarAlignment:I="left",toolbarClassName:k,toolbarStyleVars:A,quoteClassName:R,quoteStyleVars:M,defaultSettings:ae,editorThemeOverrides:ie,isToolbarEnabled:ge=true,isToolbarPinned:L=false,fontFamilyOptions:F,fontSizeOptions:T,lineHeightOptions:S,minimumDefaultLineHeight:D=1.5,scaleByRatio:V=false,headingOptions:ue,paragraphLabel:ye,syncHeadingOptionsWithCommands:he=true,slashCommandVisibility:X,shortcutConfig:Q,commandPaletteShortcutOnly:W=false,isListStyleDropdownEnabled:me=true,editOnClick:O=true,isDraggableBoxEnabled:Be,featureFlags:Oe,sourceMetadataMode:pe="preserve",markdownBridgeFlavor:Ze="luthor",markdownSourceOfTruth:Ye=false,syntaxHighlighting:we,codeHighlightProvider:Te,loadCodeHighlightProvider:Je,maxAutoDetectCodeLength:Ne,isCopyAllowed:P=true,languageOptions:j,showLineNumbers:de=true,maxListIndentation:st=8},et)=>{let[He,Re]=useState(n),ve=useRef(null),ut=He==="dark",ee=mn(u??d),Ue=vo(b,ee)?ee:mn(b[0]??"visual-editor"),Se=E??v??true,Ge=()=>Re(ut?"light":"dark"),Ke=useMemo(()=>typeof s=="string"?{visual:s,json:ni,markdown:oi,html:ri}:{visual:s.visual??ti,json:s.json??ni,markdown:s.markdown??oi,html:s.html??ri},[s]);useEffect(()=>{Re(n);},[n]),useEffect(()=>{o?.(He);},[He,o]),useEffect(()=>{if(!L||m!=="top")return;let fe=ve.current;if(fe)return ss(fe)},[L,m]);let _e=useMemo(()=>gs(F),[F]),Z=useMemo(()=>fs(T),[T]),Ce=useMemo(()=>hs(S),[S]),We=useMemo(()=>ps(D),[D]),tt=useMemo(()=>bs(st),[st]),ht=we??"unset",Lt=typeof Ne=="number"?Ne.toString():"unset",nt=useMemo(()=>ys(j),[j]),pt=P?"copy-on":"copy-off",Ve=de?"line-numbers-on":"line-numbers-off",be=useMemo(()=>typeof Be!="boolean"?Oe:{...Oe??{},draggableBlock:Be},[Oe,Be]),je=useMemo(()=>Cs(be),[be]),xe=useMemo(()=>un(be),[be]),Xe=`${_e}::${Z}::${Ce}::${We}::${tt}::${V?"ratio-on":"ratio-off"}::${ht}::${Lt}::${pt}::${Ve}::${nt}::${je}`,ct=useRef(F),wt=useRef(T),ot=useRef(S),Tt=useRef(D),bt=useRef(be),yt=useRef(j),rt=useRef(Te),it=useRef(Je),St=useRef(Xe);(St.current!==Xe||rt.current!==Te||it.current!==Je)&&(St.current=Xe,ct.current=F,wt.current=T,ot.current=S,Tt.current=D,bt.current=be,yt.current=j,rt.current=Te,it.current=Je);let y=useRef(null);if(!y.current||y.current.key!==Xe){let fe={fontFamilyOptions:ct.current,fontSizeOptions:wt.current,lineHeightOptions:ot.current,minimumDefaultLineHeight:Tt.current,maxListIndentation:Number(tt),scaleByRatio:V,...we!==void 0?{syntaxHighlighting:we}:{},...rt.current!==void 0?{codeHighlightProvider:rt.current}:{},...it.current!==void 0?{loadCodeHighlightProvider:it.current}:{},...Ne!==void 0?{maxAutoDetectCodeLength:Ne}:{},isCopyAllowed:P,showLineNumbers:de,...yt.current!==void 0?{languageOptions:yt.current}:{},...typeof Be=="boolean"?{isDraggableBoxEnabled:Be}:{},...bt.current?{featureFlags:bt.current}:{}};y.current={key:Xe,value:cn(fe)};}let C=y.current.value,B=useMemo(()=>{let fe=mergeThemes(defaultLuthorTheme,i??{});return R?{...fe,quote:`${fe.quote??""} ${R}`.trim()}:fe},[i,R]),K=useMemo(()=>yo(ie),[ie]),J=useMemo(()=>yo(M),[M]),se=useMemo(()=>vs(ae),[ae]),Ie=useMemo(()=>yo(se),[se]),xt=useMemo(()=>{let fe=se,gn=createEditorThemeStyleVars(ie),Gt=M,dt={"--luthor-default-line-height":We};return !fe&&!gn&&!Gt?dt:{...fe??{},...gn,...Gt??{},...dt}},[We,se,ie,M,Ie,K,J]),[Bn,Un]=useState(null);useImperativeHandle(et,()=>Bn??{injectJSON:()=>{},getJSON:()=>Me("json",dn),getMarkdown:()=>Me("markdown",dn,pe,Ze),getHTML:()=>Me("html",dn,pe,Ze)},[Ze,Bn,pe]);let Eo=fe=>{Un(fe),r&&fe.injectJSON(ds(r)),t?.(fe);};return jsx("div",{ref:ve,className:`luthor-preset luthor-preset-extensive luthor-editor-wrapper${L?" luthor-editor-wrapper--toolbar-pinned":""} ${h||""} ${e||""}`.trim(),"data-editor-theme":He,style:xt,children:jsx(ns,{extensions:C,config:{theme:B},children:jsx(Os,{isDark:ut,toggleTheme:Ge,visualPlaceholder:Ke.visual,jsonPlaceholder:Ke.json,markdownPlaceholder:Ke.markdown,htmlPlaceholder:Ke.html,initialMode:Ue,availableModes:b,onReady:Eo,toolbarLayout:g,toolbarVisibility:p,toolbarPosition:m,toolbarAlignment:I,toolbarClassName:k,toolbarStyleVars:A,isToolbarEnabled:ge,isToolbarPinned:L,isEditorViewTabsVisible:Se,headingOptions:ue,paragraphLabel:ye,syncHeadingOptionsWithCommands:he,slashCommandVisibility:X,shortcutConfig:Q,commandPaletteShortcutOnly:W,isListStyleDropdownEnabled:me,featureFlags:xe,editOnClick:O,sourceMetadataMode:pe,markdownBridgeFlavor:Ze,markdownSourceOfTruth:Ye,showLineNumbers:de})})})});Dn.displayName="ExtensiveEditor";var di=["undo","redo","fontFamily","heading","fontSize","lineHeight","textColor","textHighlight","bold","italic","underline","strikethrough","subscript","superscript","link","image","table","horizontalRule","iframeEmbed","youtubeEmbed","blockquote","code","codeBlock","bulletedList","numberedList","checkList","commandPalette","floatingToolbar","contextMenu","draggableBlock","customNode","sourceMode","themeToggle"],mi={id:"extensive",label:"Extensive Editor",description:"Complete editing preset with all core features enabled.",extensions:[...ho],components:{Editor:Dn},toolbar:[...di],config:kr("extensive","Write anything..."),css:"extensive/styles.css"};function Hs(e={}){return {...mi,extensions:[...cn({fontFamilyOptions:e.fontFamilyOptions,fontSizeOptions:e.fontSizeOptions,lineHeightOptions:e.lineHeightOptions,minimumDefaultLineHeight:e.minimumDefaultLineHeight,maxListIndentation:e.maxListIndentation,isCopyAllowed:e.isCopyAllowed,languageOptions:e.languageOptions,showLineNumbers:e.showLineNumbers})]}}export{vt as $,Yn as A,Xr as Aa,Po as B,po as Ba,zo as C,Qr as Ca,Do as D,Yt as Da,Ks as E,Dn as Ea,Bo as F,di as Fa,_s as G,mi as Ga,kn as H,Hs as Ha,Uo as I,Ko as J,Ln as K,_o as L,Vo as M,jo as N,$o as O,qo as P,Jn as Q,Yo as R,Jo as S,Bt as T,Go as U,Qo as V,tr as W,rr as X,H as Y,Xn as Z,on as _,Rs as a,ar as aa,$e as b,sr as ba,Ps as c,Qn as ca,hn as d,ur as da,$n as e,fr as ea,Io as f,Cr as fa,Fo as g,xn as ga,Oo as h,kr as ha,bn as i,Sr as ia,yn as j,xr as ja,vn as k,Ir as ka,Cn as l,jl as la,En as m,$l as ma,No as n,ql as na,Pt as o,Rr as oa,Ft as p,Kr as pa,Wt as q,un as qa,Xt as r,_r as ra,Qt as s,cn as sa,Ho as t,ho as ta,Ro as u,$r as ua,qn as v,qr as va,zt as w,Yr as wa,Mt as x,Jr as xa,Ao as y,Gr as ya,Dt as z,Wr as za};
@@ -471,8 +471,6 @@ interface ExtensiveEditorProps {
471
471
  isCopyAllowed?: boolean;
472
472
  languageOptions?: readonly string[] | CodeLanguageOptionsConfig;
473
473
  showLineNumbers?: boolean;
474
- /** Controls accent styling for inline code spans without affecting fenced code blocks. */
475
- inlineCodeHighlighting?: boolean;
476
474
  /** Maximum list sub-indent levels (excluding top-level list). Default: 8 */
477
475
  maxListIndentation?: number;
478
476
  }
@@ -1,4 +1,4 @@
1
- import { n as EditorPreset, h as ToolbarItemType } from './index-eZXI9w3M.js';
1
+ import { n as EditorPreset, h as ToolbarItemType } from './index-D8EFfJrS.js';
2
2
  import { FontFamilyOption, FontSizeOption, LineHeightOption, CodeLanguageOptionsConfig } from '@lyfie/luthor-headless';
3
3
 
4
4
  declare const extensiveToolbar: readonly ["undo", "redo", "fontFamily", "heading", "fontSize", "lineHeight", "textColor", "textHighlight", "bold", "italic", "underline", "strikethrough", "subscript", "superscript", "link", "image", "table", "horizontalRule", "iframeEmbed", "youtubeEmbed", "blockquote", "code", "codeBlock", "bulletedList", "numberedList", "checkList", "commandPalette", "floatingToolbar", "contextMenu", "draggableBlock", "customNode", "sourceMode", "themeToggle"];