@frontify/fondue 12.0.0-beta.14 → 12.0.0-beta.17
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/DatePicker/DatePickerTrigger.es.js +17 -16
- package/dist/components/DatePicker/DatePickerTrigger.es.js.map +1 -1
- package/dist/components/Dropdown/Dropdown.es.js +41 -40
- package/dist/components/Dropdown/Dropdown.es.js.map +1 -1
- package/dist/components/LoadingBar/LoadingBar.d.ts +24 -0
- package/dist/components/LoadingBar/LoadingBar.es.js +50 -0
- package/dist/components/LoadingBar/LoadingBar.es.js.map +1 -0
- package/dist/components/LoadingBar/index.d.ts +1 -0
- package/dist/components/OverflowMenu/OverflowMenu.d.ts +6 -0
- package/dist/components/OverflowMenu/OverflowMenu.es.js +1721 -0
- package/dist/components/OverflowMenu/OverflowMenu.es.js.map +1 -0
- package/dist/components/OverflowMenu/OverflowMenuItem.d.ts +11 -0
- package/dist/components/OverflowMenu/OverflowMenuItem.es.js +1763 -0
- package/dist/components/OverflowMenu/OverflowMenuItem.es.js.map +1 -0
- package/dist/components/OverflowMenu/index.d.ts +1 -0
- package/dist/components/OverflowMenu/useOverflowMenuKeyboardNavigation.d.ts +1 -0
- package/dist/components/OverflowMenu/useOverflowMenuKeyboardNavigation.es.js +29 -0
- package/dist/components/OverflowMenu/useOverflowMenuKeyboardNavigation.es.js.map +1 -0
- package/dist/components/RichTextEditor/Plugins/CheckboxListPlugin/CheckboxListButton/CheckboxListToolbarButton.es.js +8 -8
- package/dist/components/RichTextEditor/Plugins/CheckboxListPlugin/CheckboxListButton/CheckboxListToolbarButton.es.js.map +1 -1
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js +4 -2
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js.map +1 -1
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js +32 -27
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js.map +1 -1
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/FloatingLink.es.js +13 -6
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/FloatingLink.es.js.map +1 -1
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/InsertLinkModal/index.d.ts +1 -0
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/InsertLinkModal/useFloatingLinkInsert.d.ts +2 -0
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/InsertLinkModal/useFloatingLinkInsert.es.js +38 -0
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/InsertLinkModal/useFloatingLinkInsert.es.js.map +1 -0
- package/dist/components/RichTextEditor/Plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.es.js.map +1 -1
- package/dist/components/RichTextEditor/serializer/utils/serializeLeafToHtml.d.ts +1 -2
- package/dist/components/RichTextEditor/serializer/utils/serializeLeafToHtml.es.js.map +1 -1
- package/dist/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.d.ts +1 -2
- package/dist/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.es.js +23 -19
- package/dist/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.es.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -1
- package/dist/components/Tooltip/Tooltip.es.js +97 -92
- package/dist/components/Tooltip/Tooltip.es.js.map +1 -1
- package/dist/components/Tree/Node.d.ts +4 -2
- package/dist/components/Tree/Node.es.js +105 -99
- package/dist/components/Tree/Node.es.js.map +1 -1
- package/dist/components/Tree/Tree.d.ts +2 -0
- package/dist/components/Tree/Tree.es.js +39 -35
- package/dist/components/Tree/Tree.es.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/index.cjs.js +10 -4
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +3608 -3600
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +10 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/node_modules/@udecode/plate-core/dist/index.es.es.js +1482 -0
- package/dist/node_modules/@udecode/plate-core/dist/index.es.es.js.map +1 -0
- package/dist/node_modules/@udecode/plate-floating/dist/index.es.es.js +21 -0
- package/dist/node_modules/@udecode/plate-floating/dist/index.es.es.js.map +1 -0
- package/dist/node_modules/@udecode/zustood/dist/index.es.es.js +439 -0
- package/dist/node_modules/@udecode/zustood/dist/index.es.es.js.map +1 -0
- package/dist/node_modules/@udecode/zustood/node_modules/react-tracked/dist/index.modern.es.js +21 -0
- package/dist/node_modules/@udecode/zustood/node_modules/react-tracked/dist/index.modern.es.js.map +1 -0
- package/dist/node_modules/hotkeys-js/dist/hotkeys.esm.es.js +275 -0
- package/dist/node_modules/hotkeys-js/dist/hotkeys.esm.es.js.map +1 -0
- package/dist/node_modules/jotai/esm/index.es.js +418 -0
- package/dist/node_modules/jotai/esm/index.es.js.map +1 -0
- package/dist/node_modules/proxy-compare/dist/index.modern.es.js +74 -0
- package/dist/node_modules/proxy-compare/dist/index.modern.es.js.map +1 -0
- package/dist/node_modules/react-hotkeys-hook/dist/react-hotkeys-hook.esm.es.js +7 -0
- package/dist/node_modules/react-hotkeys-hook/dist/react-hotkeys-hook.esm.es.js.map +1 -0
- package/dist/node_modules/zustand/esm/index.es.js +62 -0
- package/dist/node_modules/zustand/esm/index.es.js.map +1 -0
- package/dist/node_modules/zustand/esm/middleware.es.js +219 -0
- package/dist/node_modules/zustand/esm/middleware.es.js.map +1 -0
- package/dist/node_modules/zustand/esm/vanilla.es.js +26 -0
- package/dist/node_modules/zustand/esm/vanilla.es.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/dnd/DndWrapper.es.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverflowMenuItem.es.js","sources":["../../../src/components/OverflowMenu/OverflowMenuItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { MouseEvent, ReactElement } from 'react';\nimport { IconProps } from '@foundation/Icon/IconProps';\nimport { MenuItem } from '..';\nimport { getItemElementType } from '@utilities/elements';\n\nexport interface OverflowMenuItemProps {\n id?: string;\n label: string;\n link?: string;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n decorator?: ReactElement<IconProps>;\n disabled?: boolean;\n}\n\nexport const OverflowMenuItem = ({\n id = 'overflow-menu-item',\n label,\n link,\n onClick,\n disabled = false,\n}: OverflowMenuItemProps) => {\n const contentElementType = getItemElementType(link, onClick);\n\n const menuItemElement = <MenuItem title={label} disabled={disabled} />;\n\n return (\n <li id={id} data-test-id=\"overflow-menu-item\">\n {contentElementType === 'a' && <a href={link}>{menuItemElement}</a>}\n {contentElementType === 'button' && (\n <button onClick={onClick} type=\"button\" disabled={disabled}>\n {menuItemElement}\n </button>\n )}\n {contentElementType === 'span' && <span>{menuItemElement}</span>}\n </li>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,KAAmB,CAAC;AAAA,EAC7B,QAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAW;AAAA,MACc;AACnB,QAAA,IAAqB,EAAmB,GAAM,CAAO,GAErD,IAAmB,kBAAA,cAAA,GAAA;AAAA,IAAS,OAAO;AAAA,IAAO;AAAA,EAAA,CAAoB;AAEpE,SACK,kBAAA,cAAA,MAAA;AAAA,IAAG;AAAA,IAAQ,gBAAa;AAAA,EACpB,GAAA,MAAuB,OAAQ,kBAAA,cAAA,KAAA;AAAA,IAAE,MAAM;AAAA,EAAA,GAAO,CAAgB,GAC9D,MAAuB,YACnB,kBAAA,cAAA,UAAA;AAAA,IAAO;AAAA,IAAkB,MAAK;AAAA,IAAS;AAAA,EAAA,GACnC,CACL,GAEH,MAAuB,UAAW,kBAAA,cAAA,QAAA,MAAM,CAAgB,CAC7D;AAER;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './OverflowMenu';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useOverflowMenuKeyboardNavigation: (isMenuOpened: boolean, menuContainerRef: HTMLElement | null, focusableElementsSelector?: string) => string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useState as a, useCallback as k, useEffect as c } from "react";
|
|
2
|
+
const E = (r, i, f = "li > button:not(:disabled)") => {
|
|
3
|
+
const [s, n] = a(0), [t, l] = a(), [d, u] = a(""), y = k((o) => {
|
|
4
|
+
if (!t || !["Tab", "ArrowDown", "ArrowUp", "Escape"].includes(o.key))
|
|
5
|
+
return;
|
|
6
|
+
const e = o.key === "Tab" && !o.shiftKey, b = o.key === "Tab" && o.shiftKey, h = o.key === "Escape", m = e || o.key === "ArrowDown", w = b || o.key === "ArrowUp";
|
|
7
|
+
if (b && s <= 0 || e && s >= t.length - 1 || h) {
|
|
8
|
+
u("CLOSE_MENU");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
m ? n(Math.min(s + 1, t.length - 1)) : w && n(Math.max(s - 1, 0)), o.preventDefault();
|
|
12
|
+
}, [t, s]);
|
|
13
|
+
return c(() => {
|
|
14
|
+
if (!r || !i)
|
|
15
|
+
return;
|
|
16
|
+
const o = i.querySelectorAll(f);
|
|
17
|
+
for (const e of o)
|
|
18
|
+
e.onkeydown = y;
|
|
19
|
+
t || l(o);
|
|
20
|
+
}, [r, i, t, y, f]), c(() => {
|
|
21
|
+
!t || t[s] && t[s].focus();
|
|
22
|
+
}, [s, t]), c(() => {
|
|
23
|
+
r || (l(void 0), u("")), n(0);
|
|
24
|
+
}, [r]), d;
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
E as useOverflowMenuKeyboardNavigation
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=useOverflowMenuKeyboardNavigation.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOverflowMenuKeyboardNavigation.es.js","sources":["../../../src/components/OverflowMenu/useOverflowMenuKeyboardNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nexport const useOverflowMenuKeyboardNavigation = (\n isMenuOpened: boolean,\n menuContainerRef: HTMLElement | null,\n focusableElementsSelector = 'li > button:not(:disabled)',\n) => {\n const [currentItemIndex, setCurrentItemIndex] = useState(0);\n const [itemsElements, setItemsElements] = useState<NodeList>();\n const [menuKeyboardNavigationAction, setMenuKeyboardNavigationAction] = useState('');\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!itemsElements || !['Tab', 'ArrowDown', 'ArrowUp', 'Escape'].includes(event.key)) {\n return;\n }\n\n const isTab = event.key === 'Tab' && !event.shiftKey;\n const isShiftTab = event.key === 'Tab' && event.shiftKey;\n const isEsc = event.key === 'Escape';\n const shouldMoveDown = isTab || event.key === 'ArrowDown';\n const shouldMoveUp = isShiftTab || event.key === 'ArrowUp';\n\n if (\n (isShiftTab && currentItemIndex <= 0) ||\n (isTab && currentItemIndex >= itemsElements.length - 1) ||\n isEsc\n ) {\n setMenuKeyboardNavigationAction('CLOSE_MENU');\n return;\n }\n\n if (shouldMoveDown) {\n setCurrentItemIndex(Math.min(currentItemIndex + 1, itemsElements.length - 1));\n } else if (shouldMoveUp) {\n setCurrentItemIndex(Math.max(currentItemIndex - 1, 0));\n }\n\n event.preventDefault();\n },\n [itemsElements, currentItemIndex],\n );\n\n useEffect(() => {\n if (!isMenuOpened || !menuContainerRef) {\n return;\n }\n\n const focusableItems = menuContainerRef.querySelectorAll(focusableElementsSelector);\n\n for (const item of focusableItems) {\n (item as HTMLButtonElement | HTMLAnchorElement).onkeydown = handleKeyDown;\n }\n\n if (!itemsElements) {\n setItemsElements(focusableItems);\n }\n }, [isMenuOpened, menuContainerRef, itemsElements, handleKeyDown, focusableElementsSelector]);\n\n useEffect(() => {\n if (!itemsElements) {\n return;\n }\n\n if (itemsElements[currentItemIndex]) {\n (itemsElements[currentItemIndex] as HTMLButtonElement).focus();\n }\n }, [currentItemIndex, itemsElements]);\n\n useEffect(() => {\n if (!isMenuOpened) {\n setItemsElements(undefined);\n setMenuKeyboardNavigationAction('');\n }\n\n setCurrentItemIndex(0);\n }, [isMenuOpened]);\n\n return menuKeyboardNavigationAction;\n};\n"],"names":[],"mappings":";AAEO,MAAM,IAAoC,CAC7C,GACA,GACA,IAA4B,iCAC3B;AACD,QAAM,CAAC,GAAkB,KAAuB,EAAS,CAAC,GACpD,CAAC,GAAe,KAAoB,EAAmB,GACvD,CAAC,GAA8B,KAAmC,EAAS,EAAE,GAE7E,IAAgB,EAClB,CAAC,MAAyB;AACtB,QAAI,CAAC,KAAiB,CAAC,CAAC,OAAO,aAAa,WAAW,QAAQ,EAAE,SAAS,EAAM,GAAG;AAC/E;AAGJ,UAAM,IAAQ,EAAM,QAAQ,SAAS,CAAC,EAAM,UACtC,IAAa,EAAM,QAAQ,SAAS,EAAM,UAC1C,IAAQ,EAAM,QAAQ,UACtB,IAAiB,KAAS,EAAM,QAAQ,aACxC,IAAe,KAAc,EAAM,QAAQ;AAG5C,QAAA,KAAc,KAAoB,KAClC,KAAS,KAAoB,EAAc,SAAS,KACrD,GACF;AACE,QAAgC,YAAY;AAC5C;AAAA,IACJ;AAEA,IAAI,IACA,EAAoB,KAAK,IAAI,IAAmB,GAAG,EAAc,SAAS,CAAC,CAAC,IACrE,KACP,EAAoB,KAAK,IAAI,IAAmB,GAAG,CAAC,CAAC,GAGzD,EAAM,eAAe;AAAA,EAAA,GAEzB,CAAC,GAAe,CAAgB,CACpC;AAEA,WAAU,MAAM;AACR,QAAA,CAAC,KAAgB,CAAC;AAClB;AAGE,UAAA,IAAiB,EAAiB,iBAAiB,CAAyB;AAElF,eAAW,KAAQ;AACd,QAA+C,YAAY;AAGhE,IAAK,KACD,EAAiB,CAAc;AAAA,EACnC,GACD,CAAC,GAAc,GAAkB,GAAe,GAAe,CAAyB,CAAC,GAE5F,EAAU,MAAM;AACZ,IAAI,CAAC,KAID,EAAc,MACb,EAAc,GAAwC;EAC3D,GACD,CAAC,GAAkB,CAAa,CAAC,GAEpC,EAAU,MAAM;AACZ,IAAK,KACD,GAAiB,MAAS,GAC1B,EAAgC,EAAE,IAGtC,EAAoB,CAAC;AAAA,EAAA,GACtB,CAAC,CAAY,CAAC,GAEV;AACX;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
const
|
|
4
|
-
const e = u(c(
|
|
5
|
-
return /* @__PURE__ */
|
|
6
|
-
active:
|
|
1
|
+
import { withPlateProvider as i, usePlateEditorState as u, useEventPlateId as c, someNode as m, ToolbarButton as d, unwrapList as f, getPreventDefaultHandler as p, toggleNodeType as P } from "@udecode/plate";
|
|
2
|
+
import T from "react";
|
|
3
|
+
const h = i(({ id: n, type: o, inactiveType: s, active: t, ...l }) => {
|
|
4
|
+
const e = u(c(n)), r = t != null ? t : !!(e != null && e.selection) && m(e, { match: { type: o } });
|
|
5
|
+
return /* @__PURE__ */ T.createElement(d, {
|
|
6
|
+
active: r,
|
|
7
7
|
onMouseDown: (a) => {
|
|
8
|
-
!e || !e.selection || (
|
|
8
|
+
!e || !e.selection || (r || f(e, {}), p(P, e, {
|
|
9
9
|
activeType: o,
|
|
10
10
|
inactiveType: s
|
|
11
11
|
})(a));
|
|
@@ -14,6 +14,6 @@ const g = i(({ id: r, type: o, inactiveType: s, active: t, ...l }) => {
|
|
|
14
14
|
});
|
|
15
15
|
});
|
|
16
16
|
export {
|
|
17
|
-
|
|
17
|
+
h as CheckboxListToolbarButton
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=CheckboxListToolbarButton.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxListToolbarButton.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/CheckboxListPlugin/CheckboxListButton/CheckboxListToolbarButton.tsx"],"sourcesContent":["import {\n BlockToolbarButtonProps,\n ToolbarButton,\n getPreventDefaultHandler,\n someNode,\n toggleNodeType,\n unwrapList,\n useEventPlateId,\n usePlateEditorState,\n
|
|
1
|
+
{"version":3,"file":"CheckboxListToolbarButton.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/CheckboxListPlugin/CheckboxListButton/CheckboxListToolbarButton.tsx"],"sourcesContent":["import {\n BlockToolbarButtonProps,\n ToolbarButton,\n getPreventDefaultHandler,\n someNode,\n toggleNodeType,\n unwrapList,\n useEventPlateId,\n usePlateEditorState,\n withPlateProvider,\n} from '@udecode/plate';\nimport React from 'react';\n\nexport const CheckboxListToolbarButton = withPlateProvider(\n ({ id, type, inactiveType, active, ...props }: BlockToolbarButtonProps) => {\n const editor = usePlateEditorState(useEventPlateId(id));\n\n const isActive = active ?? (!!editor?.selection && someNode(editor, { match: { type } }));\n\n return (\n <ToolbarButton\n active={isActive}\n onMouseDown={(event) => {\n if (!editor || !editor.selection) {\n return;\n }\n\n if (!isActive) {\n unwrapList(editor, {});\n }\n\n getPreventDefaultHandler(toggleNodeType, editor, {\n activeType: type,\n inactiveType,\n })(event);\n }}\n {...props}\n />\n );\n },\n);\n"],"names":[],"mappings":";;AAaa,MAAA,IAA4B,EACrC,CAAC,EAAE,OAAI,SAAM,iBAAc,cAAW,QAAqC;AACvE,QAAM,IAAS,EAAoB,EAAgB,CAAE,CAAC,GAEhD,IAAW,gBAAY,CAAA,CAAC,gBAAQ,cAAa,EAAS,GAAQ,EAAE,OAAO,EAAE,WAAQ;AAEvF,SACK,kBAAA,cAAA,GAAA;AAAA,IACG,QAAQ;AAAA,IACR,aAAa,CAAC,MAAU;AACpB,MAAI,CAAC,KAAU,CAAC,EAAO,aAIlB,MACU,EAAA,GAAQ,CAAA,CAAE,GAGzB,EAAyB,GAAgB,GAAQ;AAAA,QAC7C,YAAY;AAAA,QACZ;AAAA,MAAA,CACH,EAAE,CAAK;AAAA,IACZ;AAAA,IACC,GAAG;AAAA,EAAA,CACR;AAER,CACJ;"}
|
package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js
CHANGED
|
@@ -3,11 +3,13 @@ import { useFloatingLinkSelectors as i } from "@udecode/plate";
|
|
|
3
3
|
import { FloatingLink as n } from "./FloatingLink.es.js";
|
|
4
4
|
import { EditModal as l } from "./EditLinkModal/EditModal.es.js";
|
|
5
5
|
import { InsertModal as m } from "./InsertLinkModal/InsertModal.es.js";
|
|
6
|
-
|
|
6
|
+
import "../../../../../node_modules/@udecode/plate-core/dist/index.es.es.js";
|
|
7
|
+
import "slate-react";
|
|
8
|
+
const g = () => {
|
|
7
9
|
const o = i().isEditing(), e = /* @__PURE__ */ t.createElement(m, null), r = o ? e : /* @__PURE__ */ t.createElement(l, null);
|
|
8
10
|
return /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(n.InsertRoot, null, e), /* @__PURE__ */ t.createElement(n.EditRoot, null, r));
|
|
9
11
|
};
|
|
10
12
|
export {
|
|
11
|
-
|
|
13
|
+
g as CustomFloatingLink
|
|
12
14
|
};
|
|
13
15
|
//# sourceMappingURL=CustomFloatingLink.es.js.map
|
package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomFloatingLink.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React from 'react';\nimport { useFloatingLinkSelectors } from '@udecode/plate';\nimport { FloatingLink } from './FloatingLink';\nimport { EditModal } from './EditLinkModal';\nimport { InsertModal } from './InsertLinkModal';\n\nexport const CustomFloatingLink = () => {\n const isEditing = useFloatingLinkSelectors().isEditing();\n\n const input = <InsertModal />;\n const editContent = !isEditing ? <EditModal /> : input;\n\n return (\n <>\n <FloatingLink.InsertRoot>{input}</FloatingLink.InsertRoot>\n\n <FloatingLink.EditRoot>{editContent}</FloatingLink.EditRoot>\n </>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomFloatingLink.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/CustomFloatingLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React from 'react';\nimport { useFloatingLinkSelectors } from '@udecode/plate';\nimport { FloatingLink } from './FloatingLink';\nimport { EditModal } from './EditLinkModal';\nimport { InsertModal } from './InsertLinkModal';\n\nexport const CustomFloatingLink = () => {\n const isEditing = useFloatingLinkSelectors().isEditing();\n\n const input = <InsertModal />;\n const editContent = !isEditing ? <EditModal /> : input;\n\n return (\n <>\n <FloatingLink.InsertRoot>{input}</FloatingLink.InsertRoot>\n\n <FloatingLink.EditRoot>{editContent}</FloatingLink.EditRoot>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,IAAqB,MAAM;AAC9B,QAAA,IAAY,IAA2B,aAEvC,oCAAS,GAAY,IAAA,GACrB,IAAc,AAAC,IAA4B,IAAhB,kBAAA,cAAC,OAAU;AAE5C,SAEQ,kBAAA,cAAA,EAAA,UAAA,MAAA,kBAAA,cAAC,EAAa,YAAb,MAAyB,CAAM,GAEhC,kBAAA,cAAC,EAAa,UAAb,MAAuB,CAAY,CACxC;AAER;"}
|
|
@@ -1,43 +1,48 @@
|
|
|
1
|
-
import { useCallback as
|
|
2
|
-
import { useEditorRef as
|
|
3
|
-
import { getUrlFromEditor as
|
|
4
|
-
const
|
|
5
|
-
const e =
|
|
6
|
-
const t =
|
|
7
|
-
match: { type:
|
|
1
|
+
import { useCallback as y, useEffect as F } from "react";
|
|
2
|
+
import { useEditorRef as h, usePlateSelectors as C, useFloatingLinkSelectors as l, getPluginOptions as R, ELEMENT_LINK as n, getAboveNode as P, getPluginType as d, getRangeBoundingClientRect as b, getStartPoint as N, getEndPoint as O, getDefaultBoundingClientRect as S, useVirtualFloatingLink as B, floatingLinkActions as o, someNode as I, floatingLinkSelectors as g, useHotkeys as v, triggerFloatingLinkEdit as x, useFloatingLinkEnter as A, useFloatingLinkEscape as D, useComposedRef as H } from "@udecode/plate";
|
|
3
|
+
import { getUrlFromEditor as T } from "../../utils/getUrl.es.js";
|
|
4
|
+
const M = ({ floatingOptions: u, ...i }) => {
|
|
5
|
+
const e = h(), c = C().keyEditor(), a = l().mode(), f = l().isOpen(e.id), { triggerFloatingLinkHotkeys: m } = R(e, n), p = y(() => {
|
|
6
|
+
const t = P(e, {
|
|
7
|
+
match: { type: d(e, n) }
|
|
8
8
|
});
|
|
9
9
|
if (t) {
|
|
10
|
-
const [,
|
|
11
|
-
return
|
|
12
|
-
anchor:
|
|
13
|
-
focus:
|
|
10
|
+
const [, s] = t;
|
|
11
|
+
return b(e, {
|
|
12
|
+
anchor: N(e, s),
|
|
13
|
+
focus: O(e, s)
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
return
|
|
17
|
-
}, [e]),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
return S();
|
|
17
|
+
}, [e]), k = f && a === "edit", { update: r, style: E, floating: L } = B({
|
|
18
|
+
editorId: e.id,
|
|
19
|
+
open: k,
|
|
20
|
+
getBoundingClientRect: p,
|
|
21
|
+
...u
|
|
21
22
|
});
|
|
22
|
-
return
|
|
23
|
-
const t =
|
|
24
|
-
if (t && o.url(t), e.selection &&
|
|
25
|
-
match: { type:
|
|
23
|
+
return F(() => {
|
|
24
|
+
const t = T(e);
|
|
25
|
+
if (t && o.url(t), e.selection && I(e, {
|
|
26
|
+
match: { type: d(e, n) }
|
|
26
27
|
})) {
|
|
27
|
-
o.show("edit"),
|
|
28
|
+
o.show("edit", e.id), r();
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
}, [e,
|
|
31
|
+
g.mode() === "edit" && o.hide();
|
|
32
|
+
}, [e, c, r]), v(m, (t) => {
|
|
33
|
+
t.preventDefault(), g.mode() === "edit" && x(e);
|
|
34
|
+
}, {
|
|
35
|
+
enableOnContentEditable: !0
|
|
36
|
+
}, []), A(), D(), {
|
|
32
37
|
style: {
|
|
33
|
-
...
|
|
38
|
+
...E,
|
|
34
39
|
zIndex: 1
|
|
35
40
|
},
|
|
36
|
-
...
|
|
37
|
-
ref:
|
|
41
|
+
...i,
|
|
42
|
+
ref: H(i.ref, L)
|
|
38
43
|
};
|
|
39
44
|
};
|
|
40
45
|
export {
|
|
41
|
-
|
|
46
|
+
M as useFloatingLinkEdit
|
|
42
47
|
};
|
|
43
48
|
//# sourceMappingURL=useFloatingLinkEdit.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingLinkEdit.es.js","sources":["../../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useCallback, useEffect } from 'react';\nimport {\n ELEMENT_LINK,\n FloatingLinkProps,\n HTMLPropsAs,\n floatingLinkActions,\n floatingLinkSelectors,\n getAboveNode,\n getDefaultBoundingClientRect,\n getEndPoint,\n getPluginType,\n getRangeBoundingClientRect,\n getStartPoint,\n someNode,\n useComposedRef,\n useEditorRef,\n useFloatingLinkSelectors,\n usePlateSelectors,\n useVirtualFloatingLink,\n} from '@udecode/plate';\nimport { getUrlFromEditor } from '../../utils';\n\nexport const useFloatingLinkEdit = ({ floatingOptions, ...props }: FloatingLinkProps): HTMLPropsAs<'div'> => {\n const editor = useEditorRef();\n const keyEditor = usePlateSelectors(
|
|
1
|
+
{"version":3,"file":"useFloatingLinkEdit.es.js","sources":["../../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useCallback, useEffect } from 'react';\nimport {\n ELEMENT_LINK,\n FloatingLinkProps,\n HTMLPropsAs,\n LinkPlugin,\n floatingLinkActions,\n floatingLinkSelectors,\n getAboveNode,\n getDefaultBoundingClientRect,\n getEndPoint,\n getPluginOptions,\n getPluginType,\n getRangeBoundingClientRect,\n getStartPoint,\n someNode,\n triggerFloatingLinkEdit,\n useComposedRef,\n useEditorRef,\n useFloatingLinkEnter,\n useFloatingLinkEscape,\n useFloatingLinkSelectors,\n useHotkeys,\n usePlateSelectors,\n useVirtualFloatingLink,\n} from '@udecode/plate';\nimport { getUrlFromEditor } from '../../utils';\n\nexport const useFloatingLinkEdit = ({ floatingOptions, ...props }: FloatingLinkProps): HTMLPropsAs<'div'> => {\n const editor = useEditorRef();\n const keyEditor = usePlateSelectors().keyEditor();\n const mode = useFloatingLinkSelectors().mode();\n const open = useFloatingLinkSelectors().isOpen(editor.id);\n\n const { triggerFloatingLinkHotkeys } = getPluginOptions<LinkPlugin>(editor, ELEMENT_LINK);\n\n const getBoundingClientRect = useCallback(() => {\n const entry = getAboveNode(editor, {\n match: { type: getPluginType(editor, ELEMENT_LINK) },\n });\n\n if (entry) {\n const [, path] = entry;\n return getRangeBoundingClientRect(editor, {\n anchor: getStartPoint(editor, path),\n focus: getEndPoint(editor, path),\n });\n }\n\n return getDefaultBoundingClientRect();\n }, [editor]);\n\n const isOpen = open && mode === 'edit';\n\n const { update, style, floating } = useVirtualFloatingLink({\n editorId: editor.id,\n open: isOpen,\n getBoundingClientRect,\n ...floatingOptions,\n });\n\n useEffect(() => {\n const url = getUrlFromEditor(editor);\n if (url) {\n floatingLinkActions.url(url);\n }\n\n if (\n editor.selection &&\n someNode(editor, {\n match: { type: getPluginType(editor, ELEMENT_LINK) },\n })\n ) {\n floatingLinkActions.show('edit', editor.id);\n update();\n return;\n }\n\n if (floatingLinkSelectors.mode() === 'edit') {\n floatingLinkActions.hide();\n }\n }, [editor, keyEditor, update]);\n\n useHotkeys(\n triggerFloatingLinkHotkeys!,\n (e) => {\n e.preventDefault();\n\n if (floatingLinkSelectors.mode() === 'edit') {\n triggerFloatingLinkEdit(editor);\n }\n },\n {\n enableOnContentEditable: true,\n },\n [],\n );\n\n useFloatingLinkEnter();\n\n useFloatingLinkEscape();\n\n return {\n style: {\n ...style,\n zIndex: 1,\n },\n ...props,\n ref: useComposedRef<HTMLElement | null>(props.ref, floating),\n };\n};\n"],"names":[],"mappings":";;;AA8BO,MAAM,IAAsB,CAAC,EAAE,uBAAoB,QAAmD;AACzG,QAAM,IAAS,KACT,IAAY,IAAoB,aAChC,IAAO,IAA2B,QAClC,IAAO,EAA2B,EAAA,OAAO,EAAO,EAAE,GAElD,EAAE,kCAA+B,EAA6B,GAAQ,CAAY,GAElF,IAAwB,EAAY,MAAM;AACtC,UAAA,IAAQ,EAAa,GAAQ;AAAA,MAC/B,OAAO,EAAE,MAAM,EAAc,GAAQ,CAAY,EAAE;AAAA,IAAA,CACtD;AAED,QAAI,GAAO;AACD,YAAA,CAAG,EAAA,KAAQ;AACjB,aAAO,EAA2B,GAAQ;AAAA,QACtC,QAAQ,EAAc,GAAQ,CAAI;AAAA,QAClC,OAAO,EAAY,GAAQ,CAAI;AAAA,MAAA,CAClC;AAAA,IACL;AAEA,WAAO,EAA6B;AAAA,EAAA,GACrC,CAAC,CAAM,CAAC,GAEL,IAAS,KAAQ,MAAS,QAE1B,EAAE,WAAQ,UAAO,gBAAa,EAAuB;AAAA,IACvD,UAAU,EAAO;AAAA,IACjB,MAAM;AAAA,IACN;AAAA,IACA,GAAG;AAAA,EAAA,CACN;AAED,WAAU,MAAM;AACN,UAAA,IAAM,EAAiB,CAAM;AAM/B,QALA,KACA,EAAoB,IAAI,CAAG,GAI3B,EAAO,aACP,EAAS,GAAQ;AAAA,MACb,OAAO,EAAE,MAAM,EAAc,GAAQ,CAAY,EAAE;AAAA,IAAA,CACtD,GACH;AACsB,QAAA,KAAK,QAAQ,EAAO,EAAE,GACnC;AACP;AAAA,IACJ;AAEI,IAAA,EAAsB,KAAK,MAAM,UACjC,EAAoB,KAAK;AAAA,EAE9B,GAAA,CAAC,GAAQ,GAAW,CAAM,CAAC,GAG1B,EAAA,GACA,CAAC,MAAM;AACH,MAAE,eAAe,GAEb,EAAsB,KAAK,MAAM,UACjC,EAAwB,CAAM;AAAA,EAClC,GAEJ;AAAA,IACI,yBAAyB;AAAA,EAC7B,GACA,CACJ,CAAA,GAEqB,KAEC,KAEf;AAAA,IACH,OAAO;AAAA,MACH,GAAG;AAAA,MACH,QAAQ;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,IACH,KAAK,EAAmC,EAAM,KAAK,CAAQ;AAAA,EAAA;AAEnE;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponentAs as m,
|
|
1
|
+
import { createComponentAs as m, createElementAs as p, FloatingLink as r } from "@udecode/plate";
|
|
2
2
|
import "react";
|
|
3
3
|
import "../../../../../foundation/Icon/Generated/IconAdobeCreativeCloud.es.js";
|
|
4
4
|
import "../../../../../foundation/Icon/Generated/IconAdobeCreativeCloud12.es.js";
|
|
@@ -1662,20 +1662,27 @@ import "../../../../../foundation/Icon/Generated/IconWorkflowShapes24.es.js";
|
|
|
1662
1662
|
import "../../../../../foundation/Icon/Generated/IconWorkflowShapes32.es.js";
|
|
1663
1663
|
import "../../../../../foundation/Icon/IconsMap.es.js";
|
|
1664
1664
|
import "../../../context/RichTextEditorContext.es.js";
|
|
1665
|
-
import { useFloatingLinkEdit as
|
|
1665
|
+
import { useFloatingLinkEdit as n } from "./EditLinkModal/useFloatingLinkEdit.es.js";
|
|
1666
|
+
import "../../../../Button/Button.es.js";
|
|
1667
|
+
import "../../../../Checkbox/Checkbox.es.js";
|
|
1668
|
+
import "../../../../FormControl/FormControl.es.js";
|
|
1669
|
+
import "@react-aria/focus";
|
|
1670
|
+
import "../../../../../utilities/focusStyle.es.js";
|
|
1671
|
+
import "./InsertLinkModal/useInsertModal.es.js";
|
|
1672
|
+
import { useFloatingLinkInsert as e } from "./InsertLinkModal/useFloatingLinkInsert.es.js";
|
|
1666
1673
|
const s = m((i) => {
|
|
1667
1674
|
var o;
|
|
1668
|
-
const t =
|
|
1675
|
+
const t = e(i);
|
|
1669
1676
|
return ((o = t.style) == null ? void 0 : o.display) === "none" ? null : p("div", t);
|
|
1670
1677
|
}), l = m((i) => {
|
|
1671
1678
|
var o;
|
|
1672
|
-
const t =
|
|
1679
|
+
const t = n(i);
|
|
1673
1680
|
return ((o = t.style) == null ? void 0 : o.display) === "none" ? null : p("div", t);
|
|
1674
1681
|
});
|
|
1675
1682
|
r.EditRoot = l;
|
|
1676
1683
|
r.InsertRoot = s;
|
|
1677
|
-
const
|
|
1684
|
+
const u$ = r;
|
|
1678
1685
|
export {
|
|
1679
|
-
|
|
1686
|
+
u$ as FloatingLink
|
|
1680
1687
|
};
|
|
1681
1688
|
//# sourceMappingURL=FloatingLink.es.js.map
|
package/dist/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/FloatingLink.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingLink.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/FloatingLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n FloatingLinkProps,\n FloatingLink as PlateFloatingLink,\n createComponentAs,\n createElementAs,\n
|
|
1
|
+
{"version":3,"file":"FloatingLink.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/FloatingLink.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n FloatingLinkProps,\n FloatingLink as PlateFloatingLink,\n createComponentAs,\n createElementAs,\n} from '@udecode/plate';\nimport { useFloatingLinkEdit } from './EditLinkModal';\nimport { useFloatingLinkInsert } from './InsertLinkModal';\n\nconst FloatingLinkInsertRoot = createComponentAs<FloatingLinkProps>((props) => {\n const htmlProps = useFloatingLinkInsert(props);\n\n if (htmlProps.style?.display === 'none') {\n return null;\n }\n\n return createElementAs('div', htmlProps);\n});\n\nconst FloatingLinkEditRoot = createComponentAs<FloatingLinkProps>((props) => {\n const htmlProps = useFloatingLinkEdit(props);\n\n if (htmlProps.style?.display === 'none') {\n return null;\n }\n\n return createElementAs('div', htmlProps);\n});\n\nPlateFloatingLink.EditRoot = FloatingLinkEditRoot;\nPlateFloatingLink.InsertRoot = FloatingLinkInsertRoot;\n\nexport const FloatingLink = PlateFloatingLink;\n"],"names":["PlateFloatingLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,IAAyB,EAAqC,CAAC,MAAU;;AACrE,QAAA,IAAY,EAAsB,CAAK;AAEzC,SAAA,QAAU,UAAV,kBAAiB,aAAY,SACtB,OAGJ,EAAgB,OAAO,CAAS;AAC3C,CAAC,GAEK,IAAuB,EAAqC,CAAC,MAAU;;AACnE,QAAA,IAAY,EAAoB,CAAK;AAEvC,SAAA,QAAU,UAAV,kBAAiB,aAAY,SACtB,OAGJ,EAAgB,OAAO,CAAS;AAC3C,CAAC;AAEDA,EAAkB,WAAW;AAC7BA,EAAkB,aAAa;AAExB,MAAM,KAAeA;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useEffect as m } from "react";
|
|
2
|
+
import { useEditorRef as p, useFloatingLinkSelectors as r, getPluginOptions as k, ELEMENT_LINK as L, useHotkeys as E, triggerFloatingLinkInsert as F, useOnClickOutside as C, floatingLinkSelectors as I, floatingLinkActions as n, focusEditor as O, useVirtualFloatingLink as y, useFloatingLinkEscape as R, useComposedRef as S } from "@udecode/plate";
|
|
3
|
+
import { getSelectionBoundingClientRect as b } from "../../../../../../node_modules/@udecode/plate-floating/dist/index.es.es.js";
|
|
4
|
+
import { useFocused as h } from "slate-react";
|
|
5
|
+
const N = ({ floatingOptions: l, ...o }) => {
|
|
6
|
+
const e = p(), i = h(), u = r().mode(), t = r().isOpen(e.id), { triggerFloatingLinkHotkeys: d } = k(e, L);
|
|
7
|
+
E(d, (a) => {
|
|
8
|
+
a.preventDefault(), F(e, {
|
|
9
|
+
focused: i
|
|
10
|
+
});
|
|
11
|
+
}, {
|
|
12
|
+
enableOnContentEditable: !0
|
|
13
|
+
}, [i]);
|
|
14
|
+
const c = C(() => {
|
|
15
|
+
I.mode() === "insert" && t && (n.hide(), O(e, e.selection));
|
|
16
|
+
}), { update: s, style: f, floating: g } = y({
|
|
17
|
+
editorId: e.id,
|
|
18
|
+
open: t && u === "insert",
|
|
19
|
+
getBoundingClientRect: b,
|
|
20
|
+
whileElementsMounted: () => {
|
|
21
|
+
},
|
|
22
|
+
...l
|
|
23
|
+
});
|
|
24
|
+
return m(() => {
|
|
25
|
+
t ? (s(), n.updated(!0)) : n.updated(!1);
|
|
26
|
+
}, [t, s]), R(), {
|
|
27
|
+
style: {
|
|
28
|
+
...f,
|
|
29
|
+
zIndex: 1
|
|
30
|
+
},
|
|
31
|
+
...o,
|
|
32
|
+
ref: S(o.ref, g, c)
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
N as useFloatingLinkInsert
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=useFloatingLinkInsert.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingLinkInsert.es.js","sources":["../../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/FloatingLink/InsertLinkModal/useFloatingLinkInsert.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport {\n ELEMENT_LINK,\n FloatingLinkProps,\n HTMLPropsAs,\n LinkPlugin,\n floatingLinkActions,\n floatingLinkSelectors,\n focusEditor,\n getPluginOptions,\n triggerFloatingLinkInsert,\n useComposedRef,\n useEditorRef,\n useFloatingLinkEscape,\n useFloatingLinkSelectors,\n useHotkeys,\n useOnClickOutside,\n useVirtualFloatingLink,\n} from '@udecode/plate';\nimport { getSelectionBoundingClientRect } from '@udecode/plate-floating';\nimport { useFocused } from 'slate-react';\n\nexport const useFloatingLinkInsert = ({ floatingOptions, ...props }: FloatingLinkProps): HTMLPropsAs<'div'> => {\n const editor = useEditorRef();\n const focused = useFocused();\n const mode = useFloatingLinkSelectors().mode();\n const open = useFloatingLinkSelectors().isOpen(editor.id);\n\n const { triggerFloatingLinkHotkeys } = getPluginOptions<LinkPlugin>(editor, ELEMENT_LINK);\n\n useHotkeys(\n triggerFloatingLinkHotkeys!,\n (e) => {\n e.preventDefault();\n\n triggerFloatingLinkInsert(editor, {\n focused,\n });\n },\n {\n enableOnContentEditable: true,\n },\n [focused],\n );\n\n const ref = useOnClickOutside(() => {\n if (floatingLinkSelectors.mode() === 'insert' && open) {\n floatingLinkActions.hide();\n focusEditor(editor, editor.selection!);\n }\n });\n\n const { update, style, floating } = useVirtualFloatingLink({\n editorId: editor.id,\n open: open && mode === 'insert',\n getBoundingClientRect: getSelectionBoundingClientRect,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n whileElementsMounted: () => {},\n ...floatingOptions,\n });\n\n // wait for update before focusing input\n useEffect(() => {\n if (open) {\n update();\n floatingLinkActions.updated(true);\n } else {\n floatingLinkActions.updated(false);\n }\n }, [open, update]);\n\n useFloatingLinkEscape();\n\n return {\n style: {\n ...style,\n zIndex: 1,\n },\n ...props,\n ref: useComposedRef<HTMLElement | null>(props.ref, floating, ref),\n };\n};\n"],"names":[],"mappings":";;;;AAsBO,MAAM,IAAwB,CAAC,EAAE,uBAAoB,QAAmD;AAC3G,QAAM,IAAS,KACT,IAAU,KACV,IAAO,IAA2B,QAClC,IAAO,EAA2B,EAAA,OAAO,EAAO,EAAE,GAElD,EAAE,kCAA+B,EAA6B,GAAQ,CAAY;AAGpF,IAAA,GACA,CAAC,MAAM;AACH,MAAE,eAAe,GAEjB,EAA0B,GAAQ;AAAA,MAC9B;AAAA,IAAA,CACH;AAAA,EAAA,GAEL;AAAA,IACI,yBAAyB;AAAA,EAAA,GAE7B,CAAC,CAAO,CACZ;AAEM,QAAA,IAAM,EAAkB,MAAM;AAChC,IAAI,EAAsB,WAAW,YAAY,KAC7C,GAAoB,KAAK,GACb,EAAA,GAAQ,EAAO,SAAU;AAAA,EACzC,CACH,GAEK,EAAE,WAAQ,UAAO,gBAAa,EAAuB;AAAA,IACvD,UAAU,EAAO;AAAA,IACjB,MAAM,KAAQ,MAAS;AAAA,IACvB,uBAAuB;AAAA,IAEvB,sBAAsB,MAAM;AAAA,IAAC;AAAA,IAC7B,GAAG;AAAA,EAAA,CACN;AAGD,WAAU,MAAM;AACZ,IAAI,IACO,MACP,EAAoB,QAAQ,EAAI,KAEhC,EAAoB,QAAQ,EAAK;AAAA,EACrC,GACD,CAAC,GAAM,CAAM,CAAC,GAEK,KAEf;AAAA,IACH,OAAO;AAAA,MACH,GAAG;AAAA,MACH,QAAQ;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,IACH,KAAK,EAAmC,EAAM,KAAK,GAAU,CAAG;AAAA,EAAA;AAExE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkMarkupElementNode.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React from 'react';\nimport { HTMLPropsAs, LinkRootProps, useElementProps } from '@udecode/plate';\nimport { getUrlFromLinkOrLegacyLink } from '../utils';\nimport { TLinkElement } from '../types';\nimport { useRichTextEditorContext } from '@components/RichTextEditor/context/RichTextEditorContext';\n\nconst useLink = (props: LinkRootProps): HTMLPropsAs<'a'> => {\n const _props = useElementProps<TLinkElement, 'a'>({\n ...props,\n elementToAttributes: (element) => ({\n href: getUrlFromLinkOrLegacyLink(element),\n target: element.target || '_blank',\n }),\n });\n\n return {\n ..._props,\n // quick fix: hovering <a> with href loses the editor focus\n onMouseOver: (e: MouseEvent) => {\n e.stopPropagation();\n },\n };\n};\n\nexport const LinkMarkupElementNode = (props: LinkRootProps) => {\n const htmlProps = useLink(props);\n const { designTokens } = useRichTextEditorContext();\n const { attributes, children } = props;\n\n return (\n <a {...attributes} href={htmlProps.href} target={htmlProps.target} style={designTokens.link}>\n {children}\n </a>\n );\n};\n"],"names":[],"mappings":";;;;AAQA,MAAM,IAAU,CAAC,MASN;AAAA,EACH,GATW,EAAmC;AAAA,IAC9C,GAAG;AAAA,IACH,qBAAqB,CAAC,MAAa;AAAA,MAC/B,MAAM,EAA2B,CAAO;AAAA,MACxC,QAAQ,EAAQ,UAAU;AAAA,IAAA;AAAA,EAC9B,CACH;AAAA,EAKG,aAAa,CAAC,MAAkB;AAC5B,MAAE,gBAAgB;AAAA,EACtB;AAAA,IAIK,IAAwB,CAAC,MAAyB;AACrD,QAAA,IAAY,EAAQ,CAAK,GACzB,EAAE,oBAAiB,KACnB,EAAE,eAAY,gBAAa;AAEjC,SACK,kBAAA,cAAA,KAAA;AAAA,IAAG,GAAG;AAAA,IAAY,MAAM,EAAU;AAAA,IAAM,QAAQ,EAAU;AAAA,IAAQ,OAAO,EAAa;AAAA,EAAA,GAClF,CACL;AAER;"}
|
|
1
|
+
{"version":3,"file":"LinkMarkupElementNode.es.js","sources":["../../../../../../src/components/RichTextEditor/Plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { MouseEvent } from 'react';\nimport { HTMLPropsAs, LinkRootProps, useElementProps } from '@udecode/plate';\nimport { getUrlFromLinkOrLegacyLink } from '../utils';\nimport { TLinkElement } from '../types';\nimport { useRichTextEditorContext } from '@components/RichTextEditor/context/RichTextEditorContext';\n\nconst useLink = (props: LinkRootProps): HTMLPropsAs<'a'> => {\n const _props = useElementProps<TLinkElement, 'a'>({\n ...props,\n elementToAttributes: (element) => ({\n href: getUrlFromLinkOrLegacyLink(element),\n target: element.target || '_blank',\n }),\n });\n\n return {\n ..._props,\n // quick fix: hovering <a> with href loses the editor focus\n onMouseOver: (e: MouseEvent) => {\n e.stopPropagation();\n },\n };\n};\n\nexport const LinkMarkupElementNode = (props: LinkRootProps) => {\n const htmlProps = useLink(props);\n const { designTokens } = useRichTextEditorContext();\n const { attributes, children } = props;\n\n return (\n <a {...attributes} href={htmlProps.href} target={htmlProps.target} style={designTokens.link}>\n {children}\n </a>\n );\n};\n"],"names":[],"mappings":";;;;AAQA,MAAM,IAAU,CAAC,MASN;AAAA,EACH,GATW,EAAmC;AAAA,IAC9C,GAAG;AAAA,IACH,qBAAqB,CAAC,MAAa;AAAA,MAC/B,MAAM,EAA2B,CAAO;AAAA,MACxC,QAAQ,EAAQ,UAAU;AAAA,IAAA;AAAA,EAC9B,CACH;AAAA,EAKG,aAAa,CAAC,MAAkB;AAC5B,MAAE,gBAAgB;AAAA,EACtB;AAAA,IAIK,IAAwB,CAAC,MAAyB;AACrD,QAAA,IAAY,EAAQ,CAAK,GACzB,EAAE,oBAAiB,KACnB,EAAE,eAAY,gBAAa;AAEjC,SACK,kBAAA,cAAA,KAAA;AAAA,IAAG,GAAG;AAAA,IAAY,MAAM,EAAU;AAAA,IAAM,QAAQ,EAAU;AAAA,IAAQ,OAAO,EAAa;AAAA,EAAA,GAClF,CACL;AAER;"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const serializeLeafToHtml: (node: TDescendant) => string;
|
|
1
|
+
export declare const serializeLeafToHtml: (node: any) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializeLeafToHtml.es.js","sources":["../../../../../src/components/RichTextEditor/serializer/utils/serializeLeafToHtml.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {
|
|
1
|
+
{"version":3,"file":"serializeLeafToHtml.es.js","sources":["../../../../../src/components/RichTextEditor/serializer/utils/serializeLeafToHtml.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n BOLD_CLASSES,\n CODE_CLASSES,\n ITALIC_CLASSES,\n STRIKETHROUGH_CLASSES,\n UNDERLINE_CLASSES,\n} from '@components/RichTextEditor/Plugins';\nimport escapeHtml from 'escape-html';\n\nexport const serializeLeafToHtml = (node: any): string => {\n let string = escapeHtml(node.text);\n if (node.bold) {\n string = `<span class=\"${BOLD_CLASSES}\">${string}</span>`;\n }\n if (node.italic) {\n string = `<span class=\"${ITALIC_CLASSES}\">${string}</span>`;\n }\n if (node.underline) {\n string = `<span class=\"${UNDERLINE_CLASSES}\">${string}</span>`;\n }\n if (node.strikethrough) {\n string = `<span class=\"${STRIKETHROUGH_CLASSES}\">${string}</span>`;\n }\n if (node.code) {\n string = `<span class=\"${CODE_CLASSES}\">${string}</span>`;\n }\n return string;\n};\n"],"names":["escapeHtml"],"mappings":";;;;;;;AAWa,MAAA,IAAsB,CAAC,MAAsB;AAClD,MAAA,IAASA,EAAW,EAAK,IAAI;AACjC,SAAI,EAAK,QACL,KAAS,gBAAgB,MAAiB,aAE1C,EAAK,UACL,KAAS,gBAAgB,MAAmB,aAE5C,EAAK,aACL,KAAS,gBAAgB,MAAsB,aAE/C,EAAK,iBACL,KAAS,gBAAgB,MAA0B,aAEnD,EAAK,QACL,KAAS,gBAAgB,MAAiB,aAEvC;AACX;"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { TDescendant } from '@udecode/plate';
|
|
2
1
|
import { DesignTokens } from '../../../RichTextEditor/types';
|
|
3
|
-
export declare const serializeNodeToHtmlRecursive: (node:
|
|
2
|
+
export declare const serializeNodeToHtmlRecursive: (node: any, designTokens: DesignTokens) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ELEMENT_LINK as c, ELEMENT_LI as
|
|
1
|
+
import { ELEMENT_LINK as c, ELEMENT_LI as m, ELEMENT_OL as i, ELEMENT_UL as s, ELEMENT_PARAGRAPH as $ } from "@udecode/plate";
|
|
2
2
|
import "../../Plugins/index.es.js";
|
|
3
|
-
import { TextStyles as
|
|
3
|
+
import { TextStyles as E } from "../../Plugins/TextStylePlugin/TextStyles/textStyles.es.js";
|
|
4
4
|
import "../../Plugins/TextStylePlugin/TextStyles/Custom1Plugin/createCustom1Plugin.es.js";
|
|
5
5
|
import "../../Plugins/TextStylePlugin/TextStyles/Custom2Plugin/createCustom2Plugin.es.js";
|
|
6
6
|
import "../../Plugins/TextStylePlugin/TextStyles/Custom3Plugin/createCustom3Plugin.es.js";
|
|
@@ -9,43 +9,47 @@ import "../../Plugins/TextStylePlugin/TextStyles/Heading2Plugin/createHeading2Pl
|
|
|
9
9
|
import "../../Plugins/TextStylePlugin/TextStyles/Heading3Plugin/createHeading3Plugin.es.js";
|
|
10
10
|
import "../../Plugins/TextStylePlugin/TextStyles/Heading4Plugin/createHeading4Plugin.es.js";
|
|
11
11
|
import "../../Plugins/TextStylePlugin/TextStyles/Quote/createQuotePlugin.es.js";
|
|
12
|
-
import
|
|
12
|
+
import p from "../../../../node_modules/escape-html/index.es.js";
|
|
13
13
|
import { reactCssPropsToCss as e } from "./reactCssPropsToCss.es.js";
|
|
14
14
|
import { serializeLeafToHtml as o } from "./serializeLeafToHtml.es.js";
|
|
15
15
|
import { ELEMENT_CHECK_ITEM as u } from "../../Plugins/CheckboxListPlugin/id.es.js";
|
|
16
16
|
import { OL_CLASSES as L } from "../../Plugins/ListPlugin/OrderedListPlugin/OrderedListMarkupElement.es.js";
|
|
17
17
|
import { UL_CLASSES as h } from "../../Plugins/ListPlugin/UnorderedListPlugin/UnorderedListMarkupElement.es.js";
|
|
18
|
-
const N = (
|
|
19
|
-
if (!
|
|
20
|
-
return o(
|
|
21
|
-
const r =
|
|
22
|
-
switch (
|
|
23
|
-
case
|
|
18
|
+
const N = (l, t) => {
|
|
19
|
+
if (!l.children)
|
|
20
|
+
return o(l);
|
|
21
|
+
const r = l.children.map((a) => N(a, t)).join("");
|
|
22
|
+
switch (l.type) {
|
|
23
|
+
case E.ELEMENT_HEADING1:
|
|
24
24
|
return `<h1 style="${e(t.heading1)}">${r}</h1>`;
|
|
25
|
-
case
|
|
25
|
+
case E.ELEMENT_HEADING2:
|
|
26
26
|
return `<h2 style="${e(t.heading2)}">${r}</h2>`;
|
|
27
|
-
case
|
|
27
|
+
case E.ELEMENT_HEADING3:
|
|
28
28
|
return `<h3 style="${e(t.heading3)}">${r}</h3>`;
|
|
29
|
-
case
|
|
29
|
+
case E.ELEMENT_HEADING4:
|
|
30
30
|
return `<h4 style="${e(t.heading4)}">${r}</h4>`;
|
|
31
|
-
case
|
|
31
|
+
case E.ELEMENT_CUSTOM1:
|
|
32
32
|
return `<p style="${e(t.custom1)}">${r}</p>`;
|
|
33
|
-
case
|
|
33
|
+
case E.ELEMENT_CUSTOM2:
|
|
34
34
|
return `<p style="${e(t.custom2)}">${r}</p>`;
|
|
35
|
-
case
|
|
35
|
+
case E.ELEMENT_CUSTOM3:
|
|
36
36
|
return `<p style="${e(t.custom3)}">${r}</p>`;
|
|
37
|
-
case
|
|
37
|
+
case E.ELEMENT_QUOTE:
|
|
38
38
|
return `<p style="${e(t.quote)}">${r}</p>`;
|
|
39
39
|
case $:
|
|
40
40
|
return `<p>${r}</p>`;
|
|
41
41
|
case s:
|
|
42
42
|
return `<ul class="${h}">${r}</ul>`;
|
|
43
|
-
case m:
|
|
44
|
-
return `<ol class="${L}">${r}</ol>`;
|
|
45
43
|
case i:
|
|
44
|
+
return `<ol class="${L}">${r}</ol>`;
|
|
45
|
+
case m:
|
|
46
46
|
return `<li>${r}</li>`;
|
|
47
47
|
case c:
|
|
48
|
-
|
|
48
|
+
if (l.chosenLink) {
|
|
49
|
+
const { chosenLink: a } = l;
|
|
50
|
+
return `<a style="${e(t.link)}" target=${a.openInNewTab ? "_blank" : "_self"} href="${p(a.searchResult.link)}">${r}</a>`;
|
|
51
|
+
}
|
|
52
|
+
return `<a style="${e(t.link)}" href="${p(l.url)}">${r}</a>`;
|
|
49
53
|
case u:
|
|
50
54
|
return `<input type="checkbox"/><label>${r}</label>`;
|
|
51
55
|
default:
|
package/dist/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializeNodeToHtmlRecursive.es.js","sources":["../../../../../src/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ELEMENT_LI, ELEMENT_LINK, ELEMENT_OL, ELEMENT_PARAGRAPH, ELEMENT_UL, TDescendant } from '@udecode/plate';\nimport { ELEMENT_CHECK_ITEM, OL_CLASSES, UL_CLASSES } from '@components/RichTextEditor/Plugins';\nimport { DesignTokens } from '@components/RichTextEditor/types';\nimport { TextStyles } from '@components/RichTextEditor/Plugins/TextStylePlugin/TextStyles';\nimport escapeHtml from 'escape-html';\nimport { reactCssPropsToCss } from './reactCssPropsToCss';\nimport { serializeLeafToHtml } from './serializeLeafToHtml';\n\nexport const serializeNodeToHtmlRecursive = (node:
|
|
1
|
+
{"version":3,"file":"serializeNodeToHtmlRecursive.es.js","sources":["../../../../../src/components/RichTextEditor/serializer/utils/serializeNodeToHtmlRecursive.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ELEMENT_LI, ELEMENT_LINK, ELEMENT_OL, ELEMENT_PARAGRAPH, ELEMENT_UL, TDescendant } from '@udecode/plate';\nimport { ELEMENT_CHECK_ITEM, OL_CLASSES, UL_CLASSES } from '@components/RichTextEditor/Plugins';\nimport { DesignTokens } from '@components/RichTextEditor/types';\nimport { TextStyles } from '@components/RichTextEditor/Plugins/TextStylePlugin/TextStyles';\nimport escapeHtml from 'escape-html';\nimport { reactCssPropsToCss } from './reactCssPropsToCss';\nimport { serializeLeafToHtml } from './serializeLeafToHtml';\n\nexport const serializeNodeToHtmlRecursive = (node: any, designTokens: DesignTokens): string => {\n if (!node.children) {\n return serializeLeafToHtml(node);\n }\n const children = node.children.map((n: TDescendant) => serializeNodeToHtmlRecursive(n, designTokens)).join('');\n\n switch (node.type) {\n case TextStyles.ELEMENT_HEADING1:\n return `<h1 style=\"${reactCssPropsToCss(designTokens.heading1)}\">${children}</h1>`;\n case TextStyles.ELEMENT_HEADING2:\n return `<h2 style=\"${reactCssPropsToCss(designTokens.heading2)}\">${children}</h2>`;\n case TextStyles.ELEMENT_HEADING3:\n return `<h3 style=\"${reactCssPropsToCss(designTokens.heading3)}\">${children}</h3>`;\n case TextStyles.ELEMENT_HEADING4:\n return `<h4 style=\"${reactCssPropsToCss(designTokens.heading4)}\">${children}</h4>`;\n case TextStyles.ELEMENT_CUSTOM1:\n return `<p style=\"${reactCssPropsToCss(designTokens.custom1)}\">${children}</p>`;\n case TextStyles.ELEMENT_CUSTOM2:\n return `<p style=\"${reactCssPropsToCss(designTokens.custom2)}\">${children}</p>`;\n case TextStyles.ELEMENT_CUSTOM3:\n return `<p style=\"${reactCssPropsToCss(designTokens.custom3)}\">${children}</p>`;\n case TextStyles.ELEMENT_QUOTE:\n return `<p style=\"${reactCssPropsToCss(designTokens.quote)}\">${children}</p>`;\n case ELEMENT_PARAGRAPH:\n return `<p>${children}</p>`;\n case ELEMENT_UL:\n return `<ul class=\"${UL_CLASSES}\">${children}</ul>`;\n case ELEMENT_OL:\n return `<ol class=\"${OL_CLASSES}\">${children}</ol>`;\n case ELEMENT_LI:\n return `<li>${children}</li>`;\n case ELEMENT_LINK:\n if (node.chosenLink) {\n const { chosenLink } = node;\n return `<a style=\"${reactCssPropsToCss(designTokens.link)}\" target=${\n chosenLink.openInNewTab ? '_blank' : '_self'\n } href=\"${escapeHtml(chosenLink.searchResult.link)}\">${children}</a>`;\n }\n return `<a style=\"${reactCssPropsToCss(designTokens.link)}\" href=\"${escapeHtml(node.url)}\">${children}</a>`;\n case ELEMENT_CHECK_ITEM:\n return `<input type=\"checkbox\"/><label>${children}</label>`;\n\n default:\n return children;\n }\n};\n"],"names":["escapeHtml"],"mappings":";;;;;;;;;;;;;;;;;AAUa,MAAA,IAA+B,CAAC,GAAW,MAAuC;AACvF,MAAA,CAAC,EAAK;AACN,WAAO,EAAoB,CAAI;AAEnC,QAAM,IAAW,EAAK,SAAS,IAAI,CAAC,MAAmB,EAA6B,GAAG,CAAY,CAAC,EAAE,KAAK,EAAE;AAE7G,UAAQ,EAAK;AAAA,SACJ,EAAW;AACZ,aAAO,cAAc,EAAmB,EAAa,QAAQ,MAAM;AAAA,SAClE,EAAW;AACZ,aAAO,cAAc,EAAmB,EAAa,QAAQ,MAAM;AAAA,SAClE,EAAW;AACZ,aAAO,cAAc,EAAmB,EAAa,QAAQ,MAAM;AAAA,SAClE,EAAW;AACZ,aAAO,cAAc,EAAmB,EAAa,QAAQ,MAAM;AAAA,SAClE,EAAW;AACZ,aAAO,aAAa,EAAmB,EAAa,OAAO,MAAM;AAAA,SAChE,EAAW;AACZ,aAAO,aAAa,EAAmB,EAAa,OAAO,MAAM;AAAA,SAChE,EAAW;AACZ,aAAO,aAAa,EAAmB,EAAa,OAAO,MAAM;AAAA,SAChE,EAAW;AACZ,aAAO,aAAa,EAAmB,EAAa,KAAK,MAAM;AAAA,SAC9D;AACD,aAAO,MAAM;AAAA,SACZ;AACD,aAAO,cAAc,MAAe;AAAA,SACnC;AACD,aAAO,cAAc,MAAe;AAAA,SACnC;AACD,aAAO,OAAO;AAAA,SACb;AACD,UAAI,EAAK,YAAY;AACjB,cAAM,EAAE,kBAAe;AACvB,eAAO,aAAa,EAAmB,EAAa,IAAI,aACpD,EAAW,eAAe,WAAW,iBAC/BA,EAAW,EAAW,aAAa,IAAI,MAAM;AAAA,MAC3D;AACO,aAAA,aAAa,EAAmB,EAAa,IAAI,YAAYA,EAAW,EAAK,GAAG,MAAM;AAAA,SAC5F;AACD,aAAO,kCAAkC;AAAA;AAGlC,aAAA;AAAA;AAEnB;"}
|
|
@@ -20,6 +20,7 @@ export declare type TooltipProps = PropsWithChildren<{
|
|
|
20
20
|
flip?: boolean;
|
|
21
21
|
withArrow?: boolean;
|
|
22
22
|
hoverDelay?: number;
|
|
23
|
+
enterDelay?: number;
|
|
23
24
|
open?: boolean;
|
|
24
25
|
disabled?: boolean;
|
|
25
26
|
hidden?: boolean;
|
|
@@ -35,4 +36,4 @@ export declare enum TooltipAlignment {
|
|
|
35
36
|
Middle = "Middle",
|
|
36
37
|
End = "End"
|
|
37
38
|
}
|
|
38
|
-
export declare const Tooltip: ({ content, tooltipIcon, heading, headingIcon, linkUrl, linkLabel, brightHeader, buttons, children, position, alignment, withArrow, flip, triggerElement, hoverDelay, open, disabled, hidden, }: TooltipProps) => JSX.Element;
|
|
39
|
+
export declare const Tooltip: ({ content, tooltipIcon, heading, headingIcon, linkUrl, linkLabel, brightHeader, buttons, children, position, alignment, withArrow, flip, triggerElement, hoverDelay, enterDelay, open, disabled, hidden, }: TooltipProps) => JSX.Element;
|