@frontify/guideline-blocks-settings 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/components/Attachments/AttachmentItem.es.js +83 -83
  2. package/dist/components/Attachments/AttachmentItem.es.js.map +1 -1
  3. package/dist/components/Attachments/Attachments.es.js +51 -54
  4. package/dist/components/Attachments/Attachments.es.js.map +1 -1
  5. package/dist/components/BlockInjectButton/BlockInjectButton.es.js +56 -57
  6. package/dist/components/BlockInjectButton/BlockInjectButton.es.js.map +1 -1
  7. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js +25 -25
  8. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js.map +1 -1
  9. package/dist/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.es.js +3 -3
  10. package/dist/components/Link/LinkInput.es.js +35 -35
  11. package/dist/components/Link/LinkInput.es.js.map +1 -1
  12. package/dist/components/Link/LinkSelector/LinkSelector.es.js +31 -31
  13. package/dist/components/Link/LinkSelector/LinkSelector.es.js.map +1 -1
  14. package/dist/components/Link/helpers/filterDocumentSectionsWithUnreadableTitles.es.js +2 -5
  15. package/dist/components/Link/helpers/filterDocumentSectionsWithUnreadableTitles.es.js.map +1 -1
  16. package/dist/components/Link/utils/getUrl.es.js +9 -15
  17. package/dist/components/Link/utils/getUrl.es.js.map +1 -1
  18. package/dist/components/RichTextEditor/RichTextEditor.es.js +39 -39
  19. package/dist/components/RichTextEditor/RichTextEditor.es.js.map +1 -1
  20. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.es.js +24 -25
  21. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.es.js.map +1 -1
  22. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.es.js +6 -6
  23. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.es.js.map +1 -1
  24. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js +25 -25
  25. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js.map +1 -1
  26. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js +29 -33
  27. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js.map +1 -1
  28. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/submitFloatingButton.es.js +6 -6
  29. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/submitFloatingButton.es.js.map +1 -1
  30. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/unwrapButton.es.js +22 -23
  31. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/unwrapButton.es.js.map +1 -1
  32. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButton.es.js +61 -63
  33. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButton.es.js.map +1 -1
  34. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButtonText.es.js +6 -6
  35. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButtonText.es.js.map +1 -1
  36. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getButtonStyle.es.js +6 -7
  37. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getButtonStyle.es.js.map +1 -1
  38. package/dist/components/RichTextEditor/plugins/ButtonPlugin/withButton.es.js +21 -21
  39. package/dist/components/RichTextEditor/plugins/ButtonPlugin/withButton.es.js.map +1 -1
  40. package/dist/components/RichTextEditor/plugins/ColumnBreakPlugin/ColumnBreakPlugin.es.js +15 -19
  41. package/dist/components/RichTextEditor/plugins/ColumnBreakPlugin/ColumnBreakPlugin.es.js.map +1 -1
  42. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js +5 -5
  43. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js +13 -13
  44. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js.map +1 -1
  45. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js +23 -23
  46. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js.map +1 -1
  47. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.es.js +7 -8
  48. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.es.js.map +1 -1
  49. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js +23 -27
  50. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js.map +1 -1
  51. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js +6 -9
  52. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js.map +1 -1
  53. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js +24 -28
  54. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js.map +1 -1
  55. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js +24 -28
  56. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js.map +1 -1
  57. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js +24 -28
  58. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js.map +1 -1
  59. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js +24 -28
  60. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js.map +1 -1
  61. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js +24 -28
  62. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js.map +1 -1
  63. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js +24 -28
  64. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js.map +1 -1
  65. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js +24 -28
  66. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js.map +1 -1
  67. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js +25 -29
  68. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js.map +1 -1
  69. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js +25 -29
  70. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js.map +1 -1
  71. package/dist/components/RichTextEditor/plugins/TextStylePlugins/paragraphPlugin.es.js +26 -30
  72. package/dist/components/RichTextEditor/plugins/TextStylePlugins/paragraphPlugin.es.js.map +1 -1
  73. package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js +26 -30
  74. package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js.map +1 -1
  75. package/dist/guideline-blocks-settings.css +1 -0
  76. package/dist/helpers/customCoordinatesGetterFactory.es.js +18 -18
  77. package/dist/helpers/customCoordinatesGetterFactory.es.js.map +1 -1
  78. package/dist/hooks/useAttachments.es.js +6 -6
  79. package/dist/hooks/useAttachments.es.js.map +1 -1
  80. package/dist/index.cjs.js +7 -7
  81. package/dist/index.cjs.js.map +1 -1
  82. package/dist/index.d.ts +0 -15
  83. package/dist/index.es.js +208 -208
  84. package/dist/index.umd.js +7 -7
  85. package/dist/index.umd.js.map +1 -1
  86. package/dist/settings/background.es.js +4 -4
  87. package/dist/settings/background.es.js.map +1 -1
  88. package/dist/settings/border.es.js +17 -17
  89. package/dist/settings/border.es.js.map +1 -1
  90. package/dist/settings/borderRadius.es.js +12 -15
  91. package/dist/settings/borderRadius.es.js.map +1 -1
  92. package/dist/settings/borderRadiusExtended.es.js +25 -28
  93. package/dist/settings/borderRadiusExtended.es.js.map +1 -1
  94. package/dist/settings/gutter.es.js +17 -20
  95. package/dist/settings/gutter.es.js.map +1 -1
  96. package/dist/settings/margin.es.js +14 -14
  97. package/dist/settings/margin.es.js.map +1 -1
  98. package/dist/settings/marginExtended.es.js +29 -29
  99. package/dist/settings/marginExtended.es.js.map +1 -1
  100. package/dist/settings/padding.es.js +14 -14
  101. package/dist/settings/padding.es.js.map +1 -1
  102. package/dist/settings/paddingExtended.es.js +28 -28
  103. package/dist/settings/paddingExtended.es.js.map +1 -1
  104. package/dist/settings/securityDownloadable.es.js +8 -11
  105. package/dist/settings/securityDownloadable.es.js.map +1 -1
  106. package/dist/utilities/color/getReadableColor.es.js +6 -6
  107. package/dist/utilities/color/getReadableColor.es.js.map +1 -1
  108. package/dist/utilities/color/isDark.es.js +4 -4
  109. package/dist/utilities/color/isDark.es.js.map +1 -1
  110. package/package.json +16 -16
  111. package/dist/styles.css +0 -1
