@uva-glass/component-library 3.57.4 → 3.57.5

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 (183) hide show
  1. package/dist/{DataTable-Guuh0GZc.js → DataTable-UslvEf3c.js} +3 -3
  2. package/dist/{DataTable-Guuh0GZc.js.map → DataTable-UslvEf3c.js.map} +1 -1
  3. package/dist/{Lexical.prod-Dy5aDppc.js → Lexical.prod-BlUfEvo-.js} +1461 -1476
  4. package/dist/{Lexical.prod-Dy5aDppc.js.map → Lexical.prod-BlUfEvo-.js.map} +1 -1
  5. package/dist/{LexicalClipboard.prod-CS8a49uL.js → LexicalClipboard.prod-DQbm50C_.js} +132 -131
  6. package/dist/LexicalClipboard.prod-DQbm50C_.js.map +1 -0
  7. package/dist/LexicalHtml.prod-Czkg35Fe.js +1129 -0
  8. package/dist/LexicalHtml.prod-Czkg35Fe.js.map +1 -0
  9. package/dist/{LexicalLink.prod-DzgwWhQM.js → LexicalLink.prod-6gI2ABQo.js} +141 -141
  10. package/dist/{LexicalLink.prod-DzgwWhQM.js.map → LexicalLink.prod-6gI2ABQo.js.map} +1 -1
  11. package/dist/{LexicalList.prod-icY8mpm6.js → LexicalList.prod-CMGvSM1c.js} +265 -265
  12. package/dist/{LexicalList.prod-icY8mpm6.js.map → LexicalList.prod-CMGvSM1c.js.map} +1 -1
  13. package/dist/LexicalSelection.prod-DS_R6Cl1.js +99 -0
  14. package/dist/LexicalSelection.prod-DS_R6Cl1.js.map +1 -0
  15. package/dist/{LexicalTable.prod-Bf0is-op.js → LexicalTable.prod-D3FUVxbr.js} +582 -582
  16. package/dist/LexicalTable.prod-D3FUVxbr.js.map +1 -0
  17. package/dist/LexicalUtils.prod-CNWf_0sq.js +164 -0
  18. package/dist/LexicalUtils.prod-CNWf_0sq.js.map +1 -0
  19. package/dist/{LinkContextMenu-C8ehPbP8.js → LinkContextMenu-59-rbxa2.js} +2 -2
  20. package/dist/{LinkContextMenu-C8ehPbP8.js.map → LinkContextMenu-59-rbxa2.js.map} +1 -1
  21. package/dist/{PasteHandlerPlugin-CSo_lOE8.js → PasteHandlerPlugin-CTzYRyAx.js} +9 -9
  22. package/dist/{PasteHandlerPlugin-CSo_lOE8.js.map → PasteHandlerPlugin-CTzYRyAx.js.map} +1 -1
  23. package/dist/{Slider-Czd2xAGf.js → Slider-CqYFsgRL.js} +3 -3
  24. package/dist/{Slider-Czd2xAGf.js.map → Slider-CqYFsgRL.js.map} +1 -1
  25. package/dist/{TableCellResizerPlugin-Bb2blXnq.js → TableCellResizerPlugin-D-fX5I3p.js} +12 -5
  26. package/dist/{TableCellResizerPlugin-Bb2blXnq.js.map → TableCellResizerPlugin-D-fX5I3p.js.map} +1 -1
  27. package/dist/{chunk-5WKL7XVT-CvOIS3NE.js → chunk-SNLGT2ZI--XVeLAcq.js} +2540 -2881
  28. package/dist/chunk-SNLGT2ZI--XVeLAcq.js.map +1 -0
  29. package/dist/{client-CXlG3hNo.js → client-CTHUtwUP.js} +4 -4
  30. package/dist/{client-CXlG3hNo.js.map → client-CTHUtwUP.js.map} +1 -1
  31. package/dist/components/Accordion/Accordion.test.js +15 -14
  32. package/dist/components/Accordion/Accordion.test.js.map +1 -1
  33. package/dist/components/AccordionCard/AccordionCard.test.js +20 -19
  34. package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
  35. package/dist/components/ActionList/ActionList.test.js +26 -25
  36. package/dist/components/ActionList/ActionList.test.js.map +1 -1
  37. package/dist/components/AppStatusBar/AppStatusBar.test.js +6 -5
  38. package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
  39. package/dist/components/Attention/Attention.test.js +5 -4
  40. package/dist/components/Attention/Attention.test.js.map +1 -1
  41. package/dist/components/Backdrop/Backdrop.test.js +5 -4
  42. package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
  43. package/dist/components/Buttons/Button.stories.js +1 -1
  44. package/dist/components/Buttons/Button.test.js +20 -19
  45. package/dist/components/Buttons/Button.test.js.map +1 -1
  46. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  47. package/dist/components/Buttons/LinkButton.test.js +22 -21
  48. package/dist/components/Buttons/LinkButton.test.js.map +1 -1
  49. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  50. package/dist/components/Buttons/MenuButton.test.js +20 -19
  51. package/dist/components/Buttons/MenuButton.test.js.map +1 -1
  52. package/dist/components/Card/Card.test.js +5 -4
  53. package/dist/components/Card/Card.test.js.map +1 -1
  54. package/dist/components/Checkbox/Checkbox.stories.js +1 -1
  55. package/dist/components/Checkbox/Checkbox.test.js +9 -8
  56. package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
  57. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
  58. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +16 -15
  59. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
  60. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  61. package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -3
  62. package/dist/components/CheckboxTree/index.js +1 -1
  63. package/dist/components/Chip/Chip.stories.js +1 -1
  64. package/dist/components/ControlsButton/ControlsButton.stories.js +1 -1
  65. package/dist/components/DataTable/DataTable.js +1 -1
  66. package/dist/components/DataTable/DataTable.stories.js +1 -1
  67. package/dist/components/DataTable/index.js +1 -1
  68. package/dist/components/Drawer/Drawer.stories.js +1 -1
  69. package/dist/components/FeedbackBar/FeedbackBar.test.js +8 -7
  70. package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
  71. package/dist/components/FormInput/FormInput.js +1 -1
  72. package/dist/components/FormInput/FormInput.stories.js +2 -2
  73. package/dist/components/FormInput/index.js +1 -1
  74. package/dist/components/IconButton/IconButton.stories.js +1 -1
  75. package/dist/components/InputField/InputField.stories.js +1 -1
  76. package/dist/components/Label/Label.test.js +12 -11
  77. package/dist/components/Label/Label.test.js.map +1 -1
  78. package/dist/components/MetaDataBar/MetaDataBar.test.js +5 -4
  79. package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
  80. package/dist/components/ModalDialog/ModalDialog.stories.js +1 -1
  81. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  82. package/dist/components/MultiSelect/MultiSelect.stories.js +2 -2
  83. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  84. package/dist/components/MultiSelect/index.js +1 -1
  85. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
  86. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +12 -11
  87. package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
  88. package/dist/components/Notification/Notification.stories.js +1 -1
  89. package/dist/components/Notification/Notification.test.js +8 -7
  90. package/dist/components/Notification/Notification.test.js.map +1 -1
  91. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +1 -1
  92. package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
  93. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
  94. package/dist/components/PeriodSelector/index.js +1 -1
  95. package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
  96. package/dist/components/RadioGroup/Radiogroup.test.js +10 -9
  97. package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
  98. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  99. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
  100. package/dist/components/RadioTabSelector/index.js +1 -1
  101. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  102. package/dist/components/RteEditor/EditorHeader/index.js +1 -1
  103. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +4 -4
  104. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +20 -20
  105. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
  106. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
  107. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  108. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  109. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
  110. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +7 -2
  111. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js.map +1 -0
  112. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
  113. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +12 -12
  114. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  115. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  116. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  117. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  118. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  119. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
  120. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +2 -2
  121. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
  122. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
  123. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
  124. package/dist/components/RteEditor/Plugins/index.js +3 -3
  125. package/dist/components/RteEditor/RteEditor.js +1 -1
  126. package/dist/components/RteEditor/RteEditor.stories.js +1 -1
  127. package/dist/components/RteEditor/helpers.js +5 -5
  128. package/dist/components/RteEditor/index.js +1 -1
  129. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +14 -14
  130. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +20 -19
  131. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
  132. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  133. package/dist/components/SelectListbox/SelectProvider.js +2 -1
  134. package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
  135. package/dist/components/Slider/Slider.js +1 -1
  136. package/dist/components/Slider/Slider.stories.js +1 -1
  137. package/dist/components/Slider/index.js +1 -1
  138. package/dist/components/Sortable/Sortable.stories.js +1 -1
  139. package/dist/components/Sortable/components/SortableItem.js +2 -2
  140. package/dist/components/Sortable/components/SortableItem.js.map +1 -1
  141. package/dist/components/StatusBadge/StatusBadge.test.js +7 -6
  142. package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
  143. package/dist/components/TextArea/TextArea.stories.js +1 -1
  144. package/dist/components/TextArea/TextArea.test.js +14 -13
  145. package/dist/components/TextArea/TextArea.test.js.map +1 -1
  146. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
  147. package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
  148. package/dist/components/VarIndicator/VarIndicator.test.js +26 -25
  149. package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
  150. package/dist/components/hooks/useResponsive.js +1 -1
  151. package/dist/components/hooks/useResponsive.js.map +1 -1
  152. package/dist/components/index.js +3 -3
  153. package/dist/{components-CgBF6db6.js → components-D2rPfyIW.js} +438 -408
  154. package/dist/components-D2rPfyIW.js.map +1 -0
  155. package/dist/{dist-oLwM--0y.js → dist-CuwCMU7Y.js} +4 -4
  156. package/dist/{dist-oLwM--0y.js.map → dist-CuwCMU7Y.js.map} +1 -1
  157. package/dist/{react.esm-DwWzhs9e.js → dom.esm-S0SD0DBW.js} +938 -1029
  158. package/dist/dom.esm-S0SD0DBW.js.map +1 -0
  159. package/dist/{esm-BXzGXYWZ.js → esm-Bfz5h0_d.js} +5 -5
  160. package/dist/{esm-BXzGXYWZ.js.map → esm-Bfz5h0_d.js.map} +1 -1
  161. package/dist/index.js +3 -3
  162. package/dist/{react-18-BwdnKC48.js → react-18-yf-KbRra.js} +3 -3
  163. package/dist/{react-18-BwdnKC48.js.map → react-18-yf-KbRra.js.map} +1 -1
  164. package/dist/react.esm-D50lAl1F.js +226 -0
  165. package/dist/react.esm-D50lAl1F.js.map +1 -0
  166. package/dist/setupTests.js +1 -1
  167. package/dist/storybook__react.d.js +22 -22
  168. package/dist/storybook__react.d.js.map +1 -1
  169. package/dist/{test-Gtly6H2f.js → test-BjtC-Q32.js} +3684 -6919
  170. package/dist/test-BjtC-Q32.js.map +1 -0
  171. package/package.json +13 -13
  172. package/dist/LexicalClipboard.prod-CS8a49uL.js.map +0 -1
  173. package/dist/LexicalHtml.prod-BtzosUOH.js +0 -1611
  174. package/dist/LexicalHtml.prod-BtzosUOH.js.map +0 -1
  175. package/dist/LexicalTable.prod-Bf0is-op.js.map +0 -1
  176. package/dist/LexicalUtils.prod-CjGUKarD.js +0 -259
  177. package/dist/LexicalUtils.prod-CjGUKarD.js.map +0 -1
  178. package/dist/chunk-5WKL7XVT-CvOIS3NE.js.map +0 -1
  179. package/dist/components-CgBF6db6.js.map +0 -1
  180. package/dist/helpers-MMNO9vlK.js +0 -34
  181. package/dist/helpers-MMNO9vlK.js.map +0 -1
  182. package/dist/react.esm-DwWzhs9e.js.map +0 -1
  183. package/dist/test-Gtly6H2f.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-D2rPfyIW.js","names":["p","n","s","m","f","c","E","d","t","o","r","i","a","l","e","t","f","c","e","n","r","i","f","p","x","m","y","b","e","t","a","d","u","i","o","s","y","v","D","We","N","E","I","k","O","re","de","Ce","Je","Le","B","G","Pe","m","K","w","P","A","M","J","L","$","q","W","R","j","X","Y","H","Q","U","V","d","Z","ee","te","ne","oe","f","p","g","ie","se","Ae","x","ae","ce","le","ue","me","fe","pe","ge","h","t","he","xe","r","ve","n","o","i","De","Ne","be","Te","_e","s","C","Fe","Oe","Se","Ee","e","Ie","ke","Ke","we","y","f","n","i","c","a","l","b","r","t","o","v","h","m","g","E","x","e","l","t","i","r","n","o","m","E","e","c","u","d","t","r","e","o","t","i","o","a","e","l","i","s","e","o","n","r","t","o","i","t","e","r","t","e","o","r","n","r","i","o","e","b","w","C","v","a","i","c","p","s","u","d","n","e","o","t","t","e","o","r","r","l","i","u","e","c","t","a","n","s","t"],"sources":["../src/components/CheckboxTree/CheckboxTree.module.css","../src/components/CheckboxTree/CheckboxTree.tsx","../src/components/FormInput/FormInput.module.css","../src/components/FormInput/FormInput.tsx","../src/components/MultiSelect/components/MultiSelectHeader.tsx","../src/components/MultiSelect/MultiSelect.tsx","../src/components/PeriodSelector/PeriodSelector.module.css","../src/components/PeriodSelector/PeriodSelector.tsx","../src/components/RadioTabSelector/RadioTabSelector.module.css","../src/components/RadioTabSelector/RadioTabSelector.tsx","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalComposer.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalReactProviderExtension.prod.mjs","../node_modules/.pnpm/@lexical+text@0.46.0_typescript@5.9.3/node_modules/@lexical/text/dist/LexicalText.prod.mjs","../node_modules/.pnpm/@lexical+dragon@0.46.0_typescript@5.9.3/node_modules/@lexical/dragon/dist/LexicalDragon.prod.mjs","../node_modules/.pnpm/@lexical+rich-text@0.46.0_typescript@5.9.3/node_modules/@lexical/rich-text/dist/LexicalRichText.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalRichTextPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalContentEditable.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalErrorBoundary.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalOnChangePlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalListPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalLinkPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalAutoLinkPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalClickableLinkPlugin.prod.mjs","../node_modules/.pnpm/@lexical+history@0.46.0_typescript@5.9.3/node_modules/@lexical/history/dist/LexicalHistory.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalHistoryPlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalTablePlugin.prod.mjs","../node_modules/.pnpm/@lexical+react@0.46.0_react-dom@19.2.7_react@19.2.7__react@19.2.7_typescript@5.9.3_yjs@13.6.31/node_modules/@lexical/react/dist/LexicalEditorRefPlugin.prod.mjs","../src/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkForm.module.css","../src/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.tsx","../src/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.tsx","../src/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.tsx","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.module.css","../src/components/RteEditor/Plugins/TablePlugin/AddTableFrom.tsx","../src/components/RteEditor/Plugins/TablePlugin/TablePlugin.tsx","../src/components/RteEditor/EditorHeader/EditorHeader.module.css","../src/components/RteEditor/EditorHeader/EditorHeader.tsx","../src/components/RteEditor/RteEditor.tsx"],"sourcesContent":[".checkbox-tree__header {\n display: block;\n font-weight: var(--semibold);\n margin-bottom: 0.25rem;\n text-align: left;\n}\n\n.checkbox-tree__branch {\n list-style: none;\n user-select: none;\n}\n\n.checkbox-tree__branch[aria-expanded=\"false\"] {\n margin-bottom: 0.5rem;\n}\n\n.checkbox-tree__branch input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n\n.checkbox-tree__branch--icon {\n pointer-events: none;\n transform: rotate(0deg);\n transition: transform 300ms ease-out;\n}\n\n.checkbox-tree__branch--icon--expanded {\n transform: rotate(90deg);\n transition: transform 300ms ease-in;\n}\n\n.checkbox-tree__branch--formfield {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n}\n\n.checkbox-tree__leaves {\n display: none;\n flex-direction: column;\n gap: 0.5rem;\n list-style: none;\n margin: 0.5rem 0 0.5rem 1rem;\n user-select: none;\n}\n\n.checkbox-tree__leaves--expanded {\n display: flex;\n}\n\n.checkbox-tree__leaf {\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: 0 0.5rem;\n margin-left: 1.5rem;\n user-select: none;\n}\n\n.checkbox-tree__leaf input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n","import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n",".form-input__container {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n}\n\n.form-input__container--label-left {\n align-items: flex-start;\n flex-direction: row;\n gap: 1rem;\n line-height: 2.5rem;\n}\n\n.form-input__container--label-left > label::after {\n line-height: 3.6;\n}\n\n.form-input__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n line-height: normal;\n}\n\n.form-input__input-feedback-container {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0.5rem;\n line-height: 1.5;\n position: relative;\n width: 100%;\n}\n\n.form-input__input-container {\n display: flex;\n flex: 1;\n}\n\n.form-input__input {\n appearance: none;\n background-color: transparent;\n border: 1px solid;\n border-radius: 0.5rem;\n color: var(--color-uva-black);\n flex: 1;\n font-family: inherit;\n font-size: inherit;\n height: 2.75rem;\n min-height: 2.5rem;\n padding: 0 1rem;\n text-align: inherit;\n}\n\n.form-input__input::-webkit-outer-spin-button,\n.form-input__input::-webkit-inner-spin-button {\n margin: 0;\n}\n\n.form-input__input.not-valid {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Sets max length for the standard input */\n maxLength?: number;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValid = false,\n notValidatedText = '',\n onChange,\n maxLength,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={clsx(styles['form-input__input'], {\n [styles['not-valid']]: notValid,\n })}\n {...(maxLength ? { maxLength } : {})}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n","import styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Label } from 'components/Label';\nimport { Button } from 'components';\n\nexport interface MultiSelectHeaderProps {\n label: string;\n clearTrigger?: string;\n onClear?: () => void;\n}\n\nexport function MultiSelectHeader({ label, clearTrigger, onClear }: MultiSelectHeaderProps) {\n return (\n <header className={styles['multi-select__header']}>\n <Label htmlFor=\"multi-select-list\">{label}</Label>\n {clearTrigger && (\n <Button variant={'blank'} onClick={onClear}>\n {clearTrigger}\n </Button>\n )}\n </header>\n );\n}\n","import { clsx } from 'clsx';\n\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './MultiSelect.module.css';\n\nimport { MultiSelectItem } from 'components/MultiSelect/components/MultiSelectItem';\nimport { MultiSelectHeader } from 'components/MultiSelect/components/MultiSelectHeader';\n\nexport interface MultiSelectProps {\n /** `true` if the container should scroll on overflow; otherwise, `false` to resize the container to its contents. The default is `true`. */\n scrollable?: boolean;\n /** `true` to disable the border around the container; otherwise, `false`. The default is `false`. */\n noBorder?: boolean;\n /** The header contents. */\n header?: ReactNode;\n}\n\n/** Represents a component to list a number of checkboxes. */\nexport const MultiSelect = ({ scrollable = true, noBorder, header, children }: PropsWithChildren<MultiSelectProps>) => (\n <>\n {header}\n <div\n className={clsx(styles['multi-select'], {\n [styles['multi-select--no-border']]: noBorder,\n })}\n >\n <ul\n className={clsx(styles['multi-select__list'], {\n [styles['multi-select__list--scrollable']]: scrollable,\n })}\n id=\"multi-select-list\"\n >\n {children}\n </ul>\n </div>\n </>\n);\n\nMultiSelect.MultiSelectHeader = MultiSelectHeader;\nMultiSelect.MultiSelectItem = MultiSelectItem;\n",".period-selector__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.period-selector__container--label-left {\n flex-direction: row;\n gap: 1rem;\n align-items: baseline;\n}\n\n.period-selector__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.period-selector__selector-row {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n","import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValid={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n",".radio-tab-selector-button-bar__container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.radio-tab-selector-button-bar__container--label-left {\n align-items: baseline;\n flex-direction: row;\n gap: 1rem;\n}\n\n.radio-tab-selector-button-bar__container--label-top {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.radio-tab-selector-button-bar__row {\n align-items: center;\n background-color: var(--color-uva-white);\n border: 1px solid var(--color-grey-700);\n border-radius: 0.5rem;\n display: flex;\n flex-wrap: nowrap;\n gap: 0.25rem;\n padding: 0.25rem;\n}\n\n.radio-tab-selector-button-bar__row--not-validated {\n border-color: var(--color-red-600);\n}\n","import { clsx } from 'clsx';\r\nimport { useState } from 'react';\r\n\r\nimport type { ChangeEvent } from 'react';\r\nimport type { IconProps } from 'components';\r\n\r\nimport styles from './RadioTabSelector.module.css';\r\n\r\nimport { ControlsButton, FeedbackBox, Label } from 'components';\r\n\r\ntype ButtonProps = {\r\n label: string;\r\n value: string;\r\n iconName?: IconProps['name'];\r\n disabled?: boolean;\r\n};\r\n\r\nexport interface RadioTabSelectorProps {\r\n /** array with button objects with label, value and optional iconName or disabled-state */\r\n buttons: ButtonProps[];\r\n /** name of the radiogroup */\r\n radioGroupName: string;\r\n /** innitial value */\r\n defaultValue?: string;\r\n /** label takst */\r\n label?: string;\r\n /** 'top' | 'left' */\r\n labelPosition?: 'top' | 'left';\r\n /** show red star */\r\n required?: boolean;\r\n /** error text to display if set */\r\n notValidatedText?: string;\r\n /** The callback function that is invoked when the radio tab selector changes value. */\r\n onSetValue: (value: string | null) => void;\r\n}\r\n\r\nexport const RadioTabSelector = ({\r\n buttons,\r\n radioGroupName,\r\n defaultValue,\r\n label,\r\n labelPosition = 'top',\r\n required = false,\r\n notValidatedText = '',\r\n onSetValue,\r\n}: RadioTabSelectorProps) => {\r\n const [currentValue, setCurrentValue] = useState<string | null>(defaultValue || null);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n setCurrentValue(event.target.value);\r\n onSetValue(event.target.value);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\r\n styles['radio-tab-selector-button-bar__container'],\r\n styles[`radio-tab-selector-button-bar__container--label-${labelPosition}`]\r\n )}\r\n >\r\n {label && (\r\n <Label htmlFor=\"\" required={required}>\r\n {label}\r\n </Label>\r\n )}\r\n <div className={styles['radio-tab-selector-button-bar__row-container']}>\r\n <div\r\n className={clsx(styles['radio-tab-selector-button-bar__row'], {\r\n [styles['radio-tab-selector-button-bar__row--not-validated']]: notValidatedText,\r\n })}\r\n >\r\n {buttons.map(({ label, value, iconName, disabled }) => (\r\n <ControlsButton\r\n type=\"radio\"\r\n name={radioGroupName}\r\n key={`${value}`}\r\n label={label}\r\n value={value}\r\n iconName={iconName}\r\n checked={currentValue === value}\r\n disabled={disabled}\r\n onSetValue={handleChange}\r\n />\r\n ))}\r\n </div>\r\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{createLexicalComposerContext as t,LexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{CAN_USE_DOM as n,createEditor as o,$getRoot as r,$createParagraphNode as i,getActiveElement as a,$getSelection as l,HISTORY_MERGE_TAG as c}from\"lexical\";import{useLayoutEffect as s,useEffect as m,useMemo as d}from\"react\";import{jsx as u}from\"react/jsx-runtime\";const p=n?s:m,f={tag:c};function E({initialConfig:c,children:s}){const m=d(()=>{const{theme:e,namespace:s,nodes:m,onError:d,onWarn:u,editorState:p,html:E}=c,b=t(null,e),h=o({editable:c.editable,html:E,namespace:s,nodes:m,onError:t=>d(t,h),...u?{onWarn:t=>u(t,h)}:{},theme:e});return function(t,e){if(null===e)return;if(void 0===e)t.update(()=>{const e=r();if(e.isEmpty()){const o=i();e.append(o);const r=t.getRootElement(),c=n&&null!==r?a(r):null;(null!==l()||null!==c&&c===r)&&o.select()}},f);else if(null!==e)switch(typeof e){case\"string\":{const n=t.parseEditorState(e);t.setEditorState(n,f);break}case\"object\":t.setEditorState(e,f);break;case\"function\":t.update(()=>{r().isEmpty()&&e(t)},f)}}(h,p),[h,b]},[]);return p(()=>{const t=c.editable,[e]=m;e.setEditable(void 0===t||t)},[]),/*#__PURE__*/u(e.Provider,{value:m,children:s})}export{E as LexicalComposer};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{defineExtension as e}from\"lexical\";const r=/* @__PURE__ */e({name:\"@lexical/react/ReactProvider\"});export{r as ReactProviderExtension};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from\"lexical\";function s(){return t().getTextContent()}function f(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),\"\"===n}function u(t,e){return()=>f(t,e)}function c(o){if(!f(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function a(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function d(t,...e){const n=new URL(\"https://lexical.dev/docs/error\"),r=new URLSearchParams;r.append(\"code\",t);for(const t of e)r.append(\"v\",t);throw n.search=r.toString(),Error(`Minified Lexical error #${t}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function x(t,e,n,r){const s=t=>t instanceof n,f=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,t=>{if(!t.isSimpleText())return;let n,o=t.getPreviousSibling(),l=t.getTextContent(),u=t;if(i(o)){const n=o.getTextContent(),r=e(n+l);if(s(o)){if(null===r||0!==(t=>t.getLatest().__mode)(o))return void f(o);{const e=r.end-n.length;if(e>0){const r=n+l.slice(0,e);if(o.select(),o.setTextContent(r),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===r||r.start<n.length)return}let c=0;for(;;){n=e(l);let t,g=null===n?\"\":l.slice(n.end);if(l=g,\"\"===g){const t=u.getNextSibling();if(i(t)){g=u.getTextContent()+t.getTextContent();const n=e(g);if(null===n)return void(s(t)?f(t):t.markDirty());if(0!==n.start)return}}if(null===n)return;if(0===n.start&&i(o)&&o.isTextEntity()){c+=n.end;continue}0===n.start?[t,u]=u.splitText(n.end):[,t,u]=u.splitText(n.start+c,n.end+c),void 0===t&&d(165,\"nodeToReplace\");const a=r(t);if(a.setFormat(t.getFormat()),t.replace(a),null==u)return;c=0,o=a}}),t.registerNodeTransform(n,t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void f(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(f(o),f(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(f(l),s(t)&&f(t))})]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,a as $findTextIntersectionFromCharacters,f as $isRootTextContentEmpty,u as $isRootTextContentEmptyCurry,s as $rootTextContent,x as registerLexicalTextEntity};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{watchedSignal as e,effect as t,namedSignals as n}from\"@lexical/extension\";import{$getSelection as i,$isRangeSelection as o,$isTextNode as s,defineExtension as r,safeCast as l,getEditorPropertyFromDOMNode as a,getActiveElementDeep as d,isLexicalEditor as u}from\"lexical\";const c={bold:\"bold\",italic:\"italic\",strikeThrough:\"strikethrough\",subscript:\"subscript\",superscript:\"superscript\",underline:\"underline\"},f=Symbol.for(\"@lexical/dragon/WindowState\");function g(e=function(){return\"undefined\"!=typeof window?window:void 0}()){return e?p(e,Symbol(\"@lexical/dragon/globalInstall\"),void 0):()=>{}}function p(e,t,n){const i=function(e){let t=e[f];return void 0===t&&(t={dispose:()=>{},editors:new Map,installs:new Set},e[f]=t),t}(e);if(0===i.installs.size){const t=x.bind(e);e.addEventListener(\"message\",t,!0),i.dispose=()=>{e.removeEventListener(\"message\",t,!0)}}if(i.installs.add(t),n){const e=i.editors.get(n)||new Set;e.add(t),i.editors.set(n,e)}return m.bind(null,e,i,t,n)}function m(e,t,n,i){if(i){const e=t.editors.get(i);e&&e.delete(n)&&0===e.size&&t.editors.delete(i)}t.installs.delete(n)&&0===t.installs.size&&(t.dispose(),delete e[f])}function y(e){return e&&e.ownerDocument.defaultView}function b(n){const i=e(()=>y(n.getRootElement()),e=>n.registerRootListener(t=>{e.value=y(t)}));return t(()=>{const e=i.value;if(e)return p(e,Symbol(\"@lexical/dragon/editorInstall\"),n)})}function x(e){if(e.origin!==this.location.origin)return;const t=function(e){const t=e[f];if(void 0===t)return null;const n=a(d(e.document));return u(n)&&t.editors.has(n)?n:null}(this);if(null===t)return;const n=e.data;if(\"string\"==typeof n){let r;try{r=JSON.parse(n)}catch(e){return}if(r&&\"nuanria_messaging\"===r.protocol&&\"request\"===r.type){const n=r.payload;if(n&&\"makeChanges\"===n.functionId){const r=n.args;if(Array.isArray(r)){const[n,l,a,d,u,f]=r;if(![n,l,d,u].every(Number.isFinite)||\"string\"!=typeof a&&-1!==a)return;t.update(()=>{const t=i();if(o(t)){const i=t.anchor;let o=i.getNode(),r=0,g=0;if(s(o)&&n>=0&&l>=0&&(r=n,g=n+l,t.setTextNodeRange(o,r,o,g)),\"string\"!=typeof a||r===g&&\"\"===a||(t.insertRawText(a),o=i.getNode()),s(o)){const e=o.getTextContentSize();r=Math.min(Math.max(d,0),e),g=d<0||u<0?r:Math.min(d+u,e),t.setTextNodeRange(o,r,o,g)}if(\"string\"==typeof f&&u>0&&!t.isCollapsed()){const e=c[f];void 0!==e&&t.formatText(e)}e.stopImmediatePropagation()}})}}}}}const h=/* @__PURE__ */r({build:(e,t,i)=>n(t),config:/* @__PURE__ */l({disabled:\"undefined\"==typeof window}),name:\"@lexical/dragon\",register:(e,n,i)=>t(()=>i.getOutput().disabled.value?void 0:b(e))});export{h as DragonExtension,g as installDragonSupport,b as registerDragonSupport};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$insertDataTransferForRichText as e,caretFromPoint as t,$handleRichTextDrop as r,setLexicalClipboardDataTransfer as n,$getClipboardDataFromSelection as o,$writeDragSourceToDataTransfer as i,copyToClipboard as s}from\"@lexical/clipboard\";import{NormalizeInlineElementsExtension as a,NormalizeTripleClickSelectionExtension as c,effect as l,namedSignals as u,signal as m}from\"@lexical/extension\";import{$isParentRTL as f,$shouldOverrideDefaultCharacterSelection as p,$moveCharacter as g}from\"@lexical/selection\";import{$handleIndentAndOutdent as d,eventFiles as h,objectKlassEquals as C,$getNearestBlockElementAncestorOrThrow as x}from\"@lexical/utils\";export{eventFiles}from\"@lexical/utils\";import{setNodeIndentFromDOM as y,$setFormatFromDOM as v,$setDirectionFromDOM as D,isHTMLElement as N,defineExtension as b,configExtension as T,safeCast as _,shallowMergeConfig as F,$applyNodeReplacement as O,createCommand as S,ElementNode as E,addClassNamesToElement as I,$createParagraphNode as k,mergeRegister as K,CLICK_COMMAND as w,$getSelection as P,$isNodeSelection as A,$isRangeSelection as M,COMMAND_PRIORITY_EDITOR as z,DELETE_CHARACTER_COMMAND as J,DELETE_WORD_COMMAND as L,DELETE_LINE_COMMAND as $,CONTROLLED_TEXT_INSERTION_COMMAND as q,REMOVE_TEXT_COMMAND as W,FORMAT_TEXT_COMMAND as R,FORMAT_ELEMENT_COMMAND as j,$findMatchingParent as B,$isElementNode as G,INSERT_LINE_BREAK_COMMAND as X,INSERT_PARAGRAPH_COMMAND as Y,INSERT_TAB_COMMAND as H,$createTabNode as Q,$insertNodes as U,INDENT_CONTENT_COMMAND as V,OUTDENT_CONTENT_COMMAND as Z,KEY_ARROW_UP_COMMAND as ee,$getAdjacentNode as te,$isDecoratorNode as re,KEY_ARROW_DOWN_COMMAND as ne,KEY_ARROW_LEFT_COMMAND as oe,KEY_ARROW_RIGHT_COMMAND as ie,KEY_BACKSPACE_COMMAND as se,IS_IOS as ae,CAN_USE_BEFORE_INPUT as ce,KEY_DELETE_COMMAND as le,KEY_ENTER_COMMAND as ue,IS_SAFARI as me,IS_APPLE_WEBKIT as fe,KEY_ESCAPE_COMMAND as pe,DROP_COMMAND as ge,$getNearestNodeFromDOMNode as de,$createRangeSelection as he,$isTextNode as Ce,$normalizeSelection__EXPERIMENTAL as xe,$setSelection as ye,DRAGSTART_COMMAND as ve,DRAGOVER_COMMAND as De,SELECT_ALL_COMMAND as Ne,$selectAll as be,$getSlotFrame as Te,COPY_COMMAND as _e,CUT_COMMAND as Fe,PASTE_COMMAND as Oe,isDOMNode as Se,$isSelectionCapturedInDecoratorInput as Ee,KEY_SPACE_COMMAND as Ie,KEY_TAB_COMMAND as ke,MOVE_TO_END as Ke,MOVE_TO_START as we,$getRoot as Pe,$isRootNode as Ae,CUT_TAG as Me,PASTE_TAG as ze,$getSiblingCaret as Je,$comparePointCaretNext as Le}from\"lexical\";import{DragonExtension as $e}from\"@lexical/dragon\";import{defineImportRule as qe,sel as We,CoreImportExtension as Re,DOMImportExtension as je}from\"@lexical/html\";const Be=[/* @__PURE__ */qe({$import:(e,t)=>{const r=nt(t.nodeName.toLowerCase());return y(t,r),v(r,t),D(r,t),[r.splice(0,0,e.$importChildren(t))]},match:We.tag(\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"),name:\"@lexical/rich-text/heading\"}),/* @__PURE__ */qe({$import:(e,t)=>{const r=Ue();return v(r,t),y(t,r),D(r,t),[r.splice(0,0,e.$importChildren(t))]},match:We.tag(\"blockquote\"),name:\"@lexical/rich-text/blockquote\"}),/* @__PURE__ */qe({$import:(e,t,r)=>{const n=t.firstChild;return n&&(N(o=n)&&\"SPAN\"===o.nodeName&&\"26pt\"===o.style.fontSize)?e.$importChildren(t):r();var o},match:We.tag(\"p\"),name:\"@lexical/rich-text/google-docs-title-p\"}),/* @__PURE__ */qe({$import:(e,t,r)=>\"26pt\"!==t.style.fontSize?r():[nt(\"h1\").splice(0,0,e.$importChildren(t))],match:We.tag(\"span\"),name:\"@lexical/rich-text/google-docs-title-span\"})];function Ge(e,t){return e&&null!==t?F(e,t):t}const Xe=/* @__PURE__ */b({build:(e,t)=>u(t),config:/* @__PURE__ */_({escapeFormatTriggers:{capitalize:{enter:!0,space:!0,tab:!0},lowercase:{enter:!0,space:!0,tab:!0},uppercase:{enter:!0,space:!0,tab:!0}}}),conflictsWith:[\"@lexical/plain-text\"],dependencies:[$e,a,c,Re,/* @__PURE__ */T(je,{rules:Be})],mergeConfig:function(e,t){const r=F(e,t);return t.escapeFormatTriggers&&(r.escapeFormatTriggers=function(e,t){const r=F(e,t);for(const n of Object.keys(t))r[n]=Ge(e[n],t[n]);return r}(e.escapeFormatTriggers,t.escapeFormatTriggers)),r},name:\"@lexical/rich-text\",nodes:()=>[Ze,Qe],register:(e,t,r)=>l(()=>lt(e,r.getOutput().escapeFormatTriggers))}),Ye=/* @__PURE__ */b({dependencies:[Xe],name:\"@lexical/rich-text/Import\"}),He=/* @__PURE__ */S(\"DRAG_DROP_PASTE_FILE\");class Qe extends E{static getType(){return\"quote\"}static clone(e){return new Qe(e.__key)}createDOM(e){const t=document.createElement(\"blockquote\");return I(t,e.theme.quote),t}updateDOM(e,t){return!1}static importDOM(){return{blockquote:e=>({conversion:rt,priority:0})}}exportDOM(e){const{element:t}=super.exportDOM(e);if(N(t)){this.isEmpty()&&t.append(document.createElement(\"br\"));const e=this.getFormatType();e&&(t.style.textAlign=e);const r=this.getDirection();r&&(t.dir=r)}return{element:t}}static importJSON(e){return Ue().updateFromJSON(e)}insertNewAfter(e,t){const r=k(),n=this.getDirection();return r.setDirection(n),this.insertAfter(r,t),r}collapseAtStart(){const e=k();return this.getChildren().forEach(t=>e.append(t)),this.replace(e),!0}canMergeWhenEmpty(){return!0}}function Ue(){return O(new Qe)}function Ve(e){return e instanceof Qe}class Ze extends E{__tag;static getType(){return\"heading\"}static clone(e){return new Ze(e.__tag,e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__tag=e.__tag}constructor(e=\"h1\",t){super(t),this.__tag=e}getTag(){return this.getLatest().__tag}setTag(e){const t=this.getWritable();return t.__tag=e,t}createDOM(e){const t=this.__tag,r=document.createElement(t),n=e.theme.heading;if(void 0!==n){const e=n[t];I(r,e)}return r}updateDOM(e,t,r){return e.__tag!==this.__tag}static importDOM(){return{h1:e=>({conversion:tt,priority:0}),h2:e=>({conversion:tt,priority:0}),h3:e=>({conversion:tt,priority:0}),h4:e=>({conversion:tt,priority:0}),h5:e=>({conversion:tt,priority:0}),h6:e=>({conversion:tt,priority:0}),p:e=>{const t=e.firstChild;return null!==t&&et(t)?{conversion:()=>({node:null}),priority:3}:null},span:e=>et(e)?{conversion:e=>({node:nt(\"h1\")}),priority:3}:null}}exportDOM(e){const{element:t}=super.exportDOM(e);if(N(t)){this.isEmpty()&&t.append(document.createElement(\"br\"));const e=this.getFormatType();e&&(t.style.textAlign=e);const r=this.getDirection();r&&(t.dir=r)}return{element:t}}static importJSON(e){return nt(e.tag).updateFromJSON(e)}updateFromJSON(e){return super.updateFromJSON(e).setTag(e.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(e,t=!0){const r=e?e.anchor.offset:0,n=this.getLastDescendant(),o=!n||e&&e.anchor.key===n.getKey()&&r===n.getTextContentSize()||!e?k():nt(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,t),0===r&&!this.isEmpty()&&e){const e=k();e.select(),this.replace(e,!0)}return o}collapseAtStart(){if(this.isEmpty()){const e=k();this.getChildren().forEach(t=>e.append(t)),this.replace(e)}return!0}extractWithChild(){return!0}}function et(e){return\"span\"===e.nodeName.toLowerCase()&&\"26pt\"===e.style.fontSize}function tt(e){const t=e.nodeName.toLowerCase();let r=null;return\"h1\"!==t&&\"h2\"!==t&&\"h3\"!==t&&\"h4\"!==t&&\"h5\"!==t&&\"h6\"!==t||(r=nt(t),y(e,r),v(r,e),D(r,e)),{node:r}}function rt(e){const t=Ue();return v(t,e),y(e,t),D(t,e),{node:t}}function nt(e=\"h1\"){return O(new Ze(e))}function ot(e){return e instanceof Ze}function it(e){const t=de(e);return re(t)}function st(e,t,r,n){let o=!1,i=null;if(e.isCollapsed()&&\"text\"===e.anchor.type){const t=e.anchor.getNode();if(Ce(t)){i=t;const n=e.anchor.offset,s=n===t.getTextContentSize()&&null===t.getNextSibling(),a=0===n&&null===t.getPreviousSibling();o=\"end\"===r&&s||\"start\"===r&&a||\"both\"===r&&(s||a)}}let s=!1;for(const[r,a]of Object.entries(n)){if(null==a||!a[t])continue;const n=r;if(a.onlyAtBoundary){if(!(o&&i&&Ce(i)&&i.hasFormat(n)))continue;s=!0}e.hasFormat(n)&&e.toggleFormat(n)}s&&e.setStyle(\"\")}const at={capitalize:{enter:!0,space:!0,tab:!0},lowercase:{enter:!0,space:!0,tab:!0},uppercase:{enter:!0,space:!0,tab:!0}};function ct(e,t,r){r.preventDefault(),r.stopPropagation();const n=e.getNodes();if(0===n.length)return!0;const o=n.map(e=>Je(e,\"next\")).sort(Le),i=(t?o[0]:o[o.length-1]).origin,s=B(i,e=>e!==i&&G(e)&&!e.isInline())??Pe(),a=t?0:s.getChildrenSize();return s.select(a,a),!0}function lt(a,c=m(at)){return K(a.registerCommand(w,()=>{const e=P();return A(e)?(e.clear(),!0):(M(e)&&st(e,\"click\",\"both\",c.peek()),!1)},z),a.registerCommand(J,e=>{const t=P();return M(t)?(t.deleteCharacter(e),!0):!!A(t)&&(t.deleteNodes(),!0)},z),a.registerCommand(L,e=>{const t=P();return!!M(t)&&(t.deleteWord(e),!0)},z),a.registerCommand($,e=>{const t=P();return!!M(t)&&(t.deleteLine(e),!0)},z),a.registerCommand(q,t=>{const r=P();if(\"string\"==typeof t)null!==r&&r.insertText(t);else{if(null===r)return!1;const n=t.dataTransfer;if(null!=n)e(n,r,a);else if(M(r)){const e=t.data;return e&&r.insertText(e),!0}}return!0},z),a.registerCommand(W,()=>{const e=P();return!!M(e)&&(e.removeText(),!0)},z),a.registerCommand(R,e=>{const t=P();return!!M(t)&&(t.formatText(e),!0)},z),a.registerCommand(j,e=>{const t=P();if(!M(t)&&!A(t))return!1;const r=t.getNodes();for(const t of r){const r=B(t,e=>G(e)&&!e.isInline());null!==r&&r.setFormat(e)}return!0},z),a.registerCommand(X,e=>{const t=P();return!!M(t)&&(t.insertLineBreak(e),!0)},z),a.registerCommand(Y,()=>{const e=P();return!!M(e)&&(e.insertParagraph(),!0)},z),a.registerCommand(H,()=>{const e=Q(),t=P();return M(t)&&(e.setFormat(t.format),e.setStyle(t.style)),U([e]),!0},z),a.registerCommand(V,()=>d(e=>{const t=e.getIndent();e.setIndent(t+1)}),z),a.registerCommand(Z,()=>d(e=>{const t=e.getIndent();t>0&&e.setIndent(Math.max(0,t-1))}),z),a.registerCommand(ee,e=>{const t=P();if(A(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),r[0].selectPrevious(),!0}else if(M(t)){const r=te(t.focus,!0);if(!e.shiftKey&&re(r)&&!r.isIsolated()&&!r.isInline())return r.selectPrevious(),e.preventDefault(),!0}return!1},z),a.registerCommand(ne,e=>{const t=P();if(A(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),r[0].selectNext(0,0),!0}else if(M(t)){if(function(e){const t=e.focus;return\"root\"===t.key&&t.offset===Pe().getChildrenSize()}(t))return e.preventDefault(),!0;const r=te(t.focus,!1);if(!e.shiftKey&&re(r)&&!r.isIsolated()&&!r.isInline())return r.selectNext(),e.preventDefault(),!0}return!1},z),a.registerCommand(oe,e=>{const t=P();if(A(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),f(r[0])?r[0].selectNext(0,0):r[0].selectPrevious(),!0}if(!M(t))return!1;if(e.shiftKey||st(t,\"arrow\",\"start\",c.peek()),p(t,!0)){const r=e.shiftKey;return e.preventDefault(),g(t,r,!0),!0}return!1},z),a.registerCommand(ie,e=>{const t=P();if(A(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),f(r[0])?r[0].selectPrevious():r[0].selectNext(0,0),!0}if(!M(t))return!1;if(e.shiftKey||st(t,\"arrow\",\"end\",c.peek()),p(t,!1)){const r=e.shiftKey;return e.preventDefault(),g(t,r,!1),!0}return!1},z),a.registerCommand(se,e=>{const t=P();if(!A(t)&&it(e.target))return!1;if(M(t)){if(function(e){if(!e.isCollapsed())return!1;const{anchor:t}=e;if(0!==t.offset)return!1;const r=t.getNode();if(Ae(r))return!1;const n=x(r);return n.getIndent()>0&&(n.is(r)||r.is(n.getFirstDescendant()))}(t))return e.preventDefault(),a.dispatchCommand(Z,void 0);if(ae&&ce)return!1}else if(!A(t))return!1;return e.preventDefault(),a.dispatchCommand(J,!0)},z),a.registerCommand(le,e=>{const t=P();return!(!A(t)&&it(e.target))&&(!(!M(t)&&!A(t))&&(e.preventDefault(),a.dispatchCommand(J,!1)))},z),a.registerCommand(ue,e=>{let t=P();if(A(t)){const e=t.getNodes();1===e.length&&re(e[0])&&!e[0].isInline()&&(t=e[0].selectNext())}if(!M(t))return!1;if(st(t,\"enter\",\"both\",c.peek()),null!==e){if((ae||me||fe)&&ce)return!1;if(e.preventDefault(),e.shiftKey)return a.dispatchCommand(X,!1)}return a.dispatchCommand(Y,void 0)},z),a.registerCommand(pe,()=>{const e=P();return!!M(e)&&(a.blur(),!0)},z),a.registerCommand(ge,e=>{const[,n]=h(e);if(n.length>0){const r=e.clientX,o=e.clientY,i=t(r,o,a.getRootElement());if(null!==i){const{offset:e,node:t}=i,r=de(t);if(null!==r){const t=he();if(Ce(r))t.anchor.set(r.getKey(),e,\"text\"),t.focus.set(r.getKey(),e,\"text\");else{const e=r.getParentOrThrow().getKey(),n=r.getIndexWithinParent()+1;t.anchor.set(e,n,\"element\"),t.focus.set(e,n,\"element\")}const n=xe(t);ye(n)}a.dispatchCommand(He,n)}return e.preventDefault(),!0}return r(e,a)},z),a.registerCommand(ve,e=>{const[t]=h(e),r=P();return!(t&&!M(r))&&(M(r)&&!r.isCollapsed()&&null!==e.dataTransfer&&(n(e.dataTransfer,o(r)),i(e.dataTransfer,a)),!0)},z),a.registerCommand(De,e=>{const[t]=h(e),r=P();return!(t&&!M(r))&&(e.preventDefault(),!0)},z),a.registerCommand(Ne,()=>{const e=P();return be(M(e)&&null!==Te(e.anchor.getNode())?e:null),!0},z),a.registerCommand(_e,e=>(s(a,C(e,ClipboardEvent)?e:null),!0),z),a.registerCommand(Fe,e=>(async function(e,t){await s(t,C(e,ClipboardEvent)?e:null),t.update(()=>{const e=P();M(e)?e.removeText():A(e)&&e.getNodes().forEach(e=>e.remove())},{tag:Me})}(e,a),!0),z),a.registerCommand(Oe,t=>{const[,r,n]=h(t);if(r.length>0&&!n)return a.dispatchCommand(He,r),!0;if(Se(t.target)&&Ee(t.target))return!1;return null!==P()&&(function(t,r){t.preventDefault(),r.update(()=>{const n=P(),o=C(t,InputEvent)||C(t,KeyboardEvent)?null:t.clipboardData;null!=o&&null!==n&&e(o,n,r)},{tag:ze})}(t,a),!0)},z),a.registerCommand(Ie,()=>{const e=P();return M(e)&&st(e,\"space\",\"both\",c.peek()),!1},z),a.registerCommand(ke,()=>{const e=P();return M(e)&&st(e,\"tab\",\"both\",c.peek()),!1},z),a.registerCommand(Ke,e=>{const t=P();if(A(t))return ct(t,!1,e);if(!M(t))return!1;const{anchor:r}=t;if(\"element\"!==r.type||0!==r.offset)return!1;const n=r.getNode();if(!G(n))return!1;const o=n.getFirstChild();if(!re(o)||!o.isInline())return!1;const i=n.getKey(),s=n.selectEnd();return e.shiftKey&&s.anchor.set(i,0,\"element\"),e.preventDefault(),e.stopPropagation(),!0},z),a.registerCommand(we,e=>{const t=P();if(A(t))return ct(t,!0,e);if(!M(t))return!1;const{anchor:r,focus:n}=t,o=B(n.getNode(),e=>G(e)&&!e.isInline());if(null===o)return!1;const i=o.getFirstChild();if(!re(i)||!i.isInline())return!1;if(B(r.getNode(),e=>G(e)&&!e.isInline())!==o)return!1;const s=o.getKey();return(\"element\"!==n.type||n.key!==s||0!==n.offset)&&(t.focus.set(s,0,\"element\"),e.shiftKey||t.anchor.set(s,0,\"element\"),e.preventDefault(),e.stopPropagation(),!0)},z))}export{nt as $createHeadingNode,Ue as $createQuoteNode,ot as $isHeadingNode,Ve as $isQuoteNode,He as DRAG_DROP_PASTE,Ze as HeadingNode,Qe as QuoteNode,Xe as RichTextExtension,Ye as RichTextImportExtension,Be as RichTextImportRules,lt as registerRichText};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useLexicalEditable as e}from\"@lexical/react/useLexicalEditable\";import{LexicalBuilder as t}from\"@lexical/extension\";import{ReactProviderExtension as o}from\"@lexical/react/ReactProviderExtension\";import{useLayoutEffect as n,useEffect as i,useState as c,useMemo as a,Suspense as l}from\"react\";import{flushSync as s,createPortal as u}from\"react-dom\";import{CAN_USE_DOM as f,mergeRegister as m}from\"lexical\";import{jsx as d,jsxs as p,Fragment as x}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as h}from\"@lexical/text\";import{registerDragonSupport as E}from\"@lexical/dragon\";import{registerRichText as g}from\"@lexical/rich-text\";function y(r,...e){const t=new URL(\"https://lexical.dev/docs/error\"),o=new URLSearchParams;o.append(\"code\",r);for(const r of e)o.append(\"v\",r);throw t.search=o.toString(),Error(`Minified Lexical error #${r}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const B=f?n:i;function L({editor:r,ErrorBoundary:e}){return function(r,e){const[t,o]=c(()=>r.getDecorators());return B(()=>r.registerDecoratorListener(r=>{s(()=>{o(r)})}),[r]),i(()=>{o(r.getDecorators())},[r]),a(()=>{const o=[],n=Object.keys(t);for(let i=0;i<n.length;i++){const c=n[i],a=/*#__PURE__*/d(e,{onError:e=>r._onError(e),children:/*#__PURE__*/d(l,{fallback:null,children:t[c]})}),s=r.getElementByKey(c);null!==s&&o.push(/*#__PURE__*/u(a,s,c))}return o},[e,t,r])}(r,e)}function b({editor:r,ErrorBoundary:e}){return function(r){const e=t.maybeFromEditor(r);if(e&&e.hasExtensionByName(o.name)){for(const r of[\"@lexical/plain-text\",\"@lexical/rich-text\"])e.hasExtensionByName(r)&&y(320,r);return!0}return!1}(r)?null:/*#__PURE__*/d(L,{editor:r,ErrorBoundary:e})}function v(r){return r.read(\"latest\",h(r.isComposing()))}function w({contentEditable:e,placeholder:t=null,ErrorBoundary:o}){const[n]=r();return function(r){B(()=>m(g(r),E(r)),[r])}(n),/*#__PURE__*/p(x,{children:[e,/*#__PURE__*/d(C,{content:t}),/*#__PURE__*/d(b,{editor:n,ErrorBoundary:o})]})}function C({content:t}){const[o]=r(),n=function(r){const[e,t]=c(()=>v(r));return B(()=>{function e(){const e=v(r);t(e)}return e(),m(r.registerUpdateListener(()=>{e()}),r.registerEditableListener(()=>{e()}))},[r]),e}(o),i=e();return n?\"function\"==typeof t?t(i):t:null}export{w as RichTextPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as i,forwardRef as a,useState as r,useCallback as n,useMemo as o}from\"react\";import{CAN_USE_DOM as l,mergeRegister as d}from\"lexical\";import{jsx as s,jsxs as c,Fragment as u}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as m}from\"@lexical/text\";const f=l?t:i;function b({editor:e,ariaActiveDescendant:t,ariaAutoComplete:i,ariaControls:a,ariaDescribedBy:l,ariaErrorMessage:d,ariaExpanded:c,ariaInvalid:u,ariaLabel:m,ariaLabelledBy:b,ariaMultiline:p,ariaOwns:x,ariaRequired:E,autoCapitalize:v,className:y,id:C,role:g=\"textbox\",spellCheck:L=!0,style:h,tabIndex:w,\"data-testid\":D,...I},R){const[k,q]=r(e.isEditable()),z=n(t=>{t&&t.ownerDocument&&t.ownerDocument.defaultView?e.setRootElement(t):e.setRootElement(null)},[e]),A=o(()=>function(...e){return t=>{for(const i of e)\"function\"==typeof i?i(t):null!=i&&(i.current=t)}}(R,z),[z,R]);return f(()=>(q(e.isEditable()),e.registerEditableListener(e=>{q(e)})),[e]),/*#__PURE__*/s(\"div\",{\"aria-activedescendant\":k?t:void 0,\"aria-autocomplete\":k?i:\"none\",\"aria-controls\":k?a:void 0,\"aria-describedby\":l,...null!=d?{\"aria-errormessage\":d}:{},\"aria-expanded\":k&&\"combobox\"===g?!!c:void 0,...null!=u?{\"aria-invalid\":u}:{},\"aria-label\":m,\"aria-labelledby\":b,\"aria-multiline\":p,\"aria-owns\":k?x:void 0,\"aria-readonly\":!k||void 0,\"aria-required\":E,autoCapitalize:v,className:y,contentEditable:k,\"data-testid\":D,id:C,ref:A,role:g,spellCheck:L,style:h,tabIndex:w,...I})}const p=/*#__PURE__*/a(b);function x(e){return e.read(\"latest\",m(e.isComposing()))}const E=/*#__PURE__*/a(v);function v(t,i){const{placeholder:a,...r}=t,[n]=e();/*#__PURE__*/\nreturn c(u,{children:[/*#__PURE__*/s(p,{editor:n,...r,ref:i}),null!=a&&/*#__PURE__*/s(y,{editor:n,content:a})]})}function y({content:e,editor:i}){const a=function(e){const[t,i]=r(()=>x(e));return f(()=>{function t(){const t=x(e);i(t)}return t(),d(e.registerUpdateListener(()=>{t()}),e.registerEditableListener(()=>{t()}))},[e]),t}(i),[n,o]=r(i.isEditable());if(t(()=>(o(i.isEditable()),i.registerEditableListener(e=>{o(e)})),[i]),!a)return null;let l=null;return\"function\"==typeof e?l=e(n):null!==e&&(l=e),null===l?null:/*#__PURE__*/s(\"div\",{\"aria-hidden\":!0,children:l})}export{E as ContentEditable,p as ContentEditableElement};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{Component as r}from\"react\";import{jsx as o}from\"react/jsx-runtime\";class t extends r{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(r,o){this.props.onError(r instanceof Error?r:new Error(String(r),{cause:r}),o)}render(){return this.state.hasError?this.props.fallback:this.props.children}}function e({children:r,fallback:e,onError:n}){/*#__PURE__*/\nreturn o(t,{fallback:void 0===e?/*#__PURE__*/o(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"},children:\"An error was thrown.\"}):e,onError:n,children:r})}export{e as LexicalErrorBoundary};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{CAN_USE_DOM as t,HISTORY_MERGE_TAG as r}from\"lexical\";import{useLayoutEffect as i,useEffect as o}from\"react\";const n=t?i:o;function a({ignoreHistoryMergeTagChange:t=!0,ignoreSelectionChange:i=!1,onChange:o}){const[a]=e();return n(()=>{if(o)return a.registerUpdateListener(({editorState:e,dirtyElements:n,dirtyLeaves:s,prevEditorState:c,tags:g})=>{i&&0===n.size&&0===s.size||t&&g.has(r)||c.isEmpty()||o(e,a,g)})},[a,t,i,o]),null}export{a as OnChangePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{registerList as r,ListNode as e,ListItemNode as o,registerListStrictIndentTransform as t}from\"@lexical/list\";import{useLexicalComposerContext as i}from\"@lexical/react/LexicalComposerContext\";import{mergeRegister as n}from\"lexical\";import{useEffect as s}from\"react\";function l({hasStrictIndent:l=!1,shouldPreserveNumbering:m=!1}){const[c]=i();return s(()=>{if(!c.hasNodes([e,o]))throw new Error(\"ListPlugin: ListNode and/or ListItemNode not registered on editor\")},[c]),s(()=>n(r(c,{restoreNumbering:m}),l?t(c):()=>{}),[c,l,m]),function(e){s(()=>r(e),[e])}(c),null}export{l as ListPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as r}from\"@lexical/extension\";import{LinkNode as t,registerLink as e}from\"@lexical/link\";import{useLexicalComposerContext as o}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function l({validateUrl:l,attributes:n}){const[a]=o();return i(()=>{if(!a.hasNodes([t]))throw new Error(\"LinkPlugin: LinkNode not registered on editor\")}),i(()=>e(a,r({attributes:n,validateUrl:l})),[a,l,n]),null}export{l as LinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{AutoLinkNode as e,registerAutoLink as r}from\"@lexical/link\";export{createLinkMatcherWithRegExp}from\"@lexical/link\";import{useLexicalComposerContext as n}from\"@lexical/react/LexicalComposerContext\";import{useEffect as o}from\"react\";function t(n,t,i,a){o(()=>{n.hasNodes([e])||function(e,...r){const n=new URL(\"https://lexical.dev/docs/error\"),o=new URLSearchParams;o.append(\"code\",e);for(const e of r)o.append(\"v\",e);throw n.search=o.toString(),Error(`Minified Lexical error #${e}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}(77)}),o(()=>r(n,{changeHandlers:i?[i]:[],excludeParents:a??[],matchers:t}),[n,t,i,a])}function i({matchers:e,onChange:r,excludeParents:o}){const[i]=n();return t(i,e,r,o),null}export{i as AutoLinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{namedSignals as e}from\"@lexical/extension\";import{registerClickableLink as o}from\"@lexical/link\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function t({newTab:t=!0,disabled:l=!1}){const[n]=r();return i(()=>o(n,e({disabled:l,newTab:t})),[n,t,l]),null}export{t as ClickableLinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{effect as t,signal as e,namedSignals as n,batch as o,getPeerDependencyFromEditor as r}from\"@lexical/extension\";import{mergeRegister as a,UNDO_COMMAND as i,COMMAND_PRIORITY_EDITOR as l,REDO_COMMAND as s,CLEAR_EDITOR_COMMAND as u,CLEAR_HISTORY_COMMAND as d,CAN_REDO_COMMAND as c,CAN_UNDO_COMMAND as p,defineExtension as f,safeCast as h,configExtension as m,COMPOSITION_START_TAG as g,HISTORIC_TAG as y,COMPOSITION_END_TAG as S,PASTE_TAG as _,CUT_TAG as k,HISTORY_PUSH_TAG as v,HISTORY_MERGE_TAG as x,$isRangeSelection as b,$isTextNode as C,$isRootNode as w}from\"lexical\";function E(t,e,n,o,r){if(null===t||0===n.size&&0===o.size&&!r)return 0;const a=e._selection,i=t._selection;if(r)return 1;if(!(b(a)&&b(i)&&i.isCollapsed()&&a.isCollapsed()))return 0;const l=function(t,e,n){const o=t._nodeMap,r=[];for(const t of e){const e=o.get(t);void 0!==e&&r.push(e)}for(const[t,e]of n){if(!e)continue;const n=o.get(t);void 0===n||w(n)||r.push(n)}return r}(e,n,o);if(0===l.length)return 0;if(l.length>1){const n=e._nodeMap,o=n.get(a.anchor.key),r=n.get(i.anchor.key);return o&&r&&!t._nodeMap.has(o.__key)&&C(o)&&1===o.__text.length&&1===a.anchor.offset?2:0}const s=l[0],u=t._nodeMap.get(s.__key);if(!C(u)||!C(s)||u.__mode!==s.__mode)return 0;const d=u.__text,c=s.__text;if(d===c)return 0;const p=a.anchor,f=i.anchor;if(p.key!==f.key||\"text\"!==p.type)return 0;const h=p.offset,m=f.offset,g=c.length-d.length;return 1===g&&m===h-1?2:-1===g&&m===h+1?3:-1===g&&m===h?4:0}function D(t,e,n){let o=n(),r=0,a=o,i=0,l=null;return(s,u,d,c,p,f)=>{const h=n();if(f.has(g)&&(a=o,i=r,l=s),f.has(y))return r=0,o=h,2;f.has(S)&&l&&(o=a,r=i,s=l);const m=f.has(_)||f.has(k)?0:E(s,u,c,p,t.isComposing()),w=(()=>{const n=null===d||d.editor===t,a=f.has(v);if(!a&&n&&f.has(x))return 0;if(1===m)return 2;if(null===s)return 1;const i=u._selection;if(!(c.size>0||p.size>0))return null!==i?0:2;const l=\"number\"==typeof e?e:e.peek();if(!1===a&&0!==m&&m===r&&h<o+l&&n)return 0;if(1===c.size){if(function(t,e,n){const o=e._nodeMap.get(t),r=n._nodeMap.get(t),a=e._selection,i=n._selection;return!(b(a)&&b(i)&&\"element\"===a.anchor.type&&\"element\"===a.focus.type&&\"text\"===i.anchor.type&&\"text\"===i.focus.type||!C(o)||!C(r)||o.__parent!==r.__parent)&&JSON.stringify(e.read(()=>o.exportJSON()))===JSON.stringify(n.read(()=>r.exportJSON()))}(Array.from(c)[0],s,u))return 0}return 1})();return o=h,r=m,w}}function M(t,e){t.undoStack=[],t.redoStack=[],t.current=null,e&&e(t)}function O(t,e,n,o=Date.now,r,f=null){const h=D(t,n,o),m=()=>{r&&r(e)};return m(),a(t.registerCommand(i,()=>(function(t,e,n){const o=e.redoStack,r=e.undoStack;if(0!==r.length){const a=e.current,i=r.pop();null!==a&&(o.push(a),t.dispatchCommand(c,!0)),0===r.length&&t.dispatchCommand(p,!1),e.current=i||null,n&&n(e),i&&i.editor.setEditorState(i.editorState,{tag:y})}}(t,e,r),!0),l),t.registerCommand(s,()=>(function(t,e,n){const o=e.redoStack,r=e.undoStack;if(0!==o.length){const a=e.current;null!==a&&(r.push(a),t.dispatchCommand(p,!0));const i=o.pop();0===o.length&&t.dispatchCommand(c,!1),e.current=i||null,n&&n(e),i&&i.editor.setEditorState(i.editorState,{tag:y})}}(t,e,r),!0),l),t.registerCommand(u,()=>(M(e,r),!1),l),t.registerCommand(d,()=>(M(e,r),t.dispatchCommand(c,!1),t.dispatchCommand(p,!1),!0),l),t.registerUpdateListener(({editorState:n,prevEditorState:o,dirtyLeaves:r,dirtyElements:a,tags:i})=>{const l=e.current,s=e.redoStack,u=e.undoStack,d=null===l?null:l.editorState;if(null!==l&&n===d)return;const g=h(o,n,l,r,a,i);if(1===g){if(0!==s.length&&(e.redoStack=[],t.dispatchCommand(c,!1)),null!==l){u.push({...l});const e=\"number\"==typeof f||null===f?f:f.peek();null!==e&&u.length>e&&u.splice(0,u.length-e),t.dispatchCommand(p,!0)}}else if(2===g)return;e.current={editor:t,editorState:n},m()}))}function z(){return{current:null,redoStack:[],undoStack:[]}}const H=/* @__PURE__ */f({build:(t,{delay:e,createInitialHistoryState:o,disabled:r,maxDepth:a,now:i},l)=>({...n({delay:e,disabled:r,historyState:o(t),maxDepth:a,now:i}),...l.getInitResult()}),config:/* @__PURE__ */h({createInitialHistoryState:z,delay:300,disabled:\"undefined\"==typeof window,maxDepth:null,now:Date.now}),init:()=>({canRedo:e(!1),canUndo:e(!1)}),name:\"@lexical/history/History\",register:(e,n,r)=>{const{canUndo:a,canRedo:i}=r.getInitResult(),l=r.getOutput(),s=t=>o(()=>{a.value=null!=t&&t.undoStack.length>0,i.value=null!=t&&t.redoStack.length>0});return t(()=>{if(!l.disabled.value)return O(e,l.historyState.value,l.delay,()=>l.now.peek()(),s,l.maxDepth);s(null)})}});const I=/* @__PURE__ */f({build:(t,{disabled:e,parentEditor:o})=>n({disabled:e,parentEditor:o||t._parentEditor}),config:/* @__PURE__ */h({disabled:!1,parentEditor:null}),dependencies:[/* @__PURE__ */m(H,{disabled:!0})],name:\"@lexical/history/SharedHistory\",register:(e,n,a)=>t(()=>{const{disabled:t,parentEditor:e}=a.getOutput();if(!t.value){const{output:t}=a.getDependency(H),n=function(t){return t?r(t,H.name):null}(e.value);if(!n)return;const i=n.output;o(()=>{t.delay.value=i.delay.value,t.historyState.value=i.historyState.value,t.now.value=i.now.value,t.disabled.value=i.disabled.value})}})});export{H as HistoryExtension,I as SharedHistoryExtension,z as createEmptyHistoryState,O as registerHistory};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEmptyHistoryState as o,registerHistory as r}from\"@lexical/history\";export{createEmptyHistoryState}from\"@lexical/history\";import{useMemo as e,useEffect as i}from\"react\";function a({delay:a,externalHistoryState:c}){const[l]=t();return function(t,a,c=1e3){const l=e(()=>a||o(),[a]);i(()=>r(t,l,c),[c,t,l])}(l,c,a),null}export{a as HistoryPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{signal as e}from\"@lexical/extension\";import{useLexicalComposerContext as r}from\"@lexical/react/LexicalComposerContext\";import{$isScrollableTablesActive as o,setScrollableTablesActive as l,registerTablePlugin as t,registerTableSelectionObserver as a,registerTableCellUnmergeTransform as n,TableCellNode as s}from\"@lexical/table\";import{$fullReconcile as i}from\"lexical\";import{useEffect as c,useState as u}from\"react\";function m({hasCellMerge:m=!0,hasCellBackgroundColor:f=!0,hasTabHandler:p=!0,hasHorizontalScroll:d=!1,hasNestedTables:x=!1}){const[C]=r();c(()=>{o(C)!==d&&(l(C,d),C.update(i))},[C,d]);const g=function(r){const[o]=u(()=>e(r));o.peek()!==r&&(o.value=r);return o}(x);return c(()=>t(C,{hasNestedTables:g}),[C,g]),c(()=>a(C,p),[C,p]),c(()=>{if(!m)return n(C)},[C,m]),c(()=>{if(!f)return C.registerNodeTransform(s,e=>{null!==e.getBackgroundColor()&&e.setBackgroundColor(null)})},[C,f,m]),null}export{m as TablePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import*as e from\"react\";function o({editorRef:o}){const[r]=t();return e.useEffect(()=>{\"function\"==typeof o?o(r):\"object\"==typeof o&&null!==o&&(o.current=r)},[r]),null}export{o as EditorRefPlugin};\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { $getSelection, $isRangeSelection, $setSelection, KEY_DOWN_COMMAND, COMMAND_PRIORITY_LOW } from 'lexical';\nimport { mergeRegister } from '@lexical/utils';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { $getTableCellNodeFromLexicalNode } from '@lexical/table';\n\nimport type { JSX } from 'react';\nimport type { Actions } from 'components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu';\nimport type { TableMutation } from 'components/RteEditor/Plugins/TablePlugin/TablePlugin';\nimport type { SearchResponse } from 'components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { CourseCataloguePlugin } from 'components/RteEditor/Plugins/CourseCataloguePlugin';\nimport {\n LinkPlugin,\n BlockFormatPlugin,\n ListPlugin,\n HistoryPlugin,\n TablePlugin,\n TableCellContextMenu,\n} from 'components/RteEditor/Plugins';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\nexport type Position = {\n xPos: number;\n yPos: number;\n height: number;\n};\n\ninterface ToolBarProps {\n editorScrollPosition: number;\n onCatalogueLinkSearch?: (query: string, linkType: 'course' | 'programme') => void;\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const ToolBarPlugin = ({\n editorScrollPosition,\n onCatalogueLinkSearch,\n catalogueSearchResponse,\n}: ToolBarProps): JSX.Element => {\n const [editor] = useLexicalComposerContext();\n const [position, setPosition] = useState<Position | null>(null);\n const tableref = useRef<TableMutation>(null);\n\n const updateToolbar = useCallback(() => {\n const selection = $getSelection();\n if (!$isRangeSelection(selection)) {\n setPosition(null);\n return;\n }\n\n const anchorNode = selection.anchor.getNode();\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (!tableCell) {\n setPosition(null);\n return;\n }\n\n const domNode = editor.getElementByKey(tableCell.getKey());\n if (!domNode) return;\n\n const rect = domNode.getBoundingClientRect();\n setPosition({\n xPos: rect.right,\n yPos: rect.bottom,\n height: rect.height,\n });\n }, [editor]);\n\n const handleTableAction = (action: Actions) => {\n tableref.current?.mutateTable(action);\n };\n\n const handleResizeScroll = useCallback(() => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const anchorNode = anchor.getNode();\n\n const tableCell = $getTableCellNodeFromLexicalNode(anchorNode);\n if (tableCell) {\n $setSelection(null);\n setPosition(null);\n }\n }\n });\n }, [editor]);\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(updateToolbar);\n }),\n\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n () => {\n setScrollableContainers(handleResizeScroll);\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n removeScrollableContainers(handleResizeScroll);\n }\n\n if (rootElement) {\n setScrollableContainers(handleResizeScroll);\n }\n })\n );\n }, [editor, updateToolbar, handleResizeScroll]);\n\n return (\n <div className={styles['editor__toolbar']}>\n <BlockFormatPlugin />\n <ListPlugin />\n <TablePlugin isActive={Boolean(position)} ref={tableref} />\n {position && (\n <TableCellContextMenu\n position={position}\n parentScrollPosition={editorScrollPosition}\n onAction={handleTableAction}\n />\n )}\n <LinkPlugin parentScrollPosition={editorScrollPosition} />\n {onCatalogueLinkSearch && catalogueSearchResponse && (\n <CourseCataloguePlugin\n parentScrollPosition={editorScrollPosition}\n onSearch={onCatalogueLinkSearch}\n searchResponse={catalogueSearchResponse}\n />\n )}\n <HistoryPlugin />\n </div>\n );\n};\n",".linkform {\n width: 26rem;\n}\n\n.linkform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.linkform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n\n.linkform__input-url-wrapper {\n align-items: center;\n display: flex;\n gap: 0.5rem;\n justify-content: flex-start;\n width: 100%;\n}\n\n.linkform__input-url-wrapper div {\n width: 100%;\n}\n\n.linkform__open-url-button {\n align-items: center;\n aspect-ratio: 1/1;\n background-color: var(--color-uva-white);\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n display: flex;\n height: 2.75rem;\n justify-content: center;\n width: 2.75rem;\n}\n\n.linkform__open-url-button:hover {\n background-color: var(--color-grey-400);\n border: 1px solid var(--color-grey-700);\n}\n\n.linkform__open-url-button:active {\n background-color: var(--color-uva-black);\n border: 1px solid var(--color-uva-black);\n color: var(--color-uva-white);\n}\n\n.editor__toolbar-button:active:hover {\n color: var(--color-uva-white);\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId } from 'react';\n\nimport type { ChangeEvent, JSX } from 'react';\nimport type { LinkType } from 'components/RteEditor/Plugins/LinkPlugin';\n\nimport styles from './AddLinkForm.module.css';\n\nimport { ensureHttps, validateUrlWithProtocol } from 'components/RteEditor/Plugins/LinkPlugin/helpers';\nimport { Button, FeedbackBox, FormField, Icon, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface AddLinkFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (url: string, linktext: string) => void;\n isLink: LinkType;\n}\n\nexport interface addLinkFormMethods {\n clearForm: () => void;\n focusFirstField: () => void;\n setDefaults: (url: string, linktext: string) => void;\n}\n\nexport const AddLinkForm = forwardRef(\n (\n { onCloseHandler, onSaveHandler, isLink = { active: false, url: '', linktext: '' } }: AddLinkFormProps,\n ref\n ): JSX.Element => {\n const t = useTranslation();\n const [url, setUrl] = useState<string>(isLink.url || '');\n const [linkText, setLinkText] = useState<string>(isLink.linktext || '');\n const [showLinktextField, setShowLinktextField] = useState<boolean>(false);\n const [urlError, setUrlError] = useState<string | null>(null);\n const [linkTextError, setLinkTextError] = useState<string | null>(null);\n const firstField = useRef<HTMLInputElement>(null);\n const linkId = `link_${useId()}`;\n const textId = `text_${useId()}`;\n\n const handleOpenUrl = () => {\n window.open(ensureHttps(url), '_blank');\n };\n\n const handleUrl = (event: ChangeEvent<HTMLInputElement>) => {\n setUrl(event.target.value);\n };\n\n const handleLinkText = (event: ChangeEvent<HTMLInputElement>) => {\n setLinkText(event.target.value);\n };\n\n const validateUrl = (url: string): boolean => {\n if (validateUrlWithProtocol(url) === false || url.trim() === '') {\n setUrlError(t.errortext.urlNotValid);\n return false;\n }\n setUrlError(null);\n return true;\n };\n\n const validateLinkText = (linkText: string): boolean => {\n if (linkText.trim() === '') {\n setLinkTextError(t.errortext.linkTextNotValid);\n return false;\n }\n setLinkTextError(null);\n return true;\n };\n\n const handleSave = () => {\n if (!validateUrl(url) || (showLinktextField && !validateLinkText(linkText))) {\n return;\n }\n\n onSaveHandler(url, linkText);\n resetForm();\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setUrl('');\n setShowLinktextField(false);\n setUrlError(null);\n setLinkTextError(null);\n };\n\n const setDefaults = (url: string, linktext: string) => {\n setUrl(url);\n if (!linktext && !url) {\n setShowLinktextField(true);\n }\n };\n\n const focusFirstField = () => {\n if (firstField.current) {\n firstField.current.focus();\n }\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField,\n setDefaults,\n }));\n\n return (\n <div className={styles['linkform']}>\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={linkId}>{t.links.linkLabel}</Label>\n <div className={styles['linkform__input-url-wrapper']}>\n <InputField\n id={linkId}\n placeholder={t.links.linkPlaceholder}\n value={url}\n onChange={(event) => handleUrl(event)}\n onFocus={() => setUrlError(null)}\n ref={firstField}\n aria-label={t.aria.labels.linkField}\n />\n {url && (\n <button type=\"button\" onClick={handleOpenUrl} className={styles['linkform__open-url-button']}>\n <Icon name=\"ArrowTopRightOnSquare\" size={20} />\n </button>\n )}\n </div>\n {urlError && <FeedbackBox level=\"error\" feedback={urlError} />}\n </FormField>\n {showLinktextField && (\n <FormField className={styles['linkform__input-field']}>\n <Label htmlFor={textId}>{t.links.linkText}</Label>\n <InputField\n id={textId}\n value={linkText}\n onChange={(event) => handleLinkText(event)}\n onFocus={() => setLinkTextError(null)}\n aria-label={t.aria.labels.linkTextfield}\n />\n {linkTextError && <FeedbackBox level=\"error\" feedback={linkTextError} />}\n </FormField>\n )}\n <div className={styles['linkform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel} type=\"button\">\n {t.common.cancel}\n </Button>\n <Button variant={'primary'} onClick={handleSave} aria-label={t.aria.labels.linkOkButton} type=\"button\">\n {t.links.addLink}\n </Button>\n </div>\n </div>\n );\n }\n);\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $toggleLink, TOGGLE_LINK_COMMAND, LinkNode } from '@lexical/link';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n $createTextNode,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_CRITICAL,\n COMMAND_PRIORITY_LOW,\n KEY_DOWN_COMMAND,\n mergeRegister,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\n\nimport type { ElementNode, BaseSelection } from 'lexical';\nimport type { addLinkFormMethods } from './AddLinkForm/AddLinkFrom';\nimport type { linkFormMethods } from './LinkContextMenu/LinkContextMenu';\n\nimport { AddLinkForm } from './AddLinkForm/AddLinkFrom';\nimport { ensureHttps } from './helpers';\nimport { LinkContextMenu } from './LinkContextMenu/LinkContextMenu';\n\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nconst PREVENT_OPEN_DELAY = 200;\n\nexport interface LinkType {\n active: boolean;\n url: string;\n linktext: string;\n}\n\ntype Position = {\n top: number;\n left: number;\n};\n\ninterface LinkPluginProps {\n parentScrollPosition: number;\n}\n\nexport const LinkPlugin = ({ parentScrollPosition }: LinkPluginProps) => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addLinkForm = useRef<addLinkFormMethods>(undefined);\n const preventOpen = useRef(false);\n const previousLinkText = useRef('');\n const selectedText = useRef('');\n const [isLink, setIsLink] = useState<LinkType>({ active: false, url: '', linktext: '' });\n const isVisibleRef = useRef(isVisible);\n const storedSelection = useRef<BaseSelection | null>(null);\n const linkButtonRef = useRef<HTMLButtonElement>(null);\n const editLinkForm = useRef<linkFormMethods>(undefined);\n\n const storeCursorPosition = () => {\n editor.update(() => {\n const selection = $getSelection();\n storedSelection.current = selection;\n });\n };\n\n const rePositionCursor = () => {\n editor.update(() => {\n const currentSelection = storedSelection.current;\n\n if (currentSelection && $isRangeSelection(currentSelection)) {\n const anchorNode = currentSelection.anchor.getNode();\n const focusNode = currentSelection.focus.getNode();\n\n if (anchorNode && focusNode && anchorNode.isAttached() && focusNode.isAttached()) {\n const anchorLength = anchorNode.getTextContentSize();\n const focusLength = focusNode.getTextContentSize();\n\n if (currentSelection.anchor.offset <= anchorLength && currentSelection.focus.offset <= focusLength) {\n $setSelection(currentSelection);\n return;\n }\n }\n }\n\n editor.getRootElement()?.focus();\n });\n };\n\n const openContextMenu = (url: string, position: Position) => {\n showFlyout({\n position,\n children: (\n <LinkContextMenu\n url={url}\n onSave={(url) => insertLink(url, '')}\n onDelete={() => removeLink()}\n onClose={closeContextMenu}\n ref={editLinkForm}\n />\n ),\n });\n };\n\n const closeContextMenu = () => {\n editLinkForm.current?.clearForm();\n hideFlyout();\n rePositionCursor();\n };\n\n const openFlyout = () => {\n const rect = linkButtonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n storeCursorPosition();\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n setTimeout(() => addLinkForm.current?.setDefaults('', selectedText.current), 0);\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n rePositionCursor();\n };\n\n const insertLink = (url: string, linktext: string) => {\n editor.update(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const linkNode = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (linktext && linktext !== '') {\n if (linkNode) {\n const newTextNode = $createTextNode(linktext);\n linkNode.replace(newTextNode);\n newTextNode.select();\n }\n if (linktext !== previousLinkText.current && previousLinkText.current === '') {\n const { anchor, focus } = selection;\n selection.insertText(linktext);\n anchor.offset -= linktext.length;\n focus.offset = anchor.offset + linktext.length;\n }\n }\n $toggleLink(ensureHttps(url), { target: '_blank' });\n }\n\n closeFlyout();\n });\n };\n\n const removeLink = (): void => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n closeContextMenu();\n };\n\n const flyoutOptions = {\n children: (\n <AddLinkForm\n isLink={isLink}\n onCloseHandler={closeFlyout}\n onSaveHandler={(url, linktext) => insertLink(url, linktext)}\n ref={addLinkForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addLinkForm.current?.clearForm();\n previousLinkText.current = selectedText.current = '';\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addLinkForm.current?.focusFirstField();\n }\n }, [addLinkForm, isVisible]);\n\n useEffect(() => {\n const handleSelectionClickOrChange = (selection: BaseSelection | null) => {\n if ($isRangeSelection(selection) && selection.isCollapsed()) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n const domNode = editor.getElementByKey(selection.anchor.getNode().getKey());\n const position = domNode\n ? { top: domNode.getBoundingClientRect().bottom, left: domNode.getBoundingClientRect().left }\n : { top: 0, left: 0 };\n openContextMenu(node.getURL(), position);\n return true;\n }\n }\n return false;\n };\n\n const unregisterSelect = editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n const selection = $getSelection();\n selectedText.current = selection?.getTextContent() ?? '';\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n const unregisterClick = editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n const selection = $getSelection();\n storeCursorPosition();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n handleSelectionClickOrChange(selection);\n return false;\n },\n 0\n );\n\n return () => {\n unregisterClick();\n unregisterSelect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.key === 'U') {\n const selection = $getSelection();\n storeCursorPosition();\n\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n const openFlyoutWithDefaults = (url = '', linkText = '') => {\n openFlyout();\n setTimeout(() => addLinkForm.current?.setDefaults(url, linkText), 0);\n };\n\n if (node) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n previousLinkText.current = node.getTextContent();\n openFlyoutWithDefaults(node.getURL(), node.getTextContent());\n\n return true;\n }\n\n const selectedTextContent = selection.getTextContent();\n if (selectedTextContent !== '') {\n selectedText.current = selectedTextContent;\n openFlyoutWithDefaults('', selectedText.current);\n\n return true;\n }\n\n openFlyout();\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n const removeStatusListener = editor.registerUpdateListener(({ editorState }) => {\n setIsLink(\n editorState.read(() => {\n const selection = $getSelection();\n storeCursorPosition();\n\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode() as ElementNode;\n const node = $getNearestNodeOfType(anchorNode, LinkNode);\n\n if (node) {\n return {\n active: true,\n url: node.getURL(),\n linktext: node.getTextContent(),\n };\n }\n }\n\n return {\n active: false,\n url: '',\n linktext: '',\n };\n })\n );\n });\n\n return () => {\n removeKeyboardShortcut();\n removeStatusListener();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n if (!isVisible) editLinkForm.current?.clearForm();\n }, [isVisible]);\n\n useEffect(() => {\n if (isVisible) {\n closeFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [parentScrollPosition]);\n\n useEffect(() => {\n if (!isLink.active) {\n hideFlyout();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLink]);\n\n const handleOnScroll = () => {\n hideFlyout();\n };\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n closeFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n prevRootElement.removeEventListener('scroll', handleOnScroll);\n }\n\n if (rootElement) {\n rootElement.addEventListener('scroll', handleOnScroll);\n }\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.links.linkTooltip}\n className={clsx(\n styles['editor__toolbar-button'],\n styles[`editor__toolbar-button--link`],\n isLink.active && styles['editor__toolbar-button--active']\n )}\n aria-label={t.aria.labels.link}\n aria-keyshortcuts={t.aria.keyshortcuts.link}\n type=\"button\"\n ref={linkButtonRef}\n >\n <Icon name=\"Link\" size={20} />\n </button>\n {flyout}\n </div>\n </div>\n );\n};\n","import { clsx } from 'clsx';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { CAN_UNDO_COMMAND, CAN_REDO_COMMAND, UNDO_COMMAND, REDO_COMMAND } from 'lexical';\nimport { useEffect, useState } from 'react';\n\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\nexport const HistoryPlugin = () => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n\n const handleUndo = () => {\n editor.dispatchCommand(UNDO_COMMAND, undefined);\n };\n\n const handleRedo = () => {\n editor.dispatchCommand(REDO_COMMAND, undefined);\n };\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_UNDO_COMMAND,\n (payload) => {\n setCanUndo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n useEffect(() => {\n return editor.registerCommand<boolean>(\n CAN_REDO_COMMAND,\n (payload) => {\n setCanRedo(payload);\n return false;\n },\n 1\n );\n }, [editor]);\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <button\n onClick={handleUndo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--undo`])}\n aria-label={t.aria.labels.undo}\n aria-keyshortcuts={t.aria.keyshortcuts.undo}\n disabled={!canUndo}\n title={t.format.undoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepBack\" size={24} />\n </button>\n <button\n onClick={handleRedo}\n className={clsx(styles['editor__toolbar-button'], styles[`editor__toolbar-button--redo`])}\n aria-label={t.aria.labels.redo}\n aria-keyshortcuts={t.aria.keyshortcuts.redo}\n disabled={!canRedo}\n title={t.format.redoTooltip}\n type=\"button\"\n >\n <Icon name=\"StepForwards\" size={24} />\n </button>\n </div>\n );\n};\n",".tableform {\n width: 18rem;\n}\n\n.tableform__input-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n.tableform__footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin-top: 1rem;\n}\n","import { useState, forwardRef, useImperativeHandle, useRef, useId, useEffect } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from './AddTableFrom.module.css';\n\nimport { Button, FormField, InputField, Label } from 'components';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\nimport { removeScrollableContainers, setScrollableContainers } from 'components/RteEditor/helpers';\n\ninterface AddTableFormProps {\n onCloseHandler: () => void;\n onSaveHandler: (nrfOfRows: number, nrOfColumns: number) => void;\n}\n\nexport interface addTableForm {\n clearForm: () => void;\n focusFirstField: () => void;\n}\n\nexport const AddTableForm = forwardRef(({ onCloseHandler, onSaveHandler }: AddTableFormProps, ref) => {\n const t = useTranslation();\n const [rowCount, setRowCount] = useState<number>();\n const [columnCount, setColumnCount] = useState<number>();\n const firstField = useRef<HTMLInputElement>(null);\n const rowId = `row_${useId()}`;\n const columnId = `column_${useId()}`;\n\n const handleDimentionChange = (event: ChangeEvent<HTMLInputElement>, type: string) => {\n const value = event.target.value;\n type === 'row' ? setRowCount(parseInt(value)) : setColumnCount(parseInt(value));\n };\n\n const handleSave = () => {\n if (rowCount !== undefined && columnCount !== undefined) {\n onSaveHandler(rowCount, columnCount);\n resetForm();\n }\n };\n\n const handleClose = () => {\n onCloseHandler();\n resetForm();\n };\n\n const resetForm = () => {\n setRowCount(undefined);\n setColumnCount(undefined);\n };\n\n useImperativeHandle(ref, () => ({\n clearForm: resetForm,\n focusFirstField: () => firstField.current?.focus(),\n }));\n\n useEffect(() => {\n const handleResizeScroll = () => {\n handleClose();\n };\n\n setScrollableContainers(handleResizeScroll);\n\n window.addEventListener('scroll', handleResizeScroll);\n window.addEventListener('resize', handleResizeScroll);\n\n return () => {\n window.removeEventListener('scroll', handleResizeScroll);\n window.removeEventListener('resize', handleResizeScroll);\n removeScrollableContainers(handleResizeScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div className={styles['tableform']}>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={rowId}>{t.table.nrofRows}</Label>\n <InputField\n id={rowId}\n placeholder={t.table.nrofRowsPlaceholder}\n value={rowCount ? rowCount : ''}\n onChange={(event) => handleDimentionChange(event, 'row')}\n aria-label={t.aria.labels.tableRowfield}\n ref={firstField}\n />\n </FormField>\n <FormField className={styles['tableform__input-field']}>\n <Label htmlFor={columnId}>{t.table.nrofColumns}</Label>\n <InputField\n id={columnId}\n placeholder={t.table.nrofColumnsPlaceholder}\n value={columnCount ? columnCount : ''}\n onChange={(event) => handleDimentionChange(event, 'column')}\n aria-label={t.aria.labels.tableColumnfield}\n />\n </FormField>\n <div className={styles['tableform__footer']}>\n <Button variant={'secondary'} onClick={handleClose} aria-label={t.common.cancel}>\n {t.common.cancel}\n </Button>\n <Button\n variant={'primary'}\n onClick={handleSave}\n disabled={!rowCount || !columnCount}\n aria-label={t.aria.labels.tableOkButton}\n >\n {t.common.add}\n </Button>\n </div>\n </div>\n );\n});\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { clsx } from 'clsx';\nimport { $getTableCellNodeFromLexicalNode, $isTableCellNode, TableCellNode } from '@lexical/table';\nimport {\n $getSelection,\n $isRangeSelection,\n $getRoot,\n KEY_DOWN_COMMAND,\n $isNodeSelection,\n COMMAND_PRIORITY_CRITICAL,\n} from 'lexical';\nimport { $getNearestNodeOfType } from '@lexical/utils';\nimport { useRef, useEffect, useImperativeHandle, forwardRef } from 'react';\n\nimport type { TableNode } from '@lexical/table';\nimport type { JSX } from 'react';\nimport type { TextNode } from 'lexical';\nimport type { addTableForm } from './AddTableFrom';\nimport type { Actions } from './TableCellContextMenu';\n\nimport { AddTableForm } from './AddTableFrom';\nimport {\n createTable,\n DEFAULT_COL_WIDTH,\n DEFAULT_EDITOR_WIDTH,\n deleteColumn,\n deleteRow,\n deleteTable,\n getEditorContentWidth,\n getEditorParrentCellWidth,\n insertColumn,\n insertRow,\n PREVENT_OPEN_DELAY,\n} from './helpers';\n\nimport { $createTableWrapperNode } from 'components/RteEditor/nodes';\nimport { useFlyout } from 'components/RteEditor/hooks/useFlyout';\nimport { Icon } from 'components';\nimport styles from 'components/RteEditor/RteEditor.module.css';\nimport { useTranslation } from 'components/RteEditor/hooks/useTranslation';\n\ninterface TablePluginProps {\n isActive: boolean;\n}\nexport interface TableMutation {\n mutateTable: (type: Actions) => void;\n}\n\nexport const TablePlugin = forwardRef(({ isActive }: TablePluginProps, ref): JSX.Element => {\n const t = useTranslation();\n const [editor] = useLexicalComposerContext();\n const { flyout, showFlyout, hideFlyout, isVisible } = useFlyout();\n const addTableForm = useRef<addTableForm>(undefined);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const preventOpen = useRef(false);\n const isVisibleRef = useRef(isVisible);\n\n const openFlyout = () => {\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!preventOpen.current && rect) {\n showFlyout({ position: { top: rect.bottom, left: rect.left }, ...flyoutOptions });\n }\n };\n\n const closeFlyout = () => {\n hideFlyout();\n };\n\n const insertTable = (nrOfRows: number, nrOfColumns: number) => {\n editor.update(() => {\n const selection = $getSelection();\n const tableNode = createTable(nrOfRows, nrOfColumns);\n\n const anchorNode =\n ($isRangeSelection(selection) && selection.anchor.getNode()) ||\n ($isNodeSelection(selection) && selection.getNodes()[0]) ||\n null;\n\n const willBeNested = anchorNode ? $getNearestNodeOfType(anchorNode, TableCellNode) : null;\n\n const availibleWidth = willBeNested\n ? getEditorParrentCellWidth(willBeNested, nrOfColumns, editor)\n : getEditorContentWidth(editor) || DEFAULT_EDITOR_WIDTH;\n\n const perCol = Math.max(DEFAULT_COL_WIDTH, Math.floor(availibleWidth / Math.max(1, nrOfColumns)));\n\n const colWidths = Array.from({ length: nrOfColumns }, () => perCol);\n\n (tableNode as TableNode).setColWidths(colWidths);\n\n const tableWrapper = $createTableWrapperNode();\n tableWrapper.append(tableNode);\n if ($isRangeSelection(selection)) {\n selection.insertNodes([tableWrapper]);\n } else {\n $getRoot().append(tableWrapper);\n }\n const firstDescendant = tableWrapper.getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n });\n\n closeFlyout();\n };\n\n const mutateTable = (action: Actions) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n const currentNode = $getTableCellNodeFromLexicalNode(anchorNode);\n\n if ($isTableCellNode(currentNode)) {\n switch (action) {\n case 'insertRowAbove':\n case 'insertRowBelow':\n insertRow(currentNode, action);\n break;\n case 'deleteRow':\n deleteRow(currentNode);\n break;\n case 'insertColumnLeft':\n case 'insertColumnRight':\n insertColumn(currentNode, action);\n break;\n case 'deleteColumn':\n deleteColumn(currentNode);\n break;\n case 'deleteTable':\n deleteTable(currentNode);\n break;\n }\n }\n }\n });\n };\n\n const flyoutOptions = {\n children: (\n <AddTableForm\n onCloseHandler={closeFlyout}\n onSaveHandler={(rows, columns) => insertTable(rows, columns)}\n ref={addTableForm}\n />\n ),\n };\n\n useEffect(() => {\n if (!isVisible) {\n addTableForm.current?.clearForm();\n setTimeout(() => (preventOpen.current = false), PREVENT_OPEN_DELAY);\n } else {\n preventOpen.current = true;\n addTableForm.current?.focusFirstField();\n }\n }, [addTableForm, isVisible]);\n\n useEffect(() => {\n const removeKeyboardShortcut = editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (event.ctrlKey && event.shiftKey && event.code === 'Digit9') {\n event.preventDefault();\n openFlyout();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_CRITICAL\n );\n\n return () => {\n removeKeyboardShortcut();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor]);\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n }, [isVisible]);\n\n useEffect(() => {\n const removeKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isVisibleRef.current) {\n event.preventDefault();\n event.stopPropagation();\n closeFlyout();\n }\n };\n\n document.addEventListener('keydown', removeKeydown, { capture: true });\n\n return () => {\n document.removeEventListener('keydown', removeKeydown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useImperativeHandle(ref, () => ({\n mutateTable,\n }));\n\n return (\n <div className={styles['editor__toolbar-button-group']}>\n <div className={styles['editor__toolbar-button-flyoutwrapper']}>\n <button\n onClick={openFlyout}\n title={t.table.tableTooltip}\n className={clsx(styles['editor__toolbar-button'], isActive && styles[`editor__toolbar-button--active`])}\n aria-label={t.aria.labels.table}\n aria-keyshortcuts={t.aria.keyshortcuts.table}\n ref={buttonRef}\n type=\"button\"\n >\n <Icon name=\"Table\" size={24} />\n </button>\n {flyout}\n </div>\n </div>\n );\n});\n",".editor-header__container {\n align-items: flex-start;\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-start;\n max-width: calc(100% - 5rem);\n}\n\n.editor-header__info {\n color: var(--color-grey-700);\n font-size: var(--font-size-text-non-essential);\n}\n","import { useId } from 'react';\n\nimport styles from './EditorHeader.module.css';\n\nimport { Label } from 'components';\n\ninterface EditorHeaderProps {\n label: string;\n info?: string;\n required?: boolean;\n}\n\nexport const EditorHeader = ({ label, info = '', required = false }: EditorHeaderProps) => {\n const infoId = `info_${useId()}`;\n\n return (\n <div className={styles['editor-header__container']}>\n {label !== '' && (\n <div>\n <Label htmlFor={infoId} required={required}>\n {label}\n </Label>\n </div>\n )}\n {info !== '' && <div className={styles['editor-header__info']} dangerouslySetInnerHTML={{ __html: info }} />}\n </div>\n );\n};\n","import { LexicalComposer } from '@lexical/react/LexicalComposer';\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable';\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { $getRoot, $insertNodes, $setSelection, createEditor } from 'lexical';\nimport { ListItemNode, ListNode } from '@lexical/list';\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin';\nimport { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';\nimport { AutoLinkNode, LinkNode } from '@lexical/link';\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table';\nimport { AutoLinkPlugin } from '@lexical/react/LexicalAutoLinkPlugin';\nimport { ClickableLinkPlugin } from '@lexical/react/LexicalClickableLinkPlugin';\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';\nimport { TablePlugin } from '@lexical/react/LexicalTablePlugin';\nimport { useEffect, useId, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { EditorRefPlugin } from '@lexical/react/LexicalEditorRefPlugin';\n\nimport type { RefObject } from 'react';\nimport type { EditorState, LexicalEditor } from 'lexical';\nimport type { SearchResponse } from './Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { exportMap, mergeBoldStrongTags, cleanUpTable } from './helpers';\nimport { MATCHERS, validateUrl } from './Plugins/LinkPlugin/helpers';\nimport styles from './RteEditor.module.css';\nimport { ToolBarPlugin, PasteHandlerPlugin, TableCellResizerPlugin } from './Plugins';\nimport { UvaTheme } from './UvaTheme';\nimport { EditorHeader } from './EditorHeader';\nimport { LanguageProvider, useLanguage } from './Providers/LanguageProvider';\nimport { useTranslation } from './hooks/useTranslation';\nimport { TableWrapperNode, CourseCatalogueNode, CourseCatalogueLinkPlugin } from './nodes';\n\nimport { FeedbackBox } from 'components/FeedbackBox';\n\nexport interface RteEditorProps {\n /** current language setting for the editor labels NOT title ans label */\n currentLanguage?: 'NL' | 'EN' | 'nl' | 'en';\n /** unique id mandatory for the rte */\n editorId: string;\n /** imported content to edit */\n initialValue?: string;\n /** placeholder text in current Language */\n placeholder?: string;\n /** label/title of the RTE in current Language */\n label?: string;\n /** explanation of the text to be filled in, in current Language */\n info?: string;\n /** 'true' the rte field mandatory */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if required and field is empty */\n notValidatedText?: string;\n /** max height in rem default = 20rem*/\n maxHeightInRem?: `${number}rem`;\n /** max number of words 'allowed' but not enforced */\n maxWords?: number;\n /** Ref to the Lexical editor instance */\n rteRef?: RefObject<LexicalEditor> | null;\n /** updated output */\n onChange: (content: string) => void;\n /** callback for catalogue link search */\n onCatalogueLinkSearch?: (query: string, type: 'course' | 'programme') => void;\n /** updated catalogue search results */\n catalogueSearchResponse?: SearchResponse;\n}\n\nexport const Rte = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxHeightInRem = '20rem',\n maxWords,\n rteRef = null,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => {\n const { switchLanguage } = useLanguage();\n const t = useTranslation();\n const [editor] = useState(() => createEditor());\n const [wordCount, setWordCount] = useState(0);\n const [scrollTopPosition, setScrollTopPosition] = useState(0);\n const rteId = useId();\n\n const initialConfig = {\n html: {\n export: exportMap,\n },\n namespace: `UvaRte-${editorId.replace(/\\s+/g, '-').toLowerCase()}`,\n editor,\n theme: UvaTheme,\n onError(error: Error) {\n throw error;\n },\n nodes: [\n ListNode,\n ListItemNode,\n LinkNode,\n AutoLinkNode,\n TableCellNode,\n TableRowNode,\n TableNode,\n TableWrapperNode,\n CourseCatalogueNode,\n ],\n editorState: (editor: LexicalEditor) => {\n const parser = new DOMParser();\n const dom = parser.parseFromString(initialValue, 'text/html');\n const nodes = $generateNodesFromDOM(editor, dom);\n const root = $getRoot();\n root.clear();\n $insertNodes(nodes);\n $setSelection(null);\n },\n };\n\n const getWordCount = (plainText: string): number => {\n if (plainText.trim().length === 0) {\n return 0;\n } else {\n return plainText.split(' ').length;\n }\n };\n\n const handleOnChange = (_editorState: EditorState, editor: LexicalEditor): void => {\n editor.read(() => {\n let htmlContent = '';\n setWordCount(getWordCount($getRoot().getTextContent().replace(/\\s+/g, ' ').trim()));\n htmlContent = mergeBoldStrongTags($generateHtmlFromNodes(editor));\n htmlContent = cleanUpTable(htmlContent);\n onChange(htmlContent);\n });\n };\n\n useEffect(() => {\n switchLanguage(currentLanguage.toUpperCase() as 'NL' | 'EN');\n }, [currentLanguage, switchLanguage]);\n\n useEffect(() => {\n const strippedInitialValue = initialValue\n .replace(/<br\\s*\\/?>|&nbsp;/gi, ' ')\n .replace(/<\\/?[^>]+(>|$)|&[a-z]+;/g, '')\n .replace(/\\s+/g, ' ')\n .trim();\n setWordCount(getWordCount(strippedInitialValue));\n }, [initialValue]);\n\n return (\n <div className={styles['editor__container']}>\n {(label || info || maxWords) && (\n <div className={styles['editor__header']}>\n <EditorHeader label={label} info={info} required={required} />\n {maxWords && maxWords > 0 && (\n <div className={styles['editor__header-word-count']}>\n <span className={clsx({ [styles['editor__header-word-count--alert']]: wordCount > maxWords })}>\n {wordCount}\n </span>\n &nbsp;/&nbsp;{maxWords}\n </div>\n )}\n </div>\n )}\n <div\n className={clsx(styles['editor'], {\n [styles['not-valid']]: notValid,\n })}\n >\n <LexicalComposer initialConfig={initialConfig}>\n <ToolBarPlugin\n editorScrollPosition={scrollTopPosition}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n <div className={styles['editor__field-wrapper']}>\n <RichTextPlugin\n contentEditable={\n <ContentEditable\n className={styles['editor__field']}\n aria-label={t.common.rteAriaLabel}\n aria-placeholder={placeholder}\n title={t.common.rteTitle}\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n spellCheck={false}\n id={`${rteId}_rteEditor`}\n style={{ height: `${maxHeightInRem}`, maxHeight: `${maxHeightInRem}` }}\n onScroll={(event) => setScrollTopPosition(event.currentTarget.scrollTop)}\n />\n }\n placeholder={<div className={styles['editor__placeholder']}>{placeholder}</div>}\n ErrorBoundary={LexicalErrorBoundary}\n />\n <TablePlugin />\n <TableCellResizerPlugin />\n <HistoryPlugin />\n <ListPlugin />\n <LinkPlugin validateUrl={validateUrl} />\n <AutoLinkPlugin matchers={MATCHERS} />\n <ClickableLinkPlugin />\n <OnChangePlugin onChange={handleOnChange} />\n <PasteHandlerPlugin />\n <CourseCatalogueLinkPlugin />\n {rteRef && <EditorRefPlugin editorRef={rteRef} />}\n </div>\n </LexicalComposer>\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n );\n};\n\nexport const RteEditor = ({\n currentLanguage = 'NL',\n editorId,\n initialValue = '',\n placeholder = '',\n label = '',\n info = '',\n required = false,\n notValid = false,\n notValidatedText = '',\n maxWords,\n rteRef,\n onChange,\n onCatalogueLinkSearch,\n catalogueSearchResponse = { state: 'idle', results: [] },\n}: RteEditorProps) => (\n <LanguageProvider>\n <Rte\n currentLanguage={currentLanguage.toUpperCase() as 'NL' | 'EN'}\n editorId={editorId}\n initialValue={initialValue}\n placeholder={placeholder}\n label={label}\n info={info}\n required={required}\n notValid={notValid}\n notValidatedText={notValidatedText}\n maxWords={maxWords}\n rteRef={rteRef}\n onChange={onChange}\n onCatalogueLinkSearch={onCatalogueLinkSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n </LanguageProvider>\n);\n"],"x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"mappings":"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"}
