wimui 0.14.0 → 0.16.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/NOTICE +85 -0
- package/README.ja.md +2 -0
- package/README.md +2 -0
- package/dist/components/_internal/FeedbackIcon.cjs +1 -1
- package/dist/components/_internal/FeedbackIcon.js +17 -16
- package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
- package/dist/components/ai/ChatUI/ChatUI.d.ts +8 -6
- package/dist/components/ai/ChatUI/ChatUI.js +2 -2
- package/dist/components/ai/ChatUI/chat-ui.module.cjs +1 -1
- package/dist/components/ai/ChatUI/chat-ui.module.js +4 -4
- package/dist/components/ai/CodeBlock/code-block.module.cjs +1 -1
- package/dist/components/ai/CodeBlock/code-block.module.js +1 -1
- package/dist/components/ai/Terminal/Terminal.cjs +1 -1
- package/dist/components/ai/Terminal/Terminal.js +1 -1
- package/dist/components/data-display/Card/card.module.cjs +1 -1
- package/dist/components/data-display/Card/card.module.js +15 -15
- package/dist/components/data-display/Stats/Stats.cjs +1 -1
- package/dist/components/data-display/Stats/Stats.js +46 -38
- package/dist/components/data-display/Timeline/timeline.module.cjs +1 -1
- package/dist/components/data-display/Timeline/timeline.module.js +6 -6
- package/dist/components/form/Cascader/cascader.module.cjs +1 -1
- package/dist/components/form/Cascader/cascader.module.js +6 -6
- package/dist/components/form/RichTextEditor/RichTextEditor.cjs +1 -1
- package/dist/components/form/RichTextEditor/RichTextEditor.js +248 -421
- package/dist/components/form/SignaturePad/signature-pad.module.cjs +1 -1
- package/dist/components/form/SignaturePad/signature-pad.module.js +6 -6
- package/dist/components/form/Transfer/transfer.module.cjs +1 -1
- package/dist/components/form/Transfer/transfer.module.js +6 -6
- package/dist/components/form/TreeSelect/tree-select.module.cjs +1 -1
- package/dist/components/form/TreeSelect/tree-select.module.js +6 -6
- package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
- package/dist/components/layout/Dashboard/Dashboard.js +1 -1
- package/dist/components/layout/Transition/Transition.cjs +1 -1
- package/dist/components/layout/Transition/Transition.js +24 -46
- package/dist/components/media/Gallery/Gallery.cjs +1 -1
- package/dist/components/media/Gallery/Gallery.js +1 -1
- package/dist/components/media/Lightbox/Lightbox.cjs +1 -1
- package/dist/components/media/Lightbox/Lightbox.d.ts +4 -0
- package/dist/components/media/Lightbox/Lightbox.js +23 -22
- package/dist/components/navigation/TabBar/TabBar.d.ts +12 -1
- package/dist/components/navigation/TabBar/tab-bar.module.cjs +1 -1
- package/dist/components/navigation/TabBar/tab-bar.module.js +1 -1
- package/dist/components/overlay/BottomSheet/BottomSheet.cjs +1 -1
- package/dist/components/overlay/BottomSheet/BottomSheet.js +1 -8
- package/dist/components/overlay/BottomSheet/bottom-sheet.module.cjs +1 -1
- package/dist/components/overlay/BottomSheet/bottom-sheet.module.js +8 -10
- package/dist/components/overlay/Popover/Popover.cjs +1 -1
- package/dist/components/overlay/Popover/Popover.js +2 -3
- package/dist/i18n/generated/keys.d.ts +1 -1
- package/dist/i18n/generated/resources.cjs +1 -1
- package/dist/i18n/generated/resources.js +9 -3
- package/dist/icon/alert-triangle.cjs +2 -0
- package/dist/icon/alert-triangle.js +31 -0
- package/dist/icon/align-justify.cjs +1 -1
- package/dist/icon/align-justify.js +14 -8
- package/dist/icon/arrow-down.cjs +2 -0
- package/dist/icon/arrow-down.js +22 -0
- package/dist/icon/arrow-left.cjs +2 -0
- package/dist/icon/arrow-left.js +22 -0
- package/dist/icon/arrow-right.cjs +2 -0
- package/dist/icon/arrow-right.js +22 -0
- package/dist/icon/arrow-up.cjs +2 -0
- package/dist/icon/arrow-up.js +22 -0
- package/dist/icon/bell.cjs +1 -1
- package/dist/icon/bell.js +0 -2
- package/dist/icon/bold.cjs +2 -0
- package/dist/icon/bold.js +17 -0
- package/dist/icon/chart.cjs +1 -1
- package/dist/icon/chart.js +0 -2
- package/dist/icon/close-small.cjs +1 -1
- package/dist/icon/close-small.js +21 -11
- package/dist/icon/columns.cjs +1 -1
- package/dist/icon/columns.js +5 -17
- package/dist/icon/credit-card.cjs +1 -1
- package/dist/icon/credit-card.js +0 -2
- package/dist/icon/document.cjs +1 -1
- package/dist/icon/document.js +1 -6
- package/dist/icon/eraser.cjs +2 -0
- package/dist/icon/eraser.js +17 -0
- package/dist/icon/external-link.cjs +1 -1
- package/dist/icon/external-link.js +0 -2
- package/dist/icon/grid.cjs +1 -1
- package/dist/icon/grid.js +36 -36
- package/dist/icon/grip-vertical.cjs +1 -1
- package/dist/icon/grip-vertical.js +0 -2
- package/dist/icon/home.cjs +1 -1
- package/dist/icon/home.js +1 -3
- package/dist/icon/hourglass.cjs +1 -1
- package/dist/icon/hourglass.js +6 -1
- package/dist/icon/index.cjs +1 -1
- package/dist/icon/index.d.ts +29 -1
- package/dist/icon/index.js +176 -148
- package/dist/icon/italic.cjs +2 -0
- package/dist/icon/italic.js +36 -0
- package/dist/icon/link.cjs +2 -0
- package/dist/icon/link.js +17 -0
- package/dist/icon/list-ordered.cjs +2 -0
- package/dist/icon/list-ordered.js +24 -0
- package/dist/icon/list.cjs +2 -0
- package/dist/icon/list.js +54 -0
- package/dist/icon/loading.cjs +1 -1
- package/dist/icon/loading.js +7 -16
- package/dist/icon/maximize.cjs +1 -1
- package/dist/icon/maximize.js +2 -4
- package/dist/icon/menu.cjs +1 -1
- package/dist/icon/menu.js +4 -4
- package/dist/icon/minimize.cjs +1 -1
- package/dist/icon/minimize.js +0 -2
- package/dist/icon/paperclip.cjs +1 -1
- package/dist/icon/paperclip.js +1 -3
- package/dist/icon/phone.cjs +1 -1
- package/dist/icon/phone.js +1 -1
- package/dist/icon/pip.cjs +1 -1
- package/dist/icon/pip.js +15 -31
- package/dist/icon/project.cjs +1 -1
- package/dist/icon/project.js +1 -3
- package/dist/icon/repeat.cjs +1 -1
- package/dist/icon/repeat.js +4 -6
- package/dist/icon/send.cjs +1 -1
- package/dist/icon/send.js +6 -3
- package/dist/icon/settings.cjs +1 -1
- package/dist/icon/settings.js +2 -4
- package/dist/icon/shuffle.cjs +1 -1
- package/dist/icon/shuffle.js +0 -2
- package/dist/icon/skip-back.cjs +1 -1
- package/dist/icon/skip-back.js +0 -2
- package/dist/icon/skip-forward.cjs +1 -1
- package/dist/icon/skip-forward.js +1 -3
- package/dist/icon/square.cjs +1 -1
- package/dist/icon/square.js +13 -9
- package/dist/icon/star.cjs +1 -1
- package/dist/icon/star.js +0 -2
- package/dist/icon/strikethrough.cjs +2 -0
- package/dist/icon/strikethrough.js +26 -0
- package/dist/icon/thumb-down.cjs +1 -1
- package/dist/icon/thumb-down.js +1 -1
- package/dist/icon/underline.cjs +2 -0
- package/dist/icon/underline.js +22 -0
- package/dist/icon/unlink.cjs +2 -0
- package/dist/icon/unlink.js +44 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +90 -76
- package/dist/index.cjs +1 -1
- package/dist/index.js +257 -243
- package/dist/llms-full.txt +11 -2
- package/dist/llms.txt +1 -1
- package/dist/locales/en/components.json +3 -1
- package/dist/locales/ja/components.json +3 -1
- package/dist/locales/pt/components.json +3 -1
- package/dist/reset.css +1 -1
- package/dist/styles.css +2 -2
- package/dist/wimui.umd.css +1 -1
- package/dist/wimui.umd.js +5 -5
- package/package.json +7 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Button/Button.cjs"),r=require("../FieldTemplate/FieldTemplate.cjs"),i=require("../Input/Input.cjs"),a=require("../../overlay/Dialog/Dialog.cjs"),o=require("./commands.cjs"),s=require("./rich-text-editor.module.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var ee=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z`}),(0,u.jsx)(`path`,{d:`M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z`})]}),te=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,"aria-hidden":`true`,children:[(0,u.jsx)(`line`,{x1:`19`,y1:`4`,x2:`10`,y2:`4`}),(0,u.jsx)(`line`,{x1:`14`,y1:`20`,x2:`5`,y2:`20`}),(0,u.jsx)(`line`,{x1:`15`,y1:`4`,x2:`9`,y2:`20`})]}),ne=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3`}),(0,u.jsx)(`line`,{x1:`4`,y1:`21`,x2:`20`,y2:`21`})]}),re=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6`}),(0,u.jsx)(`line`,{x1:`4`,y1:`12`,x2:`20`,y2:`12`})]}),ie=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":`true`,children:[(0,u.jsx)(`line`,{x1:`9`,y1:`6`,x2:`20`,y2:`6`}),(0,u.jsx)(`line`,{x1:`9`,y1:`12`,x2:`20`,y2:`12`}),(0,u.jsx)(`line`,{x1:`9`,y1:`18`,x2:`20`,y2:`18`}),(0,u.jsx)(`circle`,{cx:`4`,cy:`6`,r:`1.5`,fill:`currentColor`,stroke:`none`}),(0,u.jsx)(`circle`,{cx:`4`,cy:`12`,r:`1.5`,fill:`currentColor`,stroke:`none`}),(0,u.jsx)(`circle`,{cx:`4`,cy:`18`,r:`1.5`,fill:`currentColor`,stroke:`none`})]}),ae=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":`true`,children:[(0,u.jsx)(`line`,{x1:`10`,y1:`6`,x2:`21`,y2:`6`}),(0,u.jsx)(`line`,{x1:`10`,y1:`12`,x2:`21`,y2:`12`}),(0,u.jsx)(`line`,{x1:`10`,y1:`18`,x2:`21`,y2:`18`}),(0,u.jsx)(`text`,{x:`1`,y:`8`,fontSize:`7`,fill:`currentColor`,stroke:`none`,fontWeight:`bold`,children:`1.`}),(0,u.jsx)(`text`,{x:`1`,y:`14`,fontSize:`7`,fill:`currentColor`,stroke:`none`,fontWeight:`bold`,children:`2.`}),(0,u.jsx)(`text`,{x:`1`,y:`20`,fontSize:`7`,fill:`currentColor`,stroke:`none`,fontWeight:`bold`,children:`3.`})]}),oe=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`}),(0,u.jsx)(`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`})]}),se=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.72`}),(0,u.jsx)(`path`,{d:`M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`}),(0,u.jsx)(`line`,{x1:`8`,y1:`2`,x2:`8`,y2:`5`}),(0,u.jsx)(`line`,{x1:`2`,y1:`8`,x2:`5`,y2:`8`}),(0,u.jsx)(`line`,{x1:`16`,y1:`19`,x2:`16`,y2:`22`}),(0,u.jsx)(`line`,{x1:`19`,y1:`16`,x2:`22`,y2:`16`})]}),ce=()=>(0,u.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":`true`,children:[(0,u.jsx)(`path`,{d:`M20 20H7L3 16l10-10 7 7-3.5 3.5`}),(0,u.jsx)(`line`,{x1:`6`,y1:`7`,x2:`17`,y2:`18`})]}),le=[`bold`,`italic`,`underline`,`strikethrough`,`separator`,`h1`,`h2`,`h3`,`separator`,`ul`,`ol`,`separator`,`link`,`unlink`,`separator`,`removeFormat`],d=c.default.memo(({onClick:e,active:t,disabled:n,title:r,children:i})=>(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(s.default.toolbarBtn,t&&s.default.active),onClick:e,disabled:n,title:r,"aria-label":r,"aria-pressed":t,tabIndex:-1,children:i}));d.displayName=`ToolbarButton`;var f=({value:e,defaultValue:f=``,onChange:p,placeholder:m,disabled:ue,intent:de=`default`,variant:fe=`outline`,fullWidth:h=!1,width:g,minHeight:_=200,label:v,error:y,required:pe,layout:me,className:he,id:ge,toolbar:_e=le,labels:ve={},"aria-label":ye,"aria-labelledby":be})=>{let{t:b}=t.useWimTranslation(`components`),{bold:xe=b(`a11y.rte_bold`),italic:x=b(`a11y.rte_italic`),underline:S=b(`a11y.rte_underline`),strikethrough:C=b(`a11y.rte_strikethrough`),h1:w=b(`a11y.rte_h1`),h2:T=b(`a11y.rte_h2`),h3:E=b(`a11y.rte_h3`),ul:D=b(`a11y.rte_ul`),ol:O=b(`a11y.rte_ol`),link:k=b(`a11y.rte_link`),unlink:A=b(`a11y.rte_unlink`),removeFormat:j=b(`a11y.rte_remove_format`),toolbar:Se=b(`a11y.rte_toolbar`),linkPrompt:Ce=b(`a11y.rte_link_prompt`),linkApply:we=b(`a11y.rte_link_apply`),linkCancel:Te=b(`a11y.rte_link_cancel`)}=ve,M=c.default.useRef(null),N=c.default.useRef(!1),P=c.default.useRef(e??f),[F,Ee]=c.default.useState(new Set),De=c.default.useId(),I=ge||`wim-rte-${De}`,L=y?`${I}-error`:void 0,Oe=v?`${I}-label`:void 0,R=ue,ke=y?`danger`:de,Ae=typeof g==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(g),je=g!==void 0&&!Ae&&!h,z=Ae&&!h?g:void 0,Me=z?s.default[`width${z.charAt(0).toUpperCase()}${z.slice(1)}`]:void 0,B=c.default.useRef(e===void 0?f:e),V=c.default.useCallback(()=>{M.current&&Ee(o.getActiveFormats(M.current))},[]),H=c.default.useRef([]),U=c.default.useRef(-1),W=c.default.useRef(void 0),G=c.default.useCallback(e=>{let t=H.current,n=U.current;if(t[n]===e)return;let r=[...t.slice(0,n+1),e];r.length>100&&(r=r.slice(1)),H.current=r,U.current=r.length-1},[]),K=c.default.useCallback(()=>{W.current!==void 0&&(clearTimeout(W.current),W.current=void 0,G(P.current))},[G]),q=c.default.useCallback(e=>{K();let t=H.current,n=U.current+e;if(n<0||n>=t.length||!M.current)return;U.current=n;let r=t[n];M.current.innerHTML=r,P.current=r,p?.(r);let i=document.createRange();i.selectNodeContents(M.current),i.collapse(!1);let a=window.getSelection();a?.removeAllRanges(),a?.addRange(i),V()},[K,p,V]),J=c.default.useCallback(e=>{if(R||!M.current)return;let t=M.current,n=o.getEditorRange(t)?.cloneRange()??null;if(t.focus(),n){let e=window.getSelection();e?.removeAllRanges(),e?.addRange(n)}K(),G(t.innerHTML),e(t),V();let r=t.innerHTML;P.current=r,G(r),p?.(r)},[R,K,G,p,V]),Ne=c.default.useCallback(()=>{J(e=>o.removeAllFormatting(e))},[J]),[Pe,Y]=c.default.useState(!1),[X,Fe]=c.default.useState(`https://`),Z=c.default.useRef(null),Q=c.default.useCallback(()=>{if(R||!M.current)return;M.current.focus();let e=o.getEditorRange(M.current);Z.current=e?e.cloneRange():null;let t=e?.toString()??``;Fe(t.startsWith(`http`)?t:`https://`),Y(!0)},[R]),Ie=c.default.useCallback(()=>{let e=X.trim();if(Y(!1),!e||!M.current)return;let t=window.getSelection();if(t?.removeAllRanges(),Z.current)t?.addRange(Z.current);else{let e=document.createRange();e.selectNodeContents(M.current),e.collapse(!1),t?.addRange(e)}J(t=>o.createLink(t,e))},[X,J]),$=c.default.useCallback(()=>{if(N.current)return;let e=M.current?.innerHTML??``;e!==P.current&&(P.current=e,p?.(e),W.current!==void 0&&clearTimeout(W.current),W.current=setTimeout(()=>{W.current=void 0,G(P.current)},400)),V()},[p,G,V]),Le=c.default.useCallback(e=>{let t=e.nativeEvent.inputType;t===`historyUndo`?(e.preventDefault(),q(-1)):t===`historyRedo`&&(e.preventDefault(),q(1))},[q]),Re=c.default.useCallback(e=>{if(!(e.ctrlKey||e.metaKey))return;let t=e.key.toLowerCase();t===`z`?(e.preventDefault(),q(e.shiftKey?1:-1)):t===`y`&&(e.preventDefault(),q(1))},[q]),ze=c.default.useCallback(()=>{V()},[V]),Be=c.default.useCallback(()=>{V()},[V]),Ve=c.default.useCallback(()=>{N.current=!0},[]),He=c.default.useCallback(()=>{N.current=!1,$()},[$]),Ue=c.default.useCallback(e=>{e.preventDefault()},[]);c.default.useEffect(()=>{M.current&&(M.current.innerHTML=B.current,P.current=B.current,H.current=[B.current],U.current=0)},[]),c.default.useEffect(()=>{e!==void 0&&M.current&&M.current.innerHTML!==e&&(M.current.innerHTML=e,P.current=e)},[e]);let We=c.default.useCallback((e,t)=>{if(e===`separator`)return(0,u.jsx)(`span`,{className:s.default.toolbarSep,"aria-hidden":`true`},`sep-${t}`);let n={disabled:R,active:F.has(e)};switch(e){case`bold`:return(0,u.jsx)(d,{...n,title:xe,onClick:()=>J(e=>o.toggleInline(e,`bold`)),children:(0,u.jsx)(ee,{})},`bold`);case`italic`:return(0,u.jsx)(d,{...n,title:x,onClick:()=>J(e=>o.toggleInline(e,`italic`)),children:(0,u.jsx)(te,{})},`italic`);case`underline`:return(0,u.jsx)(d,{...n,title:S,onClick:()=>J(e=>o.toggleInline(e,`underline`)),children:(0,u.jsx)(ne,{})},`underline`);case`strikethrough`:return(0,u.jsx)(d,{...n,title:C,onClick:()=>J(e=>o.toggleInline(e,`strikethrough`)),children:(0,u.jsx)(re,{})},`strikethrough`);case`h1`:return(0,u.jsx)(d,{...n,active:F.has(`h1`),title:w,onClick:()=>J(e=>o.setBlock(e,`h1`)),children:(0,u.jsx)(`span`,{"aria-hidden":`true`,children:`H1`})},`h1`);case`h2`:return(0,u.jsx)(d,{...n,active:F.has(`h2`),title:T,onClick:()=>J(e=>o.setBlock(e,`h2`)),children:(0,u.jsx)(`span`,{"aria-hidden":`true`,children:`H2`})},`h2`);case`h3`:return(0,u.jsx)(d,{...n,active:F.has(`h3`),title:E,onClick:()=>J(e=>o.setBlock(e,`h3`)),children:(0,u.jsx)(`span`,{"aria-hidden":`true`,children:`H3`})},`h3`);case`ul`:return(0,u.jsx)(d,{...n,title:D,onClick:()=>J(e=>o.toggleList(e,`ul`)),children:(0,u.jsx)(ie,{})},`ul`);case`ol`:return(0,u.jsx)(d,{...n,title:O,onClick:()=>J(e=>o.toggleList(e,`ol`)),children:(0,u.jsx)(ae,{})},`ol`);case`link`:return(0,u.jsx)(d,{...n,title:k,onClick:Q,children:(0,u.jsx)(oe,{})},`link`);case`unlink`:return(0,u.jsx)(d,{...n,title:A,onClick:()=>J(e=>o.removeLink(e)),children:(0,u.jsx)(se,{})},`unlink`);case`removeFormat`:return(0,u.jsx)(d,{...n,title:j,onClick:Ne,children:(0,u.jsx)(ce,{})},`removeFormat`);default:return null}},[F,R,xe,x,S,C,w,T,E,D,O,k,A,j,J,Q,Ne]);return(0,u.jsx)(r.FieldTemplate,{label:v,error:y,required:pe,layout:me,labelId:Oe,errorId:L,className:he,children:(0,u.jsxs)(`div`,{className:(0,l.default)(`wim-rich-text-editor`,s.default.root,s.default[ke],R&&s.default.disabled,s.default[fe],h&&s.default.fullWidth,je&&s.default.hasCustomWidth,Me),style:je?{"--wim-input-width":typeof g==`number`?`${g}px`:g}:void 0,children:[(0,u.jsx)(`div`,{className:s.default.toolbar,role:`toolbar`,"aria-label":Se,"aria-controls":I,onMouseDown:Ue,children:_e.map((e,t)=>We(e,t))}),(0,u.jsx)(`div`,{ref:M,id:I,className:s.default.content,contentEditable:!R,suppressContentEditableWarning:!0,role:`textbox`,"aria-multiline":!0,"aria-label":ye??(v||be?void 0:b(`a11y.rte_editor`)),"aria-labelledby":be??(v?Oe:void 0),"aria-invalid":ke===`danger`,"aria-describedby":L,"aria-required":pe,"aria-disabled":R,"aria-placeholder":m,"data-placeholder":m,tabIndex:R?-1:0,style:{minHeight:typeof _==`number`?`${_}px`:_,outline:`none`},onInput:$,onBeforeInput:Le,onKeyDown:Re,onKeyUp:ze,onMouseUp:Be,onCompositionStart:Ve,onCompositionEnd:He}),(0,u.jsx)(a.Dialog,{open:Pe,onOpenChange:Y,children:(0,u.jsxs)(a.DialogContent,{children:[(0,u.jsx)(a.DialogHeader,{children:(0,u.jsx)(a.DialogTitle,{children:k})}),(0,u.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),Ie()},children:[(0,u.jsx)(i.Input,{label:Ce,type:`url`,value:X,onChange:e=>Fe(e.target.value),fullWidth:!0}),(0,u.jsxs)(a.DialogFooter,{children:[(0,u.jsx)(a.DialogClose,{asChild:!0,children:(0,u.jsx)(n.Button,{variant:`ghost`,type:`button`,children:Te})}),(0,u.jsx)(n.Button,{variant:`solid`,type:`submit`,children:we})]})]})]})})]})})};f.displayName=`RichTextEditor`,exports.RichTextEditor=f;
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/bold.cjs"),r=require("../../../icon/eraser.cjs"),i=require("../../../icon/italic.cjs"),a=require("../../../icon/link.cjs"),ee=require("../../../icon/list-ordered.cjs"),te=require("../../../icon/list.cjs"),ne=require("../../../icon/strikethrough.cjs"),re=require("../../../icon/underline.cjs"),ie=require("../../../icon/unlink.cjs"),o=require("../../media/Icon/Icon.cjs"),s=require("../Button/Button.cjs"),ae=require("../FieldTemplate/FieldTemplate.cjs"),oe=require("../Input/Input.cjs"),c=require("../../overlay/Dialog/Dialog.cjs"),l=require("./commands.cjs"),u=require("./rich-text-editor.module.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("classnames");f=e.__toESM(f,1);let p=require("react/jsx-runtime");var se=[`bold`,`italic`,`underline`,`strikethrough`,`separator`,`h1`,`h2`,`h3`,`separator`,`ul`,`ol`,`separator`,`link`,`unlink`,`separator`,`removeFormat`],m=d.default.memo(({onClick:e,active:t,disabled:n,title:r,children:i})=>(0,p.jsx)(`button`,{type:`button`,className:(0,f.default)(u.default.toolbarBtn,t&&u.default.active),onClick:e,disabled:n,title:r,"aria-label":r,"aria-pressed":t,tabIndex:-1,children:i}));m.displayName=`ToolbarButton`;var h=({value:e,defaultValue:h=``,onChange:g,placeholder:ce,disabled:le,intent:ue=`default`,variant:de=`outline`,fullWidth:_=!1,width:v,minHeight:y=200,label:b,error:x,required:S,layout:fe,className:pe,id:me,toolbar:he=se,labels:ge={},"aria-label":_e,"aria-labelledby":C})=>{let{t:w}=t.useWimTranslation(`components`),{bold:ve=w(`a11y.rte_bold`),italic:T=w(`a11y.rte_italic`),underline:E=w(`a11y.rte_underline`),strikethrough:ye=w(`a11y.rte_strikethrough`),h1:be=w(`a11y.rte_h1`),h2:xe=w(`a11y.rte_h2`),h3:Se=w(`a11y.rte_h3`),ul:Ce=w(`a11y.rte_ul`),ol:we=w(`a11y.rte_ol`),link:D=w(`a11y.rte_link`),unlink:Te=w(`a11y.rte_unlink`),removeFormat:O=w(`a11y.rte_remove_format`),toolbar:Ee=w(`a11y.rte_toolbar`),linkPrompt:De=w(`a11y.rte_link_prompt`),linkApply:Oe=w(`a11y.rte_link_apply`),linkCancel:ke=w(`a11y.rte_link_cancel`)}=ge,k=d.default.useRef(null),A=d.default.useRef(!1),j=d.default.useRef(e??h),[M,Ae]=d.default.useState(new Set),je=d.default.useId(),N=me||`wim-rte-${je}`,P=x?`${N}-error`:void 0,F=b?`${N}-label`:void 0,I=le,L=x?`danger`:ue,R=typeof v==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(v),z=v!==void 0&&!R&&!_,B=R&&!_?v:void 0,Me=B?u.default[`width${B.charAt(0).toUpperCase()}${B.slice(1)}`]:void 0,V=d.default.useRef(e===void 0?h:e),H=d.default.useCallback(()=>{k.current&&Ae(l.getActiveFormats(k.current))},[]),U=d.default.useRef([]),W=d.default.useRef(-1),G=d.default.useRef(void 0),K=d.default.useCallback(e=>{let t=U.current,n=W.current;if(t[n]===e)return;let r=[...t.slice(0,n+1),e];r.length>100&&(r=r.slice(1)),U.current=r,W.current=r.length-1},[]),q=d.default.useCallback(()=>{G.current!==void 0&&(clearTimeout(G.current),G.current=void 0,K(j.current))},[K]),J=d.default.useCallback(e=>{q();let t=U.current,n=W.current+e;if(n<0||n>=t.length||!k.current)return;W.current=n;let r=t[n];k.current.innerHTML=r,j.current=r,g?.(r);let i=document.createRange();i.selectNodeContents(k.current),i.collapse(!1);let a=window.getSelection();a?.removeAllRanges(),a?.addRange(i),H()},[q,g,H]),Y=d.default.useCallback(e=>{if(I||!k.current)return;let t=k.current,n=l.getEditorRange(t)?.cloneRange()??null;if(t.focus(),n){let e=window.getSelection();e?.removeAllRanges(),e?.addRange(n)}q(),K(t.innerHTML),e(t),H();let r=t.innerHTML;j.current=r,K(r),g?.(r)},[I,q,K,g,H]),Ne=d.default.useCallback(()=>{Y(e=>l.removeAllFormatting(e))},[Y]),[Pe,X]=d.default.useState(!1),[Z,Fe]=d.default.useState(`https://`),Q=d.default.useRef(null),Ie=d.default.useCallback(()=>{if(I||!k.current)return;k.current.focus();let e=l.getEditorRange(k.current);Q.current=e?e.cloneRange():null;let t=e?.toString()??``;Fe(t.startsWith(`http`)?t:`https://`),X(!0)},[I]),Le=d.default.useCallback(()=>{let e=Z.trim();if(X(!1),!e||!k.current)return;let t=window.getSelection();if(t?.removeAllRanges(),Q.current)t?.addRange(Q.current);else{let e=document.createRange();e.selectNodeContents(k.current),e.collapse(!1),t?.addRange(e)}Y(t=>l.createLink(t,e))},[Z,Y]),$=d.default.useCallback(()=>{if(A.current)return;let e=k.current?.innerHTML??``;e!==j.current&&(j.current=e,g?.(e),G.current!==void 0&&clearTimeout(G.current),G.current=setTimeout(()=>{G.current=void 0,K(j.current)},400)),H()},[g,K,H]),Re=d.default.useCallback(e=>{let t=e.nativeEvent.inputType;t===`historyUndo`?(e.preventDefault(),J(-1)):t===`historyRedo`&&(e.preventDefault(),J(1))},[J]),ze=d.default.useCallback(e=>{if(!(e.ctrlKey||e.metaKey))return;let t=e.key.toLowerCase();t===`z`?(e.preventDefault(),J(e.shiftKey?1:-1)):t===`y`&&(e.preventDefault(),J(1))},[J]),Be=d.default.useCallback(()=>{H()},[H]),Ve=d.default.useCallback(()=>{H()},[H]),He=d.default.useCallback(()=>{A.current=!0},[]),Ue=d.default.useCallback(()=>{A.current=!1,$()},[$]),We=d.default.useCallback(e=>{e.preventDefault()},[]);d.default.useEffect(()=>{k.current&&(k.current.innerHTML=V.current,j.current=V.current,U.current=[V.current],W.current=0)},[]),d.default.useEffect(()=>{e!==void 0&&k.current&&k.current.innerHTML!==e&&(k.current.innerHTML=e,j.current=e)},[e]);let Ge=d.default.useCallback((e,t)=>{if(e===`separator`)return(0,p.jsx)(`span`,{className:u.default.toolbarSep,"aria-hidden":`true`},`sep-${t}`);let s={disabled:I,active:M.has(e)};switch(e){case`bold`:return(0,p.jsx)(m,{...s,title:ve,onClick:()=>Y(e=>l.toggleInline(e,`bold`)),children:(0,p.jsx)(o.Icon,{component:n.default,size:`sm`})},`bold`);case`italic`:return(0,p.jsx)(m,{...s,title:T,onClick:()=>Y(e=>l.toggleInline(e,`italic`)),children:(0,p.jsx)(o.Icon,{component:i.default,size:`sm`})},`italic`);case`underline`:return(0,p.jsx)(m,{...s,title:E,onClick:()=>Y(e=>l.toggleInline(e,`underline`)),children:(0,p.jsx)(o.Icon,{component:re.default,size:`sm`})},`underline`);case`strikethrough`:return(0,p.jsx)(m,{...s,title:ye,onClick:()=>Y(e=>l.toggleInline(e,`strikethrough`)),children:(0,p.jsx)(o.Icon,{component:ne.default,size:`sm`})},`strikethrough`);case`h1`:return(0,p.jsx)(m,{...s,active:M.has(`h1`),title:be,onClick:()=>Y(e=>l.setBlock(e,`h1`)),children:(0,p.jsx)(`span`,{"aria-hidden":`true`,children:`H1`})},`h1`);case`h2`:return(0,p.jsx)(m,{...s,active:M.has(`h2`),title:xe,onClick:()=>Y(e=>l.setBlock(e,`h2`)),children:(0,p.jsx)(`span`,{"aria-hidden":`true`,children:`H2`})},`h2`);case`h3`:return(0,p.jsx)(m,{...s,active:M.has(`h3`),title:Se,onClick:()=>Y(e=>l.setBlock(e,`h3`)),children:(0,p.jsx)(`span`,{"aria-hidden":`true`,children:`H3`})},`h3`);case`ul`:return(0,p.jsx)(m,{...s,title:Ce,onClick:()=>Y(e=>l.toggleList(e,`ul`)),children:(0,p.jsx)(o.Icon,{component:te.default,size:`sm`})},`ul`);case`ol`:return(0,p.jsx)(m,{...s,title:we,onClick:()=>Y(e=>l.toggleList(e,`ol`)),children:(0,p.jsx)(o.Icon,{component:ee.default,size:`sm`})},`ol`);case`link`:return(0,p.jsx)(m,{...s,title:D,onClick:Ie,children:(0,p.jsx)(o.Icon,{component:a.default,size:`sm`})},`link`);case`unlink`:return(0,p.jsx)(m,{...s,title:Te,onClick:()=>Y(e=>l.removeLink(e)),children:(0,p.jsx)(o.Icon,{component:ie.default,size:`sm`})},`unlink`);case`removeFormat`:return(0,p.jsx)(m,{...s,title:O,onClick:Ne,children:(0,p.jsx)(o.Icon,{component:r.default,size:`sm`})},`removeFormat`);default:return null}},[M,I,ve,T,E,ye,be,xe,Se,Ce,we,D,Te,O,Y,Ie,Ne]);return(0,p.jsx)(ae.FieldTemplate,{label:b,error:x,required:S,layout:fe,labelId:F,errorId:P,className:pe,children:(0,p.jsxs)(`div`,{className:(0,f.default)(`wim-rich-text-editor`,u.default.root,u.default[L],I&&u.default.disabled,u.default[de],_&&u.default.fullWidth,z&&u.default.hasCustomWidth,Me),style:z?{"--wim-input-width":typeof v==`number`?`${v}px`:v}:void 0,children:[(0,p.jsx)(`div`,{className:u.default.toolbar,role:`toolbar`,"aria-label":Ee,"aria-controls":N,onMouseDown:We,children:he.map((e,t)=>Ge(e,t))}),(0,p.jsx)(`div`,{ref:k,id:N,className:u.default.content,contentEditable:!I,suppressContentEditableWarning:!0,role:`textbox`,"aria-multiline":!0,"aria-label":_e??(b||C?void 0:w(`a11y.rte_editor`)),"aria-labelledby":C??(b?F:void 0),"aria-invalid":L===`danger`,"aria-describedby":P,"aria-required":S,"aria-disabled":I,"aria-placeholder":ce,"data-placeholder":ce,tabIndex:I?-1:0,style:{minHeight:typeof y==`number`?`${y}px`:y,outline:`none`},onInput:$,onBeforeInput:Re,onKeyDown:ze,onKeyUp:Be,onMouseUp:Ve,onCompositionStart:He,onCompositionEnd:Ue}),(0,p.jsx)(c.Dialog,{open:Pe,onOpenChange:X,children:(0,p.jsxs)(c.DialogContent,{children:[(0,p.jsx)(c.DialogHeader,{children:(0,p.jsx)(c.DialogTitle,{children:D})}),(0,p.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),Le()},children:[(0,p.jsx)(oe.Input,{label:De,type:`url`,value:Z,onChange:e=>Fe(e.target.value),fullWidth:!0}),(0,p.jsxs)(c.DialogFooter,{children:[(0,p.jsx)(c.DialogClose,{asChild:!0,children:(0,p.jsx)(s.Button,{variant:`ghost`,type:`button`,children:ke})}),(0,p.jsx)(s.Button,{variant:`solid`,type:`submit`,children:Oe})]})]})]})})]})})};h.displayName=`RichTextEditor`,exports.RichTextEditor=h;
|