@jacshuo/onyx 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +358 -361
- package/dist/Chart/BarChart.cjs +1 -1
- package/dist/Chart/BarChart.js +1 -1
- package/dist/Chart/PieChart.cjs +1 -1
- package/dist/Chart/PieChart.js +1 -1
- package/dist/Chart/ScatterChart.cjs +1 -1
- package/dist/Chart/ScatterChart.js +1 -1
- package/dist/Chart/index.cjs +1 -1
- package/dist/Chart/index.js +1 -1
- package/dist/DataDisplay/VirtualList.cjs +2 -0
- package/dist/DataDisplay/VirtualList.css +1 -0
- package/dist/DataDisplay/VirtualList.d.cts +5 -0
- package/dist/DataDisplay/VirtualList.d.ts +5 -0
- package/dist/DataDisplay/VirtualList.js +2 -0
- package/dist/DataDisplay/index.cjs +3 -2
- package/dist/DataDisplay/index.css +1 -0
- package/dist/DataDisplay/index.d.cts +5 -0
- package/dist/DataDisplay/index.d.ts +5 -0
- package/dist/DataDisplay/index.js +3 -2
- package/dist/Extras/DateTimePicker.cjs +1 -0
- package/dist/Extras/DateTimePicker.css +1 -0
- package/dist/Extras/DateTimePicker.d.cts +5 -0
- package/dist/Extras/DateTimePicker.d.ts +5 -0
- package/dist/Extras/DateTimePicker.js +1 -0
- package/dist/Extras/FileExplorer.cjs +2 -2
- package/dist/Extras/FileExplorer.js +2 -2
- package/dist/Extras/LoginPanel.cjs +1 -0
- package/dist/Extras/LoginPanel.css +1 -0
- package/dist/Extras/LoginPanel.d.cts +3 -0
- package/dist/Extras/LoginPanel.d.ts +3 -0
- package/dist/Extras/LoginPanel.js +1 -0
- package/dist/Extras/RichTextEditor.cjs +45 -0
- package/dist/Extras/RichTextEditor.css +1 -0
- package/dist/Extras/RichTextEditor.d.cts +10 -0
- package/dist/Extras/RichTextEditor.d.ts +10 -0
- package/dist/Extras/RichTextEditor.js +45 -0
- package/dist/Extras/index.cjs +48 -4
- package/dist/Extras/index.css +1 -1
- package/dist/Extras/index.d.cts +12 -0
- package/dist/Extras/index.d.ts +12 -0
- package/dist/Extras/index.js +48 -4
- package/dist/Forms/Form.cjs +1 -1
- package/dist/Forms/Form.js +1 -1
- package/dist/Forms/OTPInput.cjs +1 -0
- package/dist/Forms/OTPInput.css +1 -0
- package/dist/Forms/OTPInput.d.cts +4 -0
- package/dist/Forms/OTPInput.d.ts +4 -0
- package/dist/Forms/OTPInput.js +1 -0
- package/dist/Forms/Select.cjs +1 -1
- package/dist/Forms/Select.js +1 -1
- package/dist/Forms/index.cjs +1 -1
- package/dist/Forms/index.css +1 -0
- package/dist/Forms/index.d.cts +4 -0
- package/dist/Forms/index.d.ts +4 -0
- package/dist/Forms/index.js +1 -1
- package/dist/Layout/SplitPanel.cjs +1 -0
- package/dist/Layout/SplitPanel.d.cts +3 -0
- package/dist/Layout/SplitPanel.d.ts +3 -0
- package/dist/Layout/SplitPanel.js +1 -0
- package/dist/Layout/index.cjs +1 -1
- package/dist/Layout/index.d.cts +3 -0
- package/dist/Layout/index.d.ts +3 -0
- package/dist/Layout/index.js +1 -1
- package/dist/Navigation/Header.cjs +1 -1
- package/dist/Navigation/Header.js +1 -1
- package/dist/Navigation/RibbonBar.d.cts +3 -3
- package/dist/Navigation/RibbonBar.d.ts +3 -3
- package/dist/Navigation/SideNav.cjs +1 -1
- package/dist/Navigation/SideNav.js +1 -1
- package/dist/Navigation/index.cjs +2 -2
- package/dist/Navigation/index.d.cts +3 -3
- package/dist/Navigation/index.d.ts +3 -3
- package/dist/Navigation/index.js +2 -2
- package/dist/Primitives/Avatar.cjs +1 -1
- package/dist/Primitives/Avatar.js +1 -1
- package/dist/Primitives/Badge.cjs +1 -1
- package/dist/Primitives/Badge.js +1 -1
- package/dist/Primitives/Button.cjs +1 -1
- package/dist/Primitives/Button.js +1 -1
- package/dist/Primitives/Checkbox.cjs +1 -1
- package/dist/Primitives/Checkbox.js +1 -1
- package/dist/Primitives/Dropdown.cjs +1 -1
- package/dist/Primitives/Dropdown.js +1 -1
- package/dist/Primitives/DropdownButton.cjs +1 -1
- package/dist/Primitives/DropdownButton.js +1 -1
- package/dist/Primitives/Indicator.cjs +1 -1
- package/dist/Primitives/Indicator.js +1 -1
- package/dist/Primitives/Input.cjs +1 -1
- package/dist/Primitives/Input.js +1 -1
- package/dist/Primitives/Kbd.cjs +1 -0
- package/dist/Primitives/Kbd.css +0 -0
- package/dist/Primitives/Kbd.d.cts +6 -0
- package/dist/Primitives/Kbd.d.ts +6 -0
- package/dist/Primitives/Kbd.js +1 -0
- package/dist/Primitives/Label.cjs +1 -1
- package/dist/Primitives/Label.js +1 -1
- package/dist/Primitives/Radio.cjs +1 -1
- package/dist/Primitives/Radio.js +1 -1
- package/dist/Primitives/Rating.cjs +2 -0
- package/dist/Primitives/Rating.css +0 -0
- package/dist/Primitives/Rating.d.cts +4 -0
- package/dist/Primitives/Rating.d.ts +4 -0
- package/dist/Primitives/Rating.js +2 -0
- package/dist/Primitives/Slider.cjs +1 -1
- package/dist/Primitives/Slider.js +1 -1
- package/dist/Primitives/Switch.cjs +1 -1
- package/dist/Primitives/Switch.js +1 -1
- package/dist/Primitives/Tag.cjs +1 -1
- package/dist/Primitives/Tag.js +1 -1
- package/dist/Primitives/index.cjs +2 -1
- package/dist/Primitives/index.d.cts +10 -0
- package/dist/Primitives/index.d.ts +10 -0
- package/dist/Primitives/index.js +2 -1
- package/dist/_tsup-dts-rollup.d.cts +990 -3
- package/dist/_tsup-dts-rollup.d.ts +990 -3
- package/dist/index.cjs +49 -5
- package/dist/index.css +1 -1
- package/dist/index.d.cts +40 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +49 -5
- package/dist/styles/DataDisplay/VirtualList.css +35 -0
- package/dist/styles/Extras/DateTimePicker.css +566 -0
- package/dist/styles/Extras/LoginPanel.css +16 -0
- package/dist/styles/Extras/RichTextEditor.css +908 -0
- package/dist/styles/Forms/OTPInput.css +11 -0
- package/dist/styles/Layout/SplitPanel.css +15 -0
- package/dist/styles/Primitives/Kbd.css +1 -0
- package/dist/styles/Primitives/Rating.css +1 -0
- package/dist/styles/base.css +312 -7
- package/dist/styles.css +770 -7
- package/dist/theme.cjs +1 -1
- package/dist/theme.d.cts +3 -0
- package/dist/theme.d.ts +3 -0
- package/dist/theme.js +1 -1
- package/package.json +21 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import Oe,{forwardRef,useState,useEffect,useRef,useCallback,useImperativeHandle,useId}from'react';import {ReactNodeViewRenderer,EditorContent,NodeViewWrapper,useEditor}from'@tiptap/react';import {Undo2,Redo2,Save,Bold,Italic,Underline,Strikethrough,Heading1,Heading2,Heading3,Type,AlignLeft,AlignCenter,AlignRight,AlignJustify,List,ListOrdered,Image,Video,Link,Table,Code,Quote,Minus,Palette,Highlighter,Subscript,Superscript,Eraser,Sun,Moon,FileText,EyeOff,Eye,ChevronUp,ChevronDown,BetweenHorizontalStart,BetweenHorizontalEnd,Trash2,BetweenVerticalStart,BetweenVerticalEnd,TableCellsMerge,TableCellsSplit,Search,X,Replace}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {cva}from'class-variance-authority';import {RemoveMarkStep,Transform,liftTarget,joinPoint,canSplit,ReplaceStep,ReplaceAroundStep,canJoin}from'@tiptap/pm/transform';import {createParagraphNear,deleteSelection,exitCode,joinUp,joinDown,joinBackward,joinForward,joinTextblockBackward,joinTextblockForward,lift,liftEmptyBlock,newlineInCode,selectNodeBackward,selectNodeForward,selectParentNode,selectTextblockEnd,selectTextblockStart,setBlockType,wrapIn}from'@tiptap/pm/commands';import {Plugin,PluginKey,Selection,TextSelection,AllSelection,NodeSelection}from'@tiptap/pm/state';import {Fragment as Fragment$1,Slice,Node,Schema,DOMParser}from'@tiptap/pm/model';import {liftListItem,sinkListItem,wrapInList}from'@tiptap/pm/schema-list';import {DecorationSet,Decoration}from'@tiptap/pm/view';import'@tiptap/pm/keymap';import Js from'@tiptap/starter-kit';import Xs from'@tiptap/extension-underline';import Ys from'@tiptap/extension-text-align';import {Color}from'@tiptap/extension-color';import Qs from'@tiptap/extension-highlight';import Zs from'@tiptap/extension-link';import ea from'@tiptap/extension-youtube';import ta from'@tiptap/extension-placeholder';import ra from'@tiptap/extension-character-count';import na from'@tiptap/extension-typography';import oa from'@tiptap/extension-subscript';import ia from'@tiptap/extension-superscript';import {Table as Table$1}from'@tiptap/extension-table';import aa from'@tiptap/extension-table-row';import la from'@tiptap/extension-table-header';import ca from'@tiptap/extension-table-cell';import Hs from'@tiptap/extension-image';import {marked}from'marked';function D(...e){return twMerge(clsx(e))}function Ot({item:e,mode:t}){return e.separator?jsx("div",{className:"mx-1 h-10 w-px self-center bg-primary-200 dark:bg-primary-700","aria-hidden":true}):jsxs("button",{type:"button",title:e.title??e.label,disabled:e.disabled,onClick:e.onClick,"aria-pressed":e.active,className:D("relative flex shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400","disabled:cursor-not-allowed disabled:opacity-40",e.active?"bg-primary-100 text-primary-700 shadow-inner dark:bg-primary-800 dark:text-primary-200":"text-primary-700 hover:bg-primary-50 active:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-800",t==="full"?"min-w-[3.5rem] flex-col gap-0.5 py-2":"","[&_svg]:shrink-0",t==="full"?"[&_svg]:h-5 [&_svg]:w-5":"[&_svg]:h-4 [&_svg]:w-4"),children:[e.icon&&jsx("span",{children:e.icon}),t!=="icons"&&jsx("span",{className:D(t==="full"?"text-[0.6rem] leading-tight":""),children:e.label})]})}function an({group:e,mode:t,disabled:r=false}){return jsxs("div",{className:D("flex shrink-0 flex-col items-stretch",r&&"opacity-50"),children:[jsx("div",{className:"flex items-center gap-0.5 px-1",children:e.items.map(n=>jsx(Ot,{item:r?{...n,disabled:true}:n,mode:t},n.key))}),t==="full"&&jsx("div",{className:"mt-1 border-t border-primary-100 px-2 pt-0.5 text-center dark:border-primary-800",children:jsx("span",{className:"text-[0.55rem] text-secondary-400 dark:text-secondary-500",children:e.label})})]})}function Bt({tabs:e,defaultTab:t,activeTab:r,onTabChange:n,mode:o,onModeChange:i,sticky:a=false,className:l}){let s=e.filter(x=>!x.hidden),[d,p]=useState(t??s[0]?.key??""),[u,m]=useState(o??"full"),[c,f]=useState(true),h=r??d,g=o??u,v=x=>{if(!s.find(N=>N.key===x)?.disabled){if(x===h&&g!=="icons"){f(N=>!N);return}p(x),n?.(x),f(true);}},T=s.find(x=>x.key===h)??s[0];return jsxs("div",{className:D("select-none border-b border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",a&&"sticky top-0 z-30",l),children:[jsxs("div",{className:"flex items-center border-b border-primary-100 dark:border-primary-800",children:[jsx("div",{className:"flex flex-1 items-end overflow-x-auto",children:s.map(x=>jsxs("button",{type:"button",disabled:x.disabled,onClick:()=>v(x.key),className:D("flex shrink-0 items-center gap-1.5 border-b-2 px-4 py-2 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 [&_svg]:h-4 [&_svg]:w-4",x.disabled?"cursor-not-allowed border-transparent text-secondary-300 opacity-50 dark:text-secondary-600":x.key===h&&c?"border-primary-500 text-primary-700 dark:border-primary-400 dark:text-primary-200":"border-transparent text-secondary-500 hover:border-primary-300 hover:text-primary-600 dark:text-secondary-400 dark:hover:text-primary-300"),children:[x.icon,x.label]},x.key))}),jsx("button",{type:"button",title:c?"Collapse ribbon":"Expand ribbon",onClick:()=>f(x=>!x),className:"ml-auto mr-2 rounded-md p-1.5 text-secondary-400 transition-colors hover:bg-primary-50 hover:text-primary-600 dark:hover:bg-primary-800 dark:hover:text-primary-300",children:c?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"})})]}),c&&T&&g!=="icons"&&jsx("div",{className:"flex items-stretch gap-1 overflow-x-auto px-2 py-1.5",children:T.groups.map((x,M)=>jsxs(Oe.Fragment,{children:[M>0&&jsx("div",{className:"mx-1 h-auto w-px self-stretch bg-primary-100 dark:bg-primary-800"}),jsx(an,{group:x,mode:g,disabled:x.disabled||T.disabled})]},x.key))}),g==="icons"&&c&&T&&jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto px-2 py-1",children:T.groups.flatMap(x=>x.items.map(M=>jsx(Ot,{item:x.disabled||T.disabled?{...M,disabled:true}:M,mode:"icons"},M.key)))})]})}cva("inline-flex cursor-pointer items-center justify-center gap-1.5 rounded font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700",secondary:"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700",danger:"bg-danger-500 text-white hover:bg-danger-600 active:bg-danger-700",warning:"bg-warning-500 text-white hover:bg-warning-600 active:bg-warning-700",ghost:"bg-transparent text-primary-700 hover:bg-primary-100 active:bg-primary-200 dark:text-primary-300 dark:hover:bg-primary-800",outline:"border border-primary-300 bg-transparent text-primary-700 hover:bg-primary-50 dark:border-primary-600 dark:text-primary-300 dark:hover:bg-primary-800"},size:{sm:"h-7 px-3 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"h-9 px-4 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"h-11 px-6 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded border font-semibold [&_svg]:shrink-0",{variants:{intent:{success:"border-success-200 bg-success-100 text-success-800 dark:border-success-800 dark:bg-success-900/30 dark:text-success-400",warning:"border-warning-200 bg-warning-100 text-warning-800 dark:border-warning-800 dark:bg-warning-900/30 dark:text-warning-400",error:"border-danger-200 bg-danger-100 text-danger-800 dark:border-danger-800 dark:bg-danger-900/30 dark:text-danger-400",info:"border-primary-200 bg-primary-100 text-primary-800 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-400",primary:"border-secondary-200 bg-secondary-100 text-secondary-700 dark:border-secondary-700 dark:bg-secondary-800 dark:text-secondary-300"},size:{sm:"px-1.5 py-0 text-[0.625rem] [&_svg]:h-2.5 [&_svg]:w-2.5",md:"px-2.5 py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",lg:"px-3 py-1 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5"}},defaultVariants:{intent:"primary",size:"md"}});cva("absolute flex items-center justify-center rounded-full font-bold leading-none ring-2 ring-white select-none pointer-events-none z-10 dark:ring-primary-900",{variants:{intent:{danger:"bg-danger-500 text-white",success:"bg-success-500 text-white",warning:"bg-warning-500 text-white",info:"bg-primary-500 text-white",primary:"bg-secondary-500 text-white"},size:{sm:"text-[0.5rem]",md:"text-[0.625rem]",lg:"text-xs"},dot:{true:"",false:""},placement:{"top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2"}},compoundVariants:[{dot:true,size:"sm",class:"h-1.5 w-1.5 min-w-0 ring-1"},{dot:true,size:"md",class:"h-2 w-2 min-w-0"},{dot:true,size:"lg",class:"h-2.5 w-2.5 min-w-0"},{dot:false,size:"sm",class:"h-4 min-w-4 px-1"},{dot:false,size:"md",class:"h-5 min-w-5 px-1.5"},{dot:false,size:"lg",class:"h-6 min-w-6 px-2"}],defaultVariants:{intent:"danger",size:"md",dot:false,placement:"top-right"}});cva("w-full rounded-md border bg-white text-secondary-900 transition-colors placeholder:text-secondary-400 focus:outline-none focus:ring-2 dark:bg-secondary-900 dark:text-secondary-100 dark:placeholder:text-secondary-600",{variants:{state:{default:"border-secondary-300 focus:border-primary-500 focus:ring-primary-500/20 dark:border-secondary-600",error:"border-danger-400 focus:border-danger-500 focus:ring-danger-500/20"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 py-2 text-sm",lg:"h-11 px-4 py-2.5 text-base"}},defaultVariants:{state:"default",size:"md"}});cva("inline-flex items-center gap-1 font-medium [&_svg]:shrink-0",{variants:{size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},intent:{default:"text-primary-700 dark:text-primary-300",muted:"text-primary-400 dark:text-primary-500",required:"text-primary-700 dark:text-primary-300 after:ml-0.5 after:text-danger-500 after:content-['*']"}},defaultVariants:{size:"md",intent:"default"}});cva("relative inline-flex shrink-0 items-center justify-center rounded border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4 rounded-[3px]",md:"h-5 w-5 rounded",lg:"h-6 w-6 rounded-[5px]"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("relative inline-flex shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});var Ft=cva("",{variants:{intent:{primary:"",secondary:"",danger:"",warning:"",success:""},size:{sm:"",md:"",lg:""},checked:{on:"",off:"bg-primary-300 dark:bg-primary-800"}},compoundVariants:[{intent:"primary",checked:"on",class:"bg-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"bg-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"bg-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"bg-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"bg-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("bg-primary-200 text-primary-700 dark:bg-primary-700 dark:text-primary-200",{variants:{size:{xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-12 w-12 text-base",xl:"h-16 w-16 text-lg"},shape:{circular:"rounded-full",rounded:"rounded-lg",square:"rounded-none"}},defaultVariants:{size:"md",shape:"circular"}});cva("inline-flex items-center",{variants:{size:{sm:"gap-0.5 [&_.rating-icon]:h-4 [&_.rating-icon]:w-4",md:"gap-1 [&_.rating-icon]:h-6 [&_.rating-icon]:w-6",lg:"gap-1.5 [&_.rating-icon]:h-8 [&_.rating-icon]:w-8"}},defaultVariants:{size:"md"}});cva("inline-flex items-center justify-center rounded font-mono font-medium select-none",{variants:{size:{xs:"h-4 min-w-4 px-1 text-[0.6rem]",sm:"h-5 min-w-5 px-1.5 text-xs",md:"h-6 min-w-6 px-2 text-sm",lg:"h-8 min-w-8 px-2.5 text-base"},variant:{default:"border border-secondary-300 bg-secondary-100 text-secondary-700 shadow-[0_2px_0_0_var(--color-secondary-300)] dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:shadow-[0_2px_0_0_var(--color-secondary-600)]",outline:"border border-secondary-400 bg-transparent text-secondary-700 dark:border-secondary-500 dark:text-secondary-300",ghost:"text-secondary-600 dark:text-secondary-400"}},defaultVariants:{size:"sm",variant:"default"}});cva("relative flex w-full touch-none select-none items-center",{variants:{intent:{primary:"[&_.slider-fill]:bg-primary-500 [&_.slider-thumb]:border-primary-500",secondary:"[&_.slider-fill]:bg-secondary-500 [&_.slider-thumb]:border-secondary-500",success:"[&_.slider-fill]:bg-success-500 [&_.slider-thumb]:border-success-500",danger:"[&_.slider-fill]:bg-danger-500 [&_.slider-thumb]:border-danger-500",warning:"[&_.slider-fill]:bg-warning-500 [&_.slider-thumb]:border-warning-500"},size:{sm:"h-4",md:"h-5",lg:"h-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded-full font-medium select-none transition-colors [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-100 text-primary-700 dark:bg-primary-800 dark:text-primary-200",secondary:"bg-secondary-100 text-secondary-700 dark:bg-secondary-800 dark:text-secondary-200",success:"bg-success-100 text-success-700 dark:bg-success-900/40 dark:text-success-300",danger:"bg-danger-100 text-danger-700 dark:bg-danger-900/40 dark:text-danger-300",warning:"bg-warning-100 text-warning-700 dark:bg-warning-900/40 dark:text-warning-300",info:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},size:{sm:"h-5 px-2 text-[0.6875rem] gap-0.5",md:"h-6 px-2.5 text-xs gap-1",lg:"h-7 px-3 text-sm gap-1"},variant:{solid:"",outline:"bg-transparent border",soft:""}},compoundVariants:[{intent:"primary",variant:"outline",class:"border-primary-300 text-primary-700 dark:border-primary-600 dark:text-primary-300"},{intent:"secondary",variant:"outline",class:"border-secondary-300 text-secondary-700 dark:border-secondary-600 dark:text-secondary-300"},{intent:"success",variant:"outline",class:"border-success-400 text-success-700 dark:border-success-600 dark:text-success-300"},{intent:"danger",variant:"outline",class:"border-danger-400 text-danger-700 dark:border-danger-600 dark:text-danger-300"},{intent:"warning",variant:"outline",class:"border-warning-400 text-warning-700 dark:border-warning-600 dark:text-warning-300"},{intent:"info",variant:"outline",class:"border-blue-400 text-blue-700 dark:border-blue-600 dark:text-blue-300"}],defaultVariants:{intent:"primary",size:"md",variant:"solid"}});cva("relative w-full cursor-pointer rounded-md border bg-white text-sm transition-colors dark:bg-primary-900",{variants:{intent:{default:"border-primary-300 text-primary-900 hover:border-primary-400 focus-within:border-primary-500 focus-within:ring-2 focus-within:ring-primary-500/20 dark:border-primary-600 dark:text-primary-100 dark:hover:border-primary-500 dark:focus-within:border-primary-400",danger:"border-danger-500 text-primary-900 focus-within:ring-2 focus-within:ring-danger-500/20 dark:border-danger-500 dark:text-primary-100"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 text-sm",lg:"h-11 px-4 text-base"}},defaultVariants:{intent:"default",size:"md"}});var un={sm:{trackFixed:"h-5 w-9",trackH:"h-5 min-w-9",thumb:"h-3.5 w-3.5",thumbTop:"top-[3px]",thumbOff:"left-[2px]",thumbOn:"left-[calc(100%-16px)]",pad:"pl-[6px] pr-[18px]",contentLeft:"left-[6px]",contentRight:"right-[6px]",icon:"text-[10px] [&_svg]:h-3 [&_svg]:w-3"},md:{trackFixed:"h-6 w-11",trackH:"h-6 min-w-11",thumb:"h-4.5 w-4.5",thumbTop:"top-[3px]",thumbOff:"left-[2px]",thumbOn:"left-[calc(100%-20px)]",pad:"pl-[7px] pr-[23px]",contentLeft:"left-[7px]",contentRight:"right-[7px]",icon:"text-xs [&_svg]:h-3.5 [&_svg]:w-3.5"},lg:{trackFixed:"h-7 w-14",trackH:"h-7 min-w-14",thumb:"h-5.5 w-5.5",thumbTop:"top-[3px]",thumbOff:"left-[3px]",thumbOn:"left-[calc(100%-25px)]",pad:"pl-[8px] pr-[28px]",contentLeft:"left-[8px]",contentRight:"right-[8px]",icon:"text-sm [&_svg]:h-4 [&_svg]:w-4"}},pn={primary:"text-primary-100",secondary:"text-secondary-100",danger:"text-danger-100",warning:"text-warning-100",success:"text-success-100"};function Ce({checked:e,defaultChecked:t=false,onCheckedChange:r,checkedContent:n,uncheckedContent:o,intent:i,size:a,label:l,id:s,className:d,disabled:p,...u}){let m=useId(),c=s??m,f=a??"md",h=i??"primary",g=un[f],v=n!=null||o!=null,[C,T]=useState(t),x=e??C,M=useCallback(N=>{let z=N.target.checked;e===void 0&&T(z),r?.(z);},[e,r]);return jsxs("label",{htmlFor:c,className:D("inline-flex cursor-pointer items-center gap-2",p&&"pointer-events-none opacity-50",d),children:[jsx("input",{...u,id:c,type:"checkbox",role:"switch",className:"sr-only",checked:x,disabled:p,onChange:M,"aria-checked":x}),jsxs("span",{className:D("relative inline-flex shrink-0 items-center rounded-full transition-colors duration-200",v?g.trackH:g.trackFixed,Ft({intent:i,size:a,checked:x?"on":"off"})),children:[v?jsxs(Fragment,{children:[jsxs("span",{className:D("pointer-events-none invisible inline-grid",g.icon),children:[jsx("span",{className:D("[grid-area:1/1] whitespace-nowrap",g.pad),children:n}),jsx("span",{className:D("[grid-area:1/1] whitespace-nowrap",g.pad),children:o})]}),jsx("span",{className:D("absolute top-1/2 -translate-y-1/2 whitespace-nowrap font-medium leading-none transition-opacity duration-200",g.contentLeft,g.icon,pn[h],x?"opacity-100":"opacity-0"),children:n}),jsx("span",{className:D("absolute top-1/2 -translate-y-1/2 whitespace-nowrap font-medium leading-none transition-opacity duration-200",g.contentRight,g.icon,"text-primary-400 dark:text-primary-500",x?"opacity-0":"opacity-100"),children:o})]}):null,jsx("span",{className:D("pointer-events-none absolute rounded-full bg-white shadow-sm transition-[left] duration-200 ease-in-out",g.thumb,g.thumbTop,x?g.thumbOn:g.thumbOff)})]}),l&&jsx("span",{className:"select-none text-sm text-primary-700 dark:text-primary-300",children:l})]})}var fn=Object.defineProperty,it=(e,t)=>{for(var r in t)fn(e,r,{get:t[r],enumerable:true});};function $e(e){let{state:t,transaction:r}=e,{selection:n}=r,{doc:o}=r,{storedMarks:i}=r;return {...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return i},get selection(){return n},get doc(){return o},get tr(){return n=r.selection,o=r.doc,i=r.storedMarks,r}}}var st=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state;}get hasCustomState(){return !!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:r}=this,{view:n}=t,{tr:o}=r,i=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([a,l])=>[a,(...d)=>{let p=l(...d)(i);return !o.getMeta("preventDispatch")&&!this.hasCustomState&&n.dispatch(o),p}]))}get chain(){return ()=>this.createChain()}get can(){return ()=>this.createCan()}createChain(e,t=true){let{rawCommands:r,editor:n,state:o}=this,{view:i}=n,a=[],l=!!e,s=e||o.tr,d=()=>(!l&&t&&!s.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(s),a.every(u=>u===true)),p={...Object.fromEntries(Object.entries(r).map(([u,m])=>[u,(...f)=>{let h=this.buildProps(s,t),g=m(...f)(h);return a.push(g),p}])),run:d};return p}createCan(e){let{rawCommands:t,state:r}=this,n=false,o=e||r.tr,i=this.buildProps(o,n);return {...Object.fromEntries(Object.entries(t).map(([l,s])=>[l,(...d)=>s(...d)({...i,dispatch:void 0})])),chain:()=>this.createChain(o,n)}}buildProps(e,t=true){let{rawCommands:r,editor:n,state:o}=this,{view:i}=n,a={tr:e,editor:n,view:i,state:$e({state:o,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([l,s])=>[l,(...d)=>s(...d)(a)]))}};return a}},rr={};it(rr,{blur:()=>hn,clearContent:()=>gn,clearNodes:()=>yn,command:()=>vn,createParagraphNear:()=>wn,cut:()=>Mn,deleteCurrentNode:()=>Sn,deleteNode:()=>En,deleteRange:()=>Tn,deleteSelection:()=>Rn,enter:()=>Nn,exitCode:()=>An,extendMarkRange:()=>In,first:()=>_n,focus:()=>Hn,forEach:()=>On,insertContent:()=>Bn,insertContentAt:()=>Xn,joinBackward:()=>ro,joinDown:()=>to,joinForward:()=>no,joinItemBackward:()=>io,joinItemForward:()=>ao,joinTextblockBackward:()=>co,joinTextblockForward:()=>po,joinUp:()=>eo,keyboardShortcut:()=>fo,lift:()=>go,liftEmptyBlock:()=>yo,liftListItem:()=>ko,newlineInCode:()=>xo,resetAttributes:()=>Mo,scrollIntoView:()=>So,selectAll:()=>To,selectNodeBackward:()=>Ro,selectNodeForward:()=>Po,selectParentNode:()=>zo,selectTextblockEnd:()=>_o,selectTextblockStart:()=>$o,setContent:()=>Ho,setMark:()=>si,setMeta:()=>ai,setNode:()=>li,setNodeSelection:()=>di,setTextDirection:()=>ui,setTextSelection:()=>pi,sinkListItem:()=>fi,splitBlock:()=>bi,splitListItem:()=>wi,toggleList:()=>xi,toggleMark:()=>Mi,toggleNode:()=>Si,toggleWrap:()=>Ei,undoInputRule:()=>Ti,unsetAllMarks:()=>Ci,unsetMark:()=>Ri,unsetTextDirection:()=>Ni,updateAttributes:()=>Pi,wrapIn:()=>zi,wrapInList:()=>_i});var hn=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var r;e.isDestroyed||(t.dom.blur(),(r=window?.getSelection())==null||r.removeAllRanges());}),true),gn=(e=true)=>({commands:t})=>t.setContent("",{emitUpdate:e}),yn=()=>({state:e,tr:t,dispatch:r})=>{let{selection:n}=t,{ranges:o}=n;return r&&o.forEach(({$from:i,$to:a})=>{e.doc.nodesBetween(i.pos,a.pos,(l,s)=>{if(l.type.isText)return;let{doc:d,mapping:p}=t,u=d.resolve(p.map(s)),m=d.resolve(p.map(s+l.nodeSize)),c=u.blockRange(m);if(!c)return;let f=liftTarget(c);if(l.type.isTextblock){let{defaultType:h}=u.parent.contentMatchAt(u.index());t.setNodeMarkup(c.start,h);}(f||f===0)&&t.lift(c,f);});}),true},vn=e=>t=>e(t),wn=()=>({state:e,dispatch:t})=>createParagraphNear(e,t),Mn=(e,t)=>({editor:r,tr:n})=>{let{state:o}=r,i=o.doc.slice(e.from,e.to);n.deleteRange(e.from,e.to);let a=n.mapping.map(t);return n.insert(a,i.content),n.setSelection(new TextSelection(n.doc.resolve(Math.max(a-1,0)))),true},Sn=()=>({tr:e,dispatch:t})=>{let{selection:r}=e,n=r.$anchor.node();if(n.content.size>0)return false;let o=e.selection.$anchor;for(let i=o.depth;i>0;i-=1)if(o.node(i).type===n.type){if(t){let l=o.before(i),s=o.after(i);e.delete(l,s).scrollIntoView();}return true}return false};function V(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var En=e=>({tr:t,state:r,dispatch:n})=>{let o=V(e,r.schema),i=t.selection.$anchor;for(let a=i.depth;a>0;a-=1)if(i.node(a).type===o){if(n){let s=i.before(a),d=i.after(a);t.delete(s,d).scrollIntoView();}return true}return false},Tn=e=>({tr:t,dispatch:r})=>{let{from:n,to:o}=e;return r&&t.delete(n,o),true},Rn=()=>({state:e,dispatch:t})=>deleteSelection(e,t),Nn=()=>({commands:e})=>e.keyboardShortcut("Enter"),An=()=>({state:e,dispatch:t})=>exitCode(e,t);function at(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ie(e,t,r={strict:true}){let n=Object.keys(t);return n.length?n.every(o=>r.strict?t[o]===e[o]:at(t[o])?t[o].test(e[o]):t[o]===e[o]):true}function nr(e,t,r={}){return e.find(n=>n.type===t&&Ie(Object.fromEntries(Object.keys(r).map(o=>[o,n.attrs[o]])),r))}function Vt(e,t,r={}){return !!nr(e,t,r)}function or(e,t,r){var n;if(!e||!t)return;let o=e.parent.childAfter(e.parentOffset);if((!o.node||!o.node.marks.some(p=>p.type===t))&&(o=e.parent.childBefore(e.parentOffset)),!o.node||!o.node.marks.some(p=>p.type===t)||(r=r||((n=o.node.marks[0])==null?void 0:n.attrs),!nr([...o.node.marks],t,r)))return;let a=o.index,l=e.start()+o.offset,s=a+1,d=l+o.node.nodeSize;for(;a>0&&Vt([...e.parent.child(a-1).marks],t,r);)a-=1,l-=e.parent.child(a).nodeSize;for(;s<e.parent.childCount&&Vt([...e.parent.child(s).marks],t,r);)d+=e.parent.child(s).nodeSize,s+=1;return {from:l,to:d}}function Q(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var In=(e,t={})=>({tr:r,state:n,dispatch:o})=>{let i=Q(e,n.schema),{doc:a,selection:l}=r,{$from:s,from:d,to:p}=l;if(o){let u=or(s,i,t);if(u&&u.from<=d&&u.to>=p){let m=TextSelection.create(a,u.from,u.to);r.setSelection(m);}}return true},_n=e=>t=>{let r=typeof e=="function"?e(t):e;for(let n=0;n<r.length;n+=1)if(r[n](t))return true;return false};function ir(e){return e instanceof TextSelection}function oe(e=0,t=0,r=0){return Math.min(Math.max(e,t),r)}function $n(e,t=null){if(!t)return null;let r=Selection.atStart(e),n=Selection.atEnd(e);if(t==="start"||t===true)return r;if(t==="end")return n;let o=r.from,i=n.to;return t==="all"?TextSelection.create(e,oe(0,o,i),oe(e.content.size,o,i)):TextSelection.create(e,oe(t,o,i),oe(t,o,i))}function Wt(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function _e(){return ["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function Dn(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):false}var Hn=(e=null,t={})=>({editor:r,view:n,tr:o,dispatch:i})=>{t={scrollIntoView:true,...t};let a=()=>{(_e()||Wt())&&n.dom.focus(),Dn()&&!_e()&&!Wt()&&n.dom.focus({preventScroll:true}),requestAnimationFrame(()=>{r.isDestroyed||(n.focus(),t?.scrollIntoView&&r.commands.scrollIntoView());});};try{if(n.hasFocus()&&e===null||e===!1)return !0}catch{return false}if(i&&e===null&&!ir(r.state.selection))return a(),true;let l=$n(o.doc,e)||r.state.selection,s=r.state.selection.eq(l);return i&&(s||o.setSelection(l),s&&o.storedMarks&&o.setStoredMarks(o.storedMarks),a()),true},On=(e,t)=>r=>e.every((n,o)=>t(n,{...r,index:o})),Bn=(e,t)=>({tr:r,commands:n})=>n.insertContentAt({from:r.selection.from,to:r.selection.to},e,t),sr=e=>{let t=e.childNodes;for(let r=t.length-1;r>=0;r-=1){let n=t[r];n.nodeType===3&&n.nodeValue&&/^(\n\s\s|\n)$/.test(n.nodeValue)?e.removeChild(n):n.nodeType===1&&sr(n);}return e};function Re(e){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");let t=`<body>${e}</body>`,r=new window.DOMParser().parseFromString(t,"text/html").body;return sr(r)}function he(e,t,r){if(e instanceof Node||e instanceof Fragment$1)return e;r={slice:true,parseOptions:{},...r};let n=typeof e=="object"&&e!==null,o=typeof e=="string";if(n)try{if(Array.isArray(e)&&e.length>0)return Fragment$1.fromArray(e.map(l=>t.nodeFromJSON(l)));let a=t.nodeFromJSON(e);return r.errorOnInvalidContent&&a.check(),a}catch(i){if(r.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:i});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",i),he("",t,r)}if(o){if(r.errorOnInvalidContent){let a=false,l="",s=new Schema({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:d=>(a=true,l=typeof d=="string"?d:d.outerHTML,null)}]}})});if(r.slice?DOMParser.fromSchema(s).parseSlice(Re(e),r.parseOptions):DOMParser.fromSchema(s).parse(Re(e),r.parseOptions),r.errorOnInvalidContent&&a)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}let i=DOMParser.fromSchema(t);return r.slice?i.parseSlice(Re(e),r.parseOptions).content:i.parse(Re(e),r.parseOptions)}return he("",t,r)}function qn(e,t,r){let n=e.steps.length-1;if(n<t)return;let o=e.steps[n];if(!(o instanceof ReplaceStep||o instanceof ReplaceAroundStep))return;let i=e.mapping.maps[n],a=0;i.forEach((l,s,d,p)=>{a===0&&(a=p);}),e.setSelection(Selection.near(e.doc.resolve(a),r));}var Jn=e=>!("type"in e),Xn=(e,t,r)=>({tr:n,dispatch:o,editor:i})=>{var a;if(o){r={parseOptions:i.options.parseOptions,updateSelection:true,applyInputRules:false,applyPasteRules:false,...r};let l,s=g=>{i.emit("contentError",{editor:i,error:g,disableCollaboration:()=>{"collaboration"in i.storage&&typeof i.storage.collaboration=="object"&&i.storage.collaboration&&(i.storage.collaboration.isDisabled=true);}});},d={preserveWhitespace:"full",...r.parseOptions};if(!r.errorOnInvalidContent&&!i.options.enableContentCheck&&i.options.emitContentError)try{he(t,i.schema,{parseOptions:d,errorOnInvalidContent:!0});}catch(g){s(g);}try{l=he(t,i.schema,{parseOptions:d,errorOnInvalidContent:(a=r.errorOnInvalidContent)!=null?a:i.options.enableContentCheck});}catch(g){return s(g),false}let{from:p,to:u}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},m=true,c=true;if((Jn(l)?l:[l]).forEach(g=>{g.check(),m=m?g.isText&&g.marks.length===0:false,c=c?g.isBlock:false;}),p===u&&c){let{parent:g}=n.doc.resolve(p);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(p-=1,u+=1);}let h;if(m){if(Array.isArray(t))h=t.map(g=>g.text||"").join("");else if(t instanceof Fragment$1){let g="";t.forEach(v=>{v.text&&(g+=v.text);}),h=g;}else typeof t=="object"&&t&&t.text?h=t.text:h=t;n.insertText(h,p,u);}else {h=l;let g=n.doc.resolve(p),v=g.node(),C=g.parentOffset===0,T=v.isText||v.isTextblock,x=v.content.size>0;C&&T&&x&&(p=Math.max(0,p-1)),n.replaceWith(p,u,h);}r.updateSelection&&qn(n,n.steps.length-1,-1),r.applyInputRules&&n.setMeta("applyInputRules",{from:p,text:h}),r.applyPasteRules&&n.setMeta("applyPasteRules",{from:p,text:h});}return true},eo=()=>({state:e,dispatch:t})=>joinUp(e,t),to=()=>({state:e,dispatch:t})=>joinDown(e,t),ro=()=>({state:e,dispatch:t})=>joinBackward(e,t),no=()=>({state:e,dispatch:t})=>joinForward(e,t),io=()=>({state:e,dispatch:t,tr:r})=>{try{let n=joinPoint(e.doc,e.selection.$from.pos,-1);return n==null?!1:(r.join(n,2),t&&t(r),!0)}catch{return false}},ao=()=>({state:e,dispatch:t,tr:r})=>{try{let n=joinPoint(e.doc,e.selection.$from.pos,1);return n==null?!1:(r.join(n,2),t&&t(r),!0)}catch{return false}},co=()=>({state:e,dispatch:t})=>joinTextblockBackward(e,t),po=()=>({state:e,dispatch:t})=>joinTextblockForward(e,t);function ar(){return typeof navigator<"u"?/Mac/.test(navigator.platform):false}function mo(e){let t=e.split(/-(?!$)/),r=t[t.length-1];r==="Space"&&(r=" ");let n,o,i,a;for(let l=0;l<t.length-1;l+=1){let s=t[l];if(/^(cmd|meta|m)$/i.test(s))a=true;else if(/^a(lt)?$/i.test(s))n=true;else if(/^(c|ctrl|control)$/i.test(s))o=true;else if(/^s(hift)?$/i.test(s))i=true;else if(/^mod$/i.test(s))_e()||ar()?a=true:o=true;else throw new Error(`Unrecognized modifier name: ${s}`)}return n&&(r=`Alt-${r}`),o&&(r=`Ctrl-${r}`),a&&(r=`Meta-${r}`),i&&(r=`Shift-${r}`),r}var fo=e=>({editor:t,view:r,tr:n,dispatch:o})=>{let i=mo(e).split(/-(?!$)/),a=i.find(d=>!["Alt","Ctrl","Meta","Shift"].includes(d)),l=new KeyboardEvent("keydown",{key:a==="Space"?" ":a,altKey:i.includes("Alt"),ctrlKey:i.includes("Ctrl"),metaKey:i.includes("Meta"),shiftKey:i.includes("Shift"),bubbles:true,cancelable:true}),s=t.captureTransaction(()=>{r.someProp("handleKeyDown",d=>d(r,l));});return s?.steps.forEach(d=>{let p=d.map(n.mapping);p&&o&&n.maybeStep(p);}),true};function lt(e,t,r={}){let{from:n,to:o,empty:i}=e.selection,a=t?V(t,e.schema):null,l=[];e.doc.nodesBetween(n,o,(u,m)=>{if(u.isText)return;let c=Math.max(n,m),f=Math.min(o,m+u.nodeSize);l.push({node:u,from:c,to:f});});let s=o-n,d=l.filter(u=>a?a.name===u.node.type.name:true).filter(u=>Ie(u.node.attrs,r,{strict:false}));return i?!!d.length:d.reduce((u,m)=>u+m.to-m.from,0)>=s}var go=(e,t={})=>({state:r,dispatch:n})=>{let o=V(e,r.schema);return lt(r,o,t)?lift(r,n):false},yo=()=>({state:e,dispatch:t})=>liftEmptyBlock(e,t),ko=e=>({state:t,dispatch:r})=>{let n=V(e,t.schema);return liftListItem(n)(t,r)},xo=()=>({state:e,dispatch:t})=>newlineInCode(e,t);function lr(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function qt(e,t){let r=typeof t=="string"?[t]:t;return Object.keys(e).reduce((n,o)=>(r.includes(o)||(n[o]=e[o]),n),{})}var Mo=(e,t)=>({tr:r,state:n,dispatch:o})=>{let i=null,a=null,l=lr(typeof e=="string"?e:e.name,n.schema);if(!l)return false;l==="node"&&(i=V(e,n.schema)),l==="mark"&&(a=Q(e,n.schema));let s=false;return r.selection.ranges.forEach(d=>{n.doc.nodesBetween(d.$from.pos,d.$to.pos,(p,u)=>{i&&i===p.type&&(s=true,o&&r.setNodeMarkup(u,void 0,qt(p.attrs,t))),a&&p.marks.length&&p.marks.forEach(m=>{a===m.type&&(s=true,o&&r.addMark(u,u+p.nodeSize,a.create(qt(m.attrs,t))));});});}),s},So=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),true),To=()=>({tr:e,dispatch:t})=>{if(t){let r=new AllSelection(e.doc);e.setSelection(r);}return true},Ro=()=>({state:e,dispatch:t})=>selectNodeBackward(e,t),Po=()=>({state:e,dispatch:t})=>selectNodeForward(e,t),zo=()=>({state:e,dispatch:t})=>selectParentNode(e,t),_o=()=>({state:e,dispatch:t})=>selectTextblockEnd(e,t),$o=()=>({state:e,dispatch:t})=>selectTextblockStart(e,t);function Do(e,t,r={},n={}){return he(e,t,{slice:false,parseOptions:r,errorOnInvalidContent:n.errorOnInvalidContent})}var Ho=(e,{errorOnInvalidContent:t,emitUpdate:r=true,parseOptions:n={}}={})=>({editor:o,tr:i,dispatch:a,commands:l})=>{let{doc:s}=i;if(n.preserveWhitespace!=="full"){let d=Do(e,o.schema,n,{errorOnInvalidContent:t??o.options.enableContentCheck});return a&&i.replaceWith(0,s.content.size,d).setMeta("preventUpdate",!r),true}return a&&i.setMeta("preventUpdate",!r),l.insertContentAt({from:0,to:s.content.size},e,{parseOptions:n,errorOnInvalidContent:t??o.options.enableContentCheck})};function Oo(e,t){let r=Q(t,e.schema),{from:n,to:o,empty:i}=e.selection,a=[];i?(e.storedMarks&&a.push(...e.storedMarks),a.push(...e.selection.$head.marks())):e.doc.nodesBetween(n,o,s=>{a.push(...s.marks);});let l=a.find(s=>s.type.name===r.name);return l?{...l.attrs}:{}}function Fo(e,t){let r=new Transform(e);return t.forEach(n=>{n.steps.forEach(o=>{r.step(o);});}),r}function Vo(e){for(let t=0;t<e.edgeCount;t+=1){let{type:r}=e.edge(t);if(r.isTextblock&&!r.hasRequiredAttrs())return r}return null}function jo(e,t){for(let r=e.depth;r>0;r-=1){let n=e.node(r);if(t(n))return {pos:r>0?e.before(r):0,start:e.start(r),depth:r,node:n}}}function ct(e){return t=>jo(t.$from,e)}function E(e,t,r){return e.config[t]===void 0&&e.parent?E(e.parent,t,r):typeof e.config[t]=="function"?e.config[t].bind({...r,parent:e.parent?E(e.parent,t,r):null}):e.config[t]}function Ko(e){return typeof e=="function"}function _(e,t=void 0,...r){return Ko(e)?t?e.bind(t)(...r):e(...r):e}function ae(e){let t=e.filter(o=>o.type==="extension"),r=e.filter(o=>o.type==="node"),n=e.filter(o=>o.type==="mark");return {baseExtensions:t,nodeExtensions:r,markExtensions:n}}function Jo(e){let t=[],r="",n=false,o=false,i=0,a=e.length;for(let l=0;l<a;l+=1){let s=e[l];if(s==="'"&&!o){n=!n,r+=s;continue}if(s==='"'&&!n){o=!o,r+=s;continue}if(!n&&!o){if(s==="("){i+=1,r+=s;continue}if(s===")"&&i>0){i-=1,r+=s;continue}if(s===";"&&i===0){t.push(r),r="";continue}}r+=s;}return r&&t.push(r),t}function Jt(e){let t=[],r=Jo(e||""),n=r.length;for(let o=0;o<n;o+=1){let i=r[o],a=i.indexOf(":");if(a===-1)continue;let l=i.slice(0,a).trim(),s=i.slice(a+1).trim();l&&s&&t.push([l,s]);}return t}function le(...e){return e.filter(t=>!!t).reduce((t,r)=>{let n={...t};return Object.entries(r).forEach(([o,i])=>{if(!n[o]){n[o]=i;return}if(o==="class"){let l=i?String(i).split(" "):[],s=n[o]?n[o].split(" "):[],d=l.filter(p=>!s.includes(p));n[o]=[...s,...d].join(" ");}else if(o==="style"){let l=new Map([...Jt(n[o]),...Jt(i)]);n[o]=Array.from(l.entries()).map(([s,d])=>`${s}: ${d}`).join("; ");}else n[o]=i;}),n},{})}function Qo(e,t,r){let{from:n,to:o}=t,{blockSeparator:i=`
|
|
2
|
+
|
|
3
|
+
`,textSerializers:a={}}=r||{},l="";return e.nodesBetween(n,o,(s,d,p,u)=>{var m;s.isBlock&&d>n&&(l+=i);let c=a?.[s.type.name];if(c)return p&&(l+=c({node:s,pos:d,parent:p,index:u,range:t})),false;s.isText&&(l+=(m=s?.text)==null?void 0:m.slice(Math.max(n,d)-d,o-d));}),l}function Zo(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,r])=>[t,r.spec.toText]))}function ei(e,t=JSON.stringify){let r={};return e.filter(n=>{let o=t(n);return Object.prototype.hasOwnProperty.call(r,o)?false:r[o]=true})}function ti(e){let t=ei(e);return t.length===1?t:t.filter((r,n)=>!t.filter((i,a)=>a!==n).some(i=>r.oldRange.from>=i.oldRange.from&&r.oldRange.to<=i.oldRange.to&&r.newRange.from>=i.newRange.from&&r.newRange.to<=i.newRange.to))}function ri(e){let{mapping:t,steps:r}=e,n=[];return t.maps.forEach((o,i)=>{let a=[];if(o.ranges.length)o.forEach((l,s)=>{a.push({from:l,to:s});});else {let{from:l,to:s}=r[i];if(l===void 0||s===void 0)return;a.push({from:l,to:s});}a.forEach(({from:l,to:s})=>{let d=t.slice(i).map(l,-1),p=t.slice(i).map(s),u=t.invert().map(d,-1),m=t.invert().map(p);n.push({oldRange:{from:u,to:m},newRange:{from:d,to:p}});});}),ti(n)}function ze(e,t,r){return Object.fromEntries(Object.entries(r).filter(([n])=>{let o=e.find(i=>i.type===t&&i.name===n);return o?o.attribute.keepOnSplit:false}))}function oi(e,t,r={}){let{empty:n,ranges:o}=e.selection,i=t?Q(t,e.schema):null;if(n)return !!(e.storedMarks||e.selection.$from.marks()).filter(u=>i?i.name===u.type.name:true).find(u=>Ie(u.attrs,r,{strict:false}));let a=0,l=[];if(o.forEach(({$from:u,$to:m})=>{let c=u.pos,f=m.pos;e.doc.nodesBetween(c,f,(h,g)=>{if(i&&h.inlineContent&&!h.type.allowsMarkType(i))return false;if(!h.isText&&!h.marks.length)return;let v=Math.max(c,g),C=Math.min(f,g+h.nodeSize),T=C-v;a+=T,l.push(...h.marks.map(x=>({mark:x,from:v,to:C})));});}),a===0)return false;let s=l.filter(u=>i?i.name===u.mark.type.name:true).filter(u=>Ie(u.mark.attrs,r,{strict:false})).reduce((u,m)=>u+m.to-m.from,0),d=l.filter(u=>i?u.mark.type!==i&&u.mark.type.excludes(i):true).reduce((u,m)=>u+m.to-m.from,0);return (s>0?s+d:s)>=a}function Zt(e,t){let{nodeExtensions:r}=ae(t),n=r.find(a=>a.name===e);if(!n)return false;let o={name:n.name,options:n.options,storage:n.storage},i=_(E(n,"group",o));return typeof i!="string"?false:i.split(" ").includes("list")}function pr(e,{checkChildren:t=true,ignoreWhitespace:r=false}={}){var n;if(r){if(e.type.name==="hardBreak")return true;if(e.isText)return !/\S/.test((n=e.text)!=null?n:"")}if(e.isText)return !e.text;if(e.isAtom||e.isLeaf)return false;if(e.content.childCount===0)return true;if(t){let o=true;return e.content.forEach(i=>{o!==false&&(pr(i,{ignoreWhitespace:r,checkChildren:t})||(o=false));}),o}return false}function ii(e,t,r){var n;let{selection:o}=t,i=null;if(ir(o)&&(i=o.$cursor),i){let l=(n=e.storedMarks)!=null?n:i.marks();return i.parent.type.allowsMarkType(r)&&(!!r.isInSet(l)||!l.some(d=>d.type.excludes(r)))}let{ranges:a}=o;return a.some(({$from:l,$to:s})=>{let d=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(r):false;return e.doc.nodesBetween(l.pos,s.pos,(p,u,m)=>{if(d)return false;if(p.isInline){let c=!m||m.type.allowsMarkType(r),f=!!r.isInSet(p.marks)||!p.marks.some(h=>h.type.excludes(r));d=c&&f;}return !d}),d})}var si=(e,t={})=>({tr:r,state:n,dispatch:o})=>{let{selection:i}=r,{empty:a,ranges:l}=i,s=Q(e,n.schema);if(o)if(a){let d=Oo(n,s);r.addStoredMark(s.create({...d,...t}));}else l.forEach(d=>{let p=d.$from.pos,u=d.$to.pos;n.doc.nodesBetween(p,u,(m,c)=>{let f=Math.max(c,p),h=Math.min(c+m.nodeSize,u);m.marks.find(v=>v.type===s)?m.marks.forEach(v=>{s===v.type&&r.addMark(f,h,s.create({...v.attrs,...t}));}):r.addMark(f,h,s.create(t));});});return ii(n,r,s)},ai=(e,t)=>({tr:r})=>(r.setMeta(e,t),true),li=(e,t={})=>({state:r,dispatch:n,chain:o})=>{let i=V(e,r.schema),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),i.isTextblock?o().command(({commands:l})=>setBlockType(i,{...a,...t})(r)?true:l.clearNodes()).command(({state:l})=>setBlockType(i,{...a,...t})(l,n)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),false)},di=e=>({tr:t,dispatch:r})=>{if(r){let{doc:n}=t,o=oe(e,0,n.content.size),i=NodeSelection.create(n,o);t.setSelection(i);}return true},ui=(e,t)=>({tr:r,state:n,dispatch:o})=>{let{selection:i}=n,a,l;return typeof t=="number"?(a=t,l=t):t&&"from"in t&&"to"in t?(a=t.from,l=t.to):(a=i.from,l=i.to),o&&r.doc.nodesBetween(a,l,(s,d)=>{s.isText||r.setNodeMarkup(d,void 0,{...s.attrs,dir:e});}),true},pi=e=>({tr:t,dispatch:r})=>{if(r){let{doc:n}=t,{from:o,to:i}=typeof e=="number"?{from:e,to:e}:e,a=TextSelection.atStart(n).from,l=TextSelection.atEnd(n).to,s=oe(o,a,l),d=oe(i,a,l),p=TextSelection.create(n,s,d);t.setSelection(p);}return true},fi=e=>({state:t,dispatch:r})=>{let n=V(e,t.schema);return sinkListItem(n)(t,r)};function tr(e,t){let r=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(r){let n=r.filter(o=>t?.includes(o.type.name));e.tr.ensureMarks(n);}}var bi=({keepMarks:e=true}={})=>({tr:t,state:r,dispatch:n,editor:o})=>{let{selection:i,doc:a}=t,{$from:l,$to:s}=i,d=o.extensionManager.attributes,p=ze(d,l.node().type.name,l.node().attrs);if(i instanceof NodeSelection&&i.node.isBlock)return !l.parentOffset||!canSplit(a,l.pos)?false:(n&&(e&&tr(r,o.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),true);if(!l.parent.isBlock)return false;let u=s.parentOffset===s.parent.content.size,m=l.depth===0?void 0:Vo(l.node(-1).contentMatchAt(l.indexAfter(-1))),c=u&&m?[{type:m,attrs:p}]:void 0,f=canSplit(t.doc,t.mapping.map(l.pos),1,c);if(!c&&!f&&canSplit(t.doc,t.mapping.map(l.pos),1,m?[{type:m}]:void 0)&&(f=true,c=m?[{type:m,attrs:p}]:void 0),n){if(f&&(i instanceof TextSelection&&t.deleteSelection(),t.split(t.mapping.map(l.pos),1,c),m&&!u&&!l.parentOffset&&l.parent.type!==m)){let h=t.mapping.map(l.before()),g=t.doc.resolve(h);l.node(-1).canReplaceWith(g.index(),g.index()+1,m)&&t.setNodeMarkup(t.mapping.map(l.before()),m);}e&&tr(r,o.extensionManager.splittableMarks),t.scrollIntoView();}return f},wi=(e,t={})=>({tr:r,state:n,dispatch:o,editor:i})=>{var a;let l=V(e,n.schema),{$from:s,$to:d}=n.selection,p=n.selection.node;if(p&&p.isBlock||s.depth<2||!s.sameParent(d))return false;let u=s.node(-1);if(u.type!==l)return false;let m=i.extensionManager.attributes;if(s.parent.content.size===0&&s.node(-1).childCount===s.indexAfter(-1)){if(s.depth===2||s.node(-3).type!==l||s.index(-2)!==s.node(-2).childCount-1)return false;if(o){let v=Fragment$1.empty,C=s.index(-1)?1:s.index(-2)?2:3;for(let O=s.depth-C;O>=s.depth-3;O-=1)v=Fragment$1.from(s.node(O).copy(v));let T=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3,x={...ze(m,s.node().type.name,s.node().attrs),...t},M=((a=l.contentMatch.defaultType)==null?void 0:a.createAndFill(x))||void 0;v=v.append(Fragment$1.from(l.createAndFill(null,M)||void 0));let N=s.before(s.depth-(C-1));r.replace(N,s.after(-T),new Slice(v,4-C,0));let z=-1;r.doc.nodesBetween(N,r.doc.content.size,(O,U)=>{if(z>-1)return false;O.isTextblock&&O.content.size===0&&(z=U+1);}),z>-1&&r.setSelection(TextSelection.near(r.doc.resolve(z))),r.scrollIntoView();}return true}let c=d.pos===s.end()?u.contentMatchAt(0).defaultType:null,f={...ze(m,u.type.name,u.attrs),...t},h={...ze(m,s.node().type.name,s.node().attrs),...t};r.delete(s.pos,d.pos);let g=c?[{type:l,attrs:f},{type:c,attrs:h}]:[{type:l,attrs:f}];if(!canSplit(r.doc,s.pos,2))return false;if(o){let{selection:v,storedMarks:C}=n,{splittableMarks:T}=i.extensionManager,x=C||v.$to.parentOffset&&v.$from.marks();if(r.split(s.pos,2,g).scrollIntoView(),!x||!o)return true;let M=x.filter(N=>T.includes(N.type.name));r.ensureMarks(M);}return true},rt=(e,t)=>{let r=ct(a=>a.type===t)(e.selection);if(!r)return true;let n=e.doc.resolve(Math.max(0,r.pos-1)).before(r.depth);if(n===void 0)return true;let o=e.doc.nodeAt(n);return r.node.type===o?.type&&canJoin(e.doc,r.pos)&&e.join(r.pos),true},nt=(e,t)=>{let r=ct(a=>a.type===t)(e.selection);if(!r)return true;let n=e.doc.resolve(r.start).after(r.depth);if(n===void 0)return true;let o=e.doc.nodeAt(n);return r.node.type===o?.type&&canJoin(e.doc,n)&&e.join(n),true},xi=(e,t,r,n={})=>({editor:o,tr:i,state:a,dispatch:l,chain:s,commands:d,can:p})=>{let{extensions:u,splittableMarks:m}=o.extensionManager,c=V(e,a.schema),f=V(t,a.schema),{selection:h,storedMarks:g}=a,{$from:v,$to:C}=h,T=v.blockRange(C),x=g||h.$to.parentOffset&&h.$from.marks();if(!T)return false;let M=ct(N=>Zt(N.type.name,u))(h);if(T.depth>=1&&M&&T.depth-M.depth<=1){if(M.node.type===c)return d.liftListItem(f);if(Zt(M.node.type.name,u)&&c.validContent(M.node.content)&&l)return s().command(()=>(i.setNodeMarkup(M.pos,c),true)).command(()=>rt(i,c)).command(()=>nt(i,c)).run()}return !r||!x||!l?s().command(()=>p().wrapInList(c,n)?true:d.clearNodes()).wrapInList(c,n).command(()=>rt(i,c)).command(()=>nt(i,c)).run():s().command(()=>{let N=p().wrapInList(c,n),z=x.filter(O=>m.includes(O.type.name));return i.ensureMarks(z),N?true:d.clearNodes()}).wrapInList(c,n).command(()=>rt(i,c)).command(()=>nt(i,c)).run()},Mi=(e,t={},r={})=>({state:n,commands:o})=>{let{extendEmptyMarkRange:i=false}=r,a=Q(e,n.schema);return oi(n,a,t)?o.unsetMark(a,{extendEmptyMarkRange:i}):o.setMark(a,t)},Si=(e,t,r={})=>({state:n,commands:o})=>{let i=V(e,n.schema),a=V(t,n.schema),l=lt(n,i,r),s;return n.selection.$anchor.sameParent(n.selection.$head)&&(s=n.selection.$anchor.parent.attrs),l?o.setNode(a,s):o.setNode(i,{...s,...r})},Ei=(e,t={})=>({state:r,commands:n})=>{let o=V(e,r.schema);return lt(r,o,t)?n.lift(o):n.wrapIn(o,t)},Ti=()=>({state:e,dispatch:t})=>{let r=e.plugins;for(let n=0;n<r.length;n+=1){let o=r[n],i;if(o.spec.isInputRules&&(i=o.getState(e))){if(t){let a=e.tr,l=i.transform;for(let s=l.steps.length-1;s>=0;s-=1)a.step(l.steps[s].invert(l.docs[s]));if(i.text){let s=a.doc.resolve(i.from).marks();a.replaceWith(i.from,i.to,e.schema.text(i.text,s));}else a.delete(i.from,i.to);}return true}}return false},Ci=()=>({tr:e,dispatch:t})=>{let{selection:r}=e,{empty:n,ranges:o}=r;return n||t&&o.forEach(i=>{e.removeMark(i.$from.pos,i.$to.pos);}),true},Ri=(e,t={})=>({tr:r,state:n,dispatch:o})=>{var i;let{extendEmptyMarkRange:a=false}=t,{selection:l}=r,s=Q(e,n.schema),{$from:d,empty:p,ranges:u}=l;if(!o)return true;if(p&&a){let{from:m,to:c}=l,f=(i=d.marks().find(g=>g.type===s))==null?void 0:i.attrs,h=or(d,s,f);h&&(m=h.from,c=h.to),r.removeMark(m,c,s);}else u.forEach(m=>{r.removeMark(m.$from.pos,m.$to.pos,s);});return r.removeStoredMark(s),true},Ni=e=>({tr:t,state:r,dispatch:n})=>{let{selection:o}=r,i,a;return typeof e=="number"?(i=e,a=e):e&&"from"in e&&"to"in e?(i=e.from,a=e.to):(i=o.from,a=o.to),n&&t.doc.nodesBetween(i,a,(l,s)=>{if(l.isText)return;let d={...l.attrs};delete d.dir,t.setNodeMarkup(s,void 0,d);}),true},Pi=(e,t={})=>({tr:r,state:n,dispatch:o})=>{let i=null,a=null,l=lr(typeof e=="string"?e:e.name,n.schema);if(!l)return false;l==="node"&&(i=V(e,n.schema)),l==="mark"&&(a=Q(e,n.schema));let s=false;return r.selection.ranges.forEach(d=>{let p=d.$from.pos,u=d.$to.pos,m,c,f,h;r.selection.empty?n.doc.nodesBetween(p,u,(g,v)=>{i&&i===g.type&&(s=true,f=Math.max(v,p),h=Math.min(v+g.nodeSize,u),m=v,c=g);}):n.doc.nodesBetween(p,u,(g,v)=>{v<p&&i&&i===g.type&&(s=true,f=Math.max(v,p),h=Math.min(v+g.nodeSize,u),m=v,c=g),v>=p&&v<=u&&(i&&i===g.type&&(s=true,o&&r.setNodeMarkup(v,void 0,{...g.attrs,...t})),a&&g.marks.length&&g.marks.forEach(C=>{if(a===C.type&&(s=true,o)){let T=Math.max(v,p),x=Math.min(v+g.nodeSize,u);r.addMark(T,x,a.create({...C.attrs,...t}));}}));}),c&&(m!==void 0&&o&&r.setNodeMarkup(m,void 0,{...c.attrs,...t}),a&&c.marks.length&&c.marks.forEach(g=>{a===g.type&&o&&r.addMark(f,h,a.create({...g.attrs,...t}));}));}),s},zi=(e,t={})=>({state:r,dispatch:n})=>{let o=V(e,r.schema);return wrapIn(o,t)(r,n)},_i=(e,t={})=>({state:r,dispatch:n})=>{let o=V(e,r.schema);return wrapInList(o,t)(r,n)};function Bi(e){return Object.prototype.toString.call(e).slice(8,-1)}function Pe(e){return Bi(e)!=="Object"?false:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function fr(e,t){let r={...e};return Pe(e)&&Pe(t)&&Object.keys(t).forEach(n=>{Pe(t[n])&&Pe(e[n])?r[n]=fr(e[n],t[n]):r[n]=t[n];}),r}var ut=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name;}get options(){return {..._(E(this,"addOptions",{name:this.name}))||{}}}get storage(){return {..._(E(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>fr(this.options,e)});return t.name=this.name,t.parent=this.parent,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},pt=class hr extends ut{constructor(){super(...arguments),this.type="mark";}static create(t={}){let r=typeof t=="function"?t():t;return new hr(r)}static handleExit({editor:t,mark:r}){let{tr:n}=t.state,o=t.state.selection.$from;if(o.pos===o.end()){let a=o.marks();if(!!!a.find(d=>d?.type.name===r.name))return false;let s=a.find(d=>d?.type.name===r.name);return s&&n.removeStoredMark(s),n.insertText(" ",o.pos),t.view.dispatch(n),true}return false}configure(t){return super.configure(t)}extend(t){let r=typeof t=="function"?t():t;return super.extend(r)}};var Ji={};it(Ji,{ClipboardTextSerializer:()=>Gi,Commands:()=>Qi,Delete:()=>es,Drop:()=>ns,Editable:()=>ss,FocusEvents:()=>cs,Keymap:()=>ps,Paste:()=>hs,Tabindex:()=>ys,TextDirection:()=>ws,focusEventsPluginKey:()=>br});var I=class gr extends ut{constructor(){super(...arguments),this.type="extension";}static create(t={}){let r=typeof t=="function"?t():t;return new gr(r)}configure(t){return super.configure(t)}extend(t){let r=typeof t=="function"?t():t;return super.extend(r)}},Gi=I.create({name:"clipboardTextSerializer",addOptions(){return {blockSeparator:void 0}},addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:r}=e,{doc:n,selection:o}=t,{ranges:i}=o,a=Math.min(...i.map(p=>p.$from.pos)),l=Math.max(...i.map(p=>p.$to.pos)),s=Zo(r);return Qo(n,{from:a,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:s})}}})]}}),Qi=I.create({name:"commands",addCommands(){return {...rr}}}),es=I.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var r,n,o;let i=()=>{var a,l,s,d;if((d=(s=(l=(a=this.editor.options.coreExtensionOptions)==null?void 0:a.delete)==null?void 0:l.filterTransaction)==null?void 0:s.call(l,e))!=null?d:e.getMeta("y-sync$"))return;let p=Fo(e.before,[e,...t]);ri(p).forEach(c=>{p.mapping.mapResult(c.oldRange.from).deletedAfter&&p.mapping.mapResult(c.oldRange.to).deletedBefore&&p.before.nodesBetween(c.oldRange.from,c.oldRange.to,(f,h)=>{let g=h+f.nodeSize-2,v=c.oldRange.from<=h&&g<=c.oldRange.to;this.editor.emit("delete",{type:"node",node:f,from:h,to:g,newFrom:p.mapping.map(h),newTo:p.mapping.map(g),deletedRange:c.oldRange,newRange:c.newRange,partial:!v,editor:this.editor,transaction:e,combinedTransform:p});});});let m=p.mapping;p.steps.forEach((c,f)=>{var h,g;if(c instanceof RemoveMarkStep){let v=m.slice(f).map(c.from,-1),C=m.slice(f).map(c.to),T=m.invert().map(v,-1),x=m.invert().map(C),M=(h=p.doc.nodeAt(v-1))==null?void 0:h.marks.some(z=>z.eq(c.mark)),N=(g=p.doc.nodeAt(C))==null?void 0:g.marks.some(z=>z.eq(c.mark));this.editor.emit("delete",{type:"mark",mark:c.mark,from:c.from,to:c.to,deletedRange:{from:T,to:x},newRange:{from:v,to:C},partial:!!(N||M),editor:this.editor,transaction:e,combinedTransform:p});}});};(o=(n=(r=this.editor.options.coreExtensionOptions)==null?void 0:r.delete)==null?void 0:n.async)==null||o?setTimeout(i,0):i();}}),ns=I.create({name:"drop",addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("tiptapDrop"),props:{handleDrop:(e,t,r,n)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:r,moved:n});}}})]}}),ss=I.create({name:"editable",addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("editable"),props:{editable:()=>this.editor.options.editable}})]}}),br=new PluginKey("focusEvents"),cs=I.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:e}=this;return [new Plugin({key:br,props:{handleDOMEvents:{focus:(t,r)=>{e.isFocused=true;let n=e.state.tr.setMeta("focus",{event:r}).setMeta("addToHistory",false);return t.dispatch(n),false},blur:(t,r)=>{e.isFocused=false;let n=e.state.tr.setMeta("blur",{event:r}).setMeta("addToHistory",false);return t.dispatch(n),false}}}})]}}),ps=I.create({name:"keymap",addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:a})=>[()=>a.undoInputRule(),()=>a.command(({tr:l})=>{let{selection:s,doc:d}=l,{empty:p,$anchor:u}=s,{pos:m,parent:c}=u,f=u.parent.isTextblock&&m>0?l.doc.resolve(m-1):u,h=f.parent.type.spec.isolating,g=u.pos-u.parentOffset,v=h&&f.parent.childCount===1?g===u.pos:Selection.atStart(d).from===m;return !p||!c.type.isTextblock||c.textContent.length||!v||v&&u.parent.type.name==="paragraph"?false:a.clearNodes()}),()=>a.deleteSelection(),()=>a.joinBackward(),()=>a.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:a})=>[()=>a.deleteSelection(),()=>a.deleteCurrentNode(),()=>a.joinForward(),()=>a.selectNodeForward()]),n={Enter:()=>this.editor.commands.first(({commands:a})=>[()=>a.newlineInCode(),()=>a.createParagraphNear(),()=>a.liftEmptyBlock(),()=>a.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},o={...n},i={...n,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return _e()||ar()?i:o},addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("clearDocument"),appendTransaction:(e,t,r)=>{if(e.some(h=>h.getMeta("composition")))return;let n=e.some(h=>h.docChanged)&&!t.doc.eq(r.doc),o=e.some(h=>h.getMeta("preventClearDocument"));if(!n||o)return;let{empty:i,from:a,to:l}=t.selection,s=Selection.atStart(t.doc).from,d=Selection.atEnd(t.doc).to;if(i||!(a===s&&l===d)||!pr(r.doc))return;let m=r.tr,c=$e({state:r,transaction:m}),{commands:f}=new st({editor:this.editor,state:c});if(f.clearNodes(),!!m.steps.length)return m}})]}}),hs=I.create({name:"paste",addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("tiptapPaste"),props:{handlePaste:(e,t,r)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:r});}}})]}}),ys=I.create({name:"tabindex",addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}}),ws=I.create({name:"textDirection",addOptions(){return {direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return [];let{nodeExtensions:e}=ae(this.extensions);return [{types:e.filter(t=>t.name!=="text").map(t=>t.name),attributes:{dir:{default:this.options.direction,parseHTML:t=>{let r=t.getAttribute("dir");return r&&(r==="ltr"||r==="rtl"||r==="auto")?r:this.options.direction},renderHTML:t=>t.dir?{dir:t.dir}:{}}}}]},addProseMirrorPlugins(){return [new Plugin({key:new PluginKey("textDirection"),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}});var xs={};it(xs,{createAtomBlockMarkdownSpec:()=>Ms,createBlockMarkdownSpec:()=>Ss,createInlineMarkdownSpec:()=>Cs,parseAttributes:()=>ft,parseIndentedBlocks:()=>Rs,renderNestedMarkdownContent:()=>Ns,serializeAttributes:()=>ht});function ft(e){if(!e?.trim())return {};let t={},r=[],n=e.replace(/["']([^"']*)["']/g,d=>(r.push(d),`__QUOTED_${r.length-1}__`)),o=n.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(o){let d=o.map(p=>p.trim().slice(1));t.class=d.join(" ");}let i=n.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);i&&(t.id=i[1]);let a=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(n.matchAll(a)).forEach(([,d,p])=>{var u;let m=parseInt(((u=p.match(/__QUOTED_(\d+)__/))==null?void 0:u[1])||"0",10),c=r[m];c&&(t[d]=c.slice(1,-1));});let s=n.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return s&&s.split(/\s+/).filter(Boolean).forEach(p=>{p.match(/^[a-zA-Z][\w-]*$/)&&(t[p]=true);}),t}function ht(e){if(!e||Object.keys(e).length===0)return "";let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(n=>t.push(`.${n}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([r,n])=>{r==="class"||r==="id"||(n===true?t.push(r):n!==false&&n!=null&&t.push(`${r}="${String(n)}"`));}),t.join(" ")}function Ms(e){let{nodeName:t,name:r,parseAttributes:n=ft,serializeAttributes:o=ht,defaultAttributes:i={},requiredAttributes:a=[],allowedAttributes:l}=e,s=r||t,d=p=>{if(!l)return p;let u={};return l.forEach(m=>{m in p&&(u[m]=p[m]);}),u};return {parseMarkdown:(p,u)=>{let m={...i,...p.attributes};return u.createNode(t,m,[])},markdownTokenizer:{name:t,level:"block",start(p){var u;let m=new RegExp(`^:::${s}(?:\\s|$)`,"m"),c=(u=p.match(m))==null?void 0:u.index;return c!==void 0?c:-1},tokenize(p,u,m){let c=new RegExp(`^:::${s}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),f=p.match(c);if(!f)return;let h=f[1]||"",g=n(h);if(!a.find(C=>!(C in g)))return {type:t,raw:f[0],attributes:g}}},renderMarkdown:p=>{let u=d(p.attrs||{}),m=o(u),c=m?` {${m}}`:"";return `:::${s}${c} :::`}}}function Ss(e){let{nodeName:t,name:r,getContent:n,parseAttributes:o=ft,serializeAttributes:i=ht,defaultAttributes:a={},content:l="block",allowedAttributes:s}=e,d=r||t,p=u=>{if(!s)return u;let m={};return s.forEach(c=>{c in u&&(m[c]=u[c]);}),m};return {parseMarkdown:(u,m)=>{let c;if(n){let h=n(u);c=typeof h=="string"?[{type:"text",text:h}]:h;}else l==="block"?c=m.parseChildren(u.tokens||[]):c=m.parseInline(u.tokens||[]);let f={...a,...u.attributes};return m.createNode(t,f,c)},markdownTokenizer:{name:t,level:"block",start(u){var m;let c=new RegExp(`^:::${d}`,"m"),f=(m=u.match(c))==null?void 0:m.index;return f!==void 0?f:-1},tokenize(u,m,c){var f;let h=new RegExp(`^:::${d}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),g=u.match(h);if(!g)return;let[v,C=""]=g,T=o(C),x=1,M=v.length,N="",z=/^:::([\w-]*)(\s.*)?/gm,O=u.slice(M);for(z.lastIndex=0;;){let U=z.exec(O);if(U===null)break;let Y=U.index,te=U[1];if(!((f=U[2])!=null&&f.endsWith(":::"))){if(te)x+=1;else if(x-=1,x===0){let ie=O.slice(0,Y);N=ie.trim();let G=u.slice(0,M+Y+U[0].length),R=[];if(N)if(l==="block")for(R=c.blockTokens(ie),R.forEach(X=>{X.text&&(!X.tokens||X.tokens.length===0)&&(X.tokens=c.inlineTokens(X.text));});R.length>0;){let X=R[R.length-1];if(X.type==="paragraph"&&(!X.text||X.text.trim()===""))R.pop();else break}else R=c.inlineTokens(N);return {type:t,raw:G,attributes:T,content:N,tokens:R}}}}}},renderMarkdown:(u,m)=>{let c=p(u.attrs||{}),f=i(c),h=f?` {${f}}`:"",g=m.renderChildren(u.content||[],`
|
|
4
|
+
|
|
5
|
+
`);return `:::${d}${h}
|
|
6
|
+
|
|
7
|
+
${g}
|
|
8
|
+
|
|
9
|
+
:::`}}}function Es(e){if(!e.trim())return {};let t={},r=/(\w+)=(?:"([^"]*)"|'([^']*)')/g,n=r.exec(e);for(;n!==null;){let[,o,i,a]=n;t[o]=i||a,n=r.exec(e);}return t}function Ts(e){return Object.entries(e).filter(([,t])=>t!=null).map(([t,r])=>`${t}="${r}"`).join(" ")}function Cs(e){let{nodeName:t,name:r,getContent:n,parseAttributes:o=Es,serializeAttributes:i=Ts,defaultAttributes:a={},selfClosing:l=false,allowedAttributes:s}=e,d=r||t,p=m=>{if(!s)return m;let c={};return s.forEach(f=>{let h=typeof f=="string"?f:f.name,g=typeof f=="string"?void 0:f.skipIfDefault;if(h in m){let v=m[h];if(g!==void 0&&v===g)return;c[h]=v;}}),c},u=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return {parseMarkdown:(m,c)=>{let f={...a,...m.attributes};if(l)return c.createNode(t,f);let h=n?n(m):m.content||"";return h?c.createNode(t,f,[c.createTextNode(h)]):c.createNode(t,f,[])},markdownTokenizer:{name:t,level:"inline",start(m){let c=l?new RegExp(`\\[${u}\\s*[^\\]]*\\]`):new RegExp(`\\[${u}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${u}\\]`),f=m.match(c),h=f?.index;return h!==void 0?h:-1},tokenize(m,c,f){let h=l?new RegExp(`^\\[${u}\\s*([^\\]]*)\\]`):new RegExp(`^\\[${u}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${u}\\]`),g=m.match(h);if(!g)return;let v="",C="";if(l){let[,x]=g;C=x;}else {let[,x,M]=g;C=x,v=M||"";}let T=o(C.trim());return {type:t,raw:g[0],content:v.trim(),attributes:T}}},renderMarkdown:m=>{let c="";n?c=n(m):m.content&&m.content.length>0&&(c=m.content.filter(v=>v.type==="text").map(v=>v.text).join(""));let f=p(m.attrs||{}),h=i(f),g=h?` ${h}`:"";return l?`[${d}${g}]`:`[${d}${g}]${c}[/${d}]`}}}function Rs(e,t,r){var n,o,i,a;let l=e.split(`
|
|
10
|
+
`),s=[],d="",p=0,u=t.baseIndentSize||2;for(;p<l.length;){let m=l[p],c=m.match(t.itemPattern);if(!c){if(s.length>0)break;if(m.trim()===""){p+=1,d=`${d}${m}
|
|
11
|
+
`;continue}else return}let f=t.extractItemData(c),{indentLevel:h,mainContent:g}=f;d=`${d}${m}
|
|
12
|
+
`;let v=[g];for(p+=1;p<l.length;){let M=l[p];if(M.trim()===""){let z=l.slice(p+1).findIndex(Y=>Y.trim()!=="");if(z===-1)break;if((((o=(n=l[p+1+z].match(/^(\s*)/))==null?void 0:n[1])==null?void 0:o.length)||0)>h){v.push(M),d=`${d}${M}
|
|
13
|
+
`,p+=1;continue}else break}if((((a=(i=M.match(/^(\s*)/))==null?void 0:i[1])==null?void 0:a.length)||0)>h)v.push(M),d=`${d}${M}
|
|
14
|
+
`,p+=1;else break}let C,T=v.slice(1);if(T.length>0){let M=T.map(N=>N.slice(h+u)).join(`
|
|
15
|
+
`);M.trim()&&(t.customNestedParser?C=t.customNestedParser(M):C=r.blockTokens(M));}let x=t.createToken(f,C);s.push(x);}if(s.length!==0)return {items:s,raw:d}}function Ns(e,t,r,n){if(!e||!Array.isArray(e.content))return "";let o=typeof r=="function"?r(n):r,[i,...a]=e.content,l=t.renderChildren([i]),s=`${o}${l}`;return a&&a.length>0&&a.forEach((d,p)=>{var u,m;let c=(m=(u=t.renderChild)==null?void 0:u.call(t,d,p+1))!=null?m:t.renderChildren([d]);if(c!=null){let f=c.split(`
|
|
16
|
+
`).map(h=>h?t.indent(h):t.indent("")).join(`
|
|
17
|
+
`);s+=d.type==="paragraph"?`
|
|
18
|
+
|
|
19
|
+
${f}`:`
|
|
20
|
+
${f}`;}}),s}var gt=class yr extends ut{constructor(){super(...arguments),this.type="node";}static create(t={}){let r=typeof t=="function"?t():t;return new yr(r)}configure(t){return super.configure(t)}extend(t){let r=typeof t=="function"?t():t;return super.extend(r)}};var As=20,vr=(e,t=0)=>{let r=[];return !e.children.length||t>As||Array.from(e.children).forEach(n=>{n.tagName==="SPAN"?r.push(n):n.children.length&&r.push(...vr(n,t+1));}),r},zs=e=>{if(!e.children.length)return;let t=vr(e);t&&t.forEach(r=>{var n,o;let i=r.getAttribute("style"),a=(o=(n=r.parentElement)==null?void 0:n.closest("span"))==null?void 0:o.getAttribute("style");r.setAttribute("style",`${a};${i}`);});},bt=pt.create({name:"textStyle",priority:101,addOptions(){return {HTMLAttributes:{},mergeNestedSpanStyles:true}},parseHTML(){return [{tag:"span",consuming:false,getAttrs:e=>e.hasAttribute("style")?(this.options.mergeNestedSpanStyles&&zs(e),{}):false}]},renderHTML({HTMLAttributes:e}){return ["span",le(this.options.HTMLAttributes,e),0]},addCommands(){return {toggleTextStyle:e=>({commands:t})=>t.toggleMark(this.name,e),removeEmptyTextStyle:()=>({tr:e})=>{let{selection:t}=e;return e.doc.nodesBetween(t.from,t.to,(r,n)=>{if(r.isTextblock)return true;r.marks.filter(o=>o.type===this.type).some(o=>Object.values(o.attrs).some(i=>!!i))||e.removeMark(n,n+r.nodeSize,this.type);}),true}}}}),Is=I.create({name:"backgroundColor",addOptions(){return {types:["textStyle"]}},addGlobalAttributes(){return [{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:e=>{var t;let r=e.getAttribute("style");if(r){let n=r.split(";").map(o=>o.trim()).filter(Boolean);for(let o=n.length-1;o>=0;o-=1){let i=n[o].split(":");if(i.length>=2){let a=i[0].trim().toLowerCase(),l=i.slice(1).join(":").trim();if(a==="background-color")return l.replace(/['"]+/g,"")}}}return (t=e.style.backgroundColor)==null?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.backgroundColor?{style:`background-color: ${e.backgroundColor}`}:{}}}}]},addCommands(){return {setBackgroundColor:e=>({chain:t})=>t().setMark("textStyle",{backgroundColor:e}).run(),unsetBackgroundColor:()=>({chain:e})=>e().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),_s=I.create({name:"color",addOptions(){return {types:["textStyle"]}},addGlobalAttributes(){return [{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;let r=e.getAttribute("style");if(r){let n=r.split(";").map(o=>o.trim()).filter(Boolean);for(let o=n.length-1;o>=0;o-=1){let i=n[o].split(":");if(i.length>=2){let a=i[0].trim().toLowerCase(),l=i.slice(1).join(":").trim();if(a==="color")return l.replace(/['"]+/g,"")}}}return (t=e.style.color)==null?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return {setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),Ls=I.create({name:"fontFamily",addOptions(){return {types:["textStyle"]}},addGlobalAttributes(){return [{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>e.style.fontFamily,renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily}`}:{}}}}]},addCommands(){return {setFontFamily:e=>({chain:t})=>t().setMark("textStyle",{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),$s=I.create({name:"fontSize",addOptions(){return {types:["textStyle"]}},addGlobalAttributes(){return [{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>e.style.fontSize,renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return {setFontSize:e=>({chain:t})=>t().setMark("textStyle",{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),Ds=I.create({name:"lineHeight",addOptions(){return {types:["textStyle"]}},addGlobalAttributes(){return [{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands(){return {setLineHeight:e=>({chain:t})=>t().setMark("textStyle",{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()}}});I.create({name:"textStyleKit",addExtensions(){let e=[];return this.options.backgroundColor!==false&&e.push(Is.configure(this.options.backgroundColor)),this.options.color!==false&&e.push(_s.configure(this.options.color)),this.options.fontFamily!==false&&e.push(Ls.configure(this.options.fontFamily)),this.options.fontSize!==false&&e.push($s.configure(this.options.fontSize)),this.options.lineHeight!==false&&e.push(Ds.configure(this.options.lineHeight)),this.options.textStyle!==false&&e.push(bt.configure(this.options.textStyle)),e}});function Os({node:e,updateAttributes:t,selected:r}){let n=useRef(null),[o,i]=useState(false),a=useRef({x:0,width:0}),{src:l,alt:s,title:d}=e.attrs,p=e.attrs.width;function u(m){m.preventDefault(),m.stopPropagation();let c=n.current?.offsetWidth??(typeof p=="number"?p:200);a.current={x:m.clientX,width:c},i(true);}return useEffect(()=>{if(!o)return;function m(f){let h=f.clientX-a.current.x,g=Math.max(60,Math.round(a.current.width+h));t({width:g,height:null});}function c(){i(false);}return document.addEventListener("mousemove",m),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",c);}},[o,t]),jsxs(NodeViewWrapper,{as:"span",className:`rte-image-wrapper${r?" rte-image-wrapper--selected":""}`,children:[jsx("img",{ref:n,src:l,alt:s??"",title:d??"",draggable:false,style:{display:"block",maxWidth:"100%",width:p?`${p}px`:void 0,cursor:o?"ew-resize":"default"}}),r&&jsxs(Fragment,{children:[jsx("span",{className:"rte-rh rte-rh--nw"}),jsx("span",{className:"rte-rh rte-rh--ne"}),jsx("span",{className:"rte-rh rte-rh--sw"}),jsx("span",{className:"rte-rh rte-rh--se",onMouseDown:u,title:"Drag to resize",role:"separator","aria-label":"Resize image"}),jsx("span",{className:"rte-rh rte-rh--e",onMouseDown:u,title:"Drag to resize",role:"separator","aria-label":"Resize image"}),p&&jsxs("span",{className:"rte-image-size-label","aria-live":"polite",children:[p,"px"]})]})]})}var kr=Hs.extend({name:"image",addAttributes(){return {...this.parent?.(),width:{default:null,parseHTML:e=>{let t=e.getAttribute("width");return t?parseInt(t,10):null},renderHTML:e=>e.width?{width:e.width,style:`width:${e.width}px;`}:{}},height:{default:null,parseHTML:e=>{let t=e.getAttribute("height");return t?parseInt(t,10):null},renderHTML:e=>e.height?{height:e.height}:{}}}},addNodeView(){return ReactNodeViewRenderer(Os)}}).configure({inline:true,allowBase64:true});function Bs({node:e,updateAttributes:t,selected:r}){let n=useRef(null),[o,i]=useState(false),a=useRef({x:0,width:0}),{src:l}=e.attrs,s=e.attrs.width;function d(p){p.preventDefault(),p.stopPropagation();let u=n.current?.offsetWidth??(typeof s=="number"?s:320);a.current={x:p.clientX,width:u},i(true);}return useEffect(()=>{if(!o)return;function p(m){let c=m.clientX-a.current.x,f=Math.max(120,Math.round(a.current.width+c));t({width:f});}function u(){i(false);}return document.addEventListener("mousemove",p),document.addEventListener("mouseup",u),()=>{document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u);}},[o,t]),jsx(NodeViewWrapper,{as:"div",className:`rte-video-wrapper${r?" rte-video-wrapper--selected":""}`,children:jsxs("div",{ref:n,style:{display:"inline-block",maxWidth:"100%",width:s?`${s}px`:"100%",position:"relative"},children:[jsx("video",{src:l,controls:true,style:{display:"block",width:"100%",maxWidth:"100%"}}),r&&jsx("span",{className:"rte-rh rte-rh--e",onMouseDown:d,title:"Drag to resize",role:"separator","aria-label":"Resize video"})]})})}var wr=gt.create({name:"resizableVideo",group:"block",atom:true,draggable:true,addAttributes(){return {src:{default:null},width:{default:null,parseHTML:e=>{let t=e.getAttribute("data-width");return t?parseInt(t,10):null},renderHTML:e=>e.width?{"data-width":e.width}:{}}}},parseHTML(){return [{tag:"div[data-type=resizable-video]"}]},renderHTML({HTMLAttributes:e}){return ["div",le({"data-type":"resizable-video"},e)]},addNodeView(){return ReactNodeViewRenderer(Bs)}});function Fs({node:e,updateAttributes:t,selected:r}){let n=useRef(null),[o,i]=useState(false),a=useRef({x:0,width:0}),{src:l}=e.attrs,s=e.attrs.width??480,d=e.attrs.height??Math.round(s*9/16);function p(u){u.preventDefault(),u.stopPropagation();let m=n.current?.offsetWidth??s;a.current={x:u.clientX,width:m},i(true);}return useEffect(()=>{if(!o)return;function u(c){let f=c.clientX-a.current.x,h=Math.max(160,Math.round(a.current.width+f));t({width:h,height:Math.round(h*9/16)});}function m(){i(false);}return document.addEventListener("mousemove",u),document.addEventListener("mouseup",m),()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",m);}},[o,t]),jsx(NodeViewWrapper,{as:"div",className:`rte-embed-wrapper${r?" rte-embed-wrapper--selected":""}`,children:jsxs("div",{ref:n,style:{display:"inline-block",position:"relative",width:`${s}px`,maxWidth:"100%"},children:[jsx("iframe",{src:l,width:s,height:d,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen",sandbox:"allow-scripts allow-same-origin allow-popups allow-presentation",title:"Embedded video",style:{display:"block",border:"none",maxWidth:"100%"}}),r&&jsx("span",{className:"rte-rh rte-rh--e",onMouseDown:p,title:"Drag to resize",role:"separator","aria-label":"Resize embed"})]})})}var xr=gt.create({name:"embedFrame",group:"block",atom:true,draggable:true,addAttributes(){return {src:{default:null},width:{default:480},height:{default:270}}},parseHTML(){return [{tag:"div[data-type=embed-frame]"}]},renderHTML({HTMLAttributes:e}){return ["div",le({"data-type":"embed-frame"},e)]},addNodeView(){return ReactNodeViewRenderer(Fs)}});function be(e){return marked.parse(e,{async:false})}function De(e){return e.replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi,`# $1
|
|
21
|
+
|
|
22
|
+
`).replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi,`## $1
|
|
23
|
+
|
|
24
|
+
`).replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi,`### $1
|
|
25
|
+
|
|
26
|
+
`).replace(/<h4[^>]*>([\s\S]*?)<\/h4>/gi,`#### $1
|
|
27
|
+
|
|
28
|
+
`).replace(/<h5[^>]*>([\s\S]*?)<\/h5>/gi,`##### $1
|
|
29
|
+
|
|
30
|
+
`).replace(/<h6[^>]*>([\s\S]*?)<\/h6>/gi,`###### $1
|
|
31
|
+
|
|
32
|
+
`).replace(/<blockquote[^>]*>([\s\S]*?)<\/blockquote>/gi,(t,r)=>r.trim().replace(/^/gm,"> ")+`
|
|
33
|
+
|
|
34
|
+
`).replace(/<pre[^>]*><code[^>]*>([\s\S]*?)<\/code><\/pre>/gi,"```\n$1\n```\n\n").replace(/<hr\s*\/?>/gi,`
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
`).replace(/<li[^>]*>([\s\S]*?)<\/li>/gi,`- $1
|
|
38
|
+
`).replace(/<\/?(ul|ol)[^>]*>/gi,`
|
|
39
|
+
`).replace(/<strong[^>]*>([\s\S]*?)<\/strong>/gi,"**$1**").replace(/<b[^>]*>([\s\S]*?)<\/b>/gi,"**$1**").replace(/<em[^>]*>([\s\S]*?)<\/em>/gi,"_$1_").replace(/<i[^>]*>([\s\S]*?)<\/i>/gi,"_$1_").replace(/<s[^>]*>([\s\S]*?)<\/s>/gi,"~~$1~~").replace(/<del[^>]*>([\s\S]*?)<\/del>/gi,"~~$1~~").replace(/<code[^>]*>([\s\S]*?)<\/code>/gi,"`$1`").replace(/<a[^>]*href="([^"]*)"[^>]*>([\s\S]*?)<\/a>/gi,"[$2]($1)").replace(/<img[^>]*src="([^"]*)"[^>]*alt="([^"]*)"[^>]*\/?>/gi,"").replace(/<img[^>]*src="([^"]*)"[^>]*\/?>/gi,"").replace(/<br\s*\/?>/gi,`
|
|
40
|
+
`).replace(/<p[^>]*>([\s\S]*?)<\/p>/gi,`$1
|
|
41
|
+
|
|
42
|
+
`).replace(/<[^>]+>/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," ").replace(/\n{3,}/g,`
|
|
43
|
+
|
|
44
|
+
`).trim()}function xt(e){return e.trim()?e.trim().split(/\s+/).length:0}function Mt(e,t,r=false){if(!t)return [];let n=[],o=r?"g":"gi",i=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=new RegExp(i,o);return e.descendants((l,s)=>{if(!l.isText||!l.text)return;let d;for(a.lastIndex=0;(d=a.exec(l.text))!==null;)n.push({from:s+d.index,to:s+d.index+d[0].length});}),n}function He(e,t,r=false){if(!t)return [];let n=r?"g":"gi",o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=new RegExp(o,n),a=[],l;for(;(l=i.exec(e))!==null;)a.push([l.index,l.index+l[0].length]);return a}var J=new PluginKey("rteSearch"),da=I.create({name:"rteSearch",addProseMirrorPlugins(){return [new Plugin({key:J,state:{init(){return {query:"",caseSensitive:false,currentIndex:0,matches:[]}},apply(e,t){let r=e.getMeta(J);if(r){let n={...t,...r};return n.matches=Mt(e.doc,n.query,n.caseSensitive),n.currentIndex>=n.matches.length&&(n.currentIndex=0),n}if(e.docChanged&&t.query){let n=Mt(e.doc,t.query,t.caseSensitive),o=Math.min(t.currentIndex,Math.max(0,n.length-1));return {...t,matches:n,currentIndex:o}}return t}},props:{decorations(e){let t=J.getState(e);if(!t?.query||!t.matches.length)return DecorationSet.empty;let r=t.matches.map((n,o)=>Decoration.inline(n.from,n.to,{class:o===t.currentIndex?"rte-search-current":"rte-search-match"}));return DecorationSet.create(e.doc,r)}}})]}});function Sr(e){return useEditor({extensions:[Js,Xs,Ys.configure({types:["heading","paragraph"]}),bt,Color,Qs.configure({multicolor:true}),kr,wr,xr,Zs.configure({openOnClick:false}),ea.configure({width:480,height:320}),ta.configure({placeholder:e.placeholder??"Start typing\u2026"}),ra,na,oa,ia,Table$1.configure({resizable:true}),aa,la,ca,da],content:e.defaultValue??"",editable:!e.readOnly,autofocus:e.autoFocus,onUpdate:({editor:r})=>{e.onChange?.({html:r.getHTML(),markdown:"",json:r.getJSON(),text:r.getText()});}})}var nl={tab_home:"Home",tab_insert:"Insert",tab_format:"Format",group_clipboard:"Clipboard",undo:"Undo",redo:"Redo",save:"Save",group_text:"Text",bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",group_headings:"Headings",h1:"H1",h2:"H2",h3:"H3",paragraph:"Normal",group_alignment:"Alignment",alignLeft:"Left",alignCenter:"Center",alignRight:"Right",alignJustify:"Justify",group_lists:"Lists",bulletList:"Bullet",orderedList:"Ordered",group_media:"Media",image:"Image",video:"Video",youtube:"Video",group_content:"Content",link:"Link",table:"Table",codeBlock:"Code Block",blockquote:"Quote",divider:"Divider",group_style:"Style",color:"Color",highlight:"Highlight",subscript:"Sub",superscript:"Sup",group_reset:"Reset",clear:"Clear",group_table_rows:"Rows",addRowBefore:"Add Above",addRowAfter:"Add Below",deleteRow:"Del Row",group_table_cols:"Columns",addColBefore:"Add Left",addColAfter:"Add Right",deleteColumn:"Del Col",group_table_cells:"Cells",mergeCells:"Merge",splitCell:"Split",deleteTable:"Del Table"};function Z({icon:e,label:t,onClick:r,disabled:n=false,title:o}){return jsxs("button",{type:"button",className:D("rte-tbar-btn",n&&"rte-tbar-btn--disabled"),onClick:r,disabled:n,title:o??t,children:[e,jsx("span",{className:"rte-tbar-label",children:t})]})}function ol({editor:e,L:t,readOnly:r}){let[,n]=useState(0),[o,i]=useState(null),a=useRef(null);if(useEffect(()=>{if(!e)return;let p=()=>n(u=>u+1);return e.on("selectionUpdate",p),e.on("transaction",p),()=>{e.off("selectionUpdate",p),e.off("transaction",p);}},[e]),useEffect(()=>{if(!o)return;function p(u){a.current&&!a.current.contains(u.target)&&i(null);}return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[o]),!e||r||!e.isActive("table"))return null;let l=e.can().mergeCells(),s=e.can().splitCell();function d(){s?e.chain().focus().splitCell().run():i(p=>p?null:"col");}return jsxs("div",{className:"rte-tablebar",role:"toolbar","aria-label":"Table editing",children:[jsx("span",{className:"rte-tbar-group-label",children:t.group_table_rows}),jsx(Z,{icon:jsx(BetweenHorizontalStart,{size:13}),label:t.addRowBefore,onClick:()=>e.chain().focus().addRowBefore().run()}),jsx(Z,{icon:jsx(BetweenHorizontalEnd,{size:13}),label:t.addRowAfter,onClick:()=>e.chain().focus().addRowAfter().run()}),jsx(Z,{icon:jsx(Trash2,{size:13}),label:t.deleteRow,onClick:()=>e.chain().focus().deleteRow().run()}),jsx("div",{className:"rte-tbar-sep"}),jsx("span",{className:"rte-tbar-group-label",children:t.group_table_cols}),jsx(Z,{icon:jsx(BetweenVerticalStart,{size:13}),label:t.addColBefore,onClick:()=>e.chain().focus().addColumnBefore().run()}),jsx(Z,{icon:jsx(BetweenVerticalEnd,{size:13}),label:t.addColAfter,onClick:()=>e.chain().focus().addColumnAfter().run()}),jsx(Z,{icon:jsx(Trash2,{size:13}),label:t.deleteColumn,onClick:()=>e.chain().focus().deleteColumn().run()}),jsx("div",{className:"rte-tbar-sep"}),jsx("span",{className:"rte-tbar-group-label",children:t.group_table_cells}),jsx(Z,{icon:jsx(TableCellsMerge,{size:13}),label:t.mergeCells,onClick:()=>e.chain().focus().mergeCells().run(),disabled:!l,title:l?t.mergeCells:`${t.mergeCells} (Shift+click to select cells)`}),jsxs("div",{className:"rte-tbar-split-wrap",ref:a,children:[jsx(Z,{icon:jsx(TableCellsSplit,{size:13}),label:s?t.splitCell:`${t.splitCell}\u2026`,onClick:d,title:s?t.splitCell:"Split by adding a column or row"}),o&&!s&&jsxs("div",{className:"rte-tbar-split-picker",children:[jsxs("button",{className:"rte-tbar-split-pick-btn",onClick:()=>{e.chain().focus().addColumnAfter().run(),i(null);},children:[jsx(BetweenVerticalEnd,{size:13}),"Split column"]}),jsxs("button",{className:"rte-tbar-split-pick-btn",onClick:()=>{e.chain().focus().addRowAfter().run(),i(null);},children:[jsx(BetweenHorizontalEnd,{size:13}),"Split row"]})]})]}),jsx("div",{className:"rte-tbar-sep"}),jsx(Z,{icon:jsx(Trash2,{size:13}),label:t.deleteTable,onClick:()=>e.chain().focus().deleteTable().run()})]})}function Et({open:e,onClose:t,children:r}){let n=useRef(null);return useEffect(()=>{if(!e)return;function o(i){n.current&&!n.current.contains(i.target)&&t();}return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[e,t]),e?jsx("div",{ref:n,className:"rte-inline-dialog",children:r}):null}function il({mode:e,onClose:t,onFind:r,onPrev:n,onNext:o,onReplace:i,onReplaceAll:a,matchCount:l,currentIndex:s}){let[d,p]=Oe.useState(""),[u,m]=Oe.useState(""),[c,f]=Oe.useState(false),h=Oe.useRef(null);useEffect(()=>{h.current?.focus();},[]);function g(M){let N=M.target.value;p(N),r(N,c);}function v(){let M=!c;f(M),r(d,M);}function C(M){if(M.key==="Escape"){t();return}M.key==="Enter"&&(M.shiftKey?n():o());}let T=l>0,x=d?T?`${s+1} / ${l}`:"No results":"";return jsxs("div",{className:"rte-findbar",role:"search","aria-label":"Find and replace",children:[jsxs("div",{className:"rte-findbar-row",children:[jsx(Search,{size:14,className:"rte-findbar-icon"}),jsx("input",{ref:h,className:"rte-findbar-input",value:d,onChange:g,onKeyDown:C,placeholder:"Find\u2026","aria-label":"Find",spellCheck:false}),jsx("button",{className:D("rte-findbar-btn",c&&"rte-findbar-btn--active"),onClick:v,title:"Match case","aria-pressed":c,children:"Aa"}),jsx("span",{className:"rte-findbar-count",children:x}),jsx("button",{className:"rte-findbar-btn",onClick:n,disabled:!T,title:"Previous match (Shift+Enter)","aria-label":"Previous match",children:jsx(ChevronUp,{size:14})}),jsx("button",{className:"rte-findbar-btn",onClick:o,disabled:!T,title:"Next match (Enter)","aria-label":"Next match",children:jsx(ChevronDown,{size:14})}),jsx("button",{className:"rte-findbar-btn rte-findbar-btn--close",onClick:t,title:"Close (Esc)","aria-label":"Close find bar",children:jsx(X,{size:14})})]}),e==="replace"&&jsxs("div",{className:"rte-findbar-row",children:[jsx(Replace,{size:14,className:"rte-findbar-icon"}),jsx("input",{className:"rte-findbar-input",value:u,onChange:M=>m(M.target.value),onKeyDown:M=>M.key==="Escape"&&t(),placeholder:"Replace with\u2026","aria-label":"Replace with",spellCheck:false}),jsx("button",{className:"rte-findbar-btn rte-findbar-btn--action",onClick:()=>i(u),disabled:!T,title:"Replace current",children:"Replace"}),jsx("button",{className:"rte-findbar-btn rte-findbar-btn--action",onClick:()=>a(u),disabled:!T,title:"Replace all",children:"All"})]})]})}var Rr=forwardRef(function(t,r){let{mode:n,defaultMode:o="richtext",onModeChange:i,showPreview:a,defaultShowPreview:l=false,onPreviewChange:s,defaultValue:d="",value:p,onChange:u,placeholder:m="Start typing\u2026",readOnly:c=false,height:f=400,minHeight:h,maxHeight:g,showWordCount:v=true,showCharCount:C=true,onImageUpload:T,allowedImageTypes:x,maxImageSize:M,autoFocus:N=false,spellCheck:z=true,className:O,style:U,labels:Y,extraRibbonGroups:te,extraRibbonTabs:ie,onSave:G}=t,R={...nl,...Y},[X,Nr]=useState(o),S=n??X;function Pr(k){if(k!==S){if(k==="markdown"){let w=b?.getHTML()??Ct;re(De(w));}else {let w=be(B);Ve(w),b?.commands.setContent(w);}n===void 0&&Nr(k),i?.(k);}}let[Be,Tt]=useState(()=>typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)").matches:false);function Fe(k){Tt(k),k?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");}useEffect(()=>{Fe(Be);let k=window.matchMedia("(prefers-color-scheme: dark)");function w(P){Tt(P.matches),Fe(P.matches);}return k.addEventListener("change",w),()=>k.removeEventListener("change",w)},[]);let[Ar,zr]=useState(l),ve=a??Ar;function Ir(k){let w=k??!ve;a===void 0&&zr(w),s?.(w);}let[B,re]=useState(S==="markdown"?p??d:""),[Ct,Ve]=useState(S==="richtext"?p??d??"":""),[_r,de]=useState(false),[ue,je]=useState(""),[Lr,pe]=useState(false),[Ue,ke]=useState(""),[$r,we]=useState(false),[Rt,We]=useState(""),[Nt,xe]=useState(null),[Pt,Ke]=useState(null),[Dr,qe]=useState(0),[Je,Me]=useState(0),[Se,At]=useState(""),Hr=useRef(null),Xe=useRef(null),zt=useRef(null);useEffect(()=>{function k(w){!(w.metaKey||w.ctrlKey)||w.key.toLowerCase()!=="f"||Xe.current?.contains(w.target)&&(w.preventDefault(),w.shiftKey?Ke(A=>A==="replace"?null:"replace"):Ke(A=>A!==null?null:"find"));}return document.addEventListener("keydown",k,true),()=>document.removeEventListener("keydown",k,true)},[]);function Or(k){let w=k.trim();if(/\.(mp4|webm|ogg|ogv|mov|m4v|flv|mkv)(\?[^#]*)?$/i.test(w))return {kind:"video"};if(/(?:youtube\.com|youtu\.be|youtube-nocookie\.com)/.test(w))return {kind:"youtube"};let P=w.match(/vimeo\.com\/(?:video\/)?(\d+)/);if(P)return {kind:"iframe",embedUrl:`https://player.vimeo.com/video/${P[1]}`};let A=w.match(/bilibili\.com\/video\/(BV[\w]+|av\d+)/i);if(A)return {kind:"iframe",embedUrl:`https://player.bilibili.com/player.html?bvid=${A[1]}&high_quality=1&danmaku=0`};let $=w.match(/dailymotion\.com\/(?:video\/|embed\/video\/)([a-z0-9]+)/i);if($)return {kind:"iframe",embedUrl:`https://www.dailymotion.com/embed/video/${$[1]}`};let F=w.match(/twitch\.tv\/\w+\/clip\/([\w-]+)/);if(F){let W=typeof window<"u"?window.location.hostname:"localhost";return {kind:"iframe",embedUrl:`https://clips.twitch.tv/embed?clip=${F[1]}&parent=${W}`}}return null}function It(){let k=Rt.trim();if(!k)return;let w=Or(k);if(!w){xe("Unsupported URL. Paste a YouTube, Vimeo, Bilibili, Dailymotion, or direct .mp4/.webm link.");return}w.kind==="youtube"?b?.chain().focus().setYoutubeVideo({src:k}).run():w.kind==="iframe"?b?.chain().focus().insertContent({type:"embedFrame",attrs:{src:w.embedUrl}}).run():b?.chain().focus().insertContent({type:"resizableVideo",attrs:{src:k}}).run(),We(""),xe(null),we(false);}function Ye(k,w){b&&b.view.dispatch(b.view.state.tr.setMeta(J,{query:k,caseSensitive:w,currentIndex:0}));}function _t(k){if(!b)return;let w=J.getState(b.view.state);if(!w||!w.matches.length)return;let P=w.matches.length,A=((w.currentIndex+k)%P+P)%P;b.view.dispatch(b.view.state.tr.setMeta(J,{currentIndex:A}));let $=w.matches[A];$&&(b.commands.setTextSelection({from:$.from,to:$.to}),b.commands.scrollIntoView());}function Br(k){if(!b)return;let w=J.getState(b.view.state);if(!w||!w.matches.length)return;let P=w.matches[w.currentIndex];P&&(b.chain().setTextSelection({from:P.from,to:P.to}).insertContent(k).run(),Ye(w.query,w.caseSensitive));}function Fr(k){if(!b)return;let w=J.getState(b.view.state);if(!w||!w.matches.length)return;let P=b.chain();[...w.matches].reverse().forEach(A=>{P.setTextSelection({from:A.from,to:A.to}).insertContent(k);}),P.run(),Ye(w.query,w.caseSensitive);}function Lt(k,w){At(k);let P=He(B,k,w);qe(P.length),Me(0);}function $t(k,w,P){let A=He(B,w,P);if(!A.length)return;let $=A.length,F=((Je+k)%$+$)%$;Me(F);let W=zt.current;W&&(W.focus(),W.setSelectionRange(A[F][0],A[F][1]));}function Vr(k,w,P){let A=He(B,k,P);if(!A.length)return;let[$,F]=A[Je]??A[0],W=B.slice(0,$)+w+B.slice(F);re(W);}function jr(k,w,P){let A=k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=new RegExp(A,"gi");re(F=>F.replace($,w)),qe(0),Me(0);}let b=Sr({defaultValue:S==="richtext"?p??d:"",placeholder:m,readOnly:c,autoFocus:S==="richtext"&&N,onChange:k=>{Ve(k.html),u?.({...k,markdown:De(k.html)});}});useEffect(()=>{p!==void 0&&b&&S==="richtext"&&b.getHTML()!==p&&(b.commands.setContent(p),Ve(p));},[p,b,S]);let Dt=b?J.getState(b.view.state):null,Ur=S==="richtext"?Dt?.matches.length??0:Dr,Wr=S==="richtext"?Dt?.currentIndex??0:Je;function Ht(){if(!G)return;let k=S==="markdown"?B:b?.getHTML()??"";G(k,S);}useEffect(()=>{if(!G)return;function k(w){!(w.metaKey||w.ctrlKey)||w.key.toLowerCase()!=="s"||Xe.current?.contains(w.target)&&(w.preventDefault(),Ht());}return document.addEventListener("keydown",k,true),()=>document.removeEventListener("keydown",k,true)},[G,S,B,b]);function Kr(k){let w=k.target.value;re(w),u?.({html:be(w),markdown:w,json:{},text:w});}let qr=useCallback(async k=>{let P=Array.from(k.clipboardData?.items??[]).find(F=>F.type.startsWith("image/"));if(!P)return;k.preventDefault();let A=P.getAsFile();if(!A||x&&!x.includes(A.type)||M&&A.size>M)return;let $;if(T?$=await T(A):$=await new Promise(F=>{let W=new FileReader;W.onload=()=>F(W.result),W.readAsDataURL(A);}),S==="richtext"&&b)b.chain().focus().setImage({src:$}).run();else {let F=k.currentTarget.querySelector(".rte-markdown-source");if(F){let W=F.selectionStart,Qr=``,Zr=B.slice(0,W),en=B.slice(W);re(Zr+Qr+en);}}},[S,b,B,T,x,M]);useImperativeHandle(r,()=>({getContent:()=>S==="markdown"?B:b?.getHTML()??"",getMode:()=>S,getHTML:()=>b?.getHTML()??"",getMarkdown:()=>S==="markdown"?B:De(b?.getHTML()??""),getJSON:()=>b?.getJSON()??{},getText:()=>b?.getText()??"",setHTML:k=>b?.commands.setContent(k),setMarkdown:k=>{re(k),b?.commands.setContent(be(k));},setJSON:k=>b?.commands.setContent(k),clear:()=>{b?.commands.clearContent(),re("");},focus:()=>b?.commands.focus(),blur:()=>(b?.view.dom).blur()}));let Jr=b?.storage?.characterCount?.characters?.()??B.length,Xr=S==="richtext"?xt(b?.getText()??""):xt(B),Yr=[...[{key:"home",label:R.tab_home,groups:[{key:"clipboard",label:R.group_clipboard,items:[{key:"undo",label:R.undo,icon:jsx(Undo2,{}),disabled:c||!b?.can().undo()||S==="markdown",onClick:()=>b?.chain().focus().undo().run()},{key:"redo",label:R.redo,icon:jsx(Redo2,{}),disabled:c||!b?.can().redo()||S==="markdown",onClick:()=>b?.chain().focus().redo().run()},{key:"save",label:R.save,icon:jsx(Save,{}),disabled:c||!G,onClick:Ht}]},{key:"text",label:R.group_text,items:[{key:"bold",label:R.bold,icon:jsx(Bold,{}),active:b?.isActive("bold"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleBold().run()},{key:"italic",label:R.italic,icon:jsx(Italic,{}),active:b?.isActive("italic"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleItalic().run()},{key:"underline",label:R.underline,icon:jsx(Underline,{}),active:b?.isActive("underline"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleUnderline().run()},{key:"strike",label:R.strikethrough,icon:jsx(Strikethrough,{}),active:b?.isActive("strike"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleStrike().run()}]},{key:"headings",label:R.group_headings,items:[{key:"h1",label:R.h1,icon:jsx(Heading1,{}),active:b?.isActive("heading",{level:1}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleHeading({level:1}).run()},{key:"h2",label:R.h2,icon:jsx(Heading2,{}),active:b?.isActive("heading",{level:2}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleHeading({level:2}).run()},{key:"h3",label:R.h3,icon:jsx(Heading3,{}),active:b?.isActive("heading",{level:3}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleHeading({level:3}).run()},{key:"paragraph",label:R.paragraph,icon:jsx(Type,{}),active:b?.isActive("paragraph"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setParagraph().run()}]},{key:"alignment",label:R.group_alignment,items:[{key:"align-left",label:R.alignLeft,icon:jsx(AlignLeft,{}),active:b?.isActive({textAlign:"left"}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setTextAlign("left").run()},{key:"align-center",label:R.alignCenter,icon:jsx(AlignCenter,{}),active:b?.isActive({textAlign:"center"}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setTextAlign("center").run()},{key:"align-right",label:R.alignRight,icon:jsx(AlignRight,{}),active:b?.isActive({textAlign:"right"}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setTextAlign("right").run()},{key:"align-justify",label:R.alignJustify,icon:jsx(AlignJustify,{}),active:b?.isActive({textAlign:"justify"}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setTextAlign("justify").run()}]},{key:"lists",label:R.group_lists,items:[{key:"bullet-list",label:R.bulletList,icon:jsx(List,{}),active:b?.isActive("bulletList"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleBulletList().run()},{key:"ordered-list",label:R.orderedList,icon:jsx(ListOrdered,{}),active:b?.isActive("orderedList"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleOrderedList().run()}]},...te?.home??[]]},{key:"insert",label:R.tab_insert,groups:[{key:"media",label:R.group_media,items:[{key:"image",label:R.image,icon:jsx(Image,{}),disabled:c||S==="markdown",onClick:()=>de(true)},{key:"video",label:R.video??R.youtube,icon:jsx(Video,{}),disabled:c||S==="markdown",onClick:()=>{We(""),xe(null),we(true);}}]},{key:"content",label:R.group_content,items:[{key:"link",label:R.link,icon:jsx(Link,{}),active:b?.isActive("link"),disabled:c||S==="markdown",onClick:()=>{let k=b?.getAttributes("link").href??"";ke(k),pe(true);}},{key:"table",label:R.table,icon:jsx(Table,{}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:true}).run()},{key:"code-block",label:R.codeBlock,icon:jsx(Code,{}),active:b?.isActive("codeBlock"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleCodeBlock().run()},{key:"blockquote",label:R.blockquote,icon:jsx(Quote,{}),active:b?.isActive("blockquote"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleBlockquote().run()},{key:"hr",label:R.divider,icon:jsx(Minus,{}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().setHorizontalRule().run()}]},...te?.insert??[]]},{key:"format",label:R.tab_format,groups:[{key:"style",label:R.group_style,items:[{key:"color",label:R.color,icon:jsx(Palette,{}),disabled:c||S==="markdown",onClick:()=>{document.getElementById("rte-color-input")?.click();}},{key:"highlight",label:R.highlight,icon:jsx(Highlighter,{}),active:b?.isActive("highlight"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleHighlight().run()},{key:"subscript",label:R.subscript,icon:jsx(Subscript,{}),active:b?.isActive("subscript"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleSubscript().run()},{key:"superscript",label:R.superscript,icon:jsx(Superscript,{}),active:b?.isActive("superscript"),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().toggleSuperscript().run()}]},{key:"reset",label:R.group_reset,items:[{key:"clear",label:R.clear,icon:jsx(Eraser,{}),disabled:c||S==="markdown",onClick:()=>b?.chain().focus().unsetAllMarks().clearNodes().run()}]},...te?.format??[]]}],...ie??[]],Ee={};f&&(Ee.height=typeof f=="number"?`${f}px`:f),h&&(Ee.minHeight=typeof h=="number"?`${h}px`:h),g&&(Ee.maxHeight=typeof g=="number"?`${g}px`:g);let Gr=S==="richtext"?Ct:be(B);return jsxs("div",{ref:Xe,className:D("rte-root",O),style:{...Ee,...U},"data-testid":"rte-root",onPaste:qr,children:[jsx("input",{id:"rte-color-input",type:"color",className:"sr-only","aria-hidden":true,onChange:k=>{b?.chain().focus().setColor(k.target.value).run();}}),jsxs("div",{ref:Hr,className:"rte-ribbon relative",children:[jsx(Bt,{tabs:Yr}),jsxs(Et,{open:_r,onClose:()=>de(false),children:[jsx("input",{type:"url",placeholder:"Image URL\u2026",value:ue,onChange:k=>je(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(ue&&b?.chain().focus().setImage({src:ue}).run(),je(""),de(false));},autoFocus:true}),jsx("button",{onClick:()=>{ue&&b?.chain().focus().setImage({src:ue}).run(),je(""),de(false);},children:"Insert"}),jsx("button",{className:"rte-cancel-btn",onClick:()=>de(false),children:"Cancel"})]}),jsxs(Et,{open:Lr,onClose:()=>pe(false),children:[jsx("input",{type:"url",placeholder:"https://\u2026",value:Ue,onChange:k=>ke(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(b?.chain().focus().setLink({href:Ue}).run(),ke(""),pe(false));},autoFocus:true}),jsx("button",{onClick:()=>{b?.chain().focus().setLink({href:Ue}).run(),ke(""),pe(false);},children:"Apply"}),jsx("button",{className:"rte-cancel-btn",onClick:()=>pe(false),children:"Cancel"})]}),jsxs(Et,{open:$r,onClose:()=>we(false),children:[jsx("input",{type:"url",placeholder:"YouTube, Vimeo, Bilibili, or .mp4 URL\u2026",value:Rt,onChange:k=>{We(k.target.value),xe(null);},onKeyDown:k=>{k.key==="Enter"&&It();},autoFocus:true,style:{minWidth:280}}),Nt&&jsx("span",{style:{fontSize:"0.72rem",color:"var(--color-danger-500)",flex:"0 0 100%"},children:Nt}),jsx("button",{onClick:It,children:"Embed"}),jsx("button",{className:"rte-cancel-btn",onClick:()=>we(false),children:"Cancel"})]})]}),S==="richtext"&&jsx(ol,{editor:b,L:R,readOnly:c??false}),Pt!==null&&jsx(il,{mode:Pt,onClose:()=>{Ke(null),b&&b.view.dispatch(b.view.state.tr.setMeta(J,{query:"",currentIndex:0,matches:[]})),qe(0),Me(0),At("");},onFind:(k,w)=>{S==="richtext"?Ye(k,w):Lt(k,w);},onPrev:()=>{S==="richtext"?_t(-1):$t(-1,Se,false);},onNext:()=>{S==="richtext"?_t(1):$t(1,Se,false);},onReplace:k=>{if(S==="richtext"){let w=b?J.getState(b.view.state):null;Br(k),w&&Lt(w.query,w.caseSensitive);}else Vr(Se,k,false);},onReplaceAll:k=>{S==="richtext"?Fr(k):jr(Se,k);},matchCount:Ur,currentIndex:Wr}),jsxs("div",{className:"rte-body",children:[jsx("div",{className:"rte-editor-pane",children:S==="richtext"?jsx(EditorContent,{editor:b,spellCheck:z,readOnly:c}):jsx("textarea",{ref:zt,className:"rte-markdown-source",value:B,onChange:Kr,placeholder:m,readOnly:c,spellCheck:z,"data-testid":"rte-markdown-source"})}),ve&&jsx("div",{className:"rte-preview-pane","data-testid":"rte-preview-pane",children:jsx("div",{className:"prose",dangerouslySetInnerHTML:{__html:Gr}})})]}),jsxs("div",{className:"rte-statusbar",children:[jsxs("div",{className:"rte-statusbar-left",children:[jsx(Ce,{size:"sm",checked:Be,onCheckedChange:Fe,checkedContent:jsx(Moon,{size:10}),uncheckedContent:jsx(Sun,{size:10}),"aria-label":"Toggle dark mode",title:Be?"Switch to light mode":"Switch to dark mode"}),jsx("span",{className:"rte-statusbar-divider"}),jsx(Ce,{size:"sm",checked:S==="markdown",onCheckedChange:k=>Pr(k?"markdown":"richtext"),disabled:n!==void 0,checkedContent:jsx(Code,{size:10}),uncheckedContent:jsx(FileText,{size:10}),"aria-label":"Toggle editor mode",title:n!==void 0?`Mode locked: ${S}`:S==="markdown"?"Markdown mode (click for Rich Text)":"Rich Text mode (click for Markdown)"}),jsx("span",{className:"rte-statusbar-label",children:S==="markdown"?"Markdown":"Rich Text"})]}),jsxs("div",{className:"rte-statusbar-right",children:[jsx(Ce,{size:"sm",checked:ve,onCheckedChange:Ir,checkedContent:jsx(Eye,{size:10}),uncheckedContent:jsx(EyeOff,{size:10}),"aria-label":"Toggle live preview",title:ve?"Hide preview":"Show live preview"}),jsx("span",{className:"rte-statusbar-label",children:"Preview"}),(v||C)&&jsx("span",{className:"rte-statusbar-divider"}),v&&jsxs("span",{children:[Xr," words"]}),C&&jsxs("span",{children:[Jr," chars"]})]})]})]})});Rr.displayName="RichTextEditor";
|
|
45
|
+
export{Rr as RichTextEditor};
|