@frontify/guideline-blocks-settings 3.0.5 → 3.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Attachments/AttachmentItem.es.js +5 -3
- package/dist/components/Attachments/AttachmentItem.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +19 -19
|
@@ -19,7 +19,6 @@ var x = (e) => v(e === "IMAGE" ? l : e === "VIDEO" ? p : e === "AUDIO" ? d : s,
|
|
|
19
19
|
let F = S || j && !P;
|
|
20
20
|
return /* @__PURE__ */ y("button", {
|
|
21
21
|
type: "button",
|
|
22
|
-
"aria-label": "Download attachment",
|
|
23
22
|
"data-test-id": "attachments-item",
|
|
24
23
|
onClick: () => !O && E?.(),
|
|
25
24
|
ref: D,
|
|
@@ -36,9 +35,12 @@ var x = (e) => v(e === "IMAGE" ? l : e === "VIDEO" ? p : e === "AUDIO" ? d : s,
|
|
|
36
35
|
}),
|
|
37
36
|
/* @__PURE__ */ y("div", {
|
|
38
37
|
className: "tw-text-small tw-flex-1 tw-min-w-0",
|
|
39
|
-
children: [/* @__PURE__ */
|
|
38
|
+
children: [/* @__PURE__ */ y("div", {
|
|
40
39
|
className: "tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container",
|
|
41
|
-
children:
|
|
40
|
+
children: [/* @__PURE__ */ v("span", {
|
|
41
|
+
className: "tw-sr-only",
|
|
42
|
+
children: "Download attachment "
|
|
43
|
+
}), s.title]
|
|
42
44
|
}), /* @__PURE__ */ v("div", {
|
|
43
45
|
className: "tw-text-secondary",
|
|
44
46
|
children: `${s.fileSizeHumanReadable} - ${s.extension}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentItem.es.js","names":[],"sources":["../../../src/components/Attachments/AttachmentItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useSortable } from '@dnd-kit/sortable';\nimport { type Asset, useAssetUpload, useFileInput } from '@frontify/app-bridge';\nimport { LoadingCircle, Dropdown, Button } from '@frontify/fondue/components';\nimport {\n IconArrowCircleUp,\n IconImageStack,\n IconPen,\n IconTrashBin,\n IconDocument,\n IconImage,\n IconPlayFrame,\n IconMusicNote,\n IconGrabHandle,\n} from '@frontify/fondue/icons';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { joinClassNames } from '../../utilities';\n\nimport { type AttachmentItemProps, type SortableAttachmentItemProps } from './types';\n\nconst getDecorator = (type: string) => {\n if (type === 'IMAGE') {\n return <IconImage size=\"24\" />;\n } else if (type === 'VIDEO') {\n return <IconPlayFrame size=\"24\" />;\n } else if (type === 'AUDIO') {\n return <IconMusicNote size=\"24\" />;\n } else {\n return <IconDocument size=\"24\" />;\n }\n};\n\nexport const AttachmentItem = forwardRef<HTMLButtonElement, AttachmentItemProps>(\n (\n {\n item,\n isEditing,\n draggableProps,\n transformStyle,\n isDragging,\n isOverlay,\n isLoading,\n onDelete,\n onReplaceWithBrowse,\n onReplaceWithUpload,\n onDownload,\n },\n ref,\n ) => {\n const [selectedAsset, setSelectedAsset] = useState<Asset | undefined>();\n const [openFileDialog, { selectedFiles }] = useFileInput({ multiple: true, accept: 'image/*' });\n const [uploadFile, { results: uploadResults, doneAll }] = useAssetUpload();\n\n useEffect(() => {\n if (selectedFiles) {\n uploadFile(selectedFiles[0]);\n }\n // oxlint-disable-next-line @eslint-react/exhaustive-deps\n }, [selectedFiles]);\n\n useEffect(() => {\n if (doneAll) {\n onReplaceWithUpload(uploadResults[0]);\n }\n // oxlint-disable-next-line @eslint-react/exhaustive-deps\n }, [doneAll, uploadResults]);\n\n const showLoadingCircle = isLoading || (selectedFiles && !doneAll);\n\n return (\n <button\n type=\"button\"\n aria-label=\"Download attachment\"\n data-test-id=\"attachments-item\"\n onClick={() => !selectedAsset && onDownload?.()}\n ref={ref}\n style={{\n ...transformStyle,\n opacity: isDragging && !isOverlay ? 0.3 : 1,\n fontFamily: 'var(-f-theme-settings-body-font-family)',\n }}\n className={joinClassNames([\n '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-surface-hover focus-visible:tw-outline focus-visible:!-tw-outline-offset-4',\n isDragging ? 'tw-bg-surface-hover' : '',\n ])}\n >\n <div className=\"tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container\">\n {showLoadingCircle ? <LoadingCircle size=\"small\" /> : getDecorator(item.objectType)}\n </div>\n <div className=\"tw-text-small tw-flex-1 tw-min-w-0\">\n <div className=\"tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container\">\n {item.title}\n </div>\n <div className=\"tw-text-secondary\">{`${item.fileSizeHumanReadable} - ${item.extension}`}</div>\n </div>\n {isEditing && (\n <div\n data-test-id=\"attachments-actionbar\"\n className={joinClassNames([\n 'tw-flex tw-gap-0.5 group-hover:tw-opacity-100 group-focus-visible:tw-opacity-100 has-[:focus-visible]:tw-opacity-100',\n isOverlay || selectedAsset?.id === item.id ? 'tw-opacity-100' : 'tw-opacity-0',\n ])}\n >\n <Button\n aspect=\"square\"\n emphasis=\"weak\"\n aria-label=\"Drag attachment\"\n className={joinClassNames([\n isDragging || isOverlay ? 'tw-cursor-grabbing' : 'tw-cursor-grab',\n 'focus-visible:tw-z-[2]',\n ])}\n {...draggableProps}\n >\n <IconGrabHandle />\n </Button>\n <div data-test-id=\"attachments-actionbar-flyout\">\n <Dropdown.Root\n open={selectedAsset?.id === item.id}\n onOpenChange={(isOpen) => setSelectedAsset(isOpen ? item : undefined)}\n >\n <Dropdown.Trigger>\n <Button\n aspect=\"square\"\n emphasis={selectedAsset?.id === item.id ? 'default' : 'weak'}\n onPress={(e) => {\n e?.stopPropagation();\n e?.preventDefault();\n }}\n >\n <IconPen size=\"20\" />\n </Button>\n </Dropdown.Trigger>\n <Dropdown.Content side=\"right\">\n <Dropdown.Group>\n <Dropdown.Item\n data-test-id=\"menu-item\"\n onSelect={(event) => {\n event?.stopPropagation();\n openFileDialog();\n setSelectedAsset(undefined);\n }}\n >\n <IconArrowCircleUp size=\"20\" />\n Replace with upload\n </Dropdown.Item>\n <Dropdown.Item\n onSelect={(event) => {\n event?.stopPropagation();\n onReplaceWithBrowse();\n setSelectedAsset(undefined);\n }}\n >\n <IconImageStack size=\"20\" />\n Replace with asset\n </Dropdown.Item>\n </Dropdown.Group>\n <Dropdown.Group>\n <Dropdown.Item\n emphasis=\"danger\"\n onSelect={(event) => {\n event?.stopPropagation();\n onDelete();\n setSelectedAsset(undefined);\n }}\n >\n <IconTrashBin size=\"20\" />\n Delete\n </Dropdown.Item>\n </Dropdown.Group>\n </Dropdown.Content>\n </Dropdown.Root>\n </div>\n </div>\n )}\n </button>\n );\n },\n);\n\nAttachmentItem.displayName = 'AttachmentItem';\n\nexport const SortableAttachmentItem = (props: SortableAttachmentItemProps) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.item.id,\n });\n\n const transformStyle = {\n transform: transform ? `translate(${transform.x}px, ${transform.y}px)` : '',\n transition,\n zIndex: isDragging ? 2 : 1,\n };\n\n const draggableProps = { ...attributes, ...listeners };\n\n return (\n <AttachmentItem\n ref={setNodeRef}\n isDragging={isDragging}\n transformStyle={transformStyle}\n draggableProps={draggableProps}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AttachmentItem.es.js","names":[],"sources":["../../../src/components/Attachments/AttachmentItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useSortable } from '@dnd-kit/sortable';\nimport { type Asset, useAssetUpload, useFileInput } from '@frontify/app-bridge';\nimport { LoadingCircle, Dropdown, Button } from '@frontify/fondue/components';\nimport {\n IconArrowCircleUp,\n IconImageStack,\n IconPen,\n IconTrashBin,\n IconDocument,\n IconImage,\n IconPlayFrame,\n IconMusicNote,\n IconGrabHandle,\n} from '@frontify/fondue/icons';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { joinClassNames } from '../../utilities';\n\nimport { type AttachmentItemProps, type SortableAttachmentItemProps } from './types';\n\nconst getDecorator = (type: string) => {\n if (type === 'IMAGE') {\n return <IconImage size=\"24\" />;\n } else if (type === 'VIDEO') {\n return <IconPlayFrame size=\"24\" />;\n } else if (type === 'AUDIO') {\n return <IconMusicNote size=\"24\" />;\n } else {\n return <IconDocument size=\"24\" />;\n }\n};\n\nexport const AttachmentItem = forwardRef<HTMLButtonElement, AttachmentItemProps>(\n (\n {\n item,\n isEditing,\n draggableProps,\n transformStyle,\n isDragging,\n isOverlay,\n isLoading,\n onDelete,\n onReplaceWithBrowse,\n onReplaceWithUpload,\n onDownload,\n },\n ref,\n ) => {\n const [selectedAsset, setSelectedAsset] = useState<Asset | undefined>();\n const [openFileDialog, { selectedFiles }] = useFileInput({ multiple: true, accept: 'image/*' });\n const [uploadFile, { results: uploadResults, doneAll }] = useAssetUpload();\n\n useEffect(() => {\n if (selectedFiles) {\n uploadFile(selectedFiles[0]);\n }\n // oxlint-disable-next-line @eslint-react/exhaustive-deps\n }, [selectedFiles]);\n\n useEffect(() => {\n if (doneAll) {\n onReplaceWithUpload(uploadResults[0]);\n }\n // oxlint-disable-next-line @eslint-react/exhaustive-deps\n }, [doneAll, uploadResults]);\n\n const showLoadingCircle = isLoading || (selectedFiles && !doneAll);\n\n return (\n <button\n type=\"button\"\n data-test-id=\"attachments-item\"\n onClick={() => !selectedAsset && onDownload?.()}\n ref={ref}\n style={{\n ...transformStyle,\n opacity: isDragging && !isOverlay ? 0.3 : 1,\n fontFamily: 'var(-f-theme-settings-body-font-family)',\n }}\n className={joinClassNames([\n '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-surface-hover focus-visible:tw-outline focus-visible:!-tw-outline-offset-4',\n isDragging ? 'tw-bg-surface-hover' : '',\n ])}\n >\n <div className=\"tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container\">\n {showLoadingCircle ? <LoadingCircle size=\"small\" /> : getDecorator(item.objectType)}\n </div>\n <div className=\"tw-text-small tw-flex-1 tw-min-w-0\">\n <div className=\"tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container\">\n <span className=\"tw-sr-only\">Download attachment </span>\n {item.title}\n </div>\n <div className=\"tw-text-secondary\">{`${item.fileSizeHumanReadable} - ${item.extension}`}</div>\n </div>\n {isEditing && (\n <div\n data-test-id=\"attachments-actionbar\"\n className={joinClassNames([\n 'tw-flex tw-gap-0.5 group-hover:tw-opacity-100 group-focus-visible:tw-opacity-100 has-[:focus-visible]:tw-opacity-100',\n isOverlay || selectedAsset?.id === item.id ? 'tw-opacity-100' : 'tw-opacity-0',\n ])}\n >\n <Button\n aspect=\"square\"\n emphasis=\"weak\"\n aria-label=\"Drag attachment\"\n className={joinClassNames([\n isDragging || isOverlay ? 'tw-cursor-grabbing' : 'tw-cursor-grab',\n 'focus-visible:tw-z-[2]',\n ])}\n {...draggableProps}\n >\n <IconGrabHandle />\n </Button>\n <div data-test-id=\"attachments-actionbar-flyout\">\n <Dropdown.Root\n open={selectedAsset?.id === item.id}\n onOpenChange={(isOpen) => setSelectedAsset(isOpen ? item : undefined)}\n >\n <Dropdown.Trigger>\n <Button\n aspect=\"square\"\n emphasis={selectedAsset?.id === item.id ? 'default' : 'weak'}\n onPress={(e) => {\n e?.stopPropagation();\n e?.preventDefault();\n }}\n >\n <IconPen size=\"20\" />\n </Button>\n </Dropdown.Trigger>\n <Dropdown.Content side=\"right\">\n <Dropdown.Group>\n <Dropdown.Item\n data-test-id=\"menu-item\"\n onSelect={(event) => {\n event?.stopPropagation();\n openFileDialog();\n setSelectedAsset(undefined);\n }}\n >\n <IconArrowCircleUp size=\"20\" />\n Replace with upload\n </Dropdown.Item>\n <Dropdown.Item\n onSelect={(event) => {\n event?.stopPropagation();\n onReplaceWithBrowse();\n setSelectedAsset(undefined);\n }}\n >\n <IconImageStack size=\"20\" />\n Replace with asset\n </Dropdown.Item>\n </Dropdown.Group>\n <Dropdown.Group>\n <Dropdown.Item\n emphasis=\"danger\"\n onSelect={(event) => {\n event?.stopPropagation();\n onDelete();\n setSelectedAsset(undefined);\n }}\n >\n <IconTrashBin size=\"20\" />\n Delete\n </Dropdown.Item>\n </Dropdown.Group>\n </Dropdown.Content>\n </Dropdown.Root>\n </div>\n </div>\n )}\n </button>\n );\n },\n);\n\nAttachmentItem.displayName = 'AttachmentItem';\n\nexport const SortableAttachmentItem = (props: SortableAttachmentItemProps) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.item.id,\n });\n\n const transformStyle = {\n transform: transform ? `translate(${transform.x}px, ${transform.y}px)` : '',\n transition,\n zIndex: isDragging ? 2 : 1,\n };\n\n const draggableProps = { ...attributes, ...listeners };\n\n return (\n <AttachmentItem\n ref={setNodeRef}\n isDragging={isDragging}\n transformStyle={transformStyle}\n draggableProps={draggableProps}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},a=(i,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var c=n(a),l=0,u=c.length,d;l<u;l++)d=c[l],!r.call(i,d)&&d!==o&&e(i,d,{get:(e=>a[e]).bind(null,d),enumerable:!(s=t(a,d))||s.enumerable});return i},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`));let s=require("@frontify/app-bridge"),c=require("@frontify/fondue/components"),l=require("@frontify/fondue/icons"),u=require("react"),d=require("react/jsx-runtime"),f=require("@ctrl/tinycolor"),p=require("@dnd-kit/core"),m=require("@dnd-kit/modifiers"),h=require("@dnd-kit/sortable"),g=require("@frontify/fondue"),_=require("@frontify/fondue/rte"),v=require("react-dom");var y=e=>e.filter(Boolean).join(` `),b=({onDrop:e,label:t,icon:n,secondaryLabel:r,isLoading:i,fillParentContainer:a,onAssetChooseClick:o,onUploadClick:f,withMenu:p=!0,onClick:m,validFileType:h,verticalLayout:g})=>{let[_,v]=(0,u.useState)(!1),[b,x]=(0,u.useState)(),S=(0,u.useRef)(null),[C,w]=(0,u.useState)(void 0),T=t=>{if(t.preventDefault(),v(!1),!E(t.dataTransfer.files)){w(`Invalid`),setTimeout(()=>{w(void 0)},1e3);return}e?.(t.dataTransfer.files)},E=e=>{if(!h)return!0;for(let t=0;t<e.length;t++){let n=e[t].name.split(`.`).pop()??``;if(!s.FileExtensionSets[h].includes(n))return!1}return!0},D=e=>{if(!S.current||i)return;let{clientX:t,clientY:n}=e,r=t===0&&n===0,{left:a,top:o,width:s,height:c}=S.current.getBoundingClientRect(),l=r?s/2:t-a,u=r?c/2:n-o;x([l,u])},O=(0,u.useCallback)(e=>{e(),x(void 0)},[]),ee=(0,u.useMemo)(()=>{let e=[];return f&&e.push({onSelect:()=>O(f),title:`Upload asset`,icon:(0,d.jsx)(l.IconArrowCircleUp,{size:`20`})}),o&&e.push({onSelect:()=>O(o),title:`Browse asset`,icon:(0,d.jsx)(l.IconImageStack,{size:`20`})}),e},[o,f,O]);return(0,d.jsxs)(`button`,{type:`button`,ref:S,"data-test-id":`block-inject-button`,className:y([`tw-body-medium tw-relative 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`,g?`[&: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`,a?`tw-h-full`:`tw-h-[72px]`,_&&!i?`tw-border-dashed`:`tw-border-solid`,b&&`tw-bg-surface-hover`,_&&`tw-bg-surface`,C?`!tw-border-red-50 !tw-cursor-not-allowed`:` tw-border-line-mid`,i||b||_||C?``:`tw-text-secondary hover:tw-text-primary hover:tw-bg-surface hover:tw-border-line-strong active:tw-text-primary active:tw-bg-surface-hover active:tw-border-line-strong`,(_||b)&&!C?`[&>*]:tw-pointer-events-none tw-border-line-strong`:`tw-bg-surface-dim tw-text-secondary`]),onDragEnter:e?e=>{if(v(!0),h===`Images`)for(let t of Array.from(e.dataTransfer.items))t?.type?.startsWith(`image/`)?w(void 0):w(`Invalid`)}:void 0,onDragOver:e?e=>{e.preventDefault()}:void 0,onDragLeave:e?()=>{v(!1),w(void 0)}:void 0,onDrop:e?T:void 0,onClick:e=>{p&&!b&&D(e),m?.()},children:[i?(0,d.jsx)(c.LoadingCircle,{}):C?(0,d.jsxs)(`div`,{className:` tw-flex tw-items-center tw-justify-center tw-text-red-60 tw-font-medium`,children:[(0,d.jsx)(l.IconExclamationMarkTriangle,{size:`16`}),C]}):(0,d.jsxs)(d.Fragment,{children:[n&&(0,d.jsx)(`div`,{children:n}),(t||r)&&(0,d.jsxs)(`div`,{className:`tw-flex tw-flex-col tw-items-start`,children:[t&&(0,d.jsx)(`div`,{className:`tw-font-medium`,children:t}),r&&(0,d.jsx)(`div`,{className:`tw-font-normal`,children:r})]})]}),b&&(0,d.jsx)(`div`,{className:`tw-absolute tw-left-0 tw-top-full tw-z-20`,style:{left:b[0],top:b[1]},children:(0,d.jsxs)(c.Flyout.Root,{open:!0,onOpenChange:e=>!e&&x(void 0),children:[(0,d.jsx)(c.Flyout.Trigger,{children:(0,d.jsx)(`div`,{})}),(0,d.jsx)(c.Flyout.Content,{triggerOffset:`compact`,children:(0,d.jsxs)(c.Dropdown.Root,{open:!0,children:[(0,d.jsx)(c.Dropdown.Trigger,{children:(0,d.jsx)(`div`,{})}),(0,d.jsx)(c.Dropdown.Content,{triggerOffset:`compact`,children:ee.map(e=>(0,d.jsxs)(c.Dropdown.Item,{onSelect:e.onSelect,children:[e.icon,e.title]},e.title))})]})})]})})]})},x=e=>(e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e.hasOwnProperty(t)))(e)?(e=>{let t=typeof e.alpha==`number`?e.alpha:1;return{r:e.red,g:e.green,b:e.blue,a:t}})(e):e,S=e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e?.hasOwnProperty(t)),C=(e,t)=>{let n=S(e)?x(e):e,r=new f.TinyColor(n);return t?r.getBrightness()<t:r.isDark()||r.getAlpha()>.25&&r.getAlpha()<1},w=e=>new f.TinyColor(x(e)).toHex8String(),T=e=>new f.TinyColor(x(e)).toHexString(),E=e=>new f.TinyColor(x(e)).toRgbString(),D=(e,t)=>new f.TinyColor(t).setAlpha(e).toRgbString(),O=e=>{let{r:t,g:n,b:r,a:i}=new f.TinyColor(e);return{red:t,green:n,blue:r,alpha:i}},ee=e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e?.hasOwnProperty(t)),k=(e,t)=>{let n=ee(e)?x(e):e,r=ee(t)?x(t):t,i=new f.TinyColor(n),a=new f.TinyColor(r);for(;(0,f.readability)(i,a)<4.5;)i=i.darken(1);return i.toRgbString()},A=e=>({backgroundColor:E(e)}),te={red:241,green:241,blue:241,alpha:1},ne={red:234,green:235,blue:235,alpha:1},j=`24px`,M=`24px`,N=function(e){return e.Solid=`Solid`,e.Dashed=`Dashed`,e.Dotted=`Dotted`,e}({}),re={Solid:`solid`,Dotted:`dotted`,Dashed:`dashed`},P=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),F={None:`0px`,Small:`2px`,Medium:`4px`,Large:`12px`},I=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),L={None:`0px`,Small:`24px`,Medium:`36px`,Large:`60px`},R=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),z={None:`0px`,Small:`24px`,Medium:`36px`,Large:`60px`},B=function(e){return e.Global=`Global`,e.Custom=`Custom`,e}({}),V=function(e){return e.Auto=`Auto`,e.S=`S`,e.M=`M`,e.L=`L`,e}({}),ie={Auto:`4px`,S:`10px`,M:`30px`,L:`50px`},ae=(e=N.Solid,t=`1px`,n=ne)=>({borderStyle:re[e],borderWidth:t,borderColor:E(n)}),oe=(e,t=!1,n)=>({borderRadius:t?n:F[e]}),se=(0,u.createContext)(!1);se.displayName=`DragPreviewContext`;var ce=({children:e,isDragPreview:t})=>(0,d.jsx)(se.Provider,{value:t,children:e}),H=()=>(0,u.useContext)(se),le=(0,u.createContext)({openFlyoutIds:[],setOpenFlyoutIds:()=>console.error(`No MultiFlyoutContext Provider found`)});le.displayName=`MultiFlyoutContext`;var ue=({children:e,openFlyoutIds:t,setOpenFlyoutIds:n})=>{let r=(0,u.useMemo)(()=>({openFlyoutIds:t,setOpenFlyoutIds:n}),[t,n]);return(0,d.jsx)(le.Provider,{value:r,children:e})},de=()=>(0,u.useContext)(le),fe=e=>{let{openFlyoutIds:t,setOpenFlyoutIds:n}=de(),r=(0,u.useCallback)(t=>{n(n=>{let r=n.filter(t=>t!==e);return t?[...r,e]:r})},[e,n]);return{isOpen:t.includes(e),onOpenChange:r}},pe=(e,t)=>{let{blockAssets:n,addAssetIdsToKey:r,deleteAssetIdsFromKey:i,updateAssetIdsFromKey:a}=t,o=n?.[e]||[];return{onAttachmentsAdd:async t=>{await r(e,t.map(e=>e.id))},onAttachmentDelete:async t=>{await i(e,[t.id])},onAttachmentReplace:async(t,n)=>{let r=o.map(e=>e.id===t.id?n.id:e.id);await a(e,r)},onAttachmentsSorted:async t=>{let n=t.map(e=>e.id);await a(e,n)},attachments:o}},me=(e,t)=>{let{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:i,onAttachmentsSorted:a,attachments:o}=pe(t,(0,s.useBlockAssets)(e));return{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:i,onAttachmentsSorted:a,attachments:o,appBridge:e}},he=(0,u.createContext)(null);he.displayName=`AttachmentsContext`;var ge=({appBridge:e,children:t,assetId:n})=>{let r=me(e,n);return(0,d.jsx)(he.Provider,{value:r,children:t})},_e=({blockAssetBundle:e,appBridge:t,children:n,assetId:r})=>{let i=pe(r,e);return(0,d.jsx)(he.Provider,{value:{...i,appBridge:t},children:n})},ve=()=>{let e=(0,u.useContext)(he);if(!e)throw Error(`No AttachmentsContext Provided. Component must be wrapped in an 'AttachmentsProvider' or the 'withAttachmentsProvider' HOC`);return e},ye=(e,t)=>{let n=n=>(0,d.jsx)(ge,{appBridge:n.appBridge,assetId:t,children:(0,d.jsx)(e,{...n})});return n.displayName=`withAttachmentsProvider`,n},be=e=>e===`IMAGE`?(0,d.jsx)(l.IconImage,{size:`24`}):e===`VIDEO`?(0,d.jsx)(l.IconPlayFrame,{size:`24`}):e===`AUDIO`?(0,d.jsx)(l.IconMusicNote,{size:`24`}):(0,d.jsx)(l.IconDocument,{size:`24`}),xe=(0,u.forwardRef)(({item:e,isEditing:t,draggableProps:n,transformStyle:r,isDragging:i,isOverlay:a,isLoading:o,onDelete:f,onReplaceWithBrowse:p,onReplaceWithUpload:m,onDownload:h},g)=>{let[_,v]=(0,u.useState)(),[b,{selectedFiles:x}]=(0,s.useFileInput)({multiple:!0,accept:`image/*`}),[S,{results:C,doneAll:w}]=(0,s.useAssetUpload)();(0,u.useEffect)(()=>{x&&S(x[0])},[x]),(0,u.useEffect)(()=>{w&&m(C[0])},[w,C]);let T=o||x&&!w;return(0,d.jsxs)(`button`,{type:`button`,"aria-label":`Download attachment`,"data-test-id":`attachments-item`,onClick:()=>!_&&h?.(),ref:g,style:{...r,opacity:i&&!a?.3:1,fontFamily:`var(-f-theme-settings-body-font-family)`},className:y([`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-surface-hover focus-visible:tw-outline focus-visible:!-tw-outline-offset-4`,i?`tw-bg-surface-hover`:``]),children:[(0,d.jsx)(`div`,{className:`tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container`,children:T?(0,d.jsx)(c.LoadingCircle,{size:`small`}):be(e.objectType)}),(0,d.jsxs)(`div`,{className:`tw-text-small tw-flex-1 tw-min-w-0`,children:[(0,d.jsx)(`div`,{className:`tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container`,children:e.title}),(0,d.jsx)(`div`,{className:`tw-text-secondary`,children:`${e.fileSizeHumanReadable} - ${e.extension}`})]}),t&&(0,d.jsxs)(`div`,{"data-test-id":`attachments-actionbar`,className:y([`tw-flex tw-gap-0.5 group-hover:tw-opacity-100 group-focus-visible:tw-opacity-100 has-[:focus-visible]:tw-opacity-100`,a||_?.id===e.id?`tw-opacity-100`:`tw-opacity-0`]),children:[(0,d.jsx)(c.Button,{aspect:`square`,emphasis:`weak`,"aria-label":`Drag attachment`,className:y([i||a?`tw-cursor-grabbing`:`tw-cursor-grab`,`focus-visible:tw-z-[2]`]),...n,children:(0,d.jsx)(l.IconGrabHandle,{})}),(0,d.jsx)(`div`,{"data-test-id":`attachments-actionbar-flyout`,children:(0,d.jsxs)(c.Dropdown.Root,{open:_?.id===e.id,onOpenChange:t=>v(t?e:void 0),children:[(0,d.jsx)(c.Dropdown.Trigger,{children:(0,d.jsx)(c.Button,{aspect:`square`,emphasis:_?.id===e.id?`default`:`weak`,onPress:e=>{e?.stopPropagation(),e?.preventDefault()},children:(0,d.jsx)(l.IconPen,{size:`20`})})}),(0,d.jsxs)(c.Dropdown.Content,{side:`right`,children:[(0,d.jsxs)(c.Dropdown.Group,{children:[(0,d.jsxs)(c.Dropdown.Item,{"data-test-id":`menu-item`,onSelect:e=>{e?.stopPropagation(),b(),v(void 0)},children:[(0,d.jsx)(l.IconArrowCircleUp,{size:`20`}),`Replace with upload`]}),(0,d.jsxs)(c.Dropdown.Item,{onSelect:e=>{e?.stopPropagation(),p(),v(void 0)},children:[(0,d.jsx)(l.IconImageStack,{size:`20`}),`Replace with asset`]})]}),(0,d.jsx)(c.Dropdown.Group,{children:(0,d.jsxs)(c.Dropdown.Item,{emphasis:`danger`,onSelect:e=>{e?.stopPropagation(),f(),v(void 0)},children:[(0,d.jsx)(l.IconTrashBin,{size:`20`}),`Delete`]})})]})]})})]})]})});xe.displayName=`AttachmentItem`;var Se=e=>{let{attributes:t,listeners:n,setNodeRef:r,transform:i,transition:a,isDragging:o}=(0,h.useSortable)({id:e.item.id}),s={transform:i?`translate(${i.x}px, ${i.y}px)`:``,transition:a,zIndex:o?2:1},c={...t,...n};return(0,d.jsx)(xe,{ref:r,isDragging:o,transformStyle:s,draggableProps:c,...e})},Ce=(0,u.forwardRef)(({children:e,...t},n)=>(0,d.jsxs)(c.Button,{ref:n,size:`small`,rounding:`full`,emphasis:`default`,"data-test-id":`attachments-button-trigger`,className:`tw-body-medium`,...t,"aria-haspopup":`menu`,children:[(0,d.jsx)(l.IconPaperclip,{size:`16`}),e,(0,d.jsx)(l.IconCaretDown,{size:`12`})]}));Ce.displayName=`AttachmentsButtonTrigger`;var we=({items:e=[],onDelete:t,onReplaceWithBrowse:n,onReplaceWithUpload:r,onBrowse:i,onUpload:a,onSorted:o,appBridge:f,triggerComponent:g=Ce,isOpen:_,onOpenChange:v})=>{let[y,b]=(0,u.useState)(e),[x,S]=(0,u.useState)(!1),C=(0,p.useSensors)((0,p.useSensor)(p.PointerSensor),(0,p.useSensor)(p.KeyboardSensor)),[w,T]=(0,u.useState)(void 0),[E,D]=(0,u.useState)(!1),[O,ee]=(0,u.useState)(!1),[k,A]=(0,u.useState)([]),[te,ne]=(0,u.useState)(null),j=(0,s.useEditorState)(f),{openAssetChooser:M,closeAssetChooser:N}=(0,s.useAssetChooser)(f),re=_!==void 0,P=re?_:x,F=y?.find(e=>e.id===w),I=e.length,L=I>0?`Open attachments, ${I} ${I===1?`attachment`:`attachments`}`:`Add attachments`,[R,{results:z,doneAll:B}]=(0,s.useAssetUpload)({onUploadProgress:()=>!E&&D(!0)}),V=e=>{(re?v:S)?.(e)};(0,u.useEffect)(()=>{b(e)},[e]),(0,u.useEffect)(()=>{te&&(D(!0),R(te))},[te]),(0,u.useEffect)(()=>{(async()=>{B&&(await a(z),D(!1))})()},[B,z]);let ie=()=>{V(!1),M(async e=>{N(),V(!0),ee(!0),await i(e),ee(!1)},{multiSelection:!0,selectedValueIds:y.map(e=>e.id)})},ae=e=>{V(!1),M(async t=>{V(!0),N(),A([...k,e.id]),await n(e,t[0]),A(k.filter(t=>t!==e.id))},{multiSelection:!1,selectedValueIds:y.map(e=>e.id)})},oe=async(e,t)=>{A([...k,e.id]),await r(e,t),A(k.filter(t=>t!==e.id))};return j||(y?.length??0)>0?(0,d.jsx)(`div`,{"data-test-id":`attachments-flyout-button`,children:(0,d.jsx)(c.Flyout.Root,{open:P,onOpenChange:e=>V(F?!0:e),children:(0,d.jsxs)(c.Tooltip.Root,{enterDelay:500,children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:(0,d.jsx)(c.Flyout.Trigger,{asChild:!0,"data-test-id":`attachments-button-trigger`,children:(0,d.jsx)(g,{isFlyoutOpen:P,"aria-label":L,children:(0,d.jsx)(`div`,{"aria-hidden":`true`,children:I>0?I:`Add`})})})}),(0,d.jsx)(c.Flyout.Content,{side:`bottom`,align:`end`,width:`300px`,onEscapeKeyDown:e=>{e.stopPropagation(),V(!1)},children:(0,d.jsxs)(`div`,{className:`tw-w-full`,"data-test-id":`attachments-flyout-content`,children:[y.length>0&&(0,d.jsx)(p.DndContext,{sensors:C,collisionDetection:p.closestCenter,onDragStart:e=>{let{active:t}=e;T(t.id)},onDragEnd:e=>{let{active:t,over:n}=e;if(n&&t.id!==n.id&&y){let e=y.findIndex(e=>e.id===t.id),r=y.findIndex(e=>e.id===n.id),i=(0,h.arrayMove)(y,e,r);b(i),o(i)}T(void 0)},modifiers:[m.restrictToParentElement],children:(0,d.jsx)(h.SortableContext,{items:y,strategy:h.rectSortingStrategy,children:(0,d.jsx)(`div`,{className:`tw-border-b tw-border-b-line tw-relative`,children:y.map(e=>(0,d.jsx)(Se,{isEditing:j,isLoading:k.includes(e.id),item:e,onDelete:()=>t(e),onReplaceWithBrowse:()=>ae(e),onReplaceWithUpload:t=>oe(e,t),onDownload:()=>f.dispatch({name:`downloadAsset`,payload:e})},e.id))})})}),j&&(0,d.jsxs)(`div`,{className:`tw-px-5 tw-py-3`,"data-test-id":`asset-input-placeholder`,children:[(0,d.jsx)(`div`,{className:`tw-font-primary tw-font-medium tw-text-primary tw-text-small tw-my-4`,children:`Add attachments`}),E||O?(0,d.jsxs)(c.AssetInput.Root,{orientation:`horizontal`,children:[(0,d.jsx)(c.AssetInput.Preview,{children:(0,d.jsx)(c.AssetInput.PreviewLoading,{})}),(0,d.jsx)(c.AssetInput.Title,{children:`Asset`}),(0,d.jsx)(c.AssetInput.Metadata,{children:(0,d.jsx)(c.AssetInput.MetadataItem,{children:(0,d.jsxs)(c.Flex,{align:`center`,gap:.5,children:[O?(0,d.jsx)(l.IconImageStack,{size:16}):(0,d.jsx)(l.IconArrowCircleUp,{size:16}),O?`Loading`:`Uploading`]})})})]}):(0,d.jsxs)(c.AssetInput.Placeholder,{children:[(0,d.jsx)(c.AssetInput.UploadInput,{allowMultiple:!0,onSelect:e=>ne(e.target.files)}),(0,d.jsx)(c.AssetInput.BrowseInput,{onBrowse:ie})]})]})]})}),(0,d.jsx)(c.Tooltip.Content,{side:`top`,children:`Attachments`})]})})}):null},Te=(e,t)=>{let n=[g.FOCUS_VISIBLE_STYLE,`tw-relative tw-inline-flex tw-items-center tw-justify-center`,`tw-h-6 tw-p-1`,`tw-rounded-medium`,`tw-body-medium`,`tw-gap-0.5`,`focus-visible:tw-z-10`];return t?n.push(`tw-bg-container-secondary-active`,`tw-text-container-secondary-on-secondary-container`,e===`grab`?`tw-cursor-grabbing`:`tw-cursor-pointer`):n.push(`hover:tw-bg-container-secondary-hover active:tw-bg-container-secondary-active`,`tw-text-secondary hover:tw-text-container-secondary-on-secondary-container active:tw-text-container-secondary-on-secondary-container`,e===`grab`?`!tw-cursor-grab active:tw-cursor-grabbing`:`tw-cursor-pointer`),y(n)},U=(0,u.forwardRef)(({onClick:e,children:t,forceActiveStyle:n,cursor:r=`pointer`,"data-test-id":i=`base-toolbar-button`,...a},o)=>(0,d.jsx)(`button`,{onClick:e,className:Te(r,n),"data-test-id":i,...a,ref:o,children:t}));U.displayName=`BaseToolbarButton`;var Ee=(0,u.forwardRef)(({children:e,isFlyoutOpen:t,...n},r)=>(0,d.jsxs)(U,{forceActiveStyle:t,"data-test-id":`attachments-toolbar-button-trigger`,ref:r,...n,"aria-haspopup":`menu`,children:[(0,d.jsx)(l.IconPaperclip,{size:`16`}),e,(0,d.jsx)(l.IconCaretDown,{size:`12`})]}));Ee.displayName=`AttachmentsToolbarButtonTrigger`;var De=`attachments`,Oe=({flyoutId:e=De})=>{let{appBridge:t,attachments:n,onAttachmentsAdd:r,onAttachmentDelete:i,onAttachmentReplace:a,onAttachmentsSorted:o}=ve(),{isOpen:s,onOpenChange:c}=fe(e),l=H();return(0,d.jsx)(we,{onUpload:r,onDelete:i,onReplaceWithBrowse:a,onReplaceWithUpload:a,onSorted:o,onBrowse:r,items:n,appBridge:t,triggerComponent:Ee,isOpen:s&&!l,onOpenChange:c})},ke=`Drag or press ↵ to move`,Ae=`Move with ↑↓←→ and confirm with ↵`,je=({content:e,children:t,open:n,disabled:r})=>r?t:(0,d.jsxs)(c.Tooltip.Root,{enterDelay:300,open:n,children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:t}),(0,d.jsx)(c.Tooltip.Content,{side:`top`,children:(0,d.jsx)(`div`,{children:e})})]}),Me=({tooltip:e,icon:t,setActivatorNodeRef:n,draggableProps:r})=>{let i=H(),{activatorEvent:a}=(0,p.useDndContext)(),o=a instanceof KeyboardEvent;return(0,d.jsx)(je,{...i&&{open:o},content:(0,d.jsx)(`div`,{children:i?Ae:e??`Drag or press ↵ to move`}),children:(0,d.jsx)(U,{ref:n,"data-test-id":`block-item-wrapper-toolbar-btn`,forceActiveStyle:i,cursor:`grab`,...r,children:t})})},Ne=({content:e,icon:t,tooltip:n,flyoutId:r,flyoutFooter:i,flyoutHeader:a})=>{let{isOpen:o,onOpenChange:s}=fe(r),l=H();return(0,d.jsx)(je,{disabled:l||o,content:n,children:(0,d.jsx)(`div`,{className:`tw-flex tw-flex-shrink-0 tw-flex-1 tw-h-6 tw-relative`,children:(0,d.jsxs)(c.Flyout.Root,{open:o&&!l,onOpenChange:s,children:[(0,d.jsx)(c.Flyout.Trigger,{asChild:!0,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-flyout`,forceActiveStyle:o&&!l,children:t})}),(0,d.jsxs)(c.Flyout.Content,{side:`bottom`,align:`end`,padding:`comfortable`,children:[a?(0,d.jsx)(c.Flyout.Header,{children:a}):null,(0,d.jsx)(c.Flyout.Body,{children:e}),i?(0,d.jsx)(c.Flyout.Footer,{children:i}):null]})]})})})},Pe=`menu`,Fe=({items:e,flyoutId:t=Pe,tooltip:n=`Options`})=>{let{isOpen:r,onOpenChange:i}=fe(t),a=H();return(0,d.jsx)(c.Dropdown.Root,{open:r&&!a,onOpenChange:i,children:(0,d.jsxs)(c.Tooltip.Root,{children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:(0,d.jsx)(c.Dropdown.Trigger,{asChild:!0,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-flyout`,children:(0,d.jsx)(l.IconDotsHorizontal,{size:`16`})})})}),(0,d.jsx)(c.Dropdown.Content,{children:e.map((e,t)=>(0,d.jsx)(c.Dropdown.Group,{children:e.map((e,n)=>(0,d.jsxs)(c.Dropdown.Item,{"data-test-id":`menu-item`,onSelect:()=>{i(!1),e.onClick()},emphasis:e.style||`default`,children:[(0,d.jsx)(`div`,{className:`tw-mr-2`,children:e.icon}),(0,d.jsx)(`span`,{children:e.title})]},`${t}-${n}`))},t))}),(0,d.jsx)(c.Tooltip.Content,{children:n})]})})},Ie=({tooltip:e,icon:t,onClick:n})=>{let r=H();return(0,d.jsx)(je,{disabled:r,content:e??``,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-btn`,onClick:n,children:t})})},Le=({children:e})=>(0,d.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}),Re=({items:e,attachments:t})=>(0,d.jsxs)(`div`,{"data-test-id":`block-item-wrapper-toolbar`,className:`tw-rounded-md tw-bg-surface tw-border tw-border-line-mid tw-divide-x tw-divide-line-mid tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate`,children:[t.isEnabled&&(0,d.jsx)(Le,{children:(0,d.jsx)(Oe,{})}),e.length>0&&(0,d.jsx)(Le,{children:e.map(e=>{switch(e.type){case`dragHandle`:return(0,d.jsx)(Me,{...e},e.tooltip+e.type);case`menu`:return(0,d.jsx)(Fe,{...e},e.tooltip+e.type);case`flyout`:return(0,d.jsx)(Ne,{...e},e.tooltip+e.type);default:return(0,d.jsx)(Ie,{...e},e.tooltip+e.type)}})})]}),ze=(0,u.memo)(({children:e,toolbarItems:t,shouldHideWrapper:n,shouldHideComponent:r=!1,isDragging:i=!1,shouldFillContainer:a,outlineOffset:o=0,shouldBeShown:s=!1,showAttachments:c=!1})=>{let[l,f]=(0,u.useState)(s?[Pe]:[]),p=(0,u.useRef)(null);if(n)return(0,d.jsx)(d.Fragment,{children:e});let m=t?.filter(e=>e!==void 0),h=l.length>0||s;return(0,d.jsx)(ce,{isDragPreview:i,children:(0,d.jsx)(ue,{openFlyoutIds:l,setOpenFlyoutIds:f,children:(0,d.jsxs)(`div`,{ref:p,"data-test-id":`block-item-wrapper`,style:{outlineOffset:o},className:y([`tw-relative tw-group`,a&&`tw-flex-1 tw-h-full tw-w-full`,`hover:tw-outline hover:tw-outline-1 hover:tw-outline-container-highlight-on-highlight-container focus-within:tw-outline focus-within:tw-outline-1 focus-within:tw-outline-container-highlight-on-highlight-container`,h&&`tw-outline tw-outline-1 tw-outline-container-highlight-on-highlight-container`,r&&`tw-opacity-0`]),children:[(0,d.jsx)(`div`,{style:{right:-1-o,bottom:`calc(100% - ${2+o}px)`},className:y([`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`,h&&`tw-opacity-100`]),children:(0,d.jsx)(Re,{attachments:{isEnabled:c},items:m})}),e]})})})});ze.displayName=`BlockItemWrapper`;var Be=({ref:e,disabled:t,onChange:n})=>{(0,u.useEffect)(()=>{if(t||!e.current)return;let r=!1,i=new IntersectionObserver(([e])=>{e.isIntersecting!==r&&(r=e.isIntersecting,n(e.isIntersecting))});return i.observe(e.current),()=>{i.disconnect()}},[e,t,n])},Ve=(0,_.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})),W=Ve.set,G=Ve.get,He=()=>Ve.use,Ue=e=>{if(!e)return!1;let t=e=>e.some(e=>e.text?e.text!==``:e.children?t(e.children):!1);try{return t(JSON.parse(e))}catch{return!1}},We=(e=`p`,t=``,n)=>Ue(t)?t:JSON.stringify([{type:e,children:[{text:t,textStyle:e}],align:n}]),Ge=(e,t,n)=>e===B.Custom?t:n,Ke=(e,t)=>{let n=(0,_.getAboveNode)(e,{match:{type:_.ELEMENT_LINK}});return Array.isArray(n)?t(n[0]):``},qe=e=>Ke(e,e=>e.chosenLink?.searchResult?.link||``),Je=e=>Ke(e,e=>e.url||``),Ye=e=>e.url||e.chosenLink?.searchResult?.link||``,Xe=e=>Ke(e,Ye),Ze=/^\/(?!\/)\S*$/,Qe=e=>{if(Ze.test(e))return e;try{return new URL(e),e}catch{return`https://${e}`}},$e=e=>{if(Ze.test(e))return!0;try{let t=new URL(e);return[`http:`,`https:`,`mailto:`,`tel:`].includes(t.protocol)&&t.pathname!==``}catch{return!1}},K=e=>$e(Qe(e))||e===``,et=(e,{type:t})=>{let{apply:n,normalizeNode:r}=e;return e.apply=t=>{if(t.type!==`set_selection`){n(t);return}let r=t.newProperties;if(!r?.focus||!r.anchor||!(0,_.isCollapsed)(r)){n(t);return}let i=(0,_.getAboveNode)(e,{at:r,match:{type:(0,_.getPluginType)(e,Z)}});if(i){let[,n]=i,a;(0,_.isStartPoint)(e,r.focus,n)&&(a=(0,_.getPreviousNodeEndPoint)(e,n)),(0,_.isEndPoint)(e,r.focus,n)&&(a=(0,_.getNextNodeStartPoint)(e,n)),a&&(t.newProperties={anchor:a,focus:a})}n(t)},e.normalizeNode=([t,n])=>{if(t.type===(0,_.getPluginType)(e,`button`)){let t=e.selection;if(t&&(0,_.isCollapsed)(t)&&(0,_.isEndPoint)(e,t.focus,n)){let t=(0,_.getNextNodeStartPoint)(e,n);if(t)(0,_.select)(e,t);else{let t=_.Path.next(n);(0,_.insertNodes)(e,{text:``},{at:t}),(0,_.select)(e,t)}}}r([t,n])},(0,_.withRemoveEmptyNodes)(e,(0,_.mockPlugin)({options:{types:t}}))},tt=(e,t,n)=>{(0,_.insertNodes)(e,[dt(e,t)],n)},nt=e=>{if(!e.selection)return;let{isUrl:t,forceSubmit:n}=(0,_.getPluginOptions)(e,Z),r=G.url();if(!(t?.(r)||n))return;let i=G.text(),a=G.buttonStyle(),o=G.newTab()?void 0:`_self`;return W.reset(),rt(e,{url:r,text:i,buttonStyle:a,target:o,isUrl:e=>n||!t?!0:t(e)}),setTimeout(()=>{(0,_.focusEditor)(e,e.selection??void 0)},0),!0},q=(e,t)=>(0,_.withoutNormalizing)(e,()=>{if(t?.split){if((0,_.getAboveNode)(e,{at:e.selection?.anchor,match:{type:(0,_.getPluginType)(e,`button`)}}))return(0,_.splitNodes)(e,{at:e.selection?.anchor,match:t=>(0,_.isElement)(t)&&t.type===(0,_.getPluginType)(e,`button`)}),q(e,{at:e.selection?.anchor}),!0;if((0,_.getAboveNode)(e,{at:e.selection?.focus,match:{type:(0,_.getPluginType)(e,`button`)}}))return(0,_.splitNodes)(e,{at:e.selection?.focus,match:t=>(0,_.isElement)(t)&&t.type===(0,_.getPluginType)(e,`button`)}),q(e,{at:e.selection?.focus}),!0}(0,_.unwrapNodes)(e,{match:{type:(0,_.getPluginType)(e,Z)},...t})}),rt=(e,{url:t,text:n,buttonStyle:r,target:i,insertTextInButton:a,insertNodesOptions:o,isUrl:s=(0,_.getPluginOptions)(e,Z).isUrl})=>{let c=e.selection;if(!c)return;let l=(0,_.getAboveNode)(e,{at:c,match:{type:(0,_.getPluginType)(e,Z)}});if(a&&l)return e.insertText(t),!0;if(!s?.(t))return;if((0,_.isDefined)(n)&&n.length===0&&(n=t),l)return ot(t,e,l,i,r,n),!0;let[u,d]=(0,_.findNode)(e,{at:c,match:{type:(0,_.getPluginType)(e,`button`)}})??[],f=it(e,d,n);if((0,_.isExpanded)(c))return at(l,e,t,r,i,n),!0;f&&(0,_.removeNodes)(e,{at:d});let p=(0,_.getNodeProps)(u??{}),m=e.selection?.focus.path;if(!m)return;let h=(0,_.getNodeLeaf)(e,m);return n?.length||(n=t),tt(e,{...p,url:t,target:i,children:[{...h,text:n}]},o),!0};function it(e,t,n){return t&&n?.length&&n!==(0,_.getEditorString)(e,t)}function at(e,t,n,r,i,a){e?q(t,{at:e[1]}):q(t,{split:!0}),ct(t,{url:n,buttonStyle:r,target:i}),st(t,{url:n,target:i,text:a})}function ot(e,t,n,r,i,a){(e!==n[0]?.url||r!==n[0]?.target||i!==n[0]?.buttonStyle)&&(0,_.setNodes)(t,{url:e,target:r,buttonStyle:i},{at:n[1]}),st(t,{url:e,text:a,target:r})}var st=(e,{text:t})=>{let n=(0,_.getAboveNode)(e,{match:{type:(0,_.getPluginType)(e,Z)}});if(n){let[r,i]=n;if(t?.length&&t!==(0,_.getEditorString)(e,i)){let n=r.children[0];(0,_.replaceNodeChildren)(e,{at:i,nodes:{...n,text:t},insertOptions:{select:!0}})}}},ct=(e,{url:t,buttonStyle:n,target:r,...i})=>{(0,_.wrapNodes)(e,{type:(0,_.getPluginType)(e,Z),url:t,buttonStyle:n,target:r,children:[]},{split:!0,...i})},lt=(e,t)=>{let n=(0,_.getAboveNode)(e,{match:{type:Z}});return Array.isArray(n)?t(n[0]):``},ut=e=>lt(e,e=>e.url??``),dt=(e,{url:t,text:n=``,buttonStyle:r=`primary`,target:i,children:a})=>({type:(0,_.getPluginType)(e,Z),url:t,target:i,buttonStyle:r,children:a??[{text:n}]}),ft=(e,{focused:t}={})=>{if(G.mode()===`edit`){pt(e);return}mt(e,{focused:t})},pt=e=>{let t=(0,_.findNode)(e,{match:{type:(0,_.getPluginType)(e,Z)}});if(!t)return;let[n,r]=t,i=(0,_.getEditorString)(e,r);W.url(n.url),W.newTab(n.target===void 0),i===n.url&&(i=``),W.text(i),W.isEditing(!0)},mt=(e,{focused:t}={})=>{G.mode()||t&&((0,_.isRangeAcrossBlocks)(e,{at:e.selection})||(0,_.someNode)(e,{match:{type:(0,_.getPluginType)(e,`button`)}})||(W.text((0,_.getEditorString)(e,e.selection)),W.show(`insert`,e.id)))},ht={marginTop:`10px`,marginBottom:`10px`,display:`inline-block`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`,verticalAlign:`middle`,boxSizing:`border-box`,overflowWrap:`normal`},gt={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)`}}},_t=e=>{let{attributes:t,children:n}=e,r=e.element.url||e.element.chosenLink?.searchResult?.link||``,i=e.element.target||`_self`,a=String(e.element.buttonStyle)||`primary`;return(0,d.jsx)(vt,{attributes:t,href:r,target:i,styles:gt[`button${a.charAt(0).toUpperCase()+a.slice(1)}`],children:n})},vt=({attributes:e,styles:t={hover:{}},children:n,href:r=`#`,target:i})=>{let[a,o]=(0,u.useState)(!1);return(0,d.jsx)(`a`,{...e,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),href:r,target:i,style:a?{...t,...t.hover}:t,children:n})},yt=class extends _.MarkupElement{constructor(e=Z,t=_t){super(e,t)}},bt=(0,u.forwardRef)((e,t)=>{let n=(0,_.useEditorRef)();return(0,d.jsx)(_.ToolbarButton,{ref:t,...e,onMouseDown:e=>{e.preventDefault(),(0,_.focusEditor)(n,n.selection??n.prevSelection??void 0)},onClick:()=>{ft(n,{focused:!0})},children:(0,d.jsx)(_.IconStylingWrapper,{icon:(0,d.jsx)(l.IconButton,{size:16})})})});bt.displayName=`ButtonToolbarButton`;var xt=({editorId:e,id:t})=>{let n=(0,_.useEditorState)((0,_.useEventPlateId)(e)),r=!!(0,_.isRangeInSameBlock)(n,{at:n.selection}),i=(0,_.getPluginType)(n,Z),a=!!n?.selection&&(0,_.someNode)(n,{match:{type:i}});return(0,d.jsx)(`div`,{"data-plugin-id":t,children:(0,d.jsx)(bt,{pressed:a,disabled:!r,tooltip:(0,_.getTooltip)(r?`Button\n${(0,_.getHotkeyByPlatform)(`Ctrl+Shift+K`)}`:`Buttons can only be set for a single text block.`)})})},J=`link-plugin`,Y=function(e){return 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}({}),X={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)`},[J]:{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)`},...gt},St=()=>{let e=(0,_.useEditorRef)();return(0,d.jsx)(_.FloatingModalWrapper,{padding:`16px`,minWidth:`400px`,"data-test-id":`floating-button-edit`,children:(0,d.jsxs)(`span`,{"data-test-id":`preview-button-flyout`,className:`tw-flex tw-justify-between tw-items-center tw-gap-2`,children:[(0,d.jsx)(`a`,{"data-test-id":`floating-button-edit-url`,href:G.url(),target:`_blank`,rel:`noopener noreferrer`,style:X[J],className:`tw-break-all`,children:G.url()}),(0,d.jsxs)(`span`,{className:`tw-flex tw-gap-2`,children:[(0,d.jsx)(`button`,{onClick:()=>{pt(e)},tabIndex:0,"data-test-id":`edit-button-button`,className:`tw-transition tw-cursor-pointer tw-rounded-medium hover:tw-bg-black-10 tw-p-1`,children:(0,d.jsx)(l.IconPen,{size:16})}),(0,d.jsx)(`button`,{onClick:()=>{q(e),(0,_.focusEditor)(e,e.selection??void 0)},tabIndex:0,"data-test-id":`remove-button-button`,className:`tw-transition tw-cursor-pointer tw-rounded-medium hover:tw-bg-black-10 tw-p-1`,children:(0,d.jsx)(l.IconTrashBin,{size:16})})]})]})})},Ct=e=>e.filter(e=>!!e.title?.trim()),wt=()=>(0,d.jsx)(`div`,{className:`tw-flex tw-justify-center tw-h-10 tw-items-center`,children:(0,d.jsx)(c.LoadingCircle,{size:`small`})}),Tt=({section:e,selectedUrl:t,onSelectUrl:n})=>{let r=e.permanentLink===t;return(0,d.jsx)(`button`,{"data-test-id":`internal-link-selector-section-link`,type:`button`,"data-is-active":r,className:`
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},a=(i,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var c=n(a),l=0,u=c.length,d;l<u;l++)d=c[l],!r.call(i,d)&&d!==o&&e(i,d,{get:(e=>a[e]).bind(null,d),enumerable:!(s=t(a,d))||s.enumerable});return i},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`));let s=require("@frontify/app-bridge"),c=require("@frontify/fondue/components"),l=require("@frontify/fondue/icons"),u=require("react"),d=require("react/jsx-runtime"),f=require("@ctrl/tinycolor"),p=require("@dnd-kit/core"),m=require("@dnd-kit/modifiers"),h=require("@dnd-kit/sortable"),g=require("@frontify/fondue"),_=require("@frontify/fondue/rte"),v=require("react-dom");var y=e=>e.filter(Boolean).join(` `),b=({onDrop:e,label:t,icon:n,secondaryLabel:r,isLoading:i,fillParentContainer:a,onAssetChooseClick:o,onUploadClick:f,withMenu:p=!0,onClick:m,validFileType:h,verticalLayout:g})=>{let[_,v]=(0,u.useState)(!1),[b,x]=(0,u.useState)(),S=(0,u.useRef)(null),[C,w]=(0,u.useState)(void 0),T=t=>{if(t.preventDefault(),v(!1),!E(t.dataTransfer.files)){w(`Invalid`),setTimeout(()=>{w(void 0)},1e3);return}e?.(t.dataTransfer.files)},E=e=>{if(!h)return!0;for(let t=0;t<e.length;t++){let n=e[t].name.split(`.`).pop()??``;if(!s.FileExtensionSets[h].includes(n))return!1}return!0},D=e=>{if(!S.current||i)return;let{clientX:t,clientY:n}=e,r=t===0&&n===0,{left:a,top:o,width:s,height:c}=S.current.getBoundingClientRect(),l=r?s/2:t-a,u=r?c/2:n-o;x([l,u])},O=(0,u.useCallback)(e=>{e(),x(void 0)},[]),ee=(0,u.useMemo)(()=>{let e=[];return f&&e.push({onSelect:()=>O(f),title:`Upload asset`,icon:(0,d.jsx)(l.IconArrowCircleUp,{size:`20`})}),o&&e.push({onSelect:()=>O(o),title:`Browse asset`,icon:(0,d.jsx)(l.IconImageStack,{size:`20`})}),e},[o,f,O]);return(0,d.jsxs)(`button`,{type:`button`,ref:S,"data-test-id":`block-inject-button`,className:y([`tw-body-medium tw-relative 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`,g?`[&: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`,a?`tw-h-full`:`tw-h-[72px]`,_&&!i?`tw-border-dashed`:`tw-border-solid`,b&&`tw-bg-surface-hover`,_&&`tw-bg-surface`,C?`!tw-border-red-50 !tw-cursor-not-allowed`:` tw-border-line-mid`,i||b||_||C?``:`tw-text-secondary hover:tw-text-primary hover:tw-bg-surface hover:tw-border-line-strong active:tw-text-primary active:tw-bg-surface-hover active:tw-border-line-strong`,(_||b)&&!C?`[&>*]:tw-pointer-events-none tw-border-line-strong`:`tw-bg-surface-dim tw-text-secondary`]),onDragEnter:e?e=>{if(v(!0),h===`Images`)for(let t of Array.from(e.dataTransfer.items))t?.type?.startsWith(`image/`)?w(void 0):w(`Invalid`)}:void 0,onDragOver:e?e=>{e.preventDefault()}:void 0,onDragLeave:e?()=>{v(!1),w(void 0)}:void 0,onDrop:e?T:void 0,onClick:e=>{p&&!b&&D(e),m?.()},children:[i?(0,d.jsx)(c.LoadingCircle,{}):C?(0,d.jsxs)(`div`,{className:` tw-flex tw-items-center tw-justify-center tw-text-red-60 tw-font-medium`,children:[(0,d.jsx)(l.IconExclamationMarkTriangle,{size:`16`}),C]}):(0,d.jsxs)(d.Fragment,{children:[n&&(0,d.jsx)(`div`,{children:n}),(t||r)&&(0,d.jsxs)(`div`,{className:`tw-flex tw-flex-col tw-items-start`,children:[t&&(0,d.jsx)(`div`,{className:`tw-font-medium`,children:t}),r&&(0,d.jsx)(`div`,{className:`tw-font-normal`,children:r})]})]}),b&&(0,d.jsx)(`div`,{className:`tw-absolute tw-left-0 tw-top-full tw-z-20`,style:{left:b[0],top:b[1]},children:(0,d.jsxs)(c.Flyout.Root,{open:!0,onOpenChange:e=>!e&&x(void 0),children:[(0,d.jsx)(c.Flyout.Trigger,{children:(0,d.jsx)(`div`,{})}),(0,d.jsx)(c.Flyout.Content,{triggerOffset:`compact`,children:(0,d.jsxs)(c.Dropdown.Root,{open:!0,children:[(0,d.jsx)(c.Dropdown.Trigger,{children:(0,d.jsx)(`div`,{})}),(0,d.jsx)(c.Dropdown.Content,{triggerOffset:`compact`,children:ee.map(e=>(0,d.jsxs)(c.Dropdown.Item,{onSelect:e.onSelect,children:[e.icon,e.title]},e.title))})]})})]})})]})},x=e=>(e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e.hasOwnProperty(t)))(e)?(e=>{let t=typeof e.alpha==`number`?e.alpha:1;return{r:e.red,g:e.green,b:e.blue,a:t}})(e):e,S=e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e?.hasOwnProperty(t)),C=(e,t)=>{let n=S(e)?x(e):e,r=new f.TinyColor(n);return t?r.getBrightness()<t:r.isDark()||r.getAlpha()>.25&&r.getAlpha()<1},w=e=>new f.TinyColor(x(e)).toHex8String(),T=e=>new f.TinyColor(x(e)).toHexString(),E=e=>new f.TinyColor(x(e)).toRgbString(),D=(e,t)=>new f.TinyColor(t).setAlpha(e).toRgbString(),O=e=>{let{r:t,g:n,b:r,a:i}=new f.TinyColor(e);return{red:t,green:n,blue:r,alpha:i}},ee=e=>typeof e==`object`&&[`red`,`green`,`blue`].every(t=>e?.hasOwnProperty(t)),k=(e,t)=>{let n=ee(e)?x(e):e,r=ee(t)?x(t):t,i=new f.TinyColor(n),a=new f.TinyColor(r);for(;(0,f.readability)(i,a)<4.5;)i=i.darken(1);return i.toRgbString()},A=e=>({backgroundColor:E(e)}),te={red:241,green:241,blue:241,alpha:1},ne={red:234,green:235,blue:235,alpha:1},j=`24px`,M=`24px`,N=function(e){return e.Solid=`Solid`,e.Dashed=`Dashed`,e.Dotted=`Dotted`,e}({}),re={Solid:`solid`,Dotted:`dotted`,Dashed:`dashed`},P=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),F={None:`0px`,Small:`2px`,Medium:`4px`,Large:`12px`},I=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),L={None:`0px`,Small:`24px`,Medium:`36px`,Large:`60px`},R=function(e){return e.None=`None`,e.Small=`Small`,e.Medium=`Medium`,e.Large=`Large`,e}({}),z={None:`0px`,Small:`24px`,Medium:`36px`,Large:`60px`},B=function(e){return e.Global=`Global`,e.Custom=`Custom`,e}({}),V=function(e){return e.Auto=`Auto`,e.S=`S`,e.M=`M`,e.L=`L`,e}({}),ie={Auto:`4px`,S:`10px`,M:`30px`,L:`50px`},ae=(e=N.Solid,t=`1px`,n=ne)=>({borderStyle:re[e],borderWidth:t,borderColor:E(n)}),oe=(e,t=!1,n)=>({borderRadius:t?n:F[e]}),se=(0,u.createContext)(!1);se.displayName=`DragPreviewContext`;var ce=({children:e,isDragPreview:t})=>(0,d.jsx)(se.Provider,{value:t,children:e}),H=()=>(0,u.useContext)(se),le=(0,u.createContext)({openFlyoutIds:[],setOpenFlyoutIds:()=>console.error(`No MultiFlyoutContext Provider found`)});le.displayName=`MultiFlyoutContext`;var ue=({children:e,openFlyoutIds:t,setOpenFlyoutIds:n})=>{let r=(0,u.useMemo)(()=>({openFlyoutIds:t,setOpenFlyoutIds:n}),[t,n]);return(0,d.jsx)(le.Provider,{value:r,children:e})},de=()=>(0,u.useContext)(le),fe=e=>{let{openFlyoutIds:t,setOpenFlyoutIds:n}=de(),r=(0,u.useCallback)(t=>{n(n=>{let r=n.filter(t=>t!==e);return t?[...r,e]:r})},[e,n]);return{isOpen:t.includes(e),onOpenChange:r}},pe=(e,t)=>{let{blockAssets:n,addAssetIdsToKey:r,deleteAssetIdsFromKey:i,updateAssetIdsFromKey:a}=t,o=n?.[e]||[];return{onAttachmentsAdd:async t=>{await r(e,t.map(e=>e.id))},onAttachmentDelete:async t=>{await i(e,[t.id])},onAttachmentReplace:async(t,n)=>{let r=o.map(e=>e.id===t.id?n.id:e.id);await a(e,r)},onAttachmentsSorted:async t=>{let n=t.map(e=>e.id);await a(e,n)},attachments:o}},me=(e,t)=>{let{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:i,onAttachmentsSorted:a,attachments:o}=pe(t,(0,s.useBlockAssets)(e));return{onAttachmentsAdd:n,onAttachmentDelete:r,onAttachmentReplace:i,onAttachmentsSorted:a,attachments:o,appBridge:e}},he=(0,u.createContext)(null);he.displayName=`AttachmentsContext`;var ge=({appBridge:e,children:t,assetId:n})=>{let r=me(e,n);return(0,d.jsx)(he.Provider,{value:r,children:t})},_e=({blockAssetBundle:e,appBridge:t,children:n,assetId:r})=>{let i=pe(r,e);return(0,d.jsx)(he.Provider,{value:{...i,appBridge:t},children:n})},ve=()=>{let e=(0,u.useContext)(he);if(!e)throw Error(`No AttachmentsContext Provided. Component must be wrapped in an 'AttachmentsProvider' or the 'withAttachmentsProvider' HOC`);return e},ye=(e,t)=>{let n=n=>(0,d.jsx)(ge,{appBridge:n.appBridge,assetId:t,children:(0,d.jsx)(e,{...n})});return n.displayName=`withAttachmentsProvider`,n},be=e=>e===`IMAGE`?(0,d.jsx)(l.IconImage,{size:`24`}):e===`VIDEO`?(0,d.jsx)(l.IconPlayFrame,{size:`24`}):e===`AUDIO`?(0,d.jsx)(l.IconMusicNote,{size:`24`}):(0,d.jsx)(l.IconDocument,{size:`24`}),xe=(0,u.forwardRef)(({item:e,isEditing:t,draggableProps:n,transformStyle:r,isDragging:i,isOverlay:a,isLoading:o,onDelete:f,onReplaceWithBrowse:p,onReplaceWithUpload:m,onDownload:h},g)=>{let[_,v]=(0,u.useState)(),[b,{selectedFiles:x}]=(0,s.useFileInput)({multiple:!0,accept:`image/*`}),[S,{results:C,doneAll:w}]=(0,s.useAssetUpload)();(0,u.useEffect)(()=>{x&&S(x[0])},[x]),(0,u.useEffect)(()=>{w&&m(C[0])},[w,C]);let T=o||x&&!w;return(0,d.jsxs)(`button`,{type:`button`,"data-test-id":`attachments-item`,onClick:()=>!_&&h?.(),ref:g,style:{...r,opacity:i&&!a?.3:1,fontFamily:`var(-f-theme-settings-body-font-family)`},className:y([`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-surface-hover focus-visible:tw-outline focus-visible:!-tw-outline-offset-4`,i?`tw-bg-surface-hover`:``]),children:[(0,d.jsx)(`div`,{className:`tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container`,children:T?(0,d.jsx)(c.LoadingCircle,{size:`small`}):be(e.objectType)}),(0,d.jsxs)(`div`,{className:`tw-text-small tw-flex-1 tw-min-w-0`,children:[(0,d.jsxs)(`div`,{className:`tw-whitespace-nowrap tw-overflow-hidden tw-text-ellipsis tw-font-bold tw-text-secondary group-hover:tw-text-container-secondary-on-secondary-container`,children:[(0,d.jsx)(`span`,{className:`tw-sr-only`,children:`Download attachment `}),e.title]}),(0,d.jsx)(`div`,{className:`tw-text-secondary`,children:`${e.fileSizeHumanReadable} - ${e.extension}`})]}),t&&(0,d.jsxs)(`div`,{"data-test-id":`attachments-actionbar`,className:y([`tw-flex tw-gap-0.5 group-hover:tw-opacity-100 group-focus-visible:tw-opacity-100 has-[:focus-visible]:tw-opacity-100`,a||_?.id===e.id?`tw-opacity-100`:`tw-opacity-0`]),children:[(0,d.jsx)(c.Button,{aspect:`square`,emphasis:`weak`,"aria-label":`Drag attachment`,className:y([i||a?`tw-cursor-grabbing`:`tw-cursor-grab`,`focus-visible:tw-z-[2]`]),...n,children:(0,d.jsx)(l.IconGrabHandle,{})}),(0,d.jsx)(`div`,{"data-test-id":`attachments-actionbar-flyout`,children:(0,d.jsxs)(c.Dropdown.Root,{open:_?.id===e.id,onOpenChange:t=>v(t?e:void 0),children:[(0,d.jsx)(c.Dropdown.Trigger,{children:(0,d.jsx)(c.Button,{aspect:`square`,emphasis:_?.id===e.id?`default`:`weak`,onPress:e=>{e?.stopPropagation(),e?.preventDefault()},children:(0,d.jsx)(l.IconPen,{size:`20`})})}),(0,d.jsxs)(c.Dropdown.Content,{side:`right`,children:[(0,d.jsxs)(c.Dropdown.Group,{children:[(0,d.jsxs)(c.Dropdown.Item,{"data-test-id":`menu-item`,onSelect:e=>{e?.stopPropagation(),b(),v(void 0)},children:[(0,d.jsx)(l.IconArrowCircleUp,{size:`20`}),`Replace with upload`]}),(0,d.jsxs)(c.Dropdown.Item,{onSelect:e=>{e?.stopPropagation(),p(),v(void 0)},children:[(0,d.jsx)(l.IconImageStack,{size:`20`}),`Replace with asset`]})]}),(0,d.jsx)(c.Dropdown.Group,{children:(0,d.jsxs)(c.Dropdown.Item,{emphasis:`danger`,onSelect:e=>{e?.stopPropagation(),f(),v(void 0)},children:[(0,d.jsx)(l.IconTrashBin,{size:`20`}),`Delete`]})})]})]})})]})]})});xe.displayName=`AttachmentItem`;var Se=e=>{let{attributes:t,listeners:n,setNodeRef:r,transform:i,transition:a,isDragging:o}=(0,h.useSortable)({id:e.item.id}),s={transform:i?`translate(${i.x}px, ${i.y}px)`:``,transition:a,zIndex:o?2:1},c={...t,...n};return(0,d.jsx)(xe,{ref:r,isDragging:o,transformStyle:s,draggableProps:c,...e})},Ce=(0,u.forwardRef)(({children:e,...t},n)=>(0,d.jsxs)(c.Button,{ref:n,size:`small`,rounding:`full`,emphasis:`default`,"data-test-id":`attachments-button-trigger`,className:`tw-body-medium`,...t,"aria-haspopup":`menu`,children:[(0,d.jsx)(l.IconPaperclip,{size:`16`}),e,(0,d.jsx)(l.IconCaretDown,{size:`12`})]}));Ce.displayName=`AttachmentsButtonTrigger`;var we=({items:e=[],onDelete:t,onReplaceWithBrowse:n,onReplaceWithUpload:r,onBrowse:i,onUpload:a,onSorted:o,appBridge:f,triggerComponent:g=Ce,isOpen:_,onOpenChange:v})=>{let[y,b]=(0,u.useState)(e),[x,S]=(0,u.useState)(!1),C=(0,p.useSensors)((0,p.useSensor)(p.PointerSensor),(0,p.useSensor)(p.KeyboardSensor)),[w,T]=(0,u.useState)(void 0),[E,D]=(0,u.useState)(!1),[O,ee]=(0,u.useState)(!1),[k,A]=(0,u.useState)([]),[te,ne]=(0,u.useState)(null),j=(0,s.useEditorState)(f),{openAssetChooser:M,closeAssetChooser:N}=(0,s.useAssetChooser)(f),re=_!==void 0,P=re?_:x,F=y?.find(e=>e.id===w),I=e.length,L=I>0?`Open attachments, ${I} ${I===1?`attachment`:`attachments`}`:`Add attachments`,[R,{results:z,doneAll:B}]=(0,s.useAssetUpload)({onUploadProgress:()=>!E&&D(!0)}),V=e=>{(re?v:S)?.(e)};(0,u.useEffect)(()=>{b(e)},[e]),(0,u.useEffect)(()=>{te&&(D(!0),R(te))},[te]),(0,u.useEffect)(()=>{(async()=>{B&&(await a(z),D(!1))})()},[B,z]);let ie=()=>{V(!1),M(async e=>{N(),V(!0),ee(!0),await i(e),ee(!1)},{multiSelection:!0,selectedValueIds:y.map(e=>e.id)})},ae=e=>{V(!1),M(async t=>{V(!0),N(),A([...k,e.id]),await n(e,t[0]),A(k.filter(t=>t!==e.id))},{multiSelection:!1,selectedValueIds:y.map(e=>e.id)})},oe=async(e,t)=>{A([...k,e.id]),await r(e,t),A(k.filter(t=>t!==e.id))};return j||(y?.length??0)>0?(0,d.jsx)(`div`,{"data-test-id":`attachments-flyout-button`,children:(0,d.jsx)(c.Flyout.Root,{open:P,onOpenChange:e=>V(F?!0:e),children:(0,d.jsxs)(c.Tooltip.Root,{enterDelay:500,children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:(0,d.jsx)(c.Flyout.Trigger,{asChild:!0,"data-test-id":`attachments-button-trigger`,children:(0,d.jsx)(g,{isFlyoutOpen:P,"aria-label":L,children:(0,d.jsx)(`div`,{"aria-hidden":`true`,children:I>0?I:`Add`})})})}),(0,d.jsx)(c.Flyout.Content,{side:`bottom`,align:`end`,width:`300px`,onEscapeKeyDown:e=>{e.stopPropagation(),V(!1)},children:(0,d.jsxs)(`div`,{className:`tw-w-full`,"data-test-id":`attachments-flyout-content`,children:[y.length>0&&(0,d.jsx)(p.DndContext,{sensors:C,collisionDetection:p.closestCenter,onDragStart:e=>{let{active:t}=e;T(t.id)},onDragEnd:e=>{let{active:t,over:n}=e;if(n&&t.id!==n.id&&y){let e=y.findIndex(e=>e.id===t.id),r=y.findIndex(e=>e.id===n.id),i=(0,h.arrayMove)(y,e,r);b(i),o(i)}T(void 0)},modifiers:[m.restrictToParentElement],children:(0,d.jsx)(h.SortableContext,{items:y,strategy:h.rectSortingStrategy,children:(0,d.jsx)(`div`,{className:`tw-border-b tw-border-b-line tw-relative`,children:y.map(e=>(0,d.jsx)(Se,{isEditing:j,isLoading:k.includes(e.id),item:e,onDelete:()=>t(e),onReplaceWithBrowse:()=>ae(e),onReplaceWithUpload:t=>oe(e,t),onDownload:()=>f.dispatch({name:`downloadAsset`,payload:e})},e.id))})})}),j&&(0,d.jsxs)(`div`,{className:`tw-px-5 tw-py-3`,"data-test-id":`asset-input-placeholder`,children:[(0,d.jsx)(`div`,{className:`tw-font-primary tw-font-medium tw-text-primary tw-text-small tw-my-4`,children:`Add attachments`}),E||O?(0,d.jsxs)(c.AssetInput.Root,{orientation:`horizontal`,children:[(0,d.jsx)(c.AssetInput.Preview,{children:(0,d.jsx)(c.AssetInput.PreviewLoading,{})}),(0,d.jsx)(c.AssetInput.Title,{children:`Asset`}),(0,d.jsx)(c.AssetInput.Metadata,{children:(0,d.jsx)(c.AssetInput.MetadataItem,{children:(0,d.jsxs)(c.Flex,{align:`center`,gap:.5,children:[O?(0,d.jsx)(l.IconImageStack,{size:16}):(0,d.jsx)(l.IconArrowCircleUp,{size:16}),O?`Loading`:`Uploading`]})})})]}):(0,d.jsxs)(c.AssetInput.Placeholder,{children:[(0,d.jsx)(c.AssetInput.UploadInput,{allowMultiple:!0,onSelect:e=>ne(e.target.files)}),(0,d.jsx)(c.AssetInput.BrowseInput,{onBrowse:ie})]})]})]})}),(0,d.jsx)(c.Tooltip.Content,{side:`top`,children:`Attachments`})]})})}):null},Te=(e,t)=>{let n=[g.FOCUS_VISIBLE_STYLE,`tw-relative tw-inline-flex tw-items-center tw-justify-center`,`tw-h-6 tw-p-1`,`tw-rounded-medium`,`tw-body-medium`,`tw-gap-0.5`,`focus-visible:tw-z-10`];return t?n.push(`tw-bg-container-secondary-active`,`tw-text-container-secondary-on-secondary-container`,e===`grab`?`tw-cursor-grabbing`:`tw-cursor-pointer`):n.push(`hover:tw-bg-container-secondary-hover active:tw-bg-container-secondary-active`,`tw-text-secondary hover:tw-text-container-secondary-on-secondary-container active:tw-text-container-secondary-on-secondary-container`,e===`grab`?`!tw-cursor-grab active:tw-cursor-grabbing`:`tw-cursor-pointer`),y(n)},U=(0,u.forwardRef)(({onClick:e,children:t,forceActiveStyle:n,cursor:r=`pointer`,"data-test-id":i=`base-toolbar-button`,...a},o)=>(0,d.jsx)(`button`,{onClick:e,className:Te(r,n),"data-test-id":i,...a,ref:o,children:t}));U.displayName=`BaseToolbarButton`;var Ee=(0,u.forwardRef)(({children:e,isFlyoutOpen:t,...n},r)=>(0,d.jsxs)(U,{forceActiveStyle:t,"data-test-id":`attachments-toolbar-button-trigger`,ref:r,...n,"aria-haspopup":`menu`,children:[(0,d.jsx)(l.IconPaperclip,{size:`16`}),e,(0,d.jsx)(l.IconCaretDown,{size:`12`})]}));Ee.displayName=`AttachmentsToolbarButtonTrigger`;var De=`attachments`,Oe=({flyoutId:e=De})=>{let{appBridge:t,attachments:n,onAttachmentsAdd:r,onAttachmentDelete:i,onAttachmentReplace:a,onAttachmentsSorted:o}=ve(),{isOpen:s,onOpenChange:c}=fe(e),l=H();return(0,d.jsx)(we,{onUpload:r,onDelete:i,onReplaceWithBrowse:a,onReplaceWithUpload:a,onSorted:o,onBrowse:r,items:n,appBridge:t,triggerComponent:Ee,isOpen:s&&!l,onOpenChange:c})},ke=`Drag or press ↵ to move`,Ae=`Move with ↑↓←→ and confirm with ↵`,je=({content:e,children:t,open:n,disabled:r})=>r?t:(0,d.jsxs)(c.Tooltip.Root,{enterDelay:300,open:n,children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:t}),(0,d.jsx)(c.Tooltip.Content,{side:`top`,children:(0,d.jsx)(`div`,{children:e})})]}),Me=({tooltip:e,icon:t,setActivatorNodeRef:n,draggableProps:r})=>{let i=H(),{activatorEvent:a}=(0,p.useDndContext)(),o=a instanceof KeyboardEvent;return(0,d.jsx)(je,{...i&&{open:o},content:(0,d.jsx)(`div`,{children:i?Ae:e??`Drag or press ↵ to move`}),children:(0,d.jsx)(U,{ref:n,"data-test-id":`block-item-wrapper-toolbar-btn`,forceActiveStyle:i,cursor:`grab`,...r,children:t})})},Ne=({content:e,icon:t,tooltip:n,flyoutId:r,flyoutFooter:i,flyoutHeader:a})=>{let{isOpen:o,onOpenChange:s}=fe(r),l=H();return(0,d.jsx)(je,{disabled:l||o,content:n,children:(0,d.jsx)(`div`,{className:`tw-flex tw-flex-shrink-0 tw-flex-1 tw-h-6 tw-relative`,children:(0,d.jsxs)(c.Flyout.Root,{open:o&&!l,onOpenChange:s,children:[(0,d.jsx)(c.Flyout.Trigger,{asChild:!0,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-flyout`,forceActiveStyle:o&&!l,children:t})}),(0,d.jsxs)(c.Flyout.Content,{side:`bottom`,align:`end`,padding:`comfortable`,children:[a?(0,d.jsx)(c.Flyout.Header,{children:a}):null,(0,d.jsx)(c.Flyout.Body,{children:e}),i?(0,d.jsx)(c.Flyout.Footer,{children:i}):null]})]})})})},Pe=`menu`,Fe=({items:e,flyoutId:t=Pe,tooltip:n=`Options`})=>{let{isOpen:r,onOpenChange:i}=fe(t),a=H();return(0,d.jsx)(c.Dropdown.Root,{open:r&&!a,onOpenChange:i,children:(0,d.jsxs)(c.Tooltip.Root,{children:[(0,d.jsx)(c.Tooltip.Trigger,{asChild:!0,children:(0,d.jsx)(c.Dropdown.Trigger,{asChild:!0,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-flyout`,children:(0,d.jsx)(l.IconDotsHorizontal,{size:`16`})})})}),(0,d.jsx)(c.Dropdown.Content,{children:e.map((e,t)=>(0,d.jsx)(c.Dropdown.Group,{children:e.map((e,n)=>(0,d.jsxs)(c.Dropdown.Item,{"data-test-id":`menu-item`,onSelect:()=>{i(!1),e.onClick()},emphasis:e.style||`default`,children:[(0,d.jsx)(`div`,{className:`tw-mr-2`,children:e.icon}),(0,d.jsx)(`span`,{children:e.title})]},`${t}-${n}`))},t))}),(0,d.jsx)(c.Tooltip.Content,{children:n})]})})},Ie=({tooltip:e,icon:t,onClick:n})=>{let r=H();return(0,d.jsx)(je,{disabled:r,content:e??``,children:(0,d.jsx)(U,{"data-test-id":`block-item-wrapper-toolbar-btn`,onClick:n,children:t})})},Le=({children:e})=>(0,d.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}),Re=({items:e,attachments:t})=>(0,d.jsxs)(`div`,{"data-test-id":`block-item-wrapper-toolbar`,className:`tw-rounded-md tw-bg-surface tw-border tw-border-line-mid tw-divide-x tw-divide-line-mid tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate`,children:[t.isEnabled&&(0,d.jsx)(Le,{children:(0,d.jsx)(Oe,{})}),e.length>0&&(0,d.jsx)(Le,{children:e.map(e=>{switch(e.type){case`dragHandle`:return(0,d.jsx)(Me,{...e},e.tooltip+e.type);case`menu`:return(0,d.jsx)(Fe,{...e},e.tooltip+e.type);case`flyout`:return(0,d.jsx)(Ne,{...e},e.tooltip+e.type);default:return(0,d.jsx)(Ie,{...e},e.tooltip+e.type)}})})]}),ze=(0,u.memo)(({children:e,toolbarItems:t,shouldHideWrapper:n,shouldHideComponent:r=!1,isDragging:i=!1,shouldFillContainer:a,outlineOffset:o=0,shouldBeShown:s=!1,showAttachments:c=!1})=>{let[l,f]=(0,u.useState)(s?[Pe]:[]),p=(0,u.useRef)(null);if(n)return(0,d.jsx)(d.Fragment,{children:e});let m=t?.filter(e=>e!==void 0),h=l.length>0||s;return(0,d.jsx)(ce,{isDragPreview:i,children:(0,d.jsx)(ue,{openFlyoutIds:l,setOpenFlyoutIds:f,children:(0,d.jsxs)(`div`,{ref:p,"data-test-id":`block-item-wrapper`,style:{outlineOffset:o},className:y([`tw-relative tw-group`,a&&`tw-flex-1 tw-h-full tw-w-full`,`hover:tw-outline hover:tw-outline-1 hover:tw-outline-container-highlight-on-highlight-container focus-within:tw-outline focus-within:tw-outline-1 focus-within:tw-outline-container-highlight-on-highlight-container`,h&&`tw-outline tw-outline-1 tw-outline-container-highlight-on-highlight-container`,r&&`tw-opacity-0`]),children:[(0,d.jsx)(`div`,{style:{right:-1-o,bottom:`calc(100% - ${2+o}px)`},className:y([`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`,h&&`tw-opacity-100`]),children:(0,d.jsx)(Re,{attachments:{isEnabled:c},items:m})}),e]})})})});ze.displayName=`BlockItemWrapper`;var Be=({ref:e,disabled:t,onChange:n})=>{(0,u.useEffect)(()=>{if(t||!e.current)return;let r=!1,i=new IntersectionObserver(([e])=>{e.isIntersecting!==r&&(r=e.isIntersecting,n(e.isIntersecting))});return i.observe(e.current),()=>{i.disconnect()}},[e,t,n])},Ve=(0,_.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})),W=Ve.set,G=Ve.get,He=()=>Ve.use,Ue=e=>{if(!e)return!1;let t=e=>e.some(e=>e.text?e.text!==``:e.children?t(e.children):!1);try{return t(JSON.parse(e))}catch{return!1}},We=(e=`p`,t=``,n)=>Ue(t)?t:JSON.stringify([{type:e,children:[{text:t,textStyle:e}],align:n}]),Ge=(e,t,n)=>e===B.Custom?t:n,Ke=(e,t)=>{let n=(0,_.getAboveNode)(e,{match:{type:_.ELEMENT_LINK}});return Array.isArray(n)?t(n[0]):``},qe=e=>Ke(e,e=>e.chosenLink?.searchResult?.link||``),Je=e=>Ke(e,e=>e.url||``),Ye=e=>e.url||e.chosenLink?.searchResult?.link||``,Xe=e=>Ke(e,Ye),Ze=/^\/(?!\/)\S*$/,Qe=e=>{if(Ze.test(e))return e;try{return new URL(e),e}catch{return`https://${e}`}},$e=e=>{if(Ze.test(e))return!0;try{let t=new URL(e);return[`http:`,`https:`,`mailto:`,`tel:`].includes(t.protocol)&&t.pathname!==``}catch{return!1}},K=e=>$e(Qe(e))||e===``,et=(e,{type:t})=>{let{apply:n,normalizeNode:r}=e;return e.apply=t=>{if(t.type!==`set_selection`){n(t);return}let r=t.newProperties;if(!r?.focus||!r.anchor||!(0,_.isCollapsed)(r)){n(t);return}let i=(0,_.getAboveNode)(e,{at:r,match:{type:(0,_.getPluginType)(e,Z)}});if(i){let[,n]=i,a;(0,_.isStartPoint)(e,r.focus,n)&&(a=(0,_.getPreviousNodeEndPoint)(e,n)),(0,_.isEndPoint)(e,r.focus,n)&&(a=(0,_.getNextNodeStartPoint)(e,n)),a&&(t.newProperties={anchor:a,focus:a})}n(t)},e.normalizeNode=([t,n])=>{if(t.type===(0,_.getPluginType)(e,`button`)){let t=e.selection;if(t&&(0,_.isCollapsed)(t)&&(0,_.isEndPoint)(e,t.focus,n)){let t=(0,_.getNextNodeStartPoint)(e,n);if(t)(0,_.select)(e,t);else{let t=_.Path.next(n);(0,_.insertNodes)(e,{text:``},{at:t}),(0,_.select)(e,t)}}}r([t,n])},(0,_.withRemoveEmptyNodes)(e,(0,_.mockPlugin)({options:{types:t}}))},tt=(e,t,n)=>{(0,_.insertNodes)(e,[dt(e,t)],n)},nt=e=>{if(!e.selection)return;let{isUrl:t,forceSubmit:n}=(0,_.getPluginOptions)(e,Z),r=G.url();if(!(t?.(r)||n))return;let i=G.text(),a=G.buttonStyle(),o=G.newTab()?void 0:`_self`;return W.reset(),rt(e,{url:r,text:i,buttonStyle:a,target:o,isUrl:e=>n||!t?!0:t(e)}),setTimeout(()=>{(0,_.focusEditor)(e,e.selection??void 0)},0),!0},q=(e,t)=>(0,_.withoutNormalizing)(e,()=>{if(t?.split){if((0,_.getAboveNode)(e,{at:e.selection?.anchor,match:{type:(0,_.getPluginType)(e,`button`)}}))return(0,_.splitNodes)(e,{at:e.selection?.anchor,match:t=>(0,_.isElement)(t)&&t.type===(0,_.getPluginType)(e,`button`)}),q(e,{at:e.selection?.anchor}),!0;if((0,_.getAboveNode)(e,{at:e.selection?.focus,match:{type:(0,_.getPluginType)(e,`button`)}}))return(0,_.splitNodes)(e,{at:e.selection?.focus,match:t=>(0,_.isElement)(t)&&t.type===(0,_.getPluginType)(e,`button`)}),q(e,{at:e.selection?.focus}),!0}(0,_.unwrapNodes)(e,{match:{type:(0,_.getPluginType)(e,Z)},...t})}),rt=(e,{url:t,text:n,buttonStyle:r,target:i,insertTextInButton:a,insertNodesOptions:o,isUrl:s=(0,_.getPluginOptions)(e,Z).isUrl})=>{let c=e.selection;if(!c)return;let l=(0,_.getAboveNode)(e,{at:c,match:{type:(0,_.getPluginType)(e,Z)}});if(a&&l)return e.insertText(t),!0;if(!s?.(t))return;if((0,_.isDefined)(n)&&n.length===0&&(n=t),l)return ot(t,e,l,i,r,n),!0;let[u,d]=(0,_.findNode)(e,{at:c,match:{type:(0,_.getPluginType)(e,`button`)}})??[],f=it(e,d,n);if((0,_.isExpanded)(c))return at(l,e,t,r,i,n),!0;f&&(0,_.removeNodes)(e,{at:d});let p=(0,_.getNodeProps)(u??{}),m=e.selection?.focus.path;if(!m)return;let h=(0,_.getNodeLeaf)(e,m);return n?.length||(n=t),tt(e,{...p,url:t,target:i,children:[{...h,text:n}]},o),!0};function it(e,t,n){return t&&n?.length&&n!==(0,_.getEditorString)(e,t)}function at(e,t,n,r,i,a){e?q(t,{at:e[1]}):q(t,{split:!0}),ct(t,{url:n,buttonStyle:r,target:i}),st(t,{url:n,target:i,text:a})}function ot(e,t,n,r,i,a){(e!==n[0]?.url||r!==n[0]?.target||i!==n[0]?.buttonStyle)&&(0,_.setNodes)(t,{url:e,target:r,buttonStyle:i},{at:n[1]}),st(t,{url:e,text:a,target:r})}var st=(e,{text:t})=>{let n=(0,_.getAboveNode)(e,{match:{type:(0,_.getPluginType)(e,Z)}});if(n){let[r,i]=n;if(t?.length&&t!==(0,_.getEditorString)(e,i)){let n=r.children[0];(0,_.replaceNodeChildren)(e,{at:i,nodes:{...n,text:t},insertOptions:{select:!0}})}}},ct=(e,{url:t,buttonStyle:n,target:r,...i})=>{(0,_.wrapNodes)(e,{type:(0,_.getPluginType)(e,Z),url:t,buttonStyle:n,target:r,children:[]},{split:!0,...i})},lt=(e,t)=>{let n=(0,_.getAboveNode)(e,{match:{type:Z}});return Array.isArray(n)?t(n[0]):``},ut=e=>lt(e,e=>e.url??``),dt=(e,{url:t,text:n=``,buttonStyle:r=`primary`,target:i,children:a})=>({type:(0,_.getPluginType)(e,Z),url:t,target:i,buttonStyle:r,children:a??[{text:n}]}),ft=(e,{focused:t}={})=>{if(G.mode()===`edit`){pt(e);return}mt(e,{focused:t})},pt=e=>{let t=(0,_.findNode)(e,{match:{type:(0,_.getPluginType)(e,Z)}});if(!t)return;let[n,r]=t,i=(0,_.getEditorString)(e,r);W.url(n.url),W.newTab(n.target===void 0),i===n.url&&(i=``),W.text(i),W.isEditing(!0)},mt=(e,{focused:t}={})=>{G.mode()||t&&((0,_.isRangeAcrossBlocks)(e,{at:e.selection})||(0,_.someNode)(e,{match:{type:(0,_.getPluginType)(e,`button`)}})||(W.text((0,_.getEditorString)(e,e.selection)),W.show(`insert`,e.id)))},ht={marginTop:`10px`,marginBottom:`10px`,display:`inline-block`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`,verticalAlign:`middle`,boxSizing:`border-box`,overflowWrap:`normal`},gt={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)`}}},_t=e=>{let{attributes:t,children:n}=e,r=e.element.url||e.element.chosenLink?.searchResult?.link||``,i=e.element.target||`_self`,a=String(e.element.buttonStyle)||`primary`;return(0,d.jsx)(vt,{attributes:t,href:r,target:i,styles:gt[`button${a.charAt(0).toUpperCase()+a.slice(1)}`],children:n})},vt=({attributes:e,styles:t={hover:{}},children:n,href:r=`#`,target:i})=>{let[a,o]=(0,u.useState)(!1);return(0,d.jsx)(`a`,{...e,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),href:r,target:i,style:a?{...t,...t.hover}:t,children:n})},yt=class extends _.MarkupElement{constructor(e=Z,t=_t){super(e,t)}},bt=(0,u.forwardRef)((e,t)=>{let n=(0,_.useEditorRef)();return(0,d.jsx)(_.ToolbarButton,{ref:t,...e,onMouseDown:e=>{e.preventDefault(),(0,_.focusEditor)(n,n.selection??n.prevSelection??void 0)},onClick:()=>{ft(n,{focused:!0})},children:(0,d.jsx)(_.IconStylingWrapper,{icon:(0,d.jsx)(l.IconButton,{size:16})})})});bt.displayName=`ButtonToolbarButton`;var xt=({editorId:e,id:t})=>{let n=(0,_.useEditorState)((0,_.useEventPlateId)(e)),r=!!(0,_.isRangeInSameBlock)(n,{at:n.selection}),i=(0,_.getPluginType)(n,Z),a=!!n?.selection&&(0,_.someNode)(n,{match:{type:i}});return(0,d.jsx)(`div`,{"data-plugin-id":t,children:(0,d.jsx)(bt,{pressed:a,disabled:!r,tooltip:(0,_.getTooltip)(r?`Button\n${(0,_.getHotkeyByPlatform)(`Ctrl+Shift+K`)}`:`Buttons can only be set for a single text block.`)})})},J=`link-plugin`,Y=function(e){return 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}({}),X={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)`},[J]:{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)`},...gt},St=()=>{let e=(0,_.useEditorRef)();return(0,d.jsx)(_.FloatingModalWrapper,{padding:`16px`,minWidth:`400px`,"data-test-id":`floating-button-edit`,children:(0,d.jsxs)(`span`,{"data-test-id":`preview-button-flyout`,className:`tw-flex tw-justify-between tw-items-center tw-gap-2`,children:[(0,d.jsx)(`a`,{"data-test-id":`floating-button-edit-url`,href:G.url(),target:`_blank`,rel:`noopener noreferrer`,style:X[J],className:`tw-break-all`,children:G.url()}),(0,d.jsxs)(`span`,{className:`tw-flex tw-gap-2`,children:[(0,d.jsx)(`button`,{onClick:()=>{pt(e)},tabIndex:0,"data-test-id":`edit-button-button`,className:`tw-transition tw-cursor-pointer tw-rounded-medium hover:tw-bg-black-10 tw-p-1`,children:(0,d.jsx)(l.IconPen,{size:16})}),(0,d.jsx)(`button`,{onClick:()=>{q(e),(0,_.focusEditor)(e,e.selection??void 0)},tabIndex:0,"data-test-id":`remove-button-button`,className:`tw-transition tw-cursor-pointer tw-rounded-medium hover:tw-bg-black-10 tw-p-1`,children:(0,d.jsx)(l.IconTrashBin,{size:16})})]})]})})},Ct=e=>e.filter(e=>!!e.title?.trim()),wt=()=>(0,d.jsx)(`div`,{className:`tw-flex tw-justify-center tw-h-10 tw-items-center`,children:(0,d.jsx)(c.LoadingCircle,{size:`small`})}),Tt=({section:e,selectedUrl:t,onSelectUrl:n})=>{let r=e.permanentLink===t;return(0,d.jsx)(`button`,{"data-test-id":`internal-link-selector-section-link`,type:`button`,"data-is-active":r,className:`
|
|
2
2
|
tw-py-2 tw-pr-2.5 tw-pl-14 tw-leading-5 tw-cursor-pointer tw-w-full
|
|
3
3
|
${r?`tw-bg-highlight tw-text-highlight-on-highlight hover:tw-bg-highlight-hover:hover hover:tw-text-highlight-on-highlight:hover`:`hover:tw-bg-container-secondary-hover hover:tw-text-container-secondary-on-secondary-container`}`,onClick:()=>n(e.permanentLink),children:(0,d.jsxs)(`div`,{className:`tw-flex tw-flex-1 tw-space-x-2 tw-items-center tw-h-6`,children:[(0,d.jsx)(l.IconDocumentText,{size:16}),(0,d.jsx)(`span`,{className:`tw-text-small`,children:e.title}),(0,d.jsx)(`span`,{className:`tw-flex-auto tw-font-sans tw-text-x-small tw-text-right`,children:`Section`})]})})},Et=({page:e,selectedUrl:t,onSelectUrl:n,itemsToExpandInitially:r,getDocumentSectionsByDocumentPageId:i})=>{let[a,o]=(0,u.useState)(e.id===r.documentId),[s,c]=(0,u.useState)([]),l=e.permanentLink===t;(0,u.useEffect)(()=>{(async()=>{let t=Ct(await i(e.id));c(t)})()},[e.id,i]),(0,u.useEffect)(()=>{e.id===r.pageId&&o(!0)},[r,e.id]);let f=s.length>0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`button`,{type:`button`,"data-test-id":`internal-link-selector-page-link`,className:`
|
|
4
4
|
tw-py-2 tw-pr-2.5 tw-leading-5 tw-cursor-pointer tw-flex tw-w-full
|