@uva-glass/component-library 3.55.4 → 3.55.6

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 (330) hide show
  1. package/dist/{Accordion-BpnBHYIx.js → Accordion-DvblEUVu.js} +16 -17
  2. package/dist/{Accordion-BpnBHYIx.js.map → Accordion-DvblEUVu.js.map} +1 -1
  3. package/dist/ActionList-O9w1hqNg.js.map +1 -1
  4. package/dist/{AddCatalogueLinkForm-Cy6fPNvN.js → AddCatalogueLinkForm-rph4K9P0.js} +24 -25
  5. package/dist/{AddCatalogueLinkForm-Cy6fPNvN.js.map → AddCatalogueLinkForm-rph4K9P0.js.map} +1 -1
  6. package/dist/{CheckboxButtonBar-CalU0IYK.js → CheckboxButtonBar-5UMIFMKH.js} +2 -2
  7. package/dist/{CheckboxButtonBar-CalU0IYK.js.map → CheckboxButtonBar-5UMIFMKH.js.map} +1 -1
  8. package/dist/{ControlsButton-zemVxTlg.js → ControlsButton-B1XRpMUM.js} +15 -16
  9. package/dist/{ControlsButton-zemVxTlg.js.map → ControlsButton-B1XRpMUM.js.map} +1 -1
  10. package/dist/{Drawer-Ggofac6y.js → Drawer-e7UFHVg9.js} +29 -30
  11. package/dist/{Drawer-Ggofac6y.js.map → Drawer-e7UFHVg9.js.map} +1 -1
  12. package/dist/{FieldHint-D0HtbTnt.js → FieldHint-fxnEOsVZ.js} +2 -2
  13. package/dist/{FieldHint-D0HtbTnt.js.map → FieldHint-fxnEOsVZ.js.map} +1 -1
  14. package/dist/Fieldset-0LFsZ3Mz.js +22 -0
  15. package/dist/{Fieldset-CoNu_Owa.js.map → Fieldset-0LFsZ3Mz.js.map} +1 -1
  16. package/dist/{Lexical.prod-DIglXatJ.js → Lexical.prod-CqPLSi0R.js} +1225 -1120
  17. package/dist/Lexical.prod-CqPLSi0R.js.map +1 -0
  18. package/dist/LexicalClipboard.prod-BVw_sFpo.js +651 -0
  19. package/dist/LexicalClipboard.prod-BVw_sFpo.js.map +1 -0
  20. package/dist/{LexicalExtension.prod-COPHoPpX.js → LexicalExtension.prod-CUQTgbur.js} +318 -291
  21. package/dist/LexicalExtension.prod-CUQTgbur.js.map +1 -0
  22. package/dist/{LexicalLink.prod-Bf9JUdMv.js → LexicalLink.prod-DMhcqD9x.js} +212 -205
  23. package/dist/LexicalLink.prod-DMhcqD9x.js.map +1 -0
  24. package/dist/{LexicalList.prod-DRz8vsM9.js → LexicalList.prod-eYlcb5Ao.js} +295 -255
  25. package/dist/LexicalList.prod-eYlcb5Ao.js.map +1 -0
  26. package/dist/{LexicalTable.prod-D16GW-aZ.js → LexicalTable.prod-DlOxUQou.js} +717 -703
  27. package/dist/LexicalTable.prod-DlOxUQou.js.map +1 -0
  28. package/dist/LexicalUtils.prod-BqcriFWV.js +343 -0
  29. package/dist/LexicalUtils.prod-BqcriFWV.js.map +1 -0
  30. package/dist/{LinkContextMenu-m_CGQEiX.js → LinkContextMenu-ePn1iZ_z.js} +2 -2
  31. package/dist/{LinkContextMenu-m_CGQEiX.js.map → LinkContextMenu-ePn1iZ_z.js.map} +1 -1
  32. package/dist/{ModalDialog-HUkDdAJ-.js → ModalDialog-N50NGnd4.js} +2 -2
  33. package/dist/{ModalDialog-HUkDdAJ-.js.map → ModalDialog-N50NGnd4.js.map} +1 -1
  34. package/dist/MultiSelectBox-Cuh_o-A1.js.map +1 -1
  35. package/dist/{PageOverlay-D_wG2oie.js → PageOverlay-S4xsqJha.js} +2 -2
  36. package/dist/{PageOverlay-D_wG2oie.js.map → PageOverlay-S4xsqJha.js.map} +1 -1
  37. package/dist/{PasteHandlerPlugin-DjD1wryY.js → PasteHandlerPlugin-BNp8ST0q.js} +5 -5
  38. package/dist/{PasteHandlerPlugin-DjD1wryY.js.map → PasteHandlerPlugin-BNp8ST0q.js.map} +1 -1
  39. package/dist/Periods-BYETtB6R.js.map +1 -1
  40. package/dist/{RteEditor.module-Jk80F1FA.js → RteEditor.module-BJLUYSpf.js} +9 -10
  41. package/dist/{RteEditor.module-Jk80F1FA.js.map → RteEditor.module-BJLUYSpf.js.map} +1 -1
  42. package/dist/Slider-BlLyrET9.js.map +1 -1
  43. package/dist/{Sortable.module-BTUOSbOU.js → Sortable.module-8SoaHfuE.js} +6 -7
  44. package/dist/{Sortable.module-BTUOSbOU.js.map → Sortable.module-8SoaHfuE.js.map} +1 -1
  45. package/dist/{SortableProvider-Dc7hwkb5.js → SortableProvider-8HYiBXJS.js} +2 -2
  46. package/dist/{SortableProvider-Dc7hwkb5.js.map → SortableProvider-8HYiBXJS.js.map} +1 -1
  47. package/dist/Spinner-BpElTDIu.js +30 -0
  48. package/dist/{Spinner-D8tWqg9j.js.map → Spinner-BpElTDIu.js.map} +1 -1
  49. package/dist/{TableCellResizerPlugin-CgYsYsuY.js → TableCellResizerPlugin-Bc5y-Qbx.js} +36 -36
  50. package/dist/{TableCellResizerPlugin-CgYsYsuY.js.map → TableCellResizerPlugin-Bc5y-Qbx.js.map} +1 -1
  51. package/dist/{TextArea-DqKIpOfT.js → TextArea-CuASC9bX.js} +16 -17
  52. package/dist/{TextArea-DqKIpOfT.js.map → TextArea-CuASC9bX.js.map} +1 -1
  53. package/dist/{Tooltip-BzB3jznk.js → Tooltip-D27p9kh4.js} +13 -14
  54. package/dist/{Tooltip-BzB3jznk.js.map → Tooltip-D27p9kh4.js.map} +1 -1
  55. package/dist/{chunk-DeC0fbbY.js → chunk-3e0lkp8x.js} +1 -1
  56. package/dist/{chunk-SZQXB3JV-D0XG4Tlp.js → chunk-SZQXB3JV-D6GR5B4F.js} +5 -5
  57. package/dist/chunk-SZQXB3JV-D6GR5B4F.js.map +1 -0
  58. package/dist/{client-UU-mS47K.js → client-8jeXrH7N.js} +10 -10
  59. package/dist/{client-UU-mS47K.js.map → client-8jeXrH7N.js.map} +1 -1
  60. package/dist/components/Accordion/Accordion.js +1 -1
  61. package/dist/components/Accordion/Accordion.stories.js +1 -1
  62. package/dist/components/Accordion/Accordion.stories.js.map +1 -1
  63. package/dist/components/Accordion/Accordion.test.js +4 -7
  64. package/dist/components/Accordion/Accordion.test.js.map +1 -1
  65. package/dist/components/Accordion/index.js +1 -1
  66. package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
  67. package/dist/components/AccordionCard/AccordionCard.test.js +3 -6
  68. package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
  69. package/dist/components/ActionList/ActionList.stories.js.map +1 -1
  70. package/dist/components/ActionList/ActionList.test.js +3 -6
  71. package/dist/components/ActionList/ActionList.test.js.map +1 -1
  72. package/dist/components/AppStatusBar/AppStatusBar.stories.js.map +1 -1
  73. package/dist/components/AppStatusBar/AppStatusBar.test.js +2 -5
  74. package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
  75. package/dist/components/Attention/Attention.stories.js.map +1 -1
  76. package/dist/components/Attention/Attention.test.js +2 -5
  77. package/dist/components/Attention/Attention.test.js.map +1 -1
  78. package/dist/components/Backdrop/Backdrop.stories.js.map +1 -1
  79. package/dist/components/Backdrop/Backdrop.test.js +2 -5
  80. package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
  81. package/dist/components/ButtonGroup/ButtonGroup.stories.js.map +1 -1
  82. package/dist/components/Buttons/Button.stories.js +1 -1
  83. package/dist/components/Buttons/Button.stories.js.map +1 -1
  84. package/dist/components/Buttons/Button.test.js +2 -5
  85. package/dist/components/Buttons/Button.test.js.map +1 -1
  86. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  87. package/dist/components/Buttons/LinkButton.stories.js.map +1 -1
  88. package/dist/components/Buttons/LinkButton.test.js +2 -5
  89. package/dist/components/Buttons/LinkButton.test.js.map +1 -1
  90. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  91. package/dist/components/Buttons/MenuButton.stories.js.map +1 -1
  92. package/dist/components/Buttons/MenuButton.test.js +2 -5
  93. package/dist/components/Buttons/MenuButton.test.js.map +1 -1
  94. package/dist/components/Card/Card.stories.js.map +1 -1
  95. package/dist/components/Card/Card.test.js +2 -5
  96. package/dist/components/Card/Card.test.js.map +1 -1
  97. package/dist/components/Checkbox/Checkbox.stories.js +1 -1
  98. package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
  99. package/dist/components/Checkbox/Checkbox.test.js +3 -6
  100. package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
  101. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +1 -1
  102. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +2 -2
  103. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
  104. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +3 -6
  105. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
  106. package/dist/components/CheckboxButtonBar/index.js +1 -1
  107. package/dist/components/CheckboxTree/CheckboxTree.js +1 -2
  108. package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -4
  109. package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
  110. package/dist/components/CheckboxTree/index.js +1 -2
  111. package/dist/components/Chip/Chip.stories.js +1 -1
  112. package/dist/components/Chip/Chip.stories.js.map +1 -1
  113. package/dist/components/ControlsButton/ControlsButton.js +1 -1
  114. package/dist/components/ControlsButton/ControlsButton.stories.js +2 -2
  115. package/dist/components/ControlsButton/ControlsButton.stories.js.map +1 -1
  116. package/dist/components/ControlsButton/index.js +1 -1
  117. package/dist/components/Drawer/Drawer.js +1 -1
  118. package/dist/components/Drawer/Drawer.stories.js +2 -2
  119. package/dist/components/Drawer/Drawer.stories.js.map +1 -1
  120. package/dist/components/Drawer/index.js +1 -1
  121. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
  122. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -1
  123. package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
  124. package/dist/components/FeedbackBar/FeedbackBar.test.js +2 -5
  125. package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
  126. package/dist/components/FeedbackBox/FeedbackBox.stories.js.map +1 -1
  127. package/dist/components/FieldHint/FieldHint.js +1 -1
  128. package/dist/components/FieldHint/FieldHint.stories.js +1 -1
  129. package/dist/components/FieldHint/FieldHint.stories.js.map +1 -1
  130. package/dist/components/FieldHint/index.js +1 -1
  131. package/dist/components/Fieldset/Fieldset.js +1 -1
  132. package/dist/components/Fieldset/Fieldset.stories.js +1 -1
  133. package/dist/components/Fieldset/Fieldset.stories.js.map +1 -1
  134. package/dist/components/Fieldset/index.js +1 -1
  135. package/dist/components/FormField/FormField.stories.js.map +1 -1
  136. package/dist/components/FormInput/FormInput.js +1 -2
  137. package/dist/components/FormInput/FormInput.stories.js +2 -3
  138. package/dist/components/FormInput/FormInput.stories.js.map +1 -1
  139. package/dist/components/FormInput/index.js +1 -2
  140. package/dist/components/GridRow/GridRow.stories.js.map +1 -1
  141. package/dist/components/HorizontalList/HorizontalList.stories.js.map +1 -1
  142. package/dist/components/Icon/Icon.stories.js.map +1 -1
  143. package/dist/components/IconButton/IconButton.stories.js +6 -7
  144. package/dist/components/IconButton/IconButton.stories.js.map +1 -1
  145. package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
  146. package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
  147. package/dist/components/Input/Input.stories.js.map +1 -1
  148. package/dist/components/InputField/InputField.stories.js +1 -3
  149. package/dist/components/InputField/InputField.stories.js.map +1 -1
  150. package/dist/components/Label/Label.stories.js.map +1 -1
  151. package/dist/components/Label/Label.test.js +2 -5
  152. package/dist/components/Label/Label.test.js.map +1 -1
  153. package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
  154. package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
  155. package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -4
  156. package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
  157. package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
  158. package/dist/components/ModalDialog/ModalDialog.js +1 -1
  159. package/dist/components/ModalDialog/ModalDialog.stories.js +2 -2
  160. package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
  161. package/dist/components/ModalDialog/index.js +1 -1
  162. package/dist/components/MultiSelect/MultiSelect.js +1 -2
  163. package/dist/components/MultiSelect/MultiSelect.stories.js +2 -3
  164. package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
  165. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -2
  166. package/dist/components/MultiSelect/index.js +1 -2
  167. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
  168. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
  169. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +2 -5
  170. package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
  171. package/dist/components/Notification/Notification.stories.js +1 -1
  172. package/dist/components/Notification/Notification.stories.js.map +1 -1
  173. package/dist/components/Notification/Notification.test.js +2 -5
  174. package/dist/components/Notification/Notification.test.js.map +1 -1
  175. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +6 -7
  176. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
  177. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
  178. package/dist/components/PageOverlay/PageOverlay.js +1 -1
  179. package/dist/components/PageOverlay/PageOverlay.stories.js +1 -1
  180. package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
  181. package/dist/components/PageOverlay/index.js +1 -1
  182. package/dist/components/PeriodSelector/PeriodSelector.js +1 -2
  183. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -3
  184. package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
  185. package/dist/components/PeriodSelector/index.js +1 -2
  186. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +0 -2
  187. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
  188. package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
  189. package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
  190. package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
  191. package/dist/components/RadioGroup/Radiogroup.test.js +2 -5
  192. package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
  193. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -2
  194. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -3
  195. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js.map +1 -1
  196. package/dist/components/RadioTabSelector/index.js +1 -2
  197. package/dist/components/Repeater/Repeater.stories.js.map +1 -1
  198. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -2
  199. package/dist/components/RteEditor/EditorHeader/index.js +1 -2
  200. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +5 -5
  201. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
  202. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
  203. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +36 -36
  204. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
  205. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -2
  206. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -2
  207. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -2
  208. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  209. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -2
  210. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  211. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -2
  212. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +16 -16
  213. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
  214. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  215. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  216. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  217. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  218. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -2
  219. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -2
  220. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +29 -29
  221. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
  222. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -2
  223. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -2
  224. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -2
  225. package/dist/components/RteEditor/Plugins/index.js +3 -3
  226. package/dist/components/RteEditor/RteEditor.js +1 -2
  227. package/dist/components/RteEditor/RteEditor.stories.js +1 -2
  228. package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
  229. package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
  230. package/dist/components/RteEditor/helpers.js +5 -5
  231. package/dist/components/RteEditor/helpers.js.map +1 -1
  232. package/dist/components/RteEditor/hooks/useFlyout.js.map +1 -1
  233. package/dist/components/RteEditor/index.js +1 -2
  234. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +17 -17
  235. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
  236. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +19 -19
  237. package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
  238. package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
  239. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  240. package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
  241. package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
  242. package/dist/components/Slider/Slider.stories.js.map +1 -1
  243. package/dist/components/Sortable/Sortable.js +1 -1
  244. package/dist/components/Sortable/Sortable.stories.js +1 -1
  245. package/dist/components/Sortable/Sortable.stories.js.map +1 -1
  246. package/dist/components/Sortable/SortableProvider.js +1 -1
  247. package/dist/components/Sortable/components/SortableContainer.js +1 -1
  248. package/dist/components/Sortable/components/SortableHandle.js +1 -1
  249. package/dist/components/Sortable/components/SortableItem.js +2 -2
  250. package/dist/components/Spinner/Spinner.js +1 -1
  251. package/dist/components/Spinner/Spinner.stories.js +1 -1
  252. package/dist/components/Spinner/Spinner.stories.js.map +1 -1
  253. package/dist/components/Spinner/index.js +1 -1
  254. package/dist/components/StatusBadge/StatusBadge.stories.js.map +1 -1
  255. package/dist/components/StatusBadge/StatusBadge.test.js +2 -5
  256. package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
  257. package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
  258. package/dist/components/TextArea/TextArea.js +1 -1
  259. package/dist/components/TextArea/TextArea.stories.js +2 -2
  260. package/dist/components/TextArea/TextArea.stories.js.map +1 -1
  261. package/dist/components/TextArea/TextArea.test.js +4 -7
  262. package/dist/components/TextArea/TextArea.test.js.map +1 -1
  263. package/dist/components/TextArea/index.js +1 -1
  264. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
  265. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js.map +1 -1
  266. package/dist/components/Tooltip/Tooltip.js +1 -1
  267. package/dist/components/Tooltip/Tooltip.stories.js +1 -1
  268. package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
  269. package/dist/components/Tooltip/index.js +1 -1
  270. package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
  271. package/dist/components/VarIndicator/VarIndicator.stories.js.map +1 -1
  272. package/dist/components/VarIndicator/VarIndicator.test.js +3 -6
  273. package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
  274. package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
  275. package/dist/components/index.js +12 -13
  276. package/dist/{components-MNvdQLv1.js → components-BzxAULjf.js} +495 -495
  277. package/dist/components-BzxAULjf.js.map +1 -0
  278. package/dist/{dist-2TKCXdYZ.js → dist-V_v3kC0L.js} +183 -183
  279. package/dist/dist-V_v3kC0L.js.map +1 -0
  280. package/dist/{esm-UNe_gmRA.js → esm-BwHoYxVb.js} +5 -5
  281. package/dist/{esm-UNe_gmRA.js.map → esm-BwHoYxVb.js.map} +1 -1
  282. package/dist/{helpers-BBSxTGRl.js → helpers-B1VK8xTF.js} +7 -7
  283. package/dist/{helpers-BBSxTGRl.js.map → helpers-B1VK8xTF.js.map} +1 -1
  284. package/dist/index.js +12 -13
  285. package/dist/{lib-6BbFZdI7.js → lib-BvOQt8El.js} +2 -2
  286. package/dist/{lib-6BbFZdI7.js.map → lib-BvOQt8El.js.map} +1 -1
  287. package/dist/{react-18-CRbkdI-3.js → react-18-B7MZmX_Z.js} +3 -3
  288. package/dist/{react-18-CRbkdI-3.js.map → react-18-B7MZmX_Z.js.map} +1 -1
  289. package/dist/{react.esm-CzIhAqlo.js → react.esm-D_F72rY1.js} +590 -590
  290. package/dist/react.esm-D_F72rY1.js.map +1 -0
  291. package/dist/setupTests.js +2 -3
  292. package/dist/setupTests.js.map +1 -1
  293. package/dist/storybook__react.d.js +99 -99
  294. package/dist/storybook__react.d.js.map +1 -1
  295. package/dist/{test-DQruvi8i.js → test-Pa9Lwbsq.js} +13 -11
  296. package/dist/test-Pa9Lwbsq.js.map +1 -0
  297. package/dist/{test-utils-BSs0eZfL.js → test-utils-Cmn06m_x.js} +2 -2
  298. package/dist/{test-utils-BSs0eZfL.js.map → test-utils-Cmn06m_x.js.map} +1 -1
  299. package/package.json +30 -30
  300. package/dist/Fieldset-CoNu_Owa.js +0 -23
  301. package/dist/Lexical.prod-DIglXatJ.js.map +0 -1
  302. package/dist/LexicalClipboard.prod-Bnzu0sh_.js +0 -248
  303. package/dist/LexicalClipboard.prod-Bnzu0sh_.js.map +0 -1
  304. package/dist/LexicalExtension.prod-COPHoPpX.js.map +0 -1
  305. package/dist/LexicalLink.prod-Bf9JUdMv.js.map +0 -1
  306. package/dist/LexicalList.prod-DRz8vsM9.js.map +0 -1
  307. package/dist/LexicalTable.prod-D16GW-aZ.js.map +0 -1
  308. package/dist/LexicalUtils.prod-BBTLliac.js +0 -360
  309. package/dist/LexicalUtils.prod-BBTLliac.js.map +0 -1
  310. package/dist/Spinner-D8tWqg9j.js +0 -31
  311. package/dist/chunk-SZQXB3JV-D0XG4Tlp.js.map +0 -1
  312. package/dist/components-MNvdQLv1.js.map +0 -1
  313. package/dist/dist-2TKCXdYZ.js.map +0 -1
  314. package/dist/react.esm-CzIhAqlo.js.map +0 -1
  315. package/dist/test-DQruvi8i.js.map +0 -1
  316. /package/dist/assets/favicon/{android-chrome-192x192.png → src/assets/favicon/android-chrome-192x192.png} +0 -0
  317. /package/dist/assets/favicon/{android-chrome-512x512.png → src/assets/favicon/android-chrome-512x512.png} +0 -0
  318. /package/dist/assets/favicon/{apple-touch-icon.png → src/assets/favicon/apple-touch-icon.png} +0 -0
  319. /package/dist/assets/favicon/{favicon-16x16.png → src/assets/favicon/favicon-16x16.png} +0 -0
  320. /package/dist/assets/favicon/{favicon-32x32.png → src/assets/favicon/favicon-32x32.png} +0 -0
  321. /package/dist/assets/favicon/{favicon.ico → src/assets/favicon/favicon.ico} +0 -0
  322. /package/dist/assets/favicon/{favicon.svg → src/assets/favicon/favicon.svg} +0 -0
  323. /package/dist/assets/favicon/{site.webmanifest → src/assets/favicon/site.webmanifest} +0 -0
  324. /package/dist/assets/fonts/{SourceSans3-Regular.otf.woff → src/assets/fonts/SourceSans3-Regular.otf.woff} +0 -0
  325. /package/dist/assets/fonts/{SourceSans3-Regular.otf.woff2 → src/assets/fonts/SourceSans3-Regular.otf.woff2} +0 -0
  326. /package/dist/assets/fonts/{SourceSans3-Semibold.otf.woff → src/assets/fonts/SourceSans3-Semibold.otf.woff} +0 -0
  327. /package/dist/assets/fonts/{SourceSans3-Semibold.otf.woff2 → src/assets/fonts/SourceSans3-Semibold.otf.woff2} +0 -0
  328. /package/dist/assets/{fonts.css → src/css/fonts.css} +0 -0
  329. /package/dist/assets/{globals.css → src/css/globals.css} +0 -0
  330. /package/dist/assets/{variables.css → src/css/variables.css} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-BzxAULjf.js","names":["m","c","l","p","a","f","d","e","o","n","i","r","s","t","r","e","s","t","f","c","e","n","r","i","g","i","a","r","n","t","o","e","C","mt","g","p","ft","vt","Ct","f","q","Q","l","y","x","D","N","w","T","E","F","O","P","A","d","S","M","I","b","K","k","J","m","L","W","R","z","gt","X","a","c","u","Y","B","pt","h","G","V","j","H","U","Z","$","e","et","n","r","o","nt","rt","ot","it","i","st","at","ct","ut","t","lt","dt","v","s","n","i","w","c","a","d","l","u","v","t","o","p","r","x","h","E","f","m","b","e","m","t","i","r","n","o","l","b","a","s","E","e","d","c","u","l","m","y","C","d","n","o","r","o","i","e","l","i","s","e","o","n","r","t","o","i","t","e","r","r","i","o","e","k","x","v","S","o","d","p","h","u","c","f","i","e","a","t","s","r","t","e","o","r","r","l","t","u","e","c","a","n","s","i","t"],"sources":["../src/components/CheckboxTree/CheckboxTree.module.css","../src/components/CheckboxTree/CheckboxTree.tsx","../src/components/FormInput/FormInput.module.css","../src/components/FormInput/FormInput.tsx","../src/components/MultiSelect/components/MultiSelectHeader.tsx","../src/components/MultiSelect/MultiSelect.tsx","../src/components/PeriodSelector/PeriodSelector.module.css","../src/components/PeriodSelector/PeriodSelector.tsx","../src/components/RadioTabSelector/RadioTabSelector.module.css","../src/components/RadioTabSelector/RadioTabSelector.tsx","../node_modules/@lexical/react/LexicalComposer.prod.mjs","../node_modules/@lexical/react/LexicalReactProviderExtension.prod.mjs","../node_modules/@lexical/text/LexicalText.prod.mjs","../node_modules/@lexical/dragon/LexicalDragon.prod.mjs","../node_modules/@lexical/rich-text/LexicalRichText.prod.mjs","../node_modules/@lexical/react/LexicalRichTextPlugin.prod.mjs","../node_modules/@lexical/react/LexicalContentEditable.prod.mjs","../node_modules/react-error-boundary/dist/react-error-boundary.js","../node_modules/@lexical/react/LexicalErrorBoundary.prod.mjs","../node_modules/@lexical/react/LexicalOnChangePlugin.prod.mjs","../node_modules/@lexical/react/LexicalListPlugin.prod.mjs","../node_modules/@lexical/react/LexicalLinkPlugin.prod.mjs","../node_modules/@lexical/react/LexicalClickableLinkPlugin.prod.mjs","../node_modules/@lexical/history/LexicalHistory.prod.mjs","../node_modules/@lexical/react/LexicalHistoryPlugin.prod.mjs","../node_modules/@lexical/react/LexicalTablePlugin.prod.mjs","../node_modules/@lexical/react/LexicalEditorRefPlugin.prod.mjs","../src/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkForm.module.css","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.tsx","../src/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.tsx","../src/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.tsx","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.module.css","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.tsx","../src/components/RteEditor/Plugins/TablePlugin/TablePlugin.tsx","../src/components/RteEditor/EditorHeader/EditorHeader.module.css","../src/components/RteEditor/EditorHeader/EditorHeader.tsx","../src/components/RteEditor/RteEditor.tsx"],"sourcesContent":[".checkbox-tree__header {\n display: block;\n font-weight: var(--semibold);\n margin-bottom: 0.25rem;\n text-align: left;\n}\n\n.checkbox-tree__branch {\n list-style: none;\n user-select: none;\n}\n\n.checkbox-tree__branch[aria-expanded=\"false\"] {\n margin-bottom: 0.5rem;\n}\n\n.checkbox-tree__branch input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n\n.checkbox-tree__branch--icon {\n pointer-events: none;\n transform: rotate(0deg);\n transition: transform 300ms ease-out;\n}\n\n.checkbox-tree__branch--icon--expanded {\n transform: rotate(90deg);\n transition: transform 300ms ease-in;\n}\n\n.checkbox-tree__branch--formfield {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n}\n\n.checkbox-tree__leaves {\n display: none;\n flex-direction: column;\n gap: 0.5rem;\n list-style: none;\n margin: 0.5rem 0 0.5rem 1rem;\n user-select: none;\n}\n\n.checkbox-tree__leaves--expanded {\n display: flex;\n}\n\n.checkbox-tree__leaf {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0 0.5rem;\n margin-left: 1.5rem;\n user-select: none;\n}\n\n.checkbox-tree__leaf input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n","import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n",".form-input__container {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n}\n\n.form-input__container--label-left {\n align-items: flex-start;\n flex-direction: row;\n gap: 1rem;\n line-height: 2.5rem;\n}\n\n.form-input__container--label-left > label::after {\n line-height: 3.6;\n}\n\n.form-input__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n line-height: normal;\n}\n\n.form-input__input-feedback-container {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n line-height: 1.5;\n position: relative;\n width: 100%;\n}\n\n.form-input__input-container {\n display: flex;\n flex: 1;\n}\n\n.form-input__input {\n appearance: none;\n background-color: transparent;\n border: 1px solid;\n border-radius: 0.5rem;\n color: var(--color-uva-black);\n flex: 1;\n font-family: inherit;\n font-size: inherit;\n height: 2.75rem;\n min-height: 2.5rem;\n padding: 0 1rem;\n text-align: inherit;\n}\n\n.form-input__input::-webkit-outer-spin-button,\n.form-input__input::-webkit-inner-spin-button {\n margin: 0;\n}\n\n.form-input__input.not-valid {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Sets max length for the standard input */\n maxLength?: number;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValid = false,\n notValidatedText = '',\n onChange,\n maxLength,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={clsx(styles['form-input__input'], {\n [styles['not-valid']]: notValid,\n })}\n {...(maxLength ? { maxLength } : {})}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n","import styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Label } from 'components/Label';\nimport { Button } from 'components';\n\nexport interface MultiSelectHeaderProps {\n label: string;\n clearTrigger?: string;\n onClear?: () => void;\n}\n\nexport function MultiSelectHeader({ label, clearTrigger, onClear }: MultiSelectHeaderProps) {\n return (\n <header className={styles['multi-select__header']}>\n <Label htmlFor=\"multi-select-list\">{label}</Label>\n {clearTrigger && (\n <Button variant={'blank'} onClick={onClear}>\n {clearTrigger}\n </Button>\n )}\n </header>\n );\n}\n","import { clsx } from 'clsx';\n\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './MultiSelect.module.css';\n\nimport { MultiSelectItem } from 'components/MultiSelect/components/MultiSelectItem';\nimport { MultiSelectHeader } from 'components/MultiSelect/components/MultiSelectHeader';\n\nexport interface MultiSelectProps {\n /** `true` if the container should scroll on overflow; otherwise, `false` to resize the container to its contents. The default is `true`. */\n scrollable?: boolean;\n /** `true` to disable the border around the container; otherwise, `false`. The default is `false`. */\n noBorder?: boolean;\n /** The header contents. */\n header?: ReactNode;\n}\n\n/** Represents a component to list a number of checkboxes. */\nexport const MultiSelect = ({ scrollable = true, noBorder, header, children }: PropsWithChildren<MultiSelectProps>) => (\n <>\n {header}\n <div\n className={clsx(styles['multi-select'], {\n [styles['multi-select--no-border']]: noBorder,\n })}\n >\n <ul\n className={clsx(styles['multi-select__list'], {\n [styles['multi-select__list--scrollable']]: scrollable,\n })}\n id=\"multi-select-list\"\n >\n {children}\n </ul>\n </div>\n </>\n);\n\nMultiSelect.MultiSelectHeader = MultiSelectHeader;\nMultiSelect.MultiSelectItem = MultiSelectItem;\n",".period-selector__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.period-selector__container--label-left {\n flex-direction: row;\n gap: 1rem;\n align-items: baseline;\n}\n\n.period-selector__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-row {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n","import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValid={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n",".radio-tab-selector-button-bar__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.radio-tab-selector-button-bar__container--label-left {\n align-items: baseline;\n flex-direction: row;\n gap: 1rem;\n}\n\n.radio-tab-selector-button-bar__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row {\n align-items: center;\n background-color: var(--color-uva-white);\n border: 1px solid var(--color-grey-700);\n border-radius: 0.5rem;\n display: flex;\n flex-wrap: nowrap;\n gap: 0.25rem;\n padding: 0.25rem;\n}\n\n.radio-tab-selector-button-bar__row--not-validated {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\r\nimport { useState } from 'react';\r\n\r\nimport type { ChangeEvent } from 'react';\r\nimport type { IconProps } from 'components';\r\n\r\nimport styles from './RadioTabSelector.module.css';\r\n\r\nimport { ControlsButton, FeedbackBox, Label } from 'components';\r\n\r\ntype ButtonProps = {\r\n label: string;\r\n value: string;\r\n iconName?: IconProps['name'];\r\n disabled?: boolean;\r\n};\r\n\r\nexport interface RadioTabSelectorProps {\r\n /** array with button objects with label, value and optional iconName or disabled-state */\r\n buttons: ButtonProps[];\r\n /** name of the radiogroup */\r\n radioGroupName: string;\r\n /** innitial value */\r\n defaultValue?: string;\r\n /** label takst */\r\n label?: string;\r\n /** 'top' | 'left' */\r\n labelPosition?: 'top' | 'left';\r\n /** show red star */\r\n required?: boolean;\r\n /** error text to display if set */\r\n notValidatedText?: string;\r\n /** The callback function that is invoked when the radio tab selector changes value. */\r\n onSetValue: (value: string | null) => void;\r\n}\r\n\r\nexport const RadioTabSelector = ({\r\n buttons,\r\n radioGroupName,\r\n defaultValue,\r\n label,\r\n labelPosition = 'top',\r\n required = false,\r\n notValidatedText = '',\r\n onSetValue,\r\n}: RadioTabSelectorProps) => {\r\n const [currentValue, setCurrentValue] = useState<string | null>(defaultValue || null);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n setCurrentValue(event.target.value);\r\n onSetValue(event.target.value);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\r\n styles['radio-tab-selector-button-bar__container'],\r\n styles[`radio-tab-selector-button-bar__container--label-${labelPosition}`]\r\n )}\r\n >\r\n {label && (\r\n <Label htmlFor=\"\" required={required}>\r\n {label}\r\n </Label>\r\n )}\r\n <div className={styles['radio-tab-selector-button-bar__row-container']}>\r\n <div\r\n className={clsx(styles['radio-tab-selector-button-bar__row'], {\r\n [styles['radio-tab-selector-button-bar__row--not-validated']]: notValidatedText,\r\n })}\r\n >\r\n {buttons.map(({ label, value, iconName, disabled }) => (\r\n <ControlsButton\r\n type=\"radio\"\r\n name={radioGroupName}\r\n key={`${value}`}\r\n label={label}\r\n value={value}\r\n iconName={iconName}\r\n checked={currentValue === value}\r\n disabled={disabled}\r\n onSetValue={handleChange}\r\n />\r\n ))}\r\n </div>\r\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{createLexicalComposerContext as e,LexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEditor as o,$getRoot as n,$createParagraphNode as i,$getSelection as r,HISTORY_MERGE_TAG as a}from\"lexical\";import{useLayoutEffect as c,useEffect as l,useMemo as d}from\"react\";import{jsx as s}from\"react/jsx-runtime\";const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,u=m?c:l,p={tag:a};function f({initialConfig:a,children:c}){const l=d(()=>{const{theme:t,namespace:c,nodes:l,onError:d,editorState:s,html:u}=a,f=e(null,t),E=o({editable:a.editable,html:u,namespace:c,nodes:l,onError:e=>d(e,E),theme:t});return function(e,t){if(null===t)return;if(void 0===t)e.update(()=>{const t=n();if(t.isEmpty()){const o=i();t.append(o);const n=m?document.activeElement:null;(null!==r()||null!==n&&n===e.getRootElement())&&o.select()}},p);else if(null!==t)switch(typeof t){case\"string\":{const o=e.parseEditorState(t);e.setEditorState(o,p);break}case\"object\":e.setEditorState(t,p);break;case\"function\":e.update(()=>{n().isEmpty()&&t(e)},p)}}(E,s),[E,f]},[]);return u(()=>{const e=a.editable,[t]=l;t.setEditable(void 0===e||e)},[]),s(t.Provider,{value:l,children:c})}export{f as LexicalComposer};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{defineExtension as e}from\"lexical\";const r=e({name:\"@lexical/react/ReactProvider\"});export{r as ReactProviderExtension};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from\"lexical\";function s(){return t().getTextContent()}function f(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),\"\"===n}function u(t,e){return()=>f(t,e)}function c(o){if(!f(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function a(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function d(t,...e){const n=new URL(\"https://lexical.dev/docs/error\"),r=new URLSearchParams;r.append(\"code\",t);for(const t of e)r.append(\"v\",t);throw n.search=r.toString(),Error(`Minified Lexical error #${t}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function x(t,e,n,r){const s=t=>t instanceof n,f=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,t=>{if(!t.isSimpleText())return;let n,o=t.getPreviousSibling(),l=t.getTextContent(),u=t;if(i(o)){const n=o.getTextContent(),r=e(n+l);if(s(o)){if(null===r||0!==(t=>t.getLatest().__mode)(o))return void f(o);{const e=r.end-n.length;if(e>0){const r=n+l.slice(0,e);if(o.select(),o.setTextContent(r),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===r||r.start<n.length)return}let c=0;for(;;){n=e(l);let t,g=null===n?\"\":l.slice(n.end);if(l=g,\"\"===g){const t=u.getNextSibling();if(i(t)){g=u.getTextContent()+t.getTextContent();const n=e(g);if(null===n)return void(s(t)?f(t):t.markDirty());if(0!==n.start)return}}if(null===n)return;if(0===n.start&&i(o)&&o.isTextEntity()){c+=n.end;continue}0===n.start?[t,u]=u.splitText(n.end):[,t,u]=u.splitText(n.start+c,n.end+c),void 0===t&&d(165,\"nodeToReplace\");const a=r(t);if(a.setFormat(t.getFormat()),t.replace(a),null==u)return;c=0,o=a}}),t.registerNodeTransform(n,t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void f(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(f(o),f(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(f(l),s(t)&&f(t))})]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,a as $findTextIntersectionFromCharacters,f as $isRootTextContentEmpty,u as $isRootTextContentEmptyCurry,s as $rootTextContent,x as registerLexicalTextEntity};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{effect as e,namedSignals as t}from\"@lexical/extension\";import{defineExtension as n,safeCast as o,$getSelection as i,$isRangeSelection as a,$isTextNode as r}from\"lexical\";function s(e){const t=window.location.origin,n=n=>{if(n.origin!==t)return;const o=e.getRootElement();if(document.activeElement!==o)return;const s=n.data;if(\"string\"==typeof s){let t;try{t=JSON.parse(s)}catch(e){return}if(t&&\"nuanria_messaging\"===t.protocol&&\"request\"===t.type){const o=t.payload;if(o&&\"makeChanges\"===o.functionId){const t=o.args;if(t){const[o,s,d,c,g]=t;e.update(()=>{const e=i();if(a(e)){const t=e.anchor;let i=t.getNode(),a=0,l=0;if(r(i)&&o>=0&&s>=0&&(a=o,l=o+s,e.setTextNodeRange(i,a,i,l)),a===l&&\"\"===d||(e.insertRawText(d),i=t.getNode()),r(i)){a=c,l=c+g;const t=i.getTextContentSize();a=a>t?t:a,l=l>t?t:l,e.setTextNodeRange(i,a,i,l)}n.stopImmediatePropagation()}})}}}}};return window.addEventListener(\"message\",n,!0),()=>{window.removeEventListener(\"message\",n,!0)}}const d=n({build:(e,n,o)=>t(n),config:o({disabled:\"undefined\"==typeof window}),name:\"@lexical/dragon\",register:(t,n,o)=>e(()=>o.getOutput().disabled.value?void 0:s(t))});export{d as DragonExtension,s as registerDragonSupport};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$insertDataTransferForRichText as t,$handleRichTextDrop as e,setLexicalClipboardDataTransfer as n,$getClipboardDataFromSelection as r,$writeDragSourceToDataTransfer as o,copyToClipboard as i}from\"@lexical/clipboard\";import{DragonExtension as s}from\"@lexical/dragon\";import{$isParentRTL as a,$shouldOverrideDefaultCharacterSelection as c,$moveCharacter as u}from\"@lexical/selection\";import{mergeRegister as l,$findMatchingParent as d,$handleIndentAndOutdent as m,objectKlassEquals as f,addClassNamesToElement as g,isHTMLElement as p,$getNearestBlockElementAncestorOrThrow as h}from\"@lexical/utils\";import{createCommand as C,defineExtension as v,CLICK_COMMAND as y,$getSelection as x,$isNodeSelection as D,COMMAND_PRIORITY_EDITOR as _,DELETE_CHARACTER_COMMAND as N,$isRangeSelection as w,DELETE_WORD_COMMAND as T,DELETE_LINE_COMMAND as E,CONTROLLED_TEXT_INSERTION_COMMAND as F,REMOVE_TEXT_COMMAND as O,FORMAT_TEXT_COMMAND as P,FORMAT_ELEMENT_COMMAND as A,$isElementNode as S,INSERT_LINE_BREAK_COMMAND as M,INSERT_PARAGRAPH_COMMAND as I,INSERT_TAB_COMMAND as b,$createTabNode as K,$insertNodes as k,INDENT_CONTENT_COMMAND as J,OUTDENT_CONTENT_COMMAND as L,KEY_ARROW_UP_COMMAND as W,$getAdjacentNode as R,$isDecoratorNode as q,KEY_ARROW_DOWN_COMMAND as z,KEY_ARROW_LEFT_COMMAND as X,KEY_ARROW_RIGHT_COMMAND as Y,KEY_BACKSPACE_COMMAND as B,KEY_DELETE_COMMAND as G,KEY_ENTER_COMMAND as V,KEY_ESCAPE_COMMAND as j,DROP_COMMAND as H,$getNearestNodeFromDOMNode as Q,$createRangeSelection as U,$isTextNode as Z,$normalizeSelection__EXPERIMENTAL as $,$setSelection as tt,DRAGSTART_COMMAND as et,DRAGOVER_COMMAND as nt,SELECT_ALL_COMMAND as rt,$selectAll as ot,COPY_COMMAND as it,CUT_COMMAND as st,PASTE_COMMAND as at,isDOMNode as ct,isSelectionCapturedInDecoratorInput as ut,KEY_SPACE_COMMAND as lt,KEY_TAB_COMMAND as dt,ElementNode as mt,$createParagraphNode as ft,$getRoot as gt,$isRootNode as pt,PASTE_TAG as ht,setNodeIndentFromDOM as Ct,$applyNodeReplacement as vt}from\"lexical\";function yt(t,e){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(t,e);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if(\"undefined\"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(t,e);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const xt=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Dt=xt&&\"documentMode\"in document?document.documentMode:null,_t=xt&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),Nt=!(!xt||!(\"InputEvent\"in window)||Dt)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),wt=xt&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Tt=xt&&/Android/.test(navigator.userAgent),Et=xt&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent)&&!Tt,Ft=xt&&/^(?=.*Chrome).*/i.test(navigator.userAgent),Ot=xt&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&_t&&!Ft,Pt=C(\"DRAG_DROP_PASTE_FILE\");class At extends mt{static getType(){return\"quote\"}static clone(t){return new At(t.__key)}createDOM(t){const e=document.createElement(\"blockquote\");return g(e,t.theme.quote),e}updateDOM(t,e){return!1}static importDOM(){return{blockquote:t=>({conversion:kt,priority:0})}}exportDOM(t){const{element:e}=super.exportDOM(t);if(p(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return St().updateFromJSON(t)}insertNewAfter(t,e){const n=ft(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){const t=ft();return this.getChildren().forEach(e=>t.append(e)),this.replace(t),!0}canMergeWhenEmpty(){return!0}}function St(){return vt(new At)}function Mt(t){return t instanceof At}class It extends mt{__tag;static getType(){return\"heading\"}static clone(t){return new It(t.__tag,t.__key)}afterCloneFrom(t){super.afterCloneFrom(t),this.__tag=t.__tag}constructor(t=\"h1\",e){super(e),this.__tag=t}getTag(){return this.getLatest().__tag}setTag(t){const e=this.getWritable();return e.__tag=t,e}createDOM(t){const e=this.__tag,n=document.createElement(e),r=t.theme.heading;if(void 0!==r){const t=r[e];g(n,t)}return n}updateDOM(t,e,n){return t.__tag!==this.__tag}static importDOM(){return{h1:t=>({conversion:Kt,priority:0}),h2:t=>({conversion:Kt,priority:0}),h3:t=>({conversion:Kt,priority:0}),h4:t=>({conversion:Kt,priority:0}),h5:t=>({conversion:Kt,priority:0}),h6:t=>({conversion:Kt,priority:0}),p:t=>{const e=t.firstChild;return null!==e&&bt(e)?{conversion:()=>({node:null}),priority:3}:null},span:t=>bt(t)?{conversion:t=>({node:Jt(\"h1\")}),priority:3}:null}}exportDOM(t){const{element:e}=super.exportDOM(t);if(p(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return Jt(t.tag).updateFromJSON(t)}updateFromJSON(t){return super.updateFromJSON(t).setTag(t.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(t,e=!0){const n=t?t.anchor.offset:0,r=this.getLastDescendant(),o=!r||t&&t.anchor.key===r.getKey()&&n===r.getTextContentSize()||!t?ft():Jt(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,e),0===n&&!this.isEmpty()&&t){const t=ft();t.select(),this.replace(t,!0)}return o}collapseAtStart(){const t=this.isEmpty()?ft():Jt(this.getTag());return this.getChildren().forEach(e=>t.append(e)),this.replace(t),!0}extractWithChild(){return!0}}function bt(t){return\"span\"===t.nodeName.toLowerCase()&&\"26pt\"===t.style.fontSize}function Kt(t){const e=t.nodeName.toLowerCase();let n=null;return\"h1\"!==e&&\"h2\"!==e&&\"h3\"!==e&&\"h4\"!==e&&\"h5\"!==e&&\"h6\"!==e||(n=Jt(e),null!==t.style&&(Ct(t,n),n.setFormat(t.style.textAlign))),{node:n}}function kt(t){const e=St();return null!==t.style&&(e.setFormat(t.style.textAlign),Ct(t,e)),{node:e}}function Jt(t=\"h1\"){return vt(new It(t))}function Lt(t){return t instanceof It}function Wt(t){let e=null;if(f(t,DragEvent)?e=t.dataTransfer:f(t,ClipboardEvent)&&(e=t.clipboardData),null===e)return[!1,[],!1];const n=e.types,r=n.includes(\"Files\"),o=n.includes(\"text/html\")||n.includes(\"text/plain\");return[r,Array.from(e.files),o]}function Rt(t){const e=Q(t);return q(e)}function qt(t){for(const e of[\"lowercase\",\"uppercase\",\"capitalize\"])t.hasFormat(e)&&t.toggleFormat(e)}function zt(s){return l(s.registerCommand(y,t=>{const e=x();return!!D(e)&&(e.clear(),!0)},_),s.registerCommand(N,t=>{const e=x();return w(e)?(e.deleteCharacter(t),!0):!!D(e)&&(e.deleteNodes(),!0)},_),s.registerCommand(T,t=>{const e=x();return!!w(e)&&(e.deleteWord(t),!0)},_),s.registerCommand(E,t=>{const e=x();return!!w(e)&&(e.deleteLine(t),!0)},_),s.registerCommand(F,e=>{const n=x();if(\"string\"==typeof e)null!==n&&n.insertText(e);else{if(null===n)return!1;const r=e.dataTransfer;if(null!=r)t(r,n,s);else if(w(n)){const t=e.data;return t&&n.insertText(t),!0}}return!0},_),s.registerCommand(O,()=>{const t=x();return!!w(t)&&(t.removeText(),!0)},_),s.registerCommand(P,t=>{const e=x();return!!w(e)&&(e.formatText(t),!0)},_),s.registerCommand(A,t=>{const e=x();if(!w(e)&&!D(e))return!1;const n=e.getNodes();for(const e of n){const n=d(e,t=>S(t)&&!t.isInline());null!==n&&n.setFormat(t)}return!0},_),s.registerCommand(M,t=>{const e=x();return!!w(e)&&(e.insertLineBreak(t),!0)},_),s.registerCommand(I,()=>{const t=x();return!!w(t)&&(t.insertParagraph(),!0)},_),s.registerCommand(b,()=>{const t=K(),e=x();return w(e)&&(t.setFormat(e.format),t.setStyle(e.style)),k([t]),!0},_),s.registerCommand(J,()=>m(t=>{const e=t.getIndent();t.setIndent(e+1)}),_),s.registerCommand(L,()=>m(t=>{const e=t.getIndent();e>0&&t.setIndent(Math.max(0,e-1))}),_),s.registerCommand(W,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectPrevious(),!0}else if(w(e)){const n=R(e.focus,!0);if(!t.shiftKey&&q(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),t.preventDefault(),!0}return!1},_),s.registerCommand(z,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectNext(0,0),!0}else if(w(e)){if(function(t){const e=t.focus;return\"root\"===e.key&&e.offset===gt().getChildrenSize()}(e))return t.preventDefault(),!0;const n=R(e.focus,!1);if(!t.shiftKey&&q(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),t.preventDefault(),!0}return!1},_),s.registerCommand(X,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),a(n[0])?n[0].selectNext(0,0):n[0].selectPrevious(),!0}if(!w(e))return!1;if(c(e,!0)){const n=t.shiftKey;return t.preventDefault(),u(e,n,!0),!0}return!1},_),s.registerCommand(Y,t=>{const e=x();if(D(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),a(n[0])?n[0].selectPrevious():n[0].selectNext(0,0),!0}if(!w(e))return!1;const n=t.shiftKey;return!!c(e,!1)&&(t.preventDefault(),u(e,n,!1),!0)},_),s.registerCommand(B,t=>{if(Rt(t.target))return!1;const e=x();if(w(e)){if(function(t){if(!t.isCollapsed())return!1;const{anchor:e}=t;if(0!==e.offset)return!1;const n=e.getNode();if(pt(n))return!1;const r=h(n);return r.getIndent()>0&&(r.is(n)||n.is(r.getFirstDescendant()))}(e))return t.preventDefault(),s.dispatchCommand(L,void 0);if(wt&&\"ko-KR\"===navigator.language)return!1}else if(!D(e))return!1;return t.preventDefault(),s.dispatchCommand(N,!0)},_),s.registerCommand(G,t=>{if(Rt(t.target))return!1;const e=x();return!(!w(e)&&!D(e))&&(t.preventDefault(),s.dispatchCommand(N,!1))},_),s.registerCommand(V,t=>{const e=x();if(!w(e))return!1;if(qt(e),null!==t){if((wt||Et||Ot)&&Nt)return!1;if(t.preventDefault(),t.shiftKey)return s.dispatchCommand(M,!1)}return s.dispatchCommand(I,void 0)},_),s.registerCommand(j,()=>{const t=x();return!!w(t)&&(s.blur(),!0)},_),s.registerCommand(H,t=>{const[,n]=Wt(t);if(n.length>0){const e=yt(t.clientX,t.clientY);if(null!==e){const{offset:t,node:r}=e,o=Q(r);if(null!==o){const e=U();if(Z(o))e.anchor.set(o.getKey(),t,\"text\"),e.focus.set(o.getKey(),t,\"text\");else{const t=o.getParentOrThrow().getKey(),n=o.getIndexWithinParent()+1;e.anchor.set(t,n,\"element\"),e.focus.set(t,n,\"element\")}const n=$(e);tt(n)}s.dispatchCommand(Pt,n)}return t.preventDefault(),!0}return e(t,s)},_),s.registerCommand(et,t=>{const[e]=Wt(t),i=x();return!(e&&!w(i))&&(w(i)&&!i.isCollapsed()&&null!==t.dataTransfer&&(n(t.dataTransfer,r(i)),o(t.dataTransfer,s)),!0)},_),s.registerCommand(nt,t=>{const[e]=Wt(t),n=x();if(e&&!w(n))return!1;const r=yt(t.clientX,t.clientY);if(null!==r){const e=Q(r.node);q(e)&&t.preventDefault()}return!0},_),s.registerCommand(rt,()=>(ot(),!0),_),s.registerCommand(it,t=>(i(s,f(t,ClipboardEvent)?t:null),!0),_),s.registerCommand(st,t=>(async function(t,e){await i(e,f(t,ClipboardEvent)?t:null),e.update(()=>{const t=x();w(t)?t.removeText():D(t)&&t.getNodes().forEach(t=>t.remove())})}(t,s),!0),_),s.registerCommand(at,e=>{const[,n,r]=Wt(e);if(n.length>0&&!r)return s.dispatchCommand(Pt,n),!0;if(ct(e.target)&&ut(e.target))return!1;return null!==x()&&(function(e,n){e.preventDefault(),n.update(()=>{const r=x(),o=f(e,InputEvent)||f(e,KeyboardEvent)?null:e.clipboardData;null!=o&&null!==r&&t(o,r,n)},{tag:ht})}(e,s),!0)},_),s.registerCommand(lt,t=>{const e=x();return w(e)&&qt(e),!1},_),s.registerCommand(dt,t=>{const e=x();return w(e)&&qt(e),!1},_))}const Xt=v({conflictsWith:[\"@lexical/plain-text\"],dependencies:[s],name:\"@lexical/rich-text\",nodes:()=>[It,At],register:zt});export{Jt as $createHeadingNode,St as $createQuoteNode,Lt as $isHeadingNode,Mt as $isQuoteNode,Pt as DRAG_DROP_PASTE,It as HeadingNode,At as QuoteNode,Xt as RichTextExtension,Wt as eventFiles,zt as registerRichText};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useLexicalEditable as e}from\"@lexical/react/useLexicalEditable\";import{LexicalBuilder as t}from\"@lexical/extension\";import{ReactProviderExtension as o}from\"@lexical/react/ReactProviderExtension\";import{useLayoutEffect as n,useEffect as i,useState as c,useMemo as a,Suspense as l}from\"react\";import{flushSync as s,createPortal as u}from\"react-dom\";import{jsx as d,jsxs as f,Fragment as m}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as p}from\"@lexical/text\";import{mergeRegister as x}from\"@lexical/utils\";import{registerDragonSupport as E}from\"@lexical/dragon\";import{registerRichText as h}from\"@lexical/rich-text\";function g(r,...e){const t=new URL(\"https://lexical.dev/docs/error\"),o=new URLSearchParams;o.append(\"code\",r);for(const r of e)o.append(\"v\",r);throw t.search=o.toString(),Error(`Minified Lexical error #${r}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const y=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?n:i;function w({editor:r,ErrorBoundary:e}){return function(r,e){const[t,o]=c(()=>r.getDecorators());return y(()=>r.registerDecoratorListener(r=>{s(()=>{o(r)})}),[r]),i(()=>{o(r.getDecorators())},[r]),a(()=>{const o=[],n=Object.keys(t);for(let i=0;i<n.length;i++){const c=n[i],a=d(e,{onError:e=>r._onError(e),children:d(l,{fallback:null,children:t[c]})}),s=r.getElementByKey(c);null!==s&&o.push(u(a,s,c))}return o},[e,t,r])}(r,e)}function v({editor:r,ErrorBoundary:e}){return function(r){const e=t.maybeFromEditor(r);if(e&&e.hasExtensionByName(o.name)){for(const r of[\"@lexical/plain-text\",\"@lexical/rich-text\"])e.hasExtensionByName(r)&&g(320,r);return!0}return!1}(r)?null:d(w,{editor:r,ErrorBoundary:e})}function B(r){return r.getEditorState().read(p(r.isComposing()))}function L({contentEditable:e,placeholder:t=null,ErrorBoundary:o}){const[n]=r();return function(r){y(()=>x(h(r),E(r)),[r])}(n),f(m,{children:[e,d(b,{content:t}),d(v,{editor:n,ErrorBoundary:o})]})}function b({content:t}){const[o]=r(),n=function(r){const[e,t]=c(()=>B(r));return y(()=>{function e(){const e=B(r);t(e)}return e(),x(r.registerUpdateListener(()=>{e()}),r.registerEditableListener(()=>{e()}))},[r]),e}(o),i=e();return n?\"function\"==typeof t?t(i):t:null}export{L as RichTextPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as i,forwardRef as a,useState as r,useCallback as n,useMemo as o}from\"react\";import{jsx as l,jsxs as d,Fragment as c}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as s}from\"@lexical/text\";import{mergeRegister as u}from\"@lexical/utils\";const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t:i;function f({editor:e,ariaActiveDescendant:t,ariaAutoComplete:i,ariaControls:a,ariaDescribedBy:d,ariaErrorMessage:c,ariaExpanded:s,ariaInvalid:u,ariaLabel:f,ariaLabelledBy:b,ariaMultiline:p,ariaOwns:x,ariaRequired:E,autoCapitalize:v,className:w,id:y,role:C=\"textbox\",spellCheck:g=!0,style:L,tabIndex:h,\"data-testid\":D,...I},R){const[k,q]=r(e.isEditable()),z=n(t=>{t&&t.ownerDocument&&t.ownerDocument.defaultView?e.setRootElement(t):e.setRootElement(null)},[e]),A=o(()=>function(...e){return t=>{for(const i of e)\"function\"==typeof i?i(t):null!=i&&(i.current=t)}}(R,z),[z,R]);return m(()=>(q(e.isEditable()),e.registerEditableListener(e=>{q(e)})),[e]),l(\"div\",{\"aria-activedescendant\":k?t:void 0,\"aria-autocomplete\":k?i:\"none\",\"aria-controls\":k?a:void 0,\"aria-describedby\":d,...null!=c?{\"aria-errormessage\":c}:{},\"aria-expanded\":k&&\"combobox\"===C?!!s:void 0,...null!=u?{\"aria-invalid\":u}:{},\"aria-label\":f,\"aria-labelledby\":b,\"aria-multiline\":p,\"aria-owns\":k?x:void 0,\"aria-readonly\":!k||void 0,\"aria-required\":E,autoCapitalize:v,className:w,contentEditable:k,\"data-testid\":D,id:y,ref:A,role:C,spellCheck:g,style:L,tabIndex:h,...I})}const b=a(f);function p(e){return e.getEditorState().read(s(e.isComposing()))}const x=a(E);function E(t,i){const{placeholder:a,...r}=t,[n]=e();return d(c,{children:[l(b,{editor:n,...r,ref:i}),null!=a&&l(v,{editor:n,content:a})]})}function v({content:e,editor:i}){const a=function(e){const[t,i]=r(()=>p(e));return m(()=>{function t(){const t=p(e);i(t)}return t(),u(e.registerUpdateListener(()=>{t()}),e.registerEditableListener(()=>{t()}))},[e]),t}(i),[n,o]=r(i.isEditable());if(t(()=>(o(i.isEditable()),i.registerEditableListener(e=>{o(e)})),[i]),!a)return null;let d=null;return\"function\"==typeof e?d=e(n):null!==e&&(d=e),null===d?null:l(\"div\",{\"aria-hidden\":!0,children:d})}export{x as ContentEditable,b as ContentEditableElement};\n","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{ErrorBoundary as r}from\"react-error-boundary\";import{jsx as o}from\"react/jsx-runtime\";function n({children:n,onError:e}){return o(r,{fallback:o(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"},children:\"An error was thrown.\"}),onError:e,children:n})}export{n as LexicalErrorBoundary};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{HISTORY_MERGE_TAG as t}from\"lexical\";import{useLayoutEffect as o,useEffect as i}from\"react\";const r=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?o:i;function n({ignoreHistoryMergeTagChange:o=!0,ignoreSelectionChange:i=!1,onChange:n}){const[a]=e();return r(()=>{if(n)return a.registerUpdateListener(({editorState:e,dirtyElements:r,dirtyLeaves:d,prevEditorState:s,tags:c})=>{i&&0===r.size&&0===d.size||o&&c.has(t)||s.isEmpty()||n(e,a,c)})},[a,o,i,n]),null}export{n as OnChangePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{registerList as r,ListNode as e,ListItemNode as o,registerListStrictIndentTransform as t}from\"@lexical/list\";import{useLexicalComposerContext as i}from\"@lexical/react/LexicalComposerContext\";import{mergeRegister as n}from\"lexical\";import{useEffect as s}from\"react\";function l({hasStrictIndent:l=!1,shouldPreserveNumbering:m=!1}){const[c]=i();return s(()=>{if(!c.hasNodes([e,o]))throw new Error(\"ListPlugin: ListNode and/or ListItemNode not registered on editor\")},[c]),s(()=>n(r(c,{restoreNumbering:m}),l?t(c):()=>{}),[c,l,m]),function(e){s(()=>r(e),[e])}(c),null}export{l as ListPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as r}from\"@lexical/extension\";import{LinkNode as t,registerLink as e}from\"@lexical/link\";import{useLexicalComposerContext as o}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function l({validateUrl:l,attributes:n}){const[a]=o();return i(()=>{if(!a.hasNodes([t]))throw new Error(\"LinkPlugin: LinkNode not registered on editor\")}),i(()=>e(a,r({attributes:n,validateUrl:l})),[a,l,n]),null}export{l as LinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as e}from\"@lexical/extension\";import{registerClickableLink as o}from\"@lexical/link\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function t({newTab:t=!0,disabled:l=!1}){const[n]=r();return i(()=>o(n,e({disabled:l,newTab:t})),[n,t,l]),null}export{t as ClickableLinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{effect as t,namedSignals as e,batch as n,getPeerDependencyFromEditor as r}from\"@lexical/extension\";import{mergeRegister as o}from\"@lexical/utils\";import{defineExtension as i,safeCast as a,configExtension as s,UNDO_COMMAND as d,COMMAND_PRIORITY_EDITOR as l,REDO_COMMAND as u,CLEAR_EDITOR_COMMAND as c,CLEAR_HISTORY_COMMAND as f,CAN_REDO_COMMAND as p,CAN_UNDO_COMMAND as h,COMPOSITION_START_TAG as m,HISTORIC_TAG as g,COMPOSITION_END_TAG as y,HISTORY_PUSH_TAG as S,HISTORY_MERGE_TAG as _,$isRangeSelection as k,$isTextNode as v,$isRootNode as x}from\"lexical\";function C(t,e,n,r,o){if(null===t||0===n.size&&0===r.size&&!o)return 0;const i=e._selection,a=t._selection;if(o)return 1;if(!(k(i)&&k(a)&&a.isCollapsed()&&i.isCollapsed()))return 0;const s=function(t,e,n){const r=t._nodeMap,o=[];for(const t of e){const e=r.get(t);void 0!==e&&o.push(e)}for(const[t,e]of n){if(!e)continue;const n=r.get(t);void 0===n||x(n)||o.push(n)}return o}(e,n,r);if(0===s.length)return 0;if(s.length>1){const n=e._nodeMap,r=n.get(i.anchor.key),o=n.get(a.anchor.key);return r&&o&&!t._nodeMap.has(r.__key)&&v(r)&&1===r.__text.length&&1===i.anchor.offset?2:0}const d=s[0],l=t._nodeMap.get(d.__key);if(!v(l)||!v(d)||l.__mode!==d.__mode)return 0;const u=l.__text,c=d.__text;if(u===c)return 0;const f=i.anchor,p=a.anchor;if(f.key!==p.key||\"text\"!==f.type)return 0;const h=f.offset,m=p.offset,g=c.length-u.length;return 1===g&&m===h-1?2:-1===g&&m===h+1?3:-1===g&&m===h?4:0}function b(t,e,n){let r=n(),o=0,i=r,a=0,s=null;return(d,l,u,c,f,p)=>{const h=n();if(p.has(m)&&(i=r,a=o,s=d),p.has(g))return o=0,r=h,2;p.has(y)&&s&&(r=i,o=a,d=s);const x=C(d,l,c,f,t.isComposing()),b=(()=>{const n=null===u||u.editor===t,i=p.has(S);if(!i&&n&&p.has(_))return 0;if(1===x)return 2;if(null===d)return 1;const a=l._selection;if(!(c.size>0||f.size>0))return null!==a?0:2;const s=\"number\"==typeof e?e:e.peek();if(!1===i&&0!==x&&x===o&&h<r+s&&n)return 0;if(1===c.size){if(function(t,e,n){const r=e._nodeMap.get(t),o=n._nodeMap.get(t),i=e._selection,a=n._selection;return!(k(i)&&k(a)&&\"element\"===i.anchor.type&&\"element\"===i.focus.type&&\"text\"===a.anchor.type&&\"text\"===a.focus.type||!v(r)||!v(o)||r.__parent!==o.__parent)&&JSON.stringify(e.read(()=>r.exportJSON()))===JSON.stringify(n.read(()=>o.exportJSON()))}(Array.from(c)[0],d,l))return 0}return 1})();return r=h,o=x,b}}function w(t){t.undoStack=[],t.redoStack=[],t.current=null}function E(t,e,n,r=Date.now){const i=b(t,n,r);return o(t.registerCommand(d,()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==r.length){const o=e.current,i=r.pop();null!==o&&(n.push(o),t.dispatchCommand(p,!0)),0===r.length&&t.dispatchCommand(h,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:g})}}(t,e),!0),l),t.registerCommand(u,()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==n.length){const o=e.current;null!==o&&(r.push(o),t.dispatchCommand(h,!0));const i=n.pop();0===n.length&&t.dispatchCommand(p,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:g})}}(t,e),!0),l),t.registerCommand(c,()=>(w(e),!1),l),t.registerCommand(f,()=>(w(e),t.dispatchCommand(p,!1),t.dispatchCommand(h,!1),!0),l),t.registerUpdateListener(({editorState:n,prevEditorState:r,dirtyLeaves:o,dirtyElements:a,tags:s})=>{const d=e.current,l=e.redoStack,u=e.undoStack,c=null===d?null:d.editorState;if(null!==d&&n===c)return;const f=i(r,n,d,o,a,s);if(1===f)0!==l.length&&(e.redoStack=[],t.dispatchCommand(p,!1)),null!==d&&(u.push({...d}),t.dispatchCommand(h,!0));else if(2===f)return;e.current={editor:t,editorState:n}}))}function M(){return{current:null,redoStack:[],undoStack:[]}}const O=i({build:(t,{delay:n,createInitialHistoryState:r,disabled:o,now:i})=>e({delay:n,disabled:o,historyState:r(t),now:i}),config:a({createInitialHistoryState:M,delay:300,disabled:\"undefined\"==typeof window,now:Date.now}),name:\"@lexical/history/History\",register:(e,n,r)=>{const o=r.getOutput();return t(()=>o.disabled.value?void 0:E(e,o.historyState.value,o.delay,()=>o.now.peek()()))}});const z=i({build:(t,{disabled:n,parentEditor:r})=>e({disabled:n,parentEditor:r||t._parentEditor}),config:a({disabled:!1,parentEditor:null}),dependencies:[s(O,{disabled:!0})],name:\"@lexical/history/SharedHistory\",register:(e,o,i)=>t(()=>{const{disabled:t,parentEditor:e}=i.getOutput();if(!t.value){const{output:t}=i.getDependency(O),o=function(t){return t?r(t,O.name):null}(e.value);if(!o)return;const a=o.output;n(()=>{t.delay.value=a.delay.value,t.historyState.value=a.historyState.value,t.now.value=a.now.value,t.disabled.value=a.disabled.value})}})});export{O as HistoryExtension,z as SharedHistoryExtension,M as createEmptyHistoryState,E as registerHistory};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEmptyHistoryState as o,registerHistory as r}from\"@lexical/history\";export{createEmptyHistoryState}from\"@lexical/history\";import{useMemo as e,useEffect as i}from\"react\";function a({delay:a,externalHistoryState:c}){const[l]=t();return function(t,a,c=1e3){const l=e(()=>a||o(),[a]);i(()=>r(t,l,c),[c,t,l])}(l,c,a),null}export{a as HistoryPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{signal as e}from\"@lexical/extension\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{$isScrollableTablesActive as o,setScrollableTablesActive as l,TableNode as t,registerTablePlugin as a,registerTableSelectionObserver as n,registerTableCellUnmergeTransform as s,TableCellNode as i}from\"@lexical/table\";import{useEffect as c,useState as u}from\"react\";function m({hasCellMerge:m=!0,hasCellBackgroundColor:f=!0,hasTabHandler:d=!0,hasHorizontalScroll:g=!1,hasNestedTables:p=!1}){const[x]=r();c(()=>{o(x)!==g&&(l(x,g),x.registerNodeTransform(t,()=>{})())},[x,g]);const C=function(r){const[o]=u(()=>e(r));o.peek()!==r&&(o.value=r);return o}(p);return c(()=>a(x,{hasNestedTables:C}),[x,C]),c(()=>n(x,d),[x,d]),c(()=>{if(!m)return s(x)},[x,m]),c(()=>{if(!f)return x.registerNodeTransform(i,e=>{null!==e.getBackgroundColor()&&e.setBackgroundColor(null)})},[x,f,m]),null}export{m as TablePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import*as e from\"react\";function o({editorRef:o}){const[r]=t();return e.useEffect(()=>{\"function\"==typeof o?o(r):\"object\"==typeof o&&null!==o&&(o.current=r)},[r]),null}export{o as EditorRefPlugin};\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { $getSelection, $isRangeSelection, $setSelection, KEY_DOWN_COMMAND, COMMAND_PRIORITY_LOW } from 'lexical';\nimport { mergeRegister } from '@lexical/utils';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { $getTableCellNodeFromLexicalNode } from '@lexical/table';\n\nimport type { JSX } from 'react';\nimport type { Actions } from 'components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu';\nimport type { TableMutation } from 'components/RteEditor/Plugins/TablePlugin/TablePlugin';\nimport type { SearchResponse } from 'components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { CourseCataloguePlugin } from 'components/RteEditor/Plugins/CourseCataloguePlugin';\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';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\nexport type Position = {\n xPos: number;\n yPos: number;\n height: number;\n};\n\ninterface ToolBarProps {\n editorScrollPosition: number;\n onCatalogueLinkSearch?: (query: string, linkType: 'course' | 'programme') => void;\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const ToolBarPlugin = ({\n editorScrollPosition,\n onCatalogueLinkSearch,\n catalogueSearchResponse,\n}: 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 setPosition(null);\n return;\n }\n\n const anchorNode = selection.anchor.getNode();\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (!tableCell) {\n setPosition(null);\n return;\n }\n\n const domNode = editor.getElementByKey(tableCell.getKey());\n if (!domNode) return;\n\n const rect = domNode.getBoundingClientRect();\n setPosition({\n xPos: rect.right,\n yPos: rect.bottom,\n height: rect.height,\n });\n }, [editor]);\n\n const handleTableAction = (action: Actions) => {\n tableref.current?.mutateTable(action);\n };\n\n const handleResizeScroll = useCallback(() => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const anchorNode = anchor.getNode();\n\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (tableCell) {\n $setSelection(null);\n setPosition(null);\n }\n }\n });\n }, [editor]);\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(updateToolbar);\n }),\n\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n () => {\n setScrollableContainers(handleResizeScroll);\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n removeScrollableContainers(handleResizeScroll);\n }\n\n if (rootElement) {\n setScrollableContainers(handleResizeScroll);\n }\n })\n );\n }, [editor, updateToolbar, handleResizeScroll]);\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 parentScrollPosition={editorScrollPosition} />\n {onCatalogueLinkSearch && catalogueSearchResponse && (\n <CourseCataloguePlugin\n parentScrollPosition={editorScrollPosition}\n onSearch={onCatalogueLinkSearch}\n searchResponse={catalogueSearchResponse}\n />\n )}\n <HistoryPlugin />\n </div>\n );\n};\n",".linkform {\n width: 26rem;\n}\n\n.linkform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.linkform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n\n.linkform__input-url-wrapper {\n align-items: center;\n display: flex;\n gap: 0.5rem;\n justify-content: flex-start;\n width: 100%;\n}\n\n.linkform__input-url-wrapper div {\n width: 100%;\n}\n\n.linkform__open-url-button {\n align-items: center;\n aspect-ratio: 1/1;\n background-color: var(--color-uva-white);\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n display: flex;\n height: 2.75rem;\n justify-content: center;\n width: 2.75rem;\n}\n\n.linkform__open-url-button:hover {\n background-color: var(--color-grey-400);\n border: 1px solid var(--color-grey-700);\n}\n\n.linkform__open-url-button:active {\n background-color: var(--color-uva-black);\n border: 1px solid var(--color-uva-black);\n color: var(--color-uva-white);\n}\n\n.editor__toolbar-button:active:hover {\n color: var(--color-uva-white);\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId } from 'react';\n\nimport type { ChangeEvent, JSX } from 'react';\nimport type { LinkType } from 'components/RteEditor/Plugins/LinkPlugin';\n\nimport styles from './AddLinkForm.module.css';\n\nimport { ensureHttps, validateUrlWithProtocol } from 'components/RteEditor/Plugins/LinkPlugin/helpers';\nimport { Button, FeedbackBox, FormField, Icon, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface AddLinkFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (url: string, linktext: string) => void;\n isLink: LinkType;\n}\n\nexport interface addLinkFormMethods {\n clearForm: () => void;\n focusFirstField: () => void;\n setDefaults: (url: string, linktext: string) => void;\n}\n\nexport const AddLinkForm = forwardRef(\n (\n { onCloseHandler, onSaveHandler, isLink = { active: false, url: '', linktext: '' } }: AddLinkFormProps,\n ref\n ): JSX.Element => {\n const t = useTranslation();\n const [url, setUrl] = useState<string>(isLink.url || '');\n const [linkText, setLinkText] = useState<string>(isLink.linktext || '');\n const [showLinktextField, setShowLinktextField] = useState<boolean>(false);\n const [urlError, setUrlError] = useState<string | null>(null);\n const [linkTextError, setLinkTextError] = useState<string | null>(null);\n const firstField = useRef<HTMLInputElement>(null);\n const linkId = `link_${useId()}`;\n const textId = `text_${useId()}`;\n\n const handleOpenUrl = () => {\n window.open(ensureHttps(url), '_blank');\n };\n\n const handleUrl = (event: ChangeEvent<HTMLInputElement>) => {\n setUrl(event.target.value);\n };\n\n const handleLinkText = (event: ChangeEvent<HTMLInputElement>) => {\n setLinkText(event.target.value);\n };\n\n const validateUrl = (url: string): boolean => {\n if (validateUrlWithProtocol(url) === false || url.trim() === '') {\n setUrlError(t.errortext.urlNotValid);\n return false;\n }\n setUrlError(null);\n return true;\n };\n\n const validateLinkText = (linkText: string): boolean => {\n if (linkText.trim() === '') {\n setLinkTextError(t.errortext.linkTextNotValid);\n return false;\n }\n setLinkTextError(null);\n return true;\n };\n\n const handleSave = () => {\n if (!validateUrl(url) || (showLinktextField && !validateLinkText(linkText))) {\n return;\n }\n\n onSaveHandler(url, linkText);\n resetForm();\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setUrl('');\n setShowLinktextField(false);\n setUrlError(null);\n setLinkTextError(null);\n };\n\n const setDefaults = (url: string, linktext: string) => {\n setUrl(url);\n if (!linktext && !url) {\n setShowLinktextField(true);\n }\n };\n\n const focusFirstField = () => {\n if (firstField.current) {\n firstField.current.focus();\n }\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField,\n setDefaults,\n }));\n\n return (\n <div className={styles['linkform']}>\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={linkId}>{t.links.linkLabel}</Label>\n <div className={styles['linkform__input-url-wrapper']}>\n <InputField\n id={linkId}\n placeholder={t.links.linkPlaceholder}\n value={url}\n onChange={(event) => handleUrl(event)}\n onFocus={() => setUrlError(null)}\n ref={firstField}\n aria-label={t.aria.labels.linkField}\n />\n {url && (\n <button type=\"button\" onClick={handleOpenUrl} className={styles['linkform__open-url-button']}>\n <Icon name=\"ArrowTopRightOnSquare\" size={20} />\n </button>\n )}\n </div>\n {urlError && <FeedbackBox level=\"error\" feedback={urlError} />}\n </FormField>\n {showLinktextField && (\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={textId}>{t.links.linkText}</Label>\n <InputField\n id={textId}\n value={linkText}\n onChange={(event) => handleLinkText(event)}\n onFocus={() => setLinkTextError(null)}\n aria-label={t.aria.labels.linkTextfield}\n />\n {linkTextError && <FeedbackBox level=\"error\" feedback={linkTextError} />}\n </FormField>\n )}\n <div className={styles['linkform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel} type=\"button\">\n {t.common.cancel}\n </Button>\n <Button variant={'primary'} onClick={handleSave} aria-label={t.aria.labels.linkOkButton} type=\"button\">\n {t.links.addLink}\n </Button>\n </div>\n </div>\n );\n }\n);\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $toggleLink, TOGGLE_LINK_COMMAND, LinkNode } from '@lexical/link';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n $createTextNode,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_CRITICAL,\n COMMAND_PRIORITY_LOW,\n KEY_DOWN_COMMAND,\n mergeRegister,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\n\nimport type { ElementNode, BaseSelection } from 'lexical';\nimport type { addLinkFormMethods } from './AddLinkForm/AddLinkFrom';\nimport type { linkFormMethods } from './LinkContextMenu/LinkContextMenu';\n\nimport { AddLinkForm } from './AddLinkForm/AddLinkFrom';\nimport { ensureHttps } from './helpers';\nimport { LinkContextMenu } from './LinkContextMenu/LinkContextMenu';\n\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nconst PREVENT_OPEN_DELAY = 200;\n\nexport interface LinkType {\n active: boolean;\n url: string;\n linktext: string;\n}\n\ntype Position = {\n top: number;\n left: number;\n};\n\ninterface LinkPluginProps {\n parentScrollPosition: number;\n}\n\nexport const LinkPlugin = ({ parentScrollPosition }: LinkPluginProps) => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addLinkForm = useRef<addLinkFormMethods>(undefined);\n const preventOpen = useRef(false);\n const previousLinkText = useRef('');\n const selectedText = useRef('');\n const [isLink, setIsLink] = useState<LinkType>({ active: false, url: '', linktext: '' });\n const isVisibleRef = useRef(isVisible);\n const storedSelection = useRef<BaseSelection | null>(null);\n const linkButtonRef = useRef<HTMLButtonElement>(null);\n const editLinkForm = useRef<linkFormMethods>(undefined);\n\n const storeCursorPosition = () => {\n editor.update(() => {\n const selection = $getSelection();\n storedSelection.current = selection;\n });\n };\n\n const rePositionCursor = () => {\n editor.update(() => {\n if (storedSelection.current) {\n $setSelection(storedSelection.current);\n }\n });\n };\n\n const openContextMenu = (url: string, position: Position) => {\n showFlyout({\n position,\n children: (\n <LinkContextMenu\n url={url}\n onSave={(url) => insertLink(url, '')}\n onDelete={() => removeLink()}\n onClose={closeContextMenu}\n ref={editLinkForm}\n />\n ),\n });\n };\n\n const closeContextMenu = () => {\n editLinkForm.current?.clearForm();\n hideFlyout();\n rePositionCursor();\n };\n\n const openFlyout = () => {\n const rect = linkButtonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n storeCursorPosition();\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n setTimeout(() => addLinkForm.current?.setDefaults('', selectedText.current), 0);\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n rePositionCursor();\n };\n\n const insertLink = (url: string, linktext: string) => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const linkNode = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (linktext && linktext !== '') {\n if (linkNode) {\n const newTextNode = $createTextNode(linktext);\n linkNode.replace(newTextNode);\n newTextNode.select();\n }\n if (linktext !== previousLinkText.current && previousLinkText.current === '') {\n const { anchor, focus } = selection;\n selection.insertText(linktext);\n anchor.offset -= linktext.length;\n focus.offset = anchor.offset + linktext.length;\n }\n }\n $toggleLink(ensureHttps(url), { target: '_blank' });\n }\n\n closeFlyout();\n });\n };\n\n const removeLink = (): void => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n closeContextMenu();\n };\n\n const flyoutOptions = {\n children: (\n <AddLinkForm\n isLink={isLink}\n onCloseHandler={closeFlyout}\n onSaveHandler={(url, linktext) => insertLink(url, linktext)}\n ref={addLinkForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addLinkForm.current?.clearForm();\n previousLinkText.current = selectedText.current = '';\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addLinkForm.current?.focusFirstField();\n }\n }, [addLinkForm, isVisible]);\n\n useEffect(() => {\n const handleSelectionClickOrChange = (selection: BaseSelection | null) => {\n if ($isRangeSelection(selection) && selection.isCollapsed()) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n const domNode = editor.getElementByKey(selection.anchor.getNode().getKey());\n const position = domNode\n ? { top: domNode.getBoundingClientRect().bottom, left: domNode.getBoundingClientRect().left }\n : { top: 0, left: 0 };\n openContextMenu(node.getURL(), position);\n return true;\n }\n }\n return false;\n };\n\n const unregisterSelect = editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n const selection = $getSelection();\n selectedText.current = selection?.getTextContent() ?? '';\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n const unregisterClick = editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n const selection = $getSelection();\n storeCursorPosition();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n return () => {\n unregisterClick();\n unregisterSelect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.key === 'U') {\n const selection = $getSelection();\n storeCursorPosition();\n\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n const openFlyoutWithDefaults = (url = '', linkText = '') => {\n openFlyout();\n setTimeout(() => addLinkForm.current?.setDefaults(url, linkText), 0);\n };\n\n if (node) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n previousLinkText.current = node.getTextContent();\n openFlyoutWithDefaults(node.getURL(), node.getTextContent());\n\n return true;\n }\n\n const selectedTextContent = selection.getTextContent();\n if (selectedTextContent !== '') {\n selectedText.current = selectedTextContent;\n openFlyoutWithDefaults('', selectedText.current);\n\n return true;\n }\n\n openFlyout();\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n setIsLink(\n editorState.read(() => {\n const selection = $getSelection();\n storeCursorPosition();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n return {\n active: true,\n url: node.getURL(),\n linktext: node.getTextContent(),\n };\n }\n }\n\n return {\n active: false,\n url: '',\n linktext: '',\n };\n })\n );\n });\n\n return () => {\n removeKeyboardShortcut();\n removeStatusListener();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n if (!isVisible) editLinkForm.current?.clearForm();\n }, [isVisible]);\n\n useEffect(() => {\n if (isVisible) {\n closeFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [parentScrollPosition]);\n\n useEffect(() => {\n if (!isLink.active) {\n hideFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLink]);\n\n const handleOnScroll = () => {\n hideFlyout();\n };\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n closeFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n prevRootElement.removeEventListener('scroll', handleOnScroll);\n }\n\n if (rootElement) {\n rootElement.addEventListener('scroll', handleOnScroll);\n }\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.links.linkTooltip}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--link`],\n isLink.active && styles['editor__toolbar-button--active']\n )}\n aria-label={t.aria.labels.link}\n aria-keyshortcuts={t.aria.keyshortcuts.link}\n type=\"button\"\n ref={linkButtonRef}\n >\n <Icon name=\"Link\" size={20} />\n </button>\n {flyout}\n </div>\n </div>\n );\n};\n","import { clsx } from 'clsx';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { CAN_UNDO_COMMAND, CAN_REDO_COMMAND, UNDO_COMMAND, REDO_COMMAND } from 'lexical';\nimport { useEffect, useState } from 'react';\n\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nexport const HistoryPlugin = () => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n\n const handleUndo = () => {\n editor.dispatchCommand(UNDO_COMMAND, undefined);\n };\n\n const handleRedo = () => {\n editor.dispatchCommand(REDO_COMMAND, undefined);\n };\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_UNDO_COMMAND,\n (payload) => {\n setCanUndo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_REDO_COMMAND,\n (payload) => {\n setCanRedo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <button\n onClick={handleUndo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--undo`])}\n aria-label={t.aria.labels.undo}\n aria-keyshortcuts={t.aria.keyshortcuts.undo}\n disabled={!canUndo}\n title={t.format.undoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepBack\" size={24} />\n </button>\n <button\n onClick={handleRedo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--redo`])}\n aria-label={t.aria.labels.redo}\n aria-keyshortcuts={t.aria.keyshortcuts.redo}\n disabled={!canRedo}\n title={t.format.redoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepForwards\" size={24} />\n </button>\n </div>\n );\n};\n",".tableform {\n width: 18rem;\n}\n\n.tableform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.tableform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId, useEffect } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from './AddTableFrom.module.css';\n\nimport { Button, FormField, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\ninterface AddTableFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (nrfOfRows: number, nrOfColumns: number) => void;\n}\n\nexport interface addTableForm {\n clearForm: () => void;\n focusFirstField: () => void;\n}\n\nexport const AddTableForm = forwardRef(({ onCloseHandler, onSaveHandler }: AddTableFormProps, ref) => {\n const t = useTranslation();\n const [rowCount, setRowCount] = useState<number>();\n const [columnCount, setColumnCount] = useState<number>();\n const firstField = useRef<HTMLInputElement>(null);\n const rowId = `row_${useId()}`;\n const columnId = `column_${useId()}`;\n\n const handleDimentionChange = (event: ChangeEvent<HTMLInputElement>, type: string) => {\n const value = event.target.value;\n type === 'row' ? setRowCount(parseInt(value)) : setColumnCount(parseInt(value));\n };\n\n const handleSave = () => {\n if (rowCount !== undefined && columnCount !== undefined) {\n onSaveHandler(rowCount, columnCount);\n resetForm();\n }\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setRowCount(undefined);\n setColumnCount(undefined);\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField: () => firstField.current?.focus(),\n }));\n\n useEffect(() => {\n const handleResizeScroll = () => {\n handleClose();\n };\n\n setScrollableContainers(handleResizeScroll);\n\n window.addEventListener('scroll', handleResizeScroll);\n window.addEventListener('resize', handleResizeScroll);\n\n return () => {\n window.removeEventListener('scroll', handleResizeScroll);\n window.removeEventListener('resize', handleResizeScroll);\n removeScrollableContainers(handleResizeScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div className={styles['tableform']}>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={rowId}>{t.table.nrofRows}</Label>\n <InputField\n id={rowId}\n placeholder={t.table.nrofRowsPlaceholder}\n value={rowCount ? rowCount : ''}\n onChange={(event) => handleDimentionChange(event, 'row')}\n aria-label={t.aria.labels.tableRowfield}\n ref={firstField}\n />\n </FormField>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={columnId}>{t.table.nrofColumns}</Label>\n <InputField\n id={columnId}\n placeholder={t.table.nrofColumnsPlaceholder}\n value={columnCount ? columnCount : ''}\n onChange={(event) => handleDimentionChange(event, 'column')}\n aria-label={t.aria.labels.tableColumnfield}\n />\n </FormField>\n <div className={styles['tableform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel}>\n {t.common.cancel}\n </Button>\n <Button\n variant={'primary'}\n onClick={handleSave}\n disabled={!rowCount || !columnCount}\n aria-label={t.aria.labels.tableOkButton}\n >\n {t.common.add}\n </Button>\n </div>\n </div>\n );\n});\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $getTableCellNodeFromLexicalNode, $isTableCellNode, TableCellNode } from '@lexical/table';\nimport {\n $getSelection,\n $isRangeSelection,\n $getRoot,\n KEY_DOWN_COMMAND,\n $isNodeSelection,\n COMMAND_PRIORITY_CRITICAL,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\nimport { useRef, useEffect, useImperativeHandle, forwardRef } from 'react';\n\nimport type { TableNode } from '@lexical/table';\nimport type { JSX } from 'react';\nimport type { TextNode } from 'lexical';\nimport type { addTableForm } from './AddTableFrom';\nimport type { Actions } from './TableCellContextMenu';\n\nimport { AddTableForm } from './AddTableFrom';\nimport {\n createTable,\n DEFAULT_COL_WIDTH,\n DEFAULT_EDITOR_WIDTH,\n deleteColumn,\n deleteRow,\n deleteTable,\n getEditorContentWidth,\n getEditorParrentCellWidth,\n insertColumn,\n insertRow,\n PREVENT_OPEN_DELAY,\n} from './helpers';\n\nimport { $createTableWrapperNode } from 'components/RteEditor/nodes';\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface TablePluginProps {\n isActive: boolean;\n}\nexport interface TableMutation {\n mutateTable: (type: Actions) => void;\n}\n\nexport const TablePlugin = forwardRef(({ isActive }: TablePluginProps, ref): JSX.Element => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addTableForm = useRef<addTableForm>(undefined);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const preventOpen = useRef(false);\n const isVisibleRef = useRef(isVisible);\n\n const openFlyout = () => {\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n };\n\n const insertTable = (nrOfRows: number, nrOfColumns: number) => {\n editor.update(() => {\n const selection = $getSelection();\n const tableNode = createTable(nrOfRows, nrOfColumns);\n\n const anchorNode =\n ($isRangeSelection(selection) && selection.anchor.getNode()) ||\n ($isNodeSelection(selection) && selection.getNodes()[0]) ||\n null;\n\n const willBeNested = anchorNode ? $getNearestNodeOfType(anchorNode, TableCellNode) : null;\n\n const availibleWidth = willBeNested\n ? getEditorParrentCellWidth(willBeNested, nrOfColumns, editor)\n : getEditorContentWidth(editor) || DEFAULT_EDITOR_WIDTH;\n\n const perCol = Math.max(DEFAULT_COL_WIDTH, Math.floor(availibleWidth / Math.max(1, nrOfColumns)));\n\n const colWidths = Array.from({ length: nrOfColumns }, () => perCol);\n\n (tableNode as TableNode).setColWidths(colWidths);\n\n const tableWrapper = $createTableWrapperNode();\n tableWrapper.append(tableNode);\n if ($isRangeSelection(selection)) {\n selection.insertNodes([tableWrapper]);\n } else {\n $getRoot().append(tableWrapper);\n }\n const firstDescendant = tableWrapper.getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n });\n\n closeFlyout();\n };\n\n const mutateTable = (action: Actions) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const currentNode = $getTableCellNodeFromLexicalNode(anchorNode);\n\n if ($isTableCellNode(currentNode)) {\n switch (action) {\n case 'insertRowAbove':\n case 'insertRowBelow':\n insertRow(currentNode, action);\n break;\n case 'deleteRow':\n deleteRow(currentNode);\n break;\n case 'insertColumnLeft':\n case 'insertColumnRight':\n insertColumn(currentNode, action);\n break;\n case 'deleteColumn':\n deleteColumn(currentNode);\n break;\n case 'deleteTable':\n deleteTable(currentNode);\n break;\n }\n }\n }\n });\n };\n\n const flyoutOptions = {\n children: (\n <AddTableForm\n onCloseHandler={closeFlyout}\n onSaveHandler={(rows, columns) => insertTable(rows, columns)}\n ref={addTableForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addTableForm.current?.clearForm();\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addTableForm.current?.focusFirstField();\n }\n }, [addTableForm, isVisible]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit9') {\n event.preventDefault();\n openFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n return () => {\n removeKeyboardShortcut();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n }, [isVisible]);\n\n useEffect(() => {\n const removeKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n event.stopPropagation();\n closeFlyout();\n }\n };\n\n document.addEventListener('keydown', removeKeydown, { capture: true });\n\n return () => {\n document.removeEventListener('keydown', removeKeydown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useImperativeHandle(ref, () => ({\n mutateTable,\n }));\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.table.tableTooltip}\n className={clsx(styles['editor__toolbar-button'], isActive && styles[`editor__toolbar-button--active`])}\n aria-label={t.aria.labels.table}\n aria-keyshortcuts={t.aria.keyshortcuts.table}\n ref={buttonRef}\n type=\"button\"\n >\n <Icon name=\"Table\" size={24} />\n </button>\n {flyout}\n </div>\n </div>\n );\n});\n",".editor-header__container {\n align-items: flex-start;\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-start;\n max-width: calc(100% - 5rem);\n}\n\n.editor-header__info {\n color: var(--color-grey-700);\n font-size: var(--font-size-text-non-essential);\n}\n","import { useId } from 'react';\n\nimport styles from './EditorHeader.module.css';\n\nimport { Label } from 'components';\n\ninterface EditorHeaderProps {\n label: string;\n info?: string;\n required?: boolean;\n}\n\nexport const EditorHeader = ({ label, info = '', required = false }: EditorHeaderProps) => {\n const infoId = `info_${useId()}`;\n\n return (\n <div className={styles['editor-header__container']}>\n {label !== '' && (\n <div>\n <Label htmlFor={infoId} required={required}>\n {label}\n </Label>\n </div>\n )}\n {info !== '' && <div className={styles['editor-header__info']} dangerouslySetInnerHTML={{ __html: info }} />}\n </div>\n );\n};\n","import { LexicalComposer } from '@lexical/react/LexicalComposer';\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable';\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { $getRoot, $insertNodes, $setSelection, createEditor } from 'lexical';\nimport { ListItemNode, ListNode } from '@lexical/list';\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin';\nimport { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';\nimport { AutoLinkNode, LinkNode } from '@lexical/link';\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table';\nimport { AutoLinkPlugin } from '@lexical/react/LexicalAutoLinkPlugin';\nimport { ClickableLinkPlugin } from '@lexical/react/LexicalClickableLinkPlugin';\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';\nimport { TablePlugin } from '@lexical/react/LexicalTablePlugin';\nimport { useEffect, useId, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { EditorRefPlugin } from '@lexical/react/LexicalEditorRefPlugin';\n\nimport type { RefObject } from 'react';\nimport type { EditorState, LexicalEditor } from 'lexical';\nimport type { SearchResponse } from './Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { exportMap, mergeBoldStrongTags, cleanUpTable } from './helpers';\nimport { MATCHERS, validateUrl } from './Plugins/LinkPlugin/helpers';\nimport styles from './RteEditor.module.css';\nimport { ToolBarPlugin, PasteHandlerPlugin, TableCellResizerPlugin } from './Plugins';\nimport { UvaTheme } from './UvaTheme';\nimport { EditorHeader } from './EditorHeader';\nimport { LanguageProvider, useLanguage } from './Providers/LanguageProvider';\nimport { useTranslation } from './hooks/useTranslation';\nimport { TableWrapperNode, CourseCatalogueNode, CourseCatalogueLinkPlugin } from './nodes';\n\nimport { FeedbackBox } from 'components/FeedbackBox';\n\nexport interface RteEditorProps {\n /** current language setting for the editor labels NOT title ans label */\n currentLanguage?: 'NL' | 'EN' | 'nl' | 'en';\n /** unique id mandatory for the rte */\n editorId: string;\n /** imported content to edit */\n initialValue?: string;\n /** placeholder text in current Language */\n placeholder?: string;\n /** label/title of the RTE in current Language */\n label?: string;\n /** explanation of the text to be filled in, in current Language */\n info?: string;\n /** 'true' the rte field mandatory */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if required and field is empty */\n notValidatedText?: string;\n /** max height in rem default = 20rem*/\n maxHeightInRem?: `${number}rem`;\n /** max number of words 'allowed' but not enforced */\n maxWords?: number;\n /** Ref to the Lexical editor instance */\n rteRef?: RefObject<LexicalEditor> | null;\n /** updated output */\n onChange: (content: string) => void;\n /** callback for catalogue link search */\n onCatalogueLinkSearch?: (query: string, type: 'course' | 'programme') => void;\n /** updated catalogue search results */\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const Rte = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxHeightInRem = '20rem',\n maxWords,\n rteRef = null,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => {\n const { switchLanguage } = useLanguage();\n const t = useTranslation();\n const [editor] = useState(() => createEditor());\n const [wordCount, setWordCount] = useState(0);\n const [scrollTopPosition, setScrollTopPosition] = useState(0);\n const rteId = useId();\n\n const initialConfig = {\n html: {\n export: exportMap,\n },\n namespace: `UvaRte-${editorId.replace(/\\s+/g, '-').toLowerCase()}`,\n editor,\n theme: UvaTheme,\n onError(error: Error) {\n throw error;\n },\n nodes: [\n ListNode,\n ListItemNode,\n LinkNode,\n AutoLinkNode,\n TableCellNode,\n TableRowNode,\n TableNode,\n TableWrapperNode,\n CourseCatalogueNode,\n ],\n editorState: (editor: LexicalEditor) => {\n const parser = new DOMParser();\n const dom = parser.parseFromString(initialValue, 'text/html');\n const nodes = $generateNodesFromDOM(editor, dom);\n const root = $getRoot();\n root.clear();\n $insertNodes(nodes);\n $setSelection(null);\n },\n };\n\n const getWordCount = (plainText: string): number => {\n if (plainText.trim().length === 0) {\n return 0;\n } else {\n return plainText.split(' ').length;\n }\n };\n\n const handleOnChange = (editorState: EditorState, editor: LexicalEditor): void => {\n editorState.read(() => {\n let htmlContent = '';\n setWordCount(getWordCount($getRoot().getTextContent().replace(/\\s+/g, ' ').trim()));\n htmlContent = mergeBoldStrongTags($generateHtmlFromNodes(editor));\n htmlContent = cleanUpTable(htmlContent);\n onChange(htmlContent);\n });\n };\n\n useEffect(() => {\n switchLanguage(currentLanguage.toUpperCase() as 'NL' | 'EN');\n }, [currentLanguage, switchLanguage]);\n\n useEffect(() => {\n const strippedInitialValue = initialValue\n .replace(/<br\\s*\\/?>|&nbsp;/gi, ' ')\n .replace(/<\\/?[^>]+(>|$)|&[a-z]+;/g, '')\n .replace(/\\s+/g, ' ')\n .trim();\n setWordCount(getWordCount(strippedInitialValue));\n }, [initialValue]);\n\n return (\n <div className={styles['editor__container']}>\n {(label || info || maxWords) && (\n <div className={styles['editor__header']}>\n <EditorHeader label={label} info={info} required={required} />\n {maxWords && maxWords > 0 && (\n <div className={styles['editor__header-word-count']}>\n <span className={clsx({ [styles['editor__header-word-count--alert']]: wordCount > maxWords })}>\n {wordCount}\n </span>\n &nbsp;/&nbsp;{maxWords}\n </div>\n )}\n </div>\n )}\n <div\n className={clsx(styles['editor'], {\n [styles['not-valid']]: notValid,\n })}\n >\n <LexicalComposer initialConfig={initialConfig}>\n <ToolBarPlugin\n editorScrollPosition={scrollTopPosition}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n <div className={styles['editor__field-wrapper']}>\n <RichTextPlugin\n contentEditable={\n <ContentEditable\n className={styles['editor__field']}\n aria-label={t.common.rteAriaLabel}\n aria-placeholder={placeholder}\n title={t.common.rteTitle}\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n spellCheck={false}\n id={`${rteId}_rteEditor`}\n style={{ height: `${maxHeightInRem}`, maxHeight: `${maxHeightInRem}` }}\n onScroll={(event) => setScrollTopPosition(event.currentTarget.scrollTop)}\n />\n }\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n ErrorBoundary={LexicalErrorBoundary}\n />\n <TablePlugin />\n <TableCellResizerPlugin />\n <HistoryPlugin />\n <ListPlugin />\n <LinkPlugin validateUrl={validateUrl} />\n <AutoLinkPlugin matchers={MATCHERS} />\n <ClickableLinkPlugin />\n <OnChangePlugin onChange={handleOnChange} />\n <PasteHandlerPlugin />\n <CourseCatalogueLinkPlugin />\n {rteRef && <EditorRefPlugin editorRef={rteRef} />}\n </div>\n </LexicalComposer>\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n );\n};\n\nexport const RteEditor = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxWords,\n rteRef,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => (\n <LanguageProvider>\n <Rte\n currentLanguage={currentLanguage.toUpperCase() as 'NL' | 'EN'}\n editorId={editorId}\n initialValue={initialValue}\n placeholder={placeholder}\n label={label}\n info={info}\n required={required}\n notValid={notValid}\n notValidatedText={notValidatedText}\n maxWords={maxWords}\n rteRef={rteRef}\n onChange={onChange}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n </LanguageProvider>\n);\n"],"x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"mappings":"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"}