@uva-glass/component-library 3.55.5 → 3.55.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/dist/Accordion-DvblEUVu.js.map +1 -1
  2. package/dist/AccordionCard-BXy-plB7.js.map +1 -1
  3. package/dist/ActionList-O9w1hqNg.js.map +1 -1
  4. package/dist/AddCatalogueLinkForm-rph4K9P0.js.map +1 -1
  5. package/dist/CheckboxButtonBar-5UMIFMKH.js.map +1 -1
  6. package/dist/ClipboardButton-geHjMl2J.js.map +1 -1
  7. package/dist/ControlsButton-B1XRpMUM.js.map +1 -1
  8. package/dist/CopyableText-DkyhZ6wk.js.map +1 -1
  9. package/dist/Drawer-e7UFHVg9.js.map +1 -1
  10. package/dist/EmptyStateDataDisplay-D0QiI8nE.js.map +1 -1
  11. package/dist/ExpandableInfoPanel-CnBVVNlJ.js.map +1 -1
  12. package/dist/FeedbackBar-ByKp32HE.js.map +1 -1
  13. package/dist/FieldHint-fxnEOsVZ.js.map +1 -1
  14. package/dist/Input-Bn-arMaC.js.map +1 -1
  15. package/dist/InputField-BWAy19w9.js.map +1 -1
  16. package/dist/{Lexical.prod-sbwgNRjw.js → Lexical.prod-CqPLSi0R.js} +1194 -1096
  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/LexicalComposerContext.prod-Ca-YN_fj.js.map +1 -1
  21. package/dist/{LexicalExtension.prod-jTSDl1mh.js → LexicalExtension.prod-CUQTgbur.js} +306 -289
  22. package/dist/LexicalExtension.prod-CUQTgbur.js.map +1 -0
  23. package/dist/{LexicalLink.prod-BKLNLyu8.js → LexicalLink.prod-DMhcqD9x.js} +209 -208
  24. package/dist/LexicalLink.prod-DMhcqD9x.js.map +1 -0
  25. package/dist/{LexicalList.prod-DEtc4lSr.js → LexicalList.prod-eYlcb5Ao.js} +208 -168
  26. package/dist/LexicalList.prod-eYlcb5Ao.js.map +1 -0
  27. package/dist/{LexicalTable.prod-CpIPDW6z.js → LexicalTable.prod-DlOxUQou.js} +787 -781
  28. package/dist/LexicalTable.prod-DlOxUQou.js.map +1 -0
  29. package/dist/LexicalUtils.prod-BqcriFWV.js +343 -0
  30. package/dist/LexicalUtils.prod-BqcriFWV.js.map +1 -0
  31. package/dist/{LinkContextMenu-CTkNPiIW.js → LinkContextMenu-ePn1iZ_z.js} +2 -2
  32. package/dist/{LinkContextMenu-CTkNPiIW.js.map → LinkContextMenu-ePn1iZ_z.js.map} +1 -1
  33. package/dist/MenuLink-Cm1yZO_5.js.map +1 -1
  34. package/dist/ModalDialog-N50NGnd4.js.map +1 -1
  35. package/dist/MultiSelectBox-Cuh_o-A1.js.map +1 -1
  36. package/dist/MultiSelectItem-BF5xRjz5.js.map +1 -1
  37. package/dist/Notification-CIhsHuF0.js.map +1 -1
  38. package/dist/OverlayStepBar-CjaoYdsh.js.map +1 -1
  39. package/dist/PageOverlay-S4xsqJha.js.map +1 -1
  40. package/dist/{PasteHandlerPlugin-YpQruA-w.js → PasteHandlerPlugin-BNp8ST0q.js} +5 -5
  41. package/dist/{PasteHandlerPlugin-YpQruA-w.js.map → PasteHandlerPlugin-BNp8ST0q.js.map} +1 -1
  42. package/dist/Periods-BYETtB6R.js.map +1 -1
  43. package/dist/ProgrammeCard-76gG7ksx.js.map +1 -1
  44. package/dist/RadioGroup-JeTjVp5B.js.map +1 -1
  45. package/dist/Slider-BlLyrET9.js.map +1 -1
  46. package/dist/SortableProvider-8HYiBXJS.js.map +1 -1
  47. package/dist/Spinner-BpElTDIu.js.map +1 -1
  48. package/dist/StatusPill-DM7n3I4W.js.map +1 -1
  49. package/dist/TableCellContextMenu-D0IMQr3E.js.map +1 -1
  50. package/dist/{TableCellResizerPlugin-Ceof6StD.js → TableCellResizerPlugin-Bc5y-Qbx.js} +37 -37
  51. package/dist/{TableCellResizerPlugin-Ceof6StD.js.map → TableCellResizerPlugin-Bc5y-Qbx.js.map} +1 -1
  52. package/dist/TextArea-CuASC9bX.js.map +1 -1
  53. package/dist/ToggleSwitch-C7z7JVtx.js.map +1 -1
  54. package/dist/Tooltip-D27p9kh4.js.map +1 -1
  55. package/dist/VarIndicator-C-GueOZD.js.map +1 -1
  56. package/dist/assets/{src/css/fonts.css → fonts.css} +4 -4
  57. package/dist/{chunk-DeC0fbbY.js → chunk-3e0lkp8x.js} +1 -1
  58. package/dist/{chunk-SZQXB3JV-KiB8lSa9.js → chunk-SZQXB3JV-D6GR5B4F.js} +2 -2
  59. package/dist/chunk-SZQXB3JV-D6GR5B4F.js.map +1 -0
  60. package/dist/{client-CHQ7u_QI.js → client-b7M3CmlC.js} +10 -10
  61. package/dist/{client-CHQ7u_QI.js.map → client-b7M3CmlC.js.map} +1 -1
  62. package/dist/clsx-BD2qMUU1.js.map +1 -1
  63. package/dist/components/Accordion/Accordion.stories.js.map +1 -1
  64. package/dist/components/Accordion/Accordion.test.js +3 -3
  65. package/dist/components/Accordion/Accordion.test.js.map +1 -1
  66. package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
  67. package/dist/components/AccordionCard/AccordionCard.test.js +3 -3
  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 -3
  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 -2
  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 -2
  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 -2
  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 -2
  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 -2
  89. package/dist/components/Buttons/LinkButton.test.js.map +1 -1
  90. package/dist/components/Buttons/MenuButton.js.map +1 -1
  91. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  92. package/dist/components/Buttons/MenuButton.stories.js.map +1 -1
  93. package/dist/components/Buttons/MenuButton.test.js +2 -2
  94. package/dist/components/Buttons/MenuButton.test.js.map +1 -1
  95. package/dist/components/Card/Card.stories.js.map +1 -1
  96. package/dist/components/Card/Card.test.js +2 -2
  97. package/dist/components/Card/Card.test.js.map +1 -1
  98. package/dist/components/Checkbox/Checkbox.stories.js +1 -1
  99. package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
  100. package/dist/components/Checkbox/Checkbox.test.js +3 -3
  101. package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
  102. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
  103. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
  104. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +2 -2
  105. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
  106. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  107. package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -3
  108. package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
  109. package/dist/components/CheckboxTree/index.js +1 -1
  110. package/dist/components/Chip/Chip.stories.js +1 -1
  111. package/dist/components/Chip/Chip.stories.js.map +1 -1
  112. package/dist/components/ControlsButton/ControlsButton.stories.js +1 -1
  113. package/dist/components/ControlsButton/ControlsButton.stories.js.map +1 -1
  114. package/dist/components/Drawer/Drawer.stories.js +1 -1
  115. package/dist/components/Drawer/Drawer.stories.js.map +1 -1
  116. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
  117. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -1
  118. package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
  119. package/dist/components/FeedbackBar/FeedbackBar.test.js +2 -2
  120. package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
  121. package/dist/components/FeedbackBox/FeedbackBox.stories.js.map +1 -1
  122. package/dist/components/FieldHint/FieldHint.stories.js.map +1 -1
  123. package/dist/components/Fieldset/Fieldset.stories.js.map +1 -1
  124. package/dist/components/FormField/FormField.stories.js.map +1 -1
  125. package/dist/components/FormInput/FormInput.js +1 -1
  126. package/dist/components/FormInput/FormInput.stories.js +2 -2
  127. package/dist/components/FormInput/FormInput.stories.js.map +1 -1
  128. package/dist/components/FormInput/index.js +1 -1
  129. package/dist/components/GridRow/GridRow.stories.js.map +1 -1
  130. package/dist/components/HorizontalList/HorizontalList.stories.js.map +1 -1
  131. package/dist/components/Icon/Icon.js.map +1 -1
  132. package/dist/components/Icon/Icon.stories.js.map +1 -1
  133. package/dist/components/IconButton/IconButton.stories.js +1 -1
  134. package/dist/components/IconButton/IconButton.stories.js.map +1 -1
  135. package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
  136. package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
  137. package/dist/components/Input/Input.stories.js.map +1 -1
  138. package/dist/components/InputField/InputField.stories.js +1 -1
  139. package/dist/components/InputField/InputField.stories.js.map +1 -1
  140. package/dist/components/Label/Label.stories.js.map +1 -1
  141. package/dist/components/Label/Label.test.js +2 -2
  142. package/dist/components/Label/Label.test.js.map +1 -1
  143. package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
  144. package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
  145. package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -1
  146. package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
  147. package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
  148. package/dist/components/ModalDialog/ModalDialog.stories.js +1 -1
  149. package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
  150. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  151. package/dist/components/MultiSelect/MultiSelect.stories.js +2 -2
  152. package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
  153. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  154. package/dist/components/MultiSelect/index.js +1 -1
  155. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
  156. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
  157. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +2 -2
  158. package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
  159. package/dist/components/Notification/Notification.stories.js +1 -1
  160. package/dist/components/Notification/Notification.stories.js.map +1 -1
  161. package/dist/components/Notification/Notification.test.js +2 -2
  162. package/dist/components/Notification/Notification.test.js.map +1 -1
  163. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +1 -1
  164. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
  165. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
  166. package/dist/components/PageOverlay/PageOverlay.stories.js +2 -2
  167. package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
  168. package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
  169. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
  170. package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
  171. package/dist/components/PeriodSelector/index.js +1 -1
  172. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
  173. package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
  174. package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
  175. package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
  176. package/dist/components/RadioGroup/Radiogroup.test.js +2 -2
  177. package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
  178. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  179. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
  180. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js.map +1 -1
  181. package/dist/components/RadioTabSelector/index.js +1 -1
  182. package/dist/components/Repeater/Repeater.stories.js.map +1 -1
  183. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  184. package/dist/components/RteEditor/EditorHeader/index.js +1 -1
  185. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +4 -4
  186. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -1
  187. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +25 -25
  188. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
  189. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
  190. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
  191. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  192. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  193. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
  194. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  195. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
  196. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +15 -15
  197. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
  198. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  199. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  200. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  201. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  202. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  203. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
  204. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +23 -23
  205. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
  206. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
  207. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
  208. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
  209. package/dist/components/RteEditor/Plugins/index.js +3 -3
  210. package/dist/components/RteEditor/Providers/LanguageProvider.js.map +1 -1
  211. package/dist/components/RteEditor/RteEditor.js +1 -1
  212. package/dist/components/RteEditor/RteEditor.stories.js +1 -1
  213. package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
  214. package/dist/components/RteEditor/helpers.js +6 -6
  215. package/dist/components/RteEditor/helpers.js.map +1 -1
  216. package/dist/components/RteEditor/hooks/useFlyout.js.map +1 -1
  217. package/dist/components/RteEditor/hooks/useTranslation.js.map +1 -1
  218. package/dist/components/RteEditor/index.js +1 -1
  219. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +12 -12
  220. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
  221. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +19 -19
  222. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
  223. package/dist/components/SearchField/SearchField.js.map +1 -1
  224. package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
  225. package/dist/components/SearchField/components/ResultsOption.js.map +1 -1
  226. package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
  227. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  228. package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
  229. package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
  230. package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
  231. package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
  232. package/dist/components/SelectListbox/components/SelectContainer.js.map +1 -1
  233. package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
  234. package/dist/components/SelectListbox/components/SelectOptionBox.js.map +1 -1
  235. package/dist/components/Slider/Slider.stories.js.map +1 -1
  236. package/dist/components/Sortable/Sortable.js.map +1 -1
  237. package/dist/components/Sortable/Sortable.stories.js +1 -1
  238. package/dist/components/Sortable/Sortable.stories.js.map +1 -1
  239. package/dist/components/Sortable/components/SortableHandle.js.map +1 -1
  240. package/dist/components/Sortable/components/SortableItem.js.map +1 -1
  241. package/dist/components/Sortable/sortableReducer.js.map +1 -1
  242. package/dist/components/Spinner/Spinner.stories.js.map +1 -1
  243. package/dist/components/StatusBadge/StatusBadge.stories.js.map +1 -1
  244. package/dist/components/StatusBadge/StatusBadge.test.js +2 -2
  245. package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
  246. package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
  247. package/dist/components/TextArea/TextArea.stories.js +1 -1
  248. package/dist/components/TextArea/TextArea.stories.js.map +1 -1
  249. package/dist/components/TextArea/TextArea.test.js +3 -3
  250. package/dist/components/TextArea/TextArea.test.js.map +1 -1
  251. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
  252. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js.map +1 -1
  253. package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
  254. package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
  255. package/dist/components/VarIndicator/VarIndicator.stories.js.map +1 -1
  256. package/dist/components/VarIndicator/VarIndicator.test.js +3 -3
  257. package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
  258. package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
  259. package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
  260. package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
  261. package/dist/components/hooks/useDebounce.js.map +1 -1
  262. package/dist/components/hooks/useOnClickOutside.js.map +1 -1
  263. package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
  264. package/dist/components/hooks/useResponsive.js.map +1 -1
  265. package/dist/components/index.js +1 -1
  266. package/dist/{components-DAwjkky5.js → components-BzxAULjf.js} +549 -549
  267. package/dist/components-BzxAULjf.js.map +1 -0
  268. package/dist/{dist-BIkFjHck.js → dist-V_v3kC0L.js} +3 -3
  269. package/dist/dist-V_v3kC0L.js.map +1 -0
  270. package/dist/{esm-ipAmzhQq.js → esm-BoujHjK5.js} +3 -3
  271. package/dist/{esm-ipAmzhQq.js.map → esm-BoujHjK5.js.map} +1 -1
  272. package/dist/{helpers-MNJmfDe_.js → helpers-B1VK8xTF.js} +2 -2
  273. package/dist/{helpers-MNJmfDe_.js.map → helpers-B1VK8xTF.js.map} +1 -1
  274. package/dist/index.js +1 -1
  275. package/dist/{lib-6BbFZdI7.js → lib-BvOQt8El.js} +2 -2
  276. package/dist/{lib-6BbFZdI7.js.map → lib-BvOQt8El.js.map} +1 -1
  277. package/dist/{react-18-Dwpebadr.js → react-18-DxAWL8_m.js} +3 -3
  278. package/dist/{react-18-Dwpebadr.js.map → react-18-DxAWL8_m.js.map} +1 -1
  279. package/dist/{react.esm-R7eBXTUI.js → react.esm-CweFe1CK.js} +5 -5
  280. package/dist/react.esm-CweFe1CK.js.map +1 -0
  281. package/dist/setupTests.js +4 -4
  282. package/dist/setupTests.js.map +1 -1
  283. package/dist/storybook__react.d.js +5 -5
  284. package/dist/storybook__react.d.js.map +1 -1
  285. package/dist/{test-Cr_l59hN.js → test-Pa9Lwbsq.js} +2 -2
  286. package/dist/test-Pa9Lwbsq.js.map +1 -0
  287. package/dist/{test-utils-BSs0eZfL.js → test-utils-Cmn06m_x.js} +2 -2
  288. package/dist/{test-utils-BSs0eZfL.js.map → test-utils-Cmn06m_x.js.map} +1 -1
  289. package/package.json +21 -20
  290. package/dist/Lexical.prod-sbwgNRjw.js.map +0 -1
  291. package/dist/LexicalClipboard.prod-DdImsyd1.js +0 -248
  292. package/dist/LexicalClipboard.prod-DdImsyd1.js.map +0 -1
  293. package/dist/LexicalExtension.prod-jTSDl1mh.js.map +0 -1
  294. package/dist/LexicalLink.prod-BKLNLyu8.js.map +0 -1
  295. package/dist/LexicalList.prod-DEtc4lSr.js.map +0 -1
  296. package/dist/LexicalTable.prod-CpIPDW6z.js.map +0 -1
  297. package/dist/LexicalUtils.prod-DjjGkphN.js +0 -360
  298. package/dist/LexicalUtils.prod-DjjGkphN.js.map +0 -1
  299. package/dist/chunk-SZQXB3JV-KiB8lSa9.js.map +0 -1
  300. package/dist/components-DAwjkky5.js.map +0 -1
  301. package/dist/dist-BIkFjHck.js.map +0 -1
  302. package/dist/react.esm-R7eBXTUI.js.map +0 -1
  303. package/dist/test-Cr_l59hN.js.map +0 -1
  304. /package/dist/assets/favicon/{src/assets/favicon/android-chrome-192x192.png → android-chrome-192x192.png} +0 -0
  305. /package/dist/assets/favicon/{src/assets/favicon/android-chrome-512x512.png → android-chrome-512x512.png} +0 -0
  306. /package/dist/assets/favicon/{src/assets/favicon/apple-touch-icon.png → apple-touch-icon.png} +0 -0
  307. /package/dist/assets/favicon/{src/assets/favicon/favicon-16x16.png → favicon-16x16.png} +0 -0
  308. /package/dist/assets/favicon/{src/assets/favicon/favicon-32x32.png → favicon-32x32.png} +0 -0
  309. /package/dist/assets/favicon/{src/assets/favicon/favicon.ico → favicon.ico} +0 -0
  310. /package/dist/assets/favicon/{src/assets/favicon/favicon.svg → favicon.svg} +0 -0
  311. /package/dist/assets/favicon/{src/assets/favicon/site.webmanifest → site.webmanifest} +0 -0
  312. /package/dist/assets/fonts/{src/assets/fonts/SourceSans3-Regular.otf.woff → SourceSans3-Regular.otf.woff} +0 -0
  313. /package/dist/assets/fonts/{src/assets/fonts/SourceSans3-Regular.otf.woff2 → SourceSans3-Regular.otf.woff2} +0 -0
  314. /package/dist/assets/fonts/{src/assets/fonts/SourceSans3-Semibold.otf.woff → SourceSans3-Semibold.otf.woff} +0 -0
  315. /package/dist/assets/fonts/{src/assets/fonts/SourceSans3-Semibold.otf.woff2 → SourceSans3-Semibold.otf.woff2} +0 -0
  316. /package/dist/assets/{src/css/globals.css → globals.css} +0 -0
  317. /package/dist/assets/{src/css/variables.css → variables.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.stories.js","names":[],"sources":["../../../src/components/RadioGroup/RadioGroup.stories.tsx"],"sourcesContent":["import { fn } from 'storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RadioGroupProps } from './RadioGroup';\n\nimport { RadioGroup } from './RadioGroup';\n\nconst codeString = `\n <RadioGroup label={label} options={options} \n onChange={onChangeFunction} disabled={disabled} /> `;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/RadioGroup',\n component: RadioGroup,\n argTypes: {\n label: {\n control: 'text',\n },\n disabled: {\n control: 'boolean',\n },\n },\n parameters: {\n inspectComponent: RadioGroup,\n codeString: codeString,\n },\n} as Meta<RadioGroupProps>;\n\nconst mockData = [\n {\n id: '1',\n titleLabel: 'Option 1',\n value: 'option1',\n },\n {\n id: '2',\n titleLabel: 'Option 2',\n value: 'option2',\n },\n {\n id: '3',\n titleLabel: 'Option 3',\n value: 'option3',\n },\n];\n\nconst Template: StoryFn<RadioGroupProps> = (args) => <RadioGroup {...args} />;\n\nexport const RadioGroupExample = Template.bind({});\nRadioGroupExample.args = {\n disabled: false,\n label: 'Sample label',\n options: mockData,\n onChange: fn(),\n};\n"],"mappings":";;;AAYA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,OAAO,EACL,SAAS,QACV;EACD,UAAU,EACR,SAAS,WACV;EACF;CACD,YAAY;EACV,kBAAkB;EACN,YAlBG;EAmBhB;CACF,EAEK,IAAW;CACf;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACD;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACD;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACF,EAIY,MAF+B,MAAS,kBAAC,GAAD,EAAY,GAAI,GAAQ,CAAA,EAEnC,KAAK,EAAE,CAAC;AAClD,EAAkB,OAAO;CACvB,UAAU;CACV,OAAO;CACP,SAAS;CACT,UAAU,GAAI;CACf"}
