@frontify/fondue 12.1.9 → 12.1.11

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.
@@ -4,14 +4,14 @@ import { merge as m } from "../../../../utilities/merge.es.js";
4
4
  import { getColumnBreakClasses as a } from "../ColumnBreakPlugin/utils/getColumnBreakClasses.es.js";
5
5
  import { MarkupElement as n } from "../MarkupElement.es.js";
6
6
  import { justifyClassNames as i } from "../helper.es.js";
7
- const p = "tw-w-auto tw-min-w-[10px]", l = (t) => m([
8
- a(t),
7
+ const p = "tw-w-auto tw-min-w-[10px]", l = (t, r = !0) => m([
8
+ r && a(t),
9
9
  t.align ? i[t.align] : "tw-justify-start",
10
10
  "tw-grid tw-grid-cols-[min-content_repeat(3,_auto)]"
11
- ]), c = ({ attributes: t, children: s, element: r }) => /* @__PURE__ */ e("p", { className: l(r), ...t, children: /* @__PURE__ */ e("span", { className: p, children: s }) });
11
+ ]), c = ({ attributes: t, children: r, element: s }) => /* @__PURE__ */ e("p", { className: l(s), ...t, children: /* @__PURE__ */ e("span", { className: p, children: r }) });
12
12
  class L extends n {
13
- constructor(s = o, r = c) {
14
- super(s, r);
13
+ constructor(r = o, s = c) {
14
+ super(r, s);
15
15
  }
16
16
  }
17
17
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemContentMarkupElement.es.js","sources":["../../../../../src/components/RichTextEditor/Plugins/ListPlugin/ListItemContentMarkupElement.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type PlateRenderElementProps } from '@udecode/plate-core';\nimport { ELEMENT_LIC } from '@udecode/plate-list';\nimport { type TElement } from '@udecode/slate';\n\nimport { merge } from '@utilities/merge';\n\nimport { getColumnBreakClasses } from '../ColumnBreakPlugin/utils/getColumnBreakClasses';\nimport { MarkupElement } from '../MarkupElement';\nimport { justifyClassNames } from '../helper';\n\nexport const LIST_ITEM_SPAN_CLASSES = 'tw-w-auto tw-min-w-[10px]';\n\nexport const getLicElementClassNames = (element: TElement) =>\n merge([\n getColumnBreakClasses(element),\n element.align ? justifyClassNames[element.align as string] : 'tw-justify-start',\n 'tw-grid tw-grid-cols-[min-content_repeat(3,_auto)]',\n ]);\n\nexport const ListItemContentMarkupElementNode = ({ attributes, children, element }: PlateRenderElementProps) => {\n return (\n <p className={getLicElementClassNames(element)} {...attributes}>\n <span className={LIST_ITEM_SPAN_CLASSES}>{children}</span>\n </p>\n );\n};\n\nexport class ListItemContentMarkupElement extends MarkupElement {\n constructor(id = ELEMENT_LIC, node = ListItemContentMarkupElementNode) {\n super(id, node);\n }\n}\n"],"names":["LIST_ITEM_SPAN_CLASSES","getLicElementClassNames","element","merge","getColumnBreakClasses","justifyClassNames","ListItemContentMarkupElementNode","attributes","children","jsx","ListItemContentMarkupElement","MarkupElement","id","ELEMENT_LIC","node"],"mappings":";;;;;;AAYO,MAAMA,IAAyB,6BAEzBC,IAA0B,CAACC,MACpCC,EAAM;AAAA,EACFC,EAAsBF,CAAO;AAAA,EAC7BA,EAAQ,QAAQG,EAAkBH,EAAQ,KAAe,IAAI;AAAA,EAC7D;AACJ,CAAC,GAEQI,IAAmC,CAAC,EAAE,YAAAC,GAAY,UAAAC,GAAU,SAAAN,QAEhE,gBAAAO,EAAA,KAAA,EAAE,WAAWR,EAAwBC,CAAO,GAAI,GAAGK,GAChD,UAAC,gBAAAE,EAAA,QAAA,EAAK,WAAWT,GAAyB,UAAAQ,GAAS,EACvD,CAAA;AAID,MAAME,UAAqCC,EAAc;AAAA,EAC5D,YAAYC,IAAKC,GAAaC,IAAOR,GAAkC;AACnE,UAAMM,GAAIE,CAAI;AAAA,EAClB;AACJ;"}
1
+ {"version":3,"file":"ListItemContentMarkupElement.es.js","sources":["../../../../../src/components/RichTextEditor/Plugins/ListPlugin/ListItemContentMarkupElement.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type PlateRenderElementProps } from '@udecode/plate-core';\nimport { ELEMENT_LIC } from '@udecode/plate-list';\nimport { type TElement } from '@udecode/slate';\n\nimport { merge } from '@utilities/merge';\n\nimport { getColumnBreakClasses } from '../ColumnBreakPlugin/utils/getColumnBreakClasses';\nimport { MarkupElement } from '../MarkupElement';\nimport { justifyClassNames } from '../helper';\n\nexport const LIST_ITEM_SPAN_CLASSES = 'tw-w-auto tw-min-w-[10px]';\n\nexport const getLicElementClassNames = (element: TElement, includeColumnBreakClasses = true) =>\n merge([\n includeColumnBreakClasses && getColumnBreakClasses(element),\n element.align ? justifyClassNames[element.align as string] : 'tw-justify-start',\n 'tw-grid tw-grid-cols-[min-content_repeat(3,_auto)]',\n ]);\n\nexport const ListItemContentMarkupElementNode = ({ attributes, children, element }: PlateRenderElementProps) => {\n return (\n <p className={getLicElementClassNames(element)} {...attributes}>\n <span className={LIST_ITEM_SPAN_CLASSES}>{children}</span>\n </p>\n );\n};\n\nexport class ListItemContentMarkupElement extends MarkupElement {\n constructor(id = ELEMENT_LIC, node = ListItemContentMarkupElementNode) {\n super(id, node);\n }\n}\n"],"names":["LIST_ITEM_SPAN_CLASSES","getLicElementClassNames","element","includeColumnBreakClasses","merge","getColumnBreakClasses","justifyClassNames","ListItemContentMarkupElementNode","attributes","children","jsx","ListItemContentMarkupElement","MarkupElement","id","ELEMENT_LIC","node"],"mappings":";;;;;;AAYO,MAAMA,IAAyB,6BAEzBC,IAA0B,CAACC,GAAmBC,IAA4B,OACnFC,EAAM;AAAA,EACFD,KAA6BE,EAAsBH,CAAO;AAAA,EAC1DA,EAAQ,QAAQI,EAAkBJ,EAAQ,KAAe,IAAI;AAAA,EAC7D;AACJ,CAAC,GAEQK,IAAmC,CAAC,EAAE,YAAAC,GAAY,UAAAC,GAAU,SAAAP,QAEhE,gBAAAQ,EAAA,KAAA,EAAE,WAAWT,EAAwBC,CAAO,GAAI,GAAGM,GAChD,UAAC,gBAAAE,EAAA,QAAA,EAAK,WAAWV,GAAyB,UAAAS,GAAS,EACvD,CAAA;AAID,MAAME,UAAqCC,EAAc;AAAA,EAC5D,YAAYC,IAAKC,GAAaC,IAAOR,GAAkC;AACnE,UAAMM,GAAIE,CAAI;AAAA,EAClB;AACJ;"}
@@ -74,7 +74,7 @@ const p = (t, e) => {
74
74
  [L]: ({ classNames: t, children: e, node: o, styles: s }) => `<li dir="auto" class="${t} ${C}" style="${n(
75
75
  M(o, s)
76
76
  )}">${e}</li>`,
77
- [N]: ({ classNames: t, children: e, node: o }) => `<p dir="auto" class="${t} ${g(o)}"><span class="${$}">${e}</span></p>`,
77
+ [N]: ({ classNames: t, children: e, node: o }) => `<p dir="auto" class="${t} ${g(o, !1)}"><span class="${$}">${e}</span></p>`,
78
78
  [f]: ({ node: t, children: e, classNames: o, styles: s }) => H(t, e, o, s),
79
79
  [I]: ({ node: t, children: e, classNames: o, styles: s }) => b(t, e, o, s),
80
80
  [d]: ({ node: t, children: e, classNames: o, styles: s }) => A(t, e, o, s),
@@ -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_LINK } from '@udecode/plate-link';\nimport { ELEMENT_LI, ELEMENT_LIC, ELEMENT_OL, ELEMENT_UL } from '@udecode/plate-list';\nimport { ELEMENT_MENTION } from '@udecode/plate-mention';\nimport { type TDescendant, type TElement, isText } from '@udecode/slate';\n\nimport { ELEMENT_CHECK_ITEM } from '@components/RichTextEditor/Plugins/CheckboxListPlugin/id';\nimport {\n LIST_ITEM_SPAN_CLASSES,\n getLicElementClassNames,\n} from '@components/RichTextEditor/Plugins/ListPlugin/ListItemContentMarkupElement';\nimport { LI_CLASSNAMES, getLiStyles } from '@components/RichTextEditor/Plugins/ListPlugin/ListItemMarkupElement';\nimport {\n OL_STYLES,\n getOrderedListClasses,\n} from '@components/RichTextEditor/Plugins/ListPlugin/OrderedListPlugin/OrderedListMarkupElement';\nimport { UL_CLASSES } from '@components/RichTextEditor/Plugins/ListPlugin/UnorderedListPlugin/UnorderedListMarkupElement';\nimport { type MappedMentionableItems } from '@components/RichTextEditor/Plugins/MentionPlugin/types';\nimport { TextStyles } from '@components/RichTextEditor/Plugins/TextStylePlugin/types';\nimport { ELEMENT_BUTTON, alignmentClassnames } from '@components/RichTextEditor/Plugins/helper';\nimport { merge } from '@utilities/merge';\n\nimport { type ButtonStylesType, buttonNode } from '../nodes/button';\nimport { checkItemNode } from '../nodes/checkItem';\nimport { linkNode } from '../nodes/link';\nimport { mentionHtmlNode } from '../nodes/mentionHtmlNode';\nimport { type CSSPropertiesHover } from '../types';\n\nimport { reactCssPropsToCss } from './reactCssPropsToCss';\nimport { serializeLeafToHtml } from './serializeLeafToHtml';\n\nconst getNestingLevels = (nodes: TDescendant[], type: string): number => {\n let maxDepth = 0;\n\n for (const node of nodes) {\n let currentDepth = 0;\n if (node.type === type) {\n currentDepth = 1;\n }\n if (node.children) {\n currentDepth += getNestingLevels(node.children as TDescendant[], type);\n }\n maxDepth = Math.max(maxDepth, currentDepth);\n }\n\n return maxDepth;\n};\n\ntype NestingCount = {\n [type: string]: number;\n};\n\ntype SerializeNodeToHtmlRecursiveOptions = {\n mappedMentionable?: MappedMentionableItems;\n nestingCount?: NestingCount;\n};\n\nexport const serializeNodeToHtmlRecursive = (\n node: TDescendant,\n styles: Record<string, CSSPropertiesHover> | ButtonStylesType,\n { mappedMentionable, nestingCount = {} }: SerializeNodeToHtmlRecursiveOptions,\n): string => {\n if (isText(node)) {\n return serializeLeafToHtml(node);\n }\n\n const rootNestingCount = nestingCount[node.type] || getNestingLevels([node], node.type);\n let children = '';\n for (const element of node.children) {\n children += serializeNodeToHtmlRecursive(element, styles, {\n nestingCount: {\n ...nestingCount,\n [element.type as string]: rootNestingCount,\n },\n mappedMentionable,\n });\n }\n\n const htmlMapper = MapNodeTypesToHtml[node.type];\n try {\n return (\n htmlMapper({\n classNames: getClassNames(\n node.breakAfterColumn as string | undefined,\n node.align as string | undefined,\n ),\n children,\n rootNestingCount,\n node,\n mappedMentionable,\n styles,\n }) ?? children\n );\n } catch (error) {\n console.warn(`The htmlMapper for node type: '${node.type}' does not exist.`);\n return children;\n }\n};\n\ntype Arguments = {\n classNames: string;\n children: string;\n rootNestingCount: number;\n node: TElement;\n mappedMentionable?: MappedMentionableItems;\n styles: Record<string, CSSPropertiesHover>;\n};\n\nconst MapNodeTypesToHtml: { [key: string]: ({ ...args }: Arguments) => string } = {\n [TextStyles.heading1]: (args) => getTextStyleHtml(TextStyles.heading1, args, 'h1'),\n [TextStyles.heading2]: (args) => getTextStyleHtml(TextStyles.heading2, args, 'h2'),\n [TextStyles.heading3]: (args) => getTextStyleHtml(TextStyles.heading3, args, 'h3'),\n [TextStyles.heading4]: (args) => getTextStyleHtml(TextStyles.heading4, args, 'h4'),\n [TextStyles.p]: (args) => getTextStyleHtml(TextStyles.p, args, 'p'),\n [TextStyles.custom1]: (args) => getTextStyleHtml(TextStyles.custom1, args, 'p'),\n [TextStyles.custom2]: (args) => getTextStyleHtml(TextStyles.custom2, args, 'p'),\n [TextStyles.custom3]: (args) => getTextStyleHtml(TextStyles.custom3, args, 'p'),\n [TextStyles.quote]: (args) => getTextStyleHtml(TextStyles.quote, args, 'p'),\n [TextStyles.imageTitle]: (args) => getTextStyleHtml(TextStyles.imageTitle, args, 'p'),\n [TextStyles.imageCaption]: (args) => getTextStyleHtml(TextStyles.imageCaption, args, 'p'),\n [ELEMENT_UL]: (args) => `<ul dir=\"auto\" class=\"${UL_CLASSES} ${args.classNames}\">${args.children}</ul>`,\n [ELEMENT_OL]: ({ classNames, children, node, rootNestingCount }) => {\n const nestingLevel = Math.max(rootNestingCount - getNestingLevels([node], ELEMENT_OL), 0);\n return `<ol dir=\"auto\" class=\"${getOrderedListClasses(nestingLevel)} ${classNames}\" style=\"${reactCssPropsToCss(\n OL_STYLES,\n )}\">${children}</ol>`;\n },\n [ELEMENT_LI]: ({ classNames, children, node, styles }) =>\n `<li dir=\"auto\" class=\"${classNames} ${LI_CLASSNAMES}\" style=\"${reactCssPropsToCss(\n getLiStyles(node, styles),\n )}\">${children}</li>`,\n [ELEMENT_LIC]: ({ classNames, children, node }) =>\n `<p dir=\"auto\" class=\"${classNames} ${getLicElementClassNames(node)}\"><span class=\"${LIST_ITEM_SPAN_CLASSES}\">${children}</span></p>`,\n [ELEMENT_LINK]: ({ node, children, classNames, styles }) => linkNode(node, children, classNames, styles),\n [ELEMENT_BUTTON]: ({ node, children, classNames, styles }) =>\n buttonNode(node, children, classNames, styles as ButtonStylesType),\n [ELEMENT_CHECK_ITEM]: ({ node, children, classNames, styles }) => checkItemNode(node, children, classNames, styles),\n [ELEMENT_MENTION]: ({ node, mappedMentionable }) => mentionHtmlNode(node, { mentionable: mappedMentionable }),\n};\n\nconst getTextStyleHtml = (\n tag: TextStyles,\n { classNames, styles, children }: Arguments,\n htmlTag: 'p' | 'h1' | 'h2' | 'h3' | 'h4',\n) => `<${htmlTag} dir=\"auto\" class=\"${classNames}\" style=\"${reactCssPropsToCss(styles[tag])}\">${children}</${htmlTag}>`;\n\nconst getClassNames = (breakAfterColumn?: string, align?: string) => {\n const breakWordsClass = 'tw-break-words';\n const columnBreakClasses =\n breakAfterColumn === 'active' ? 'tw-break-after-column tw-break-inside-avoid-column' : '';\n const alignClass = align ? alignmentClassnames[align] : '';\n return merge([alignClass, breakWordsClass, columnBreakClasses]);\n};\n"],"names":["getNestingLevels","nodes","type","maxDepth","node","currentDepth","serializeNodeToHtmlRecursive","styles","mappedMentionable","nestingCount","isText","serializeLeafToHtml","rootNestingCount","children","element","htmlMapper","MapNodeTypesToHtml","getClassNames","TextStyles","args","getTextStyleHtml","ELEMENT_UL","UL_CLASSES","ELEMENT_OL","classNames","nestingLevel","getOrderedListClasses","reactCssPropsToCss","OL_STYLES","ELEMENT_LI","LI_CLASSNAMES","getLiStyles","ELEMENT_LIC","getLicElementClassNames","LIST_ITEM_SPAN_CLASSES","ELEMENT_LINK","linkNode","ELEMENT_BUTTON","buttonNode","ELEMENT_CHECK_ITEM","checkItemNode","ELEMENT_MENTION","mentionHtmlNode","tag","htmlTag","breakAfterColumn","align","breakWordsClass","columnBreakClasses","alignClass","alignmentClassnames","merge"],"mappings":"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"}
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_LINK } from '@udecode/plate-link';\nimport { ELEMENT_LI, ELEMENT_LIC, ELEMENT_OL, ELEMENT_UL } from '@udecode/plate-list';\nimport { ELEMENT_MENTION } from '@udecode/plate-mention';\nimport { type TDescendant, type TElement, isText } from '@udecode/slate';\n\nimport { ELEMENT_CHECK_ITEM } from '@components/RichTextEditor/Plugins/CheckboxListPlugin/id';\nimport {\n LIST_ITEM_SPAN_CLASSES,\n getLicElementClassNames,\n} from '@components/RichTextEditor/Plugins/ListPlugin/ListItemContentMarkupElement';\nimport { LI_CLASSNAMES, getLiStyles } from '@components/RichTextEditor/Plugins/ListPlugin/ListItemMarkupElement';\nimport {\n OL_STYLES,\n getOrderedListClasses,\n} from '@components/RichTextEditor/Plugins/ListPlugin/OrderedListPlugin/OrderedListMarkupElement';\nimport { UL_CLASSES } from '@components/RichTextEditor/Plugins/ListPlugin/UnorderedListPlugin/UnorderedListMarkupElement';\nimport { type MappedMentionableItems } from '@components/RichTextEditor/Plugins/MentionPlugin/types';\nimport { TextStyles } from '@components/RichTextEditor/Plugins/TextStylePlugin/types';\nimport { ELEMENT_BUTTON, alignmentClassnames } from '@components/RichTextEditor/Plugins/helper';\nimport { merge } from '@utilities/merge';\n\nimport { type ButtonStylesType, buttonNode } from '../nodes/button';\nimport { checkItemNode } from '../nodes/checkItem';\nimport { linkNode } from '../nodes/link';\nimport { mentionHtmlNode } from '../nodes/mentionHtmlNode';\nimport { type CSSPropertiesHover } from '../types';\n\nimport { reactCssPropsToCss } from './reactCssPropsToCss';\nimport { serializeLeafToHtml } from './serializeLeafToHtml';\n\nconst getNestingLevels = (nodes: TDescendant[], type: string): number => {\n let maxDepth = 0;\n\n for (const node of nodes) {\n let currentDepth = 0;\n if (node.type === type) {\n currentDepth = 1;\n }\n if (node.children) {\n currentDepth += getNestingLevels(node.children as TDescendant[], type);\n }\n maxDepth = Math.max(maxDepth, currentDepth);\n }\n\n return maxDepth;\n};\n\ntype NestingCount = {\n [type: string]: number;\n};\n\ntype SerializeNodeToHtmlRecursiveOptions = {\n mappedMentionable?: MappedMentionableItems;\n nestingCount?: NestingCount;\n};\n\nexport const serializeNodeToHtmlRecursive = (\n node: TDescendant,\n styles: Record<string, CSSPropertiesHover> | ButtonStylesType,\n { mappedMentionable, nestingCount = {} }: SerializeNodeToHtmlRecursiveOptions,\n): string => {\n if (isText(node)) {\n return serializeLeafToHtml(node);\n }\n\n const rootNestingCount = nestingCount[node.type] || getNestingLevels([node], node.type);\n let children = '';\n for (const element of node.children) {\n children += serializeNodeToHtmlRecursive(element, styles, {\n nestingCount: {\n ...nestingCount,\n [element.type as string]: rootNestingCount,\n },\n mappedMentionable,\n });\n }\n\n const htmlMapper = MapNodeTypesToHtml[node.type];\n try {\n return (\n htmlMapper({\n classNames: getClassNames(\n node.breakAfterColumn as string | undefined,\n node.align as string | undefined,\n ),\n children,\n rootNestingCount,\n node,\n mappedMentionable,\n styles,\n }) ?? children\n );\n } catch (error) {\n console.warn(`The htmlMapper for node type: '${node.type}' does not exist.`);\n return children;\n }\n};\n\ntype Arguments = {\n classNames: string;\n children: string;\n rootNestingCount: number;\n node: TElement;\n mappedMentionable?: MappedMentionableItems;\n styles: Record<string, CSSPropertiesHover>;\n};\n\nconst MapNodeTypesToHtml: { [key: string]: ({ ...args }: Arguments) => string } = {\n [TextStyles.heading1]: (args) => getTextStyleHtml(TextStyles.heading1, args, 'h1'),\n [TextStyles.heading2]: (args) => getTextStyleHtml(TextStyles.heading2, args, 'h2'),\n [TextStyles.heading3]: (args) => getTextStyleHtml(TextStyles.heading3, args, 'h3'),\n [TextStyles.heading4]: (args) => getTextStyleHtml(TextStyles.heading4, args, 'h4'),\n [TextStyles.p]: (args) => getTextStyleHtml(TextStyles.p, args, 'p'),\n [TextStyles.custom1]: (args) => getTextStyleHtml(TextStyles.custom1, args, 'p'),\n [TextStyles.custom2]: (args) => getTextStyleHtml(TextStyles.custom2, args, 'p'),\n [TextStyles.custom3]: (args) => getTextStyleHtml(TextStyles.custom3, args, 'p'),\n [TextStyles.quote]: (args) => getTextStyleHtml(TextStyles.quote, args, 'p'),\n [TextStyles.imageTitle]: (args) => getTextStyleHtml(TextStyles.imageTitle, args, 'p'),\n [TextStyles.imageCaption]: (args) => getTextStyleHtml(TextStyles.imageCaption, args, 'p'),\n [ELEMENT_UL]: (args) => `<ul dir=\"auto\" class=\"${UL_CLASSES} ${args.classNames}\">${args.children}</ul>`,\n [ELEMENT_OL]: ({ classNames, children, node, rootNestingCount }) => {\n const nestingLevel = Math.max(rootNestingCount - getNestingLevels([node], ELEMENT_OL), 0);\n return `<ol dir=\"auto\" class=\"${getOrderedListClasses(nestingLevel)} ${classNames}\" style=\"${reactCssPropsToCss(\n OL_STYLES,\n )}\">${children}</ol>`;\n },\n [ELEMENT_LI]: ({ classNames, children, node, styles }) =>\n `<li dir=\"auto\" class=\"${classNames} ${LI_CLASSNAMES}\" style=\"${reactCssPropsToCss(\n getLiStyles(node, styles),\n )}\">${children}</li>`,\n [ELEMENT_LIC]: ({ classNames, children, node }) =>\n `<p dir=\"auto\" class=\"${classNames} ${getLicElementClassNames(node, false)}\"><span class=\"${LIST_ITEM_SPAN_CLASSES}\">${children}</span></p>`,\n [ELEMENT_LINK]: ({ node, children, classNames, styles }) => linkNode(node, children, classNames, styles),\n [ELEMENT_BUTTON]: ({ node, children, classNames, styles }) =>\n buttonNode(node, children, classNames, styles as ButtonStylesType),\n [ELEMENT_CHECK_ITEM]: ({ node, children, classNames, styles }) => checkItemNode(node, children, classNames, styles),\n [ELEMENT_MENTION]: ({ node, mappedMentionable }) => mentionHtmlNode(node, { mentionable: mappedMentionable }),\n};\n\nconst getTextStyleHtml = (\n tag: TextStyles,\n { classNames, styles, children }: Arguments,\n htmlTag: 'p' | 'h1' | 'h2' | 'h3' | 'h4',\n) => `<${htmlTag} dir=\"auto\" class=\"${classNames}\" style=\"${reactCssPropsToCss(styles[tag])}\">${children}</${htmlTag}>`;\n\nconst getClassNames = (breakAfterColumn?: string, align?: string) => {\n const breakWordsClass = 'tw-break-words';\n const columnBreakClasses =\n breakAfterColumn === 'active' ? 'tw-break-after-column tw-break-inside-avoid-column' : '';\n const alignClass = align ? alignmentClassnames[align] : '';\n return merge([alignClass, breakWordsClass, columnBreakClasses]);\n};\n"],"names":["getNestingLevels","nodes","type","maxDepth","node","currentDepth","serializeNodeToHtmlRecursive","styles","mappedMentionable","nestingCount","isText","serializeLeafToHtml","rootNestingCount","children","element","htmlMapper","MapNodeTypesToHtml","getClassNames","TextStyles","args","getTextStyleHtml","ELEMENT_UL","UL_CLASSES","ELEMENT_OL","classNames","nestingLevel","getOrderedListClasses","reactCssPropsToCss","OL_STYLES","ELEMENT_LI","LI_CLASSNAMES","getLiStyles","ELEMENT_LIC","getLicElementClassNames","LIST_ITEM_SPAN_CLASSES","ELEMENT_LINK","linkNode","ELEMENT_BUTTON","buttonNode","ELEMENT_CHECK_ITEM","checkItemNode","ELEMENT_MENTION","mentionHtmlNode","tag","htmlTag","breakAfterColumn","align","breakWordsClass","columnBreakClasses","alignClass","alignmentClassnames","merge"],"mappings":"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"}