@@ -1040,7 +1040,7 @@ function Te(e) {
1040
1040
  return t.length === 0 ? b(e.childNodes) : t;
1041
1041
  }
1042
1042
  function Ee(e) {
1043
- var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = new O(), r = ae(e), i = t.compute, a = i === void 0 ? "name" : i, o = t.computedStyleSupportsPseudoElements, s = o === void 0 ? t.getComputedStyle !== void 0 : o, c = t.getComputedStyle, l = c === void 0 ? r.getComputedStyle.bind(r) : c, u = t.hidden, d = u === void 0 ? !1 : u;
1043
+ var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = new O(), r = ae(e), i = t.compute, a = i === void 0 ? "name" : i, o = t.computedStyleSupportsPseudoElements, s = o === void 0 ? t.getComputedStyle !== void 0 : o, c = t.getComputedStyle, l = c === void 0 ? r.getComputedStyle.bind(r) : c, u = t.hidden, d = u !== void 0 && u;
1044
1044
  function f(e, t) {
1045
1045
  var n = "";
1046
1046
  if (F(e) && s && (n = `${W(l(e, "::before"))} ${n}`), (ce(e) ? Te(e) : b(e.childNodes).concat(B(e, "aria-owns"))).forEach(function(e) {
@@ -6937,7 +6937,7 @@ function Wr(e, t) {
6937
6937
  }
6938
6938
  function Gr(e) {
6939
6939
  (e !== null || !this.isNot) && J(e, Gr, this);
6940
- let t = e === null ? !1 : e.ownerDocument === e.getRootNode({ composed: !0 }), n = () => `expected document not to contain element, found ${this.utils.stringify(e.cloneNode(!0))} instead`, r = () => "element could not be found in the document";
6940
+ let t = e !== null && e.ownerDocument === e.getRootNode({ composed: !0 }), n = () => `expected document not to contain element, found ${this.utils.stringify(e.cloneNode(!0))} instead`, r = () => "element could not be found in the document";
6941
6941
  return {
6942
6942
  pass: t,
6943
6943
  message: () => [
@@ -7250,7 +7250,7 @@ function Ei(e) {
7250
7250
  }
7251
7251
  function Di(e, t) {
7252
7252
  let n;
7253
- return n = t ? e.nodeName === "DETAILS" && t.nodeName !== "SUMMARY" ? e.hasAttribute("open") : !0 : e.nodeName === "DETAILS" ? e.hasAttribute("open") : !0, !e.hasAttribute("hidden") && n;
7253
+ return n = t ? e.nodeName === "DETAILS" && t.nodeName !== "SUMMARY" ? e.hasAttribute("open") : !0 : e.nodeName !== "DETAILS" || e.hasAttribute("open"), !e.hasAttribute("hidden") && n;
7254
7254
  }
7255
7255
  function Oi(e, t) {
7256
7256
  return Ei(e) && Di(e, t) && (!e.parentElement || Oi(e.parentElement, e));
@@ -7677,4 +7677,4 @@ var Ea = /*#__PURE__*/ Object.freeze({
7677
7677
  expect.extend(Ea);
7678
7678
  //#endregion
7679
7679
 
7680
- //# sourceMappingURL=dist-oLwM--0y.js.map
7680
+ //# sourceMappingURL=dist-CuwCMU7Y.js.map