1
+ {"version":3,"file":"RadioGroup.stories.js","names":[],"sources":["../../../src/components/RadioGroup/RadioGroup.stories.tsx"],"sourcesContent":["import { fn } from 'storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RadioGroupProps } from './RadioGroup';\n\nimport { RadioGroup } from './RadioGroup';\n\nconst codeString = `\n <RadioGroup label={label} options={options} \n onChange={onChangeFunction} disabled={disabled} /> `;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/RadioGroup',\n component: RadioGroup,\n argTypes: {\n label: {\n control: 'text',\n },\n disabled: {\n control: 'boolean',\n },\n },\n parameters: {\n inspectComponent: RadioGroup,\n codeString: codeString,\n },\n} as Meta<RadioGroupProps>;\n\nconst mockData = [\n {\n id: '1',\n titleLabel: 'Option 1',\n value: 'option1',\n },\n {\n id: '2',\n titleLabel: 'Option 2',\n value: 'option2',\n },\n {\n id: '3',\n titleLabel: 'Option 3',\n value: 'option3',\n },\n];\n\nconst Template: StoryFn<RadioGroupProps> = (args) => <RadioGroup {...args} />;\n\nexport const RadioGroupExample = Template.bind({});\nRadioGroupExample.args = {\n disabled: false,\n label: 'Sample label',\n options: mockData,\n onChange: fn(),\n};\n"],"mappings":";;;AAYA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,OAAO,EACL,SAAS,QACV;EACD,UAAU,EACR,SAAS,WACV;EACF;CACD,YAAY;EACV,kBAAkB;EACN;EACb;CACF,EAEK,IAAW;CACf;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACD;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACD;EACE,IAAI;EACJ,YAAY;EACZ,OAAO;EACR;CACF,EAIY,MAF+B,MAAS,kBAAC,GAAD,EAAY,GAAI,GAAQ,CAAA,EAEnC,KAAK,EAAE,CAAC;AAClD,EAAkB,OAAO;CACvB,UAAU;CACV,OAAO;CACP,SAAS;CACT,UAAU,GAAI;CACf"}
@@ -1,6 +1,6 @@
1
- import "../../dist-BIkFjHck.js";
1
+ import "../../dist-V_v3kC0L.js";
2
2
  import { t as e } from "../../RadioGroup-JeTjVp5B.js";