package/dist/index.umd.js CHANGED
@@ -1,10 +1,10 @@
1
- (function(o,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("@frontify/sidebar-settings"),require("react/jsx-runtime"),require("@frontify/app-bridge"),require("@frontify/fondue/components"),require("@frontify/fondue/icons"),require("react"),require("@frontify/fondue"),require("@dnd-kit/core"),require("@dnd-kit/modifiers"),require("@dnd-kit/sortable"),require("@react-aria/focus"),require("@frontify/fondue/rte"),require("react-dom"),require("@ctrl/tinycolor")):typeof define=="function"&&define.amd?define(["exports","@frontify/sidebar-settings","react/jsx-runtime","@frontify/app-bridge","@frontify/fondue/components","@frontify/fondue/icons","react","@frontify/fondue","@dnd-kit/core","@dnd-kit/modifiers","@dnd-kit/sortable","@react-aria/focus","@frontify/fondue/rte","react-dom","@ctrl/tinycolor"],g):(o=typeof globalThis<"u"?globalThis:o||self,g(o.GuidelineBlocksSettings={},o.sidebarSettings,o.jsxRuntime,o.appBridge,o.components,o.icons,o.React,o.fondue,o.core,o.modifiers,o.sortable,o.focus,o.rte,o.ReactDOM,o.tinycolor))})(this,function(o,g,a,Q,y,T,h,W,B,En,fe,rt,s,me,q){"use strict";var Xr=Object.defineProperty;var Yr=(o,g,a)=>g in o?Xr(o,g,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[g]=a;var L=(o,g,a)=>Yr(o,typeof g!="symbol"?g+"":g,a);const z=e=>e.filter(Boolean).join(" "),Sn=({onDrop:e,label:t,icon:n,secondaryLabel:r,isLoading:l,fillParentContainer:i,onAssetChooseClick:d,onUploadClick:u,withMenu:c=!0,onClick:m,validFileType:b,verticalLayout:f})=>{const[w,k]=h.useState(!1),[p,x]=h.useState(),M=h.useRef(null),[A,O]=h.useState(void 0),K=P=>{if(P.preventDefault(),k(!1),!U(P.dataTransfer.files)){O("Invalid"),setTimeout(()=>{O(void 0)},1e3);return}e==null||e(P.dataTransfer.files)},U=P=>{if(!b)return!0;for(let _=0;_<P.length;_++){const H=P[_].name.split(".").pop()??"";if(!Q.FileExtensionSets[b].includes(H))return!1}return!0},$=P=>{if(!M.current||l)return;const{clientX:_,clientY:H}=P,he=_===0&&H===0,{left:Pe,top:tt,width:nt,height:Te}=M.current.getBoundingClientRect(),Ie=he?nt/2:_-Pe,j=he?Te/2:H-tt;x([Ie,j])},I=h.useCallback(P=>{P(),x(void 0)},[]),et=h.useMemo(()=>{const P=[];return u&&P.push({onSelect:()=>I(u),title:"Upload asset",icon:a.jsx(T.IconArrowCircleUp,{size:"20"})}),d&&P.push({onSelect:()=>I(d),title:"Browse asset",icon:a.jsx(T.IconImageStack,{size:"20"})}),P},[d,u,I]);return a.jsxs("button",{ref:M,"data-test-id":"block-inject-button",className:z(["tw-font-body tw-relative tw-text-sm tw-leading-4 tw-border tw-flex tw-items-center tw-justify-center tw-cursor-pointer tw-gap-3 tw-w-full first:tw-rounded-tl last:tw-rounded-br",f?"[&:not(:first-child)]:tw-border-t-0 first:tw-rounded-tr last:tw-rounded-bl":"[&:not(:first-child)]:tw-border-l-0 first:tw-rounded-bl last:tw-rounded-tr",i?"tw-h-full":"tw-h-[72px]",w&&!l?"tw-border-dashed":"tw-border-solid",p&&"tw-bg-blank-state-pressed-inverse",w&&"tw-bg-blank-state-weak-inverse",A?"!tw-border-red-50 !tw-cursor-not-allowed":" tw-border-blank-state-line",l||p||w||A?"":"tw-text-text-weak hover:tw-text-blank-state-hover hover:tw-bg-blank-state-hover-inverse hover:tw-border-blank-state-line-hover active:tw-text-blank-state-pressed active:tw-bg-blank-state-pressed-inverse active:tw-border-blank-state-line-hover",(w||p)&&!A?"[&>*]:tw-pointer-events-none tw-border-blank-state-line-hover":"tw-bg-blank-state-shaded-inverse tw-text-blank-state-shaded"]),onDragEnter:e?P=>{var _;if(k(!0),b==="Images")for(const H of Array.from(P.dataTransfer.items))(_=H==null?void 0:H.type)!=null&&_.startsWith("image/")?O(void 0):O("Invalid")}:void 0,onDragLeave:e?()=>{k(!1),O(void 0)}:void 0,onDrop:e?K:void 0,onClick:P=>{c&&!p&&$(P),m==null||m()},children:[l?a.jsx(y.LoadingCircle,{}):A?a.jsxs("div",{className:" tw-flex tw-items-center tw-justify-center tw-text-red-60 tw-font-medium",children:[a.jsx(T.IconExclamationMarkTriangle,{size:"16"}),A]}):a.jsxs(a.Fragment,{children:[n&&a.jsx("div",{children:n}),(t||r)&&a.jsxs("div",{className:"tw-flex tw-flex-col tw-items-start",children:[t&&a.jsx("div",{className:"tw-font-medium",children:t}),r&&a.jsx("div",{className:"tw-font-normal",children:r})]})]}),p&&a.jsx("div",{className:"tw-absolute tw-left-0 tw-top-full tw-z-20",style:{left:p[0],top:p[1]},children:a.jsxs(y.Flyout.Root,{open:!0,onOpenChange:P=>!P&&x(void 0),children:[a.jsx(y.Flyout.Trigger,{children:a.jsx("div",{})}),a.jsx(y.Flyout.Content,{triggerOffset:"compact",children:a.jsxs(y.Dropdown.Root,{open:!0,children:[a.jsx(y.Dropdown.Trigger,{children:a.jsx("div",{})}),a.jsx(y.Dropdown.Content,{triggerOffset:"compact",children:et.map(P=>a.jsxs(y.Dropdown.Item,{onSelect:P.onSelect,children:[P.icon,P.title]},P.title))})]})})]})})]})},X=e=>{const t=r=>typeof r=="object"&&["red","green","blue"].every(i=>r.hasOwnProperty(i)),n=r=>{const l=typeof r.alpha=="number"?r.alpha:1;return{r:r.red,g:r.green,b:r.blue,a:l}};return t(e)?n(e):e},Bn=e=>typeof e=="object"&&["red","green","blue"].every(n=>e==null?void 0:e.hasOwnProperty(n)),Nn=(e,t)=>{const n=Bn(e)?X(e):e,r=new q.TinyColor(n);return t?r.getBrightness()<t:r.isDark()||r.getAlpha()>.25&&r.getAlpha()<1},An=e=>new q.TinyColor(X(e)).toHex8String(),Ln=e=>new q.TinyColor(X(e)).toHexString(),Ee=e=>new q.TinyColor(X(e)).toRgbString(),Dn=(e,t)=>new q.TinyColor(t).setAlpha(e).toRgbString(),Mn=e=>{const{r:t,g:n,b:r,a:l}=new q.TinyColor(e);return{red:t,green:n,blue:r,alpha:l}},st=e=>typeof e=="object"&&["red","green","blue"].every(n=>e==null?void 0:e.hasOwnProperty(n)),Fn=(e,t)=>{const n=st(e)?X(e):e,r=st(t)?X(t):t;let l=new q.TinyColor(n);const i=new q.TinyColor(r);for(;q.readability(l,i)<4.5;)l=l.darken(1);return l.toRgbString()},On=(e,t,n)=>{const r=[...e],l=n<0?r.length+n:n;if(l>=0&&l<r.length){const i=r.splice(t,1)[0];r.splice(l,0,i)}return r},_n=e=>({backgroundColor:Ee(e)}),Un={red:241,green:241,blue:241,alpha:1},lt={red:234,green:235,blue:235,alpha:1},Hn="1px",ce="24px",ue="24px";var V=(e=>(e.Solid="Solid",e.Dashed="Dashed",e.Dotted="Dotted",e))(V||{});const ot={Solid:"solid",Dotted:"dotted",Dashed:"dashed"};var G=(e=>(e.None="None",e.Small="Small",e.Medium="Medium",e.Large="Large",e))(G||{});const Y={None:"0px",Small:"2px",Medium:"4px",Large:"12px"};var J=(e=>(e.None="None",e.Small="Small",e.Medium="Medium",e.Large="Large",e))(J||{});const ne={None:"0px",Small:"24px",Medium:"36px",Large:"60px"};var Z=(e=>(e.None="None",e.Small="Small",e.Medium="Medium",e.Large="Large",e))(Z||{});const ae={None:"0px",Small:"24px",Medium:"36px",Large:"60px"};var R=(e=>(e.Global="Global",e.Custom="Custom",e))(R||{}),ee=(e=>(e.Auto="Auto",e.S="S",e.M="M",e.L="L",e))(ee||{});const it={Auto:"4px",S:"10px",M:"30px",L:"50px"},zn=(e=V.Solid,t="1px",n=lt)=>({borderStyle:ot[e],borderWidth:t,borderColor:Ee(n)}),Vn=(e,t=!1,n)=>({borderRadius:t?n:Y[e]}),Se=h.createContext(!1);Se.displayName="DragPreviewContext";const dt=({children:e,isDragPreview:t})=>a.jsx(Se.Provider,{value:t,children:e}),re=()=>h.useContext(Se),Be=h.createContext({openFlyoutIds:[],setOpenFlyoutIds:()=>console.error("No MultiFlyoutContext Provider found")});Be.displayName="MultiFlyoutContext";const ct=({children:e,openFlyoutIds:t,setOpenFlyoutIds:n})=>{const r=h.useMemo(()=>({openFlyoutIds:t,setOpenFlyoutIds:n}),[t,n]);return a.jsx(Be.Provider,{value:r,children:e})},ut=()=>h.useContext(Be),we=e=>{const{openFlyoutIds:t,setOpenFlyoutIds:n}=ut(),r=h.useCallback(l=>{n(i=>{const d=i.filter(u=>u!==e);return l?[...d,e]:d})},[e,n]);return{isOpen:t.includes(e),onOpenChange:r}},Ne=(e,t)=>{const{blockAssets:n,addAssetIdsToKey:r,deleteAssetIdsFromKey:l,updateAssetIdsFromKey:i}=t,d=(n==null?void 0:n[e])||[];return{onAttachmentsAdd:async f=>{await r(e,f.map(w=>w.id))},onAttachmentDelete:async f=>{await l(e,[f.id])},onAttachmentReplace:async(f,w)=>{const k=d.map(p=>p.id===f.id?w.id:p.id);await i(e,k)},onAttachmentsSorted:async f=>{const w=f.map(k=>k.id);await i(e,w)},attachments:d}},gt=(e,t)=>{const{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:l,onAttachmentsSorted:i,attachments:d}=Ne(t,Q.useBlockAssets(e));return{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:l,onAttachmentsSorted:i,attachments:d,appBridge:e}},ye=h.createContext(null);ye.displayName="AttachmentsContext";const ht=({appBridge:e,children:t,assetId:n})=>{const r=gt(e,n);return a.jsx(ye.Provider,{value:r,children:t})},$n=({blockAssetBundle:e,appBridge:t,children:n,assetId:r})=>{const l=Ne(r,e);return a.jsx(ye.Provider,{value:{...l,appBridge:t},children:n})},ft=()=>{const e=h.useContext(ye);if(!e)throw new Error("No AttachmentsContext Provided. Component must be wrapped in an 'AttachmentsProvider' or the 'withAttachmentsProvider' HOC");return e},Wn=(e,t)=>{const n=r=>a.jsx(ht,{appBridge:r.appBridge,assetId:t,children:a.jsx(e,{...r})});return n.displayName="withAttachmentsProvider",n},qn=[B.KeyboardCode.Down,B.KeyboardCode.Right,B.KeyboardCode.Up,B.KeyboardCode.Left],mt=(e,t)=>(n,{currentCoordinates:r,context:{activeNode:l}})=>{if(n.preventDefault(),qn.includes(n.code)){const i=(l==null?void 0:l.offsetWidth)??0,d=(l==null?void 0:l.offsetHeight)??0;switch(n.code){case B.KeyboardCode.Right:return{...r,x:r.x+i+e};case B.KeyboardCode.Left:return{...r,x:r.x-i-e};case B.KeyboardCode.Down:return{...r,y:r.y+d+t};case B.KeyboardCode.Up:return{...r,y:r.y-d-t}}}},Gn={start:["Space","Enter"],cancel:[],end:["Space","Enter","Escape"]},Kn=(e=0,t=0)=>{const n=h.useMemo(()=>({coordinateGetter:mt(e,t),keyboardCodes:Gn}),[e,t]);return B.useSensors(B.useSensor(B.PointerSensor),B.useSensor(B.KeyboardSensor,n))},jn=e=>e==="IMAGE"?a.jsx(T.IconImage,{size:"24"}):e==="VIDEO"?a.jsx(T.IconPlayFrame,{size:"24"}):e==="AUDIO"?a.jsx(T.IconMusicNote,{size:"24"}):a.jsx(T.IconDocument,{size:"24"}),wt=h.forwardRef(({item:e,isEditing:t,draggableProps:n,transformStyle:r,isDragging:l,isOverlay:i,isLoading:d,onDelete:u,onReplaceWithBrowse:c,onReplaceWithUpload:m,onDownload:b},f)=>{const[w,k]=h.useState(),[p,{selectedFiles:x}]=Q.useFileInput({multiple:!0,accept:"image/*"}),[M,{results:A,doneAll:O}]=Q.useAssetUpload(),{focusProps:K,isFocusVisible:U}=rt.useFocusRing();h.useEffect(()=>{x&&M(x[0])},[x]),h.useEffect(()=>{O&&m(A[0])},[O,A]);const $=d||x&&!O;return a.jsxs("button",{type:"button","aria-label":"Download attachment","data-test-id":"attachments-item",onClick:()=>!w&&(b==null?void 0:b()),ref:f,style:{...r,opacity:l&&!i?.3:1,fontFamily:"var(-f-theme-settings-body-font-family)"},className:z(["tw-cursor-pointer tw-text-left tw-w-full tw-relative tw-flex tw-gap-3 tw-px-5 tw-py-3 tw-items-center tw-group hover:tw-bg-box-neutral-hover",l?"tw-bg-box-neutral-hover":""]),children:[a.jsx("div",{className:"tw-text-text-weak group-hover:tw-text-box-neutral-inverse-hover",children:$?a.jsx(y.LoadingCircle,{size:"small"}):jn(e.objectType)}),a.jsxs("div",{className:"tw-text-s tw-flex-1 tw-min-w-0",children:[a.jsx("div",{className:"tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-text-weak group-hover:tw-text-box-neutral-inverse-hover",children:e.title}),a.jsx("div",{className:"tw-text-text-weak",children:`${e.fileSizeHumanReadable} - ${e.extension}`})]}),t&&a.jsxs("div",{"data-test-id":"attachments-actionbar",className:z(["tw-flex tw-gap-0.5 group-focus:tw-opacity-100 focus-visible:tw-opacity-100 focus-within:tw-opacity-100 group-hover:tw-opacity-100",i||(w==null?void 0:w.id)===e.id?"tw-opacity-100":"tw-opacity-0"]),children:[a.jsx("button",{type:"button",...K,...n,"aria-label":"Drag attachment",className:z([" tw-border-button-border tw-bg-button-background active:tw-bg-button-background-pressed tw-group tw-border tw-box-box tw-relative tw-flex tw-items-center tw-justify-center tw-outline-none tw-font-medium tw-rounded tw-h-9 tw-w-9 ",l||i?"tw-cursor-grabbing tw-bg-button-background-pressed hover:tw-bg-button-background-pressed":"tw-cursor-grab hover:tw-bg-button-background-hover",U&&"tw-ring-4 tw-ring-blue tw-ring-offset-2 dark:tw-ring-offset-black tw-outline-none",U&&"tw-z-[2]"]),children:a.jsx(T.IconGrabHandle,{})}),a.jsx("div",{"data-test-id":"attachments-actionbar-flyout",children:a.jsxs(y.Dropdown.Root,{open:(w==null?void 0:w.id)===e.id,onOpenChange:I=>k(I?e:void 0),children:[a.jsx(y.Dropdown.Trigger,{children:a.jsx(y.Button,{aspect:"square",ref:f,onPress:I=>{I==null||I.stopPropagation(),I==null||I.preventDefault()},emphasis:"default",children:a.jsx(T.IconPen,{size:"20"})})}),a.jsxs(y.Dropdown.Content,{side:"right",children:[a.jsxs(y.Dropdown.Group,{children:[a.jsxs(y.Dropdown.Item,{"data-test-id":"menu-item",onSelect:I=>{I==null||I.stopPropagation(),p(),k(void 0)},children:[a.jsx(T.IconArrowCircleUp,{size:"20"}),"Replace with upload"]}),a.jsxs(y.Dropdown.Item,{onSelect:I=>{I==null||I.stopPropagation(),c(),k(void 0)},children:[a.jsx(T.IconImageStack,{size:"20"}),"Replace with asset"]})]}),a.jsx(y.Dropdown.Group,{children:a.jsxs(y.Dropdown.Item,{emphasis:"danger",onSelect:I=>{I==null||I.stopPropagation(),u(),k(void 0)},children:[a.jsx(T.IconTrashBin,{size:"20"}),"Delete"]})})]})]})})]})]})});wt.displayName="AttachmentItem";const Qn=e=>{const{attributes:t,listeners:n,setNodeRef:r,transform:l,transition:i,isDragging:d}=fe.useSortable({id:e.item.id}),u={transform:l?`translate(${l.x}px, ${l.y}px)`:"",transition:i,zIndex:d?2:1},c={...t,...n};return a.jsx(wt,{ref:r,isDragging:d,transformStyle:u,draggableProps:c,...e})},yt=h.forwardRef(({children:e,isFlyoutOpen:t,...n},r)=>a.jsxs("button",{ref:r,className:z(["tw-flex tw-text-xs tw-font-body tw-items-center tw-gap-1 tw-rounded-full tw-outline tw-outline-1 tw-outline-offset-1 tw-p-1.5 tw-outline-line",t?"tw-bg-box-neutral-pressed tw-text-box-neutral-inverse-pressed":"tw-bg-base hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed tw-text-box-neutral-inverse hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed"]),"data-test-id":"attachments-button-trigger",...n,children:[a.jsx(T.IconPaperclip,{size:"16"}),e,a.jsx(T.IconCaretDown,{size:"12"})]}));yt.displayName="AttachmentsButtonTrigger";const bt=({items:e=[],onDelete:t,onReplaceWithBrowse:n,onReplaceWithUpload:r,onBrowse:l,onUpload:i,onSorted:d,appBridge:u,triggerComponent:c=yt,isOpen:m,onOpenChange:b})=>{const[f,w]=h.useState(e),[k,p]=h.useState(!1),x=B.useSensors(B.useSensor(B.PointerSensor),B.useSensor(B.KeyboardSensor)),[M,A]=h.useState(void 0),[O,K]=h.useState(!1),[U,$]=h.useState([]),[I,et]=h.useState(null),P=Q.useEditorState(u),{openAssetChooser:_,closeAssetChooser:H}=Q.useAssetChooser(u),he=m!==void 0,Pe=he?m:k,tt=f==null?void 0:f.find(C=>C.id===M),[nt,{results:Te,doneAll:Ie}]=Q.useAssetUpload({onUploadProgress:()=>!O&&K(!0)}),j=C=>{const F=he?b:p;F==null||F(C)};h.useEffect(()=>{w(e)},[e]),h.useEffect(()=>{I&&(K(!0),nt(I))},[I]),h.useEffect(()=>{(async()=>{Ie&&(await i(Te),K(!1))})()},[Ie,Te]);const Vr=()=>{j(!1),_(C=>{l(C),H(),j(!0)},{multiSelection:!0,selectedValueIds:f.map(C=>C.id)})},$r=C=>{j(!1),_(async F=>{j(!0),H(),$([...U,C.id]),await n(C,F[0]),$(U.filter(te=>te!==C.id))},{multiSelection:!1,selectedValueIds:f.map(F=>F.id)})},Wr=async(C,F)=>{$([...U,C.id]),await r(C,F),$(U.filter(te=>te!==C.id))},qr=C=>{const{active:F}=C;A(F.id)},Gr=C=>{const{active:F,over:te}=C;if(te&&F.id!==te.id&&f){const jr=f.findIndex(at=>at.id===F.id),Qr=f.findIndex(at=>at.id===te.id),In=fe.arrayMove(f,jr,Qr);w(In),d(In)}A(void 0)},Kr={onOpenAutoFocus:C=>{C.preventDefault()},onEscapeKeyDown:C=>{C.stopPropagation(),j(!1)}};return P||((f==null?void 0:f.length)??0)>0?a.jsx("div",{"data-test-id":"attachments-flyout-button",children:a.jsx(y.Flyout.Root,{open:Pe,onOpenChange:C=>j(tt?!0:C),children:a.jsxs(y.Tooltip.Root,{enterDelay:500,children:[a.jsx(y.Tooltip.Trigger,{asChild:!0,children:a.jsx(y.Flyout.Trigger,{asChild:!0,"data-test-id":"attachments-button-trigger",children:a.jsx(c,{isFlyoutOpen:Pe,children:a.jsx("div",{children:e.length>0?e.length:"Add"})})})}),a.jsx(y.Flyout.Content,{side:"bottom",align:"end",...Kr,children:a.jsxs("div",{className:"tw-w-[300px]","data-test-id":"attachments-flyout-content",children:[f.length>0&&a.jsx(B.DndContext,{sensors:x,collisionDetection:B.closestCenter,onDragStart:qr,onDragEnd:Gr,modifiers:[En.restrictToVerticalAxis],children:a.jsx(fe.SortableContext,{items:f,strategy:fe.rectSortingStrategy,children:a.jsx("div",{className:"tw-border-b tw-border-b-line tw-relative",children:f.map(C=>a.jsx(Qn,{isEditing:P,isLoading:U.includes(C.id),item:C,onDelete:()=>t(C),onReplaceWithBrowse:()=>$r(C),onReplaceWithUpload:F=>Wr(C,F),onDownload:()=>u.dispatch({name:"downloadAsset",payload:C})},C.id))})})}),P&&a.jsxs("div",{className:"tw-px-5 tw-py-3",children:[a.jsx("div",{className:"tw-font-body tw-font-medium tw-text-text tw-text-s tw-my-4",children:"Add attachments"}),a.jsx(W.AssetInput,{isLoading:O,size:W.AssetInputSize.Small,onUploadClick:C=>et(C),onLibraryClick:Vr})]})]})}),a.jsx(y.Tooltip.Content,{side:"top",children:"Attachments"})]})})}):null},Xn=(e,t)=>{const n=[W.FOCUS_VISIBLE_STYLE,"tw-relative tw-inline-flex tw-items-center tw-justify-center","tw-h-6 tw-p-1","tw-rounded","tw-text-xs tw-font-medium","tw-gap-0.5","focus-visible:tw-z-10"];return t?n.push("tw-bg-box-neutral-pressed","tw-text-box-neutral-inverse-pressed",e==="grab"?"tw-cursor-grabbing":"tw-cursor-pointer"):n.push("hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed","tw-text-text-weak hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed",e==="grab"?"!tw-cursor-grab active:tw-cursor-grabbing":"tw-cursor-pointer"),z(n)},se=h.forwardRef(({onClick:e,children:t,forceActiveStyle:n,cursor:r="pointer","data-test-id":l="base-toolbar-button",...i},d)=>a.jsx("button",{onClick:e,className:Xn(r,n),"data-test-id":l,...i,ref:d,children:t}));se.displayName="BaseToolbarButton";const pt=h.forwardRef(({children:e,isFlyoutOpen:t,...n},r)=>a.jsxs(se,{forceActiveStyle:t,"data-test-id":"attachments-toolbar-button-trigger",ref:r,...n,children:[a.jsx(T.IconPaperclip,{size:"16"}),e,a.jsx(T.IconCaretDown,{size:"12"})]}));pt.displayName="AttachmentsToolbarButtonTrigger";const vt="attachments",Ct=({flyoutId:e=vt})=>{const t=W.useMemoizedId(e),{appBridge:n,attachments:r,onAttachmentsAdd:l,onAttachmentDelete:i,onAttachmentReplace:d,onAttachmentsSorted:u}=ft(),{isOpen:c,onOpenChange:m}=we(t),b=re();return a.jsx(bt,{onUpload:l,onDelete:i,onReplaceWithBrowse:d,onReplaceWithUpload:d,onSorted:u,onBrowse:l,items:r,appBridge:n,triggerComponent:pt,isOpen:c&&!b,onOpenChange:m})},kt="Drag or press ↵ to move",xt="Move with ↑↓←→ and confirm with ↵",Ae=({content:e,children:t,open:n,disabled:r})=>r?t:a.jsxs(y.Tooltip.Root,{enterDelay:300,open:n,children:[a.jsx(y.Tooltip.Trigger,{asChild:!0,children:t}),a.jsx(y.Tooltip.Content,{side:"top",children:a.jsx("div",{children:e})})]}),Pt=({tooltip:e,icon:t,setActivatorNodeRef:n,draggableProps:r})=>{const l=re();return a.jsx(Ae,{...l&&{open:l},content:a.jsx("div",{children:l?xt:e??kt}),children:a.jsx(se,{ref:n,"data-test-id":"block-item-wrapper-toolbar-btn",forceActiveStyle:l,cursor:"grab",...r,children:t})})},Tt=({content:e,icon:t,tooltip:n,flyoutId:r,flyoutFooter:l,flyoutHeader:i})=>{const d=W.useMemoizedId(r),{isOpen:u,onOpenChange:c}=we(d),m=re();return a.jsx(Ae,{disabled:m||u,content:n,children:a.jsx("div",{className:"tw-flex tw-flex-shrink-0 tw-flex-1 tw-h-6 tw-relative",children:a.jsxs(y.Flyout.Root,{open:u&&!m,onOpenChange:c,children:[a.jsx(y.Flyout.Trigger,{asChild:!0,children:a.jsx(se,{"data-test-id":"block-item-wrapper-toolbar-flyout",forceActiveStyle:u&&!m,children:t})}),a.jsxs(y.Flyout.Content,{side:"bottom",align:"end",padding:"comfortable",children:[i?a.jsx(y.Flyout.Header,{children:i}):null,a.jsx(y.Flyout.Body,{children:e}),l?a.jsx(y.Flyout.Footer,{children:l}):null]})]})})})},Le="menu",It=({items:e,flyoutId:t=Le,tooltip:n="Options"})=>{const r=W.useMemoizedId(t),{isOpen:l,onOpenChange:i}=we(r),d=re();return a.jsx(y.Dropdown.Root,{open:l&&!d,onOpenChange:i,children:a.jsxs(y.Tooltip.Root,{children:[a.jsx(y.Tooltip.Trigger,{asChild:!0,children:a.jsx(y.Dropdown.Trigger,{asChild:!0,children:a.jsx(se,{"data-test-id":"block-item-wrapper-toolbar-flyout",children:a.jsx(T.IconDotsHorizontal,{size:"16"})})})}),a.jsx(y.Dropdown.Content,{children:e.map((u,c)=>a.jsx(y.Dropdown.Group,{children:u.map((m,b)=>a.jsxs(y.Dropdown.Item,{"data-test-id":"menu-item",onSelect:()=>{i(!1),m.onClick()},emphasis:m.style||"default",children:[a.jsx("div",{className:"tw-mr-2",children:m.icon}),a.jsx("span",{children:m.title})]},`${c}-${b}`))},c))}),a.jsx(y.Tooltip.Content,{children:n})]})})},Yn=({tooltip:e,icon:t,onClick:n})=>{const r=re();return a.jsx(Ae,{disabled:r,content:e??"",children:a.jsx(se,{"data-test-id":"block-item-wrapper-toolbar-btn",onClick:n,children:t})})},Et=({children:e})=>a.jsx("div",{"data-test-id":"block-item-wrapper-toolbar-segment",className:"tw-pointer-events-auto tw-flex tw-flex-shrink-0 tw-gap-px tw-px-px tw-h-[26px] tw-items-center tw-self-start tw-leading-none",children:e}),St=({items:e,attachments:t})=>a.jsxs("div",{"data-test-id":"block-item-wrapper-toolbar",className:"tw-rounded-md tw-bg-base tw-border tw-border-line-strong tw-divide-x tw-divide-line-strong tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate",children:[t.isEnabled&&a.jsx(Et,{children:a.jsx(Ct,{})}),e.length>0&&a.jsx(Et,{children:e.map(n=>{switch(n.type){case"dragHandle":return a.jsx(Pt,{...n},n.tooltip+n.type);case"menu":return a.jsx(It,{...n},n.tooltip+n.type);case"flyout":return a.jsx(Tt,{...n},n.tooltip+n.type);default:return a.jsx(Yn,{...n},n.tooltip+n.type)}})})]}),Bt=h.memo(({children:e,toolbarItems:t,shouldHideWrapper:n,shouldHideComponent:r=!1,isDragging:l=!1,shouldFillContainer:i,outlineOffset:d=0,shouldBeShown:u=!1,showAttachments:c=!1})=>{const[m,b]=h.useState(u?[Le]:[]),f=h.useRef(null);if(n)return a.jsx(a.Fragment,{children:e});const w=t==null?void 0:t.filter(p=>p!==void 0),k=m.length>0||u;return a.jsx(dt,{isDragPreview:l,children:a.jsx(ct,{openFlyoutIds:m,setOpenFlyoutIds:b,children:a.jsxs("div",{ref:f,"data-test-id":"block-item-wrapper",style:{outlineOffset:d},className:z(["tw-relative tw-group tw-outline-1 tw-outline-box-selected-inverse",i&&"tw-flex-1 tw-h-full tw-w-full","hover:tw-outline focus-within:tw-outline",k&&"tw-outline",r&&"tw-opacity-0"]),children:[a.jsx("div",{style:{right:-1-d,bottom:`calc(100% - ${2+d}px)`},className:z(["tw-pointer-events-none tw-absolute tw-bottom-[calc(100%-4px)] tw-right-[-3px] tw-w-full tw-opacity-0 tw-z-[60]","group-hover:tw-opacity-100 group-focus:tw-opacity-100 focus-within:tw-opacity-100","tw-flex tw-justify-end",k&&"tw-opacity-100"]),children:a.jsx(St,{attachments:{isEnabled:c},items:w})}),e]})})})});Bt.displayName="BlockItemWrapper";const Jn=({onDownload:e,ariaLabel:t})=>{const{isFocused:n,focusProps:r}=rt.useFocusRing();return a.jsxs(y.Tooltip.Root,{enterDelay:500,children:[a.jsx(y.Tooltip.Trigger,{asChild:!0,children:a.jsx("button",{type:"button",tabIndex:0,"aria-label":t??"Download",...r,className:z(["tw-outline-none tw-rounded",n&&"tw-ring-4 tw-ring-blue tw-ring-offset-2 dark:tw-ring-offset-black tw-outline-none"]),onClick:e,onPointerDown:l=>l.preventDefault(),"data-test-id":"download-button",children:a.jsx("span",{className:"tw-flex tw-text-xs tw-font-body tw-items-center tw-gap-1 tw-rounded-full tw-bg-box-neutral-strong-inverse hover:tw-bg-box-neutral-strong-inverse-hover active:tw-bg-box-neutral-strong-inverse-pressed tw-text-box-neutral-strong tw-outline tw-outline-1 tw-outline-offset-1 tw-p-1.5 tw-outline-line",children:a.jsx(T.IconArrowCircleDown,{size:"16"})})})}),a.jsx(y.Tooltip.Content,{side:"top",children:"Download"})]})},Zn=({ref:e,disabled:t,onChange:n})=>{h.useEffect(()=>{if(t||!e.current)return;let r=!1;const l=new IntersectionObserver(([i])=>{i.isIntersecting!==r&&(r=i.isIntersecting,n(i.isIntersecting))});return l.observe(e.current),()=>{l.disconnect()}},[e,t,n])},Rn=({value:e="",gap:t,customClass:n,show:r=!0,plugins:l})=>{const[i,d]=h.useState(null);return h.useEffect(()=>{(async()=>{const c=await s.serializeRawToHtmlAsync(e,l,void 0,t,n);d(c)})().catch(console.error)},[e,t,l,n]),!r||i==="<br />"||i===null?null:a.jsx("div",{className:"tw-w-full tw-whitespace-pre-wrap","data-test-id":"rte-content-html",dangerouslySetInnerHTML:{__html:i}})},De=s.createStore("floatingButton")({openEditorId:null,mouseDown:!1,updated:!1,url:"",text:"",buttonStyle:"primary",newTab:!1,mode:"",isEditing:!1}).extendActions(e=>({reset:()=>{e.url(""),e.text(""),e.buttonStyle("primary"),e.newTab(!1),e.mode(""),e.isEditing(!1)}})).extendActions(e=>({show:(t,n)=>{e.mode(t),e.isEditing(!1),e.openEditorId(n)},hide:()=>{e.reset(),e.openEditorId(null)}})).extendSelectors(e=>({isOpen:t=>e.openEditorId===t})),N=De.set,D=De.get,ge=()=>De.use,Nt=e=>{if(!e)return!1;const t=n=>n.some(r=>r.text?r.text!=="":r.children?t(r.children):!1);try{const n=JSON.parse(e);return t(n)}catch{return!1}},ea=(e="p",t="",n)=>Nt(t)?t:JSON.stringify([{type:e,children:[{text:t,textStyle:e}],align:n}]),ta=(e,t,n)=>e===R.Custom?t:n,na=e=>e.map(At),At=e=>({id:e.id,title:e.name,colors:e.colors.map(ra)}),aa=e=>"revision"in e,ra=e=>{if(aa(e)){const{title:t,revision:n}=e;return{alpha:n.rgba.alpha?n.rgba.alpha/255:1,red:n.rgba.red??0,green:n.rgba.green??0,blue:n.rgba.blue??0,name:t??""}}return{alpha:e.alpha?e.alpha/255:1,red:e.red??0,green:e.green??0,blue:e.blue??0,name:e.name??""}},Me=(e,t)=>{const n=s.getAboveNode(e,{match:{type:s.ELEMENT_LINK}});return Array.isArray(n)?t(n[0]):""},sa=e=>Me(e,t=>{var n,r;return((r=(n=t.chosenLink)==null?void 0:n.searchResult)==null?void 0:r.link)||""}),la=e=>Me(e,t=>t.url||""),Fe=e=>{var t,n;return e.url||((n=(t=e.chosenLink)==null?void 0:t.searchResult)==null?void 0:n.link)||""},oa=e=>Me(e,Fe),Oe=/^\/(document|r)\/\S+$/i,be=e=>{if(Oe.test(e))return e;try{return new URL(e),e}catch{return`https://${e}`}},pe=e=>{if(Oe.test(e))return!0;try{const t=new URL(e);return["http:","https:","mailto:","tel:"].includes(t.protocol)&&t.pathname!==""}catch{return!1}},le=e=>pe(be(e))||e==="",Lt=(e,{type:t})=>{const{apply:n,normalizeNode:r}=e;return e.apply=l=>{if(l.type!=="set_selection"){n(l);return}const i=l.newProperties;if(!(i!=null&&i.focus)||!i.anchor||!s.isCollapsed(i)){n(l);return}const d=s.getAboveNode(e,{at:i,match:{type:s.getPluginType(e,E)}});if(d){const[,u]=d;let c;s.isStartPoint(e,i.focus,u)&&(c=s.getPreviousNodeEndPoint(e,u)),s.isEndPoint(e,i.focus,u)&&(c=s.getNextNodeStartPoint(e,u)),c&&(l.newProperties={anchor:c,focus:c})}n(l)},e.normalizeNode=([l,i])=>{if(l.type===s.getPluginType(e,E)){const d=e.selection;if(d&&s.isCollapsed(d)&&s.isEndPoint(e,d.focus,i)){const u=s.getNextNodeStartPoint(e,i);if(u)s.select(e,u);else{const c=s.Path.next(i);s.insertNodes(e,{text:""},{at:c}),s.select(e,c)}}}r([l,i])},s.withRemoveEmptyNodes(e,s.mockPlugin({options:{types:t}}))},Dt=(e,t,n)=>{s.insertNodes(e,[_t(e,t)],n)},_e=e=>{if(!e.selection)return;const{isUrl:t,forceSubmit:n}=s.getPluginOptions(e,E),r=D.url();if(!((t==null?void 0:t(r))||n))return;const i=D.text(),d=D.buttonStyle(),u=D.newTab()?void 0:"_self";return N.reset(),Mt(e,{url:r,text:i,buttonStyle:d,target:u,isUrl:c=>n||!t?!0:t(c)}),setTimeout(()=>{s.focusEditor(e,e.selection??void 0)},0),!0},oe=(e,t)=>s.withoutNormalizing(e,()=>{var n,r,l,i,d,u;if(t!=null&&t.split){if(s.getAboveNode(e,{at:(n=e.selection)==null?void 0:n.anchor,match:{type:s.getPluginType(e,E)}}))return s.splitNodes(e,{at:(r=e.selection)==null?void 0:r.anchor,match:b=>s.isElement(b)&&b.type===s.getPluginType(e,E)}),oe(e,{at:(l=e.selection)==null?void 0:l.anchor}),!0;if(s.getAboveNode(e,{at:(i=e.selection)==null?void 0:i.focus,match:{type:s.getPluginType(e,E)}}))return s.splitNodes(e,{at:(d=e.selection)==null?void 0:d.focus,match:b=>s.isElement(b)&&b.type===s.getPluginType(e,E)}),oe(e,{at:(u=e.selection)==null?void 0:u.focus}),!0}s.unwrapNodes(e,{match:{type:s.getPluginType(e,E)},...t})}),Mt=(e,{url:t,text:n,buttonStyle:r,target:l,insertTextInButton:i,insertNodesOptions:d,isUrl:u=s.getPluginOptions(e,E).isUrl})=>{var A;const c=e.selection;if(!c)return;const m=s.getAboveNode(e,{at:c,match:{type:s.getPluginType(e,E)}});if(i&&m)return e.insertText(t),!0;if(!(u!=null&&u(t)))return;if(s.isDefined(n)&&n.length===0&&(n=t),m)return ca(t,e,m,l,r,n),!0;const b=s.findNode(e,{at:c,match:{type:s.getPluginType(e,E)}}),[f,w]=b??[],k=ia(e,w,n);if(s.isExpanded(c))return da(m,e,t,r,l,n),!0;k&&s.removeNodes(e,{at:w});const p=s.getNodeProps(f??{}),x=(A=e.selection)==null?void 0:A.focus.path;if(!x)return;const M=s.getNodeLeaf(e,x);return n!=null&&n.length||(n=t),Dt(e,{...p,url:t,target:l,children:[{...M,text:n}]},d),!0};function ia(e,t,n){return t&&(n==null?void 0:n.length)&&n!==s.getEditorString(e,t)}function da(e,t,n,r,l,i){e?oe(t,{at:e[1]}):oe(t,{split:!0}),Ft(t,{url:n,buttonStyle:r,target:l}),Ue(t,{text:i})}function ca(e,t,n,r,l,i){var d,u,c;(e!==((d=n[0])==null?void 0:d.url)||r!==((u=n[0])==null?void 0:u.target)||l!==((c=n[0])==null?void 0:c.buttonStyle))&&s.setNodes(t,{url:e,target:r,buttonStyle:l},{at:n[1]}),Ue(t,{text:i})}const Ue=(e,{text:t})=>{const n=s.getAboveNode(e,{match:{type:s.getPluginType(e,E)}});if(n){const[r,l]=n;if(t!=null&&t.length&&t!==s.getEditorString(e,l)){const i=r.children[0];s.replaceNodeChildren(e,{at:l,nodes:{...i,text:t},insertOptions:{select:!0}})}}},Ft=(e,{url:t,buttonStyle:n,target:r,...l})=>{s.wrapNodes(e,{type:s.getPluginType(e,E),url:t,buttonStyle:n,target:r,children:[]},{split:!0,...l})},ua=(e,t)=>{const n=s.getAboveNode(e,{match:{type:E}});return Array.isArray(n)?t(n[0]):""},Ot=e=>ua(e,t=>t.url??""),_t=(e,{url:t,text:n="",buttonStyle:r="primary",target:l,children:i})=>({type:s.getPluginType(e,E),url:t,target:l,buttonStyle:r,children:i??[{text:n}]}),Ut=(e,{focused:t}={})=>{if(D.mode()==="edit"){ve(e);return}He(e,{focused:t})},ve=e=>{const t=s.findNode(e,{match:{type:s.getPluginType(e,E)}});if(!t)return;const[n,r]=t;let l=s.getEditorString(e,r);N.url(n.url),N.newTab(n.target===void 0),l===n.url&&(l=""),N.text(l),N.isEditing(!0)},He=(e,{focused:t}={})=>{D.mode()||!t||s.isRangeAcrossBlocks(e,{at:e.selection})||s.someNode(e,{match:{type:s.getPluginType(e,E)}})||(N.text(s.getEditorString(e,e.selection)),N.show("insert",e.id))},ze={marginTop:"10px",marginBottom:"10px",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",verticalAlign:"middle",boxSizing:"border-box",overflowWrap:"normal"},Ce={buttonPrimary:{...ze,fontFamily:"var(--f-theme-settings-button-primary-font-family)",fontSize:"var(--f-theme-settings-button-primary-font-size)",fontWeight:"var(--f-theme-settings-button-primary-font-weight)",lineHeight:"var(--f-theme-settings-button-primary-line-height)",paddingTop:"var(--f-theme-settings-button-primary-padding-top)",paddingRight:"var(--f-theme-settings-button-primary-padding-right)",paddingBottom:"var(--f-theme-settings-button-primary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-primary-padding-left)",fontStyle:"var(--f-theme-settings-button-primary-font-style)",textTransform:"var(--f-theme-settings-button-primary-text-transform)",backgroundColor:"var(--f-theme-settings-button-primary-background-color)",borderColor:"var(--f-theme-settings-button-primary-border-color)",borderRadius:"var(--f-theme-settings-button-primary-border-radius)",borderWidth:"var(--f-theme-settings-button-primary-border-width)",color:"var(--f-theme-settings-button-primary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-primary-background-color-hover)",borderColor:"var(--f-theme-settings-button-primary-border-color-hover)",color:"var(--f-theme-settings-button-primary-color-hover)"}},buttonSecondary:{...ze,fontFamily:"var(--f-theme-settings-button-secondary-font-family)",fontSize:"var(--f-theme-settings-button-secondary-font-size)",fontWeight:"var(--f-theme-settings-button-secondary-font-weight)",lineHeight:"var(--f-theme-settings-button-secondary-line-height)",paddingTop:"var(--f-theme-settings-button-secondary-padding-top)",paddingRight:"var(--f-theme-settings-button-secondary-padding-right)",paddingBottom:"var(--f-theme-settings-button-secondary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-secondary-padding-left)",fontStyle:"var(--f-theme-settings-button-secondary-font-style)",textTransform:"var(--f-theme-settings-button-secondary-text-transform)",backgroundColor:"var(--f-theme-settings-button-secondary-background-color)",borderColor:"var(--f-theme-settings-button-secondary-border-color)",borderRadius:"var(--f-theme-settings-button-secondary-border-radius)",borderWidth:"var(--f-theme-settings-button-secondary-border-width)",color:"var(--f-theme-settings-button-secondary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-secondary-background-color-hover)",borderColor:"var(--f-theme-settings-button-secondary-border-color-hover)",color:"var(--f-theme-settings-button-secondary-color-hover)"}},buttonTertiary:{...ze,fontFamily:"var(--f-theme-settings-button-tertiary-font-family)",fontSize:"var(--f-theme-settings-button-tertiary-font-size)",fontWeight:"var(--f-theme-settings-button-tertiary-font-weight)",lineHeight:"var(--f-theme-settings-button-tertiary-line-height)",paddingTop:"var(--f-theme-settings-button-tertiary-padding-top)",paddingRight:"var(--f-theme-settings-button-tertiary-padding-right)",paddingBottom:"var(--f-theme-settings-button-tertiary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-tertiary-padding-left)",fontStyle:"var(--f-theme-settings-button-tertiary-font-style)",textTransform:"var(--f-theme-settings-button-tertiary-text-transform)",backgroundColor:"var(--f-theme-settings-button-tertiary-background-color)",borderColor:"var(--f-theme-settings-button-tertiary-border-color)",borderRadius:"var(--f-theme-settings-button-tertiary-border-radius)",borderWidth:"var(--f-theme-settings-button-tertiary-border-width)",color:"var(--f-theme-settings-button-tertiary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-tertiary-background-color-hover)",borderColor:"var(--f-theme-settings-button-tertiary-border-color-hover)",color:"var(--f-theme-settings-button-tertiary-color-hover)"}}},ga=e=>{var d,u;const{attributes:t,children:n}=e,r=e.element.url||((u=(d=e.element.chosenLink)==null?void 0:d.searchResult)==null?void 0:u.link)||"",l=e.element.target||"_self",i=String(e.element.buttonStyle)||"primary";return a.jsx(ha,{attributes:t,href:r,target:l,styles:Ce[`button${i.charAt(0).toUpperCase()+i.slice(1)}`],children:n})},ha=({attributes:e,styles:t={hover:{}},children:n,href:r="#",target:l})=>{const[i,d]=h.useState(!1);return a.jsx("a",{...e,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),href:r,target:l,style:i?{...t,...t.hover}:t,children:n})};class fa extends s.MarkupElement{constructor(t=E,n=ga){super(t,n)}}const Ht=h.forwardRef((e,t)=>{const n=s.useEditorRef();return a.jsx(s.ToolbarButton,{ref:t,...e,onMouseDown:r=>{r.preventDefault(),s.focusEditor(n,n.selection??n.prevSelection??void 0)},onClick:()=>{Ut(n,{focused:!0})},children:a.jsx(s.IconStylingWrapper,{icon:a.jsx(T.IconButton,{size:16})})})});Ht.displayName="ButtonToolbarButton";const ma=({editorId:e,id:t})=>{const n=s.useEditorState(s.useEventPlateId(e)),r=!!s.isRangeInSameBlock(n,{at:n.selection}),l=s.getPluginType(n,E),i=!!(n!=null&&n.selection)&&s.someNode(n,{match:{type:l}});return a.jsx("div",{"data-plugin-id":t,children:a.jsx(Ht,{pressed:i,disabled:!r,tooltip:s.getTooltip(r?`Button
2
- ${s.getHotkeyByPlatform("Ctrl+Shift+K")}`:"Buttons can only be set for a single text block.")})})},ie="link-plugin";var v=(e=>(e.heading1="heading1",e.heading2="heading2",e.heading3="heading3",e.heading4="heading4",e.custom1="custom1",e.custom2="custom2",e.custom3="custom3",e.quote="quote",e.imageCaption="imageCaption",e.imageTitle="imageTitle",e.p="p",e))(v||{});const S={heading1:{fontSize:"var(--f-theme-settings-heading1-font-size)",lineHeight:"var(--f-theme-settings-heading1-line-height)",marginTop:"var(--f-theme-settings-heading1-margin-top)",marginBottom:"var(--f-theme-settings-heading1-margin-bottom)",textDecoration:"var(--f-theme-settings-heading1-text-decoration)",fontStyle:"var(--f-theme-settings-heading1-font-style)",textTransform:"var(--f-theme-settings-heading1-text-transform)",letterSpacing:"var(--f-theme-settings-heading1-letter-spacing)",fontWeight:"var(--f-theme-settings-heading1-font-weight)",fontFamily:"var(--f-theme-settings-heading1-font-family)",color:"var(--f-theme-settings-heading1-color)"},heading2:{fontSize:"var(--f-theme-settings-heading2-font-size)",lineHeight:"var(--f-theme-settings-heading2-line-height)",marginTop:"var(--f-theme-settings-heading2-margin-top)",marginBottom:"var(--f-theme-settings-heading2-margin-bottom)",textDecoration:"var(--f-theme-settings-heading2-text-decoration)",fontStyle:"var(--f-theme-settings-heading2-font-style)",textTransform:"var(--f-theme-settings-heading2-text-transform)",letterSpacing:"var(--f-theme-settings-heading2-letter-spacing)",fontWeight:"var(--f-theme-settings-heading2-font-weight)",fontFamily:"var(--f-theme-settings-heading2-font-family)",color:"var(--f-theme-settings-heading2-color)"},heading3:{fontSize:"var(--f-theme-settings-heading3-font-size)",lineHeight:"var(--f-theme-settings-heading3-line-height)",marginTop:"var(--f-theme-settings-heading3-margin-top)",marginBottom:"var(--f-theme-settings-heading3-margin-bottom)",textDecoration:"var(--f-theme-settings-heading3-text-decoration)",fontStyle:"var(--f-theme-settings-heading3-font-style)",textTransform:"var(--f-theme-settings-heading3-text-transform)",letterSpacing:"var(--f-theme-settings-heading3-letter-spacing)",fontWeight:"var(--f-theme-settings-heading3-font-weight)",fontFamily:"var(--f-theme-settings-heading3-font-family)",color:"var(--f-theme-settings-heading3-color)"},heading4:{fontSize:"var(--f-theme-settings-heading4-font-size)",lineHeight:"var(--f-theme-settings-heading4-line-height)",marginTop:"var(--f-theme-settings-heading4-margin-top)",marginBottom:"var(--f-theme-settings-heading4-margin-bottom)",textDecoration:"var(--f-theme-settings-heading4-text-decoration)",fontStyle:"var(--f-theme-settings-heading4-font-style)",textTransform:"var(--f-theme-settings-heading4-text-transform)",letterSpacing:"var(--f-theme-settings-heading4-letter-spacing)",fontWeight:"var(--f-theme-settings-heading4-font-weight)",fontFamily:"var(--f-theme-settings-heading4-font-family)",color:"var(--f-theme-settings-heading4-color)"},custom1:{fontSize:"var(--f-theme-settings-custom1-font-size)",lineHeight:"var(--f-theme-settings-custom1-line-height)",marginTop:"var(--f-theme-settings-custom1-margin-top)",marginBottom:"var(--f-theme-settings-custom1-margin-bottom)",textDecoration:"var(--f-theme-settings-custom1-text-decoration)",fontStyle:"var(--f-theme-settings-custom1-font-style)",textTransform:"var(--f-theme-settings-custom1-text-transform)",letterSpacing:"var(--f-theme-settings-custom1-letter-spacing)",fontWeight:"var(--f-theme-settings-custom1-font-weight)",fontFamily:"var(--f-theme-settings-custom1-font-family)",color:"var(--f-theme-settings-custom1-color)"},custom2:{fontSize:"var(--f-theme-settings-custom2-font-size)",lineHeight:"var(--f-theme-settings-custom2-line-height)",marginTop:"var(--f-theme-settings-custom2-margin-top)",marginBottom:"var(--f-theme-settings-custom2-margin-bottom)",textDecoration:"var(--f-theme-settings-custom2-text-decoration)",fontStyle:"var(--f-theme-settings-custom2-font-style)",textTransform:"var(--f-theme-settings-custom2-text-transform)",letterSpacing:"var(--f-theme-settings-custom2-letter-spacing)",fontWeight:"var(--f-theme-settings-custom2-font-weight)",fontFamily:"var(--f-theme-settings-custom2-font-family)",color:"var(--f-theme-settings-custom2-color)"},custom3:{fontSize:"var(--f-theme-settings-custom3-font-size)",lineHeight:"var(--f-theme-settings-custom3-line-height)",marginTop:"var(--f-theme-settings-custom3-margin-top)",marginBottom:"var(--f-theme-settings-custom3-margin-bottom)",textDecoration:"var(--f-theme-settings-custom3-text-decoration)",fontStyle:"var(--f-theme-settings-custom3-font-style)",textTransform:"var(--f-theme-settings-custom3-text-transform)",letterSpacing:"var(--f-theme-settings-custom3-letter-spacing)",fontWeight:"var(--f-theme-settings-custom3-font-weight)",fontFamily:"var(--f-theme-settings-custom3-font-family)",color:"var(--f-theme-settings-custom3-color)"},p:{fontSize:"var(--f-theme-settings-body-font-size)",lineHeight:"var(--f-theme-settings-body-line-height)",marginTop:"var(--f-theme-settings-body-margin-top)",marginBottom:"var(--f-theme-settings-body-margin-bottom)",textDecoration:"var(--f-theme-settings-body-text-decoration)",fontStyle:"var(--f-theme-settings-body-font-style)",textTransform:"var(--f-theme-settings-body-text-transform)",letterSpacing:"var(--f-theme-settings-body-letter-spacing)",fontWeight:"var(--f-theme-settings-body-font-weight)",fontFamily:"var(--f-theme-settings-body-font-family)",color:"var(--f-theme-settings-body-color)"},quote:{fontSize:"var(--f-theme-settings-quote-font-size)",lineHeight:"var(--f-theme-settings-quote-line-height)",marginTop:"var(--f-theme-settings-quote-margin-top)",marginBottom:"var(--f-theme-settings-quote-margin-bottom)",textDecoration:"var(--f-theme-settings-quote-text-decoration)",fontStyle:"var(--f-theme-settings-quote-font-style)",textTransform:"var(--f-theme-settings-quote-text-transform)",letterSpacing:"var(--f-theme-settings-quote-letter-spacing)",fontWeight:"var(--f-theme-settings-quote-font-weight)",fontFamily:"var(--f-theme-settings-quote-font-family)",color:"var(--f-theme-settings-quote-color)"},imageCaption:{fontSize:"var(--f-theme-settings-image-caption-font-size)",lineHeight:"var(--f-theme-settings-image-caption-line-height)",marginTop:"var(--f-theme-settings-image-caption-margin-top)",marginBottom:"var(--f-theme-settings-image-caption-margin-bottom)",textDecoration:"var(--f-theme-settings-image-caption-text-decoration)",fontStyle:"var(--f-theme-settings-image-caption-font-style)",textTransform:"var(--f-theme-settings-image-caption-text-transform)",letterSpacing:"var(--f-theme-settings-image-caption-letter-spacing)",fontWeight:"var(--f-theme-settings-image-caption-font-weight)",fontFamily:"var(--f-theme-settings-image-caption-font-family)",color:"var(--f-theme-settings-image-caption-color)"},imageTitle:{fontSize:"var(--f-theme-settings-image-title-font-size)",lineHeight:"var(--f-theme-settings-image-title-line-height)",marginTop:"var(--f-theme-settings-image-title-margin-top)",marginBottom:"var(--f-theme-settings-image-title-margin-bottom)",textDecoration:"var(--f-theme-settings-image-title-text-decoration)",fontStyle:"var(--f-theme-settings-image-title-font-style)",textTransform:"var(--f-theme-settings-image-title-text-transform)",letterSpacing:"var(--f-theme-settings-image-title-letter-spacing)",fontWeight:"var(--f-theme-settings-image-title-font-weight)",fontFamily:"var(--f-theme-settings-image-title-font-family)",color:"var(--f-theme-settings-image-title-color)"},[ie]:{fontSize:"var(--f-theme-settings-link-font-size)",lineHeight:"var(--f-theme-settings-link-line-height)",marginTop:"var(--f-theme-settings-link-margin-top)",marginBottom:"var(--f-theme-settings-link-margin-bottom)",textDecoration:"var(--f-theme-settings-link-text-decoration)",fontStyle:"var(--f-theme-settings-link-font-style)",textTransform:"var(--f-theme-settings-link-text-transform)",letterSpacing:"var(--f-theme-settings-link-letter-spacing)",fontWeight:"var(--f-theme-settings-link-font-weight)",fontFamily:"var(--f-theme-settings-link-font-family)",color:"var(--f-theme-settings-link-color)"},...Ce},wa=()=>{const e=s.useEditorRef();return a.jsx(s.FloatingModalWrapper,{padding:"16px",minWidth:"400px","data-test-id":"floating-button-edit",children:a.jsxs("span",{"data-test-id":"preview-button-flyout",className:"tw-flex tw-justify-between tw-items-center tw-gap-2",children:[a.jsx("a",{"data-test-id":"floating-button-edit-url",href:D.url(),target:"_blank",rel:"noopener noreferrer",style:S[ie],className:"tw-break-all",children:D.url()}),a.jsxs("span",{className:"tw-flex tw-gap-2",children:[a.jsx("button",{onClick:()=>{ve(e)},tabIndex:0,"data-test-id":"edit-button-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",children:a.jsx(T.IconPen,{size:16})}),a.jsx("button",{onClick:()=>{oe(e),s.focusEditor(e,e.selection??void 0)},tabIndex:0,"data-test-id":"remove-button-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",children:a.jsx(T.IconTrashBin,{size:16})})]})]})})},zt=e=>e.filter(t=>{var n;return!!((n=t.title)!=null&&n.trim())}),Vt=()=>a.jsx("div",{className:"tw-flex tw-justify-center tw-h-10 tw-items-center",children:a.jsx(y.LoadingCircle,{size:"small"})}),ya=({section:e,selectedUrl:t,onSelectUrl:n})=>{const r=e.permanentLink===t;return a.jsx("button",{"data-test-id":"internal-link-selector-section-link",type:"button","data-is-active":r,className:`
1
+ (function(i,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@frontify/sidebar-settings"),require("react/jsx-runtime"),require("@frontify/fondue/rte"),require("@frontify/app-bridge"),require("react"),require("@dnd-kit/core"),require("@dnd-kit/modifiers"),require("@dnd-kit/sortable"),require("@frontify/fondue"),require("@frontify/fondue/components"),require("@frontify/fondue/icons"),require("@react-aria/focus"),require("react-dom"),require("@ctrl/tinycolor")):typeof define=="function"&&define.amd?define(["exports","@frontify/sidebar-settings","react/jsx-runtime","@frontify/fondue/rte","@frontify/app-bridge","react","@dnd-kit/core","@dnd-kit/modifiers","@dnd-kit/sortable","@frontify/fondue","@frontify/fondue/components","@frontify/fondue/icons","@react-aria/focus","react-dom","@ctrl/tinycolor"],h):(i=typeof globalThis<"u"?globalThis:i||self,h(i.GuidelineBlocksSettings={},i.sidebarSettings,i.jsxRuntime,i.rte,i.appBridge,i.React,i.core,i.modifiers,i.sortable,i.fondue,i.components,i.icons,i.focus,i.ReactDOM,i.tinycolor))})(this,(function(i,h,o,a,K,g,S,In,ht,V,f,T,oe,mt,$){"use strict";const U=t=>t.filter(Boolean).join(" "),En=({onDrop:t,label:e,icon:n,secondaryLabel:s,isLoading:r,fillParentContainer:l,onAssetChooseClick:c,onUploadClick:u,withMenu:d=!0,onClick:p,validFileType:y,verticalLayout:m})=>{const[w,k]=g.useState(!1),[b,x]=g.useState(),L=g.useRef(null),[D,M]=g.useState(void 0),q=P=>{if(P.preventDefault(),k(!1),!O(P.dataTransfer.files)){M("Invalid"),setTimeout(()=>{M(void 0)},1e3);return}t?.(P.dataTransfer.files)},O=P=>{if(!y)return!0;for(let _=0;_<P.length;_++){const R=P[_].name.split(".").pop()??"";if(!K.FileExtensionSets[y].includes(R))return!1}return!0},z=P=>{if(!L.current||r)return;const{clientX:_,clientY:R}=P,gt=_===0&&R===0,{left:xt,top:te,width:ee,height:Pt}=L.current.getBoundingClientRect(),Tt=gt?ee/2:_-xt,G=gt?Pt/2:R-te;x([Tt,G])},N=g.useCallback(P=>{P(),x(void 0)},[]),Rt=g.useMemo(()=>{const P=[];return u&&P.push({onSelect:()=>N(u),title:"Upload asset",icon:o.jsx(T.IconArrowCircleUp,{size:"20"})}),c&&P.push({onSelect:()=>N(c),title:"Browse asset",icon:o.jsx(T.IconImageStack,{size:"20"})}),P},[c,u,N]);return o.jsxs("button",{ref:L,"data-test-id":"block-inject-button",className:U(["tw-font-body tw-relative tw-text-sm tw-leading-4 tw-border tw-flex tw-items-center tw-justify-center tw-cursor-pointer tw-gap-3 tw-w-full first:tw-rounded-tl last:tw-rounded-br",m?"[&:not(:first-child)]:tw-border-t-0 first:tw-rounded-tr last:tw-rounded-bl":"[&:not(:first-child)]:tw-border-l-0 first:tw-rounded-bl last:tw-rounded-tr",l?"tw-h-full":"tw-h-[72px]",w&&!r?"tw-border-dashed":"tw-border-solid",b&&"tw-bg-blank-state-pressed-inverse",w&&"tw-bg-blank-state-weak-inverse",D?"!tw-border-red-50 !tw-cursor-not-allowed":" tw-border-blank-state-line",r||b||w||D?"":"tw-text-text-weak hover:tw-text-blank-state-hover hover:tw-bg-blank-state-hover-inverse hover:tw-border-blank-state-line-hover active:tw-text-blank-state-pressed active:tw-bg-blank-state-pressed-inverse active:tw-border-blank-state-line-hover",(w||b)&&!D?"[&>*]:tw-pointer-events-none tw-border-blank-state-line-hover":"tw-bg-blank-state-shaded-inverse tw-text-blank-state-shaded"]),onDragEnter:t?P=>{if(k(!0),y==="Images")for(const _ of Array.from(P.dataTransfer.items))_?.type?.startsWith("image/")?M(void 0):M("Invalid")}:void 0,onDragLeave:t?()=>{k(!1),M(void 0)}:void 0,onDrop:t?q:void 0,onClick:P=>{d&&!b&&z(P),p?.()},children:[r?o.jsx(f.LoadingCircle,{}):D?o.jsxs("div",{className:" tw-flex tw-items-center tw-justify-center tw-text-red-60 tw-font-medium",children:[o.jsx(T.IconExclamationMarkTriangle,{size:"16"}),D]}):o.jsxs(o.Fragment,{children:[n&&o.jsx("div",{children:n}),(e||s)&&o.jsxs("div",{className:"tw-flex tw-flex-col tw-items-start",children:[e&&o.jsx("div",{className:"tw-font-medium",children:e}),s&&o.jsx("div",{className:"tw-font-normal",children:s})]})]}),b&&o.jsx("div",{className:"tw-absolute tw-left-0 tw-top-full tw-z-20",style:{left:b[0],top:b[1]},children:o.jsxs(f.Flyout.Root,{open:!0,onOpenChange:P=>!P&&x(void 0),children:[o.jsx(f.Flyout.Trigger,{children:o.jsx("div",{})}),o.jsx(f.Flyout.Content,{triggerOffset:"compact",children:o.jsxs(f.Dropdown.Root,{open:!0,children:[o.jsx(f.Dropdown.Trigger,{children:o.jsx("div",{})}),o.jsx(f.Dropdown.Content,{triggerOffset:"compact",children:Rt.map(P=>o.jsxs(f.Dropdown.Item,{onSelect:P.onSelect,children:[P.icon,P.title]},P.title))})]})})]})})]})},j=t=>{const e=s=>typeof s=="object"&&["red","green","blue"].every(l=>s.hasOwnProperty(l)),n=s=>{const r=typeof s.alpha=="number"?s.alpha:1;return{r:s.red,g:s.green,b:s.blue,a:r}};return e(t)?n(t):t},Sn=t=>typeof t=="object"&&["red","green","blue"].every(n=>t?.hasOwnProperty(n)),Bn=(t,e)=>{const n=Sn(t)?j(t):t,s=new $.TinyColor(n);return e?s.getBrightness()<e:s.isDark()||s.getAlpha()>.25&&s.getAlpha()<1},Nn=t=>new $.TinyColor(j(t)).toHex8String(),An=t=>new $.TinyColor(j(t)).toHexString(),It=t=>new $.TinyColor(j(t)).toRgbString(),Ln=(t,e)=>new $.TinyColor(e).setAlpha(t).toRgbString(),Dn=t=>{const{r:e,g:n,b:s,a:r}=new $.TinyColor(t);return{red:e,green:n,blue:s,alpha:r}},ae=t=>typeof t=="object"&&["red","green","blue"].every(n=>t?.hasOwnProperty(n)),Mn=(t,e)=>{const n=ae(t)?j(t):t,s=ae(e)?j(e):e;let r=new $.TinyColor(n);const l=new $.TinyColor(s);for(;$.readability(r,l)<4.5;)r=r.darken(1);return r.toRgbString()},Fn=(t,e,n)=>{const s=[...t],r=n<0?s.length+n:n;if(r>=0&&r<s.length){const l=s.splice(e,1)[0];s.splice(r,0,l)}return s},On=t=>({backgroundColor:It(t)}),_n={red:241,green:241,blue:241,alpha:1},se={red:234,green:235,blue:235,alpha:1},Un="1px",dt="24px",ct="24px";var H=(t=>(t.Solid="Solid",t.Dashed="Dashed",t.Dotted="Dotted",t))(H||{});const re={Solid:"solid",Dotted:"dotted",Dashed:"dashed"};var W=(t=>(t.None="None",t.Small="Small",t.Medium="Medium",t.Large="Large",t))(W||{});const Q={None:"0px",Small:"2px",Medium:"4px",Large:"12px"};var X=(t=>(t.None="None",t.Small="Small",t.Medium="Medium",t.Large="Large",t))(X||{});const et={None:"0px",Small:"24px",Medium:"36px",Large:"60px"};var Y=(t=>(t.None="None",t.Small="Small",t.Medium="Medium",t.Large="Large",t))(Y||{});const nt={None:"0px",Small:"24px",Medium:"36px",Large:"60px"};var J=(t=>(t.Global="Global",t.Custom="Custom",t))(J||{}),Z=(t=>(t.Auto="Auto",t.S="S",t.M="M",t.L="L",t))(Z||{});const ie={Auto:"4px",S:"10px",M:"30px",L:"50px"},Hn=(t=H.Solid,e="1px",n=se)=>({borderStyle:re[t],borderWidth:e,borderColor:It(n)}),zn=(t,e=!1,n)=>({borderRadius:e?n:Q[t]}),Et=g.createContext(!1);Et.displayName="DragPreviewContext";const le=({children:t,isDragPreview:e})=>o.jsx(Et.Provider,{value:e,children:t}),ot=()=>g.useContext(Et),St=g.createContext({openFlyoutIds:[],setOpenFlyoutIds:()=>console.error("No MultiFlyoutContext Provider found")});St.displayName="MultiFlyoutContext";const de=({children:t,openFlyoutIds:e,setOpenFlyoutIds:n})=>{const s=g.useMemo(()=>({openFlyoutIds:e,setOpenFlyoutIds:n}),[e,n]);return o.jsx(St.Provider,{value:s,children:t})},ce=()=>g.useContext(St),ft=t=>{const{openFlyoutIds:e,setOpenFlyoutIds:n}=ce(),s=g.useCallback(r=>{n(l=>{const c=l.filter(u=>u!==t);return r?[...c,t]:c})},[t,n]);return{isOpen:e.includes(t),onOpenChange:s}},Bt=(t,e)=>{const{blockAssets:n,addAssetIdsToKey:s,deleteAssetIdsFromKey:r,updateAssetIdsFromKey:l}=e,c=n?.[t]||[];return{onAttachmentsAdd:async m=>{await s(t,m.map(w=>w.id))},onAttachmentDelete:async m=>{await r(t,[m.id])},onAttachmentReplace:async(m,w)=>{const k=c.map(b=>b.id===m.id?w.id:b.id);await l(t,k)},onAttachmentsSorted:async m=>{const w=m.map(k=>k.id);await l(t,w)},attachments:c}},ue=(t,e)=>{const{onAttachmentsAdd:n,onAttachmentDelete:s,onAttachmentReplace:r,onAttachmentsSorted:l,attachments:c}=Bt(e,K.useBlockAssets(t));return{onAttachmentsAdd:n,onAttachmentDelete:s,onAttachmentReplace:r,onAttachmentsSorted:l,attachments:c,appBridge:t}},pt=g.createContext(null);pt.displayName="AttachmentsContext";const ge=({appBridge:t,children:e,assetId:n})=>{const s=ue(t,n);return o.jsx(pt.Provider,{value:s,children:e})},Vn=({blockAssetBundle:t,appBridge:e,children:n,assetId:s})=>{const r=Bt(s,t);return o.jsx(pt.Provider,{value:{...r,appBridge:e},children:n})},he=()=>{const t=g.useContext(pt);if(!t)throw new Error("No AttachmentsContext Provided. Component must be wrapped in an 'AttachmentsProvider' or the 'withAttachmentsProvider' HOC");return t},$n=(t,e)=>{const n=s=>o.jsx(ge,{appBridge:s.appBridge,assetId:e,children:o.jsx(t,{...s})});return n.displayName="withAttachmentsProvider",n},Wn=[S.KeyboardCode.Down,S.KeyboardCode.Right,S.KeyboardCode.Up,S.KeyboardCode.Left],me=(t,e)=>(n,{currentCoordinates:s,context:{activeNode:r}})=>{if(n.preventDefault(),Wn.includes(n.code)){const l=r?.offsetWidth??0,c=r?.offsetHeight??0;switch(n.code){case S.KeyboardCode.Right:return{...s,x:s.x+l+t};case S.KeyboardCode.Left:return{...s,x:s.x-l-t};case S.KeyboardCode.Down:return{...s,y:s.y+c+e};case S.KeyboardCode.Up:return{...s,y:s.y-c-e}}}},qn={start:["Space","Enter"],cancel:[],end:["Space","Enter","Escape"]},Gn=(t=0,e=0)=>{const n=g.useMemo(()=>({coordinateGetter:me(t,e),keyboardCodes:qn}),[t,e]);return S.useSensors(S.useSensor(S.PointerSensor),S.useSensor(S.KeyboardSensor,n))},Kn=t=>t==="IMAGE"?o.jsx(T.IconImage,{size:"24"}):t==="VIDEO"?o.jsx(T.IconPlayFrame,{size:"24"}):t==="AUDIO"?o.jsx(T.IconMusicNote,{size:"24"}):o.jsx(T.IconDocument,{size:"24"}),fe=g.forwardRef(({item:t,isEditing:e,draggableProps:n,transformStyle:s,isDragging:r,isOverlay:l,isLoading:c,onDelete:u,onReplaceWithBrowse:d,onReplaceWithUpload:p,onDownload:y},m)=>{const[w,k]=g.useState(),[b,{selectedFiles:x}]=K.useFileInput({multiple:!0,accept:"image/*"}),[L,{results:D,doneAll:M}]=K.useAssetUpload(),{focusProps:q,isFocusVisible:O}=oe.useFocusRing();g.useEffect(()=>{x&&L(x[0])},[x]),g.useEffect(()=>{M&&p(D[0])},[M,D]);const z=c||x&&!M;return o.jsxs("button",{type:"button","aria-label":"Download attachment","data-test-id":"attachments-item",onClick:()=>!w&&y?.(),ref:m,style:{...s,opacity:r&&!l?.3:1,fontFamily:"var(-f-theme-settings-body-font-family)"},className:U(["tw-cursor-pointer tw-text-left tw-w-full tw-relative tw-flex tw-gap-3 tw-px-5 tw-py-3 tw-items-center tw-group hover:tw-bg-box-neutral-hover",r?"tw-bg-box-neutral-hover":""]),children:[o.jsx("div",{className:"tw-text-text-weak group-hover:tw-text-box-neutral-inverse-hover",children:z?o.jsx(f.LoadingCircle,{size:"small"}):Kn(t.objectType)}),o.jsxs("div",{className:"tw-text-s tw-flex-1 tw-min-w-0",children:[o.jsx("div",{className:"tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-text-weak group-hover:tw-text-box-neutral-inverse-hover",children:t.title}),o.jsx("div",{className:"tw-text-text-weak",children:`${t.fileSizeHumanReadable} - ${t.extension}`})]}),e&&o.jsxs("div",{"data-test-id":"attachments-actionbar",className:U(["tw-flex tw-gap-0.5 group-focus:tw-opacity-100 focus-visible:tw-opacity-100 focus-within:tw-opacity-100 group-hover:tw-opacity-100",l||w?.id===t.id?"tw-opacity-100":"tw-opacity-0"]),children:[o.jsx("button",{type:"button",...q,...n,"aria-label":"Drag attachment",className:U([" tw-border-button-border tw-bg-button-background active:tw-bg-button-background-pressed tw-group tw-border tw-box-box tw-relative tw-flex tw-items-center tw-justify-center tw-outline-none tw-font-medium tw-rounded tw-h-9 tw-w-9 ",r||l?"tw-cursor-grabbing tw-bg-button-background-pressed hover:tw-bg-button-background-pressed":"tw-cursor-grab hover:tw-bg-button-background-hover",O&&"tw-ring-4 tw-ring-blue tw-ring-offset-2 dark:tw-ring-offset-black tw-outline-none",O&&"tw-z-[2]"]),children:o.jsx(T.IconGrabHandle,{})}),o.jsx("div",{"data-test-id":"attachments-actionbar-flyout",children:o.jsxs(f.Dropdown.Root,{open:w?.id===t.id,onOpenChange:N=>k(N?t:void 0),children:[o.jsx(f.Dropdown.Trigger,{children:o.jsx(f.Button,{aspect:"square",ref:m,onPress:N=>{N?.stopPropagation(),N?.preventDefault()},emphasis:"default",children:o.jsx(T.IconPen,{size:"20"})})}),o.jsxs(f.Dropdown.Content,{side:"right",children:[o.jsxs(f.Dropdown.Group,{children:[o.jsxs(f.Dropdown.Item,{"data-test-id":"menu-item",onSelect:N=>{N?.stopPropagation(),b(),k(void 0)},children:[o.jsx(T.IconArrowCircleUp,{size:"20"}),"Replace with upload"]}),o.jsxs(f.Dropdown.Item,{onSelect:N=>{N?.stopPropagation(),d(),k(void 0)},children:[o.jsx(T.IconImageStack,{size:"20"}),"Replace with asset"]})]}),o.jsx(f.Dropdown.Group,{children:o.jsxs(f.Dropdown.Item,{emphasis:"danger",onSelect:N=>{N?.stopPropagation(),u(),k(void 0)},children:[o.jsx(T.IconTrashBin,{size:"20"}),"Delete"]})})]})]})})]})]})});fe.displayName="AttachmentItem";const jn=t=>{const{attributes:e,listeners:n,setNodeRef:s,transform:r,transition:l,isDragging:c}=ht.useSortable({id:t.item.id}),u={transform:r?`translate(${r.x}px, ${r.y}px)`:"",transition:l,zIndex:c?2:1},d={...e,...n};return o.jsx(fe,{ref:s,isDragging:c,transformStyle:u,draggableProps:d,...t})},pe=g.forwardRef(({children:t,isFlyoutOpen:e,...n},s)=>o.jsxs("button",{ref:s,className:U(["tw-flex tw-text-xs tw-font-body tw-items-center tw-gap-1 tw-rounded-full tw-outline tw-outline-1 tw-outline-offset-1 tw-p-1.5 tw-outline-line",e?"tw-bg-box-neutral-pressed tw-text-box-neutral-inverse-pressed":"tw-bg-base hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed tw-text-box-neutral-inverse hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed"]),"data-test-id":"attachments-button-trigger",...n,children:[o.jsx(T.IconPaperclip,{size:"16"}),t,o.jsx(T.IconCaretDown,{size:"12"})]}));pe.displayName="AttachmentsButtonTrigger";const we=({items:t=[],onDelete:e,onReplaceWithBrowse:n,onReplaceWithUpload:s,onBrowse:r,onUpload:l,onSorted:c,appBridge:u,triggerComponent:d=pe,isOpen:p,onOpenChange:y})=>{const[m,w]=g.useState(t),[k,b]=g.useState(!1),x=S.useSensors(S.useSensor(S.PointerSensor),S.useSensor(S.KeyboardSensor)),[L,D]=g.useState(void 0),[M,q]=g.useState(!1),[O,z]=g.useState([]),[N,Rt]=g.useState(null),P=K.useEditorState(u),{openAssetChooser:_,closeAssetChooser:R}=K.useAssetChooser(u),gt=p!==void 0,xt=gt?p:k,te=m?.find(C=>C.id===L),[ee,{results:Pt,doneAll:Tt}]=K.useAssetUpload({onUploadProgress:()=>!M&&q(!0)}),G=C=>{(gt?y:b)?.(C)};g.useEffect(()=>{w(t)},[t]),g.useEffect(()=>{N&&(q(!0),ee(N))},[N]),g.useEffect(()=>{(async()=>Tt&&(await l(Pt),q(!1)))()},[Tt,Pt]);const Va=()=>{G(!1),_(C=>{r(C),R(),G(!0)},{multiSelection:!0,selectedValueIds:m.map(C=>C.id)})},$a=C=>{G(!1),_(async F=>{G(!0),R(),z([...O,C.id]),await n(C,F[0]),z(O.filter(tt=>tt!==C.id))},{multiSelection:!1,selectedValueIds:m.map(F=>F.id)})},Wa=async(C,F)=>{z([...O,C.id]),await s(C,F),z(O.filter(tt=>tt!==C.id))},qa=C=>{const{active:F}=C;D(F.id)},Ga=C=>{const{active:F,over:tt}=C;if(tt&&F.id!==tt.id&&m){const ja=m.findIndex(ne=>ne.id===F.id),Qa=m.findIndex(ne=>ne.id===tt.id),Tn=ht.arrayMove(m,ja,Qa);w(Tn),c(Tn)}D(void 0)},Ka={onOpenAutoFocus:C=>{C.preventDefault()},onEscapeKeyDown:C=>{C.stopPropagation(),G(!1)}};return P||(m?.length??0)>0?o.jsx("div",{"data-test-id":"attachments-flyout-button",children:o.jsx(f.Flyout.Root,{open:xt,onOpenChange:C=>G(te?!0:C),children:o.jsxs(f.Tooltip.Root,{enterDelay:500,children:[o.jsx(f.Tooltip.Trigger,{asChild:!0,children:o.jsx(f.Flyout.Trigger,{asChild:!0,"data-test-id":"attachments-button-trigger",children:o.jsx(d,{isFlyoutOpen:xt,children:o.jsx("div",{children:t.length>0?t.length:"Add"})})})}),o.jsx(f.Flyout.Content,{side:"bottom",align:"end",...Ka,children:o.jsxs("div",{className:"tw-w-[300px]","data-test-id":"attachments-flyout-content",children:[m.length>0&&o.jsx(S.DndContext,{sensors:x,collisionDetection:S.closestCenter,onDragStart:qa,onDragEnd:Ga,modifiers:[In.restrictToVerticalAxis],children:o.jsx(ht.SortableContext,{items:m,strategy:ht.rectSortingStrategy,children:o.jsx("div",{className:"tw-border-b tw-border-b-line tw-relative",children:m.map(C=>o.jsx(jn,{isEditing:P,isLoading:O.includes(C.id),item:C,onDelete:()=>e(C),onReplaceWithBrowse:()=>$a(C),onReplaceWithUpload:F=>Wa(C,F),onDownload:()=>u.dispatch({name:"downloadAsset",payload:C})},C.id))})})}),P&&o.jsxs("div",{className:"tw-px-5 tw-py-3",children:[o.jsx("div",{className:"tw-font-body tw-font-medium tw-text-text tw-text-s tw-my-4",children:"Add attachments"}),o.jsx(V.AssetInput,{isLoading:M,size:V.AssetInputSize.Small,onUploadClick:C=>Rt(C),onLibraryClick:Va})]})]})}),o.jsx(f.Tooltip.Content,{side:"top",children:"Attachments"})]})})}):null},Qn=(t,e)=>{const n=[V.FOCUS_VISIBLE_STYLE,"tw-relative tw-inline-flex tw-items-center tw-justify-center","tw-h-6 tw-p-1","tw-rounded","tw-text-xs tw-font-medium","tw-gap-0.5","focus-visible:tw-z-10"];return e?n.push("tw-bg-box-neutral-pressed","tw-text-box-neutral-inverse-pressed",t==="grab"?"tw-cursor-grabbing":"tw-cursor-pointer"):n.push("hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed","tw-text-text-weak hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed",t==="grab"?"!tw-cursor-grab active:tw-cursor-grabbing":"tw-cursor-pointer"),U(n)},at=g.forwardRef(({onClick:t,children:e,forceActiveStyle:n,cursor:s="pointer","data-test-id":r="base-toolbar-button",...l},c)=>o.jsx("button",{onClick:t,className:Qn(s,n),"data-test-id":r,...l,ref:c,children:e}));at.displayName="BaseToolbarButton";const ye=g.forwardRef(({children:t,isFlyoutOpen:e,...n},s)=>o.jsxs(at,{forceActiveStyle:e,"data-test-id":"attachments-toolbar-button-trigger",ref:s,...n,children:[o.jsx(T.IconPaperclip,{size:"16"}),t,o.jsx(T.IconCaretDown,{size:"12"})]}));ye.displayName="AttachmentsToolbarButtonTrigger";const be="attachments",ve=({flyoutId:t=be})=>{const e=V.useMemoizedId(t),{appBridge:n,attachments:s,onAttachmentsAdd:r,onAttachmentDelete:l,onAttachmentReplace:c,onAttachmentsSorted:u}=he(),{isOpen:d,onOpenChange:p}=ft(e),y=ot();return o.jsx(we,{onUpload:r,onDelete:l,onReplaceWithBrowse:c,onReplaceWithUpload:c,onSorted:u,onBrowse:r,items:s,appBridge:n,triggerComponent:ye,isOpen:d&&!y,onOpenChange:p})},Ce="Drag or press ↵ to move",ke="Move with ↑↓←→ and confirm with ↵",Nt=({content:t,children:e,open:n,disabled:s})=>s?e:o.jsxs(f.Tooltip.Root,{enterDelay:300,open:n,children:[o.jsx(f.Tooltip.Trigger,{asChild:!0,children:e}),o.jsx(f.Tooltip.Content,{side:"top",children:o.jsx("div",{children:t})})]}),xe=({tooltip:t,icon:e,setActivatorNodeRef:n,draggableProps:s})=>{const r=ot();return o.jsx(Nt,{...r&&{open:r},content:o.jsx("div",{children:r?ke:t??Ce}),children:o.jsx(at,{ref:n,"data-test-id":"block-item-wrapper-toolbar-btn",forceActiveStyle:r,cursor:"grab",...s,children:e})})},Pe=({content:t,icon:e,tooltip:n,flyoutId:s,flyoutFooter:r,flyoutHeader:l})=>{const c=V.useMemoizedId(s),{isOpen:u,onOpenChange:d}=ft(c),p=ot();return o.jsx(Nt,{disabled:p||u,content:n,children:o.jsx("div",{className:"tw-flex tw-flex-shrink-0 tw-flex-1 tw-h-6 tw-relative",children:o.jsxs(f.Flyout.Root,{open:u&&!p,onOpenChange:d,children:[o.jsx(f.Flyout.Trigger,{asChild:!0,children:o.jsx(at,{"data-test-id":"block-item-wrapper-toolbar-flyout",forceActiveStyle:u&&!p,children:e})}),o.jsxs(f.Flyout.Content,{side:"bottom",align:"end",padding:"comfortable",children:[l?o.jsx(f.Flyout.Header,{children:l}):null,o.jsx(f.Flyout.Body,{children:t}),r?o.jsx(f.Flyout.Footer,{children:r}):null]})]})})})},At="menu",Te=({items:t,flyoutId:e=At,tooltip:n="Options"})=>{const s=V.useMemoizedId(e),{isOpen:r,onOpenChange:l}=ft(s),c=ot();return o.jsx(f.Dropdown.Root,{open:r&&!c,onOpenChange:l,children:o.jsxs(f.Tooltip.Root,{children:[o.jsx(f.Tooltip.Trigger,{asChild:!0,children:o.jsx(f.Dropdown.Trigger,{asChild:!0,children:o.jsx(at,{"data-test-id":"block-item-wrapper-toolbar-flyout",children:o.jsx(T.IconDotsHorizontal,{size:"16"})})})}),o.jsx(f.Dropdown.Content,{children:t.map((u,d)=>o.jsx(f.Dropdown.Group,{children:u.map((p,y)=>o.jsxs(f.Dropdown.Item,{"data-test-id":"menu-item",onSelect:()=>{l(!1),p.onClick()},emphasis:p.style||"default",children:[o.jsx("div",{className:"tw-mr-2",children:p.icon}),o.jsx("span",{children:p.title})]},`${d}-${y}`))},d))}),o.jsx(f.Tooltip.Content,{children:n})]})})},Xn=({tooltip:t,icon:e,onClick:n})=>{const s=ot();return o.jsx(Nt,{disabled:s,content:t??"",children:o.jsx(at,{"data-test-id":"block-item-wrapper-toolbar-btn",onClick:n,children:e})})},Ie=({children:t})=>o.jsx("div",{"data-test-id":"block-item-wrapper-toolbar-segment",className:"tw-pointer-events-auto tw-flex tw-flex-shrink-0 tw-gap-px tw-px-px tw-h-[26px] tw-items-center tw-self-start tw-leading-none",children:t}),Ee=({items:t,attachments:e})=>o.jsxs("div",{"data-test-id":"block-item-wrapper-toolbar",className:"tw-rounded-md tw-bg-base tw-border tw-border-line-strong tw-divide-x tw-divide-line-strong tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate",children:[e.isEnabled&&o.jsx(Ie,{children:o.jsx(ve,{})}),t.length>0&&o.jsx(Ie,{children:t.map(n=>{switch(n.type){case"dragHandle":return o.jsx(xe,{...n},n.tooltip+n.type);case"menu":return o.jsx(Te,{...n},n.tooltip+n.type);case"flyout":return o.jsx(Pe,{...n},n.tooltip+n.type);default:return o.jsx(Xn,{...n},n.tooltip+n.type)}})})]}),Se=g.memo(({children:t,toolbarItems:e,shouldHideWrapper:n,shouldHideComponent:s=!1,isDragging:r=!1,shouldFillContainer:l,outlineOffset:c=0,shouldBeShown:u=!1,showAttachments:d=!1})=>{const[p,y]=g.useState(u?[At]:[]),m=g.useRef(null);if(n)return o.jsx(o.Fragment,{children:t});const w=e?.filter(b=>b!==void 0),k=p.length>0||u;return o.jsx(le,{isDragPreview:r,children:o.jsx(de,{openFlyoutIds:p,setOpenFlyoutIds:y,children:o.jsxs("div",{ref:m,"data-test-id":"block-item-wrapper",style:{outlineOffset:c},className:U(["tw-relative tw-group tw-outline-1 tw-outline-box-selected-inverse",l&&"tw-flex-1 tw-h-full tw-w-full","hover:tw-outline focus-within:tw-outline",k&&"tw-outline",s&&"tw-opacity-0"]),children:[o.jsx("div",{style:{right:-1-c,bottom:`calc(100% - ${2+c}px)`},className:U(["tw-pointer-events-none tw-absolute tw-bottom-[calc(100%-4px)] tw-right-[-3px] tw-w-full tw-opacity-0 tw-z-[60]","group-hover:tw-opacity-100 group-focus:tw-opacity-100 focus-within:tw-opacity-100","tw-flex tw-justify-end",k&&"tw-opacity-100"]),children:o.jsx(Ee,{attachments:{isEnabled:d},items:w})}),t]})})})});Se.displayName="BlockItemWrapper";const Yn=({onDownload:t,ariaLabel:e})=>{const{isFocused:n,focusProps:s}=oe.useFocusRing();return o.jsxs(f.Tooltip.Root,{enterDelay:500,children:[o.jsx(f.Tooltip.Trigger,{asChild:!0,children:o.jsx("button",{type:"button",tabIndex:0,"aria-label":e??"Download",...s,className:U(["tw-outline-none tw-rounded",n&&"tw-ring-4 tw-ring-blue tw-ring-offset-2 dark:tw-ring-offset-black tw-outline-none"]),onClick:t,onPointerDown:r=>r.preventDefault(),"data-test-id":"download-button",children:o.jsx("span",{className:"tw-flex tw-text-xs tw-font-body tw-items-center tw-gap-1 tw-rounded-full tw-bg-box-neutral-strong-inverse hover:tw-bg-box-neutral-strong-inverse-hover active:tw-bg-box-neutral-strong-inverse-pressed tw-text-box-neutral-strong tw-outline tw-outline-1 tw-outline-offset-1 tw-p-1.5 tw-outline-line",children:o.jsx(T.IconArrowCircleDown,{size:"16"})})})}),o.jsx(f.Tooltip.Content,{side:"top",children:"Download"})]})},Jn=({ref:t,disabled:e,onChange:n})=>{g.useEffect(()=>{if(e||!t.current)return;let s=!1;const r=new IntersectionObserver(([l])=>{l.isIntersecting!==s&&(s=l.isIntersecting,n(l.isIntersecting))});return r.observe(t.current),()=>{r.disconnect()}},[t,e,n])},Zn=({value:t="",gap:e,customClass:n,show:s=!0,plugins:r})=>{const[l,c]=g.useState(null);return g.useEffect(()=>{(async()=>{const d=await a.serializeRawToHtmlAsync(t,r,void 0,e,n);c(d)})().catch(console.error)},[t,e,r,n]),!s||l==="<br />"||l===null?null:o.jsx("div",{className:"tw-w-full tw-whitespace-pre-wrap","data-test-id":"rte-content-html",dangerouslySetInnerHTML:{__html:l}})},Lt=a.createStore("floatingButton")({openEditorId:null,mouseDown:!1,updated:!1,url:"",text:"",buttonStyle:"primary",newTab:!1,mode:"",isEditing:!1}).extendActions(t=>({reset:()=>{t.url(""),t.text(""),t.buttonStyle("primary"),t.newTab(!1),t.mode(""),t.isEditing(!1)}})).extendActions(t=>({show:(e,n)=>{t.mode(e),t.isEditing(!1),t.openEditorId(n)},hide:()=>{t.reset(),t.openEditorId(null)}})).extendSelectors(t=>({isOpen:e=>t.openEditorId===e})),B=Lt.set,A=Lt.get,ut=()=>Lt.use,Be=t=>{if(!t)return!1;const e=n=>n.some(s=>s.text?s.text!=="":s.children?e(s.children):!1);try{const n=JSON.parse(t);return e(n)}catch{return!1}},Rn=(t="p",e="",n)=>Be(e)?e:JSON.stringify([{type:t,children:[{text:e,textStyle:t}],align:n}]),to=(t,e,n)=>t===J.Custom?e:n,eo=t=>t.map(Ne),Ne=t=>({id:t.id,title:t.name,colors:t.colors.map(oo)}),no=t=>"revision"in t,oo=t=>{if(no(t)){const{title:e,revision:n}=t;return{alpha:n.rgba.alpha?n.rgba.alpha/255:1,red:n.rgba.red??0,green:n.rgba.green??0,blue:n.rgba.blue??0,name:e??""}}return{alpha:t.alpha?t.alpha/255:1,red:t.red??0,green:t.green??0,blue:t.blue??0,name:t.name??""}},Dt=(t,e)=>{const n=a.getAboveNode(t,{match:{type:a.ELEMENT_LINK}});return Array.isArray(n)?e(n[0]):""},ao=t=>Dt(t,e=>e.chosenLink?.searchResult?.link||""),so=t=>Dt(t,e=>e.url||""),Mt=t=>t.url||t.chosenLink?.searchResult?.link||"",ro=t=>Dt(t,Mt),Ft=/^\/(document|r)\/\S+$/i,wt=t=>{if(Ft.test(t))return t;try{return new URL(t),t}catch{return`https://${t}`}},yt=t=>{if(Ft.test(t))return!0;try{const e=new URL(t);return["http:","https:","mailto:","tel:"].includes(e.protocol)&&e.pathname!==""}catch{return!1}},st=t=>yt(wt(t))||t==="",Ae=(t,{type:e})=>{const{apply:n,normalizeNode:s}=t;return t.apply=r=>{if(r.type!=="set_selection"){n(r);return}const l=r.newProperties;if(!l?.focus||!l.anchor||!a.isCollapsed(l)){n(r);return}const c=a.getAboveNode(t,{at:l,match:{type:a.getPluginType(t,I)}});if(c){const[,u]=c;let d;a.isStartPoint(t,l.focus,u)&&(d=a.getPreviousNodeEndPoint(t,u)),a.isEndPoint(t,l.focus,u)&&(d=a.getNextNodeStartPoint(t,u)),d&&(r.newProperties={anchor:d,focus:d})}n(r)},t.normalizeNode=([r,l])=>{if(r.type===a.getPluginType(t,I)){const c=t.selection;if(c&&a.isCollapsed(c)&&a.isEndPoint(t,c.focus,l)){const u=a.getNextNodeStartPoint(t,l);if(u)a.select(t,u);else{const d=a.Path.next(l);a.insertNodes(t,{text:""},{at:d}),a.select(t,d)}}}s([r,l])},a.withRemoveEmptyNodes(t,a.mockPlugin({options:{types:e}}))},Le=(t,e,n)=>{a.insertNodes(t,[Oe(t,e)],n)},Ot=t=>{if(!t.selection)return;const{isUrl:e,forceSubmit:n}=a.getPluginOptions(t,I),s=A.url();if(!(e?.(s)||n))return;const l=A.text(),c=A.buttonStyle(),u=A.newTab()?void 0:"_self";return B.reset(),De(t,{url:s,text:l,buttonStyle:c,target:u,isUrl:d=>n||!e?!0:e(d)}),setTimeout(()=>{a.focusEditor(t,t.selection??void 0)},0),!0},rt=(t,e)=>a.withoutNormalizing(t,()=>{if(e?.split){if(a.getAboveNode(t,{at:t.selection?.anchor,match:{type:a.getPluginType(t,I)}}))return a.splitNodes(t,{at:t.selection?.anchor,match:r=>a.isElement(r)&&r.type===a.getPluginType(t,I)}),rt(t,{at:t.selection?.anchor}),!0;if(a.getAboveNode(t,{at:t.selection?.focus,match:{type:a.getPluginType(t,I)}}))return a.splitNodes(t,{at:t.selection?.focus,match:r=>a.isElement(r)&&r.type===a.getPluginType(t,I)}),rt(t,{at:t.selection?.focus}),!0}a.unwrapNodes(t,{match:{type:a.getPluginType(t,I)},...e})}),De=(t,{url:e,text:n,buttonStyle:s,target:r,insertTextInButton:l,insertNodesOptions:c,isUrl:u=a.getPluginOptions(t,I).isUrl})=>{const d=t.selection;if(!d)return;const p=a.getAboveNode(t,{at:d,match:{type:a.getPluginType(t,I)}});if(l&&p)return t.insertText(e),!0;if(!u?.(e))return;if(a.isDefined(n)&&n.length===0&&(n=e),p)return co(e,t,p,r,s,n),!0;const y=a.findNode(t,{at:d,match:{type:a.getPluginType(t,I)}}),[m,w]=y??[],k=io(t,w,n);if(a.isExpanded(d))return lo(p,t,e,s,r,n),!0;k&&a.removeNodes(t,{at:w});const b=a.getNodeProps(m??{}),x=t.selection?.focus.path;if(!x)return;const L=a.getNodeLeaf(t,x);return n?.length||(n=e),Le(t,{...b,url:e,target:r,children:[{...L,text:n}]},c),!0};function io(t,e,n){return e&&n?.length&&n!==a.getEditorString(t,e)}function lo(t,e,n,s,r,l){t?rt(e,{at:t[1]}):rt(e,{split:!0}),Me(e,{url:n,buttonStyle:s,target:r}),_t(e,{text:l})}function co(t,e,n,s,r,l){(t!==n[0]?.url||s!==n[0]?.target||r!==n[0]?.buttonStyle)&&a.setNodes(e,{url:t,target:s,buttonStyle:r},{at:n[1]}),_t(e,{text:l})}const _t=(t,{text:e})=>{const n=a.getAboveNode(t,{match:{type:a.getPluginType(t,I)}});if(n){const[s,r]=n;if(e?.length&&e!==a.getEditorString(t,r)){const l=s.children[0];a.replaceNodeChildren(t,{at:r,nodes:{...l,text:e},insertOptions:{select:!0}})}}},Me=(t,{url:e,buttonStyle:n,target:s,...r})=>{a.wrapNodes(t,{type:a.getPluginType(t,I),url:e,buttonStyle:n,target:s,children:[]},{split:!0,...r})},uo=(t,e)=>{const n=a.getAboveNode(t,{match:{type:I}});return Array.isArray(n)?e(n[0]):""},Fe=t=>uo(t,e=>e.url??""),Oe=(t,{url:e,text:n="",buttonStyle:s="primary",target:r,children:l})=>({type:a.getPluginType(t,I),url:e,target:r,buttonStyle:s,children:l??[{text:n}]}),_e=(t,{focused:e}={})=>{if(A.mode()==="edit"){bt(t);return}Ut(t,{focused:e})},bt=t=>{const e=a.findNode(t,{match:{type:a.getPluginType(t,I)}});if(!e)return;const[n,s]=e;let r=a.getEditorString(t,s);B.url(n.url),B.newTab(n.target===void 0),r===n.url&&(r=""),B.text(r),B.isEditing(!0)},Ut=(t,{focused:e}={})=>{A.mode()||!e||a.isRangeAcrossBlocks(t,{at:t.selection})||a.someNode(t,{match:{type:a.getPluginType(t,I)}})||(B.text(a.getEditorString(t,t.selection)),B.show("insert",t.id))},Ht={marginTop:"10px",marginBottom:"10px",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",verticalAlign:"middle",boxSizing:"border-box",overflowWrap:"normal"},vt={buttonPrimary:{...Ht,fontFamily:"var(--f-theme-settings-button-primary-font-family)",fontSize:"var(--f-theme-settings-button-primary-font-size)",fontWeight:"var(--f-theme-settings-button-primary-font-weight)",lineHeight:"var(--f-theme-settings-button-primary-line-height)",paddingTop:"var(--f-theme-settings-button-primary-padding-top)",paddingRight:"var(--f-theme-settings-button-primary-padding-right)",paddingBottom:"var(--f-theme-settings-button-primary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-primary-padding-left)",fontStyle:"var(--f-theme-settings-button-primary-font-style)",textTransform:"var(--f-theme-settings-button-primary-text-transform)",backgroundColor:"var(--f-theme-settings-button-primary-background-color)",borderColor:"var(--f-theme-settings-button-primary-border-color)",borderRadius:"var(--f-theme-settings-button-primary-border-radius)",borderWidth:"var(--f-theme-settings-button-primary-border-width)",color:"var(--f-theme-settings-button-primary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-primary-background-color-hover)",borderColor:"var(--f-theme-settings-button-primary-border-color-hover)",color:"var(--f-theme-settings-button-primary-color-hover)"}},buttonSecondary:{...Ht,fontFamily:"var(--f-theme-settings-button-secondary-font-family)",fontSize:"var(--f-theme-settings-button-secondary-font-size)",fontWeight:"var(--f-theme-settings-button-secondary-font-weight)",lineHeight:"var(--f-theme-settings-button-secondary-line-height)",paddingTop:"var(--f-theme-settings-button-secondary-padding-top)",paddingRight:"var(--f-theme-settings-button-secondary-padding-right)",paddingBottom:"var(--f-theme-settings-button-secondary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-secondary-padding-left)",fontStyle:"var(--f-theme-settings-button-secondary-font-style)",textTransform:"var(--f-theme-settings-button-secondary-text-transform)",backgroundColor:"var(--f-theme-settings-button-secondary-background-color)",borderColor:"var(--f-theme-settings-button-secondary-border-color)",borderRadius:"var(--f-theme-settings-button-secondary-border-radius)",borderWidth:"var(--f-theme-settings-button-secondary-border-width)",color:"var(--f-theme-settings-button-secondary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-secondary-background-color-hover)",borderColor:"var(--f-theme-settings-button-secondary-border-color-hover)",color:"var(--f-theme-settings-button-secondary-color-hover)"}},buttonTertiary:{...Ht,fontFamily:"var(--f-theme-settings-button-tertiary-font-family)",fontSize:"var(--f-theme-settings-button-tertiary-font-size)",fontWeight:"var(--f-theme-settings-button-tertiary-font-weight)",lineHeight:"var(--f-theme-settings-button-tertiary-line-height)",paddingTop:"var(--f-theme-settings-button-tertiary-padding-top)",paddingRight:"var(--f-theme-settings-button-tertiary-padding-right)",paddingBottom:"var(--f-theme-settings-button-tertiary-padding-bottom)",paddingLeft:"var(--f-theme-settings-button-tertiary-padding-left)",fontStyle:"var(--f-theme-settings-button-tertiary-font-style)",textTransform:"var(--f-theme-settings-button-tertiary-text-transform)",backgroundColor:"var(--f-theme-settings-button-tertiary-background-color)",borderColor:"var(--f-theme-settings-button-tertiary-border-color)",borderRadius:"var(--f-theme-settings-button-tertiary-border-radius)",borderWidth:"var(--f-theme-settings-button-tertiary-border-width)",color:"var(--f-theme-settings-button-tertiary-color)",hover:{backgroundColor:"var(--f-theme-settings-button-tertiary-background-color-hover)",borderColor:"var(--f-theme-settings-button-tertiary-border-color-hover)",color:"var(--f-theme-settings-button-tertiary-color-hover)"}}},go=t=>{const{attributes:e,children:n}=t,s=t.element.url||t.element.chosenLink?.searchResult?.link||"",r=t.element.target||"_self",l=String(t.element.buttonStyle)||"primary";return o.jsx(ho,{attributes:e,href:s,target:r,styles:vt[`button${l.charAt(0).toUpperCase()+l.slice(1)}`],children:n})},ho=({attributes:t,styles:e={hover:{}},children:n,href:s="#",target:r})=>{const[l,c]=g.useState(!1);return o.jsx("a",{...t,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),href:s,target:r,style:l?{...e,...e.hover}:e,children:n})};class mo extends a.MarkupElement{constructor(e=I,n=go){super(e,n)}}const Ue=g.forwardRef((t,e)=>{const n=a.useEditorRef();return o.jsx(a.ToolbarButton,{ref:e,...t,onMouseDown:s=>{s.preventDefault(),a.focusEditor(n,n.selection??n.prevSelection??void 0)},onClick:()=>{_e(n,{focused:!0})},children:o.jsx(a.IconStylingWrapper,{icon:o.jsx(T.IconButton,{size:16})})})});Ue.displayName="ButtonToolbarButton";const fo=({editorId:t,id:e})=>{const n=a.useEditorState(a.useEventPlateId(t)),s=!!a.isRangeInSameBlock(n,{at:n.selection}),r=a.getPluginType(n,I),l=!!n?.selection&&a.someNode(n,{match:{type:r}});return o.jsx("div",{"data-plugin-id":e,children:o.jsx(Ue,{pressed:l,disabled:!s,tooltip:a.getTooltip(s?`Button
2
+ ${a.getHotkeyByPlatform("Ctrl+Shift+K")}`:"Buttons can only be set for a single text block.")})})},it="link-plugin";var v=(t=>(t.heading1="heading1",t.heading2="heading2",t.heading3="heading3",t.heading4="heading4",t.custom1="custom1",t.custom2="custom2",t.custom3="custom3",t.quote="quote",t.imageCaption="imageCaption",t.imageTitle="imageTitle",t.p="p",t))(v||{});const E={heading1:{fontSize:"var(--f-theme-settings-heading1-font-size)",lineHeight:"var(--f-theme-settings-heading1-line-height)",marginTop:"var(--f-theme-settings-heading1-margin-top)",marginBottom:"var(--f-theme-settings-heading1-margin-bottom)",textDecoration:"var(--f-theme-settings-heading1-text-decoration)",fontStyle:"var(--f-theme-settings-heading1-font-style)",textTransform:"var(--f-theme-settings-heading1-text-transform)",letterSpacing:"var(--f-theme-settings-heading1-letter-spacing)",fontWeight:"var(--f-theme-settings-heading1-font-weight)",fontFamily:"var(--f-theme-settings-heading1-font-family)",color:"var(--f-theme-settings-heading1-color)"},heading2:{fontSize:"var(--f-theme-settings-heading2-font-size)",lineHeight:"var(--f-theme-settings-heading2-line-height)",marginTop:"var(--f-theme-settings-heading2-margin-top)",marginBottom:"var(--f-theme-settings-heading2-margin-bottom)",textDecoration:"var(--f-theme-settings-heading2-text-decoration)",fontStyle:"var(--f-theme-settings-heading2-font-style)",textTransform:"var(--f-theme-settings-heading2-text-transform)",letterSpacing:"var(--f-theme-settings-heading2-letter-spacing)",fontWeight:"var(--f-theme-settings-heading2-font-weight)",fontFamily:"var(--f-theme-settings-heading2-font-family)",color:"var(--f-theme-settings-heading2-color)"},heading3:{fontSize:"var(--f-theme-settings-heading3-font-size)",lineHeight:"var(--f-theme-settings-heading3-line-height)",marginTop:"var(--f-theme-settings-heading3-margin-top)",marginBottom:"var(--f-theme-settings-heading3-margin-bottom)",textDecoration:"var(--f-theme-settings-heading3-text-decoration)",fontStyle:"var(--f-theme-settings-heading3-font-style)",textTransform:"var(--f-theme-settings-heading3-text-transform)",letterSpacing:"var(--f-theme-settings-heading3-letter-spacing)",fontWeight:"var(--f-theme-settings-heading3-font-weight)",fontFamily:"var(--f-theme-settings-heading3-font-family)",color:"var(--f-theme-settings-heading3-color)"},heading4:{fontSize:"var(--f-theme-settings-heading4-font-size)",lineHeight:"var(--f-theme-settings-heading4-line-height)",marginTop:"var(--f-theme-settings-heading4-margin-top)",marginBottom:"var(--f-theme-settings-heading4-margin-bottom)",textDecoration:"var(--f-theme-settings-heading4-text-decoration)",fontStyle:"var(--f-theme-settings-heading4-font-style)",textTransform:"var(--f-theme-settings-heading4-text-transform)",letterSpacing:"var(--f-theme-settings-heading4-letter-spacing)",fontWeight:"var(--f-theme-settings-heading4-font-weight)",fontFamily:"var(--f-theme-settings-heading4-font-family)",color:"var(--f-theme-settings-heading4-color)"},custom1:{fontSize:"var(--f-theme-settings-custom1-font-size)",lineHeight:"var(--f-theme-settings-custom1-line-height)",marginTop:"var(--f-theme-settings-custom1-margin-top)",marginBottom:"var(--f-theme-settings-custom1-margin-bottom)",textDecoration:"var(--f-theme-settings-custom1-text-decoration)",fontStyle:"var(--f-theme-settings-custom1-font-style)",textTransform:"var(--f-theme-settings-custom1-text-transform)",letterSpacing:"var(--f-theme-settings-custom1-letter-spacing)",fontWeight:"var(--f-theme-settings-custom1-font-weight)",fontFamily:"var(--f-theme-settings-custom1-font-family)",color:"var(--f-theme-settings-custom1-color)"},custom2:{fontSize:"var(--f-theme-settings-custom2-font-size)",lineHeight:"var(--f-theme-settings-custom2-line-height)",marginTop:"var(--f-theme-settings-custom2-margin-top)",marginBottom:"var(--f-theme-settings-custom2-margin-bottom)",textDecoration:"var(--f-theme-settings-custom2-text-decoration)",fontStyle:"var(--f-theme-settings-custom2-font-style)",textTransform:"var(--f-theme-settings-custom2-text-transform)",letterSpacing:"var(--f-theme-settings-custom2-letter-spacing)",fontWeight:"var(--f-theme-settings-custom2-font-weight)",fontFamily:"var(--f-theme-settings-custom2-font-family)",color:"var(--f-theme-settings-custom2-color)"},custom3:{fontSize:"var(--f-theme-settings-custom3-font-size)",lineHeight:"var(--f-theme-settings-custom3-line-height)",marginTop:"var(--f-theme-settings-custom3-margin-top)",marginBottom:"var(--f-theme-settings-custom3-margin-bottom)",textDecoration:"var(--f-theme-settings-custom3-text-decoration)",fontStyle:"var(--f-theme-settings-custom3-font-style)",textTransform:"var(--f-theme-settings-custom3-text-transform)",letterSpacing:"var(--f-theme-settings-custom3-letter-spacing)",fontWeight:"var(--f-theme-settings-custom3-font-weight)",fontFamily:"var(--f-theme-settings-custom3-font-family)",color:"var(--f-theme-settings-custom3-color)"},p:{fontSize:"var(--f-theme-settings-body-font-size)",lineHeight:"var(--f-theme-settings-body-line-height)",marginTop:"var(--f-theme-settings-body-margin-top)",marginBottom:"var(--f-theme-settings-body-margin-bottom)",textDecoration:"var(--f-theme-settings-body-text-decoration)",fontStyle:"var(--f-theme-settings-body-font-style)",textTransform:"var(--f-theme-settings-body-text-transform)",letterSpacing:"var(--f-theme-settings-body-letter-spacing)",fontWeight:"var(--f-theme-settings-body-font-weight)",fontFamily:"var(--f-theme-settings-body-font-family)",color:"var(--f-theme-settings-body-color)"},quote:{fontSize:"var(--f-theme-settings-quote-font-size)",lineHeight:"var(--f-theme-settings-quote-line-height)",marginTop:"var(--f-theme-settings-quote-margin-top)",marginBottom:"var(--f-theme-settings-quote-margin-bottom)",textDecoration:"var(--f-theme-settings-quote-text-decoration)",fontStyle:"var(--f-theme-settings-quote-font-style)",textTransform:"var(--f-theme-settings-quote-text-transform)",letterSpacing:"var(--f-theme-settings-quote-letter-spacing)",fontWeight:"var(--f-theme-settings-quote-font-weight)",fontFamily:"var(--f-theme-settings-quote-font-family)",color:"var(--f-theme-settings-quote-color)"},imageCaption:{fontSize:"var(--f-theme-settings-image-caption-font-size)",lineHeight:"var(--f-theme-settings-image-caption-line-height)",marginTop:"var(--f-theme-settings-image-caption-margin-top)",marginBottom:"var(--f-theme-settings-image-caption-margin-bottom)",textDecoration:"var(--f-theme-settings-image-caption-text-decoration)",fontStyle:"var(--f-theme-settings-image-caption-font-style)",textTransform:"var(--f-theme-settings-image-caption-text-transform)",letterSpacing:"var(--f-theme-settings-image-caption-letter-spacing)",fontWeight:"var(--f-theme-settings-image-caption-font-weight)",fontFamily:"var(--f-theme-settings-image-caption-font-family)",color:"var(--f-theme-settings-image-caption-color)"},imageTitle:{fontSize:"var(--f-theme-settings-image-title-font-size)",lineHeight:"var(--f-theme-settings-image-title-line-height)",marginTop:"var(--f-theme-settings-image-title-margin-top)",marginBottom:"var(--f-theme-settings-image-title-margin-bottom)",textDecoration:"var(--f-theme-settings-image-title-text-decoration)",fontStyle:"var(--f-theme-settings-image-title-font-style)",textTransform:"var(--f-theme-settings-image-title-text-transform)",letterSpacing:"var(--f-theme-settings-image-title-letter-spacing)",fontWeight:"var(--f-theme-settings-image-title-font-weight)",fontFamily:"var(--f-theme-settings-image-title-font-family)",color:"var(--f-theme-settings-image-title-color)"},[it]:{fontSize:"var(--f-theme-settings-link-font-size)",lineHeight:"var(--f-theme-settings-link-line-height)",marginTop:"var(--f-theme-settings-link-margin-top)",marginBottom:"var(--f-theme-settings-link-margin-bottom)",textDecoration:"var(--f-theme-settings-link-text-decoration)",fontStyle:"var(--f-theme-settings-link-font-style)",textTransform:"var(--f-theme-settings-link-text-transform)",letterSpacing:"var(--f-theme-settings-link-letter-spacing)",fontWeight:"var(--f-theme-settings-link-font-weight)",fontFamily:"var(--f-theme-settings-link-font-family)",color:"var(--f-theme-settings-link-color)"},...vt},po=()=>{const t=a.useEditorRef();return o.jsx(a.FloatingModalWrapper,{padding:"16px",minWidth:"400px","data-test-id":"floating-button-edit",children:o.jsxs("span",{"data-test-id":"preview-button-flyout",className:"tw-flex tw-justify-between tw-items-center tw-gap-2",children:[o.jsx("a",{"data-test-id":"floating-button-edit-url",href:A.url(),target:"_blank",rel:"noopener noreferrer",style:E[it],className:"tw-break-all",children:A.url()}),o.jsxs("span",{className:"tw-flex tw-gap-2",children:[o.jsx("button",{onClick:()=>{bt(t)},tabIndex:0,"data-test-id":"edit-button-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",children:o.jsx(T.IconPen,{size:16})}),o.jsx("button",{onClick:()=>{rt(t),a.focusEditor(t,t.selection??void 0)},tabIndex:0,"data-test-id":"remove-button-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",children:o.jsx(T.IconTrashBin,{size:16})})]})]})})},He=t=>t.filter(e=>!!e.title?.trim()),ze=()=>o.jsx("div",{className:"tw-flex tw-justify-center tw-h-10 tw-items-center",children:o.jsx(f.LoadingCircle,{size:"small"})}),wo=({section:t,selectedUrl:e,onSelectUrl:n})=>{const s=t.permanentLink===e;return o.jsx("button",{"data-test-id":"internal-link-selector-section-link",type:"button","data-is-active":s,className:`
3
3
  tw-py-2 tw-pr-2.5 tw-pl-14 tw-leading-5 tw-cursor-pointer tw-w-full
4
- ${r?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover"}`,onClick:()=>n(e.permanentLink),children:a.jsxs("div",{className:"tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-h-6",children:[a.jsx(T.IconDocumentText,{size:16}),a.jsx("span",{className:"tw-text-s",children:e.title}),a.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Section"})]})})},ba=({page:e,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:l})=>{const[i,d]=h.useState(e.id===r.documentId),[u,c]=h.useState([]),m=e.permanentLink===t;h.useEffect(()=>{(async()=>{const w=await l(e.id),k=zt(w);c(k)})()},[e.id,l]),h.useEffect(()=>{e.id===r.pageId&&d(!0)},[r,e.id]);const b=u.length>0;return a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button","data-test-id":"internal-link-selector-page-link",className:`
4
+ ${s?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover"}`,onClick:()=>n(t.permanentLink),children:o.jsxs("div",{className:"tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-h-6",children:[o.jsx(T.IconDocumentText,{size:16}),o.jsx("span",{className:"tw-text-s",children:t.title}),o.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Section"})]})})},yo=({page:t,selectedUrl:e,onSelectUrl:n,itemsToExpandInitially:s,getDocumentSectionsByDocumentPageId:r})=>{const[l,c]=g.useState(t.id===s.documentId),[u,d]=g.useState([]),p=t.permanentLink===e;g.useEffect(()=>{(async()=>{const w=await r(t.id),k=He(w);d(k)})()},[t.id,r]),g.useEffect(()=>{t.id===s.pageId&&c(!0)},[s,t.id]);const y=u.length>0;return o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button","data-test-id":"internal-link-selector-page-link",className:`
5
5
  tw-py-2 tw-pr-2.5 tw-leading-5 tw-cursor-pointer tw-flex tw-w-full
6
- ${b?"tw-pl-7 ":"tw-pl-12 "}
7
- ${m?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover ":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover "}`,onClick:()=>n(e.permanentLink),children:a.jsxs("div",{className:"tw-flex tw-flex-1 tw-space-x-1 tw-items-center tw-h-6",children:[b&&a.jsx("button",{type:"button",className:"tw-flex tw-items-center tw-justify-center -tw-mr-2 tw-pr-3.5 tw-pt-1.5 tw-pb-1.5 tw-pl-3.5 tw-cursor-pointer",onClick:()=>d(!i),onKeyDown:f=>f.key==="Enter"&&f.stopPropagation(),children:a.jsx("div",{className:`tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong
8
- ${i?"tw-rotate-90 ":""}`})}),a.jsx("span",{className:"tw-text-s",children:e.title}),a.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Page"})]},e.id)}),i&&u.length>0&&u.map(f=>a.jsx(ya,{section:f,selectedUrl:t,onSelectUrl:n},f.id))]})},pa=({documentId:e,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:l,getDocumentPagesByDocumentId:i})=>{const[d,u]=h.useState([]),[c,m]=h.useState(!0),b=[...d.values()],f=!c&&b.length>0;return h.useEffect(()=>{i(e).then(w=>{const k=w.filter(x=>!!x.category).sort((x,M)=>x.category.sort===M.category.sort?x.sort-M.sort:x.category.sort-M.category.sort),p=w.filter(x=>!x.category).sort((x,M)=>x.sort-M.sort);u([...k,...p])}).finally(()=>{m(!1)})},[]),c?a.jsx(Vt,{}):f?a.jsx(a.Fragment,{children:b.map(w=>a.jsx(ba,{page:w,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:l},w.id))}):a.jsx("div",{className:"tw-h-10 tw-flex tw-items-center tw-pr-2.5 tw-pl-7 tw-leading-5 tw-text-s tw-text-text-weak",children:"This document does not contain any pages."})},va=({document:e,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:l,getDocumentPagesByDocumentId:i})=>{const[d,u]=h.useState(e.id===r.documentId),c=e.permanentLink===t;return h.useEffect(()=>{e.id===r.documentId&&u(!0)},[r,e.id]),a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button","data-test-id":"internal-link-selector-document-link",className:`tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-py-2 tw-pr-2.5 tw-leading-5 tw-cursor-pointer tw-w-full ${c?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover"}`,onClick:()=>n(e.permanentLink),children:[a.jsx("button",{type:"button",tabIndex:0,"data-test-id":"tree-item-toggle",className:"tw-flex tw-items-center tw-justify-center -tw-mr-2 tw-pr-3.5 tw-pt-1.5 tw-pb-1.5 tw-pl-3.5 tw-cursor-pointer",onClick:()=>u(!d),onKeyDown:m=>m.key==="Enter"&&m.stopPropagation(),children:a.jsx("div",{className:`tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong ${d?"tw-rotate-90":""}`})}),a.jsx(T.IconColorFan,{size:16}),a.jsx("span",{className:"tw-text-s",children:e.title}),a.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Document"})]}),d&&a.jsx(pa,{documentId:e.id,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:l,getDocumentPagesByDocumentId:i})]})},Ca=({selectedUrl:e,onSelectUrl:t,getAllDocuments:n,getDocumentPagesByDocumentId:r,getDocumentSectionsByDocumentPageId:l})=>{const[i,d]=h.useState(!0),[u,c]=h.useState([]),[m,b]=h.useState({documentId:void 0,pageId:void 0});h.useEffect(()=>{e&&u.length>0&&f().then(w=>{b(w)})},[u.length]),h.useEffect(()=>{n().then(w=>{c(w)}).finally(()=>{d(!1)})},[]);const f=async()=>{const w={documentId:void 0,pageId:void 0};if(u.find(p=>p.permanentLink===e))return w;for(const p of u){const x=await r(p.id);if(!!x.find(A=>A.permanentLink===e))return w.documentId=p.id,w;for(const A of x){const O=await l(A.id);if(!!zt(O).find($=>$.permanentLink===e))return w.documentId=p.id,w.pageId=A.id,w}}return w};return i?a.jsx(Vt,{}):a.jsx(a.Fragment,{children:u.map(w=>a.jsx(va,{document:w,selectedUrl:e,onSelectUrl:t,itemsToExpandInitially:m,getDocumentSectionsByDocumentPageId:l,getDocumentPagesByDocumentId:r},w.id))})},$t=({url:e,onUrlChange:t,buttonSize:n="medium",getAllDocuments:r,getDocumentPagesByDocumentId:l,getDocumentSectionsByDocumentPageId:i})=>{const[d,u]=h.useState(!1),[c,m]=h.useState(e),b=p=>{m(p)},f=p=>{p.key==="Enter"&&(p.preventDefault(),w())};h.useEffect(()=>{e&&!c&&m(e)},[e,c]);const w=()=>{t==null||t(c),u(!1)},k={onOpenAutoFocus:()=>{},showUnderlay:!0,"data-is-underlay":!0,minWidth:"800px"};return a.jsx("div",{onPointerDownCapture:p=>{p.stopPropagation(),p.preventDefault()},onFocusCapture:p=>{p.stopPropagation(),p.preventDefault()},"data-test-id":"internal-link-selector",onKeyDown:f,children:a.jsxs(y.Dialog.Root,{modal:!0,open:d,onOpenChange:u,children:[a.jsx(y.Dialog.Trigger,{asChild:!0,children:a.jsxs(y.Button,{size:n,emphasis:"default",children:[a.jsx(T.IconLink,{size:"20"}),"Internal link"]})}),a.jsxs(y.Dialog.Content,{...k,children:[a.jsx(y.Dialog.Header,{children:a.jsx(y.Dialog.Title,{children:"Select internal link"})}),a.jsx(y.Dialog.Body,{padding:"none",children:a.jsx(y.ScrollArea,{padding:"compact",children:a.jsx(Ca,{selectedUrl:c,onSelectUrl:b,getAllDocuments:r,getDocumentPagesByDocumentId:l,getDocumentSectionsByDocumentPageId:i})})}),a.jsxs(y.Dialog.Footer,{children:[a.jsx(y.Button,{size:n,emphasis:"default",onPress:()=>u(!1),children:"Cancel"}),a.jsx(y.Button,{size:n,disabled:!c,emphasis:"strong",onPress:()=>w(),children:"Choose"})]})]})]})})},Wt=({onUrlChange:e,onToggleTab:t,isValidUrlOrEmpty:n,appBridge:r,placeholder:l,newTab:i,url:d="",required:u,info:c,label:m,buttonSize:b,hideInternalLinkButton:f})=>{const w=n?n(d):le(d);return a.jsxs("div",{"data-test-id":"link-input",children:[a.jsx(W.FormControl,{label:{children:m,htmlFor:"url",required:u,tooltip:c?{content:c,position:"top"}:void 0},children:a.jsx(y.TextInput,{"data-test-id":"text-input",id:"url",value:d,onChange:k=>e==null?void 0:e(k.target.value),placeholder:l??"https://example.com"})}),!w&&a.jsx("div",{className:"tw-text-text-negative tw-mt-1 tw-text-s",children:"Please enter a valid URL."}),!f&&a.jsx("div",{className:"tw-mt-3",children:a.jsx($t,{url:d,onUrlChange:e,buttonSize:b??"medium",getAllDocuments:()=>r.getAllDocuments(),getDocumentPagesByDocumentId:k=>r.getDocumentPagesByDocumentId(k),getDocumentSectionsByDocumentPageId:k=>r.getDocumentSectionsByDocumentPageId(k)})}),a.jsxs("div",{className:"tw-mt-3 tw-flex tw-items-center tw-gap-1.5",children:[a.jsx(y.Checkbox,{id:"new-tab",value:i,onChange:()=>t==null?void 0:t(!i)}),a.jsx(y.Label,{id:"new-tab-label",htmlFor:"new-tab",className:"tw-whitespace-nowrap",children:"Open in new tab"})]})]})},qt=({state:e,onTextChange:t,onUrlChange:n,onToggleTab:r,onCancel:l,onSave:i,isValidUrlOrEmpty:d,hasValues:u,testId:c,appBridge:m,children:b})=>a.jsxs(s.FloatingModalWrapper,{"data-test-id":c,padding:"28px",minWidth:"400px",children:[a.jsx(W.FormControl,{label:{children:"Text",htmlFor:"linkText",required:!0},children:a.jsx(y.TextInput,{id:"linkText",value:e.text,placeholder:"Link Text",onChange:f=>t(f.target.value)})}),b,a.jsx("div",{className:"tw-mt-5",children:a.jsx(Wt,{url:e.url,newTab:e.newTab,onUrlChange:n,onToggleTab:r,isValidUrlOrEmpty:d,appBridge:m})}),a.jsx("div",{className:"tw-mt-3",children:a.jsxs("div",{className:"tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10",children:[a.jsx(y.Button,{"data-test-id":"button",onPress:l,size:"medium",emphasis:"default",children:"Cancel"}),a.jsxs(y.Button,{"data-test-id":"button",onPress:i,size:"medium",disabled:!d(e==null?void 0:e.url)||!u,children:[a.jsx(T.IconCheckMark,{size:"20"}),"Save"]})]})})]}),ka=e=>{var n;const t=s.getAboveNode(e,{match:{type:E}});return Array.isArray(t)&&((n=t[0])==null?void 0:n.buttonStyle)||"primary"},xa={url:"",text:"",buttonStyle:"primary",newTab:!1},Pa=()=>{const[e,t]=h.useReducer((n,r)=>{const{type:l,payload:i}=r;switch(l){case"NEW_TAB":return{...n,newTab:!0};case"SAME_TAB":return{...n,newTab:!1};case"URL":case"TEXT":case"BUTTON_STYLE":case"INIT":return{...n,...i};default:return n}},xa);return[e,t]},Ta=()=>{const e=s.useEditorRef(),[t,n]=Pa();h.useEffect(()=>{const f=ka(e);n({type:"INIT",payload:{text:D.text()||D.url(),buttonStyle:f,newTab:!!D.newTab(),url:D.url()}})},[n,e]);const r=f=>{n({type:"TEXT",payload:{text:f}})},l=f=>{n({type:"BUTTON_STYLE",payload:{buttonStyle:f}})},i=f=>{n({type:"URL",payload:{url:f}})},d=f=>{n(f?{type:"NEW_TAB"}:{type:"SAME_TAB"})},u=()=>{N.reset()},c=f=>{if(!le(t.url)||!m)return;const w=be(t.url);N.text(t.text),N.url(w),N.buttonStyle(t.buttonStyle),N.newTab(t.newTab),_e(e)&&(f==null||f.preventDefault())},m=t.url!==""&&t.text!=="",{appBridge:b}=s.getPluginOptions(e,E);return s.useHotkeys("enter",c,{enableOnFormTags:["INPUT"]},[]),{state:t,onTextChange:r,onButtonStyleChange:l,onUrlChange:i,onToggleTab:d,onCancel:u,onSave:c,hasValues:m,isValidUrlOrEmpty:le,appBridge:b}},Ia=()=>{const e=Ta(),{state:t,onButtonStyleChange:n}=e;return a.jsx(qt,{...e,testId:"floating-button-insert",children:a.jsx("div",{className:"tw-pt-5",children:a.jsxs(W.FormControl,{label:{children:"Button Style",htmlFor:"buttonStyle",required:!0},children:[a.jsx(Ve,{id:"primary",styles:S.buttonPrimary,isActive:t.buttonStyle==="primary",onClick:()=>n("primary"),children:t.text||"Primary Button"}),a.jsx(Ve,{id:"secondary",styles:S.buttonSecondary,isActive:t.buttonStyle==="secondary",onClick:()=>n("secondary"),children:t.text||"Secondary Button"}),a.jsx(Ve,{id:"tertiary",styles:S.buttonTertiary,isActive:t.buttonStyle==="tertiary",onClick:()=>n("tertiary"),children:t.text||"Tertiary Button"})]})})})},Ve=({id:e,styles:t,isActive:n,onClick:r,children:l})=>{const[i,d]=h.useState(!1),u=()=>t&&t.hover&&i?{...t,...t.hover}:t;return a.jsx("button",{"data-test-id":`floating-button-insert-${e}`,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:r,style:{...u(),marginTop:0,marginBottom:0},className:n?"tw-outline tw-outline-1 tw-outline-violet-60 tw-outline-offset-2 tw-w-fit":"tw-w-fit",children:l})},Gt={placement:"bottom-start",strategy:"absolute",middleware:[s.offset(12),s.flip({padding:12,fallbackPlacements:["bottom-end","top-start","top-end"]})]},Ea=()=>{const{ref:e,...t}=Na(Gt),{ref:n,...r}=Sa(Gt),l=s.useEditorRef(),i=ge(),d=i.isOpen(l.id),u=i.isEditing(),c=i.mode(),m=a.jsx(Ia,{}),b=u?m:a.jsx(wa,{});return a.jsxs(a.Fragment,{children:[d&&c==="insert"&&me.createPortal(a.jsx("div",{"data-is-underlay":!0,ref:e,...t,style:{...t.style,...S[s.TextStyles.p]},children:m}),document.body),d&&c==="edit"&&me.createPortal(a.jsx("div",{"data-is-underlay":!0,ref:n,...r,style:{...r.style,...S[s.TextStyles.p]},children:b}),document.body)]})},E="button",Kt="button-plugin",jt=e=>s.createPluginFactory({key:E,isElement:!0,isInline:!0,props:({element:t})=>({nodeProps:{href:t==null?void 0:t.url,target:t==null?void 0:t.target}}),withOverrides:Lt,renderAfterEditable:Ea,options:{isUrl:pe,rangeBeforeOptions:{matchString:" ",skipInvalid:!0,afterMatch:!0},triggerFloatingButtonHotkeys:"command+shift+k, ctrl+shift+k",appBridge:e},then:(t,{type:n})=>({deserializeHtml:{rules:[{validNodeName:"A",validClassName:"btn"}],getNode:r=>({type:n,url:r.getAttribute("href"),target:r.getAttribute("target")||"_blank"})}})})();class Qt extends s.Plugin{constructor({styles:n=Ce,...r}){super(Kt,{button:ma,markupElement:new fa,...r});L(this,"styles",{});L(this,"appBridge");this.styles=n,this.appBridge=r==null?void 0:r.appBridge}plugins(){return[jt(this.appBridge)]}}const Sa=e=>{const t=s.useEditorRef(),n=ge().mode(),r=ge().isOpen(t.id),l=s.useEditorVersion(),{triggerFloatingButtonHotkeys:i}=s.getPluginOptions(t,E),d=h.useCallback(()=>{const f=s.getAboveNode(t,{match:{type:s.getPluginType(t,E)}});if(f){const[,w]=f;return s.getRangeBoundingClientRect(t,{anchor:s.getStartPoint(t,w),focus:s.getEndPoint(t,w)})}return s.getDefaultBoundingClientRect()},[t]),u=r&&n==="edit",{update:c,style:m,floating:b}=Yt({open:u,getBoundingClientRect:d,...e});return h.useEffect(()=>{const f=Ot(t);if(f&&N.url(f),t.selection&&s.someNode(t,{match:{type:s.getPluginType(t,E)}})){N.show("edit",t.id),c();return}D.mode()==="edit"&&N.reset()},[t,l,c]),s.useHotkeys(i,f=>{f.preventDefault(),D.mode()==="edit"&&ve(t)},{enableOnContentEditable:!0},[]),Ba(),Xt(),{style:m,ref:s.useComposedRef(b)}},Ba=()=>{const e=s.useEditorRef();s.useHotkeys("*",t=>{t.key==="Enter"&&_e(e)&&t.preventDefault()},{enableOnFormTags:["INPUT"]},[])},Xt=()=>{const e=s.useEditorRef();s.useHotkeys("escape",()=>{if(D.mode()==="edit"){if(D.isEditing()){N.show("edit",e.id),s.focusEditor(e,e.selection??void 0);return}N.reset()}},{enableOnFormTags:["INPUT"],enableOnContentEditable:!0},[])},Na=e=>{const t=s.useEditorRef(),n=s.useFocused(),r=ge().mode(),l=ge().isOpen(t.id),{triggerFloatingButtonHotkeys:i}=s.getPluginOptions(t,E);s.useHotkeys(i,m=>{m.preventDefault(),He(t,{focused:n})},{enableOnContentEditable:!0},[n]);const{update:d,style:u,floating:c}=Yt({open:l&&r==="insert",getBoundingClientRect:s.getSelectionBoundingClientRect,whileElementsMounted:void 0,...e});return h.useEffect(()=>{l&&d(),N.updated(l)},[l,d]),Xt(),{style:u,ref:s.useComposedRef(c)}},Aa=12,La=-22,Da=96,Yt=e=>s.useVirtualFloating({placement:"bottom-start",middleware:[s.offset({mainAxis:Aa,alignmentAxis:La}),s.flip({padding:Da})],...e}),$e="[&_.tw-break-after-column]:tw-break-after-auto [&_.tw-break-inside-avoid-column]:tw-break-inside-auto [&_.tw-break-after-column.tw-pb-5]:tw-pb-0 @md:[&_.tw-break-after-column.tw-pb-5]:!tw-pb-5 @md:[&_.tw-break-after-column]:!tw-break-after-column @md:[&_.tw-break-inside-avoid-column]:!tw-break-inside-avoid-column",Jt={1:"tw-columns-1",2:"tw-columns-1 @sm:!tw-columns-2 [&_.tw-break-after-column]:tw-break-after-auto [&_.tw-break-inside-avoid-column]:tw-break-inside-auto [&_.tw-break-after-column.tw-pb-5]:tw-pb-0 @sm:[&_.tw-break-after-column.tw-pb-5]:!tw-pb-5 @sm:[&_.tw-break-after-column]:!tw-break-after-column @sm:[&_.tw-break-inside-avoid-column]:!tw-break-inside-avoid-column",3:`tw-columns-1 @md:!tw-columns-3 ${$e}`,4:`tw-columns-1 @md:!tw-columns-4 ${$e}`,5:`tw-columns-1 @md:!tw-columns-5 ${$e}`},Zt=e=>e?Jt[e]||Jt[1]:"",Ma=e=>{D.isOpen(e)&&N.reset()},Rt=h.memo(({isEnabled:e,value:t,columns:n,gap:r,placeholder:l,plugins:i,onTextChange:d,showSerializedText:u})=>{const c=Zt(n),[m,b]=h.useState(!1),f=h.useId(),w=h.useCallback(p=>{p!==t&&(d==null||d(p)),b(!1)},[d,t]),k=h.useCallback(()=>b(!0),[]);return h.useEffect(()=>{const p=x=>{x.preventDefault(),x.returnValue="Unprocessed changes"};return m&&window.addEventListener("beforeunload",p),()=>window.removeEventListener("beforeunload",p)},[m]),e?a.jsx(s.RichTextEditor,{id:f,value:t,border:!1,placeholder:l,plugins:i,onValueChanged:k,onTextChange:w,hideExternalFloatingModals:Ma,placeholderOpacity:"high"}):a.jsx(Rn,{value:t,gap:r,customClass:c,show:u,plugins:i})});Rt.displayName="InternalRichTextEditor";const Fa=e=>{const t=h.useRef(null),[n,r]=h.useState(!1),{isEditing:l,...i}=e,d=h.useCallback(u=>{u&&r(!0)},[]);return Zn({ref:t,disabled:!l,onChange:d}),h.useEffect(()=>{l||r(!1)},[l]),a.jsx("div",{"data-test-id":"rich-text-editor-container",className:"tw-block tw-w-full tw-@container",ref:t,children:a.jsx(Rt,{...i,isEnabled:l&&n})})},Oa=({editButtonProps:e,unlinkButtonProps:t})=>{const{element:n}=s.useLinkOpenButtonState(),r=n?Fe(n):"";return a.jsx(s.FloatingModalWrapper,{"data-test-id":"floating-link-edit",padding:"16px",minWidth:"400px",children:a.jsxs("span",{"data-test-id":"preview-link-flyout",className:"tw-flex tw-justify-between tw-items-center tw-gap-2",children:[a.jsx("a",{"data-test-id":"floating-link-edit-url",href:r,target:"_blank",rel:"noopener noreferrer",style:S[ie],className:"tw-break-all",children:r}),a.jsxs("span",{className:"tw-flex tw-gap-2",children:[a.jsx("button",{tabIndex:0,"data-test-id":"edit-link-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",...e,children:a.jsx(T.IconPen,{size:16})}),a.jsx("button",{tabIndex:0,"data-test-id":"remove-link-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",...t,children:a.jsx(T.IconTrashBin,{size:16})})]})]})})},en=(e,t)=>{const n=s.getAboveNode(e,{match:{type:s.ELEMENT_LINK}});return Array.isArray(n)?t(n[0]):""},_a=e=>en(e,t=>{var n,r;return((r=(n=t.chosenLink)==null?void 0:n.searchResult)==null?void 0:r.link)||""}),Ua=e=>en(e,t=>t.url||""),Ha={url:"",text:"",newTab:!1},za=()=>{const[e,t]=h.useReducer((n,r)=>{const{type:l,payload:i}=r;switch(l){case"NEW_TAB":return{...n,newTab:!0};case"SAME_TAB":return{...n,newTab:!1};case"URL":case"TEXT":case"INIT":return{...n,...i};default:return n}},Ha);return[e,t]},Va=()=>{const e=s.useEditorRef(),[t,n]=za();h.useEffect(()=>{const b=_a(e),f=Ua(e),w=s.floatingLinkSelectors.newTab();n({type:"INIT",payload:{text:s.floatingLinkSelectors.text()||s.floatingLinkSelectors.url(),newTab:w,url:b&&f===""?b:s.floatingLinkSelectors.url()}})},[n,e]);const r=b=>{n({type:"TEXT",payload:{text:b}})},l=b=>{n({type:"URL",payload:{url:b}})},i=b=>{n(b?{type:"NEW_TAB"}:{type:"SAME_TAB"})},d=()=>{s.floatingLinkActions.reset()},u=b=>{!le(t.url)||!c||(s.floatingLinkActions.text(t.text),s.floatingLinkActions.url(be(t.url)),s.floatingLinkActions.newTab(t.newTab),s.submitFloatingLink(e)&&(b==null||b.preventDefault()))},c=t.url!==""&&t.text!=="",{appBridge:m}=s.getPluginOptions(e,s.ELEMENT_LINK);return s.useHotkeys("enter",u,{enableOnFormTags:["INPUT"]},[]),{state:t,onTextChange:r,onUrlChange:l,onToggleTab:i,onCancel:d,onSave:u,hasValues:c,isValidUrlOrEmpty:le,appBridge:m}},$a=()=>a.jsx(qt,{...Va(),testId:"floating-link-insert"}),tn={placement:"bottom-start",strategy:"absolute",middleware:[s.offset(12),s.flip({padding:12,fallbackPlacements:["bottom-end","top-start","top-end"]})]},Wa=()=>{const e=s.useFloatingLinkInsertState({floatingOptions:tn}),{props:t,ref:n,hidden:r}=s.useFloatingLinkInsert(e),l=s.useFloatingLinkEditState({floatingOptions:tn}),{props:i,ref:d,editButtonProps:u,unlinkButtonProps:c}=s.useFloatingLinkEdit(l);if(r)return null;const m=a.jsx($a,{}),b=l.isEditing?m:a.jsx(Oa,{editButtonProps:u,unlinkButtonProps:c});return a.jsxs(a.Fragment,{children:[e.isOpen&&!l.isOpen&&me.createPortal(a.jsx("div",{"data-is-underlay":!0,ref:n,...t,style:{...t.style,...S[v.p]},children:m}),document.body),l.isOpen&&me.createPortal(a.jsx("div",{"data-is-underlay":!0,ref:d,...i,style:{...i.style,...S[v.p]},children:b}),document.body)]})},nn=h.forwardRef((e,t)=>{const n=s.useEditorRef(),r=s.useLinkToolbarButtonState(),{props:l}=s.useLinkToolbarButton(r);return a.jsx(s.ToolbarButton,{onMouseDown:i=>{i.preventDefault(),s.focusEditor(n,n.selection??n.prevSelection??void 0)},ref:t,...l,...e,children:a.jsx(s.IconStylingWrapper,{icon:a.jsx(T.IconLink,{size:16})})})});nn.displayName="LinkToolbarButton";const qa=({id:e,editorId:t})=>{const n=s.useEditorState(s.useEventPlateId(t)),r=!!s.isRangeInSameBlock(n,{at:n.selection});return a.jsx("div",{"data-plugin-id":e,children:a.jsx(nn,{disabled:!r,tooltip:s.getTooltip(r?`Link
9
- ${s.getHotkeyByPlatform("Ctrl+K")}`:"Links can only be set for a single text block.")})})},Ga=e=>{var d,u;const{attributes:t,children:n}=e,{styles:r}=s.useRichTextEditorContext(),l=e.element.url||((u=(d=e.element.chosenLink)==null?void 0:d.searchResult)==null?void 0:u.link)||"",i=e.element.target||"_self";return a.jsx("a",{...t,href:l,target:i,style:r[ie],children:n})};class Ka extends s.MarkupElement{constructor(t=s.ELEMENT_LINK,n=Ga){super(t,n)}}const an=e=>s.createPluginFactory({...s.createLinkPlugin(),renderAfterEditable:Wa,options:{isUrl:pe,rangeBeforeOptions:{matchString:" ",skipInvalid:!0,afterMatch:!0},triggerFloatingLinkHotkeys:"meta+k, ctrl+k",keepSelectedTextOnPaste:!0,appBridge:e}})();class rn extends s.Plugin{constructor({styles:n=S[ie],...r}){super(ie,{button:qa,markupElement:new Ka,...r});L(this,"styles",{});L(this,"appBridge");this.styles=n,this.appBridge=r.appBridge}plugins(){return[an(this.appBridge)]}}const ja="breakAfterColumn",sn="normal";class Qa extends s.Plugin{constructor(n){super("break-after-plugin",{button:s.ColumnBreakButton,...n});L(this,"columns");L(this,"gap");L(this,"customClass");this.columns=(n==null?void 0:n.columns)??1,this.gap=(n==null?void 0:n.gap)??sn,this.customClass=Zt(this.columns)}plugins(){return[s.createColumnBreakPlugin(this.columns,this.gap,this.customClass)]}}const Xa="textstyle-custom1-plugin";class ln extends s.Plugin{constructor({styles:n=S.custom1,...r}={}){super(v.custom1,{label:"Custom 1",markupElement:new Ya,...r});L(this,"styles",{});this.styles=n}plugins(){return[Ja(this.styles)]}}class Ya extends s.MarkupElement{constructor(t=Xa,n=on){super(t,n)}}const on=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("p",{...t,style:r,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),children:n})},Ja=e=>s.createPluginFactory({key:v.custom1,isElement:!0,deserializeHtml:{rules:[{validClassName:v.custom1}]}})({component:t=>a.jsx(on,{...t,styles:e})}),Za="textstyle-custom2-plugin";class dn extends s.Plugin{constructor({styles:n=S.custom2,...r}={}){super(v.custom2,{label:"Custom 2",markupElement:new Ra,...r});L(this,"styles",{});this.styles=n}plugins(){return[er(this.styles)]}}class Ra extends s.MarkupElement{constructor(t=Za,n=cn){super(t,n)}}const cn=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("p",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},er=e=>s.createPluginFactory({key:v.custom2,isElement:!0,deserializeHtml:{rules:[{validClassName:v.custom2}]}})({component:t=>a.jsx(cn,{...t,styles:e})}),tr="textstyle-custom3-plugin";class un extends s.Plugin{constructor({styles:n=S.custom3,...r}={}){super(s.TextStyles.custom3,{label:"Custom 3",markupElement:new nr,...r});L(this,"styles",{});this.styles=n}plugins(){return[ar(this.styles)]}}class nr extends s.MarkupElement{constructor(t=tr,n=gn){super(t,n)}}const gn=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("p",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},ar=e=>s.createPluginFactory({key:s.TextStyles.custom3,isElement:!0,deserializeHtml:{rules:[{validClassName:s.TextStyles.custom3}]}})({component:t=>a.jsx(gn,{...t,styles:e})}),rr="textstyle-heading1-plugin";class hn extends s.Plugin{constructor({styles:n=S.heading1,...r}={}){super(v.heading1,{label:"Heading 1",markupElement:new sr,...r});L(this,"styles",{});this.styles=n}plugins(){return[lr(this.styles)]}}class sr extends s.MarkupElement{constructor(t=rr,n=We){super(t,n)}}const We=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("h1",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},lr=e=>s.createPluginFactory({key:v.heading1,isElement:!0,component:We,deserializeHtml:{rules:[{validNodeName:["h1","H1"]}]}})({component:t=>a.jsx(We,{...t,styles:e})}),or="textstyle-heading2-plugin";class fn extends s.Plugin{constructor({styles:n=S.heading2,...r}={}){super(v.heading2,{label:"Heading 2",markupElement:new ir,...r});L(this,"styles",{});this.styles=n}plugins(){return[dr(this.styles)]}}class ir extends s.MarkupElement{constructor(t=or,n=qe){super(t,n)}}const qe=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("h2",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},dr=e=>s.createPluginFactory({key:v.heading2,isElement:!0,component:qe,deserializeHtml:{rules:[{validNodeName:["h2","H2"]}]}})({component:t=>a.jsx(qe,{...t,styles:e})}),cr="textstyle-heading3-plugin";class mn extends s.Plugin{constructor({styles:n=S.heading3,...r}={}){super(v.heading3,{label:"Heading 3",markupElement:new ur,...r});L(this,"styles",{});this.styles=n}plugins(){return[gr(this.styles)]}}class ur extends s.MarkupElement{constructor(t=cr,n=Ge){super(t,n)}}const Ge=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("h3",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},gr=e=>s.createPluginFactory({key:v.heading3,isElement:!0,component:Ge,deserializeHtml:{rules:[{validNodeName:["h3","H3"]}]}})({component:t=>a.jsx(Ge,{...t,styles:e})}),hr="textstyle-heading4-plugin";class wn extends s.Plugin{constructor({styles:n=S.heading4,...r}={}){super(v.heading4,{label:"Heading 4",markupElement:new fr,...r});L(this,"styles",{});this.styles=n}plugins(){return[mr(this.styles)]}}class fr extends s.MarkupElement{constructor(t=hr,n=Ke){super(t,n)}}const Ke=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("h4",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},mr=e=>s.createPluginFactory({key:v.heading4,isElement:!0,component:Ke,deserializeHtml:{rules:[{validNodeName:["h4","H4"]}]}})({component:t=>a.jsx(Ke,{...t,styles:e})}),wr="textstyle-imageCaption-plugin";class yn extends s.Plugin{constructor({styles:n=S.imageCaption,...r}={}){super(v.imageCaption,{label:"Image Caption",markupElement:new yr,...r});L(this,"styles",{});this.styles=n}plugins(){return[br(this.styles)]}}class yr extends s.MarkupElement{constructor(t=wr,n=je){super(t,n)}}const je=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("p",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},br=e=>s.createPluginFactory({key:v.imageCaption,isElement:!0,component:je,deserializeHtml:{rules:[{validClassName:v.imageCaption}]}})({component:t=>a.jsx(je,{...t,styles:e})}),pr="textstyle-imageTitle-plugin";class bn extends s.Plugin{constructor({styles:n=S.imageTitle,...r}={}){super(v.imageTitle,{label:"Image Title",markupElement:new vr,...r});L(this,"styles",{});this.styles=n}plugins(){return[Cr(this.styles)]}}class vr extends s.MarkupElement{constructor(t=pr,n=Qe){super(t,n)}}const Qe=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("p",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},Cr=e=>s.createPluginFactory({key:v.imageTitle,isElement:!0,component:Qe,deserializeHtml:{rules:[{validClassName:v.imageTitle}]}})({component:t=>a.jsx(Qe,{...t,styles:e})});class pn extends s.Plugin{constructor({styles:n=S.p,...r}={}){super(v.p,{markupElement:new Cn,label:"Body Text",...r});L(this,"styles",{});this.styles=n}plugins(){return[kn(this.styles)]}}const vn="tw-m-0 tw-px-0 tw-py-0",ke=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align,i=s.merge([l&&s.alignmentClassnames[l],vn,s.getColumnBreakClasses(e)]);return a.jsx("p",{...t,className:i,style:r,children:n})};class Cn extends s.MarkupElement{constructor(t=v.p,n=ke){super(t,n)}}const kn=e=>s.createPluginFactory({...s.createParagraphPlugin(),key:v.p,isElement:!0,component:ke})({component:t=>a.jsx(ke,{...t,styles:e})}),kr="textstyle-quote-plugin";class xn extends s.Plugin{constructor({styles:n=S.quote,...r}={}){super(v.quote,{label:"Quote",markupElement:new xr,...r});L(this,"styles",{});this.styles=n}plugins(){return[Pn(this.styles)]}}class xr extends s.MarkupElement{constructor(t=kr,n=xe){super(t,n)}}const xe=({element:e,attributes:t,children:n,styles:r})=>{const l=e.align;return a.jsx("blockquote",{...t,className:s.merge([l&&s.alignmentClassnames[l],s.getColumnBreakClasses(e)]),style:r,children:n})},Pn=e=>s.createPluginFactory({key:v.quote,isElement:!0,component:xe,deserializeHtml:{rules:[{validNodeName:["blockquote","BLOCKQUOTE"]}]}})({component:t=>a.jsx(xe,{...t,styles:e})}),Xe=[new hn,new fn,new mn,new wn,new ln,new dn,new un,new xn,new pn],de=[v.heading1,v.heading2,v.heading3,v.heading4,v.custom1,v.custom2,v.custom3,v.quote,v.p],Pr=[...Xe,new yn,new bn],Tr=[...de,v.imageCaption,v.imageTitle],Ir=e=>new s.PluginComposer().setPlugin(new s.SoftBreakPlugin,new s.TextStylePlugin({textStyles:Xe})).setPlugin([new s.BoldPlugin,new s.ItalicPlugin,new s.UnderlinePlugin,new s.StrikethroughPlugin,new rn({appBridge:e}),new Qt({appBridge:e}),new s.CodePlugin],[new s.AlignLeftPlugin({validTypes:de}),new s.AlignCenterPlugin({validTypes:de}),new s.AlignRightPlugin({validTypes:de}),new s.AlignJustifyPlugin({validTypes:de}),new s.UnorderedListPlugin,new s.CheckboxListPlugin,new s.OrderedListPlugin,new s.ResetFormattingPlugin,new s.AutoformatPlugin]),Er="--f-theme-settings-",Sr=e=>{const t=e!=null&&e.id?`hasBackground${e.id}`:"hasBackground",n=e!=null&&e.id?`backgroundColor${e.id}`:"backgroundColor",r=e!=null&&e.preventDefaultColor?void 0:(e==null?void 0:e.defaultColor)||Un,l=e!=null&&e.label?e.label:"Background",i=e!=null&&e.switchLabel?e.switchLabel:void 0;return{id:t,label:l,type:"switch",switchLabel:i,defaultValue:!!(e!=null&&e.defaultValue),on:[{id:n,defaultValue:r,type:"colorInput"}]}},Br=e=>{const t=e!=null&&e.id?`hasBorder_${e.id}`:"hasBorder",n=e!=null&&e.id?`borderSelection_${e.id}`:"borderSelection",r=e!=null&&e.id?`borderStyle_${e.id}`:"borderStyle",l=e!=null&&e.id?`borderWidth_${e.id}`:"borderWidth",i=e!=null&&e.id?`borderColor_${e.id}`:"borderColor",d=(e==null?void 0:e.defaultColor)||lt,u=e!=null&&e.switchLabel?e.switchLabel:void 0;return{id:t,label:"Border",type:"switch",switchLabel:u,defaultValue:!!(e!=null&&e.defaultValue),on:[{id:n,type:"multiInput",layout:g.MultiInputLayout.Columns,lastItemFullWidth:!0,blocks:[{id:r,type:"dropdown",defaultValue:V.Solid,choices:[{value:V.Solid,label:V.Solid},{value:V.Dotted,label:V.Dotted},{value:V.Dashed,label:V.Dashed}]},{id:l,type:"input",defaultValue:Hn,rules:[g.numericalOrPixelRule,g.minimumNumericalOrPixelRule(0),g.maximumNumericalOrPixelOrAutoRule(500)],placeholder:"e.g. 3px",onChange:c=>g.appendUnit(c,l)},{id:i,type:"colorInput",defaultValue:d}]}],off:[]}},Ye=(e,t=G.None)=>({id:e,type:"segmentedControls",defaultValue:t,choices:[{value:G.None,label:"None"},{value:G.Small,label:"S"},{value:G.Medium,label:"M"},{value:G.Large,label:"L"}]}),Nr=e=>{const t=e!=null&&e.id?`hasRadius_${e.id}`:"hasRadius",n=e!=null&&e.id?`radiusValue_${e.id}`:"radiusValue",r=e!=null&&e.id?`radiusChoice_${e.id}`:"radiusChoice",l=(e==null?void 0:e.defaultRadius)||G.None;return{id:t,label:"Corner radius",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"Determining how rounded the corners are.",show:i=>{var d;return e!=null&&e.dependentSettingId?!!((d=i.getBlock(e.dependentSettingId))!=null&&d.value):!0},onChange:i=>g.presetCustomValue(i,r,n,(e==null?void 0:e.radiusStyleMap)||Y),on:[{id:n,type:"input",placeholder:"e.g. 10px",rules:[g.numericalOrPixelRule],onChange:i=>g.appendUnit(i,n)}],off:[Ye(r,l)]}},Ar=e=>{const t=e!=null&&e.id?`hasExtendedCustomRadius_${e.id}`:"hasExtendedCustomRadius",n=e!=null&&e.id?`extendedRadiusValue_${e.id}`:"extendedRadiusValue",r=e!=null&&e.id?`extendedRadiusChoice_${e.id}`:"extendedRadiusChoice",l=e!=null&&e.id?`extendedRadiusTopLeft_${e.id}`:"extendedRadiusTopLeft",i=e!=null&&e.id?`extendedRadiusTopRight_${e.id}`:"extendedRadiusTopRight",d=e!=null&&e.id?`extendedRadiusBottomLeft_${e.id}`:"extendedRadiusBottomLeft",u=e!=null&&e.id?`extendedRadiusBottomRight_${e.id}`:"extendedRadiusBottomRight";return{id:t,label:"Corner radius",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"Determining how rounded the corners are.",show:c=>{var m;return e!=null&&e.dependentSettingId?!!((m=c.getBlock(e.dependentSettingId))!=null&&m.value):!0},onChange:c=>{g.presetCustomValue(c,r,l,Y),g.presetCustomValue(c,r,i,Y),g.presetCustomValue(c,r,d,Y),g.presetCustomValue(c,r,u,Y)},on:[{id:n,type:"multiInput",layout:g.MultiInputLayout.Columns,blocks:[{id:l,type:"input",label:"Top Left",rules:[g.numericalOrPixelRule],onChange:c=>g.appendUnit(c,l)},{id:i,type:"input",label:"Top Right",rules:[g.numericalOrPixelRule],onChange:c=>g.appendUnit(c,i)},{id:d,type:"input",label:"Bottom Left",rules:[g.numericalOrPixelRule],onChange:c=>g.appendUnit(c,d)},{id:u,type:"input",label:"Bottom Right",rules:[g.numericalOrPixelRule],onChange:c=>g.appendUnit(c,u)}]}],off:[Ye(r,e==null?void 0:e.defaultValue)]}},Lr=e=>{const t=e!=null&&e.id?e.id:"hasCustomSpacing",n=e!=null&&e.dependentSettingId?e.dependentSettingId:"columns",r=e!=null&&e.spacingChoiceId?e.spacingChoiceId:"spacingChoice",l=e!=null&&e.spacingCustomId?e.spacingCustomId:"spacingCustom",i=e!=null&&e.defaultValueChoices?e.defaultValueChoices:ee.M;return{id:t,type:"switch",defaultValue:!1,switchLabel:"Custom",label:"Gutter",info:"An official nerds term for ‘gap’",onChange:d=>g.presetCustomValue(d,r,l,it),show:d=>{var u;return((u=d.getBlock(n))==null?void 0:u.value)!=="1"},on:[{id:l,type:"input",rules:[g.numericalOrPixelRule],onChange:d=>g.appendUnit(d,l)}],off:[{id:r,type:"slider",defaultValue:i,choices:[{value:ee.Auto,label:"Auto"},{value:ee.S,label:"S"},{value:ee.M,label:"M"},{value:ee.L,label:"L"}]}]}},Je=e=>({id:e,type:"segmentedControls",defaultValue:Z.None,choices:[{value:Z.None,label:"None"},{value:Z.Small,label:"S"},{value:Z.Medium,label:"M"},{value:Z.Large,label:"L"}]}),Dr=e=>{const t=e!=null&&e.id?`hasCustomMarginValue_${e==null?void 0:e.id}`:"hasCustomMarginValue",n=e!=null&&e.id?`marginValue_${e==null?void 0:e.id}`:"marginValue",r=e!=null&&e.id?`marginChoice_${e==null?void 0:e.id}`:"marginChoice";return{id:t,label:"Margin",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more space",onChange:l=>g.presetCustomValue(l,r,n,(e==null?void 0:e.marginStyleMap)||ae),on:[{id:n,type:"input",placeholder:ue,rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)],onChange:l=>g.appendUnit(l,n)}],off:[Je(r)]}},Mr=e=>{const t=e!=null&&e.id?`hasExtendedCustomMargin_${e==null?void 0:e.id}`:"hasExtendedCustomMargin",n=e!=null&&e.id?`extendedMarginValues_${e==null?void 0:e.id}`:"extendedMarginValues",r=e!=null&&e.id?`extendedMarginChoice_${e==null?void 0:e.id}`:"extendedMarginChoice",l=e!=null&&e.id?`extendedMarginTop_${e==null?void 0:e.id}`:"extendedMarginTop",i=e!=null&&e.id?`extendedMarginLeft_${e==null?void 0:e.id}`:"extendedMarginLeft",d=e!=null&&e.id?`extendedMarginRight_${e==null?void 0:e.id}`:"extendedMarginRight",u=e!=null&&e.id?`extendedMarginBottom_${e==null?void 0:e.id}`:"extendedMarginBottom";return{id:t,label:"Margin",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:c=>{g.presetCustomValue(c,r,l,ae),g.presetCustomValue(c,r,i,ae),g.presetCustomValue(c,r,d,ae),g.presetCustomValue(c,r,u,ae)},on:[{id:n,type:"multiInput",layout:g.MultiInputLayout.Spider,blocks:[{id:l,type:"input",label:"Top",placeholder:ue,onChange:c=>g.appendUnit(c,l),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:i,type:"input",label:"Left",placeholder:ue,onChange:c=>g.appendUnit(c,i),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:d,type:"input",label:"Right",placeholder:ue,onChange:c=>g.appendUnit(c,d),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:u,type:"input",label:"Bottom",placeholder:ue,onChange:c=>g.appendUnit(c,u),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]}]}],off:[Je(r)]}},Ze=e=>({id:e,type:"segmentedControls",defaultValue:J.Small,choices:[{value:J.None,label:"None"},{value:J.Small,label:"S"},{value:J.Medium,label:"M"},{value:J.Large,label:"L"}]}),Fr=e=>{const t=e!=null&&e.id?`hasCustomPaddingValue_${e==null?void 0:e.id}`:"hasCustomPaddingValue",n=e!=null&&e.id?`paddingValue_${e==null?void 0:e.id}`:"paddingValue",r=e!=null&&e.id?`paddingChoice_${e==null?void 0:e.id}`:"paddingChoice";return{id:t,label:"Padding",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:l=>g.presetCustomValue(l,r,n,(e==null?void 0:e.paddingStyleMap)||ne),on:[{id:n,type:"input",placeholder:ce,rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)],onChange:l=>g.appendUnit(l,n)}],off:[Ze(r)]}},Or=e=>{const t=e!=null&&e.id?`hasExtendedCustomPadding_${e==null?void 0:e.id}`:"hasExtendedCustomPadding",n=e!=null&&e.id?`extendedPaddingValues_${e==null?void 0:e.id}`:"extendedPaddingValues",r=e!=null&&e.id?`extendedPaddingChoice_${e==null?void 0:e.id}`:"extendedPaddingChoice",l=e!=null&&e.id?`extendedPaddingTop_${e==null?void 0:e.id}`:"extendedPaddingTop",i=e!=null&&e.id?`extendedPaddingLeft_${e==null?void 0:e.id}`:"extendedPaddingLeft",d=e!=null&&e.id?`extendedPaddingRight_${e==null?void 0:e.id}`:"extendedPaddingRight",u=e!=null&&e.id?`extendedPaddingBottom_${e==null?void 0:e.id}`:"extendedPaddingBottom";return{id:t,label:"Padding",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:c=>{g.presetCustomValue(c,r,l,ne),g.presetCustomValue(c,r,i,ne),g.presetCustomValue(c,r,d,ne),g.presetCustomValue(c,r,u,ne)},on:[{id:n,type:"multiInput",layout:g.MultiInputLayout.Spider,blocks:[{id:l,type:"input",label:"Top",placeholder:ce,onChange:c=>g.appendUnit(c,l),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:i,type:"input",label:"Left",placeholder:ce,onChange:c=>g.appendUnit(c,i),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:d,type:"input",label:"Right",placeholder:ce,onChange:c=>g.appendUnit(c,d),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]},{id:u,type:"input",label:"Bottom",placeholder:ce,onChange:c=>g.appendUnit(c,u),rules:[g.numericalOrPixelRule,g.maximumNumericalOrPixelOrAutoRule(500)]}]}],off:[Ze(r)]}},_r=e=>{const t=Re(e==null?void 0:e.globalControlId);return{id:e!=null&&e.id?e.id:"downloadable",type:"switch",defaultValue:!1,label:"Downloadable",show:n=>{var r;return((r=n.getBlock(t))==null?void 0:r.value)===R.Custom}}},Re=e=>e||"security",Ur=e=>[{id:Re(e),type:"segmentedControls",defaultValue:R.Global,choices:[{value:R.Global,label:"Global Settings"},{value:R.Custom,label:"Custom"}]},{id:"globalSettingsInfo",type:"notification",footer:g.createFooter({label:"Change global settings [here].",replace:{here:{event:"general-settings.open"}}})}];var Tn=(e=>(e.Main="main",e.Basics="basics",e.Layout="layout",e.Style="style",e.Security="security",e.Targets="targets",e))(Tn||{});const Hr=e=>e,zr=e=>e;o.AllTextStylePlugins=Pr,o.AllTextStyles=Tr,o.AttachmentOperationsProvider=$n,o.Attachments=bt,o.AttachmentsProvider=ht,o.AttachmentsToolbarButton=Ct,o.BUTTON_PLUGIN=Kt,o.BlockButtonStyles=Ce,o.BlockInjectButton=Sn,o.BlockItemWrapper=Bt,o.BlockStyles=S,o.BorderStyle=V,o.BreakAfterPlugin=Qa,o.ButtonPlugin=Qt,o.Custom1Plugin=ln,o.Custom2Plugin=dn,o.Custom3Plugin=un,o.DEFAULT_ATTACHMENTS_BUTTON_ID=vt,o.DEFAULT_DRAGGING_TOOLTIP=xt,o.DEFAULT_DRAG_TOOLTIP=kt,o.DEFAULT_MENU_BUTTON_ID=Le,o.DownloadButton=Jn,o.DragHandleToolbarButton=Pt,o.DragPreviewContextProvider=dt,o.ELEMENT_BUTTON=E,o.FlyoutToolbarButton=Tt,o.GAP_DEFAULT=sn,o.GutterSpacing=ee,o.Heading1Plugin=hn,o.Heading2Plugin=fn,o.Heading3Plugin=mn,o.Heading4Plugin=wn,o.ImageCaptionPlugin=yn,o.ImageTitlePlugin=bn,o.KEY_ELEMENT_BREAK_AFTER_COLUMN=ja,o.LinkInput=Wt,o.LinkPlugin=rn,o.LinkSelector=$t,o.Margin=Z,o.MenuToolbarButton=It,o.MultiFlyoutContextProvider=ct,o.PARAGRAPH_CLASSES=vn,o.Padding=J,o.ParagraphMarkupElement=Cn,o.ParagraphMarkupElementNode=ke,o.ParagraphPlugin=pn,o.QuoteMarkupElementNode=xe,o.QuotePlugin=xn,o.Radius=G,o.RichTextEditor=Fa,o.Sections=Tn,o.Security=R,o.THEME_PREFIX=Er,o.TextStylePluginsWithoutImage=Xe,o.TextStyles=v,o.TextStylesWithoutImage=de,o.Toolbar=St,o.addHttps=be,o.borderStyleMap=ot,o.convertToRteValue=ea,o.createButtonNode=_t,o.createButtonPlugin=jt,o.createLinkPlugin=an,o.createParagraphPlugin=kn,o.createQuotePlugin=Pn,o.customCoordinatesGetterFactory=mt,o.defineBlock=Hr,o.defineSettings=zr,o.getBackgroundColorStyles=_n,o.getBackgroundSettings=Sr,o.getBorderRadiusSettings=Nr,o.getBorderRadiusSlider=Ye,o.getBorderSettings=Br,o.getBorderStyles=zn,o.getDefaultPluginsWithLinkChooser=Ir,o.getExtendedBorderRadiusSettings=Ar,o.getGutterSettings=Lr,o.getLegacyUrl=sa,o.getLinkFromEditor=oa,o.getMarginExtendedSettings=Mr,o.getMarginSettings=Dr,o.getMarginSlider=Je,o.getPaddingExtendedSettings=Or,o.getPaddingSettings=Fr,o.getPaddingSlider=Ze,o.getRadiusStyles=Vn,o.getReadableColor=Fn,o.getSecurityDownloadableSetting=_r,o.getSecurityGlobalControlId=Re,o.getSecurityGlobalControlSetting=Ur,o.getUrl=la,o.getUrlFromEditor=Ot,o.getUrlFromLinkOrLegacyLink=Fe,o.gutterSpacingStyleMap=it,o.hasRichTextValue=Nt,o.insertButton=Dt,o.isDark=Nn,o.isDownloadable=ta,o.isValidUrl=pe,o.isValidUrlOrEmpty=le,o.joinClassNames=z,o.mapAppBridgeColorPaletteToFonduePalette=At,o.mapAppBridgeColorPalettesToFonduePalettes=na,o.marginStyleMap=ae,o.moveItemInArray=On,o.paddingStyleMap=ne,o.radiusStyleMap=Y,o.relativeUrlRegex=Oe,o.setAlpha=Dn,o.submitFloatingButton=_e,o.toColorObject=Mn,o.toHex8String=An,o.toHexString=Ln,o.toRgbaString=Ee,o.toShortRgba=X,o.triggerFloatingButton=Ut,o.triggerFloatingButtonEdit=ve,o.triggerFloatingButtonInsert=He,o.unwrapButton=oe,o.upsertButton=Mt,o.upsertButtonText=Ue,o.useAttachmentOperations=Ne,o.useAttachments=gt,o.useAttachmentsContext=ft,o.useDndSensors=Kn,o.useDragPreviewContext=re,o.useMultiFlyoutContext=ut,o.useMultiFlyoutState=we,o.withAttachmentsProvider=Wn,o.withButton=Lt,o.wrapButton=Ft,Object.keys(g).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:()=>g[e]})}),Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
6
+ ${y?"tw-pl-7 ":"tw-pl-12 "}
7
+ ${p?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover ":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover "}`,onClick:()=>n(t.permanentLink),children:o.jsxs("div",{className:"tw-flex tw-flex-1 tw-space-x-1 tw-items-center tw-h-6",children:[y&&o.jsx("button",{type:"button",className:"tw-flex tw-items-center tw-justify-center -tw-mr-2 tw-pr-3.5 tw-pt-1.5 tw-pb-1.5 tw-pl-3.5 tw-cursor-pointer",onClick:()=>c(!l),onKeyDown:m=>m.key==="Enter"&&m.stopPropagation(),children:o.jsx("div",{className:`tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong
8
+ ${l?"tw-rotate-90 ":""}`})}),o.jsx("span",{className:"tw-text-s",children:t.title}),o.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Page"})]},t.id)}),l&&u.length>0&&u.map(m=>o.jsx(wo,{section:m,selectedUrl:e,onSelectUrl:n},m.id))]})},bo=({documentId:t,selectedUrl:e,onSelectUrl:n,itemsToExpandInitially:s,getDocumentSectionsByDocumentPageId:r,getDocumentPagesByDocumentId:l})=>{const[c,u]=g.useState([]),[d,p]=g.useState(!0),y=[...c.values()],m=!d&&y.length>0;return g.useEffect(()=>{l(t).then(w=>{const k=w.filter(x=>!!x.category).sort((x,L)=>x.category.sort===L.category.sort?x.sort-L.sort:x.category.sort-L.category.sort),b=w.filter(x=>!x.category).sort((x,L)=>x.sort-L.sort);u([...k,...b])}).finally(()=>{p(!1)})},[]),d?o.jsx(ze,{}):m?o.jsx(o.Fragment,{children:y.map(w=>o.jsx(yo,{page:w,selectedUrl:e,onSelectUrl:n,itemsToExpandInitially:s,getDocumentSectionsByDocumentPageId:r},w.id))}):o.jsx("div",{className:"tw-h-10 tw-flex tw-items-center tw-pr-2.5 tw-pl-7 tw-leading-5 tw-text-s tw-text-text-weak",children:"This document does not contain any pages."})},vo=({document:t,selectedUrl:e,onSelectUrl:n,itemsToExpandInitially:s,getDocumentSectionsByDocumentPageId:r,getDocumentPagesByDocumentId:l})=>{const[c,u]=g.useState(t.id===s.documentId),d=t.permanentLink===e;return g.useEffect(()=>{t.id===s.documentId&&u(!0)},[s,t.id]),o.jsxs(o.Fragment,{children:[o.jsxs("button",{type:"button","data-test-id":"internal-link-selector-document-link",className:`tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-py-2 tw-pr-2.5 tw-leading-5 tw-cursor-pointer tw-w-full ${d?"tw-bg-box-selected-strong tw-text-box-selected-strong-inverse hover:tw-bg-box-selected-strong-hover:hover hover:tw-text-box-selected-strong-inverse-hover:hover":"hover:tw-bg-box-neutral-hover hover:tw-text-box-neutral-inverse-hover"}`,onClick:()=>n(t.permanentLink),children:[o.jsx("button",{type:"button",tabIndex:0,"data-test-id":"tree-item-toggle",className:"tw-flex tw-items-center tw-justify-center -tw-mr-2 tw-pr-3.5 tw-pt-1.5 tw-pb-1.5 tw-pl-3.5 tw-cursor-pointer",onClick:()=>u(!c),onKeyDown:p=>p.key==="Enter"&&p.stopPropagation(),children:o.jsx("div",{className:`tw-transition-transform tw-w-0 tw-h-0 tw-font-normal tw-border-t-4 tw-border-t-transparent tw-border-b-4 tw-border-b-transparent tw-border-l-4 tw-border-l-x-strong ${c?"tw-rotate-90":""}`})}),o.jsx(T.IconColorFan,{size:16}),o.jsx("span",{className:"tw-text-s",children:t.title}),o.jsx("span",{className:"tw-flex-auto tw-font-sans tw-text-xs tw-text-right",children:"Document"})]}),c&&o.jsx(bo,{documentId:t.id,selectedUrl:e,onSelectUrl:n,itemsToExpandInitially:s,getDocumentSectionsByDocumentPageId:r,getDocumentPagesByDocumentId:l})]})},Co=({selectedUrl:t,onSelectUrl:e,getAllDocuments:n,getDocumentPagesByDocumentId:s,getDocumentSectionsByDocumentPageId:r})=>{const[l,c]=g.useState(!0),[u,d]=g.useState([]),[p,y]=g.useState({documentId:void 0,pageId:void 0});g.useEffect(()=>{t&&u.length>0&&m().then(w=>{y(w)})},[u.length]),g.useEffect(()=>{n().then(w=>{d(w)}).finally(()=>{c(!1)})},[]);const m=async()=>{const w={documentId:void 0,pageId:void 0};if(u.find(b=>b.permanentLink===t))return w;for(const b of u){const x=await s(b.id);if(!!x.find(D=>D.permanentLink===t))return w.documentId=b.id,w;for(const D of x){const M=await r(D.id);if(!!He(M).find(z=>z.permanentLink===t))return w.documentId=b.id,w.pageId=D.id,w}}return w};return l?o.jsx(ze,{}):o.jsx(o.Fragment,{children:u.map(w=>o.jsx(vo,{document:w,selectedUrl:t,onSelectUrl:e,itemsToExpandInitially:p,getDocumentSectionsByDocumentPageId:r,getDocumentPagesByDocumentId:s},w.id))})},Ve=({url:t,onUrlChange:e,buttonSize:n="medium",getAllDocuments:s,getDocumentPagesByDocumentId:r,getDocumentSectionsByDocumentPageId:l})=>{const[c,u]=g.useState(!1),[d,p]=g.useState(t),y=b=>{p(b)},m=b=>{b.key==="Enter"&&(b.preventDefault(),w())};g.useEffect(()=>{t&&!d&&p(t)},[t,d]);const w=()=>{e?.(d),u(!1)},k={onOpenAutoFocus:()=>{},showUnderlay:!0,"data-is-underlay":!0,minWidth:"800px"};return o.jsx("div",{onPointerDownCapture:b=>{b.stopPropagation(),b.preventDefault()},onFocusCapture:b=>{b.stopPropagation(),b.preventDefault()},"data-test-id":"internal-link-selector",onKeyDown:m,children:o.jsxs(f.Dialog.Root,{modal:!0,open:c,onOpenChange:u,children:[o.jsx(f.Dialog.Trigger,{asChild:!0,children:o.jsxs(f.Button,{size:n,emphasis:"default",children:[o.jsx(T.IconLink,{size:"20"}),"Internal link"]})}),o.jsxs(f.Dialog.Content,{...k,children:[o.jsx(f.Dialog.Header,{children:o.jsx(f.Dialog.Title,{children:"Select internal link"})}),o.jsx(f.Dialog.Body,{padding:"none",children:o.jsx(f.ScrollArea,{padding:"compact",children:o.jsx(Co,{selectedUrl:d,onSelectUrl:y,getAllDocuments:s,getDocumentPagesByDocumentId:r,getDocumentSectionsByDocumentPageId:l})})}),o.jsxs(f.Dialog.Footer,{children:[o.jsx(f.Button,{size:n,emphasis:"default",onPress:()=>u(!1),children:"Cancel"}),o.jsx(f.Button,{size:n,disabled:!d,emphasis:"strong",onPress:()=>w(),children:"Choose"})]})]})]})})},$e=({onUrlChange:t,onToggleTab:e,isValidUrlOrEmpty:n,appBridge:s,placeholder:r,newTab:l,url:c="",required:u,info:d,label:p,buttonSize:y,hideInternalLinkButton:m})=>{const w=n?n(c):st(c);return o.jsxs("div",{"data-test-id":"link-input",children:[o.jsx(V.FormControl,{label:{children:p,htmlFor:"url",required:u,tooltip:d?{content:d,position:"top"}:void 0},children:o.jsx(f.TextInput,{"data-test-id":"text-input",id:"url",value:c,onChange:k=>t?.(k.target.value),placeholder:r??"https://example.com"})}),!w&&o.jsx("div",{className:"tw-text-text-negative tw-mt-1 tw-text-s",children:"Please enter a valid URL."}),!m&&o.jsx("div",{className:"tw-mt-3",children:o.jsx(Ve,{url:c,onUrlChange:t,buttonSize:y??"medium",getAllDocuments:()=>s.getAllDocuments(),getDocumentPagesByDocumentId:k=>s.getDocumentPagesByDocumentId(k),getDocumentSectionsByDocumentPageId:k=>s.getDocumentSectionsByDocumentPageId(k)})}),o.jsxs("div",{className:"tw-mt-3 tw-flex tw-items-center tw-gap-1.5",children:[o.jsx(f.Checkbox,{id:"new-tab",value:l,onChange:()=>e?.(!l)}),o.jsx(f.Label,{id:"new-tab-label",htmlFor:"new-tab",className:"tw-whitespace-nowrap",children:"Open in new tab"})]})]})},We=({state:t,onTextChange:e,onUrlChange:n,onToggleTab:s,onCancel:r,onSave:l,isValidUrlOrEmpty:c,hasValues:u,testId:d,appBridge:p,children:y})=>o.jsxs(a.FloatingModalWrapper,{"data-test-id":d,padding:"28px",minWidth:"400px",children:[o.jsx(V.FormControl,{label:{children:"Text",htmlFor:"linkText",required:!0},children:o.jsx(f.TextInput,{id:"linkText",value:t.text,placeholder:"Link Text",onChange:m=>e(m.target.value)})}),y,o.jsx("div",{className:"tw-mt-5",children:o.jsx($e,{url:t.url,newTab:t.newTab,onUrlChange:n,onToggleTab:s,isValidUrlOrEmpty:c,appBridge:p})}),o.jsx("div",{className:"tw-mt-3",children:o.jsxs("div",{className:"tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10",children:[o.jsx(f.Button,{"data-test-id":"button",onPress:r,size:"medium",emphasis:"default",children:"Cancel"}),o.jsxs(f.Button,{"data-test-id":"button",onPress:l,size:"medium",disabled:!c(t?.url)||!u,children:[o.jsx(T.IconCheckMark,{size:"20"}),"Save"]})]})})]}),ko=t=>{const e=a.getAboveNode(t,{match:{type:I}});return Array.isArray(e)&&e[0]?.buttonStyle||"primary"},xo={url:"",text:"",buttonStyle:"primary",newTab:!1},Po=()=>{const[t,e]=g.useReducer((n,s)=>{const{type:r,payload:l}=s;switch(r){case"NEW_TAB":return{...n,newTab:!0};case"SAME_TAB":return{...n,newTab:!1};case"URL":case"TEXT":case"BUTTON_STYLE":case"INIT":return{...n,...l};default:return n}},xo);return[t,e]},To=()=>{const t=a.useEditorRef(),[e,n]=Po();g.useEffect(()=>{const m=ko(t);n({type:"INIT",payload:{text:A.text()||A.url(),buttonStyle:m,newTab:!!A.newTab(),url:A.url()}})},[n,t]);const s=m=>{n({type:"TEXT",payload:{text:m}})},r=m=>{n({type:"BUTTON_STYLE",payload:{buttonStyle:m}})},l=m=>{n({type:"URL",payload:{url:m}})},c=m=>{n(m?{type:"NEW_TAB"}:{type:"SAME_TAB"})},u=()=>{B.reset()},d=m=>{if(!st(e.url)||!p)return;const w=wt(e.url);B.text(e.text),B.url(w),B.buttonStyle(e.buttonStyle),B.newTab(e.newTab),Ot(t)&&m?.preventDefault()},p=e.url!==""&&e.text!=="",{appBridge:y}=a.getPluginOptions(t,I);return a.useHotkeys("enter",d,{enableOnFormTags:["INPUT"]},[]),{state:e,onTextChange:s,onButtonStyleChange:r,onUrlChange:l,onToggleTab:c,onCancel:u,onSave:d,hasValues:p,isValidUrlOrEmpty:st,appBridge:y}},Io=()=>{const t=To(),{state:e,onButtonStyleChange:n}=t;return o.jsx(We,{...t,testId:"floating-button-insert",children:o.jsx("div",{className:"tw-pt-5",children:o.jsxs(V.FormControl,{label:{children:"Button Style",htmlFor:"buttonStyle",required:!0},children:[o.jsx(zt,{id:"primary",styles:E.buttonPrimary,isActive:e.buttonStyle==="primary",onClick:()=>n("primary"),children:e.text||"Primary Button"}),o.jsx(zt,{id:"secondary",styles:E.buttonSecondary,isActive:e.buttonStyle==="secondary",onClick:()=>n("secondary"),children:e.text||"Secondary Button"}),o.jsx(zt,{id:"tertiary",styles:E.buttonTertiary,isActive:e.buttonStyle==="tertiary",onClick:()=>n("tertiary"),children:e.text||"Tertiary Button"})]})})})},zt=({id:t,styles:e,isActive:n,onClick:s,children:r})=>{const[l,c]=g.useState(!1),u=()=>e&&e.hover&&l?{...e,...e.hover}:e;return o.jsx("button",{"data-test-id":`floating-button-insert-${t}`,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),onClick:s,style:{...u(),marginTop:0,marginBottom:0},className:n?"tw-outline tw-outline-1 tw-outline-violet-60 tw-outline-offset-2 tw-w-fit":"tw-w-fit",children:r})},qe={placement:"bottom-start",strategy:"absolute",middleware:[a.offset(12),a.flip({padding:12,fallbackPlacements:["bottom-end","top-start","top-end"]})]},Eo=()=>{const{ref:t,...e}=No(qe),{ref:n,...s}=So(qe),r=a.useEditorRef(),l=ut(),c=l.isOpen(r.id),u=l.isEditing(),d=l.mode(),p=o.jsx(Io,{}),y=u?p:o.jsx(po,{});return o.jsxs(o.Fragment,{children:[c&&d==="insert"&&mt.createPortal(o.jsx("div",{"data-is-underlay":!0,ref:t,...e,style:{...e.style,...E[a.TextStyles.p]},children:p}),document.body),c&&d==="edit"&&mt.createPortal(o.jsx("div",{"data-is-underlay":!0,ref:n,...s,style:{...s.style,...E[a.TextStyles.p]},children:y}),document.body)]})},I="button",Ge="button-plugin",Ke=t=>a.createPluginFactory({key:I,isElement:!0,isInline:!0,props:({element:e})=>({nodeProps:{href:e?.url,target:e?.target}}),withOverrides:Ae,renderAfterEditable:Eo,options:{isUrl:yt,rangeBeforeOptions:{matchString:" ",skipInvalid:!0,afterMatch:!0},triggerFloatingButtonHotkeys:"command+shift+k, ctrl+shift+k",appBridge:t},then:(e,{type:n})=>({deserializeHtml:{rules:[{validNodeName:"A",validClassName:"btn"}],getNode:s=>({type:n,url:s.getAttribute("href"),target:s.getAttribute("target")||"_blank"})}})})();class je extends a.Plugin{styles={};appBridge;constructor({styles:e=vt,...n}){super(Ge,{button:fo,markupElement:new mo,...n}),this.styles=e,this.appBridge=n?.appBridge}plugins(){return[Ke(this.appBridge)]}}const So=t=>{const e=a.useEditorRef(),n=ut().mode(),s=ut().isOpen(e.id),r=a.useEditorVersion(),{triggerFloatingButtonHotkeys:l}=a.getPluginOptions(e,I),c=g.useCallback(()=>{const m=a.getAboveNode(e,{match:{type:a.getPluginType(e,I)}});if(m){const[,w]=m;return a.getRangeBoundingClientRect(e,{anchor:a.getStartPoint(e,w),focus:a.getEndPoint(e,w)})}return a.getDefaultBoundingClientRect()},[e]),u=s&&n==="edit",{update:d,style:p,floating:y}=Xe({open:u,getBoundingClientRect:c,...t});return g.useEffect(()=>{const m=Fe(e);if(m&&B.url(m),e.selection&&a.someNode(e,{match:{type:a.getPluginType(e,I)}})){B.show("edit",e.id),d();return}A.mode()==="edit"&&B.reset()},[e,r,d]),a.useHotkeys(l,m=>{m.preventDefault(),A.mode()==="edit"&&bt(e)},{enableOnContentEditable:!0},[]),Bo(),Qe(),{style:p,ref:a.useComposedRef(y)}},Bo=()=>{const t=a.useEditorRef();a.useHotkeys("*",e=>{e.key==="Enter"&&Ot(t)&&e.preventDefault()},{enableOnFormTags:["INPUT"]},[])},Qe=()=>{const t=a.useEditorRef();a.useHotkeys("escape",()=>{if(A.mode()==="edit"){if(A.isEditing()){B.show("edit",t.id),a.focusEditor(t,t.selection??void 0);return}B.reset()}},{enableOnFormTags:["INPUT"],enableOnContentEditable:!0},[])},No=t=>{const e=a.useEditorRef(),n=a.useFocused(),s=ut().mode(),r=ut().isOpen(e.id),{triggerFloatingButtonHotkeys:l}=a.getPluginOptions(e,I);a.useHotkeys(l,p=>{p.preventDefault(),Ut(e,{focused:n})},{enableOnContentEditable:!0},[n]);const{update:c,style:u,floating:d}=Xe({open:r&&s==="insert",getBoundingClientRect:a.getSelectionBoundingClientRect,whileElementsMounted:void 0,...t});return g.useEffect(()=>{r&&c(),B.updated(r)},[r,c]),Qe(),{style:u,ref:a.useComposedRef(d)}},Ao=12,Lo=-22,Do=96,Xe=t=>a.useVirtualFloating({placement:"bottom-start",middleware:[a.offset({mainAxis:Ao,alignmentAxis:Lo}),a.flip({padding:Do})],...t}),Vt="[&_.tw-break-after-column]:tw-break-after-auto [&_.tw-break-inside-avoid-column]:tw-break-inside-auto [&_.tw-break-after-column.tw-pb-5]:tw-pb-0 @md:[&_.tw-break-after-column.tw-pb-5]:!tw-pb-5 @md:[&_.tw-break-after-column]:!tw-break-after-column @md:[&_.tw-break-inside-avoid-column]:!tw-break-inside-avoid-column",Ye={1:"tw-columns-1",2:"tw-columns-1 @sm:!tw-columns-2 [&_.tw-break-after-column]:tw-break-after-auto [&_.tw-break-inside-avoid-column]:tw-break-inside-auto [&_.tw-break-after-column.tw-pb-5]:tw-pb-0 @sm:[&_.tw-break-after-column.tw-pb-5]:!tw-pb-5 @sm:[&_.tw-break-after-column]:!tw-break-after-column @sm:[&_.tw-break-inside-avoid-column]:!tw-break-inside-avoid-column",3:`tw-columns-1 @md:!tw-columns-3 ${Vt}`,4:`tw-columns-1 @md:!tw-columns-4 ${Vt}`,5:`tw-columns-1 @md:!tw-columns-5 ${Vt}`},Je=t=>t?Ye[t]||Ye[1]:"",Mo=t=>{A.isOpen(t)&&B.reset()},Ze=g.memo(({isEnabled:t,value:e,columns:n,gap:s,placeholder:r,plugins:l,onTextChange:c,showSerializedText:u})=>{const d=Je(n),[p,y]=g.useState(!1),m=g.useId(),w=g.useCallback(b=>{b!==e&&c?.(b),y(!1)},[c,e]),k=g.useCallback(()=>y(!0),[]);return g.useEffect(()=>{const b=x=>{x.preventDefault(),x.returnValue="Unprocessed changes"};return p&&window.addEventListener("beforeunload",b),()=>window.removeEventListener("beforeunload",b)},[p]),t?o.jsx(a.RichTextEditor,{id:m,value:e,border:!1,placeholder:r,plugins:l,onValueChanged:k,onTextChange:w,hideExternalFloatingModals:Mo,placeholderOpacity:"high"}):o.jsx(Zn,{value:e,gap:s,customClass:d,show:u,plugins:l})});Ze.displayName="InternalRichTextEditor";const Fo=t=>{const e=g.useRef(null),[n,s]=g.useState(!1),{isEditing:r,...l}=t,c=g.useCallback(u=>{u&&s(!0)},[]);return Jn({ref:e,disabled:!r,onChange:c}),g.useEffect(()=>{r||s(!1)},[r]),o.jsx("div",{"data-test-id":"rich-text-editor-container",className:"tw-block tw-w-full tw-@container",ref:e,children:o.jsx(Ze,{...l,isEnabled:r&&n})})},Oo=({editButtonProps:t,unlinkButtonProps:e})=>{const{element:n}=a.useLinkOpenButtonState(),s=n?Mt(n):"";return o.jsx(a.FloatingModalWrapper,{"data-test-id":"floating-link-edit",padding:"16px",minWidth:"400px",children:o.jsxs("span",{"data-test-id":"preview-link-flyout",className:"tw-flex tw-justify-between tw-items-center tw-gap-2",children:[o.jsx("a",{"data-test-id":"floating-link-edit-url",href:s,target:"_blank",rel:"noopener noreferrer",style:E[it],className:"tw-break-all",children:s}),o.jsxs("span",{className:"tw-flex tw-gap-2",children:[o.jsx("button",{tabIndex:0,"data-test-id":"edit-link-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",...t,children:o.jsx(T.IconPen,{size:16})}),o.jsx("button",{tabIndex:0,"data-test-id":"remove-link-button",className:"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",...e,children:o.jsx(T.IconTrashBin,{size:16})})]})]})})},Re=(t,e)=>{const n=a.getAboveNode(t,{match:{type:a.ELEMENT_LINK}});return Array.isArray(n)?e(n[0]):""},_o=t=>Re(t,e=>e.chosenLink?.searchResult?.link||""),Uo=t=>Re(t,e=>e.url||""),Ho={url:"",text:"",newTab:!1},zo=()=>{const[t,e]=g.useReducer((n,s)=>{const{type:r,payload:l}=s;switch(r){case"NEW_TAB":return{...n,newTab:!0};case"SAME_TAB":return{...n,newTab:!1};case"URL":case"TEXT":case"INIT":return{...n,...l};default:return n}},Ho);return[t,e]},Vo=()=>{const t=a.useEditorRef(),[e,n]=zo();g.useEffect(()=>{const y=_o(t),m=Uo(t),w=a.floatingLinkSelectors.newTab();n({type:"INIT",payload:{text:a.floatingLinkSelectors.text()||a.floatingLinkSelectors.url(),newTab:w,url:y&&m===""?y:a.floatingLinkSelectors.url()}})},[n,t]);const s=y=>{n({type:"TEXT",payload:{text:y}})},r=y=>{n({type:"URL",payload:{url:y}})},l=y=>{n(y?{type:"NEW_TAB"}:{type:"SAME_TAB"})},c=()=>{a.floatingLinkActions.reset()},u=y=>{!st(e.url)||!d||(a.floatingLinkActions.text(e.text),a.floatingLinkActions.url(wt(e.url)),a.floatingLinkActions.newTab(e.newTab),a.submitFloatingLink(t)&&y?.preventDefault())},d=e.url!==""&&e.text!=="",{appBridge:p}=a.getPluginOptions(t,a.ELEMENT_LINK);return a.useHotkeys("enter",u,{enableOnFormTags:["INPUT"]},[]),{state:e,onTextChange:s,onUrlChange:r,onToggleTab:l,onCancel:c,onSave:u,hasValues:d,isValidUrlOrEmpty:st,appBridge:p}},$o=()=>o.jsx(We,{...Vo(),testId:"floating-link-insert"}),tn={placement:"bottom-start",strategy:"absolute",middleware:[a.offset(12),a.flip({padding:12,fallbackPlacements:["bottom-end","top-start","top-end"]})]},Wo=()=>{const t=a.useFloatingLinkInsertState({floatingOptions:tn}),{props:e,ref:n,hidden:s}=a.useFloatingLinkInsert(t),r=a.useFloatingLinkEditState({floatingOptions:tn}),{props:l,ref:c,editButtonProps:u,unlinkButtonProps:d}=a.useFloatingLinkEdit(r);if(s)return null;const p=o.jsx($o,{}),y=r.isEditing?p:o.jsx(Oo,{editButtonProps:u,unlinkButtonProps:d});return o.jsxs(o.Fragment,{children:[t.isOpen&&!r.isOpen&&mt.createPortal(o.jsx("div",{"data-is-underlay":!0,ref:n,...e,style:{...e.style,...E[v.p]},children:p}),document.body),r.isOpen&&mt.createPortal(o.jsx("div",{"data-is-underlay":!0,ref:c,...l,style:{...l.style,...E[v.p]},children:y}),document.body)]})},en=g.forwardRef((t,e)=>{const n=a.useEditorRef(),s=a.useLinkToolbarButtonState(),{props:r}=a.useLinkToolbarButton(s);return o.jsx(a.ToolbarButton,{onMouseDown:l=>{l.preventDefault(),a.focusEditor(n,n.selection??n.prevSelection??void 0)},ref:e,...r,...t,children:o.jsx(a.IconStylingWrapper,{icon:o.jsx(T.IconLink,{size:16})})})});en.displayName="LinkToolbarButton";const qo=({id:t,editorId:e})=>{const n=a.useEditorState(a.useEventPlateId(e)),s=!!a.isRangeInSameBlock(n,{at:n.selection});return o.jsx("div",{"data-plugin-id":t,children:o.jsx(en,{disabled:!s,tooltip:a.getTooltip(s?`Link
9
+ ${a.getHotkeyByPlatform("Ctrl+K")}`:"Links can only be set for a single text block.")})})},Go=t=>{const{attributes:e,children:n}=t,{styles:s}=a.useRichTextEditorContext(),r=t.element.url||t.element.chosenLink?.searchResult?.link||"",l=t.element.target||"_self";return o.jsx("a",{...e,href:r,target:l,style:s[it],children:n})};class Ko extends a.MarkupElement{constructor(e=a.ELEMENT_LINK,n=Go){super(e,n)}}const nn=t=>a.createPluginFactory({...a.createLinkPlugin(),renderAfterEditable:Wo,options:{isUrl:yt,rangeBeforeOptions:{matchString:" ",skipInvalid:!0,afterMatch:!0},triggerFloatingLinkHotkeys:"meta+k, ctrl+k",keepSelectedTextOnPaste:!0,appBridge:t}})();class on extends a.Plugin{styles={};appBridge;constructor({styles:e=E[it],...n}){super(it,{button:qo,markupElement:new Ko,...n}),this.styles=e,this.appBridge=n.appBridge}plugins(){return[nn(this.appBridge)]}}const jo="breakAfterColumn",an="normal";class Qo extends a.Plugin{columns;gap;customClass;constructor(e){super("break-after-plugin",{button:a.ColumnBreakButton,...e}),this.columns=e?.columns??1,this.gap=e?.gap??an,this.customClass=Je(this.columns)}plugins(){return[a.createColumnBreakPlugin(this.columns,this.gap,this.customClass)]}}const Xo="textstyle-custom1-plugin";class sn extends a.Plugin{styles={};constructor({styles:e=E.custom1,...n}={}){super(v.custom1,{label:"Custom 1",markupElement:new Yo,...n}),this.styles=e}plugins(){return[Jo(this.styles)]}}class Yo extends a.MarkupElement{constructor(e=Xo,n=rn){super(e,n)}}const rn=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("p",{...e,style:s,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),children:n})},Jo=t=>a.createPluginFactory({key:v.custom1,isElement:!0,deserializeHtml:{rules:[{validClassName:v.custom1}]}})({component:e=>o.jsx(rn,{...e,styles:t})}),Zo="textstyle-custom2-plugin";class ln extends a.Plugin{styles={};constructor({styles:e=E.custom2,...n}={}){super(v.custom2,{label:"Custom 2",markupElement:new Ro,...n}),this.styles=e}plugins(){return[ta(this.styles)]}}class Ro extends a.MarkupElement{constructor(e=Zo,n=dn){super(e,n)}}const dn=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("p",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},ta=t=>a.createPluginFactory({key:v.custom2,isElement:!0,deserializeHtml:{rules:[{validClassName:v.custom2}]}})({component:e=>o.jsx(dn,{...e,styles:t})}),ea="textstyle-custom3-plugin";class cn extends a.Plugin{styles={};constructor({styles:e=E.custom3,...n}={}){super(a.TextStyles.custom3,{label:"Custom 3",markupElement:new na,...n}),this.styles=e}plugins(){return[oa(this.styles)]}}class na extends a.MarkupElement{constructor(e=ea,n=un){super(e,n)}}const un=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("p",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},oa=t=>a.createPluginFactory({key:a.TextStyles.custom3,isElement:!0,deserializeHtml:{rules:[{validClassName:a.TextStyles.custom3}]}})({component:e=>o.jsx(un,{...e,styles:t})}),aa="textstyle-heading1-plugin";class gn extends a.Plugin{styles={};constructor({styles:e=E.heading1,...n}={}){super(v.heading1,{label:"Heading 1",markupElement:new sa,...n}),this.styles=e}plugins(){return[ra(this.styles)]}}class sa extends a.MarkupElement{constructor(e=aa,n=$t){super(e,n)}}const $t=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("h1",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},ra=t=>a.createPluginFactory({key:v.heading1,isElement:!0,component:$t,deserializeHtml:{rules:[{validNodeName:["h1","H1"]}]}})({component:e=>o.jsx($t,{...e,styles:t})}),ia="textstyle-heading2-plugin";class hn extends a.Plugin{styles={};constructor({styles:e=E.heading2,...n}={}){super(v.heading2,{label:"Heading 2",markupElement:new la,...n}),this.styles=e}plugins(){return[da(this.styles)]}}class la extends a.MarkupElement{constructor(e=ia,n=Wt){super(e,n)}}const Wt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("h2",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},da=t=>a.createPluginFactory({key:v.heading2,isElement:!0,component:Wt,deserializeHtml:{rules:[{validNodeName:["h2","H2"]}]}})({component:e=>o.jsx(Wt,{...e,styles:t})}),ca="textstyle-heading3-plugin";class mn extends a.Plugin{styles={};constructor({styles:e=E.heading3,...n}={}){super(v.heading3,{label:"Heading 3",markupElement:new ua,...n}),this.styles=e}plugins(){return[ga(this.styles)]}}class ua extends a.MarkupElement{constructor(e=ca,n=qt){super(e,n)}}const qt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("h3",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},ga=t=>a.createPluginFactory({key:v.heading3,isElement:!0,component:qt,deserializeHtml:{rules:[{validNodeName:["h3","H3"]}]}})({component:e=>o.jsx(qt,{...e,styles:t})}),ha="textstyle-heading4-plugin";class fn extends a.Plugin{styles={};constructor({styles:e=E.heading4,...n}={}){super(v.heading4,{label:"Heading 4",markupElement:new ma,...n}),this.styles=e}plugins(){return[fa(this.styles)]}}class ma extends a.MarkupElement{constructor(e=ha,n=Gt){super(e,n)}}const Gt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("h4",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},fa=t=>a.createPluginFactory({key:v.heading4,isElement:!0,component:Gt,deserializeHtml:{rules:[{validNodeName:["h4","H4"]}]}})({component:e=>o.jsx(Gt,{...e,styles:t})}),pa="textstyle-imageCaption-plugin";class pn extends a.Plugin{styles={};constructor({styles:e=E.imageCaption,...n}={}){super(v.imageCaption,{label:"Image Caption",markupElement:new wa,...n}),this.styles=e}plugins(){return[ya(this.styles)]}}class wa extends a.MarkupElement{constructor(e=pa,n=Kt){super(e,n)}}const Kt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("p",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},ya=t=>a.createPluginFactory({key:v.imageCaption,isElement:!0,component:Kt,deserializeHtml:{rules:[{validClassName:v.imageCaption}]}})({component:e=>o.jsx(Kt,{...e,styles:t})}),ba="textstyle-imageTitle-plugin";class wn extends a.Plugin{styles={};constructor({styles:e=E.imageTitle,...n}={}){super(v.imageTitle,{label:"Image Title",markupElement:new va,...n}),this.styles=e}plugins(){return[Ca(this.styles)]}}class va extends a.MarkupElement{constructor(e=ba,n=jt){super(e,n)}}const jt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("p",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},Ca=t=>a.createPluginFactory({key:v.imageTitle,isElement:!0,component:jt,deserializeHtml:{rules:[{validClassName:v.imageTitle}]}})({component:e=>o.jsx(jt,{...e,styles:t})});class yn extends a.Plugin{styles={};constructor({styles:e=E.p,...n}={}){super(v.p,{markupElement:new vn,label:"Body Text",...n}),this.styles=e}plugins(){return[Cn(this.styles)]}}const bn="tw-m-0 tw-px-0 tw-py-0",Ct=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align,l=a.merge([r&&a.alignmentClassnames[r],bn,a.getColumnBreakClasses(t)]);return o.jsx("p",{...e,className:l,style:s,children:n})};class vn extends a.MarkupElement{constructor(e=v.p,n=Ct){super(e,n)}}const Cn=t=>a.createPluginFactory({...a.createParagraphPlugin(),key:v.p,isElement:!0,component:Ct})({component:e=>o.jsx(Ct,{...e,styles:t})}),ka="textstyle-quote-plugin";class kn extends a.Plugin{styles={};constructor({styles:e=E.quote,...n}={}){super(v.quote,{label:"Quote",markupElement:new xa,...n}),this.styles=e}plugins(){return[xn(this.styles)]}}class xa extends a.MarkupElement{constructor(e=ka,n=kt){super(e,n)}}const kt=({element:t,attributes:e,children:n,styles:s})=>{const r=t.align;return o.jsx("blockquote",{...e,className:a.merge([r&&a.alignmentClassnames[r],a.getColumnBreakClasses(t)]),style:s,children:n})},xn=t=>a.createPluginFactory({key:v.quote,isElement:!0,component:kt,deserializeHtml:{rules:[{validNodeName:["blockquote","BLOCKQUOTE"]}]}})({component:e=>o.jsx(kt,{...e,styles:t})}),Qt=[new gn,new hn,new mn,new fn,new sn,new ln,new cn,new kn,new yn],lt=[v.heading1,v.heading2,v.heading3,v.heading4,v.custom1,v.custom2,v.custom3,v.quote,v.p],Pa=[...Qt,new pn,new wn],Ta=[...lt,v.imageCaption,v.imageTitle],Ia=t=>new a.PluginComposer().setPlugin(new a.SoftBreakPlugin,new a.TextStylePlugin({textStyles:Qt})).setPlugin([new a.BoldPlugin,new a.ItalicPlugin,new a.UnderlinePlugin,new a.StrikethroughPlugin,new on({appBridge:t}),new je({appBridge:t}),new a.CodePlugin],[new a.AlignLeftPlugin({validTypes:lt}),new a.AlignCenterPlugin({validTypes:lt}),new a.AlignRightPlugin({validTypes:lt}),new a.AlignJustifyPlugin({validTypes:lt}),new a.UnorderedListPlugin,new a.CheckboxListPlugin,new a.OrderedListPlugin,new a.ResetFormattingPlugin,new a.AutoformatPlugin]),Ea="--f-theme-settings-",Sa=t=>{const e=t?.id?`hasBackground${t.id}`:"hasBackground",n=t?.id?`backgroundColor${t.id}`:"backgroundColor",s=t?.preventDefaultColor?void 0:t?.defaultColor||_n,r=t?.label?t.label:"Background",l=t?.switchLabel?t.switchLabel:void 0;return{id:e,label:r,type:"switch",switchLabel:l,defaultValue:!!t?.defaultValue,on:[{id:n,defaultValue:s,type:"colorInput"}]}},Ba=t=>{const e=t?.id?`hasBorder_${t.id}`:"hasBorder",n=t?.id?`borderSelection_${t.id}`:"borderSelection",s=t?.id?`borderStyle_${t.id}`:"borderStyle",r=t?.id?`borderWidth_${t.id}`:"borderWidth",l=t?.id?`borderColor_${t.id}`:"borderColor",c=t?.defaultColor||se,u=t?.switchLabel?t.switchLabel:void 0;return{id:e,label:"Border",type:"switch",switchLabel:u,defaultValue:!!t?.defaultValue,on:[{id:n,type:"multiInput",layout:h.MultiInputLayout.Columns,lastItemFullWidth:!0,blocks:[{id:s,type:"dropdown",defaultValue:H.Solid,choices:[{value:H.Solid,label:H.Solid},{value:H.Dotted,label:H.Dotted},{value:H.Dashed,label:H.Dashed}]},{id:r,type:"input",defaultValue:Un,rules:[h.numericalOrPixelRule,h.minimumNumericalOrPixelRule(0),h.maximumNumericalOrPixelOrAutoRule(500)],placeholder:"e.g. 3px",onChange:d=>h.appendUnit(d,r)},{id:l,type:"colorInput",defaultValue:c}]}],off:[]}},Xt=(t,e=W.None)=>({id:t,type:"segmentedControls",defaultValue:e,choices:[{value:W.None,label:"None"},{value:W.Small,label:"S"},{value:W.Medium,label:"M"},{value:W.Large,label:"L"}]}),Na=t=>{const e=t?.id?`hasRadius_${t.id}`:"hasRadius",n=t?.id?`radiusValue_${t.id}`:"radiusValue",s=t?.id?`radiusChoice_${t.id}`:"radiusChoice",r=t?.defaultRadius||W.None;return{id:e,label:"Corner radius",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"Determining how rounded the corners are.",show:l=>t?.dependentSettingId?!!l.getBlock(t.dependentSettingId)?.value:!0,onChange:l=>h.presetCustomValue(l,s,n,t?.radiusStyleMap||Q),on:[{id:n,type:"input",placeholder:"e.g. 10px",rules:[h.numericalOrPixelRule],onChange:l=>h.appendUnit(l,n)}],off:[Xt(s,r)]}},Aa=t=>{const e=t?.id?`hasExtendedCustomRadius_${t.id}`:"hasExtendedCustomRadius",n=t?.id?`extendedRadiusValue_${t.id}`:"extendedRadiusValue",s=t?.id?`extendedRadiusChoice_${t.id}`:"extendedRadiusChoice",r=t?.id?`extendedRadiusTopLeft_${t.id}`:"extendedRadiusTopLeft",l=t?.id?`extendedRadiusTopRight_${t.id}`:"extendedRadiusTopRight",c=t?.id?`extendedRadiusBottomLeft_${t.id}`:"extendedRadiusBottomLeft",u=t?.id?`extendedRadiusBottomRight_${t.id}`:"extendedRadiusBottomRight";return{id:e,label:"Corner radius",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"Determining how rounded the corners are.",show:d=>t?.dependentSettingId?!!d.getBlock(t.dependentSettingId)?.value:!0,onChange:d=>{h.presetCustomValue(d,s,r,Q),h.presetCustomValue(d,s,l,Q),h.presetCustomValue(d,s,c,Q),h.presetCustomValue(d,s,u,Q)},on:[{id:n,type:"multiInput",layout:h.MultiInputLayout.Columns,blocks:[{id:r,type:"input",label:"Top Left",rules:[h.numericalOrPixelRule],onChange:d=>h.appendUnit(d,r)},{id:l,type:"input",label:"Top Right",rules:[h.numericalOrPixelRule],onChange:d=>h.appendUnit(d,l)},{id:c,type:"input",label:"Bottom Left",rules:[h.numericalOrPixelRule],onChange:d=>h.appendUnit(d,c)},{id:u,type:"input",label:"Bottom Right",rules:[h.numericalOrPixelRule],onChange:d=>h.appendUnit(d,u)}]}],off:[Xt(s,t?.defaultValue)]}},La=t=>{const e=t?.id?t.id:"hasCustomSpacing",n=t?.dependentSettingId?t.dependentSettingId:"columns",s=t?.spacingChoiceId?t.spacingChoiceId:"spacingChoice",r=t?.spacingCustomId?t.spacingCustomId:"spacingCustom",l=t?.defaultValueChoices?t.defaultValueChoices:Z.M;return{id:e,type:"switch",defaultValue:!1,switchLabel:"Custom",label:"Gutter",info:"An official nerds term for ‘gap’",onChange:c=>h.presetCustomValue(c,s,r,ie),show:c=>c.getBlock(n)?.value!=="1",on:[{id:r,type:"input",rules:[h.numericalOrPixelRule],onChange:c=>h.appendUnit(c,r)}],off:[{id:s,type:"slider",defaultValue:l,choices:[{value:Z.Auto,label:"Auto"},{value:Z.S,label:"S"},{value:Z.M,label:"M"},{value:Z.L,label:"L"}]}]}},Yt=t=>({id:t,type:"segmentedControls",defaultValue:Y.None,choices:[{value:Y.None,label:"None"},{value:Y.Small,label:"S"},{value:Y.Medium,label:"M"},{value:Y.Large,label:"L"}]}),Da=t=>{const e=t?.id?`hasCustomMarginValue_${t?.id}`:"hasCustomMarginValue",n=t?.id?`marginValue_${t?.id}`:"marginValue",s=t?.id?`marginChoice_${t?.id}`:"marginChoice";return{id:e,label:"Margin",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more space",onChange:r=>h.presetCustomValue(r,s,n,t?.marginStyleMap||nt),on:[{id:n,type:"input",placeholder:ct,rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)],onChange:r=>h.appendUnit(r,n)}],off:[Yt(s)]}},Ma=t=>{const e=t?.id?`hasExtendedCustomMargin_${t?.id}`:"hasExtendedCustomMargin",n=t?.id?`extendedMarginValues_${t?.id}`:"extendedMarginValues",s=t?.id?`extendedMarginChoice_${t?.id}`:"extendedMarginChoice",r=t?.id?`extendedMarginTop_${t?.id}`:"extendedMarginTop",l=t?.id?`extendedMarginLeft_${t?.id}`:"extendedMarginLeft",c=t?.id?`extendedMarginRight_${t?.id}`:"extendedMarginRight",u=t?.id?`extendedMarginBottom_${t?.id}`:"extendedMarginBottom";return{id:e,label:"Margin",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:d=>{h.presetCustomValue(d,s,r,nt),h.presetCustomValue(d,s,l,nt),h.presetCustomValue(d,s,c,nt),h.presetCustomValue(d,s,u,nt)},on:[{id:n,type:"multiInput",layout:h.MultiInputLayout.Spider,blocks:[{id:r,type:"input",label:"Top",placeholder:ct,onChange:d=>h.appendUnit(d,r),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:l,type:"input",label:"Left",placeholder:ct,onChange:d=>h.appendUnit(d,l),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:c,type:"input",label:"Right",placeholder:ct,onChange:d=>h.appendUnit(d,c),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:u,type:"input",label:"Bottom",placeholder:ct,onChange:d=>h.appendUnit(d,u),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]}]}],off:[Yt(s)]}},Jt=t=>({id:t,type:"segmentedControls",defaultValue:X.Small,choices:[{value:X.None,label:"None"},{value:X.Small,label:"S"},{value:X.Medium,label:"M"},{value:X.Large,label:"L"}]}),Fa=t=>{const e=t?.id?`hasCustomPaddingValue_${t?.id}`:"hasCustomPaddingValue",n=t?.id?`paddingValue_${t?.id}`:"paddingValue",s=t?.id?`paddingChoice_${t?.id}`:"paddingChoice";return{id:e,label:"Padding",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:r=>h.presetCustomValue(r,s,n,t?.paddingStyleMap||et),on:[{id:n,type:"input",placeholder:dt,rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)],onChange:r=>h.appendUnit(r,n)}],off:[Jt(s)]}},Oa=t=>{const e=t?.id?`hasExtendedCustomPadding_${t?.id}`:"hasExtendedCustomPadding",n=t?.id?`extendedPaddingValues_${t?.id}`:"extendedPaddingValues",s=t?.id?`extendedPaddingChoice_${t?.id}`:"extendedPaddingChoice",r=t?.id?`extendedPaddingTop_${t?.id}`:"extendedPaddingTop",l=t?.id?`extendedPaddingLeft_${t?.id}`:"extendedPaddingLeft",c=t?.id?`extendedPaddingRight_${t?.id}`:"extendedPaddingRight",u=t?.id?`extendedPaddingBottom_${t?.id}`:"extendedPaddingBottom";return{id:e,label:"Padding",type:"switch",switchLabel:"Custom",defaultValue:!1,info:"The spacing around UI elements to create more negative space",onChange:d=>{h.presetCustomValue(d,s,r,et),h.presetCustomValue(d,s,l,et),h.presetCustomValue(d,s,c,et),h.presetCustomValue(d,s,u,et)},on:[{id:n,type:"multiInput",layout:h.MultiInputLayout.Spider,blocks:[{id:r,type:"input",label:"Top",placeholder:dt,onChange:d=>h.appendUnit(d,r),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:l,type:"input",label:"Left",placeholder:dt,onChange:d=>h.appendUnit(d,l),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:c,type:"input",label:"Right",placeholder:dt,onChange:d=>h.appendUnit(d,c),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]},{id:u,type:"input",label:"Bottom",placeholder:dt,onChange:d=>h.appendUnit(d,u),rules:[h.numericalOrPixelRule,h.maximumNumericalOrPixelOrAutoRule(500)]}]}],off:[Jt(s)]}},_a=t=>{const e=Zt(t?.globalControlId);return{id:t?.id?t.id:"downloadable",type:"switch",defaultValue:!1,label:"Downloadable",show:n=>n.getBlock(e)?.value===J.Custom}},Zt=t=>t||"security",Ua=t=>[{id:Zt(t),type:"segmentedControls",defaultValue:J.Global,choices:[{value:J.Global,label:"Global Settings"},{value:J.Custom,label:"Custom"}]},{id:"globalSettingsInfo",type:"notification",footer:h.createFooter({label:"Change global settings [here].",replace:{here:{event:"general-settings.open"}}})}];var Pn=(t=>(t.Main="main",t.Basics="basics",t.Layout="layout",t.Style="style",t.Security="security",t.Targets="targets",t))(Pn||{});const Ha=t=>t,za=t=>t;i.AllTextStylePlugins=Pa,i.AllTextStyles=Ta,i.AttachmentOperationsProvider=Vn,i.Attachments=we,i.AttachmentsProvider=ge,i.AttachmentsToolbarButton=ve,i.BUTTON_PLUGIN=Ge,i.BlockButtonStyles=vt,i.BlockInjectButton=En,i.BlockItemWrapper=Se,i.BlockStyles=E,i.BorderStyle=H,i.BreakAfterPlugin=Qo,i.ButtonPlugin=je,i.Custom1Plugin=sn,i.Custom2Plugin=ln,i.Custom3Plugin=cn,i.DEFAULT_ATTACHMENTS_BUTTON_ID=be,i.DEFAULT_DRAGGING_TOOLTIP=ke,i.DEFAULT_DRAG_TOOLTIP=Ce,i.DEFAULT_MENU_BUTTON_ID=At,i.DownloadButton=Yn,i.DragHandleToolbarButton=xe,i.DragPreviewContextProvider=le,i.ELEMENT_BUTTON=I,i.FlyoutToolbarButton=Pe,i.GAP_DEFAULT=an,i.GutterSpacing=Z,i.Heading1Plugin=gn,i.Heading2Plugin=hn,i.Heading3Plugin=mn,i.Heading4Plugin=fn,i.ImageCaptionPlugin=pn,i.ImageTitlePlugin=wn,i.KEY_ELEMENT_BREAK_AFTER_COLUMN=jo,i.LinkInput=$e,i.LinkPlugin=on,i.LinkSelector=Ve,i.Margin=Y,i.MenuToolbarButton=Te,i.MultiFlyoutContextProvider=de,i.PARAGRAPH_CLASSES=bn,i.Padding=X,i.ParagraphMarkupElement=vn,i.ParagraphMarkupElementNode=Ct,i.ParagraphPlugin=yn,i.QuoteMarkupElementNode=kt,i.QuotePlugin=kn,i.Radius=W,i.RichTextEditor=Fo,i.Sections=Pn,i.Security=J,i.THEME_PREFIX=Ea,i.TextStylePluginsWithoutImage=Qt,i.TextStyles=v,i.TextStylesWithoutImage=lt,i.Toolbar=Ee,i.addHttps=wt,i.borderStyleMap=re,i.convertToRteValue=Rn,i.createButtonNode=Oe,i.createButtonPlugin=Ke,i.createLinkPlugin=nn,i.createParagraphPlugin=Cn,i.createQuotePlugin=xn,i.customCoordinatesGetterFactory=me,i.defineBlock=Ha,i.defineSettings=za,i.getBackgroundColorStyles=On,i.getBackgroundSettings=Sa,i.getBorderRadiusSettings=Na,i.getBorderRadiusSlider=Xt,i.getBorderSettings=Ba,i.getBorderStyles=Hn,i.getDefaultPluginsWithLinkChooser=Ia,i.getExtendedBorderRadiusSettings=Aa,i.getGutterSettings=La,i.getLegacyUrl=ao,i.getLinkFromEditor=ro,i.getMarginExtendedSettings=Ma,i.getMarginSettings=Da,i.getMarginSlider=Yt,i.getPaddingExtendedSettings=Oa,i.getPaddingSettings=Fa,i.getPaddingSlider=Jt,i.getRadiusStyles=zn,i.getReadableColor=Mn,i.getSecurityDownloadableSetting=_a,i.getSecurityGlobalControlId=Zt,i.getSecurityGlobalControlSetting=Ua,i.getUrl=so,i.getUrlFromEditor=Fe,i.getUrlFromLinkOrLegacyLink=Mt,i.gutterSpacingStyleMap=ie,i.hasRichTextValue=Be,i.insertButton=Le,i.isDark=Bn,i.isDownloadable=to,i.isValidUrl=yt,i.isValidUrlOrEmpty=st,i.joinClassNames=U,i.mapAppBridgeColorPaletteToFonduePalette=Ne,i.mapAppBridgeColorPalettesToFonduePalettes=eo,i.marginStyleMap=nt,i.moveItemInArray=Fn,i.paddingStyleMap=et,i.radiusStyleMap=Q,i.relativeUrlRegex=Ft,i.setAlpha=Ln,i.submitFloatingButton=Ot,i.toColorObject=Dn,i.toHex8String=Nn,i.toHexString=An,i.toRgbaString=It,i.toShortRgba=j,i.triggerFloatingButton=_e,i.triggerFloatingButtonEdit=bt,i.triggerFloatingButtonInsert=Ut,i.unwrapButton=rt,i.upsertButton=De,i.upsertButtonText=_t,i.useAttachmentOperations=Bt,i.useAttachments=ue,i.useAttachmentsContext=he,i.useDndSensors=Gn,i.useDragPreviewContext=ot,i.useMultiFlyoutContext=ce,i.useMultiFlyoutState=ft,i.withAttachmentsProvider=$n,i.withButton=Ae,i.wrapButton=Me,Object.keys(h).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(i,t)&&Object.defineProperty(i,t,{enumerable:!0,get:()=>h[t]})}),Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
10
10
  //# sourceMappingURL=index.umd.js.map