@uva-glass/component-library 1.59.2 → 1.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/{Lexical.prod-CO0gPAfo.js → Lexical.prod-qM_1BY0u.js} +961 -952
  2. package/dist/Lexical.prod-qM_1BY0u.js.map +1 -0
  3. package/dist/{LexicalUtils.prod-PbdOb6JG.js → LexicalUtils.prod-BFSPHHi1.js} +20 -20
  4. package/dist/{LexicalUtils.prod-PbdOb6JG.js.map → LexicalUtils.prod-BFSPHHi1.js.map} +1 -1
  5. package/dist/ListPlugin-Bhkh3IBK.js +625 -0
  6. package/dist/ListPlugin-Bhkh3IBK.js.map +1 -0
  7. package/dist/RteEditor.module-Cku3JY-0.js +29 -0
  8. package/dist/RteEditor.module-Cku3JY-0.js.map +1 -0
  9. package/dist/TablePlugin-CLPV2OjO.js +294 -0
  10. package/dist/TablePlugin-CLPV2OjO.js.map +1 -0
  11. package/dist/assets/EditorHeader.css +1 -1
  12. package/dist/assets/Periods.css +1 -1
  13. package/dist/assets/RteEditor.css +1 -1
  14. package/dist/assets/TableCellContextMenu.css +1 -1
  15. package/dist/assets/TablePlugin.css +1 -1
  16. package/dist/components/CheckboxTree/CheckboxTree.js +2 -2
  17. package/dist/components/InputField/InputField.stories.js +2 -2
  18. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  19. package/dist/components/MultiSelect/MultiSelect.stories.js +1 -1
  20. package/dist/components/MultiSelect/components/MultiSelectHeader.js +2 -2
  21. package/dist/components/MultiSelect/index.js +1 -1
  22. package/dist/components/Periods/Periods.js +19 -19
  23. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +2 -2
  24. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +19 -19
  25. package/dist/components/RteEditor/EditorHeader/EditorHeader.js.map +1 -1
  26. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.d.ts +1 -6
  27. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +34 -20
  28. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -1
  29. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +36 -31
  30. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js.map +1 -1
  31. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkFrom.d.ts +3 -3
  32. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkFrom.js +4 -4
  33. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.d.ts +7 -6
  34. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +157 -54
  35. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +1 -1
  36. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.d.ts +1 -3
  37. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +5 -6
  38. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js.map +1 -1
  39. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +3 -2
  40. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.d.ts +1 -6
  41. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +10 -31
  42. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
  43. package/dist/components/RteEditor/Plugins/ListPlugin/index.js +1 -1
  44. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +2 -2
  45. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.d.ts +2 -1
  46. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +104 -31
  47. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js.map +1 -1
  48. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +6 -5
  49. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js.map +1 -1
  50. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +1 -1
  51. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
  52. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.d.ts +6 -7
  53. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +42 -46
  54. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +1 -1
  55. package/dist/components/RteEditor/Plugins/index.js +13 -12
  56. package/dist/components/RteEditor/RteEditor.d.ts +13 -4
  57. package/dist/components/RteEditor/RteEditor.js +593 -601
  58. package/dist/components/RteEditor/RteEditor.js.map +1 -1
  59. package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
  60. package/dist/components/RteEditor/hooks/components/Flyout.js.map +1 -1
  61. package/dist/components/RteEditor/hooks/useTranslation.d.ts +98 -6
  62. package/dist/components/RteEditor/translations.d.ts +98 -6
  63. package/dist/components/RteEditor/translations.js +104 -12
  64. package/dist/components/RteEditor/translations.js.map +1 -1
  65. package/dist/components/index.js +1 -1
  66. package/dist/{helpers-Ec7CfNnA.js → helpers-BB6Byf50.js} +92 -103
  67. package/dist/helpers-BB6Byf50.js.map +1 -0
  68. package/dist/{helpers-BewZrn6E.js → helpers-D9T1Tgkj.js} +581 -515
  69. package/dist/helpers-D9T1Tgkj.js.map +1 -0
  70. package/dist/index.js +1 -1
  71. package/package.json +9 -9
  72. package/dist/Lexical.prod-CO0gPAfo.js.map +0 -1
  73. package/dist/LexicalList.prod-BceA-cJD.js +0 -562
  74. package/dist/LexicalList.prod-BceA-cJD.js.map +0 -1
  75. package/dist/RteEditor.module-Dz9a8vaK.js +0 -29
  76. package/dist/RteEditor.module-Dz9a8vaK.js.map +0 -1
  77. package/dist/TablePlugin-Cj6IBz2k.js +0 -249
  78. package/dist/TablePlugin-Cj6IBz2k.js.map +0 -1
  79. package/dist/helpers-BewZrn6E.js.map +0 -1
  80. package/dist/helpers-Ec7CfNnA.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TableCellContextMenu.js","sources":["../../../../../../src/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport type { Position } from 'components/RteEditor/Plugins/ToolbarPlugin';\n\nimport styles from './TableCellContextMenu.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nexport type Actions =\n | 'insertRowAbove'\n | 'insertRowBelow'\n | 'deleteRow'\n | 'deleteTable'\n | 'insertColumnLeft'\n | 'insertColumnRight'\n | 'deleteColumn';\ninterface TableCellContextMenuProps {\n position: Position;\n onAction: (action: Actions) => void;\n}\n\nexport const TableCellContextMenu = ({ position, onAction }: TableCellContextMenuProps) => {\n const t = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n const [localPosition, setLocalPosition] = useState<Position>({ xPos: 0, yPos: 0 });\n const menuRef = useRef<HTMLUListElement>(null);\n const [scrollTopPosition, setScrollTopPosition] = useState(0);\n\n const handleAction = (action: Actions) => {\n onAction(action);\n setIsOpen(false);\n };\n\n useEffect(() => {\n setLocalPosition(position);\n setIsOpen(false);\n setScrollTopPosition(window.scrollY);\n }, [position]);\n\n return (\n <div\n className={styles['context-menu__wrapper']}\n style={{\n transform: `translate(${(localPosition?.xPos ?? 0) - (menuRef.current ? menuRef.current.getBoundingClientRect().width : 0)}px, ${localPosition.yPos + scrollTopPosition}px)`,\n }}\n >\n <button onClick={() => setIsOpen((prev) => !prev)} className={styles['context-menu__button']}>\n <Icon name=\"CheveronDown\" size={16} />\n </button>\n <ul ref={menuRef} className={clsx(styles['context-menu'], isOpen && styles['context-menu--open'])}>\n <li>\n <button onClick={() => handleAction('insertRowAbove')} className={styles['context-menu__item']}>\n {t.table.insertRowAbove}\n </button>\n </li>\n <li>\n <button onClick={() => handleAction('insertRowBelow')} className={styles['context-menu__item']}>\n {t.table.insertRowBelow}\n </button>\n </li>\n <li className={styles['context-menu__item-divider']}>\n <button onClick={() => handleAction('deleteRow')} className={styles['context-menu__item']}>\n {t.table.deleteRow}\n </button>\n </li>\n\n <li>\n <button onClick={() => handleAction('insertColumnLeft')} className={styles['context-menu__item']}>\n {t.table.insertColumnLeft}\n </button>\n </li>\n <li>\n <button onClick={() => handleAction('insertColumnRight')} className={styles['context-menu__item']}>\n {t.table.insertColumnRight}\n </button>\n </li>\n <li className={styles['context-menu__item-divider']}>\n <button onClick={() => handleAction('deleteColumn')} className={styles['context-menu__item']}>\n {t.table.deleteColumn}\n </button>\n </li>\n\n <li>\n <button onClick={() => handleAction('deleteTable')} className={styles['context-menu__item']}>\n {t.table.deleteTable}\n </button>\n </li>\n </ul>\n </div>\n );\n};\n"],"names":["TableCellContextMenu","position","onAction","t","useTranslation","isOpen","setIsOpen","useState","localPosition","setLocalPosition","menuRef","useRef","scrollTopPosition","setScrollTopPosition","handleAction","action","useEffect","jsxs","styles","jsx","prev","Icon","clsx"],"mappings":";;;;;;;;;;;;GAuBaA,IAAuB,CAAC,EAAE,UAAAC,GAAU,UAAAC,QAA0C;AACzF,QAAMC,IAAIC,KACJ,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAeC,CAAgB,IAAIF,EAAmB,EAAE,MAAM,GAAG,MAAM,EAAA,CAAG,GAC3EG,IAAUC,EAAyB,IAAI,GACvC,CAACC,GAAmBC,CAAoB,IAAIN,EAAS,CAAC,GAEtDO,IAAe,CAACC,MAAoB;AACxC,IAAAb,EAASa,CAAM,GACfT,EAAU,EAAK;AAAA,EAAA;AAGjB,SAAAU,EAAU,MAAM;AACd,IAAAP,EAAiBR,CAAQ,GACzBK,EAAU,EAAK,GACfO,EAAqB,OAAO,OAAO;AAAA,EAAA,GAClC,CAACZ,CAAQ,CAAC,GAGX,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAO,uBAAuB;AAAA,MACzC,OAAO;AAAA,QACL,WAAW,eAAcV,KAAA,gBAAAA,EAAe,SAAQ,MAAME,EAAQ,UAAUA,EAAQ,QAAQ,wBAAwB,QAAQ,EAAE,OAAOF,EAAc,OAAOI,CAAiB;AAAA,MACzK;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAO,EAAC,YAAO,SAAS,MAAMb,EAAU,CAACc,MAAS,CAACA,CAAI,GAAG,WAAWF,EAAO,sBAAsB,GACzF,UAAC,gBAAAC,EAAAE,GAAA,EAAK,MAAK,gBAAe,MAAM,GAAI,CAAA,GACtC;AAAA,QACC,gBAAAJ,EAAA,MAAA,EAAG,KAAKP,GAAS,WAAWY,EAAKJ,EAAO,cAAc,GAAGb,KAAUa,EAAO,oBAAoB,CAAC,GAC9F,UAAA;AAAA,UAAA,gBAAAC,EAAC,MACC,EAAA,UAAA,gBAAAA,EAAC,UAAO,EAAA,SAAS,MAAML,EAAa,gBAAgB,GAAG,WAAWI,EAAO,oBAAoB,GAC1F,UAAEf,EAAA,MAAM,eACX,CAAA,GACF;AAAA,4BACC,MACC,EAAA,UAAA,gBAAAgB,EAAC,UAAO,EAAA,SAAS,MAAML,EAAa,gBAAgB,GAAG,WAAWI,EAAO,oBAAoB,GAC1F,UAAEf,EAAA,MAAM,eACX,CAAA,GACF;AAAA,UACA,gBAAAgB,EAAC,QAAG,WAAWD,EAAO,4BAA4B,GAChD,UAAA,gBAAAC,EAAC,YAAO,SAAS,MAAML,EAAa,WAAW,GAAG,WAAWI,EAAO,oBAAoB,GACrF,UAAEf,EAAA,MAAM,UACX,CAAA,GACF;AAAA,4BAEC,MACC,EAAA,UAAA,gBAAAgB,EAAC,UAAO,EAAA,SAAS,MAAML,EAAa,kBAAkB,GAAG,WAAWI,EAAO,oBAAoB,GAC5F,UAAEf,EAAA,MAAM,iBACX,CAAA,GACF;AAAA,4BACC,MACC,EAAA,UAAA,gBAAAgB,EAAC,UAAO,EAAA,SAAS,MAAML,EAAa,mBAAmB,GAAG,WAAWI,EAAO,oBAAoB,GAC7F,UAAEf,EAAA,MAAM,kBACX,CAAA,GACF;AAAA,UACA,gBAAAgB,EAAC,QAAG,WAAWD,EAAO,4BAA4B,GAChD,UAAA,gBAAAC,EAAC,YAAO,SAAS,MAAML,EAAa,cAAc,GAAG,WAAWI,EAAO,oBAAoB,GACxF,UAAEf,EAAA,MAAM,aACX,CAAA,GACF;AAAA,4BAEC,MACC,EAAA,UAAA,gBAAAgB,EAAC,UAAO,EAAA,SAAS,MAAML,EAAa,aAAa,GAAG,WAAWI,EAAO,oBAAoB,GACvF,UAAEf,EAAA,MAAM,YACX,CAAA,GACF;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"TableCellContextMenu.js","sources":["../../../../../../src/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\n\nimport type { Position } from 'components/RteEditor/Plugins/ToolbarPlugin';\n\nimport styles from './TableCellContextMenu.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nexport type Actions =\n | 'insertRowAbove'\n | 'insertRowBelow'\n | 'deleteRow'\n | 'deleteTable'\n | 'insertColumnLeft'\n | 'insertColumnRight'\n | 'deleteColumn';\ninterface TableCellContextMenuProps {\n position: Position;\n parentScrollPosition: number;\n onAction: (action: Actions) => void;\n}\n\nconst CONTEXT_MENU_OFFSET = 25;\nconst WHITE_SPACE = 10;\nconst BUTTON_SHIFT = 4;\nconst BUTTON_RESET = 25;\n\nconst mesureElement = (srcElement: HTMLElement) => {\n const mesureElement = srcElement.cloneNode(true) as HTMLElement;\n mesureElement.style.height = 'auto';\n mesureElement.style.left = '-3000px';\n document.body.appendChild(mesureElement);\n const height = mesureElement.getBoundingClientRect().height;\n document.body.removeChild(mesureElement);\n return height;\n};\n\nexport const TableCellContextMenu = ({ position, parentScrollPosition, onAction }: TableCellContextMenuProps) => {\n const t = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n const [isHidden, setIsHidden] = useState(false);\n const [localPosition, setLocalPosition] = useState<Position>({ xPos: 0, yPos: 0, height: 0 });\n const [menuHeight, setMenuHeight] = useState(0);\n const startScrollPosition = useRef(0);\n const menuRef = useRef<HTMLUListElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [editor] = useLexicalComposerContext();\n\n const handleAction = (action: Actions) => {\n onAction(action);\n setIsOpen(false);\n };\n\n const flipMenuIfNotInViewpoort = () => {\n const menuWidth = menuRef.current ? menuRef.current.getBoundingClientRect().width : 0;\n\n if (containerRef.current && menuRef.current && buttonRef.current) {\n if (localPosition.xPos < menuWidth && containerRef.current) {\n containerRef.current.style.left = `${menuWidth - localPosition.xPos + WHITE_SPACE}px`;\n buttonRef.current.style.right = `${menuWidth - localPosition.xPos + BUTTON_SHIFT + WHITE_SPACE}px`;\n } else {\n containerRef.current.style.left = '0px';\n buttonRef.current.style.right = `${BUTTON_SHIFT}px`;\n }\n\n if (!menuHeight) {\n setMenuHeight(mesureElement(menuRef.current));\n }\n\n if (menuHeight > document.documentElement.clientHeight - localPosition.yPos) {\n containerRef.current.style.top = `-${menuHeight + localPosition.height}px`;\n buttonRef.current.style.top = `${menuHeight + BUTTON_SHIFT}px`;\n buttonRef.current.style.transform = 'rotate(180deg)';\n } else {\n containerRef.current.style.top = '0px';\n buttonRef.current.style.top = `-${BUTTON_RESET}px`;\n buttonRef.current.style.transform = 'none';\n }\n }\n };\n\n const setMenuPosition = () => {\n flipMenuIfNotInViewpoort();\n return `translate(${(localPosition?.xPos ?? 0) - (menuRef.current ? menuRef.current.getBoundingClientRect().width : 0)}px, ${localPosition.yPos - (parentScrollPosition - startScrollPosition.current)}px)`;\n };\n\n useEffect(() => {\n setLocalPosition(position);\n if (position) {\n startScrollPosition.current = parentScrollPosition;\n }\n setIsOpen(false);\n setIsHidden(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [position]);\n\n useEffect(() => {\n if (buttonRef.current) {\n const rect = buttonRef.current.getBoundingClientRect();\n const rootElement = editor.getRootElement();\n if (!rootElement) return;\n if (\n rect.top - rootElement.getBoundingClientRect().top <= 0 ||\n rect.top - rootElement.getBoundingClientRect().bottom + CONTEXT_MENU_OFFSET >= 0\n ) {\n setIsHidden(true);\n } else {\n setIsHidden(false);\n }\n flipMenuIfNotInViewpoort();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [parentScrollPosition]);\n\n return (\n <div\n className={clsx(styles['context-menu__wrapper'], [isHidden && styles['context-menu__wrapper--hidden']])}\n style={{\n transform: `${setMenuPosition()}`,\n }}\n ref={containerRef}\n >\n <button onClick={() => setIsOpen((prev) => !prev)} className={styles['context-menu__button']} ref={buttonRef}>\n <Icon name=\"CheveronDown\" size={16} />\n </button>\n <ul ref={menuRef} className={clsx(styles['context-menu'], isOpen && styles['context-menu--open'])}>\n <li>\n <button\n onClick={() => handleAction('insertRowAbove')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableInsertRowAbove}\n >\n {t.table.insertRowAbove}\n </button>\n </li>\n <li>\n <button\n onClick={() => handleAction('insertRowBelow')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableInsertRowBelow}\n >\n {t.table.insertRowBelow}\n </button>\n </li>\n <li className={styles['context-menu__item-divider']}>\n <button\n onClick={() => handleAction('deleteRow')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableDeleteRow}\n >\n {t.table.deleteRow}\n </button>\n </li>\n\n <li>\n <button\n onClick={() => handleAction('insertColumnLeft')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableInsertColumnLeft}\n >\n {t.table.insertColumnLeft}\n </button>\n </li>\n <li>\n <button\n onClick={() => handleAction('insertColumnRight')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableInsertColumnRight}\n >\n {t.table.insertColumnRight}\n </button>\n </li>\n <li className={styles['context-menu__item-divider']}>\n <button\n onClick={() => handleAction('deleteColumn')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableDeleteColumn}\n >\n {t.table.deleteColumn}\n </button>\n </li>\n\n <li>\n <button\n onClick={() => handleAction('deleteTable')}\n className={styles['context-menu__item']}\n aria-label={t.aria.labels.tableDeleteTable}\n >\n {t.table.deleteTable}\n </button>\n </li>\n </ul>\n </div>\n );\n};\n"],"names":["CONTEXT_MENU_OFFSET","WHITE_SPACE","BUTTON_SHIFT","BUTTON_RESET","mesureElement","srcElement","height","TableCellContextMenu","position","parentScrollPosition","onAction","useTranslation","isOpen","setIsOpen","useState","isHidden","setIsHidden","localPosition","setLocalPosition","menuHeight","setMenuHeight","startScrollPosition","useRef","menuRef","containerRef","buttonRef","editor","useLexicalComposerContext","handleAction","action","flipMenuIfNotInViewpoort","menuWidth","setMenuPosition","useEffect","rect","rootElement","jsxs","clsx","styles","jsx","prev","Icon"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../../../../LexicalComposerContext.prod-Dyvim1tK.js";
3
3
  import "../../../../clsx-OuTLNxxd.js";
4
- import "../../../../helpers-BewZrn6E.js";
5
- import "../../../../Lexical.prod-CO0gPAfo.js";
4
+ import "../../../../helpers-D9T1Tgkj.js";
5
+ import "../../../../Lexical.prod-qM_1BY0u.js";
6
6
  import "react";
7
- import { T as A } from "../../../../TablePlugin-Cj6IBz2k.js";
7
+ import { T as B } from "../../../../TablePlugin-CLPV2OjO.js";
8
8
  import "../../hooks/useFlyout.js";
9
9
  import "../../../Icon/Icon.js";
10
10
  import "../../../Buttons/Button.js";
@@ -19,13 +19,14 @@ import "../../../IconButton/IconButton.js";
19
19
  import "../../../Input/Input.js";
20
20
  import "../../../InputField/InputField.js";
21
21
  import "react-router-dom";
22
- import "../../../../RteEditor.module-Dz9a8vaK.js";
22
+ import "../../../../RteEditor.module-Cku3JY-0.js";
23
+ import "../../hooks/useTranslation.js";
23
24
  import "../../Providers/LanguageProvider.js";
24
25
  import "../../../SelectListbox/SelectListbox.js";
25
26
  import "../../../SelectListbox/SelectProvider.js";
26
27
  import "../../../Sortable/components/SortableItem.js";
27
28
  import "../../../../SortableProvider-BUsvniX7.js";
28
29
  export {
29
- A as TablePlugin
30
+ B as TablePlugin
30
31
  };
31
32
  //# sourceMappingURL=TablePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TablePlugin.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TablePlugin.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { e as s, a as l, b as t, d as o, i as r, c as d } from "../../../../helpers-BewZrn6E.js";
1
+ import { e as s, a as l, b as t, d as o, i as r, c as d } from "../../../../helpers-D9T1Tgkj.js";
2
2
  export {
3
3
  s as createTable,
4
4
  l as deleteColumn,
@@ -1,4 +1,4 @@
1
- import { T as o } from "../../../../TablePlugin-Cj6IBz2k.js";
1
+ import { T as o } from "../../../../TablePlugin-CLPV2OjO.js";
2
2
  import { TableCellContextMenu as t } from "./TableCellContextMenu/TableCellContextMenu.js";
3
3
  export {
4
4
  t as TableCellContextMenu,
@@ -1,11 +1,10 @@
1
- export type TargetType = '_blank' | '_self';
2
- export interface LinkType {
3
- active: boolean;
4
- url: string;
5
- target: TargetType | string;
6
- }
7
1
  export type Position = {
8
2
  xPos: number;
9
3
  yPos: number;
4
+ height: number;
10
5
  };
11
- export declare const ToolBarPlugin: () => JSX.Element;
6
+ interface ToolBarProps {
7
+ editorScrollPosition: number;
8
+ }
9
+ export declare const ToolBarPlugin: ({ editorScrollPosition }: ToolBarProps) => JSX.Element;
10
+ export {};
@@ -1,57 +1,53 @@
1
- import { jsxs as N, jsx as n } from "react/jsx-runtime";
2
- import { u as x } from "../../../../LexicalComposerContext.prod-Dyvim1tK.js";
3
- import { I as C, m as R } from "../../../../Lexical.prod-CO0gPAfo.js";
4
- import { useState as o, useRef as v, useCallback as A, useEffect as F } from "react";
5
- import { n as S } from "../../../../helpers-BewZrn6E.js";
6
- import { g as f } from "../../../../helpers-Ec7CfNnA.js";
7
- import { BlockFormatPlugin as U } from "../BlockFormatPlugin/BlockFormatPlugin.js";
8
- import { ListPlugin as _ } from "../ListPlugin/ListPlugin.js";
9
- import { LinkPlugin as j } from "../LinkPlugin/LinkPlugin.js";
10
- import { HistoryPlugin as E } from "../HistoryPlugin/HistoryPlugin.js";
11
- import { T as K } from "../../../../TablePlugin-Cj6IBz2k.js";
12
- import { TableCellContextMenu as M } from "../TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
13
- import { s as O } from "../../../../RteEditor.module-Dz9a8vaK.js";
14
- const w = (s, l) => {
15
- let e = s;
16
- for (; e !== null; ) {
17
- if (S(e) && l) {
18
- const r = l.getElementByKey(e.getKey());
19
- if (r) {
20
- const a = r.getBoundingClientRect();
21
- return { xPos: a.right, yPos: a.bottom };
1
+ import { jsxs as p, jsx as t } from "react/jsx-runtime";
2
+ import { u as h } from "../../../../LexicalComposerContext.prod-Dyvim1tK.js";
3
+ import { A as d, x as b } from "../../../../Lexical.prod-qM_1BY0u.js";
4
+ import { useState as P, useRef as x, useCallback as T, useEffect as y } from "react";
5
+ import { g as A } from "../../../../helpers-D9T1Tgkj.js";
6
+ import { BlockFormatPlugin as B } from "../BlockFormatPlugin/BlockFormatPlugin.js";
7
+ import { L as C } from "../../../../ListPlugin-Bhkh3IBK.js";
8
+ import { LinkPlugin as L } from "../LinkPlugin/LinkPlugin.js";
9
+ import { HistoryPlugin as N } from "../HistoryPlugin/HistoryPlugin.js";
10
+ import { T as k } from "../../../../TablePlugin-CLPV2OjO.js";
11
+ import { TableCellContextMenu as j } from "../TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
12
+ import { s as v } from "../../../../RteEditor.module-Cku3JY-0.js";
13
+ const D = ({ editorScrollPosition: u }) => {
14
+ const [e] = h(), [r, s] = P(null), l = x(null), a = T(() => {
15
+ const o = d();
16
+ if (b(o)) {
17
+ const g = o.anchor.getNode(), m = A(g);
18
+ if (m) {
19
+ const c = e.getElementByKey(m.getKey()), n = c ? c.getBoundingClientRect() : { right: 0, bottom: 0, height: 0 };
20
+ s({ xPos: n.right, yPos: n.bottom, height: n.height });
22
21
  } else
23
- return null;
22
+ s(null);
24
23
  }
25
- e = e.getParent();
26
- }
27
- return null;
28
- }, tt = () => {
29
- const [s] = x(), [l, e] = o(!1), [r, a] = o(!1), [d, p] = o(!1), [b, h] = o(!1), [I, L] = o({ active: !1, url: "", target: "_self" }), [P, T] = o(!1), [m, B] = o(null), u = v(null), g = A(() => {
30
- const t = C();
31
- if (R(t)) {
32
- const i = t.anchor, c = i.getNode(), y = t.focus;
33
- e(t.hasFormat("bold")), a(t.hasFormat("italic")), p(f(c, "ul")), h(f(c, "ol")), T(Math.abs(i.offset - y.offset) !== 0), L(f(c, "a")), B(w(c, s));
34
- }
35
- }, [s]), k = (t) => {
24
+ }, [e]), f = (o) => {
36
25
  var i;
37
- (i = u.current) == null || i.mutateTable(t);
26
+ (i = l.current) == null || i.mutateTable(o);
38
27
  };
39
- return F(() => {
40
- s.registerUpdateListener(({ editorState: t }) => {
41
- t.read(() => {
42
- g();
28
+ return y(() => {
29
+ e.registerUpdateListener(({ editorState: o }) => {
30
+ o.read(() => {
31
+ a();
43
32
  });
44
33
  });
45
- }, [s, g]), /* @__PURE__ */ N("div", { className: O.editor__toolbar, children: [
46
- /* @__PURE__ */ n(U, { isBold: l, isItalic: r }),
47
- /* @__PURE__ */ n(_, { isUList: d, isOList: b }),
48
- /* @__PURE__ */ n(K, { isActive: !!m, ref: u }),
49
- m && /* @__PURE__ */ n(M, { position: m, onAction: k }),
50
- /* @__PURE__ */ n(j, { isLink: I, isLinkable: P }),
51
- /* @__PURE__ */ n(E, {})
34
+ }, [e, a]), /* @__PURE__ */ p("div", { className: v.editor__toolbar, children: [
35
+ /* @__PURE__ */ t(B, {}),
36
+ /* @__PURE__ */ t(C, {}),
37
+ /* @__PURE__ */ t(k, { isActive: !!r, ref: l }),
38
+ r && /* @__PURE__ */ t(
39
+ j,
40
+ {
41
+ position: r,
42
+ parentScrollPosition: u,
43
+ onAction: f
44
+ }
45
+ ),
46
+ /* @__PURE__ */ t(L, {}),
47
+ /* @__PURE__ */ t(N, {})
52
48
  ] });
53
49
  };
54
50
  export {
55
- tt as ToolBarPlugin
51
+ D as ToolBarPlugin
56
52
  };
57
53
  //# sourceMappingURL=ToolbarPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPlugin.js","sources":["../../../../../src/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { $getSelection, $isRangeSelection } from 'lexical';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { $isTableCellNode } from '@lexical/table';\n\nimport type { ElementNode, TextNode } from 'lexical';\nimport type { Actions } from 'components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu';\nimport type { TableMutation } from 'components/RteEditor/Plugins/TablePlugin/TablePlugin';\n\nimport { getNodeTag } from 'components/RteEditor/Plugins/LinkPlugin/helpers';\nimport {\n LinkPlugin,\n BlockFormatPlugin,\n ListPlugin,\n HistoryPlugin,\n TablePlugin,\n TableCellContextMenu,\n} from 'components/RteEditor/Plugins';\nimport styles from 'components/RteEditor/RteEditor.module.css';\n\nexport type TargetType = '_blank' | '_self';\nexport interface LinkType {\n active: boolean;\n url: string;\n target: TargetType | string;\n}\n\nexport type Position = {\n xPos: number;\n yPos: number;\n};\n\nconst getTableCell = (\n anchorNode: ElementNode | TextNode,\n editor: ReturnType<typeof useLexicalComposerContext>[0]\n): Position | null => {\n let currentNode: TextNode | ElementNode | null = anchorNode;\n\n while (currentNode !== null) {\n if ($isTableCellNode(currentNode) && editor) {\n const domNode = editor.getElementByKey(currentNode.getKey());\n if (domNode) {\n const rect = domNode.getBoundingClientRect();\n return { xPos: rect.right, yPos: rect.bottom };\n } else {\n return null;\n }\n }\n currentNode = currentNode.getParent();\n }\n\n return null;\n};\n\nexport const ToolBarPlugin = (): JSX.Element => {\n const [editor] = useLexicalComposerContext();\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n const [isUList, setIsUList] = useState<boolean>(false);\n const [isOList, setIsOList] = useState<boolean>(false);\n const [isLink, setIsLink] = useState<LinkType>({ active: false, url: '', target: '_self' });\n const [isSelectedRange, setIsSelectedRange] = useState(false);\n const [position, setPosition] = useState<Position | null>(null);\n const tableref = useRef<TableMutation>(null);\n\n const updateToolbar = useCallback(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const anchorNode = anchor.getNode();\n const focus = selection.focus;\n\n setIsBold(selection.hasFormat('bold'));\n setIsItalic(selection.hasFormat('italic'));\n setIsUList(getNodeTag(anchorNode, 'ul') as boolean);\n setIsOList(getNodeTag(anchorNode, 'ol') as boolean);\n\n setIsSelectedRange(Math.abs(anchor.offset - focus.offset) !== 0);\n setIsLink(getNodeTag(anchorNode, 'a') as LinkType);\n\n setPosition(getTableCell(anchorNode, editor));\n }\n }, [editor]);\n\n const handleTableAction = (action: Actions) => {\n tableref.current?.mutateTable(action);\n };\n\n useEffect(() => {\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n updateToolbar();\n });\n });\n }, [editor, updateToolbar]);\n\n return (\n <div className={styles['editor__toolbar']}>\n <BlockFormatPlugin isBold={isBold} isItalic={isItalic} />\n <ListPlugin isUList={isUList} isOList={isOList} />\n <TablePlugin isActive={Boolean(position)} ref={tableref} />\n {position && <TableCellContextMenu position={position} onAction={handleTableAction} />}\n <LinkPlugin isLink={isLink} isLinkable={isSelectedRange} />\n <HistoryPlugin />\n </div>\n );\n};\n"],"names":["getTableCell","anchorNode","editor","currentNode","$isTableCellNode","domNode","rect","ToolBarPlugin","useLexicalComposerContext","isBold","setIsBold","useState","isItalic","setIsItalic","isUList","setIsUList","isOList","setIsOList","isLink","setIsLink","isSelectedRange","setIsSelectedRange","position","setPosition","tableref","useRef","updateToolbar","useCallback","selection","$getSelection","$isRangeSelection","anchor","focus","getNodeTag","handleTableAction","action","_a","useEffect","editorState","jsxs","styles","jsx","BlockFormatPlugin","ListPlugin","TablePlugin","TableCellContextMenu","LinkPlugin","HistoryPlugin"],"mappings":";;;;;;;;;;;;;AAgCA,MAAMA,IAAe,CACnBC,GACAC,MACoB;AACpB,MAAIC,IAA6CF;AAEjD,SAAOE,MAAgB,QAAM;AACvB,QAAAC,EAAiBD,CAAW,KAAKD,GAAQ;AAC3C,YAAMG,IAAUH,EAAO,gBAAgBC,EAAY,OAAQ,CAAA;AAC3D,UAAIE,GAAS;AACL,cAAAC,IAAOD,EAAQ;AACrB,eAAO,EAAE,MAAMC,EAAK,OAAO,MAAMA,EAAK;MAAO;AAEtC,eAAA;AAAA,IAEX;AACA,IAAAH,IAAcA,EAAY;EAC5B;AAEO,SAAA;AACT,GAEaI,KAAgB,MAAmB;AACxC,QAAA,CAACL,CAAM,IAAIM,KACX,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAUC,CAAW,IAAIF,EAAS,EAAK,GACxC,CAACG,GAASC,CAAU,IAAIJ,EAAkB,EAAK,GAC/C,CAACK,GAASC,CAAU,IAAIN,EAAkB,EAAK,GAC/C,CAACO,GAAQC,CAAS,IAAIR,EAAmB,EAAE,QAAQ,IAAO,KAAK,IAAI,QAAQ,QAAS,CAAA,GACpF,CAACS,GAAiBC,CAAkB,IAAIV,EAAS,EAAK,GACtD,CAACW,GAAUC,CAAW,IAAIZ,EAA0B,IAAI,GACxDa,IAAWC,EAAsB,IAAI,GAErCC,IAAgBC,EAAY,MAAM;AACtC,UAAMC,IAAYC;AACd,QAAAC,EAAkBF,CAAS,GAAG;AAChC,YAAMG,IAASH,EAAU,QACnB3B,IAAa8B,EAAO,WACpBC,IAAQJ,EAAU;AAEd,MAAAlB,EAAAkB,EAAU,UAAU,MAAM,CAAC,GACzBf,EAAAe,EAAU,UAAU,QAAQ,CAAC,GAC9Bb,EAAAkB,EAAWhC,GAAY,IAAI,CAAY,GACvCgB,EAAAgB,EAAWhC,GAAY,IAAI,CAAY,GAElDoB,EAAmB,KAAK,IAAIU,EAAO,SAASC,EAAM,MAAM,MAAM,CAAC,GACrDb,EAAAc,EAAWhC,GAAY,GAAG,CAAa,GAErCsB,EAAAvB,EAAaC,GAAYC,CAAM,CAAC;AAAA,IAC9C;AAAA,EAAA,GACC,CAACA,CAAM,CAAC,GAELgC,IAAoB,CAACC,MAAoB;;AACpC,KAAAC,IAAAZ,EAAA,YAAA,QAAAY,EAAS,YAAYD;AAAA,EAAM;AAGtC,SAAAE,EAAU,MAAM;AACd,IAAAnC,EAAO,uBAAuB,CAAC,EAAE,aAAAoC,QAAkB;AACjD,MAAAA,EAAY,KAAK,MAAM;AACP,QAAAZ;MAAA,CACf;AAAA,IAAA,CACF;AAAA,EAAA,GACA,CAACxB,GAAQwB,CAAa,CAAC,GAGvB,gBAAAa,EAAA,OAAA,EAAI,WAAWC,EAAO,iBACrB,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAkB,QAAAjC,GAAgB,UAAAG,EAAoB,CAAA;AAAA,IACvD,gBAAA6B,EAACE,GAAW,EAAA,SAAA7B,GAAkB,SAAAE,EAAkB,CAAA;AAAA,sBAC/C4B,GAAY,EAAA,UAAU,EAAQtB,GAAW,KAAKE,GAAU;AAAA,IACxDF,KAAY,gBAAAmB,EAACI,GAAqB,EAAA,UAAAvB,GAAoB,UAAUY,GAAmB;AAAA,IACnF,gBAAAO,EAAAK,GAAA,EAAW,QAAA5B,GAAgB,YAAYE,EAAiB,CAAA;AAAA,sBACxD2B,GAAc,EAAA;AAAA,EACjB,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"ToolbarPlugin.js","sources":["../../../../../src/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { $getSelection, $isRangeSelection } from 'lexical';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { $getTableCellNodeFromLexicalNode } from '@lexical/table';\n\nimport type { Actions } from 'components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu';\nimport type { TableMutation } from 'components/RteEditor/Plugins/TablePlugin/TablePlugin';\n\nimport {\n LinkPlugin,\n BlockFormatPlugin,\n ListPlugin,\n HistoryPlugin,\n TablePlugin,\n TableCellContextMenu,\n} from 'components/RteEditor/Plugins';\nimport styles from 'components/RteEditor/RteEditor.module.css';\n\nexport type Position = {\n xPos: number;\n yPos: number;\n height: number;\n};\n\ninterface ToolBarProps {\n editorScrollPosition: number;\n}\n\nexport const ToolBarPlugin = ({ editorScrollPosition }: ToolBarProps): JSX.Element => {\n const [editor] = useLexicalComposerContext();\n const [position, setPosition] = useState<Position | null>(null);\n const tableref = useRef<TableMutation>(null);\n\n const updateToolbar = useCallback(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const anchorNode = anchor.getNode();\n\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (tableCell) {\n const domNode = editor.getElementByKey(tableCell.getKey());\n const position = domNode ? domNode.getBoundingClientRect() : { right: 0, bottom: 0, height: 0 };\n setPosition({ xPos: position.right, yPos: position.bottom, height: position.height });\n } else {\n setPosition(null);\n }\n }\n }, [editor]);\n\n const handleTableAction = (action: Actions) => {\n tableref.current?.mutateTable(action);\n };\n\n useEffect(() => {\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n updateToolbar();\n });\n });\n }, [editor, updateToolbar]);\n\n return (\n <div className={styles['editor__toolbar']}>\n <BlockFormatPlugin />\n <ListPlugin />\n <TablePlugin isActive={Boolean(position)} ref={tableref} />\n {position && (\n <TableCellContextMenu\n position={position}\n parentScrollPosition={editorScrollPosition}\n onAction={handleTableAction}\n />\n )}\n <LinkPlugin />\n <HistoryPlugin />\n </div>\n );\n};\n"],"names":["ToolBarPlugin","editorScrollPosition","editor","useLexicalComposerContext","position","setPosition","useState","tableref","useRef","updateToolbar","useCallback","selection","$getSelection","$isRangeSelection","anchorNode","tableCell","$getTableCellNodeFromLexicalNode","domNode","handleTableAction","action","_a","useEffect","editorState","jsxs","styles","jsx","BlockFormatPlugin","ListPlugin","TablePlugin","TableCellContextMenu","LinkPlugin","HistoryPlugin"],"mappings":";;;;;;;;;;;;AA4BO,MAAMA,IAAgB,CAAC,EAAE,sBAAAC,QAAsD;AAC9E,QAAA,CAACC,CAAM,IAAIC,KACX,CAACC,GAAUC,CAAW,IAAIC,EAA0B,IAAI,GACxDC,IAAWC,EAAsB,IAAI,GAErCC,IAAgBC,EAAY,MAAM;AACtC,UAAMC,IAAYC;AACd,QAAAC,EAAkBF,CAAS,GAAG;AAE1B,YAAAG,IADSH,EAAU,OACC,WAEpBI,IAAYC,EAAiCF,CAAU;AAC7D,UAAIC,GAAW;AACb,cAAME,IAAUf,EAAO,gBAAgBa,EAAU,OAAQ,CAAA,GACnDX,IAAWa,IAAUA,EAAQ,sBAAsB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAClF,QAAAZ,EAAA,EAAE,MAAMD,EAAS,OAAO,MAAMA,EAAS,QAAQ,QAAQA,EAAS,OAAQ,CAAA;AAAA,MAAA;AAEpF,QAAAC,EAAY,IAAI;AAAA,IAEpB;AAAA,EAAA,GACC,CAACH,CAAM,CAAC,GAELgB,IAAoB,CAACC,MAAoB;;AACpC,KAAAC,IAAAb,EAAA,YAAA,QAAAa,EAAS,YAAYD;AAAA,EAAM;AAGtC,SAAAE,EAAU,MAAM;AACd,IAAAnB,EAAO,uBAAuB,CAAC,EAAE,aAAAoB,QAAkB;AACjD,MAAAA,EAAY,KAAK,MAAM;AACP,QAAAb;MAAA,CACf;AAAA,IAAA,CACF;AAAA,EAAA,GACA,CAACP,GAAQO,CAAa,CAAC,GAGvB,gBAAAc,EAAA,OAAA,EAAI,WAAWC,EAAO,iBACrB,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAkB,EAAA;AAAA,sBAClBC,GAAW,EAAA;AAAA,sBACXC,GAAY,EAAA,UAAU,EAAQxB,GAAW,KAAKG,GAAU;AAAA,IACxDH,KACC,gBAAAqB;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,UAAAzB;AAAA,QACA,sBAAsBH;AAAA,QACtB,UAAUiB;AAAA,MAAA;AAAA,IACZ;AAAA,sBAEDY,GAAW,EAAA;AAAA,sBACXC,GAAc,EAAA;AAAA,EACjB,EAAA,CAAA;AAEJ;"}
@@ -1,17 +1,18 @@
1
1
  import { ToolBarPlugin as e } from "./ToolbarPlugin/ToolbarPlugin.js";
2
- import { BlockFormatPlugin as t } from "./BlockFormatPlugin/BlockFormatPlugin.js";
3
- import { ListPlugin as n } from "./ListPlugin/ListPlugin.js";
4
- import { LinkPlugin as x } from "./LinkPlugin/LinkPlugin.js";
5
- import { HistoryPlugin as p } from "./HistoryPlugin/HistoryPlugin.js";
6
- import { T as g } from "../../../TablePlugin-Cj6IBz2k.js";
7
- import { TableCellContextMenu as a } from "./TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
2
+ import { BlockFormatPlugin as l } from "./BlockFormatPlugin/BlockFormatPlugin.js";
3
+ import { L as n } from "../../../ListPlugin-Bhkh3IBK.js";
4
+ import { LinkPlugin as m, getLinkNodeTag as x } from "./LinkPlugin/LinkPlugin.js";
5
+ import { HistoryPlugin as f } from "./HistoryPlugin/HistoryPlugin.js";
6
+ import { T as u } from "../../../TablePlugin-CLPV2OjO.js";
7
+ import { TableCellContextMenu as T } from "./TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
8
8
  export {
9
- t as BlockFormatPlugin,
10
- p as HistoryPlugin,
11
- x as LinkPlugin,
9
+ l as BlockFormatPlugin,
10
+ f as HistoryPlugin,
11
+ m as LinkPlugin,
12
12
  n as ListPlugin,
13
- a as TableCellContextMenu,
14
- g as TablePlugin,
15
- e as ToolBarPlugin
13
+ T as TableCellContextMenu,
14
+ u as TablePlugin,
15
+ e as ToolBarPlugin,
16
+ x as getLinkNodeTag
16
17
  };
17
18
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,24 @@
1
1
  export interface RteEditorProps {
2
- namespace?: string;
2
+ /** current language setting for the editor labels NOT title ans label*/
3
3
  currentLanguage?: 'NL' | 'EN';
4
+ /** imported content to edit */
4
5
  initialValue?: string;
6
+ /** placeholder text in current Language */
5
7
  placeholder?: string;
8
+ /** label/title of the RTE in current Language */
6
9
  label?: string;
10
+ /** explanation of the text to be filled in, in current Language */
7
11
  info?: string;
12
+ /** 'true' the rte field mandetory */
8
13
  required?: boolean;
14
+ /** max number of words 'allowed' but not enforced */
9
15
  maxWords?: number;
10
- /** error text to display if set */
16
+ /** max height in rem default = 20rem*/
17
+ maxHeightInRem?: `${number}rem`;
18
+ /** error text to display if required and field is empthy */
11
19
  notValidatedText?: string;
20
+ /** updated output */
12
21
  onChange: (content: string) => void;
13
22
  }
14
- export declare const Rte: ({ namespace, currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxWords, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
15
- export declare const RteEditor: ({ namespace, currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxWords, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const Rte: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxHeightInRem, maxWords, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const RteEditor: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxWords, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;