3
- import { i as t, n, t as r } from "../../react.esm-R7eBXTUI.js";
3
+ import { i as t, n, t as r } from "../../react.esm-CweFe1CK.js";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  //#region src/components/RadioGroup/Radiogroup.test.tsx
6
6
  var a = [{
@@ -1 +1 @@
1
- {"version":3,"file":"Radiogroup.test.js","names":[],"sources":["../../../src/components/RadioGroup/Radiogroup.test.tsx"],"sourcesContent":["import '@testing-library/jest-dom';\nimport { render, screen, fireEvent } from '@testing-library/react';\n\nimport { RadioGroup } from './RadioGroup';\n\nconst options = [\n { id: '1', titleLabel: 'Option 1', value: 'option1' },\n { id: '2', titleLabel: 'Option 2', value: 'option2' },\n];\n\ndescribe('RadioGroup', () => {\n it('should render correctly', () => {\n render(<RadioGroup label=\"Test Label\" options={options} onChange={jest.fn()} />);\n expect(screen.getByText('Test Label')).toBeInTheDocument();\n expect(screen.getByText('Option 1')).toBeInTheDocument();\n expect(screen.getByText('Option 2')).toBeInTheDocument();\n });\n\n it('should call onChange when an option is selected', () => {\n const handleChange = jest.fn();\n render(<RadioGroup label=\"Test Label\" options={options} onChange={handleChange} />);\n\n const option1 = screen.getByLabelText('Option 1');\n fireEvent.click(option1);\n expect(handleChange).toHaveBeenCalledWith('option1');\n });\n\n it('should not allow selection when disabled', () => {\n const handleChange = jest.fn();\n render(<RadioGroup label=\"Test Label\" options={options} onChange={handleChange} disabled />);\n\n const option1 = screen.getByLabelText('Option 1');\n fireEvent.click(option1);\n expect(handleChange).not.toHaveBeenCalled();\n });\n});\n"],"mappings":";;;;;AAKA,IAAM,IAAU,CACd;CAAE,IAAI;CAAK,YAAY;CAAY,OAAO;CAAW,EACrD;CAAE,IAAI;CAAK,YAAY;CAAY,OAAO;CAAW,CACtD;AAED,SAAS,oBAAoB;AAiB3B,CAhBA,GAAG,iCAAiC;AAIlC,EAHA,EAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU,KAAK,IAAI;GAAI,CAAA,CAAC,EAChF,OAAO,EAAO,UAAU,aAAa,CAAC,CAAC,mBAAmB,EAC1D,OAAO,EAAO,UAAU,WAAW,CAAC,CAAC,mBAAmB,EACxD,OAAO,EAAO,UAAU,WAAW,CAAC,CAAC,mBAAmB;GACxD,EAEF,GAAG,yDAAyD;EAC1D,IAAM,IAAe,KAAK,IAAI;AAC9B,IAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU;GAAgB,CAAA,CAAC;EAEnF,IAAM,IAAU,EAAO,eAAe,WAAW;AAEjD,EADA,EAAU,MAAM,EAAQ,EACxB,OAAO,EAAa,CAAC,qBAAqB,UAAU;GACpD,EAEF,GAAG,kDAAkD;EACnD,IAAM,IAAe,KAAK,IAAI;AAC9B,IAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU;GAAc,UAAA;GAAW,CAAA,CAAC;EAE5F,IAAM,IAAU,EAAO,eAAe,WAAW;AAEjD,EADA,EAAU,MAAM,EAAQ,EACxB,OAAO,EAAa,CAAC,IAAI,kBAAkB;GAC3C;EACF"}
1
+ {"version":3,"file":"Radiogroup.test.js","names":[],"sources":["../../../src/components/RadioGroup/Radiogroup.test.tsx"],"sourcesContent":["import '@testing-library/jest-dom';\nimport { render, screen, fireEvent } from '@testing-library/react';\n\nimport { RadioGroup } from './RadioGroup';\n\nconst options = [\n { id: '1', titleLabel: 'Option 1', value: 'option1' },\n { id: '2', titleLabel: 'Option 2', value: 'option2' },\n];\n\ndescribe('RadioGroup', () => {\n it('should render correctly', () => {\n render(<RadioGroup label=\"Test Label\" options={options} onChange={jest.fn()} />);\n expect(screen.getByText('Test Label')).toBeInTheDocument();\n expect(screen.getByText('Option 1')).toBeInTheDocument();\n expect(screen.getByText('Option 2')).toBeInTheDocument();\n });\n\n it('should call onChange when an option is selected', () => {\n const handleChange = jest.fn();\n render(<RadioGroup label=\"Test Label\" options={options} onChange={handleChange} />);\n\n const option1 = screen.getByLabelText('Option 1');\n fireEvent.click(option1);\n expect(handleChange).toHaveBeenCalledWith('option1');\n });\n\n it('should not allow selection when disabled', () => {\n const handleChange = jest.fn();\n render(<RadioGroup label=\"Test Label\" options={options} onChange={handleChange} disabled />);\n\n const option1 = screen.getByLabelText('Option 1');\n fireEvent.click(option1);\n expect(handleChange).not.toHaveBeenCalled();\n });\n});\n"],"mappings":";;;;;AAKA,IAAM,IAAU,CACd;CAAE,IAAI;CAAK,YAAY;CAAY,OAAO;CAAW,EACrD;CAAE,IAAI;CAAK,YAAY;CAAY,OAAO;CAAW,CACtD;AAED,SAAS,oBAAoB;CAiB3B,AAhBA,GAAG,iCAAiC;EAIlC,AAHA,EAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU,KAAK,IAAI;GAAI,CAAA,CAAC,EAChF,OAAO,EAAO,UAAU,aAAa,CAAC,CAAC,mBAAmB,EAC1D,OAAO,EAAO,UAAU,WAAW,CAAC,CAAC,mBAAmB,EACxD,OAAO,EAAO,UAAU,WAAW,CAAC,CAAC,mBAAmB;GACxD,EAEF,GAAG,yDAAyD;EAC1D,IAAM,IAAe,KAAK,IAAI;EAC9B,EAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU;GAAgB,CAAA,CAAC;EAEnF,IAAM,IAAU,EAAO,eAAe,WAAW;EAEjD,AADA,EAAU,MAAM,EAAQ,EACxB,OAAO,EAAa,CAAC,qBAAqB,UAAU;GACpD,EAEF,GAAG,kDAAkD;EACnD,IAAM,IAAe,KAAK,IAAI;EAC9B,EAAO,kBAAC,GAAD;GAAY,OAAM;GAAsB;GAAS,UAAU;GAAc,UAAA;GAAW,CAAA,CAAC;EAE5F,IAAM,IAAU,EAAO,eAAe,WAAW;EAEjD,AADA,EAAU,MAAM,EAAQ,EACxB,OAAO,EAAa,CAAC,IAAI,kBAAkB;GAC3C;EACF"}
@@ -1,2 +1,2 @@
1
- import { u as e } from "../../components-DAwjkky5.js";
1
+ import { u as e } from "../../components-BzxAULjf.js";
2
2
  export { e as RadioTabSelector };
@@ -1,5 +1,5 @@
1
- import { r as e } from "../../test-Cr_l59hN.js";
2
- import { u as t } from "../../components-DAwjkky5.js";
1
+ import { r as e } from "../../test-Pa9Lwbsq.js";
2
+ import { u as t } from "../../components-BzxAULjf.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  var r = {
5
5
  title: "Molecules/RadioTabSelector",
@@ -1 +1 @@
1
- {"version":3,"file":"RadioTabSelector.stories.js","names":[],"sources":["../../../src/components/RadioTabSelector/RadioTabSelector.stories.tsx"],"sourcesContent":["import { fn } from 'storybook/test';\r\n\r\nimport type { Meta, StoryFn } from '@storybook/react';\r\nimport type { RadioTabSelectorProps } from './RadioTabSelector'; // Already imported above\r\n\r\nimport { RadioTabSelector } from './RadioTabSelector';\r\n\r\nconst codeString =\r\n '<RadioTabSelector radioButtons={} defaultValue={} label={} labelPosition={} required={} notValidatedText={} onSetValue={} />';\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n title: 'Molecules/RadioTabSelector',\r\n component: RadioTabSelector,\r\n argTypes: {\r\n radioButtons: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n defaultValue: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n label: {\r\n control: 'text',\r\n },\r\n labelPosition: {\r\n control: 'radio',\r\n options: ['top', 'left'],\r\n },\r\n required: {\r\n control: 'boolean',\r\n },\r\n notValidatedText: {\r\n control: 'text',\r\n },\r\n onSetValue: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n },\r\n parameters: {\r\n inspectComponent: RadioTabSelector,\r\n codeString: codeString,\r\n },\r\n} as Meta<RadioTabSelectorProps>;\r\n\r\nconst Template: StoryFn<RadioTabSelectorProps> = (args) => <RadioTabSelector {...args} />;\r\n\r\nexport const RadioTabSelectorExample = Template.bind({});\r\nRadioTabSelectorExample.args = {\r\n buttons: [\r\n { label: 'Digitaal', value: 'digitaal' },\r\n { label: 'Schriftelijk', value: 'schriftelijk' },\r\n { label: 'Presentatie', value: 'presentatie' },\r\n ],\r\n defaultValue: 'digitaal',\r\n radioGroupName: 'radio-group',\r\n label: 'Toetsvorm',\r\n labelPosition: 'top',\r\n required: true,\r\n notValidatedText: '',\r\n onSetValue: fn(),\r\n};\r\n\r\nexport const WithIcons = Template.bind({});\r\nWithIcons.args = {\r\n buttons: [\r\n { label: 'Digitaal', value: 'digitaal', iconName: 'SignalActive' },\r\n { label: 'Schriftelijk', value: 'schriftelijk', iconName: 'Pencil' },\r\n { label: 'Presentatie', value: 'presentatie', iconName: 'User' },\r\n ],\r\n defaultValue: 'digitaal',\r\n radioGroupName: 'radio-group',\r\n label: 'Toetsvorm',\r\n labelPosition: 'top',\r\n required: true,\r\n notValidatedText: '',\r\n onSetValue: fn(),\r\n};\r\n"],"mappings":";;;AAWA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,cAAc,EACZ,OAAO,EACL,SAAS,IACV,EACF;EACD,cAAc,EACZ,OAAO,EACL,SAAS,IACV,EACF;EACD,OAAO,EACL,SAAS,QACV;EACD,eAAe;GACb,SAAS;GACT,SAAS,CAAC,OAAO,OAAO;GACzB;EACD,UAAU,EACR,SAAS,WACV;EACD,kBAAkB,EAChB,SAAS,QACV;EACD,YAAY,EACV,OAAO,EACL,SAAS,IACV,EACF;EACF;CACD,YAAY;EACV,kBAAkB;EACN,YAtCd;EAuCC;CACF,EAEK,KAA4C,MAAS,kBAAC,GAAD,EAAkB,GAAI,GAAQ,CAAA,EAE5E,IAA0B,EAAS,KAAK,EAAE,CAAC;AACxD,EAAwB,OAAO;CAC7B,SAAS;EACP;GAAE,OAAO;GAAY,OAAO;GAAY;EACxC;GAAE,OAAO;GAAgB,OAAO;GAAgB;EAChD;GAAE,OAAO;GAAe,OAAO;GAAe;EAC/C;CACD,cAAc;CACd,gBAAgB;CAChB,OAAO;CACP,eAAe;CACf,UAAU;CACV,kBAAkB;CAClB,YAAY,GAAI;CACjB;AAED,IAAa,IAAY,EAAS,KAAK,EAAE,CAAC;AAC1C,EAAU,OAAO;CACf,SAAS;EACP;GAAE,OAAO;GAAY,OAAO;GAAY,UAAU;GAAgB;EAClE;GAAE,OAAO;GAAgB,OAAO;GAAgB,UAAU;GAAU;EACpE;GAAE,OAAO;GAAe,OAAO;GAAe,UAAU;GAAQ;EACjE;CACD,cAAc;CACd,gBAAgB;CAChB,OAAO;CACP,eAAe;CACf,UAAU;CACV,kBAAkB;CAClB,YAAY,GAAI;CACjB"}
1
+ {"version":3,"file":"RadioTabSelector.stories.js","names":[],"sources":["../../../src/components/RadioTabSelector/RadioTabSelector.stories.tsx"],"sourcesContent":["import { fn } from 'storybook/test';\r\n\r\nimport type { Meta, StoryFn } from '@storybook/react';\r\nimport type { RadioTabSelectorProps } from './RadioTabSelector'; // Already imported above\r\n\r\nimport { RadioTabSelector } from './RadioTabSelector';\r\n\r\nconst codeString =\r\n '<RadioTabSelector radioButtons={} defaultValue={} label={} labelPosition={} required={} notValidatedText={} onSetValue={} />';\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n title: 'Molecules/RadioTabSelector',\r\n component: RadioTabSelector,\r\n argTypes: {\r\n radioButtons: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n defaultValue: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n label: {\r\n control: 'text',\r\n },\r\n labelPosition: {\r\n control: 'radio',\r\n options: ['top', 'left'],\r\n },\r\n required: {\r\n control: 'boolean',\r\n },\r\n notValidatedText: {\r\n control: 'text',\r\n },\r\n onSetValue: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n },\r\n parameters: {\r\n inspectComponent: RadioTabSelector,\r\n codeString: codeString,\r\n },\r\n} as Meta<RadioTabSelectorProps>;\r\n\r\nconst Template: StoryFn<RadioTabSelectorProps> = (args) => <RadioTabSelector {...args} />;\r\n\r\nexport const RadioTabSelectorExample = Template.bind({});\r\nRadioTabSelectorExample.args = {\r\n buttons: [\r\n { label: 'Digitaal', value: 'digitaal' },\r\n { label: 'Schriftelijk', value: 'schriftelijk' },\r\n { label: 'Presentatie', value: 'presentatie' },\r\n ],\r\n defaultValue: 'digitaal',\r\n radioGroupName: 'radio-group',\r\n label: 'Toetsvorm',\r\n labelPosition: 'top',\r\n required: true,\r\n notValidatedText: '',\r\n onSetValue: fn(),\r\n};\r\n\r\nexport const WithIcons = Template.bind({});\r\nWithIcons.args = {\r\n buttons: [\r\n { label: 'Digitaal', value: 'digitaal', iconName: 'SignalActive' },\r\n { label: 'Schriftelijk', value: 'schriftelijk', iconName: 'Pencil' },\r\n { label: 'Presentatie', value: 'presentatie', iconName: 'User' },\r\n ],\r\n defaultValue: 'digitaal',\r\n radioGroupName: 'radio-group',\r\n label: 'Toetsvorm',\r\n labelPosition: 'top',\r\n required: true,\r\n notValidatedText: '',\r\n onSetValue: fn(),\r\n};\r\n"],"mappings":";;;AAWA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,cAAc,EACZ,OAAO,EACL,SAAS,IACV,EACF;EACD,cAAc,EACZ,OAAO,EACL,SAAS,IACV,EACF;EACD,OAAO,EACL,SAAS,QACV;EACD,eAAe;GACb,SAAS;GACT,SAAS,CAAC,OAAO,OAAO;GACzB;EACD,UAAU,EACR,SAAS,WACV;EACD,kBAAkB,EAChB,SAAS,QACV;EACD,YAAY,EACV,OAAO,EACL,SAAS,IACV,EACF;EACF;CACD,YAAY;EACV,kBAAkB;EACN;EACb;CACF,EAEK,KAA4C,MAAS,kBAAC,GAAD,EAAkB,GAAI,GAAQ,CAAA,EAE5E,IAA0B,EAAS,KAAK,EAAE,CAAC;AACxD,EAAwB,OAAO;CAC7B,SAAS;EACP;GAAE,OAAO;GAAY,OAAO;GAAY;EACxC;GAAE,OAAO;GAAgB,OAAO;GAAgB;EAChD;GAAE,OAAO;GAAe,OAAO;GAAe;EAC/C;CACD,cAAc;CACd,gBAAgB;CAChB,OAAO;CACP,eAAe;CACf,UAAU;CACV,kBAAkB;CAClB,YAAY,GAAI;CACjB;AAED,IAAa,IAAY,EAAS,KAAK,EAAE,CAAC;AAC1C,EAAU,OAAO;CACf,SAAS;EACP;GAAE,OAAO;GAAY,OAAO;GAAY,UAAU;GAAgB;EAClE;GAAE,OAAO;GAAgB,OAAO;GAAgB,UAAU;GAAU;EACpE;GAAE,OAAO;GAAe,OAAO;GAAe,UAAU;GAAQ;EACjE;CACD,cAAc;CACd,gBAAgB;CAChB,OAAO;CACP,eAAe;CACf,UAAU;CACV,kBAAkB;CAClB,YAAY,GAAI;CACjB"}
@@ -1,2 +1,2 @@
1
- import { u as e } from "../../components-DAwjkky5.js";
1
+ import { u as e } from "../../components-BzxAULjf.js";
2
2
  export { e as RadioTabSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"Repeater.stories.js","names":[],"sources":["../../../src/components/Repeater/Repeater.stories.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RepeaterProps } from './Repeater';\n\nimport { Repeater } from './Repeater';\n\nimport { Container } from 'storyComponents/Container';\n\nconst codeString = '<Repeater flexDirection={flexDirection} gap={gap}>{children}</Repeater>';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/Repeater',\n component: Repeater,\n argTypes: {\n flexDirection: {\n control: {\n type: 'select',\n },\n },\n gap: {\n control: {\n type: 'select',\n sort: false,\n },\n },\n children: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: Repeater,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<RepeaterProps>>;\n\nconst Template: StoryFn<PropsWithChildren<RepeaterProps>> = (args) => (\n <Container>\n <Repeater {...args} />\n </Container>\n);\n\nexport const RepeaterExample = Template.bind({});\nRepeaterExample.args = {\n flexDirection: 'column',\n gap: '050',\n children: (\n <>\n <div>Example item 1</div>\n <div>Example item 2</div>\n <div>Example item 3</div>\n </>\n ),\n};\n"],"mappings":";;;;AAWA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,eAAe,EACb,SAAS,EACP,MAAM,UACP,EACF;EACD,KAAK,EACH,SAAS;GACP,MAAM;GACN,MAAM;GACP,EACF;EACD,UAAU,EACR,OAAO,EACL,SAAS,IACV,EACF;EACF;CACD,YAAY;EACV,kBAAkB;EACN,YA1BG;EA2BhB;CACF,EAQY,MANgD,MAC3D,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAU,GAAI,GAAQ,CAAA,EACZ,CAAA,EAG0B,KAAK,EAAE,CAAC;AAChD,EAAgB,OAAO;CACrB,eAAe;CACf,KAAK;CACL,UACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACzB,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACzB,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACxB,EAAA,CAAA;CAEN"}
1
+ {"version":3,"file":"Repeater.stories.js","names":[],"sources":["../../../src/components/Repeater/Repeater.stories.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RepeaterProps } from './Repeater';\n\nimport { Repeater } from './Repeater';\n\nimport { Container } from 'storyComponents/Container';\n\nconst codeString = '<Repeater flexDirection={flexDirection} gap={gap}>{children}</Repeater>';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/Repeater',\n component: Repeater,\n argTypes: {\n flexDirection: {\n control: {\n type: 'select',\n },\n },\n gap: {\n control: {\n type: 'select',\n sort: false,\n },\n },\n children: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: Repeater,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<RepeaterProps>>;\n\nconst Template: StoryFn<PropsWithChildren<RepeaterProps>> = (args) => (\n <Container>\n <Repeater {...args} />\n </Container>\n);\n\nexport const RepeaterExample = Template.bind({});\nRepeaterExample.args = {\n flexDirection: 'column',\n gap: '050',\n children: (\n <>\n <div>Example item 1</div>\n <div>Example item 2</div>\n <div>Example item 3</div>\n </>\n ),\n};\n"],"mappings":";;;;AAWA,IAAA,IAAe;CACb,OAAO;CACP,WAAW;CACX,UAAU;EACR,eAAe,EACb,SAAS,EACP,MAAM,UACP,EACF;EACD,KAAK,EACH,SAAS;GACP,MAAM;GACN,MAAM;GACP,EACF;EACD,UAAU,EACR,OAAO,EACL,SAAS,IACV,EACF;EACF;CACD,YAAY;EACV,kBAAkB;EACN;EACb;CACF,EAQY,MANgD,MAC3D,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAU,GAAI,GAAQ,CAAA,EACZ,CAAA,EAG0B,KAAK,EAAE,CAAC;AAChD,EAAgB,OAAO;CACrB,eAAe;CACf,KAAK;CACL,UACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACzB,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACzB,kBAAC,OAAD,EAAA,UAAK,kBAAoB,CAAA;EACxB,EAAA,CAAA;CAEN"}
@@ -1,2 +1,2 @@
1
- import { r as e } from "../../../components-DAwjkky5.js";
1
+ import { r as e } from "../../../components-BzxAULjf.js";
2
2
  export { e as EditorHeader };
@@ -1,2 +1,2 @@
1
- import { r as e } from "../../../components-DAwjkky5.js";
1
+ import { r as e } from "../../../components-BzxAULjf.js";
2
2
  export { e as EditorHeader };
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "../../../../clsx-BD2qMUU1.js";
2
2
  import { Icon as t } from "../../../Icon/Icon.js";
3
3
  import { t as n } from "../../../../LexicalComposerContext.prod-Ca-YN_fj.js";
4
- import { Pn as r, cn as i, r as a } from "../../../../Lexical.prod-sbwgNRjw.js";
4
+ import { Gn as r, ot as i, v as a } from "../../../../Lexical.prod-CqPLSi0R.js";
5
5
  import { t as o } from "../../../../RteEditor.module-BJLUYSpf.js";
6
6
  import { useTranslation as s } from "../../hooks/useTranslation.js";
7
7
  import { useEffect as c, useState as l } from "react";
@@ -12,13 +12,13 @@ var d = {
12
12
  italic: "Italic"
13
13
  }, f = ["bold", "italic"], p = () => {
14
14
  let p = s(), [m] = n(), [h, g] = l(!1), [_, v] = l(!1), y = (e) => {
15
- m.dispatchCommand(i, e);
15
+ m.dispatchCommand(r, e);
16
16
  };
17
17
  return c(() => {
18
18
  let e = m.registerUpdateListener(({ editorState: e }) => {
19
19
  e.read(() => {
20
- let e = a();
21
- r(e) && (g(e.hasFormat("bold")), v(e.hasFormat("italic")));
20
+ let e = i();
21
+ a(e) && (g(e.hasFormat("bold")), v(e.hasFormat("italic")));
22
22
  });
23
23
  });
24
24
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"BlockFormatPlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $getSelection, $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';\nimport { useEffect, useState } from 'react';\n\nimport type { JSX } from 'react';\n\nimport { Icon } from 'components/Icon';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ntype BlockTypesType = 'bold' | 'italic';\nconst BLOCK_TYPE_ICONS = {\n bold: 'Bold',\n italic: 'Italic',\n};\n\nconst BlockTypes = ['bold', 'italic'];\n\nexport const BlockFormatPlugin = (): JSX.Element => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n\n const onClick = (type: BlockTypesType): void => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, type);\n };\n\n useEffect(() => {\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n setIsBold(selection.hasFormat('bold'));\n setIsItalic(selection.hasFormat('italic'));\n }\n });\n });\n\n return () => {\n removeStatusListener();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n {BlockTypes.map((type) => (\n <button\n onClick={() => onClick(type as BlockTypesType)}\n key={type}\n title={type === 'bold' ? t.format.boldTooltip : t.format.italicTooltip}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--${type}`],\n type === 'bold' && isBold && styles['editor__toolbar-button--active'],\n type === 'italic' && isItalic && styles['editor__toolbar-button--active']\n )}\n aria-label={`${type === 'bold' ? t.aria.labels.bold : t.aria.labels.italic}`}\n aria-keyshortcuts={`${type === 'bold' ? t.aria.keyshortcuts.bold : t.aria.keyshortcuts.italic}`}\n type=\"button\"\n >\n <Icon name={BLOCK_TYPE_ICONS[type as keyof typeof Icon]} size={24} />\n </button>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAAmB;CACvB,MAAM;CACN,QAAQ;CACT,EAEK,IAAa,CAAC,QAAQ,SAAS,EAExB,UAAuC;CAClD,IAAM,IAAI,GAAgB,EACpB,CAAC,KAAU,GAA2B,EACtC,CAAC,GAAQ,KAAa,EAAS,GAAM,EACrC,CAAC,GAAU,KAAe,EAAS,GAAM,EAEzC,KAAW,MAA+B;AAC9C,IAAO,gBAAgB,GAAqB,EAAK;;AAoBnD,QAjBA,QAAgB;EACd,IAAM,IAAuB,EAAO,wBAAwB,EAAE,qBAAkB;AAC9E,KAAY,WAAW;IACrB,IAAM,IAAY,GAAe;AACjC,IAAI,EAAkB,EAAU,KAC9B,EAAU,EAAU,UAAU,OAAO,CAAC,EACtC,EAAY,EAAU,UAAU,SAAS,CAAC;KAE5C;IACF;AAEF,eAAa;AACX,MAAsB;;IAGvB,CAAC,EAAO,CAAC,EAGV,kBAAC,OAAD;EAAK,WAAW,EAAO;YACpB,EAAW,KAAK,MACf,kBAAC,UAAD;GACE,eAAe,EAAQ,EAAuB;GAE9C,OAAO,MAAS,SAAS,EAAE,OAAO,cAAc,EAAE,OAAO;GACzD,WAAW,EACT,EAAO,2BACP,EAAO,2BAA2B,MAClC,MAAS,UAAU,KAAU,EAAO,mCACpC,MAAS,YAAY,KAAY,EAAO,kCACzC;GACD,cAAY,GAAG,MAAS,SAAS,EAAE,KAAK,OAAO,OAAO,EAAE,KAAK,OAAO;GACpE,qBAAmB,GAAG,MAAS,SAAS,EAAE,KAAK,aAAa,OAAO,EAAE,KAAK,aAAa;GACvF,MAAK;aAEL,kBAAC,GAAD;IAAM,MAAM,EAAiB;IAA4B,MAAM;IAAM,CAAA;GAC9D,EAbF,EAaE,CACT;EACE,CAAA"}
1
+ {"version":3,"file":"BlockFormatPlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $getSelection, $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';\nimport { useEffect, useState } from 'react';\n\nimport type { JSX } from 'react';\n\nimport { Icon } from 'components/Icon';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ntype BlockTypesType = 'bold' | 'italic';\nconst BLOCK_TYPE_ICONS = {\n bold: 'Bold',\n italic: 'Italic',\n};\n\nconst BlockTypes = ['bold', 'italic'];\n\nexport const BlockFormatPlugin = (): JSX.Element => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n\n const onClick = (type: BlockTypesType): void => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, type);\n };\n\n useEffect(() => {\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n setIsBold(selection.hasFormat('bold'));\n setIsItalic(selection.hasFormat('italic'));\n }\n });\n });\n\n return () => {\n removeStatusListener();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n {BlockTypes.map((type) => (\n <button\n onClick={() => onClick(type as BlockTypesType)}\n key={type}\n title={type === 'bold' ? t.format.boldTooltip : t.format.italicTooltip}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--${type}`],\n type === 'bold' && isBold && styles['editor__toolbar-button--active'],\n type === 'italic' && isItalic && styles['editor__toolbar-button--active']\n )}\n aria-label={`${type === 'bold' ? t.aria.labels.bold : t.aria.labels.italic}`}\n aria-keyshortcuts={`${type === 'bold' ? t.aria.keyshortcuts.bold : t.aria.keyshortcuts.italic}`}\n type=\"button\"\n >\n <Icon name={BLOCK_TYPE_ICONS[type as keyof typeof Icon]} size={24} />\n </button>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAAmB;CACvB,MAAM;CACN,QAAQ;CACT,EAEK,IAAa,CAAC,QAAQ,SAAS,EAExB,UAAuC;CAClD,IAAM,IAAI,GAAgB,EACpB,CAAC,KAAU,GAA2B,EACtC,CAAC,GAAQ,KAAa,EAAS,GAAM,EACrC,CAAC,GAAU,KAAe,EAAS,GAAM,EAEzC,KAAW,MAA+B;EAC9C,EAAO,gBAAgB,GAAqB,EAAK;;CAoBnD,OAjBA,QAAgB;EACd,IAAM,IAAuB,EAAO,wBAAwB,EAAE,qBAAkB;GAC9E,EAAY,WAAW;IACrB,IAAM,IAAY,GAAe;IACjC,AAAI,EAAkB,EAAU,KAC9B,EAAU,EAAU,UAAU,OAAO,CAAC,EACtC,EAAY,EAAU,UAAU,SAAS,CAAC;KAE5C;IACF;EAEF,aAAa;GACX,GAAsB;;IAGvB,CAAC,EAAO,CAAC,EAGV,kBAAC,OAAD;EAAK,WAAW,EAAO;YACpB,EAAW,KAAK,MACf,kBAAC,UAAD;GACE,eAAe,EAAQ,EAAuB;GAE9C,OAAO,MAAS,SAAS,EAAE,OAAO,cAAc,EAAE,OAAO;GACzD,WAAW,EACT,EAAO,2BACP,EAAO,2BAA2B,MAClC,MAAS,UAAU,KAAU,EAAO,mCACpC,MAAS,YAAY,KAAY,EAAO,kCACzC;GACD,cAAY,GAAG,MAAS,SAAS,EAAE,KAAK,OAAO,OAAO,EAAE,KAAK,OAAO;GACpE,qBAAmB,GAAG,MAAS,SAAS,EAAE,KAAK,aAAa,OAAO,EAAE,KAAK,aAAa;GACvF,MAAK;aAEL,kBAAC,GAAD;IAAM,MAAM,EAAiB;IAA4B,MAAM;IAAM,CAAA;GAC9D,EAbF,EAaE,CACT;EACE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "../../../../clsx-BD2qMUU1.js";
2
2
  import { t } from "../../../../LexicalComposerContext.prod-Ca-YN_fj.js";
3
- import { Bn as n, N as r, Pn as i, Tt as a, Zt as o, ct as s, r as c, vn as l, wt as u } from "../../../../Lexical.prod-sbwgNRjw.js";
4
- import { s as d } from "../../../../LexicalUtils.prod-DjjGkphN.js";
3
+ import { Dn as n, Kt as r, L as i, mt as a, on as o, ot as s, u as c, v as l, zn as u } from "../../../../Lexical.prod-CqPLSi0R.js";
4
+ import { n as d } from "../../../../LexicalUtils.prod-BqcriFWV.js";
5
5
  import { $getLinkTypeFromNode as f, CourseCatalogueNode as p, INSERT_COURSE_CATALOGUE_LINK as m, REMOVE_COURSE_CATALOGUE_LINK as h } from "../../nodes/CourseCatalogueNode/CourseCatalogueNode.js";
6
6
  import { t as g } from "../../../../RteEditor.module-BJLUYSpf.js";
7
7
  import { t as _ } from "../../../../AddCatalogueLinkForm-rph4K9P0.js";
@@ -22,12 +22,12 @@ var T = ({ onSearch: T, searchResponse: E, parentScrollPosition: D }) => {
22
22
  T("", z), R(null);
23
23
  };
24
24
  b(() => {
25
- let e = O.registerCommand(s, (e) => e.ctrlKey && e.shiftKey && e.altKey && e.key === "C" ? (e.preventDefault(), H("course"), !0) : e.ctrlKey && e.shiftKey && e.altKey && e.key === "P" ? (e.preventDefault(), H("programme"), !0) : !1, 4), t = O.registerUpdateListener(({ editorState: e }) => {
25
+ let e = O.registerCommand(u, (e) => e.ctrlKey && e.shiftKey && e.altKey && e.key === "C" ? (e.preventDefault(), H("course"), !0) : e.ctrlKey && e.shiftKey && e.altKey && e.key === "P" ? (e.preventDefault(), H("programme"), !0) : !1, 4), t = O.registerUpdateListener(({ editorState: e }) => {
26
26
  e.read(() => {
27
- let e = c();
28
- if (i(e)) {
29
- let t = e.anchor.getNode(), r = e.anchor.offset;
30
- if (n(t) && r === t.getTextContentSize() && t.getNextSibling() instanceof p) {
27
+ let e = s();
28
+ if (l(e)) {
29
+ let t = e.anchor.getNode(), n = e.anchor.offset;
30
+ if (a(t) && n === t.getTextContentSize() && t.getNextSibling() instanceof p) {
31
31
  let e = t.getNextSibling();
32
32
  if (e) {
33
33
  let t = f(e);
@@ -35,37 +35,37 @@ var T = ({ onSearch: T, searchResponse: E, parentScrollPosition: D }) => {
35
35
  return;
36
36
  }
37
37
  }
38
- let i = d(t, p);
39
- if (i) {
40
- let e = f(i);
38
+ let r = d(t, p);
39
+ if (r) {
40
+ let e = f(r);
41
41
  j(e === "course"), N(e === "programme");
42
42
  return;
43
43
  }
44
44
  j(!1), N(!1);
45
45
  }
46
46
  });
47
- }), o = (e) => {
48
- let t = a(), n = e.getTextContentSize();
49
- t.setTextNodeRange(e, n, e, n), u(t);
50
- }, m = (e, t) => n(e) && t === e.getTextContentSize() && e.getNextSibling() instanceof p, g = O.registerCommand(s, (e) => {
51
- let t = c();
52
- if (i(t)) {
47
+ }), c = (e) => {
48
+ let t = n(), i = e.getTextContentSize();
49
+ t.setTextNodeRange(e, i, e, i), r(t);
50
+ }, m = (e, t) => a(e) && t === e.getTextContentSize() && e.getNextSibling() instanceof p, g = O.registerCommand(u, (e) => {
51
+ let t = s();
52
+ if (l(t)) {
53
53
  let n = e.key, r = t.anchor.getNode(), i = t.anchor.offset, a = d(r, p);
54
54
  if (m(r, i) && (a = r.getNextSibling()), !a) return !1;
55
55
  let s = a?.getTextContentSize();
56
56
  if (a && e.key === "Enter") return e.preventDefault(), O.update(() => {
57
57
  if (m(r, i)) {
58
- let e = l("\n");
58
+ let e = o("\n");
59
59
  a.insertBefore(e);
60
60
  }
61
61
  if (i === s) {
62
- let e = l("\n");
63
- a.insertAfter(e), o(e);
62
+ let e = o("\n");
63
+ a.insertAfter(e), c(e);
64
64
  }
65
65
  }), !0;
66
66
  if (a && (n === " " || e.code === "Space")) return e.preventDefault(), O.update(() => {
67
- let e = l(" ");
68
- m(r, i) && (a.insertBefore(e), o(e)), i === s && (a.insertAfter(e), o(e));
67
+ let e = o(" ");
68
+ m(r, i) && (a.insertBefore(e), c(e)), i === s && (a.insertAfter(e), c(e));
69
69
  }), !0;
70
70
  if (a && (n === "Backspace" || n === "Delete")) return e.preventDefault(), O.update(() => {
71
71
  O.dispatchCommand(h, void 0);
@@ -73,9 +73,9 @@ var T = ({ onSearch: T, searchResponse: E, parentScrollPosition: D }) => {
73
73
  if (a && n !== "ArrowLeft" && n !== "ArrowRight" && n !== "ArrowUp" && n !== "ArrowDown" && n !== "Home" && n !== "End" && !(e.ctrlKey && (n.toLowerCase() === "z" || n.toLowerCase() === "y")) && !(e.ctrlKey && n.toLowerCase() === "c")) return e.preventDefault(), !0;
74
74
  }
75
75
  return !1;
76
- }, 4), _ = O.registerCommand(r, (e) => {
77
- let t = c();
78
- if (i(t)) {
76
+ }, 4), _ = O.registerCommand(i, (e) => {
77
+ let t = s();
78
+ if (l(t)) {
79
79
  let n = d(t.anchor.getNode(), p);
80
80
  if (n) {
81
81
  e.preventDefault();
@@ -92,7 +92,7 @@ var T = ({ onSearch: T, searchResponse: E, parentScrollPosition: D }) => {
92
92
  let W = () => {
93
93
  U();
94
94
  };
95
- return b(() => o(O.registerCommand(s, (e) => e.key === "Escape" && V.current ? (e.preventDefault(), U(), !0) : !1, 1), O.registerRootListener((e, t) => {
95
+ return b(() => c(O.registerCommand(u, (e) => e.key === "Escape" && V.current ? (e.preventDefault(), U(), !0) : !1, 1), O.registerRootListener((e, t) => {
96
96
  t && t.removeEventListener("scroll", W), e && e.addEventListener("scroll", W);
97
97
  })), [O]), b(() => {
98
98
  L && U();
@@ -1 +1 @@
1
- {"version":3,"file":"CourseCataloguePlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport { clsx } from 'clsx';\r\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\r\nimport {\r\n $createRangeSelection,\r\n $createTextNode,\r\n $getSelection,\r\n $isRangeSelection,\r\n $isTextNode,\r\n $setSelection,\r\n COMMAND_PRIORITY_CRITICAL,\r\n COMMAND_PRIORITY_LOW,\r\n COPY_COMMAND,\r\n KEY_DOWN_COMMAND,\r\n mergeRegister,\r\n} from 'lexical';\r\nimport { $getNearestNodeOfType } from '@lexical/utils';\r\n\r\nimport type { RefObject } from 'react';\r\nimport type { LexicalNode, TextNode } from 'lexical';\r\nimport type { SearchResponse } from './AddCatalogueLinkForm';\r\n\r\nimport { AddCatalogueLinkForm } from './AddCatalogueLinkForm';\r\n\r\nimport styles from 'components/RteEditor/RteEditor.module.css';\r\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\r\nimport {\r\n $getLinkTypeFromNode,\r\n CourseCatalogueNode,\r\n INSERT_COURSE_CATALOGUE_LINK,\r\n REMOVE_COURSE_CATALOGUE_LINK,\r\n} from 'components/RteEditor/nodes/CourseCatalogueNode';\r\nimport { useOnClickOutside } from 'components/hooks/useOnClickOutside';\r\n\r\ninterface CourseCataloguePluginProps {\r\n onSearch: (query: string, linkType: 'course' | 'programme') => void;\r\n searchResponse: SearchResponse;\r\n parentScrollPosition: number;\r\n}\r\n\r\nexport const CourseCataloguePlugin = ({\r\n onSearch,\r\n searchResponse,\r\n parentScrollPosition,\r\n}: CourseCataloguePluginProps) => {\r\n const [editor] = useLexicalComposerContext();\r\n const t = useTranslation();\r\n const [courseIsActive, setCourseIsActive] = useState(false);\r\n const [programmeIsActive, setProgrammeIsActive] = useState(false);\r\n const courseButtonRef = useRef<HTMLButtonElement>(null);\r\n const programmeButtonRef = useRef<HTMLButtonElement>(null);\r\n const flyoutRef = useRef<HTMLDivElement>(null);\r\n const [flyoutPosition, setFlyoutPosition] = useState<{ top: number; left: number } | null>(null);\r\n const [type, setType] = useState<'course' | 'programme'>('course');\r\n const isVisibleRef = useRef(flyoutPosition !== null);\r\n\r\n const openFlyout = (type: 'course' | 'programme') => {\r\n setType(type);\r\n const rect =\r\n type === 'course'\r\n ? courseButtonRef.current?.getBoundingClientRect()\r\n : programmeButtonRef.current?.getBoundingClientRect();\r\n if (rect) {\r\n setFlyoutPosition({ top: rect.bottom, left: rect.left });\r\n }\r\n };\r\n\r\n const closeFlyout = () => {\r\n onSearch('', type);\r\n setFlyoutPosition(null);\r\n };\r\n\r\n useEffect(() => {\r\n const removeKeyboardShortcut = editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n if (event.ctrlKey && event.shiftKey && event.altKey && event.key === 'C') {\r\n event.preventDefault();\r\n openFlyout('course');\r\n return true;\r\n }\r\n if (event.ctrlKey && event.shiftKey && event.altKey && event.key === 'P') {\r\n event.preventDefault();\r\n openFlyout('programme');\r\n return true;\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_CRITICAL\r\n );\r\n\r\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\r\n editorState.read(() => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const anchorNode = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n\r\n if (\r\n $isTextNode(anchorNode) &&\r\n offset === anchorNode.getTextContentSize() &&\r\n anchorNode.getNextSibling() instanceof CourseCatalogueNode\r\n ) {\r\n // Cursor staat aan het begin van de link!\r\n const courseCatalogueLink = anchorNode.getNextSibling();\r\n if (courseCatalogueLink) {\r\n const linkType = $getLinkTypeFromNode(courseCatalogueLink);\r\n setCourseIsActive(linkType === 'course');\r\n setProgrammeIsActive(linkType === 'programme');\r\n return;\r\n }\r\n }\r\n\r\n const courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n if (courseCatalogueLink) {\r\n const linkType = $getLinkTypeFromNode(courseCatalogueLink);\r\n setCourseIsActive(linkType === 'course');\r\n setProgrammeIsActive(linkType === 'programme');\r\n return;\r\n }\r\n setCourseIsActive(false);\r\n setProgrammeIsActive(false);\r\n }\r\n });\r\n });\r\n\r\n const moveToEndOfWhiteSpace = (whiteSpace: TextNode) => {\r\n const selection = $createRangeSelection();\r\n const endOffset = whiteSpace.getTextContentSize();\r\n selection.setTextNodeRange(whiteSpace, endOffset, whiteSpace, endOffset);\r\n $setSelection(selection);\r\n };\r\n\r\n const isCursorBeforeLink = (anchorNode: LexicalNode, offset: number) =>\r\n $isTextNode(anchorNode) &&\r\n offset === anchorNode.getTextContentSize() &&\r\n anchorNode.getNextSibling() instanceof CourseCatalogueNode;\r\n\r\n const removeUnEditable = editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const key = event.key;\r\n const anchorNode = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n let courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n\r\n // Detect if cursor is right before the link\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n courseCatalogueLink = anchorNode.getNextSibling();\r\n }\r\n\r\n if (!courseCatalogueLink) {\r\n return false;\r\n }\r\n\r\n const nodeLength = courseCatalogueLink?.getTextContentSize();\r\n\r\n // Prevent Enter if in the middle of the link, allow only at start or end\r\n if (courseCatalogueLink && event.key === 'Enter') {\r\n event.preventDefault();\r\n editor.update(() => {\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n const brNode = $createTextNode('\\n');\r\n courseCatalogueLink.insertBefore(brNode);\r\n }\r\n if (offset === nodeLength) {\r\n const brNode = $createTextNode('\\n');\r\n courseCatalogueLink.insertAfter(brNode);\r\n moveToEndOfWhiteSpace(brNode);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n // Allow add space before or after the link\r\n if (courseCatalogueLink && (key === ' ' || event.code === 'Space')) {\r\n event.preventDefault();\r\n editor.update(() => {\r\n const spaceToAdd = $createTextNode(' ');\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n courseCatalogueLink.insertBefore(spaceToAdd);\r\n moveToEndOfWhiteSpace(spaceToAdd);\r\n }\r\n if (offset === nodeLength) {\r\n courseCatalogueLink.insertAfter(spaceToAdd);\r\n moveToEndOfWhiteSpace(spaceToAdd);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n // Delete link if selected and Backspace or Del is pressed\r\n if (courseCatalogueLink && (key === 'Backspace' || key === 'Delete')) {\r\n event.preventDefault();\r\n editor.update(\r\n () => {\r\n editor.dispatchCommand(REMOVE_COURSE_CATALOGUE_LINK, undefined);\r\n },\r\n { discrete: true }\r\n );\r\n return true;\r\n }\r\n\r\n // Allow Home, End and Arrow navigation\r\n if (\r\n courseCatalogueLink &&\r\n key !== 'ArrowLeft' &&\r\n key !== 'ArrowRight' &&\r\n key !== 'ArrowUp' &&\r\n key !== 'ArrowDown' &&\r\n key !== 'Home' &&\r\n key !== 'End' &&\r\n !(event.ctrlKey && (key.toLowerCase() === 'z' || key.toLowerCase() === 'y')) &&\r\n !(event.ctrlKey && key.toLowerCase() === 'c')\r\n ) {\r\n event.preventDefault();\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_CRITICAL\r\n );\r\n\r\n const removeCopy = editor.registerCommand(\r\n COPY_COMMAND,\r\n (event: ClipboardEvent) => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const anchorNode = selection.anchor.getNode();\r\n const courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n if (courseCatalogueLink) {\r\n event.preventDefault();\r\n const domElement = editor.getElementByKey(courseCatalogueLink.getKey());\r\n if (domElement) {\r\n event.clipboardData?.setData('text/html', domElement.outerHTML);\r\n event.clipboardData?.setData('text/plain', courseCatalogueLink.getTextContent());\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_LOW\r\n );\r\n return () => {\r\n removeKeyboardShortcut();\r\n removeStatusListener();\r\n removeUnEditable();\r\n removeCopy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [editor]);\r\n\r\n useOnClickOutside(flyoutRef as RefObject<HTMLElement>, () => setFlyoutPosition(null));\r\n\r\n const handleOnScroll = () => {\r\n closeFlyout();\r\n };\r\n\r\n useEffect(() => {\r\n return mergeRegister(\r\n editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n if (event.key === 'Escape' && isVisibleRef.current) {\r\n event.preventDefault();\r\n closeFlyout();\r\n return true;\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_LOW\r\n ),\r\n\r\n editor.registerRootListener((rootElement, prevRootElement) => {\r\n if (prevRootElement) {\r\n prevRootElement.removeEventListener('scroll', handleOnScroll);\r\n }\r\n\r\n if (rootElement) {\r\n rootElement.addEventListener('scroll', handleOnScroll);\r\n }\r\n })\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [editor]);\r\n\r\n useEffect(() => {\r\n if (flyoutPosition) {\r\n closeFlyout();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [parentScrollPosition]);\r\n\r\n return (\r\n <div className={styles['editor__toolbar-button-group']}>\r\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\r\n <div className={styles['editor__toolbar-button-group--text']}>\r\n <button\r\n onClick={() => openFlyout('course')}\r\n title={t.cataloguelinks.courseTooltip}\r\n className={clsx(\r\n styles['editor__toolbar-button'],\r\n styles['editor__toolbar-button--text'],\r\n courseIsActive && styles[`editor__toolbar-button--active`]\r\n )}\r\n aria-label={t.aria.labels.courselink}\r\n aria-keyshortcuts={t.aria.keyshortcuts.courselink}\r\n type=\"button\"\r\n ref={courseButtonRef}\r\n >\r\n {t.cataloguelinks.courseButtonLabel}\r\n </button>\r\n <button\r\n onClick={() => openFlyout('programme')}\r\n title={t.cataloguelinks.programmeTooltip}\r\n className={clsx(\r\n styles['editor__toolbar-button'],\r\n styles['editor__toolbar-button--text'],\r\n programmeIsActive && styles[`editor__toolbar-button--active`]\r\n )}\r\n aria-label={t.aria.labels.programmelink}\r\n aria-keyshortcuts={t.aria.keyshortcuts.programmelink}\r\n type=\"button\"\r\n ref={programmeButtonRef}\r\n >\r\n {t.cataloguelinks.programmeButtonLabel}\r\n </button>\r\n </div>\r\n {flyoutPosition && (\r\n <div\r\n className={styles['editor__toolbar-flyout-wrapper']}\r\n style={{ top: flyoutPosition.top, left: flyoutPosition.left }}\r\n ref={flyoutRef}\r\n >\r\n <AddCatalogueLinkForm\r\n linkType={type}\r\n onCloseHandler={closeFlyout}\r\n onSearchHandler={onSearch}\r\n searchResponse={searchResponse}\r\n onSelect={(code, label, linkType) => {\r\n editor.dispatchCommand(INSERT_COURSE_CATALOGUE_LINK, {\r\n linkType,\r\n code,\r\n label,\r\n });\r\n closeFlyout();\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"CourseCataloguePlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\r\nimport { clsx } from 'clsx';\r\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\r\nimport {\r\n $createRangeSelection,\r\n $createTextNode,\r\n $getSelection,\r\n $isRangeSelection,\r\n $isTextNode,\r\n $setSelection,\r\n COMMAND_PRIORITY_CRITICAL,\r\n COMMAND_PRIORITY_LOW,\r\n COPY_COMMAND,\r\n KEY_DOWN_COMMAND,\r\n mergeRegister,\r\n} from 'lexical';\r\nimport { $getNearestNodeOfType } from '@lexical/utils';\r\n\r\nimport type { RefObject } from 'react';\r\nimport type { LexicalNode, TextNode } from 'lexical';\r\nimport type { SearchResponse } from './AddCatalogueLinkForm';\r\n\r\nimport { AddCatalogueLinkForm } from './AddCatalogueLinkForm';\r\n\r\nimport styles from 'components/RteEditor/RteEditor.module.css';\r\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\r\nimport {\r\n $getLinkTypeFromNode,\r\n CourseCatalogueNode,\r\n INSERT_COURSE_CATALOGUE_LINK,\r\n REMOVE_COURSE_CATALOGUE_LINK,\r\n} from 'components/RteEditor/nodes/CourseCatalogueNode';\r\nimport { useOnClickOutside } from 'components/hooks/useOnClickOutside';\r\n\r\ninterface CourseCataloguePluginProps {\r\n onSearch: (query: string, linkType: 'course' | 'programme') => void;\r\n searchResponse: SearchResponse;\r\n parentScrollPosition: number;\r\n}\r\n\r\nexport const CourseCataloguePlugin = ({\r\n onSearch,\r\n searchResponse,\r\n parentScrollPosition,\r\n}: CourseCataloguePluginProps) => {\r\n const [editor] = useLexicalComposerContext();\r\n const t = useTranslation();\r\n const [courseIsActive, setCourseIsActive] = useState(false);\r\n const [programmeIsActive, setProgrammeIsActive] = useState(false);\r\n const courseButtonRef = useRef<HTMLButtonElement>(null);\r\n const programmeButtonRef = useRef<HTMLButtonElement>(null);\r\n const flyoutRef = useRef<HTMLDivElement>(null);\r\n const [flyoutPosition, setFlyoutPosition] = useState<{ top: number; left: number } | null>(null);\r\n const [type, setType] = useState<'course' | 'programme'>('course');\r\n const isVisibleRef = useRef(flyoutPosition !== null);\r\n\r\n const openFlyout = (type: 'course' | 'programme') => {\r\n setType(type);\r\n const rect =\r\n type === 'course'\r\n ? courseButtonRef.current?.getBoundingClientRect()\r\n : programmeButtonRef.current?.getBoundingClientRect();\r\n if (rect) {\r\n setFlyoutPosition({ top: rect.bottom, left: rect.left });\r\n }\r\n };\r\n\r\n const closeFlyout = () => {\r\n onSearch('', type);\r\n setFlyoutPosition(null);\r\n };\r\n\r\n useEffect(() => {\r\n const removeKeyboardShortcut = editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n if (event.ctrlKey && event.shiftKey && event.altKey && event.key === 'C') {\r\n event.preventDefault();\r\n openFlyout('course');\r\n return true;\r\n }\r\n if (event.ctrlKey && event.shiftKey && event.altKey && event.key === 'P') {\r\n event.preventDefault();\r\n openFlyout('programme');\r\n return true;\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_CRITICAL\r\n );\r\n\r\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\r\n editorState.read(() => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const anchorNode = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n\r\n if (\r\n $isTextNode(anchorNode) &&\r\n offset === anchorNode.getTextContentSize() &&\r\n anchorNode.getNextSibling() instanceof CourseCatalogueNode\r\n ) {\r\n // Cursor staat aan het begin van de link!\r\n const courseCatalogueLink = anchorNode.getNextSibling();\r\n if (courseCatalogueLink) {\r\n const linkType = $getLinkTypeFromNode(courseCatalogueLink);\r\n setCourseIsActive(linkType === 'course');\r\n setProgrammeIsActive(linkType === 'programme');\r\n return;\r\n }\r\n }\r\n\r\n const courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n if (courseCatalogueLink) {\r\n const linkType = $getLinkTypeFromNode(courseCatalogueLink);\r\n setCourseIsActive(linkType === 'course');\r\n setProgrammeIsActive(linkType === 'programme');\r\n return;\r\n }\r\n setCourseIsActive(false);\r\n setProgrammeIsActive(false);\r\n }\r\n });\r\n });\r\n\r\n const moveToEndOfWhiteSpace = (whiteSpace: TextNode) => {\r\n const selection = $createRangeSelection();\r\n const endOffset = whiteSpace.getTextContentSize();\r\n selection.setTextNodeRange(whiteSpace, endOffset, whiteSpace, endOffset);\r\n $setSelection(selection);\r\n };\r\n\r\n const isCursorBeforeLink = (anchorNode: LexicalNode, offset: number) =>\r\n $isTextNode(anchorNode) &&\r\n offset === anchorNode.getTextContentSize() &&\r\n anchorNode.getNextSibling() instanceof CourseCatalogueNode;\r\n\r\n const removeUnEditable = editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const key = event.key;\r\n const anchorNode = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n let courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n\r\n // Detect if cursor is right before the link\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n courseCatalogueLink = anchorNode.getNextSibling();\r\n }\r\n\r\n if (!courseCatalogueLink) {\r\n return false;\r\n }\r\n\r\n const nodeLength = courseCatalogueLink?.getTextContentSize();\r\n\r\n // Prevent Enter if in the middle of the link, allow only at start or end\r\n if (courseCatalogueLink && event.key === 'Enter') {\r\n event.preventDefault();\r\n editor.update(() => {\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n const brNode = $createTextNode('\\n');\r\n courseCatalogueLink.insertBefore(brNode);\r\n }\r\n if (offset === nodeLength) {\r\n const brNode = $createTextNode('\\n');\r\n courseCatalogueLink.insertAfter(brNode);\r\n moveToEndOfWhiteSpace(brNode);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n // Allow add space before or after the link\r\n if (courseCatalogueLink && (key === ' ' || event.code === 'Space')) {\r\n event.preventDefault();\r\n editor.update(() => {\r\n const spaceToAdd = $createTextNode(' ');\r\n if (isCursorBeforeLink(anchorNode, offset)) {\r\n courseCatalogueLink.insertBefore(spaceToAdd);\r\n moveToEndOfWhiteSpace(spaceToAdd);\r\n }\r\n if (offset === nodeLength) {\r\n courseCatalogueLink.insertAfter(spaceToAdd);\r\n moveToEndOfWhiteSpace(spaceToAdd);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n // Delete link if selected and Backspace or Del is pressed\r\n if (courseCatalogueLink && (key === 'Backspace' || key === 'Delete')) {\r\n event.preventDefault();\r\n editor.update(\r\n () => {\r\n editor.dispatchCommand(REMOVE_COURSE_CATALOGUE_LINK, undefined);\r\n },\r\n { discrete: true }\r\n );\r\n return true;\r\n }\r\n\r\n // Allow Home, End and Arrow navigation\r\n if (\r\n courseCatalogueLink &&\r\n key !== 'ArrowLeft' &&\r\n key !== 'ArrowRight' &&\r\n key !== 'ArrowUp' &&\r\n key !== 'ArrowDown' &&\r\n key !== 'Home' &&\r\n key !== 'End' &&\r\n !(event.ctrlKey && (key.toLowerCase() === 'z' || key.toLowerCase() === 'y')) &&\r\n !(event.ctrlKey && key.toLowerCase() === 'c')\r\n ) {\r\n event.preventDefault();\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_CRITICAL\r\n );\r\n\r\n const removeCopy = editor.registerCommand(\r\n COPY_COMMAND,\r\n (event: ClipboardEvent) => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const anchorNode = selection.anchor.getNode();\r\n const courseCatalogueLink = $getNearestNodeOfType(anchorNode, CourseCatalogueNode);\r\n if (courseCatalogueLink) {\r\n event.preventDefault();\r\n const domElement = editor.getElementByKey(courseCatalogueLink.getKey());\r\n if (domElement) {\r\n event.clipboardData?.setData('text/html', domElement.outerHTML);\r\n event.clipboardData?.setData('text/plain', courseCatalogueLink.getTextContent());\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_LOW\r\n );\r\n return () => {\r\n removeKeyboardShortcut();\r\n removeStatusListener();\r\n removeUnEditable();\r\n removeCopy();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [editor]);\r\n\r\n useOnClickOutside(flyoutRef as RefObject<HTMLElement>, () => setFlyoutPosition(null));\r\n\r\n const handleOnScroll = () => {\r\n closeFlyout();\r\n };\r\n\r\n useEffect(() => {\r\n return mergeRegister(\r\n editor.registerCommand(\r\n KEY_DOWN_COMMAND,\r\n (event: KeyboardEvent) => {\r\n if (event.key === 'Escape' && isVisibleRef.current) {\r\n event.preventDefault();\r\n closeFlyout();\r\n return true;\r\n }\r\n return false;\r\n },\r\n COMMAND_PRIORITY_LOW\r\n ),\r\n\r\n editor.registerRootListener((rootElement, prevRootElement) => {\r\n if (prevRootElement) {\r\n prevRootElement.removeEventListener('scroll', handleOnScroll);\r\n }\r\n\r\n if (rootElement) {\r\n rootElement.addEventListener('scroll', handleOnScroll);\r\n }\r\n })\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [editor]);\r\n\r\n useEffect(() => {\r\n if (flyoutPosition) {\r\n closeFlyout();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [parentScrollPosition]);\r\n\r\n return (\r\n <div className={styles['editor__toolbar-button-group']}>\r\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\r\n <div className={styles['editor__toolbar-button-group--text']}>\r\n <button\r\n onClick={() => openFlyout('course')}\r\n title={t.cataloguelinks.courseTooltip}\r\n className={clsx(\r\n styles['editor__toolbar-button'],\r\n styles['editor__toolbar-button--text'],\r\n courseIsActive && styles[`editor__toolbar-button--active`]\r\n )}\r\n aria-label={t.aria.labels.courselink}\r\n aria-keyshortcuts={t.aria.keyshortcuts.courselink}\r\n type=\"button\"\r\n ref={courseButtonRef}\r\n >\r\n {t.cataloguelinks.courseButtonLabel}\r\n </button>\r\n <button\r\n onClick={() => openFlyout('programme')}\r\n title={t.cataloguelinks.programmeTooltip}\r\n className={clsx(\r\n styles['editor__toolbar-button'],\r\n styles['editor__toolbar-button--text'],\r\n programmeIsActive && styles[`editor__toolbar-button--active`]\r\n )}\r\n aria-label={t.aria.labels.programmelink}\r\n aria-keyshortcuts={t.aria.keyshortcuts.programmelink}\r\n type=\"button\"\r\n ref={programmeButtonRef}\r\n >\r\n {t.cataloguelinks.programmeButtonLabel}\r\n </button>\r\n </div>\r\n {flyoutPosition && (\r\n <div\r\n className={styles['editor__toolbar-flyout-wrapper']}\r\n style={{ top: flyoutPosition.top, left: flyoutPosition.left }}\r\n ref={flyoutRef}\r\n >\r\n <AddCatalogueLinkForm\r\n linkType={type}\r\n onCloseHandler={closeFlyout}\r\n onSearchHandler={onSearch}\r\n searchResponse={searchResponse}\r\n onSelect={(code, label, linkType) => {\r\n editor.dispatchCommand(INSERT_COURSE_CATALOGUE_LINK, {\r\n linkType,\r\n code,\r\n label,\r\n });\r\n closeFlyout();\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { o as e } from "../../../../components-DAwjkky5.js";
1
+ import { o as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as HistoryPlugin };
@@ -1,2 +1,2 @@
1
- import { o as e } from "../../../../components-DAwjkky5.js";
1
+ import { o as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as HistoryPlugin };
@@ -1,2 +1,2 @@
1
- import { c as e } from "../../../../../components-DAwjkky5.js";
1
+ import { c as e } from "../../../../../components-BzxAULjf.js";
2
2
  export { e as AddLinkForm };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../../LinkContextMenu-CTkNPiIW.js";
1
+ import { t as e } from "../../../../../LinkContextMenu-ePn1iZ_z.js";
2
2
  export { e as LinkContextMenu };
@@ -1,2 +1,2 @@
1
- import { s as e } from "../../../../components-DAwjkky5.js";
1
+ import { s as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as LinkPlugin };
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "../../../../helpers-MNJmfDe_.js";
1
+ import { i as e, n as t, r as n, t as r } from "../../../../helpers-B1VK8xTF.js";
2
2
  export { r as MATCHERS, t as ensureHttps, n as validateUrl, e as validateUrlWithProtocol };
@@ -1,2 +1,2 @@
1
- import { s as e } from "../../../../components-DAwjkky5.js";
1
+ import { s as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as LinkPlugin };
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "../../../../clsx-BD2qMUU1.js";
2
2
  import { Icon as t } from "../../../Icon/Icon.js";
3
3
  import { t as n } from "../../../../LexicalComposerContext.prod-Ca-YN_fj.js";
4
- import { Pn as r, ct as i, p as a, r as o } from "../../../../Lexical.prod-sbwgNRjw.js";
5
- import { s } from "../../../../LexicalUtils.prod-DjjGkphN.js";
6
- import { a as c, i as l, l as u, n as d, o as f, s as p, u as m } from "../../../../LexicalList.prod-DEtc4lSr.js";
4
+ import { g as r, ot as i, v as a, zn as o } from "../../../../Lexical.prod-CqPLSi0R.js";
5
+ import { n as s } from "../../../../LexicalUtils.prod-BqcriFWV.js";
6
+ import { a as c, c as l, i as u, l as d, n as f, o as p, t as m } from "../../../../LexicalList.prod-eYlcb5Ao.js";
7
7
  import { t as h } from "../../../../RteEditor.module-BJLUYSpf.js";
8
8
  import { useTranslation as g } from "../../hooks/useTranslation.js";
9
9
  import { useEffect as _, useState as v } from "react";
@@ -14,10 +14,10 @@ var b = {
14
14
  number: "NumberedList"
15
15
  }, x = ["bullet", "number"], S = () => {
16
16
  let S = g(), [C] = n(), [w, T] = v(null), [E, D] = v(!1), [O, k] = v(!1), A = (e) => {
17
- e === "number" && w !== "number" ? (C.dispatchCommand(m, void 0), T("number")) : e === "bullet" && w !== "bullet" ? (C.dispatchCommand(c, void 0), T("bullet")) : (C.dispatchCommand(d, void 0), T(null));
17
+ e === "number" && w !== "number" ? (C.dispatchCommand(u, void 0), T("number")) : e === "bullet" && w !== "bullet" ? (C.dispatchCommand(f, void 0), T("bullet")) : (C.dispatchCommand(m, void 0), T(null));
18
18
  };
19
19
  return _(() => {
20
- let e = C.registerCommand(i, (e) => e.ctrlKey && e.shiftKey && e.code === "Digit7" ? (e.preventDefault(), O ? C.dispatchCommand(d, void 0) : C.dispatchCommand(m, void 0), !0) : e.ctrlKey && e.shiftKey && e.code === "Digit8" ? (e.preventDefault(), E ? C.dispatchCommand(d, void 0) : C.dispatchCommand(c, void 0), !0) : !1, 4);
20
+ let e = C.registerCommand(o, (e) => e.ctrlKey && e.shiftKey && e.code === "Digit7" ? (e.preventDefault(), O ? C.dispatchCommand(m, void 0) : C.dispatchCommand(u, void 0), !0) : e.ctrlKey && e.shiftKey && e.code === "Digit8" ? (e.preventDefault(), E ? C.dispatchCommand(m, void 0) : C.dispatchCommand(f, void 0), !0) : !1, 4);
21
21
  return () => {
22
22
  e();
23
23
  };
@@ -26,21 +26,21 @@ var b = {
26
26
  O,
27
27
  E
28
28
  ]), _(() => {
29
- let e = C.registerCommand(a, (e) => (e.preventDefault(), C.update(() => {
30
- let e = o();
31
- if (!r(e)) return;
29
+ let e = C.registerCommand(r, (e) => (e.preventDefault(), C.update(() => {
30
+ let e = i();
31
+ if (!a(e)) return;
32
32
  let t = e.anchor.getNode(), n = t.getParent();
33
- if (!u(n)) return;
34
- let i = n.getParent();
35
- if (l(i)) {
36
- let e = p(l(i) ? i.getListType() : "bullet");
33
+ if (!d(n)) return;
34
+ let r = n.getParent();
35
+ if (c(r)) {
36
+ let e = p(c(r) ? r.getListType() : "bullet");
37
37
  n.append(e), e.append(t);
38
38
  }
39
39
  }), !0), 1), t = C.registerUpdateListener(({ editorState: e }) => {
40
40
  e.read(() => {
41
- let e = o();
42
- if (r(e)) {
43
- let t = s(e.anchor.getNode(), f);
41
+ let e = i();
42
+ if (a(e)) {
43
+ let t = s(e.anchor.getNode(), l);
44
44
  if (t) {
45
45
  let e = t.getTag();
46
46
  D(e === "ul"), k(e === "ol"), e === "ul" && T("bullet"), e === "ol" && T("number");
@@ -1 +1 @@
1
- {"version":3,"file":"ListPlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/ListPlugin/ListPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport {\n $createListNode,\n $isListItemNode,\n $isListNode,\n INSERT_ORDERED_LIST_COMMAND,\n INSERT_UNORDERED_LIST_COMMAND,\n ListNode,\n REMOVE_LIST_COMMAND,\n} from '@lexical/list';\nimport { useEffect, useState } from 'react';\nimport { clsx } from 'clsx';\nimport {\n $getSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_CRITICAL,\n COMMAND_PRIORITY_LOW,\n KEY_DOWN_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\n\nimport type { RangeSelection } from 'lexical';\n\nimport { Icon } from 'components/Icon';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ntype ListTypesType = 'bullet' | 'number' | null;\nconst LIST_TYPE_ICONS = {\n bullet: 'BulletList',\n number: 'NumberedList',\n};\n\nconst ListTypes = ['bullet', 'number'];\n\nexport const ListPlugin = () => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [blockType, setBlockType] = useState<ListTypesType>(null);\n const [isUList, setIsUList] = useState<boolean>(false);\n const [isOList, setIsOList] = useState<boolean>(false);\n\n const formatList = (listType: ListTypesType): void => {\n if (listType === 'number' && blockType !== 'number') {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);\n setBlockType('number');\n } else if (listType === 'bullet' && blockType !== 'bullet') {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\n setBlockType('bullet');\n } else {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n setBlockType(null);\n }\n };\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit7') {\n event.preventDefault();\n if (isOList) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n } else {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);\n }\n return true;\n }\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit8') {\n event.preventDefault();\n if (isUList) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n } else {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\n }\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n return () => {\n removeKeyboardShortcut();\n };\n }, [editor, isOList, isUList]);\n\n useEffect(() => {\n const removeTabCommand = editor.registerCommand(\n KEY_TAB_COMMAND,\n (event) => {\n event.preventDefault();\n editor.update(() => {\n const selection = $getSelection() as RangeSelection;\n if (!$isRangeSelection(selection)) {\n return;\n }\n\n const currentNode = selection.anchor.getNode();\n const parent = currentNode.getParent();\n if (!$isListItemNode(parent)) {\n return;\n }\n\n const listParent = parent.getParent();\n if ($isListNode(listParent)) {\n const newList = $createListNode($isListNode(listParent) ? listParent.getListType() : 'bullet');\n parent.append(newList);\n newList.append(currentNode);\n }\n });\n return true;\n },\n COMMAND_PRIORITY_LOW\n );\n\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const listNode = $getNearestNodeOfType(anchorNode, ListNode);\n if (listNode) {\n const tag = listNode.getTag();\n setIsUList(tag === 'ul');\n setIsOList(tag === 'ol');\n if (tag === 'ul') {\n setBlockType('bullet');\n }\n if (tag === 'ol') {\n setBlockType('number');\n }\n return;\n }\n setIsUList(false);\n setIsOList(false);\n setBlockType(null);\n }\n return false;\n });\n });\n\n return () => {\n removeStatusListener();\n removeTabCommand();\n };\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n {ListTypes.map((listType) => (\n <button\n onClick={() => formatList(listType as ListTypesType)}\n key={listType}\n title={t.format[`${listType}Tooltip` as keyof typeof t.format]}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--${listType}`],\n listType === 'bullet' && isUList && styles['editor__toolbar-button--active'],\n listType === 'number' && isOList && styles['editor__toolbar-button--active']\n )}\n aria-label={t.aria.labels[listType as keyof typeof t.aria.labels]}\n aria-keyshortcuts={t.aria.keyshortcuts[listType as keyof typeof t.aria.keyshortcuts]}\n type=\"button\"\n >\n <Icon name={LIST_TYPE_ICONS[listType as keyof typeof Icon]} size={24} />\n </button>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ListPlugin.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/ListPlugin/ListPlugin.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport {\n $createListNode,\n $isListItemNode,\n $isListNode,\n INSERT_ORDERED_LIST_COMMAND,\n INSERT_UNORDERED_LIST_COMMAND,\n ListNode,\n REMOVE_LIST_COMMAND,\n} from '@lexical/list';\nimport { useEffect, useState } from 'react';\nimport { clsx } from 'clsx';\nimport {\n $getSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_CRITICAL,\n COMMAND_PRIORITY_LOW,\n KEY_DOWN_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\n\nimport type { RangeSelection } from 'lexical';\n\nimport { Icon } from 'components/Icon';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ntype ListTypesType = 'bullet' | 'number' | null;\nconst LIST_TYPE_ICONS = {\n bullet: 'BulletList',\n number: 'NumberedList',\n};\n\nconst ListTypes = ['bullet', 'number'];\n\nexport const ListPlugin = () => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [blockType, setBlockType] = useState<ListTypesType>(null);\n const [isUList, setIsUList] = useState<boolean>(false);\n const [isOList, setIsOList] = useState<boolean>(false);\n\n const formatList = (listType: ListTypesType): void => {\n if (listType === 'number' && blockType !== 'number') {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);\n setBlockType('number');\n } else if (listType === 'bullet' && blockType !== 'bullet') {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\n setBlockType('bullet');\n } else {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n setBlockType(null);\n }\n };\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit7') {\n event.preventDefault();\n if (isOList) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n } else {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);\n }\n return true;\n }\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit8') {\n event.preventDefault();\n if (isUList) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n } else {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\n }\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n return () => {\n removeKeyboardShortcut();\n };\n }, [editor, isOList, isUList]);\n\n useEffect(() => {\n const removeTabCommand = editor.registerCommand(\n KEY_TAB_COMMAND,\n (event) => {\n event.preventDefault();\n editor.update(() => {\n const selection = $getSelection() as RangeSelection;\n if (!$isRangeSelection(selection)) {\n return;\n }\n\n const currentNode = selection.anchor.getNode();\n const parent = currentNode.getParent();\n if (!$isListItemNode(parent)) {\n return;\n }\n\n const listParent = parent.getParent();\n if ($isListNode(listParent)) {\n const newList = $createListNode($isListNode(listParent) ? listParent.getListType() : 'bullet');\n parent.append(newList);\n newList.append(currentNode);\n }\n });\n return true;\n },\n COMMAND_PRIORITY_LOW\n );\n\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const listNode = $getNearestNodeOfType(anchorNode, ListNode);\n if (listNode) {\n const tag = listNode.getTag();\n setIsUList(tag === 'ul');\n setIsOList(tag === 'ol');\n if (tag === 'ul') {\n setBlockType('bullet');\n }\n if (tag === 'ol') {\n setBlockType('number');\n }\n return;\n }\n setIsUList(false);\n setIsOList(false);\n setBlockType(null);\n }\n return false;\n });\n });\n\n return () => {\n removeStatusListener();\n removeTabCommand();\n };\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n {ListTypes.map((listType) => (\n <button\n onClick={() => formatList(listType as ListTypesType)}\n key={listType}\n title={t.format[`${listType}Tooltip` as keyof typeof t.format]}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--${listType}`],\n listType === 'bullet' && isUList && styles['editor__toolbar-button--active'],\n listType === 'number' && isOList && styles['editor__toolbar-button--active']\n )}\n aria-label={t.aria.labels[listType as keyof typeof t.aria.labels]}\n aria-keyshortcuts={t.aria.keyshortcuts[listType as keyof typeof t.aria.keyshortcuts]}\n type=\"button\"\n >\n <Icon name={LIST_TYPE_ICONS[listType as keyof typeof Icon]} size={24} />\n </button>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../PasteHandlerPlugin-YpQruA-w.js";
1
+ import { t as e } from "../../../../PasteHandlerPlugin-BNp8ST0q.js";
2
2
  export { e as PasteHandlerPlugin };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../PasteHandlerPlugin-YpQruA-w.js";
1
+ import { t as e } from "../../../../PasteHandlerPlugin-BNp8ST0q.js";
2
2
  export { e as PasteHandlerPlugin };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../TableCellResizerPlugin-Ceof6StD.js";
1
+ import { t as e } from "../../../../TableCellResizerPlugin-Bc5y-Qbx.js";
2
2
  export { e as TableCellResizerPlugin };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../TableCellResizerPlugin-Ceof6StD.js";
1
+ import { t as e } from "../../../../TableCellResizerPlugin-Bc5y-Qbx.js";
2
2
  export { e as TableCellResizerPlugin };
@@ -1,2 +1,2 @@
1
- import { a as e } from "../../../../components-DAwjkky5.js";
1
+ import { a as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as AddTableForm };
@@ -1,2 +1,2 @@
1
- import { i as e } from "../../../../components-DAwjkky5.js";
1
+ import { i as e } from "../../../../components-BzxAULjf.js";
2
2
  export { e as TablePlugin };