@uva-glass/component-library 3.55.7 → 3.55.8

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 (665) hide show
  1. package/dist/{Accordion-DvblEUVu.js → Accordion-DaCqVof1.js} +2 -2
  2. package/dist/{Accordion-DvblEUVu.js.map → Accordion-DaCqVof1.js.map} +1 -1
  3. package/dist/{AccordionCard-BXy-plB7.js → AccordionCard-CD5H9gR1.js} +2 -2
  4. package/dist/{AccordionCard-BXy-plB7.js.map → AccordionCard-CD5H9gR1.js.map} +1 -1
  5. package/dist/{ActionList-O9w1hqNg.js → ActionList-C0hD9noC.js} +2 -2
  6. package/dist/{ActionList-O9w1hqNg.js.map → ActionList-C0hD9noC.js.map} +1 -1
  7. package/dist/{AddCatalogueLinkForm-rph4K9P0.js → AddCatalogueLinkForm-DNv2tEdF.js} +5 -5
  8. package/dist/{AddCatalogueLinkForm-rph4K9P0.js.map → AddCatalogueLinkForm-DNv2tEdF.js.map} +1 -1
  9. package/dist/{AppStatusBar-Bca0KFDR.js → AppStatusBar-BK0yaC4G.js} +2 -2
  10. package/dist/{AppStatusBar-Bca0KFDR.js.map → AppStatusBar-BK0yaC4G.js.map} +1 -1
  11. package/dist/{Attention-Bq5UU9I8.js → Attention-xqGAJ7-T.js} +1 -1
  12. package/dist/{Attention-Bq5UU9I8.js.map → Attention-xqGAJ7-T.js.map} +1 -1
  13. package/dist/{Backdrop-D8AHeuBn.js → Backdrop-bQ8kXsge.js} +1 -1
  14. package/dist/{Backdrop-D8AHeuBn.js.map → Backdrop-bQ8kXsge.js.map} +1 -1
  15. package/dist/{Button.module-DJlNwQUj.js → Button.module-BkAiXo3V.js} +1 -1
  16. package/dist/{Button.module-DJlNwQUj.js.map → Button.module-BkAiXo3V.js.map} +1 -1
  17. package/dist/{ButtonGroup-DR80lTLz.js → ButtonGroup-ZqGGZ1rz.js} +2 -2
  18. package/dist/{ButtonGroup-DR80lTLz.js.map → ButtonGroup-ZqGGZ1rz.js.map} +1 -1
  19. package/dist/{Card-DMFyuTmy.js → Card-BH1ySOiP.js} +3 -3
  20. package/dist/{Card-DMFyuTmy.js.map → Card-BH1ySOiP.js.map} +1 -1
  21. package/dist/{Checkbox-D6-b_4dC.js → Checkbox-sAt4To2B.js} +1 -1
  22. package/dist/{Checkbox-D6-b_4dC.js.map → Checkbox-sAt4To2B.js.map} +1 -1
  23. package/dist/{CheckboxButtonBar-5UMIFMKH.js → CheckboxButtonBar-DpNnwLzI.js} +5 -5
  24. package/dist/{CheckboxButtonBar-5UMIFMKH.js.map → CheckboxButtonBar-DpNnwLzI.js.map} +1 -1
  25. package/dist/{Chip-DJHvFToV.js → Chip-9XnXFhoJ.js} +1 -1
  26. package/dist/{Chip-DJHvFToV.js.map → Chip-9XnXFhoJ.js.map} +1 -1
  27. package/dist/{ClipboardButton-geHjMl2J.js → ClipboardButton-Cg6LGUiD.js} +1 -1
  28. package/dist/{ClipboardButton-geHjMl2J.js.map → ClipboardButton-Cg6LGUiD.js.map} +1 -1
  29. package/dist/{Column-BwKEOOuL.js → Column-BwCVSZrG.js} +2 -2
  30. package/dist/{Column-BwKEOOuL.js.map → Column-BwCVSZrG.js.map} +1 -1
  31. package/dist/{Container-BLjtYDqq.js → Container-DK25h_-f.js} +2 -2
  32. package/dist/{Container-BLjtYDqq.js.map → Container-DK25h_-f.js.map} +1 -1
  33. package/dist/{ControlsButton-B1XRpMUM.js → ControlsButton-9uR_zW_F.js} +2 -2
  34. package/dist/{ControlsButton-B1XRpMUM.js.map → ControlsButton-9uR_zW_F.js.map} +1 -1
  35. package/dist/{CopyableText-DkyhZ6wk.js → CopyableText-hSqhyUWx.js} +2 -2
  36. package/dist/{CopyableText-DkyhZ6wk.js.map → CopyableText-hSqhyUWx.js.map} +1 -1
  37. package/dist/{Drawer-e7UFHVg9.js → Drawer-BbVJqFQI.js} +4 -4
  38. package/dist/{Drawer-e7UFHVg9.js.map → Drawer-BbVJqFQI.js.map} +1 -1
  39. package/dist/{EmptyStateDataDisplay-D0QiI8nE.js → EmptyStateDataDisplay-IT2P3ius.js} +2 -2
  40. package/dist/{EmptyStateDataDisplay-D0QiI8nE.js.map → EmptyStateDataDisplay-IT2P3ius.js.map} +1 -1
  41. package/dist/{ExpandableInfoPanel-CnBVVNlJ.js → ExpandableInfoPanel-DMfcJFP3.js} +2 -2
  42. package/dist/{ExpandableInfoPanel-CnBVVNlJ.js.map → ExpandableInfoPanel-DMfcJFP3.js.map} +1 -1
  43. package/dist/{FeedbackBar-ByKp32HE.js → FeedbackBar-DRbJVniP.js} +3 -3
  44. package/dist/{FeedbackBar-ByKp32HE.js.map → FeedbackBar-DRbJVniP.js.map} +1 -1
  45. package/dist/{FeedbackBox-Bu7uB9DP.js → FeedbackBox-CaSxB4uc.js} +2 -2
  46. package/dist/{FeedbackBox-Bu7uB9DP.js.map → FeedbackBox-CaSxB4uc.js.map} +1 -1
  47. package/dist/{FieldHint-fxnEOsVZ.js → FieldHint-FEBzgLI_.js} +2 -2
  48. package/dist/{FieldHint-fxnEOsVZ.js.map → FieldHint-FEBzgLI_.js.map} +1 -1
  49. package/dist/{Fieldset-0LFsZ3Mz.js → Fieldset-D01_rj_p.js} +2 -2
  50. package/dist/{Fieldset-0LFsZ3Mz.js.map → Fieldset-D01_rj_p.js.map} +1 -1
  51. package/dist/{Flyout-DEpzfZOC.js → Flyout-JUwXvgo6.js} +1 -1
  52. package/dist/{Flyout-DEpzfZOC.js.map → Flyout-JUwXvgo6.js.map} +1 -1
  53. package/dist/{FormField-BZSoQdp9.js → FormField-CcV84TfI.js} +2 -2
  54. package/dist/{FormField-BZSoQdp9.js.map → FormField-CcV84TfI.js.map} +1 -1
  55. package/dist/{HorizontalList-C22DaDz-.js → HorizontalList-CLlRGWZX.js} +1 -1
  56. package/dist/{HorizontalList-C22DaDz-.js.map → HorizontalList-CLlRGWZX.js.map} +1 -1
  57. package/dist/{IconButton-CWCMH9uf.js → IconButton-CSNMVEG1.js} +2 -2
  58. package/dist/{IconButton-CWCMH9uf.js.map → IconButton-CSNMVEG1.js.map} +1 -1
  59. package/dist/{InfoBanner-DyznQLGr.js → InfoBanner-DqBWtCVE.js} +1 -1
  60. package/dist/{InfoBanner-DyznQLGr.js.map → InfoBanner-DqBWtCVE.js.map} +1 -1
  61. package/dist/{InfoMessage-I-VlwxVc.js → InfoMessage-COywXu4O.js} +2 -2
  62. package/dist/{InfoMessage-I-VlwxVc.js.map → InfoMessage-COywXu4O.js.map} +1 -1
  63. package/dist/{Input-Bn-arMaC.js → Input-BzKvzbzP.js} +2 -2
  64. package/dist/{Input-Bn-arMaC.js.map → Input-BzKvzbzP.js.map} +1 -1
  65. package/dist/{InputField-BWAy19w9.js → InputField-T01uazlI.js} +2 -2
  66. package/dist/{InputField-BWAy19w9.js.map → InputField-T01uazlI.js.map} +1 -1
  67. package/dist/{Label-o0BcWTUS.js → Label-D0ACrYG3.js} +2 -2
  68. package/dist/{Label-o0BcWTUS.js.map → Label-D0ACrYG3.js.map} +1 -1
  69. package/dist/{Lexical.prod-CqPLSi0R.js → Lexical.prod-8zZnpGo4.js} +1 -1
  70. package/dist/Lexical.prod-8zZnpGo4.js.map +1 -0
  71. package/dist/{LexicalClipboard.prod-BVw_sFpo.js → LexicalClipboard.prod-hbxbsROy.js} +4 -4
  72. package/dist/LexicalClipboard.prod-hbxbsROy.js.map +1 -0
  73. package/dist/{LexicalComposerContext.prod-Ca-YN_fj.js → LexicalComposerContext.prod-y_BRxu3Z.js} +1 -1
  74. package/dist/{LexicalComposerContext.prod-Ca-YN_fj.js.map → LexicalComposerContext.prod-y_BRxu3Z.js.map} +1 -1
  75. package/dist/{LexicalExtension.prod-CUQTgbur.js → LexicalExtension.prod-v8IpET5E.js} +3 -3
  76. package/dist/LexicalExtension.prod-v8IpET5E.js.map +1 -0
  77. package/dist/{LexicalLink.prod-DMhcqD9x.js → LexicalLink.prod-BVUv9-sZ.js} +4 -4
  78. package/dist/LexicalLink.prod-BVUv9-sZ.js.map +1 -0
  79. package/dist/{LexicalList.prod-eYlcb5Ao.js → LexicalList.prod-CCPDDafy.js} +4 -4
  80. package/dist/LexicalList.prod-CCPDDafy.js.map +1 -0
  81. package/dist/{LexicalTable.prod-DlOxUQou.js → LexicalTable.prod-D_9Dr3kL.js} +5 -5
  82. package/dist/LexicalTable.prod-D_9Dr3kL.js.map +1 -0
  83. package/dist/{LexicalUtils.prod-BqcriFWV.js → LexicalUtils.prod-BWhWP8es.js} +2 -2
  84. package/dist/{LexicalUtils.prod-BqcriFWV.js.map → LexicalUtils.prod-BWhWP8es.js.map} +1 -1
  85. package/dist/{LinkContextMenu-ePn1iZ_z.js → LinkContextMenu-CTu2nP2j.js} +2 -2
  86. package/dist/{LinkContextMenu-ePn1iZ_z.js.map → LinkContextMenu-CTu2nP2j.js.map} +1 -1
  87. package/dist/{MenuLink-Cm1yZO_5.js → MenuLink-La_3ANEL.js} +2 -2
  88. package/dist/{MenuLink-Cm1yZO_5.js.map → MenuLink-La_3ANEL.js.map} +1 -1
  89. package/dist/{MetaDataBar-C4QO9oBV.js → MetaDataBar-48J7yPrb.js} +1 -1
  90. package/dist/{MetaDataBar-C4QO9oBV.js.map → MetaDataBar-48J7yPrb.js.map} +1 -1
  91. package/dist/{MetaDataList-CAR1HTYs.js → MetaDataList-Co9WCexh.js} +1 -1
  92. package/dist/{MetaDataList-CAR1HTYs.js.map → MetaDataList-Co9WCexh.js.map} +1 -1
  93. package/dist/{ModalDialog-N50NGnd4.js → ModalDialog-J7xcPcnS.js} +5 -5
  94. package/dist/{ModalDialog-N50NGnd4.js.map → ModalDialog-J7xcPcnS.js.map} +1 -1
  95. package/dist/{MultiSelectBox-Cuh_o-A1.js → MultiSelectBox-BmBxa6PH.js} +3 -3
  96. package/dist/{MultiSelectBox-Cuh_o-A1.js.map → MultiSelectBox-BmBxa6PH.js.map} +1 -1
  97. package/dist/{MultiSelectItem-BF5xRjz5.js → MultiSelectItem-6d8kQgFs.js} +3 -3
  98. package/dist/{MultiSelectItem-BF5xRjz5.js.map → MultiSelectItem-6d8kQgFs.js.map} +1 -1
  99. package/dist/{Notification-CIhsHuF0.js → Notification-BAqCenxt.js} +2 -2
  100. package/dist/{Notification-CIhsHuF0.js.map → Notification-BAqCenxt.js.map} +1 -1
  101. package/dist/{OverlayCloseButton-rttFbAM_.js → OverlayCloseButton-j-7mC4Zz.js} +2 -2
  102. package/dist/{OverlayCloseButton-rttFbAM_.js.map → OverlayCloseButton-j-7mC4Zz.js.map} +1 -1
  103. package/dist/{OverlayStepBar-CjaoYdsh.js → OverlayStepBar-Cj_-0waE.js} +2 -2
  104. package/dist/{OverlayStepBar-CjaoYdsh.js.map → OverlayStepBar-Cj_-0waE.js.map} +1 -1
  105. package/dist/{PageOverlay-S4xsqJha.js → PageOverlay-DqwdG5ve.js} +5 -5
  106. package/dist/{PageOverlay-S4xsqJha.js.map → PageOverlay-DqwdG5ve.js.map} +1 -1
  107. package/dist/{PasteHandlerPlugin-BNp8ST0q.js → PasteHandlerPlugin-Bc6n-G35.js} +6 -6
  108. package/dist/{PasteHandlerPlugin-BNp8ST0q.js.map → PasteHandlerPlugin-Bc6n-G35.js.map} +1 -1
  109. package/dist/{Periods-BYETtB6R.js → Periods-C5cxLlWt.js} +2 -2
  110. package/dist/{Periods-BYETtB6R.js.map → Periods-C5cxLlWt.js.map} +1 -1
  111. package/dist/{ProgrammeCard-76gG7ksx.js → ProgrammeCard-CAAOSWKa.js} +2 -2
  112. package/dist/{ProgrammeCard-76gG7ksx.js.map → ProgrammeCard-CAAOSWKa.js.map} +1 -1
  113. package/dist/{RadioButton-Bto2p5B9.js → RadioButton-CKALsbBb.js} +2 -2
  114. package/dist/{RadioButton-Bto2p5B9.js.map → RadioButton-CKALsbBb.js.map} +1 -1
  115. package/dist/{RadioGroup-JeTjVp5B.js → RadioGroup-DhnnBRJu.js} +3 -3
  116. package/dist/{RadioGroup-JeTjVp5B.js.map → RadioGroup-DhnnBRJu.js.map} +1 -1
  117. package/dist/{Repeater-BhkTEUai.js → Repeater-Bnoqqz0X.js} +2 -2
  118. package/dist/{Repeater-BhkTEUai.js.map → Repeater-Bnoqqz0X.js.map} +1 -1
  119. package/dist/{RteEditor.module-BJLUYSpf.js → RteEditor.module-pWBasED2.js} +1 -1
  120. package/dist/{RteEditor.module-BJLUYSpf.js.map → RteEditor.module-pWBasED2.js.map} +1 -1
  121. package/dist/{SearchField.module-BgxjHaPG.js → SearchField.module-Bn9xQD-f.js} +1 -1
  122. package/dist/{SearchField.module-BgxjHaPG.js.map → SearchField.module-Bn9xQD-f.js.map} +1 -1
  123. package/dist/{SectionNotification-CQqwPTqP.js → SectionNotification-BT0Z2edJ.js} +2 -2
  124. package/dist/{SectionNotification-CQqwPTqP.js.map → SectionNotification-BT0Z2edJ.js.map} +1 -1
  125. package/dist/{SelectListbox.module-HaPs1CLD.js → SelectListbox.module-Df90DNyN.js} +1 -1
  126. package/dist/{SelectListbox.module-HaPs1CLD.js.map → SelectListbox.module-Df90DNyN.js.map} +1 -1
  127. package/dist/{Slider-BlLyrET9.js → Slider-dCmT0VM2.js} +2 -2
  128. package/dist/{Slider-BlLyrET9.js.map → Slider-dCmT0VM2.js.map} +1 -1
  129. package/dist/{Sortable.module-8SoaHfuE.js → Sortable.module-CgDMpWM8.js} +1 -1
  130. package/dist/{Sortable.module-8SoaHfuE.js.map → Sortable.module-CgDMpWM8.js.map} +1 -1
  131. package/dist/{SortableProvider-8HYiBXJS.js → SortableProvider-DV6gWmq_.js} +3 -3
  132. package/dist/{SortableProvider-8HYiBXJS.js.map → SortableProvider-DV6gWmq_.js.map} +1 -1
  133. package/dist/{Spinner-BpElTDIu.js → Spinner-BmPjd2Bv.js} +1 -1
  134. package/dist/{Spinner-BpElTDIu.js.map → Spinner-BmPjd2Bv.js.map} +1 -1
  135. package/dist/{StatusBage-DQDOF5-U.js → StatusBage-CfEIuIPa.js} +2 -2
  136. package/dist/{StatusBage-DQDOF5-U.js.map → StatusBage-CfEIuIPa.js.map} +1 -1
  137. package/dist/{StatusPill-DM7n3I4W.js → StatusPill-CbJV4t-V.js} +2 -2
  138. package/dist/{StatusPill-DM7n3I4W.js.map → StatusPill-CbJV4t-V.js.map} +1 -1
  139. package/dist/{TableCellContextMenu-D0IMQr3E.js → TableCellContextMenu-9V8mnPmU.js} +3 -3
  140. package/dist/{TableCellContextMenu-D0IMQr3E.js.map → TableCellContextMenu-9V8mnPmU.js.map} +1 -1
  141. package/dist/{TableCellResizerPlugin-Bc5y-Qbx.js → TableCellResizerPlugin-Djym940U.js} +5 -5
  142. package/dist/{TableCellResizerPlugin-Bc5y-Qbx.js.map → TableCellResizerPlugin-Djym940U.js.map} +1 -1
  143. package/dist/{TextArea-CuASC9bX.js → TextArea-GR2ZWwLh.js} +2 -2
  144. package/dist/{TextArea-CuASC9bX.js.map → TextArea-GR2ZWwLh.js.map} +1 -1
  145. package/dist/{ToggleSwitch-C7z7JVtx.js → ToggleSwitch-b54K58vY.js} +2 -2
  146. package/dist/{ToggleSwitch-C7z7JVtx.js.map → ToggleSwitch-b54K58vY.js.map} +1 -1
  147. package/dist/{Tooltip-D27p9kh4.js → Tooltip-DvkGwn4j.js} +1 -1
  148. package/dist/{Tooltip-D27p9kh4.js.map → Tooltip-DvkGwn4j.js.map} +1 -1
  149. package/dist/{VarIndicator-C-GueOZD.js → VarIndicator-DoMWwSUm.js} +2 -2
  150. package/dist/{VarIndicator-C-GueOZD.js.map → VarIndicator-DoMWwSUm.js.map} +1 -1
  151. package/dist/{WeekSelector.module-BLPrVYgn.js → WeekSelector.module-DuEbNvok.js} +1 -1
  152. package/dist/{WeekSelector.module-BLPrVYgn.js.map → WeekSelector.module-DuEbNvok.js.map} +1 -1
  153. package/dist/__mocks__/svgrMock.js.map +1 -1
  154. package/dist/{chunk-SZQXB3JV-D6GR5B4F.js → chunk-SZQXB3JV-xjYHmnzP.js} +891 -949
  155. package/dist/{chunk-SZQXB3JV-D6GR5B4F.js.map → chunk-SZQXB3JV-xjYHmnzP.js.map} +1 -1
  156. package/dist/{client-b7M3CmlC.js → client-DJaPTT6C.js} +10 -10
  157. package/dist/{client-b7M3CmlC.js.map → client-DJaPTT6C.js.map} +1 -1
  158. package/dist/{clsx-BD2qMUU1.js → clsx-BWCAbrjV.js} +1 -1
  159. package/dist/{clsx-BD2qMUU1.js.map → clsx-BWCAbrjV.js.map} +1 -1
  160. package/dist/components/Accordion/Accordion.js +1 -1
  161. package/dist/components/Accordion/Accordion.stories.js +2 -2
  162. package/dist/components/Accordion/Accordion.stories.js.map +1 -1
  163. package/dist/components/Accordion/Accordion.test.js +4 -4
  164. package/dist/components/Accordion/Accordion.test.js.map +1 -1
  165. package/dist/components/Accordion/index.js +1 -1
  166. package/dist/components/AccordionCard/AccordionCard.d.ts +1 -1
  167. package/dist/components/AccordionCard/AccordionCard.js +1 -1
  168. package/dist/components/AccordionCard/AccordionCard.stories.js +2 -2
  169. package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
  170. package/dist/components/AccordionCard/AccordionCard.test.js +4 -4
  171. package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
  172. package/dist/components/AccordionCard/index.js +1 -1
  173. package/dist/components/ActionList/ActionList.d.ts +1 -1
  174. package/dist/components/ActionList/ActionList.js +1 -1
  175. package/dist/components/ActionList/ActionList.stories.js +1 -1
  176. package/dist/components/ActionList/ActionList.stories.js.map +1 -1
  177. package/dist/components/ActionList/ActionList.test.js +4 -4
  178. package/dist/components/ActionList/ActionList.test.js.map +1 -1
  179. package/dist/components/ActionList/index.js +1 -1
  180. package/dist/components/AppStatusBar/AppStatusBar.d.ts +1 -1
  181. package/dist/components/AppStatusBar/AppStatusBar.js +1 -1
  182. package/dist/components/AppStatusBar/AppStatusBar.stories.js +1 -1
  183. package/dist/components/AppStatusBar/AppStatusBar.stories.js.map +1 -1
  184. package/dist/components/AppStatusBar/AppStatusBar.test.js +3 -3
  185. package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
  186. package/dist/components/AppStatusBar/index.js +1 -1
  187. package/dist/components/Attention/Attention.d.ts +1 -1
  188. package/dist/components/Attention/Attention.js +1 -1
  189. package/dist/components/Attention/Attention.stories.js +1 -1
  190. package/dist/components/Attention/Attention.stories.js.map +1 -1
  191. package/dist/components/Attention/Attention.test.js +3 -3
  192. package/dist/components/Attention/Attention.test.js.map +1 -1
  193. package/dist/components/Attention/index.js +1 -1
  194. package/dist/components/Backdrop/Backdrop.d.ts +1 -1
  195. package/dist/components/Backdrop/Backdrop.js +1 -1
  196. package/dist/components/Backdrop/Backdrop.stories.js +2 -2
  197. package/dist/components/Backdrop/Backdrop.stories.js.map +1 -1
  198. package/dist/components/Backdrop/Backdrop.test.js +3 -3
  199. package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
  200. package/dist/components/Backdrop/index.js +1 -1
  201. package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  202. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  203. package/dist/components/ButtonGroup/ButtonGroup.stories.js +2 -2
  204. package/dist/components/ButtonGroup/ButtonGroup.stories.js.map +1 -1
  205. package/dist/components/ButtonGroup/index.js +1 -1
  206. package/dist/components/Buttons/Button.js +2 -2
  207. package/dist/components/Buttons/Button.js.map +1 -1
  208. package/dist/components/Buttons/Button.stories.js +1 -1
  209. package/dist/components/Buttons/Button.stories.js.map +1 -1
  210. package/dist/components/Buttons/Button.test.js +2 -2
  211. package/dist/components/Buttons/Button.test.js.map +1 -1
  212. package/dist/components/Buttons/LinkButton.js +2 -2
  213. package/dist/components/Buttons/LinkButton.js.map +1 -1
  214. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  215. package/dist/components/Buttons/LinkButton.stories.js.map +1 -1
  216. package/dist/components/Buttons/LinkButton.test.js +2 -2
  217. package/dist/components/Buttons/LinkButton.test.js.map +1 -1
  218. package/dist/components/Buttons/MenuButton.d.ts +1 -1
  219. package/dist/components/Buttons/MenuButton.js +2 -2
  220. package/dist/components/Buttons/MenuButton.js.map +1 -1
  221. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  222. package/dist/components/Buttons/MenuButton.stories.js.map +1 -1
  223. package/dist/components/Buttons/MenuButton.test.js +2 -2
  224. package/dist/components/Buttons/MenuButton.test.js.map +1 -1
  225. package/dist/components/Card/Card.d.ts +1 -1
  226. package/dist/components/Card/Card.js +1 -1
  227. package/dist/components/Card/Card.stories.js +1 -1
  228. package/dist/components/Card/Card.stories.js.map +1 -1
  229. package/dist/components/Card/Card.test.js +3 -3
  230. package/dist/components/Card/Card.test.js.map +1 -1
  231. package/dist/components/Card/index.js +1 -1
  232. package/dist/components/Checkbox/Checkbox.js +1 -1
  233. package/dist/components/Checkbox/Checkbox.stories.js +4 -4
  234. package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
  235. package/dist/components/Checkbox/Checkbox.test.js +4 -4
  236. package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
  237. package/dist/components/Checkbox/index.js +1 -1
  238. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.d.ts +1 -1
  239. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +1 -1
  240. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +3 -3
  241. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
  242. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +3 -3
  243. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
  244. package/dist/components/CheckboxButtonBar/index.js +1 -1
  245. package/dist/components/CheckboxTree/CheckboxTree.d.ts +1 -1
  246. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  247. package/dist/components/CheckboxTree/CheckboxTree.stories.js +4 -4
  248. package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
  249. package/dist/components/CheckboxTree/index.js +1 -1
  250. package/dist/components/Chip/Chip.d.ts +1 -1
  251. package/dist/components/Chip/Chip.js +1 -1
  252. package/dist/components/Chip/Chip.stories.js +2 -2
  253. package/dist/components/Chip/Chip.stories.js.map +1 -1
  254. package/dist/components/Chip/index.js +1 -1
  255. package/dist/components/ControlsButton/ControlsButton.d.ts +1 -1
  256. package/dist/components/ControlsButton/ControlsButton.js +1 -1
  257. package/dist/components/ControlsButton/ControlsButton.stories.js +4 -4
  258. package/dist/components/ControlsButton/ControlsButton.stories.js.map +1 -1
  259. package/dist/components/ControlsButton/index.js +1 -1
  260. package/dist/components/CopyableText/CopyableText.d.ts +1 -1
  261. package/dist/components/CopyableText/CopyableText.js +1 -1
  262. package/dist/components/CopyableText/CopyableText.stories.js +1 -1
  263. package/dist/components/CopyableText/CopyableText.stories.js.map +1 -1
  264. package/dist/components/CopyableText/index.js +1 -1
  265. package/dist/components/Drawer/Drawer.d.ts +1 -1
  266. package/dist/components/Drawer/Drawer.js +1 -1
  267. package/dist/components/Drawer/Drawer.stories.js +3 -3
  268. package/dist/components/Drawer/Drawer.stories.js.map +1 -1
  269. package/dist/components/Drawer/index.js +1 -1
  270. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.d.ts +1 -1
  271. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js +1 -1
  272. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js +1 -1
  273. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
  274. package/dist/components/EmptyStateDataDisplay/index.js +1 -1
  275. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.d.ts +1 -1
  276. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +1 -1
  277. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +2 -2
  278. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -1
  279. package/dist/components/ExpandableInfoPanel/index.js +1 -1
  280. package/dist/components/FeedbackBar/FeedbackBar.d.ts +1 -1
  281. package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
  282. package/dist/components/FeedbackBar/FeedbackBar.stories.js +3 -3
  283. package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
  284. package/dist/components/FeedbackBar/FeedbackBar.test.js +3 -3
  285. package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
  286. package/dist/components/FeedbackBar/index.js +1 -1
  287. package/dist/components/FeedbackBox/FeedbackBox.d.ts +1 -1
  288. package/dist/components/FeedbackBox/FeedbackBox.js +1 -1
  289. package/dist/components/FeedbackBox/FeedbackBox.stories.js +3 -3
  290. package/dist/components/FeedbackBox/FeedbackBox.stories.js.map +1 -1
  291. package/dist/components/FeedbackBox/index.js +1 -1
  292. package/dist/components/FieldHint/FieldHint.d.ts +1 -1
  293. package/dist/components/FieldHint/FieldHint.js +1 -1
  294. package/dist/components/FieldHint/FieldHint.stories.js +1 -1
  295. package/dist/components/FieldHint/FieldHint.stories.js.map +1 -1
  296. package/dist/components/FieldHint/index.js +1 -1
  297. package/dist/components/Fieldset/Fieldset.d.ts +1 -1
  298. package/dist/components/Fieldset/Fieldset.js +1 -1
  299. package/dist/components/Fieldset/Fieldset.stories.js +5 -5
  300. package/dist/components/Fieldset/Fieldset.stories.js.map +1 -1
  301. package/dist/components/Fieldset/index.js +1 -1
  302. package/dist/components/FormField/FormField.d.ts +1 -1
  303. package/dist/components/FormField/FormField.js +1 -1
  304. package/dist/components/FormField/FormField.stories.js +4 -4
  305. package/dist/components/FormField/FormField.stories.js.map +1 -1
  306. package/dist/components/FormField/index.js +1 -1
  307. package/dist/components/FormInput/FormInput.d.ts +1 -1
  308. package/dist/components/FormInput/FormInput.js +1 -1
  309. package/dist/components/FormInput/FormInput.stories.js +2 -2
  310. package/dist/components/FormInput/FormInput.stories.js.map +1 -1
  311. package/dist/components/FormInput/index.js +1 -1
  312. package/dist/components/GridRow/Column/Column.d.ts +1 -1
  313. package/dist/components/GridRow/Column/Column.js +1 -1
  314. package/dist/components/GridRow/Column/index.js +1 -1
  315. package/dist/components/GridRow/GridRow.d.ts +2 -2
  316. package/dist/components/GridRow/GridRow.js +2 -2
  317. package/dist/components/GridRow/GridRow.js.map +1 -1
  318. package/dist/components/GridRow/GridRow.stories.js.map +1 -1
  319. package/dist/components/HorizontalList/HorizontalList.d.ts +1 -1
  320. package/dist/components/HorizontalList/HorizontalList.js +1 -1
  321. package/dist/components/HorizontalList/HorizontalList.stories.js +1 -1
  322. package/dist/components/HorizontalList/HorizontalList.stories.js.map +1 -1
  323. package/dist/components/HorizontalList/index.js +1 -1
  324. package/dist/components/Icon/Icon.js +1 -1
  325. package/dist/components/Icon/Icon.js.map +1 -1
  326. package/dist/components/Icon/Icon.stories.d.ts +1 -1
  327. package/dist/components/Icon/Icon.stories.js +2 -2
  328. package/dist/components/Icon/Icon.stories.js.map +1 -1
  329. package/dist/components/Icon/icons/index.js +1 -1
  330. package/dist/components/IconButton/IconButton.js +1 -1
  331. package/dist/components/IconButton/IconButton.stories.js +2 -2
  332. package/dist/components/IconButton/IconButton.stories.js.map +1 -1
  333. package/dist/components/IconButton/index.js +1 -1
  334. package/dist/components/InfoBanner/InfoBanner.d.ts +1 -1
  335. package/dist/components/InfoBanner/InfoBanner.js +1 -1
  336. package/dist/components/InfoBanner/InfoBanner.stories.js +1 -1
  337. package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
  338. package/dist/components/InfoBanner/index.js +1 -1
  339. package/dist/components/InfoMessage/InfoMessage.d.ts +1 -1
  340. package/dist/components/InfoMessage/InfoMessage.js +1 -1
  341. package/dist/components/InfoMessage/InfoMessage.stories.js +1 -1
  342. package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
  343. package/dist/components/InfoMessage/index.js +1 -1
  344. package/dist/components/Input/Input.js +1 -1
  345. package/dist/components/Input/Input.stories.js +1 -1
  346. package/dist/components/Input/Input.stories.js.map +1 -1
  347. package/dist/components/Input/index.js +1 -1
  348. package/dist/components/InputField/InputField.js +1 -1
  349. package/dist/components/InputField/InputField.stories.js +3 -3
  350. package/dist/components/InputField/InputField.stories.js.map +1 -1
  351. package/dist/components/InputField/index.js +1 -1
  352. package/dist/components/Label/Label.d.ts +1 -1
  353. package/dist/components/Label/Label.js +1 -1
  354. package/dist/components/Label/Label.stories.js +1 -1
  355. package/dist/components/Label/Label.stories.js.map +1 -1
  356. package/dist/components/Label/Label.test.js +3 -3
  357. package/dist/components/Label/Label.test.js.map +1 -1
  358. package/dist/components/Label/index.js +1 -1
  359. package/dist/components/MenuLink/MenuLink.d.ts +1 -1
  360. package/dist/components/MenuLink/MenuLink.js +1 -1
  361. package/dist/components/MenuLink/MenuLink.stories.js +1 -1
  362. package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
  363. package/dist/components/MenuLink/index.js +1 -1
  364. package/dist/components/MetaDataBar/MetaDataBar.d.ts +1 -1
  365. package/dist/components/MetaDataBar/MetaDataBar.js +1 -1
  366. package/dist/components/MetaDataBar/MetaDataBar.stories.js +1 -1
  367. package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
  368. package/dist/components/MetaDataBar/MetaDataBar.test.js +2 -2
  369. package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
  370. package/dist/components/MetaDataBar/index.js +1 -1
  371. package/dist/components/MetaDataList/MetaDataList.d.ts +1 -1
  372. package/dist/components/MetaDataList/MetaDataList.js +1 -1
  373. package/dist/components/MetaDataList/MetaDataList.stories.js +2 -2
  374. package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
  375. package/dist/components/MetaDataList/index.js +1 -1
  376. package/dist/components/ModalDialog/ModalDialog.d.ts +1 -1
  377. package/dist/components/ModalDialog/ModalDialog.js +1 -1
  378. package/dist/components/ModalDialog/ModalDialog.stories.js +6 -6
  379. package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
  380. package/dist/components/ModalDialog/index.js +1 -1
  381. package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
  382. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  383. package/dist/components/MultiSelect/MultiSelect.stories.js +3 -3
  384. package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
  385. package/dist/components/MultiSelect/components/MultiSelectHeader.d.ts +1 -1
  386. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  387. package/dist/components/MultiSelect/components/MultiSelectItem.d.ts +1 -1
  388. package/dist/components/MultiSelect/components/MultiSelectItem.js +1 -1
  389. package/dist/components/MultiSelect/index.js +1 -1
  390. package/dist/components/MultiSelectBox/MultiSelectBox.d.ts +1 -1
  391. package/dist/components/MultiSelectBox/MultiSelectBox.js +1 -1
  392. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +2 -2
  393. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
  394. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +3 -3
  395. package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
  396. package/dist/components/MultiSelectBox/index.js +1 -1
  397. package/dist/components/Notification/Notification.d.ts +1 -1
  398. package/dist/components/Notification/Notification.js +1 -1
  399. package/dist/components/Notification/Notification.stories.js +2 -2
  400. package/dist/components/Notification/Notification.stories.js.map +1 -1
  401. package/dist/components/Notification/Notification.test.js +3 -3
  402. package/dist/components/Notification/Notification.test.js.map +1 -1
  403. package/dist/components/Notification/index.js +1 -1
  404. package/dist/components/OverlayCloseButton/OverlayCloseButton.js +1 -1
  405. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +3 -3
  406. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
  407. package/dist/components/OverlayCloseButton/index.js +1 -1
  408. package/dist/components/OverlayStepBar/OverlayStepBar.d.ts +1 -1
  409. package/dist/components/OverlayStepBar/OverlayStepBar.js +1 -1
  410. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +1 -1
  411. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
  412. package/dist/components/OverlayStepBar/index.js +1 -1
  413. package/dist/components/PageOverlay/PageOverlay.d.ts +1 -1
  414. package/dist/components/PageOverlay/PageOverlay.js +1 -1
  415. package/dist/components/PageOverlay/PageOverlay.stories.js +4 -4
  416. package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
  417. package/dist/components/PageOverlay/index.js +1 -1
  418. package/dist/components/PeriodSelector/PeriodSelector.d.ts +1 -1
  419. package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
  420. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
  421. package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
  422. package/dist/components/PeriodSelector/index.js +1 -1
  423. package/dist/components/Periods/Periods.d.ts +1 -1
  424. package/dist/components/Periods/Periods.js +1 -1
  425. package/dist/components/Periods/Periods.stories.js +1 -1
  426. package/dist/components/Periods/Periods.stories.js.map +1 -1
  427. package/dist/components/Periods/index.js +1 -1
  428. package/dist/components/ProgrammeCard/ProgrammeCard.d.ts +1 -1
  429. package/dist/components/ProgrammeCard/ProgrammeCard.js +1 -1
  430. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
  431. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
  432. package/dist/components/ProgrammeCard/index.js +1 -1
  433. package/dist/components/RadioButton/RadioButton.d.ts +1 -1
  434. package/dist/components/RadioButton/RadioButton.js +1 -1
  435. package/dist/components/RadioButton/RadioButton.stories.js +1 -1
  436. package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
  437. package/dist/components/RadioButton/index.js +1 -1
  438. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  439. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  440. package/dist/components/RadioGroup/RadioGroup.stories.js +2 -2
  441. package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
  442. package/dist/components/RadioGroup/Radiogroup.test.js +3 -3
  443. package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
  444. package/dist/components/RadioGroup/index.js +1 -1
  445. package/dist/components/RadioTabSelector/RadioTabSelector.d.ts +1 -1
  446. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  447. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
  448. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js.map +1 -1
  449. package/dist/components/RadioTabSelector/index.js +1 -1
  450. package/dist/components/Repeater/Repeater.d.ts +1 -1
  451. package/dist/components/Repeater/Repeater.js +1 -1
  452. package/dist/components/Repeater/Repeater.stories.js +2 -2
  453. package/dist/components/Repeater/Repeater.stories.js.map +1 -1
  454. package/dist/components/Repeater/index.js +1 -1
  455. package/dist/components/RteEditor/EditorHeader/EditorHeader.d.ts +1 -1
  456. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  457. package/dist/components/RteEditor/EditorHeader/index.js +1 -1
  458. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +4 -4
  459. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -1
  460. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.d.ts +1 -1
  461. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
  462. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
  463. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.d.ts +1 -1
  464. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +6 -6
  465. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
  466. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.d.ts +1 -1
  467. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
  468. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
  469. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  470. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  471. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.d.ts +1 -1
  472. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
  473. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  474. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
  475. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.d.ts +1 -1
  476. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +6 -6
  477. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
  478. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  479. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  480. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  481. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  482. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  483. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.d.ts +1 -1
  484. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
  485. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +1 -1
  486. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
  487. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +2 -2
  488. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
  489. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +2 -2
  490. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
  491. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
  492. package/dist/components/RteEditor/Plugins/index.js +4 -4
  493. package/dist/components/RteEditor/Providers/LanguageProvider.d.ts +1 -1
  494. package/dist/components/RteEditor/Providers/LanguageProvider.js.map +1 -1
  495. package/dist/components/RteEditor/RteEditor.d.ts +2 -2
  496. package/dist/components/RteEditor/RteEditor.js +1 -1
  497. package/dist/components/RteEditor/RteEditor.stories.d.ts +1 -1
  498. package/dist/components/RteEditor/RteEditor.stories.js +2 -2
  499. package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
  500. package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
  501. package/dist/components/RteEditor/UvaTheme/UvaTheme.js.map +1 -1
  502. package/dist/components/RteEditor/helpers.js +4 -4
  503. package/dist/components/RteEditor/helpers.js.map +1 -1
  504. package/dist/components/RteEditor/hooks/components/Flyout.js +1 -1
  505. package/dist/components/RteEditor/hooks/useFlyout.js +1 -1
  506. package/dist/components/RteEditor/hooks/useFlyout.js.map +1 -1
  507. package/dist/components/RteEditor/hooks/useTranslation.js.map +1 -1
  508. package/dist/components/RteEditor/index.js +1 -1
  509. package/dist/components/RteEditor/mockCatalogueSearchData.js.map +1 -1
  510. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +3 -3
  511. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
  512. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +3 -3
  513. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
  514. package/dist/components/RteEditor/translations.js.map +1 -1
  515. package/dist/components/SearchField/SearchField.d.ts +2 -2
  516. package/dist/components/SearchField/SearchField.js +2 -2
  517. package/dist/components/SearchField/SearchField.js.map +1 -1
  518. package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
  519. package/dist/components/SearchField/components/ResultOptionBox.js +1 -1
  520. package/dist/components/SearchField/components/ResultOptionBox.js.map +1 -1
  521. package/dist/components/SearchField/components/ResultsOption.d.ts +1 -1
  522. package/dist/components/SearchField/components/ResultsOption.js +1 -1
  523. package/dist/components/SearchField/components/ResultsOption.js.map +1 -1
  524. package/dist/components/SearchField/mockData.js.map +1 -1
  525. package/dist/components/SectionNotification/SectionNotification.d.ts +1 -1
  526. package/dist/components/SectionNotification/SectionNotification.js +1 -1
  527. package/dist/components/SectionNotification/SectionNotification.stories.js +1 -1
  528. package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
  529. package/dist/components/SectionNotification/index.js +1 -1
  530. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  531. package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
  532. package/dist/components/SelectListbox/SelectListbox.d.ts +2 -2
  533. package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
  534. package/dist/components/SelectListbox/SelectProvider.d.ts +1 -1
  535. package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
  536. package/dist/components/SelectListbox/components/SelectButton.js +2 -2
  537. package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
  538. package/dist/components/SelectListbox/components/SelectContainer.d.ts +1 -1
  539. package/dist/components/SelectListbox/components/SelectContainer.js +1 -1
  540. package/dist/components/SelectListbox/components/SelectContainer.js.map +1 -1
  541. package/dist/components/SelectListbox/components/SelectOption.d.ts +1 -1
  542. package/dist/components/SelectListbox/components/SelectOption.js +2 -2
  543. package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
  544. package/dist/components/SelectListbox/components/SelectOptionBox.js +1 -1
  545. package/dist/components/SelectListbox/components/SelectOptionBox.js.map +1 -1
  546. package/dist/components/Slider/Slider.d.ts +1 -1
  547. package/dist/components/Slider/Slider.js +1 -1
  548. package/dist/components/Slider/Slider.stories.js +1 -1
  549. package/dist/components/Slider/Slider.stories.js.map +1 -1
  550. package/dist/components/Slider/index.js +1 -1
  551. package/dist/components/Sortable/Sortable.d.ts +1 -1
  552. package/dist/components/Sortable/Sortable.js +1 -1
  553. package/dist/components/Sortable/Sortable.js.map +1 -1
  554. package/dist/components/Sortable/Sortable.stories.js +2 -2
  555. package/dist/components/Sortable/Sortable.stories.js.map +1 -1
  556. package/dist/components/Sortable/SortableProvider.d.ts +1 -1
  557. package/dist/components/Sortable/SortableProvider.js +1 -1
  558. package/dist/components/Sortable/actions.js.map +1 -1
  559. package/dist/components/Sortable/components/SortableContainer.d.ts +1 -1
  560. package/dist/components/Sortable/components/SortableContainer.js +1 -1
  561. package/dist/components/Sortable/components/SortableHandle.d.ts +1 -1
  562. package/dist/components/Sortable/components/SortableHandle.js +1 -1
  563. package/dist/components/Sortable/components/SortableHandle.js.map +1 -1
  564. package/dist/components/Sortable/components/SortableItem.d.ts +1 -1
  565. package/dist/components/Sortable/components/SortableItem.js +3 -3
  566. package/dist/components/Sortable/components/SortableItem.js.map +1 -1
  567. package/dist/components/Sortable/sortableReducer.js.map +1 -1
  568. package/dist/components/Spinner/Spinner.d.ts +1 -1
  569. package/dist/components/Spinner/Spinner.js +1 -1
  570. package/dist/components/Spinner/Spinner.stories.js +1 -1
  571. package/dist/components/Spinner/Spinner.stories.js.map +1 -1
  572. package/dist/components/Spinner/index.js +1 -1
  573. package/dist/components/StatusBadge/StatusBadge.stories.js +1 -1
  574. package/dist/components/StatusBadge/StatusBadge.stories.js.map +1 -1
  575. package/dist/components/StatusBadge/StatusBadge.test.js +3 -3
  576. package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
  577. package/dist/components/StatusBadge/StatusBage.d.ts +1 -1
  578. package/dist/components/StatusBadge/StatusBage.js +1 -1
  579. package/dist/components/StatusBadge/index.js +1 -1
  580. package/dist/components/StatusPill/StatusPill.d.ts +1 -1
  581. package/dist/components/StatusPill/StatusPill.js +1 -1
  582. package/dist/components/StatusPill/StatusPill.stories.js +2 -2
  583. package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
  584. package/dist/components/StatusPill/index.js +1 -1
  585. package/dist/components/TextArea/TextArea.d.ts +1 -1
  586. package/dist/components/TextArea/TextArea.js +1 -1
  587. package/dist/components/TextArea/TextArea.stories.js +2 -2
  588. package/dist/components/TextArea/TextArea.stories.js.map +1 -1
  589. package/dist/components/TextArea/TextArea.test.js +4 -4
  590. package/dist/components/TextArea/TextArea.test.js.map +1 -1
  591. package/dist/components/TextArea/index.js +1 -1
  592. package/dist/components/ToggleSwitch/ToggleSwitch.d.ts +1 -1
  593. package/dist/components/ToggleSwitch/ToggleSwitch.js +1 -1
  594. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +2 -2
  595. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js.map +1 -1
  596. package/dist/components/ToggleSwitch/index.js +1 -1
  597. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  598. package/dist/components/Tooltip/Tooltip.js +1 -1
  599. package/dist/components/Tooltip/Tooltip.stories.js +2 -2
  600. package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
  601. package/dist/components/Tooltip/index.js +1 -1
  602. package/dist/components/VarIndicator/VarIndicator.d.ts +1 -1
  603. package/dist/components/VarIndicator/VarIndicator.js +1 -1
  604. package/dist/components/VarIndicator/VarIndicator.stories.js +2 -2
  605. package/dist/components/VarIndicator/VarIndicator.stories.js.map +1 -1
  606. package/dist/components/VarIndicator/VarIndicator.test.js +4 -4
  607. package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
  608. package/dist/components/VarIndicator/index.js +1 -1
  609. package/dist/components/WeekSelector/WeekSelector.d.ts +1 -1
  610. package/dist/components/WeekSelector/WeekSelector.js +2 -2
  611. package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
  612. package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
  613. package/dist/components/WeekSelector/components/WeekSelectorButton.d.ts +1 -1
  614. package/dist/components/WeekSelector/components/WeekSelectorButton.js +1 -1
  615. package/dist/components/WeekSelector/components/WeekSelectorButton.js.map +1 -1
  616. package/dist/components/WeekSelector/components/WeekSelectorOption.d.ts +1 -1
  617. package/dist/components/WeekSelector/components/WeekSelectorOption.js +2 -2
  618. package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
  619. package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js +1 -1
  620. package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js.map +1 -1
  621. package/dist/components/WeekSelector/mockdata.js.map +1 -1
  622. package/dist/components/hooks/useDebounce.js.map +1 -1
  623. package/dist/components/hooks/useOnClickOutside.js.map +1 -1
  624. package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
  625. package/dist/components/hooks/useResponsive.js.map +1 -1
  626. package/dist/components/index.js +52 -52
  627. package/dist/{components-BzxAULjf.js → components-D6_Sx8Hs.js} +24 -24
  628. package/dist/{components-BzxAULjf.js.map → components-D6_Sx8Hs.js.map} +1 -1
  629. package/dist/{dist-V_v3kC0L.js → dist-Cxk2-lJw.js} +4 -4
  630. package/dist/{dist-V_v3kC0L.js.map → dist-Cxk2-lJw.js.map} +1 -1
  631. package/dist/{esm-BoujHjK5.js → esm-BJhEQquH.js} +10 -10
  632. package/dist/{esm-BoujHjK5.js.map → esm-BJhEQquH.js.map} +1 -1
  633. package/dist/{helpers-B1VK8xTF.js → helpers-z8cqBNoz.js} +3 -3
  634. package/dist/{helpers-B1VK8xTF.js.map → helpers-z8cqBNoz.js.map} +1 -1
  635. package/dist/{icons-TRhI-4V6.js → icons-ClUPu6KU.js} +1 -1
  636. package/dist/{icons-TRhI-4V6.js.map → icons-ClUPu6KU.js.map} +1 -1
  637. package/dist/index.js +52 -52
  638. package/dist/{lib-BvOQt8El.js → lib-Do6N-CJR.js} +2 -2
  639. package/dist/{lib-BvOQt8El.js.map → lib-Do6N-CJR.js.map} +1 -1
  640. package/dist/{react-18-DxAWL8_m.js → react-18-BAudFSEM.js} +3 -3
  641. package/dist/{react-18-DxAWL8_m.js.map → react-18-BAudFSEM.js.map} +1 -1
  642. package/dist/{react.esm-CweFe1CK.js → react.esm-GvSawg5E.js} +79 -79
  643. package/dist/{react.esm-CweFe1CK.js.map → react.esm-GvSawg5E.js.map} +1 -1
  644. package/dist/setupTests.js +2 -2
  645. package/dist/setupTests.js.map +1 -1
  646. package/dist/storyComponents/ClipboardButton/ClipboardButton.d.ts +1 -1
  647. package/dist/storyComponents/ClipboardButton/ClipboardButton.js +1 -1
  648. package/dist/storyComponents/ClipboardButton/index.js +1 -1
  649. package/dist/storyComponents/Container/Container.d.ts +1 -1
  650. package/dist/storyComponents/Container/Container.js +1 -1
  651. package/dist/storyComponents/Container/index.js +1 -1
  652. package/dist/storybook__react.d.js +5 -5
  653. package/dist/storybook__react.d.js.map +1 -1
  654. package/dist/{test-Pa9Lwbsq.js → test-CpW02epT.js} +2 -2
  655. package/dist/{test-Pa9Lwbsq.js.map → test-CpW02epT.js.map} +1 -1
  656. package/dist/{test-utils-Cmn06m_x.js → test-utils-DcI4ZXle.js} +2 -2
  657. package/dist/{test-utils-Cmn06m_x.js.map → test-utils-DcI4ZXle.js.map} +1 -1
  658. package/package.json +28 -27
  659. package/dist/Lexical.prod-CqPLSi0R.js.map +0 -1
  660. package/dist/LexicalClipboard.prod-BVw_sFpo.js.map +0 -1
  661. package/dist/LexicalExtension.prod-CUQTgbur.js.map +0 -1
  662. package/dist/LexicalLink.prod-DMhcqD9x.js.map +0 -1
  663. package/dist/LexicalList.prod-eYlcb5Ao.js.map +0 -1
  664. package/dist/LexicalTable.prod-DlOxUQou.js.map +0 -1
  665. /package/dist/{chunk-3e0lkp8x.js → chunk-CWhphoD1.js} +0 -0
@@ -20,4 +20,4 @@ var r = {
20
20
  //#endregion
21
21
  export { i as t };
22
22
 
23
- //# sourceMappingURL=MetaDataBar-C4QO9oBV.js.map
23
+ //# sourceMappingURL=MetaDataBar-48J7yPrb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetaDataBar-C4QO9oBV.js","names":[],"sources":["../src/components/MetaDataBar/MetaDataBar.module.css","../src/components/MetaDataBar/MetaDataBar.tsx"],"sourcesContent":[".meta-data-bar {\n align-items: center;\n background-color: var(--color-uva-white);\n color: var(--color-grey-700);\n display: flex;\n flex-wrap: wrap;\n gap: 1.5rem;\n padding: 1rem;\n width: fit-content;\n}\n\n.meta-data-bar__item {\n align-items: center;\n display: flex;\n font-size: var(--font-size-text-non-essential);\n gap: 0.5rem;\n line-height: 1.5rem;\n white-space: nowrap;\n}\n","import type { IconProps } from 'components/Icon';\n\nimport styles from './MetaDataBar.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport type itemType = {\n iconName: IconProps['name'];\n itemLabel: string;\n};\n\nexport interface MetaDataBarProps {\n /** A array of itemType object's to display in the bar. itemType { iconName: IconProps['name']; itemLabel: string; } */\n itemData: itemType[];\n}\n\n/** Represents a component that displays a array of data in a bar. */\nexport const MetaDataBar = ({ itemData }: MetaDataBarProps) => {\n return (\n <div className={styles['meta-data-bar']}>\n {itemData.map(({ iconName, itemLabel }) => {\n return (\n itemLabel.indexOf('undefined') === -1 && (\n <div className={styles['meta-data-bar__item']} key={itemLabel}>\n <Icon name={iconName} size={16} />\n <span className={styles['meta-data-bar__item-label']}>{itemLabel}</span>\n </div>\n )\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;;GCiBa,KAAe,EAAE,kBAE1B,kBAAC,OAAD;CAAK,WAAW,EAAO;WACpB,EAAS,KAAK,EAAE,aAAU,mBAEvB,EAAU,QAAQ,YAAY,KAAK,MACjC,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,GAAD;GAAM,MAAM;GAAU,MAAM;GAAM,CAAA,EAClC,kBAAC,QAAD;GAAM,WAAW,EAAO;aAA+B;GAAiB,CAAA,CACpE;IAH8C,EAG9C,CAGV;CACE,CAAA"}
1
+ {"version":3,"file":"MetaDataBar-48J7yPrb.js","names":[],"sources":["../src/components/MetaDataBar/MetaDataBar.module.css","../src/components/MetaDataBar/MetaDataBar.tsx"],"sourcesContent":[".meta-data-bar {\n align-items: center;\n background-color: var(--color-uva-white);\n color: var(--color-grey-700);\n display: flex;\n flex-wrap: wrap;\n gap: 1.5rem;\n padding: 1rem;\n width: fit-content;\n}\n\n.meta-data-bar__item {\n align-items: center;\n display: flex;\n font-size: var(--font-size-text-non-essential);\n gap: 0.5rem;\n line-height: 1.5rem;\n white-space: nowrap;\n}\n","import type { IconProps } from 'components/Icon';\n\nimport styles from './MetaDataBar.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport type itemType = {\n iconName: IconProps['name'];\n itemLabel: string;\n};\n\nexport interface MetaDataBarProps {\n /** A array of itemType object's to display in the bar. itemType { iconName: IconProps['name']; itemLabel: string; } */\n itemData: itemType[];\n}\n\n/** Represents a component that displays a array of data in a bar. */\nexport const MetaDataBar = ({ itemData }: MetaDataBarProps) => {\n return (\n <div className={styles['meta-data-bar']}>\n {itemData.map(({ iconName, itemLabel }) => {\n return (\n itemLabel.indexOf('undefined') === -1 && (\n <div className={styles['meta-data-bar__item']} key={itemLabel}>\n <Icon name={iconName} size={16} />\n <span className={styles['meta-data-bar__item-label']}>{itemLabel}</span>\n </div>\n )\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;;GCiBa,KAAe,EAAE,kBAE1B,kBAAC,OAAD;CAAK,WAAW,EAAO;WACpB,EAAS,KAAK,EAAE,aAAU,mBAEvB,EAAU,QAAQ,WAAW,MAAM,MACjC,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,GAAD;GAAM,MAAM;GAAU,MAAM;EAAK,CAAA,GACjC,kBAAC,QAAD;GAAM,WAAW,EAAO;aAA+B;EAAgB,CAAA,CACpE;IAH+C,CAG/C,CAGV;AACE,CAAA"}
@@ -21,4 +21,4 @@ var n = {
21
21
  //#endregion
22
22
  export { r as t };
23
23
 
24
- //# sourceMappingURL=MetaDataList-CAR1HTYs.js.map
24
+ //# sourceMappingURL=MetaDataList-Co9WCexh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetaDataList-CAR1HTYs.js","names":[],"sources":["../src/components/MetaDataList/MetaDataList.module.css","../src/components/MetaDataList/MetaDataList.tsx"],"sourcesContent":[".meta-data-list {\n margin: 0;\n}\n\n.meta-data-list__item {\n display: flex;\n gap: 1rem;\n justify-content: space-between;\n padding: 0.5rem 0;\n}\n\n.meta-data-list__item:not(:last-of-type) {\n border-bottom: 1px solid var(--color-grey-400);\n}\n\n.meta-data-list__term {\n color: var(--color-grey-700);\n}\n\n.meta-data-list__description {\n align-items: center;\n display: inline-flex;\n font-weight: var(--semibold);\n margin: 0;\n text-align: right;\n}\n","import type { ReactNode } from 'react';\n\nimport styles from './MetaDataList.module.css';\n\nexport interface MetaDataListProps {\n /** A list of key value pairs to display. The value is be a [ReactNode](https://reactnative.dev/docs/react-node). */\n items: Record<string, ReactNode>;\n}\n\n/** Represents a component of a list of key value pairs. */\nexport const MetaDataList = ({ items }: MetaDataListProps) => (\n <dl className={styles['meta-data-list']}>\n {Object.entries(items).map(([term, description]) => (\n <div key={term} className={styles['meta-data-list__item']}>\n <dt className={styles['meta-data-list__term']}>{term}</dt>\n <dd className={styles['meta-data-list__description']}>{description}</dd>\n </div>\n ))}\n </dl>\n);\n"],"mappings":";;;;;;;GCUa,KAAgB,EAAE,eAC7B,kBAAC,MAAD;CAAI,WAAW,EAAO;WACnB,OAAO,QAAQ,EAAM,CAAC,KAAK,CAAC,GAAM,OACjC,kBAAC,OAAD;EAAgB,WAAW,EAAO;YAAlC,CACE,kBAAC,MAAD;GAAI,WAAW,EAAO;aAA0B;GAAU,CAAA,EAC1D,kBAAC,MAAD;GAAI,WAAW,EAAO;aAAiC;GAAiB,CAAA,CACpE;IAHI,EAGJ,CACN;CACC,CAAA"}
1
+ {"version":3,"file":"MetaDataList-Co9WCexh.js","names":[],"sources":["../src/components/MetaDataList/MetaDataList.module.css","../src/components/MetaDataList/MetaDataList.tsx"],"sourcesContent":[".meta-data-list {\n margin: 0;\n}\n\n.meta-data-list__item {\n display: flex;\n gap: 1rem;\n justify-content: space-between;\n padding: 0.5rem 0;\n}\n\n.meta-data-list__item:not(:last-of-type) {\n border-bottom: 1px solid var(--color-grey-400);\n}\n\n.meta-data-list__term {\n color: var(--color-grey-700);\n}\n\n.meta-data-list__description {\n align-items: center;\n display: inline-flex;\n font-weight: var(--semibold);\n margin: 0;\n text-align: right;\n}\n","import type { ReactNode } from 'react';\n\nimport styles from './MetaDataList.module.css';\n\nexport interface MetaDataListProps {\n /** A list of key value pairs to display. The value is be a [ReactNode](https://reactnative.dev/docs/react-node). */\n items: Record<string, ReactNode>;\n}\n\n/** Represents a component of a list of key value pairs. */\nexport const MetaDataList = ({ items }: MetaDataListProps) => (\n <dl className={styles['meta-data-list']}>\n {Object.entries(items).map(([term, description]) => (\n <div key={term} className={styles['meta-data-list__item']}>\n <dt className={styles['meta-data-list__term']}>{term}</dt>\n <dd className={styles['meta-data-list__description']}>{description}</dd>\n </div>\n ))}\n </dl>\n);\n"],"mappings":";;;;;;;GCUa,KAAgB,EAAE,eAC7B,kBAAC,MAAD;CAAI,WAAW,EAAO;WACnB,OAAO,QAAQ,CAAK,EAAE,KAAK,CAAC,GAAM,OACjC,kBAAC,OAAD;EAAgB,WAAW,EAAO;YAAlC,CACE,kBAAC,MAAD;GAAI,WAAW,EAAO;aAA0B;EAAS,CAAA,GACzD,kBAAC,MAAD;GAAI,WAAW,EAAO;aAAiC;EAAgB,CAAA,CACpE;IAHK,CAGL,CACN;AACC,CAAA"}
@@ -1,7 +1,7 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
2
- import { t } from "./Backdrop-D8AHeuBn.js";
3
- import { t as n } from "./OverlayCloseButton-rttFbAM_.js";
4
- import { t as r } from "./Spinner-BpElTDIu.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
+ import { t } from "./Backdrop-bQ8kXsge.js";
3
+ import { t as n } from "./OverlayCloseButton-j-7mC4Zz.js";
4
+ import { t as r } from "./Spinner-BmPjd2Bv.js";
5
5
  import { useEffect as i, useRef as a, useState as o } from "react";
6
6
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  import { useDialog as u } from "@react-aria/dialog";
@@ -111,4 +111,4 @@ function _(_) {
111
111
  //#endregion
112
112
  export { _ as t };
113
113
 
114
- //# sourceMappingURL=ModalDialog-N50NGnd4.js.map
114
+ //# sourceMappingURL=ModalDialog-J7xcPcnS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalDialog-N50NGnd4.js","names":[],"sources":["../src/components/ModalDialog/ModalDialog.module.css","../src/components/ModalDialog/ModalDialog.tsx"],"sourcesContent":[".modal-dialog {\n --modal-dialog-padding: 1.5rem;\n --modal-dialog-padding-mobile: 1.25rem;\n\n background: var(--color-uva-white);\n box-shadow:\n 0 2px 2px hsl(0deg 0% 0% / 6%),\n 0 4px 3px hsla(0deg 0% 0% / 7%);\n display: flex;\n flex-direction: column;\n\n /* dynamic view height needed to adapt for possible auto hiding of mobile address bar */\n height: 100dvh;\n position: relative;\n width: 100vw;\n}\n\n.modal-dialog--padded {\n padding: 0;\n}\n\n.modal-dialog__content {\n display: flex;\n flex-direction: column;\n height: 100svh;\n justify-content: space-between;\n overflow: hidden;\n overflow-y: auto;\n padding: 0 var(--modal-dialog-padding-mobile);\n width: 100%;\n}\n\n.modal-dialog__children {\n padding-bottom: var(--modal-dialog-padding-mobile);\n}\n\n.modal-dialog__title {\n font-size: var(--font-size-m);\n line-height: var(--line-height-m);\n margin: 0 var(--modal-dialog-padding-mobile) 0 0;\n padding: var(--modal-dialog-padding-mobile);\n}\n\n.modal-dialog--confirm {\n padding: var(--modal-dialog-padding-mobile) 0 0;\n}\n\n.modal-dialog__buttons {\n background-color: var(--color-uva-white);\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n justify-content: flex-start;\n margin: 0 calc(-1 * var(--modal-dialog-padding-mobile));\n padding: var(--modal-dialog-padding-mobile);\n position: sticky;\n right: 0;\n}\n\n.modal-dialog__buttons--border {\n border-top: 1px solid var(--color-grey-300);\n}\n\n.modal-dialog__buttons::before {\n background: linear-gradient(to top, rgba(0 0 0 / 30%), rgba(0 0 0 / 0%));\n bottom: 100%;\n content: \"\";\n height: 10px;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n transition: opacity 0.4s ease-out;\n}\n\n.modal-dialog__buttons--shadow::before {\n opacity: 1; /* Show the shadow when content is scrollable and not scrolled to the bottom */\n}\n\n.modal-dialog__close {\n position: absolute;\n right: var(--modal-dialog-padding-mobile);\n top: var(--modal-dialog-padding-mobile);\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .modal-dialog {\n height: unset;\n max-height: 100svh;\n max-width: 100vw;\n }\n\n .modal-dialog--padded {\n width: 34.25rem;\n }\n\n .modal-dialog--small {\n width: 27.5rem;\n }\n\n .modal-dialog--regular {\n width: 30rem;\n }\n\n .modal-dialog--medium {\n width: 36rem;\n }\n\n .modal-dialog--large {\n width: 65.375rem;\n }\n\n .modal-dialog__title {\n margin-right: var(--modal-dialog-padding);\n padding: var(--modal-dialog-padding);\n }\n\n .modal-dialog__content {\n height: unset;\n padding: 0 var(--modal-dialog-padding);\n }\n\n .modal-dialog--content-with-buttons {\n margin-bottom: 5.75rem;\n }\n\n .modal-dialog__children {\n padding-bottom: var(--modal-dialog-padding);\n }\n\n .modal-dialog--confirm {\n padding: var(--modal-dialog-padding) 0 0;\n }\n\n .modal-dialog__buttons {\n margin: unset;\n padding: var(--modal-dialog-padding);\n position: absolute;\n width: inherit;\n }\n\n .modal-dialog__close {\n position: absolute;\n right: var(--modal-dialog-padding);\n top: var(--modal-dialog-padding);\n }\n}\n","import { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { OverlayContainer, useModal, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport type { FormHTMLAttributes, KeyboardEvent, PropsWithChildren, ReactNode } from 'react';\nimport type { AriaDialogProps } from '@react-types/dialog';\n\nimport styles from './ModalDialog.module.css';\n\nimport { Backdrop } from 'components/Backdrop';\nimport { OverlayCloseButton } from 'components/OverlayCloseButton';\nimport { Spinner } from 'components/Spinner';\n\nexport interface ModalDialogProps {\n /** The buttons of the dialog. */\n buttons?: ReactNode;\n /** `true` if the dialog can be closed by clicking outside of it; otherwise, `false`. The default is `false`. */\n isDismissable?: boolean;\n /** `true` to disable closing the dialog with the keyboard; otherwise, `false`. The default is `false`. */\n isKeyboardDismissDisabled?: boolean;\n /** `true` to show a spinner, if the contents of the dialog is lazy loaded; otherwise, `false`. The default is `false`. */\n isLoading?: boolean;\n /** The `aria-valuetext` value of the [Spinner](/story/atoms-spinner--spinner-example) component. The default is `'Loading'` Used together with `isLoading`. */\n spinnerAriaValueText?: string;\n /** The `aria-label` value of the [OverlayCloseButton](/story/atoms-overlayclosebutton--overlay-close-button-example) component. The default is `'Close'` */\n closeButtonAriaValueText?: string;\n /** `true` to render the dialog opened; otherwise, `false`. The default is `false`. */\n isOpen: boolean;\n /** `true` to disable form validation; otherwise, `false`. The default is `false`. */\n noValidate?: boolean;\n /** The callback function that is invoked when the dialog is closed. */\n onClose?(): void;\n /** The callback function that is invoked when the form is submitted. */\n onSubmit?: FormHTMLAttributes<HTMLFormElement>['onSubmit'];\n /** The `aria-role` value of the dialog. Possible values are `'dialog'`, `'alertdialog'`. The default is `'dialog'`. */\n role?: AriaDialogProps['role'];\n /** The title of the dialog. */\n title?: string;\n /** The contents of the dialog header. */\n headerContent?: ReactNode;\n /** The variant of the dialog. */\n variant?: 'confirm' | 'dialog';\n /** `true` to add padding to the dialog; otherwise, `false`. The default is `false`. */\n padded?: boolean;\n /** Size of the dialog. */\n size?: 'small' | 'regular' | 'medium' | 'large';\n /** `true` to show a border between the main content of the dialog and the buttons; otherwise, `false`. The default is `false`. */\n noButtonBorder?: boolean;\n}\n\n/** Represents a component for a modal dialog. */\nexport function ModalDialog(props: PropsWithChildren<ModalDialogProps>) {\n const {\n buttons,\n children,\n isDismissable = true,\n isKeyboardDismissDisabled = !isDismissable,\n isLoading,\n spinnerAriaValueText = 'Loading',\n closeButtonAriaValueText = 'Close',\n isOpen,\n noValidate = false,\n onClose,\n onSubmit,\n role = 'dialog',\n title,\n headerContent,\n variant = 'dialog',\n padded,\n size = 'regular',\n noButtonBorder = false,\n } = props;\n\n const ref = useRef<HTMLDivElement>(null);\n const formRef = useRef<HTMLFormElement>(null);\n const [isScrollable, setIsScrollable] = useState(false);\n const [isScrolledToBottom, setIsScrolledToBottom] = useState(false);\n\n const { dialogProps, titleProps } = useDialog({ role }, ref);\n const { modalProps } = useModal({ isDisabled: !isOpen });\n const { overlayProps, underlayProps } = useOverlay(\n { isDismissable, isKeyboardDismissDisabled, isOpen, onClose },\n ref\n );\n\n usePreventScroll({ isDisabled: !isOpen });\n\n useEffect(() => {\n const formElement = formRef.current;\n\n function checkScrollable() {\n if (formElement) {\n const scrollHeight = formElement.scrollHeight;\n const clientHeight = formElement.clientHeight;\n const scrollTop = formElement.scrollTop;\n\n setIsScrollable(scrollHeight > clientHeight);\n setIsScrolledToBottom(scrollTop + clientHeight >= scrollHeight);\n }\n }\n\n function handleScrollAndResize() {\n checkScrollable();\n }\n\n if (formElement) {\n formElement.addEventListener('scroll', handleScrollAndResize);\n window.addEventListener('resize', handleScrollAndResize);\n }\n\n const timeoutId = setTimeout(() => {\n checkScrollable();\n }, 0);\n\n return () => {\n if (formElement) {\n formElement.removeEventListener('scroll', handleScrollAndResize);\n }\n window.removeEventListener('resize', handleScrollAndResize);\n clearTimeout(timeoutId);\n };\n }, [isOpen, headerContent]);\n\n function onKeyUp(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n if (!isOpen) return null;\n\n return (\n <OverlayContainer>\n <Backdrop {...underlayProps}>\n {isLoading ? (\n <Spinner ariaValueText={spinnerAriaValueText} />\n ) : (\n <>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope autoFocus contain restoreFocus>\n <div\n {...dialogProps}\n {...modalProps}\n {...overlayProps}\n className={clsx(styles['modal-dialog'], [styles[`modal-dialog--${size}`]], {\n [styles['modal-dialog--confirm']]: variant === 'confirm',\n [styles['modal-dialog--padded']]: padded,\n })}\n onKeyUp={onKeyUp}\n role=\"presentation\"\n ref={ref}\n >\n {(title || headerContent) && variant === 'dialog' && (\n <>\n {title && (\n <h1 {...titleProps} className={styles['modal-dialog__title']}>\n {title}\n </h1>\n )}\n {headerContent}\n {variant === 'dialog' && (\n <span className={styles['modal-dialog__close']}>\n <OverlayCloseButton\n aria-label={closeButtonAriaValueText}\n onClick={onClose}\n paddedModal={padded}\n />\n </span>\n )}\n </>\n )}\n <form\n className={clsx(styles['modal-dialog__content'], {\n [styles['modal-dialog--content-with-buttons']]: buttons,\n })}\n onSubmit={onSubmit}\n noValidate={noValidate}\n ref={formRef}\n >\n <div className={clsx({ [styles['modal-dialog__children']]: !noButtonBorder })}>{children}</div>\n {buttons && (\n <div\n className={clsx(styles['modal-dialog__buttons'], {\n [styles['modal-dialog__buttons--border']]: !noButtonBorder,\n [styles['modal-dialog__buttons--shadow']]: isScrollable && !isScrolledToBottom,\n })}\n >\n {buttons}\n </div>\n )}\n </form>\n </div>\n </FocusScope>\n </>\n )}\n </Backdrop>\n </OverlayContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqDA,SAAgB,EAAY,GAA4C;CACtE,IAAM,EACJ,YACA,aACA,mBAAgB,IAChB,+BAA4B,CAAC,GAC7B,cACA,0BAAuB,WACvB,8BAA2B,SAC3B,WACA,gBAAa,IACb,YACA,aACA,UAAO,UACP,UACA,kBACA,aAAU,UACV,WACA,UAAO,WACP,oBAAiB,OACf,GAEE,IAAM,EAAuB,KAAK,EAClC,IAAU,EAAwB,KAAK,EACvC,CAAC,GAAc,KAAmB,EAAS,GAAM,EACjD,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAE7D,EAAE,gBAAa,kBAAe,EAAU,EAAE,SAAM,EAAE,EAAI,EACtD,EAAE,kBAAe,EAAS,EAAE,YAAY,CAAC,GAAQ,CAAC,EAClD,EAAE,iBAAc,qBAAkB,EACtC;EAAE;EAAe;EAA2B;EAAQ;EAAS,EAC7D,EACD;CAID,AAFA,EAAiB,EAAE,YAAY,CAAC,GAAQ,CAAC,EAEzC,QAAgB;EACd,IAAM,IAAc,EAAQ;EAE5B,SAAS,IAAkB;GACzB,IAAI,GAAa;IACf,IAAM,IAAe,EAAY,cAC3B,IAAe,EAAY,cAC3B,IAAY,EAAY;IAG9B,AADA,EAAgB,IAAe,EAAa,EAC5C,EAAsB,IAAY,KAAgB,EAAa;;;EAInE,SAAS,IAAwB;GAC/B,GAAiB;;EAGnB,AAAI,MACF,EAAY,iBAAiB,UAAU,EAAsB,EAC7D,OAAO,iBAAiB,UAAU,EAAsB;EAG1D,IAAM,IAAY,iBAAiB;GACjC,GAAiB;KAChB,EAAE;EAEL,aAAa;GAKX,AAJI,KACF,EAAY,oBAAoB,UAAU,EAAsB,EAElE,OAAO,oBAAoB,UAAU,EAAsB,EAC3D,aAAa,EAAU;;IAExB,CAAC,GAAQ,EAAc,CAAC;CAE3B,SAAS,EAAQ,GAAsB;EACrC,EAAM,iBAAiB;;CAKzB,OAFK,IAGH,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAU,GAAI;YACX,IACC,kBAAC,GAAD,EAAS,eAAe,GAAwB,CAAA,GAEhD,kBAAA,GAAA,EAAA,UAEE,kBAAC,GAAD;GAAY,WAAA;GAAU,SAAA;GAAQ,cAAA;aAC5B,kBAAC,OAAD;IACE,GAAI;IACJ,GAAI;IACJ,GAAI;IACJ,WAAW,EAAK,EAAO,iBAAiB,CAAC,EAAO,iBAAiB,KAAQ,EAAE;MACxE,EAAO,2BAA2B,MAAY;MAC9C,EAAO,0BAA0B;KACnC,CAAC;IACO;IACT,MAAK;IACA;cAVP,EAYI,KAAS,MAAkB,MAAY,YACvC,kBAAA,GAAA,EAAA,UAAA;KACG,KACC,kBAAC,MAAD;MAAI,GAAI;MAAY,WAAW,EAAO;gBACnC;MACE,CAAA;KAEN;KACA,MAAY,YACX,kBAAC,QAAD;MAAM,WAAW,EAAO;gBACtB,kBAAC,GAAD;OACE,cAAY;OACZ,SAAS;OACT,aAAa;OACb,CAAA;MACG,CAAA;KAER,EAAA,CAAA,EAEL,kBAAC,QAAD;KACE,WAAW,EAAK,EAAO,0BAA0B,GAC9C,EAAO,wCAAwC,GACjD,CAAC;KACQ;KACE;KACZ,KAAK;eANP,CAQE,kBAAC,OAAD;MAAK,WAAW,EAAK,GAAG,EAAO,4BAA4B,CAAC,GAAgB,CAAC;MAAG;MAAe,CAAA,EAC9F,KACC,kBAAC,OAAD;MACE,WAAW,EAAK,EAAO,0BAA0B;QAC9C,EAAO,mCAAmC,CAAC;QAC3C,EAAO,mCAAmC,KAAgB,CAAC;OAC7D,CAAC;gBAED;MACG,CAAA,CAEH;OACH;;GACK,CAAA,EACZ,CAAA;EAEI,CAAA,EACM,CAAA,GAnED"}
1
+ {"version":3,"file":"ModalDialog-J7xcPcnS.js","names":[],"sources":["../src/components/ModalDialog/ModalDialog.module.css","../src/components/ModalDialog/ModalDialog.tsx"],"sourcesContent":[".modal-dialog {\n --modal-dialog-padding: 1.5rem;\n --modal-dialog-padding-mobile: 1.25rem;\n\n background: var(--color-uva-white);\n box-shadow:\n 0 2px 2px hsl(0deg 0% 0% / 6%),\n 0 4px 3px hsla(0deg 0% 0% / 7%);\n display: flex;\n flex-direction: column;\n\n /* dynamic view height needed to adapt for possible auto hiding of mobile address bar */\n height: 100dvh;\n position: relative;\n width: 100vw;\n}\n\n.modal-dialog--padded {\n padding: 0;\n}\n\n.modal-dialog__content {\n display: flex;\n flex-direction: column;\n height: 100svh;\n justify-content: space-between;\n overflow: hidden;\n overflow-y: auto;\n padding: 0 var(--modal-dialog-padding-mobile);\n width: 100%;\n}\n\n.modal-dialog__children {\n padding-bottom: var(--modal-dialog-padding-mobile);\n}\n\n.modal-dialog__title {\n font-size: var(--font-size-m);\n line-height: var(--line-height-m);\n margin: 0 var(--modal-dialog-padding-mobile) 0 0;\n padding: var(--modal-dialog-padding-mobile);\n}\n\n.modal-dialog--confirm {\n padding: var(--modal-dialog-padding-mobile) 0 0;\n}\n\n.modal-dialog__buttons {\n background-color: var(--color-uva-white);\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n justify-content: flex-start;\n margin: 0 calc(-1 * var(--modal-dialog-padding-mobile));\n padding: var(--modal-dialog-padding-mobile);\n position: sticky;\n right: 0;\n}\n\n.modal-dialog__buttons--border {\n border-top: 1px solid var(--color-grey-300);\n}\n\n.modal-dialog__buttons::before {\n background: linear-gradient(to top, rgba(0 0 0 / 30%), rgba(0 0 0 / 0%));\n bottom: 100%;\n content: \"\";\n height: 10px;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n transition: opacity 0.4s ease-out;\n}\n\n.modal-dialog__buttons--shadow::before {\n opacity: 1; /* Show the shadow when content is scrollable and not scrolled to the bottom */\n}\n\n.modal-dialog__close {\n position: absolute;\n right: var(--modal-dialog-padding-mobile);\n top: var(--modal-dialog-padding-mobile);\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .modal-dialog {\n height: unset;\n max-height: 100svh;\n max-width: 100vw;\n }\n\n .modal-dialog--padded {\n width: 34.25rem;\n }\n\n .modal-dialog--small {\n width: 27.5rem;\n }\n\n .modal-dialog--regular {\n width: 30rem;\n }\n\n .modal-dialog--medium {\n width: 36rem;\n }\n\n .modal-dialog--large {\n width: 65.375rem;\n }\n\n .modal-dialog__title {\n margin-right: var(--modal-dialog-padding);\n padding: var(--modal-dialog-padding);\n }\n\n .modal-dialog__content {\n height: unset;\n padding: 0 var(--modal-dialog-padding);\n }\n\n .modal-dialog--content-with-buttons {\n margin-bottom: 5.75rem;\n }\n\n .modal-dialog__children {\n padding-bottom: var(--modal-dialog-padding);\n }\n\n .modal-dialog--confirm {\n padding: var(--modal-dialog-padding) 0 0;\n }\n\n .modal-dialog__buttons {\n margin: unset;\n padding: var(--modal-dialog-padding);\n position: absolute;\n width: inherit;\n }\n\n .modal-dialog__close {\n position: absolute;\n right: var(--modal-dialog-padding);\n top: var(--modal-dialog-padding);\n }\n}\n","import { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { OverlayContainer, useModal, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport type { FormHTMLAttributes, KeyboardEvent, PropsWithChildren, ReactNode } from 'react';\nimport type { AriaDialogProps } from '@react-types/dialog';\n\nimport styles from './ModalDialog.module.css';\n\nimport { Backdrop } from 'components/Backdrop';\nimport { OverlayCloseButton } from 'components/OverlayCloseButton';\nimport { Spinner } from 'components/Spinner';\n\nexport interface ModalDialogProps {\n /** The buttons of the dialog. */\n buttons?: ReactNode;\n /** `true` if the dialog can be closed by clicking outside of it; otherwise, `false`. The default is `false`. */\n isDismissable?: boolean;\n /** `true` to disable closing the dialog with the keyboard; otherwise, `false`. The default is `false`. */\n isKeyboardDismissDisabled?: boolean;\n /** `true` to show a spinner, if the contents of the dialog is lazy loaded; otherwise, `false`. The default is `false`. */\n isLoading?: boolean;\n /** The `aria-valuetext` value of the [Spinner](/story/atoms-spinner--spinner-example) component. The default is `'Loading'` Used together with `isLoading`. */\n spinnerAriaValueText?: string;\n /** The `aria-label` value of the [OverlayCloseButton](/story/atoms-overlayclosebutton--overlay-close-button-example) component. The default is `'Close'` */\n closeButtonAriaValueText?: string;\n /** `true` to render the dialog opened; otherwise, `false`. The default is `false`. */\n isOpen: boolean;\n /** `true` to disable form validation; otherwise, `false`. The default is `false`. */\n noValidate?: boolean;\n /** The callback function that is invoked when the dialog is closed. */\n onClose?(): void;\n /** The callback function that is invoked when the form is submitted. */\n onSubmit?: FormHTMLAttributes<HTMLFormElement>['onSubmit'];\n /** The `aria-role` value of the dialog. Possible values are `'dialog'`, `'alertdialog'`. The default is `'dialog'`. */\n role?: AriaDialogProps['role'];\n /** The title of the dialog. */\n title?: string;\n /** The contents of the dialog header. */\n headerContent?: ReactNode;\n /** The variant of the dialog. */\n variant?: 'confirm' | 'dialog';\n /** `true` to add padding to the dialog; otherwise, `false`. The default is `false`. */\n padded?: boolean;\n /** Size of the dialog. */\n size?: 'small' | 'regular' | 'medium' | 'large';\n /** `true` to show a border between the main content of the dialog and the buttons; otherwise, `false`. The default is `false`. */\n noButtonBorder?: boolean;\n}\n\n/** Represents a component for a modal dialog. */\nexport function ModalDialog(props: PropsWithChildren<ModalDialogProps>) {\n const {\n buttons,\n children,\n isDismissable = true,\n isKeyboardDismissDisabled = !isDismissable,\n isLoading,\n spinnerAriaValueText = 'Loading',\n closeButtonAriaValueText = 'Close',\n isOpen,\n noValidate = false,\n onClose,\n onSubmit,\n role = 'dialog',\n title,\n headerContent,\n variant = 'dialog',\n padded,\n size = 'regular',\n noButtonBorder = false,\n } = props;\n\n const ref = useRef<HTMLDivElement>(null);\n const formRef = useRef<HTMLFormElement>(null);\n const [isScrollable, setIsScrollable] = useState(false);\n const [isScrolledToBottom, setIsScrolledToBottom] = useState(false);\n\n const { dialogProps, titleProps } = useDialog({ role }, ref);\n const { modalProps } = useModal({ isDisabled: !isOpen });\n const { overlayProps, underlayProps } = useOverlay(\n { isDismissable, isKeyboardDismissDisabled, isOpen, onClose },\n ref\n );\n\n usePreventScroll({ isDisabled: !isOpen });\n\n useEffect(() => {\n const formElement = formRef.current;\n\n function checkScrollable() {\n if (formElement) {\n const scrollHeight = formElement.scrollHeight;\n const clientHeight = formElement.clientHeight;\n const scrollTop = formElement.scrollTop;\n\n setIsScrollable(scrollHeight > clientHeight);\n setIsScrolledToBottom(scrollTop + clientHeight >= scrollHeight);\n }\n }\n\n function handleScrollAndResize() {\n checkScrollable();\n }\n\n if (formElement) {\n formElement.addEventListener('scroll', handleScrollAndResize);\n window.addEventListener('resize', handleScrollAndResize);\n }\n\n const timeoutId = setTimeout(() => {\n checkScrollable();\n }, 0);\n\n return () => {\n if (formElement) {\n formElement.removeEventListener('scroll', handleScrollAndResize);\n }\n window.removeEventListener('resize', handleScrollAndResize);\n clearTimeout(timeoutId);\n };\n }, [isOpen, headerContent]);\n\n function onKeyUp(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n if (!isOpen) return null;\n\n return (\n <OverlayContainer>\n <Backdrop {...underlayProps}>\n {isLoading ? (\n <Spinner ariaValueText={spinnerAriaValueText} />\n ) : (\n <>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope autoFocus contain restoreFocus>\n <div\n {...dialogProps}\n {...modalProps}\n {...overlayProps}\n className={clsx(styles['modal-dialog'], [styles[`modal-dialog--${size}`]], {\n [styles['modal-dialog--confirm']]: variant === 'confirm',\n [styles['modal-dialog--padded']]: padded,\n })}\n onKeyUp={onKeyUp}\n role=\"presentation\"\n ref={ref}\n >\n {(title || headerContent) && variant === 'dialog' && (\n <>\n {title && (\n <h1 {...titleProps} className={styles['modal-dialog__title']}>\n {title}\n </h1>\n )}\n {headerContent}\n {variant === 'dialog' && (\n <span className={styles['modal-dialog__close']}>\n <OverlayCloseButton\n aria-label={closeButtonAriaValueText}\n onClick={onClose}\n paddedModal={padded}\n />\n </span>\n )}\n </>\n )}\n <form\n className={clsx(styles['modal-dialog__content'], {\n [styles['modal-dialog--content-with-buttons']]: buttons,\n })}\n onSubmit={onSubmit}\n noValidate={noValidate}\n ref={formRef}\n >\n <div className={clsx({ [styles['modal-dialog__children']]: !noButtonBorder })}>{children}</div>\n {buttons && (\n <div\n className={clsx(styles['modal-dialog__buttons'], {\n [styles['modal-dialog__buttons--border']]: !noButtonBorder,\n [styles['modal-dialog__buttons--shadow']]: isScrollable && !isScrolledToBottom,\n })}\n >\n {buttons}\n </div>\n )}\n </form>\n </div>\n </FocusScope>\n </>\n )}\n </Backdrop>\n </OverlayContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqDA,SAAgB,EAAY,GAA4C;CACtE,IAAM,EACJ,YACA,aACA,mBAAgB,IAChB,+BAA4B,CAAC,GAC7B,cACA,0BAAuB,WACvB,8BAA2B,SAC3B,WACA,gBAAa,IACb,YACA,aACA,UAAO,UACP,UACA,kBACA,aAAU,UACV,WACA,UAAO,WACP,oBAAiB,OACf,GAEE,IAAM,EAAuB,IAAI,GACjC,IAAU,EAAwB,IAAI,GACtC,CAAC,GAAc,KAAmB,EAAS,EAAK,GAChD,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAE5D,EAAE,gBAAa,kBAAe,EAAU,EAAE,QAAK,GAAG,CAAG,GACrD,EAAE,kBAAe,EAAS,EAAE,YAAY,CAAC,EAAO,CAAC,GACjD,EAAE,iBAAc,qBAAkB,EACtC;EAAE;EAAe;EAA2B;EAAQ;CAAQ,GAC5D,CACF;CAIA,AAFA,EAAiB,EAAE,YAAY,CAAC,EAAO,CAAC,GAExC,QAAgB;EACd,IAAM,IAAc,EAAQ;EAE5B,SAAS,IAAkB;GACzB,IAAI,GAAa;IACf,IAAM,IAAe,EAAY,cAC3B,IAAe,EAAY,cAC3B,IAAY,EAAY;IAG9B,AADA,EAAgB,IAAe,CAAY,GAC3C,EAAsB,IAAY,KAAgB,CAAY;GAChE;EACF;EAEA,SAAS,IAAwB;GAC/B,EAAgB;EAClB;EAEA,AAAI,MACF,EAAY,iBAAiB,UAAU,CAAqB,GAC5D,OAAO,iBAAiB,UAAU,CAAqB;EAGzD,IAAM,IAAY,iBAAiB;GACjC,EAAgB;EAClB,GAAG,CAAC;EAEJ,aAAa;GAKX,AAJI,KACF,EAAY,oBAAoB,UAAU,CAAqB,GAEjE,OAAO,oBAAoB,UAAU,CAAqB,GAC1D,aAAa,CAAS;EACxB;CACF,GAAG,CAAC,GAAQ,CAAa,CAAC;CAE1B,SAAS,EAAQ,GAAsB;EACrC,EAAM,gBAAgB;CACxB;CAIA,OAFK,IAGH,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAU,GAAI;YACX,IACC,kBAAC,GAAD,EAAS,eAAe,EAAuB,CAAA,IAE/C,kBAAA,GAAA,EAAA,UAEE,kBAAC,GAAD;GAAY,WAAA;GAAU,SAAA;GAAQ,cAAA;aAC5B,kBAAC,OAAD;IACE,GAAI;IACJ,GAAI;IACJ,GAAI;IACJ,WAAW,EAAK,EAAO,iBAAiB,CAAC,EAAO,iBAAiB,IAAO,GAAG;MACxE,EAAO,2BAA2B,MAAY;MAC9C,EAAO,0BAA0B;IACpC,CAAC;IACQ;IACT,MAAK;IACA;cAVP,EAYI,KAAS,MAAkB,MAAY,YACvC,kBAAA,GAAA,EAAA,UAAA;KACG,KACC,kBAAC,MAAD;MAAI,GAAI;MAAY,WAAW,EAAO;gBACnC;KACC,CAAA;KAEL;KACA,MAAY,YACX,kBAAC,QAAD;MAAM,WAAW,EAAO;gBACtB,kBAAC,GAAD;OACE,cAAY;OACZ,SAAS;OACT,aAAa;MACd,CAAA;KACG,CAAA;IAER,EAAA,CAAA,GAEJ,kBAAC,QAAD;KACE,WAAW,EAAK,EAAO,0BAA0B,GAC9C,EAAO,wCAAwC,EAClD,CAAC;KACS;KACE;KACZ,KAAK;eANP,CAQE,kBAAC,OAAD;MAAK,WAAW,EAAK,GAAG,EAAO,4BAA4B,CAAC,EAAe,CAAC;MAAI;KAAc,CAAA,GAC7F,KACC,kBAAC,OAAD;MACE,WAAW,EAAK,EAAO,0BAA0B;QAC9C,EAAO,mCAAmC,CAAC;QAC3C,EAAO,mCAAmC,KAAgB,CAAC;MAC9D,CAAC;gBAEA;KACE,CAAA,CAEH;MACH;;EACK,CAAA,EACZ,CAAA;CAEI,CAAA,EACM,CAAA,IAnEA;AAqEtB"}
@@ -1,6 +1,6 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
2
  import { Icon as t } from "./components/Icon/Icon.js";
3
- import { t as n } from "./Checkbox-D6-b_4dC.js";
3
+ import { t as n } from "./Checkbox-sAt4To2B.js";
4
4
  import { usePositionedFloaters as r } from "./components/hooks/usePositionedFloaters.js";
5
5
  import { useCallback as i, useEffect as a, useId as o, useRef as s, useState as c } from "react";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -186,4 +186,4 @@ var d = {
186
186
  //#endregion
187
187
  export { f as t };
188
188
 
189
- //# sourceMappingURL=MultiSelectBox-Cuh_o-A1.js.map
189
+ //# sourceMappingURL=MultiSelectBox-BmBxa6PH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectBox-Cuh_o-A1.js","names":[],"sources":["../src/components/MultiSelectBox/MultiSelectBox.module.css","../src/components/MultiSelectBox/MultiSelectBox.tsx"],"sourcesContent":[".multi-select-box-wrapper {\n position: relative;\n}\n\n.multi-select-box-trigger {\n align-items: center;\n background-color: var(--color-uva-white);\n border: 1px solid var(--color-grey-500);\n border-radius: 0.5rem;\n cursor: pointer;\n display: flex;\n font: inherit;\n height: 2.75rem;\n justify-content: space-between;\n line-height: inherit;\n overflow: hidden;\n padding: 0.4rem 2rem 0.4rem 1rem;\n position: relative;\n width: 100%;\n}\n\n.multi-select-box-trigger--darkBorder {\n border-color: var(--color-uva-black);\n}\n\n.multi-select-box-trigger--not-valid {\n border-color: var(--color-red-600);\n}\n\n.multi-select-box-trigger:focus-visible {\n background-color: var(--color-grey-300);\n outline: 1px solid var(--color-grey-300);\n}\n\n.multi-select-box-trigger:focus-visible,\n.multi-select-box-trigger:hover {\n background-color: var(--color-grey-300);\n}\n\n.multi-select-box-trigger-label {\n min-height: 0.65rem;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n\n.multi-select-box-trigger:disabled:hover {\n background-color: var(--color-uva-white);\n cursor: not-allowed;\n}\n\n.multi-select-box-trigger-icon {\n position: absolute;\n right: 0.875rem;\n}\n\n.multi-select-box-trigger-icon--open {\n transform: rotate(180deg);\n}\n\n.multi-select-box-listbox--wrapper {\n border-radius: 0.5rem;\n box-shadow: 0 0 0.25rem 0 rgba(0 0 0 / 25%);\n display: flex;\n height: auto;\n margin: 0.25rem 0;\n overflow: hidden;\n position: fixed;\n width: auto;\n z-index: 20;\n}\n\n.multi-select-box-listbox {\n background-color: var(--color-uva-white);\n border-radius: var(--border-radius);\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n list-style: none;\n margin: 0;\n min-width: 100%;\n overflow-y: auto;\n padding: 0.25rem;\n white-space: nowrap;\n width: fit-content;\n}\n\n.multi-select-box-listbox-option {\n border-radius: 0.25rem;\n cursor: pointer;\n display: flex;\n height: 2.5rem;\n justify-content: flex-start;\n position: relative;\n user-select: none;\n width: 100%;\n}\n\n.multi-select-box-listbox-option--active,\n.multi-select-box-listbox-option:hover {\n background-color: var(--color-grey-300);\n box-shadow: 0 0 0 1px var(--color-uva-white);\n}\n\n.multi-select-box-listbox-option:focus-visible,\n.multi-select-box-listbox-option:hover {\n background-color: var(--color-grey-300);\n}\n\n.multi-select-box-listbox-option-content {\n align-items: center;\n cursor: pointer;\n display: flex;\n gap: 1rem;\n padding: 0.75rem;\n width: 100%;\n}\n\n.multi-select-box-listbox-option:focus-visible {\n background-color: var(--color-grey-300);\n outline: 1px solid var(--color-grey-700);\n}\n\n.multi-select-box-listbox-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n user-select: none;\n}\n","import { useRef, useState, useId, useEffect, useCallback } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { KeyboardEvent, ChangeEvent, MouseEvent } from 'react';\n\nimport styles from './MultiSelectBox.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { Checkbox } from 'components/Checkbox';\nimport { usePositionedFloaters } from 'components/hooks/usePositionedFloaters';\n\nexport type MultiSelectData = {\n label: string;\n value: string | number;\n disabled?: boolean;\n};\n\nexport interface MultiSelectBoxProps {\n /** Array of label, values pairs */\n selectData: MultiSelectData[];\n /** Retuns selected label, values */\n onChange: (values: MultiSelectData[]) => void;\n /** Array of label, value pairs that should be check by default */\n defaultSelectedItems?: MultiSelectData[];\n /** Suffix label in the selectbutton '[count] selected' */\n labelSuffix?: string;\n /** Disables the multiselect */\n disabled?: boolean;\n /** If true sets the option dropdown min-width to the width of the select button. */\n fullWidth?: boolean;\n /** Dark border. */\n darkBorder?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** The max height of the options. */\n maxOptionHeight?: `${number}${'px' | 'rem'}`;\n /** `true` to align the right side of the options with the select box; otherwise, `false` to align on the left side. */\n optionPositionRight?: boolean;\n}\n\nexport const MultiSelectBox = ({\n selectData,\n onChange,\n defaultSelectedItems,\n labelSuffix = 'geselecteerd',\n disabled = false,\n fullWidth = false,\n darkBorder = false,\n notValid = false,\n maxOptionHeight,\n optionPositionRight,\n}: MultiSelectBoxProps) => {\n const multiselectboxId = useId();\n const [selectedItems, setSelectedItems] = useState<MultiSelectData[]>(defaultSelectedItems || []);\n const [selectedItemsCount, setSelectedItemsCount] = useState(defaultSelectedItems?.length || 0);\n const [isOpen, setIsOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const optionListRef = useRef<HTMLUListElement>(null);\n\n const [positionElement, setPositionElement] = useState<HTMLElement | null>(null);\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement | null>(null);\n const { style: positionStyle, updatePosition } = usePositionedFloaters(positionElement, referenceElement, {\n mouseEvent: 'click',\n position: 'bottomLeft',\n offset: 4,\n maxFixedHeight: maxOptionHeight,\n horizontalPosition: optionPositionRight ? 'right' : 'left',\n mobileBreakpoint: '28rem',\n fullWidth,\n });\n\n const onMouseEventOutside = useCallback(\n ({ target }: Event | MouseEvent) => {\n if (!target || !wrapperRef.current) return;\n\n if (!wrapperRef.current.contains(target as Node)) {\n setIsOpen(false);\n }\n },\n [setIsOpen]\n );\n\n const onTriggerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>) => {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n setIsOpen(true);\n break;\n case 'Escape':\n if (isOpen) {\n event.stopPropagation();\n setIsOpen(false);\n }\n break;\n default:\n break;\n }\n },\n [isOpen]\n );\n\n const onOptionKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (!isOpen) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n setActiveIndex((prev) => {\n let nextIndex = prev;\n do {\n nextIndex = nextIndex < selectData.length - 1 ? nextIndex + 1 : 0;\n } while (selectData[nextIndex]?.disabled);\n return nextIndex;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setActiveIndex((prev) => {\n let nextIndex = prev;\n do {\n nextIndex = nextIndex <= 0 ? selectData.length - 1 : nextIndex - 1;\n } while (selectData[nextIndex]?.disabled);\n return nextIndex;\n });\n break;\n case 'Enter': {\n event.preventDefault();\n const selectedItem = selectData[activeIndex];\n if (!selectedItem || selectedItem.disabled) break;\n const isAlreadySelected = selectedItems.some((item) => item.value === selectedItem.value);\n const updatedSelectedItems = isAlreadySelected\n ? selectedItems.filter((item) => item.value !== selectedItem.value)\n : [...selectedItems, selectedItem];\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n break;\n }\n case 'Tab':\n event.preventDefault();\n setIsOpen(false);\n break;\n case 'Escape':\n event.stopPropagation();\n setIsOpen(false);\n break;\n default:\n break;\n }\n },\n [activeIndex, isOpen, selectData, selectedItems, onChange]\n );\n\n const onOptionClick = (event: MouseEvent<HTMLLIElement>, option: MultiSelectData) => {\n if (option.disabled) return;\n\n // Prevent toggle if click originated from the checkbox\n if ((event.target as HTMLElement).tagName === 'INPUT') return;\n\n const isAlreadySelected = selectedItems.some((item) => item.value === option.value);\n const updatedSelectedItems = isAlreadySelected\n ? selectedItems.filter((item) => item.value !== option.value)\n : [...selectedItems, option];\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n updatePosition();\n };\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const { checked, value } = event.target;\n let updatedSelectedItems = [...selectedItems];\n\n if (checked) {\n const selectedItem = selectData.find((item) => item.value === value);\n if (selectedItem) {\n updatedSelectedItems.push(selectedItem);\n }\n } else {\n updatedSelectedItems = updatedSelectedItems.filter((item) => item.value !== value);\n }\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n updatePosition();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectData, selectedItems, onChange]\n );\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n useEffect(() => {\n const activeOption = optionListRef.current?.children[activeIndex] as HTMLElement;\n activeOption?.focus();\n }, [activeIndex]);\n\n useEffect(() => {\n if (!isOpen) return;\n\n document.addEventListener('click', onMouseEventOutside, true);\n document.addEventListener('scroll', onMouseEventOutside, true);\n\n return () => {\n document.removeEventListener('click', onMouseEventOutside, true);\n document.removeEventListener('scroll', onMouseEventOutside, true);\n };\n }, [onMouseEventOutside, isOpen]);\n\n return (\n <div className={styles['multi-select-box-wrapper']} ref={wrapperRef}>\n <button\n className={clsx(styles['multi-select-box-trigger'], {\n [styles['multi-select-box-trigger--darkBorder']]: darkBorder,\n [styles['multi-select-box-trigger--not-valid']]: notValid,\n })}\n type=\"button\"\n onClick={() => {\n setIsOpen(!isOpen);\n }}\n onKeyDown={onTriggerKeyDown}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-label={`${selectedItemsCount} ${labelSuffix}`}\n disabled={disabled}\n {...(isOpen && { 'aria-controls': multiselectboxId })}\n ref={setReferenceElement}\n >\n <span className={styles['multi-select-box-trigger-label']}>\n {selectedItemsCount} {labelSuffix}\n </span>\n <Icon\n className={clsx(styles['multi-select-box-trigger-icon'], {\n [styles['multi-select-box-trigger-icon--open']]: isOpen,\n })}\n name=\"CheveronDown\"\n size={16}\n />\n </button>\n\n <div\n id={multiselectboxId}\n className={clsx(styles['multi-select-box-listbox--wrapper'])}\n style={{ ...positionStyle.style, visibility: isOpen ? 'visible' : 'hidden' }}\n role=\"listbox\"\n ref={setPositionElement}\n >\n <ul className={styles['multi-select-box-listbox']} ref={optionListRef}>\n {selectData.map(({ label, value, disabled }, index) => (\n <li\n className={clsx(styles['multi-select-box-listbox-option'], {\n [styles['multi-select-box-listbox-option--active']]: index === activeIndex,\n [styles['multi-select-box-listbox-option--disabled']]: disabled,\n })}\n key={value}\n role=\"option\"\n onKeyDown={onOptionKeyDown}\n onClick={(event) => onOptionClick(event, { label, value, disabled })}\n onMouseOver={() => setActiveIndex(index)}\n onFocus={() => setActiveIndex(index)}\n tabIndex={0}\n aria-selected={selectedItems.some((item) => item.value === value)}\n >\n <label htmlFor={label} className={styles['multi-select-box-listbox-option-content']} tabIndex={-1}>\n <Checkbox\n id={`${label}-${multiselectboxId}`}\n onChange={handleSelect}\n value={value}\n tabIndex={-1}\n disabled={disabled}\n checked={selectedItems.some((item) => item.value === value)}\n />\n <span>{label}</span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelectBox-BmBxa6PH.js","names":[],"sources":["../src/components/MultiSelectBox/MultiSelectBox.module.css","../src/components/MultiSelectBox/MultiSelectBox.tsx"],"sourcesContent":[".multi-select-box-wrapper {\n position: relative;\n}\n\n.multi-select-box-trigger {\n align-items: center;\n background-color: var(--color-uva-white);\n border: 1px solid var(--color-grey-500);\n border-radius: 0.5rem;\n cursor: pointer;\n display: flex;\n font: inherit;\n height: 2.75rem;\n justify-content: space-between;\n line-height: inherit;\n overflow: hidden;\n padding: 0.4rem 2rem 0.4rem 1rem;\n position: relative;\n width: 100%;\n}\n\n.multi-select-box-trigger--darkBorder {\n border-color: var(--color-uva-black);\n}\n\n.multi-select-box-trigger--not-valid {\n border-color: var(--color-red-600);\n}\n\n.multi-select-box-trigger:focus-visible {\n background-color: var(--color-grey-300);\n outline: 1px solid var(--color-grey-300);\n}\n\n.multi-select-box-trigger:focus-visible,\n.multi-select-box-trigger:hover {\n background-color: var(--color-grey-300);\n}\n\n.multi-select-box-trigger-label {\n min-height: 0.65rem;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n\n.multi-select-box-trigger:disabled:hover {\n background-color: var(--color-uva-white);\n cursor: not-allowed;\n}\n\n.multi-select-box-trigger-icon {\n position: absolute;\n right: 0.875rem;\n}\n\n.multi-select-box-trigger-icon--open {\n transform: rotate(180deg);\n}\n\n.multi-select-box-listbox--wrapper {\n border-radius: 0.5rem;\n box-shadow: 0 0 0.25rem 0 rgba(0 0 0 / 25%);\n display: flex;\n height: auto;\n margin: 0.25rem 0;\n overflow: hidden;\n position: fixed;\n width: auto;\n z-index: 20;\n}\n\n.multi-select-box-listbox {\n background-color: var(--color-uva-white);\n border-radius: var(--border-radius);\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n list-style: none;\n margin: 0;\n min-width: 100%;\n overflow-y: auto;\n padding: 0.25rem;\n white-space: nowrap;\n width: fit-content;\n}\n\n.multi-select-box-listbox-option {\n border-radius: 0.25rem;\n cursor: pointer;\n display: flex;\n height: 2.5rem;\n justify-content: flex-start;\n position: relative;\n user-select: none;\n width: 100%;\n}\n\n.multi-select-box-listbox-option--active,\n.multi-select-box-listbox-option:hover {\n background-color: var(--color-grey-300);\n box-shadow: 0 0 0 1px var(--color-uva-white);\n}\n\n.multi-select-box-listbox-option:focus-visible,\n.multi-select-box-listbox-option:hover {\n background-color: var(--color-grey-300);\n}\n\n.multi-select-box-listbox-option-content {\n align-items: center;\n cursor: pointer;\n display: flex;\n gap: 1rem;\n padding: 0.75rem;\n width: 100%;\n}\n\n.multi-select-box-listbox-option:focus-visible {\n background-color: var(--color-grey-300);\n outline: 1px solid var(--color-grey-700);\n}\n\n.multi-select-box-listbox-option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n user-select: none;\n}\n","import { useRef, useState, useId, useEffect, useCallback } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { KeyboardEvent, ChangeEvent, MouseEvent } from 'react';\n\nimport styles from './MultiSelectBox.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { Checkbox } from 'components/Checkbox';\nimport { usePositionedFloaters } from 'components/hooks/usePositionedFloaters';\n\nexport type MultiSelectData = {\n label: string;\n value: string | number;\n disabled?: boolean;\n};\n\nexport interface MultiSelectBoxProps {\n /** Array of label, values pairs */\n selectData: MultiSelectData[];\n /** Retuns selected label, values */\n onChange: (values: MultiSelectData[]) => void;\n /** Array of label, value pairs that should be check by default */\n defaultSelectedItems?: MultiSelectData[];\n /** Suffix label in the selectbutton '[count] selected' */\n labelSuffix?: string;\n /** Disables the multiselect */\n disabled?: boolean;\n /** If true sets the option dropdown min-width to the width of the select button. */\n fullWidth?: boolean;\n /** Dark border. */\n darkBorder?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** The max height of the options. */\n maxOptionHeight?: `${number}${'px' | 'rem'}`;\n /** `true` to align the right side of the options with the select box; otherwise, `false` to align on the left side. */\n optionPositionRight?: boolean;\n}\n\nexport const MultiSelectBox = ({\n selectData,\n onChange,\n defaultSelectedItems,\n labelSuffix = 'geselecteerd',\n disabled = false,\n fullWidth = false,\n darkBorder = false,\n notValid = false,\n maxOptionHeight,\n optionPositionRight,\n}: MultiSelectBoxProps) => {\n const multiselectboxId = useId();\n const [selectedItems, setSelectedItems] = useState<MultiSelectData[]>(defaultSelectedItems || []);\n const [selectedItemsCount, setSelectedItemsCount] = useState(defaultSelectedItems?.length || 0);\n const [isOpen, setIsOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const optionListRef = useRef<HTMLUListElement>(null);\n\n const [positionElement, setPositionElement] = useState<HTMLElement | null>(null);\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement | null>(null);\n const { style: positionStyle, updatePosition } = usePositionedFloaters(positionElement, referenceElement, {\n mouseEvent: 'click',\n position: 'bottomLeft',\n offset: 4,\n maxFixedHeight: maxOptionHeight,\n horizontalPosition: optionPositionRight ? 'right' : 'left',\n mobileBreakpoint: '28rem',\n fullWidth,\n });\n\n const onMouseEventOutside = useCallback(\n ({ target }: Event | MouseEvent) => {\n if (!target || !wrapperRef.current) return;\n\n if (!wrapperRef.current.contains(target as Node)) {\n setIsOpen(false);\n }\n },\n [setIsOpen]\n );\n\n const onTriggerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>) => {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n setIsOpen(true);\n break;\n case 'Escape':\n if (isOpen) {\n event.stopPropagation();\n setIsOpen(false);\n }\n break;\n default:\n break;\n }\n },\n [isOpen]\n );\n\n const onOptionKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (!isOpen) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n setActiveIndex((prev) => {\n let nextIndex = prev;\n do {\n nextIndex = nextIndex < selectData.length - 1 ? nextIndex + 1 : 0;\n } while (selectData[nextIndex]?.disabled);\n return nextIndex;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setActiveIndex((prev) => {\n let nextIndex = prev;\n do {\n nextIndex = nextIndex <= 0 ? selectData.length - 1 : nextIndex - 1;\n } while (selectData[nextIndex]?.disabled);\n return nextIndex;\n });\n break;\n case 'Enter': {\n event.preventDefault();\n const selectedItem = selectData[activeIndex];\n if (!selectedItem || selectedItem.disabled) break;\n const isAlreadySelected = selectedItems.some((item) => item.value === selectedItem.value);\n const updatedSelectedItems = isAlreadySelected\n ? selectedItems.filter((item) => item.value !== selectedItem.value)\n : [...selectedItems, selectedItem];\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n break;\n }\n case 'Tab':\n event.preventDefault();\n setIsOpen(false);\n break;\n case 'Escape':\n event.stopPropagation();\n setIsOpen(false);\n break;\n default:\n break;\n }\n },\n [activeIndex, isOpen, selectData, selectedItems, onChange]\n );\n\n const onOptionClick = (event: MouseEvent<HTMLLIElement>, option: MultiSelectData) => {\n if (option.disabled) return;\n\n // Prevent toggle if click originated from the checkbox\n if ((event.target as HTMLElement).tagName === 'INPUT') return;\n\n const isAlreadySelected = selectedItems.some((item) => item.value === option.value);\n const updatedSelectedItems = isAlreadySelected\n ? selectedItems.filter((item) => item.value !== option.value)\n : [...selectedItems, option];\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n updatePosition();\n };\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const { checked, value } = event.target;\n let updatedSelectedItems = [...selectedItems];\n\n if (checked) {\n const selectedItem = selectData.find((item) => item.value === value);\n if (selectedItem) {\n updatedSelectedItems.push(selectedItem);\n }\n } else {\n updatedSelectedItems = updatedSelectedItems.filter((item) => item.value !== value);\n }\n\n setSelectedItems(updatedSelectedItems);\n setSelectedItemsCount(updatedSelectedItems.length);\n onChange(updatedSelectedItems);\n updatePosition();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectData, selectedItems, onChange]\n );\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n useEffect(() => {\n const activeOption = optionListRef.current?.children[activeIndex] as HTMLElement;\n activeOption?.focus();\n }, [activeIndex]);\n\n useEffect(() => {\n if (!isOpen) return;\n\n document.addEventListener('click', onMouseEventOutside, true);\n document.addEventListener('scroll', onMouseEventOutside, true);\n\n return () => {\n document.removeEventListener('click', onMouseEventOutside, true);\n document.removeEventListener('scroll', onMouseEventOutside, true);\n };\n }, [onMouseEventOutside, isOpen]);\n\n return (\n <div className={styles['multi-select-box-wrapper']} ref={wrapperRef}>\n <button\n className={clsx(styles['multi-select-box-trigger'], {\n [styles['multi-select-box-trigger--darkBorder']]: darkBorder,\n [styles['multi-select-box-trigger--not-valid']]: notValid,\n })}\n type=\"button\"\n onClick={() => {\n setIsOpen(!isOpen);\n }}\n onKeyDown={onTriggerKeyDown}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-label={`${selectedItemsCount} ${labelSuffix}`}\n disabled={disabled}\n {...(isOpen && { 'aria-controls': multiselectboxId })}\n ref={setReferenceElement}\n >\n <span className={styles['multi-select-box-trigger-label']}>\n {selectedItemsCount} {labelSuffix}\n </span>\n <Icon\n className={clsx(styles['multi-select-box-trigger-icon'], {\n [styles['multi-select-box-trigger-icon--open']]: isOpen,\n })}\n name=\"CheveronDown\"\n size={16}\n />\n </button>\n\n <div\n id={multiselectboxId}\n className={clsx(styles['multi-select-box-listbox--wrapper'])}\n style={{ ...positionStyle.style, visibility: isOpen ? 'visible' : 'hidden' }}\n role=\"listbox\"\n ref={setPositionElement}\n >\n <ul className={styles['multi-select-box-listbox']} ref={optionListRef}>\n {selectData.map(({ label, value, disabled }, index) => (\n <li\n className={clsx(styles['multi-select-box-listbox-option'], {\n [styles['multi-select-box-listbox-option--active']]: index === activeIndex,\n [styles['multi-select-box-listbox-option--disabled']]: disabled,\n })}\n key={value}\n role=\"option\"\n onKeyDown={onOptionKeyDown}\n onClick={(event) => onOptionClick(event, { label, value, disabled })}\n onMouseOver={() => setActiveIndex(index)}\n onFocus={() => setActiveIndex(index)}\n tabIndex={0}\n aria-selected={selectedItems.some((item) => item.value === value)}\n >\n <label htmlFor={label} className={styles['multi-select-box-listbox-option-content']} tabIndex={-1}>\n <Checkbox\n id={`${label}-${multiselectboxId}`}\n onChange={handleSelect}\n value={value}\n tabIndex={-1}\n disabled={disabled}\n checked={selectedItems.some((item) => item.value === value)}\n />\n <span>{label}</span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { t as e } from "./Checkbox-D6-b_4dC.js";
2
- import { t } from "./Label-o0BcWTUS.js";
1
+ import { t as e } from "./Checkbox-sAt4To2B.js";
2
+ import { t } from "./Label-D0ACrYG3.js";
3
3
  import { useId as n } from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  import './assets/MultiSelectItem.css';//#region src/components/MultiSelect/MultiSelect.module.css
@@ -33,4 +33,4 @@ function o({ label: o, value: s, checked: c, disabled: l = !1, onChange: u }) {
33
33
  //#endregion
34
34
  export { a as n, o as t };
35
35
 
36
- //# sourceMappingURL=MultiSelectItem-BF5xRjz5.js.map
36
+ //# sourceMappingURL=MultiSelectItem-6d8kQgFs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectItem-BF5xRjz5.js","names":[],"sources":["../src/components/MultiSelect/MultiSelect.module.css","../src/components/MultiSelect/components/MultiSelectItem.tsx"],"sourcesContent":[".multi-select {\n border: 1px solid var(--color-uva-black);\n border-radius: var(--border-radius-default);\n padding: 0.75rem;\n}\n\n.multi-select--no-border {\n border: none;\n padding: 0;\n}\n\n.multi-select__header {\n display: flex;\n justify-content: space-between;\n margin-bottom: 0.5rem;\n}\n\n.multi-select__list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.multi-select__list--scrollable {\n max-height: 8.75rem;\n overflow: auto;\n}\n\n.multi-select__item {\n align-items: start;\n display: grid;\n grid-template-columns: auto 1fr;\n user-select: none;\n}\n\n.multi-select__item input[type=\"checkbox\"] {\n margin-right: 0.75rem;\n margin-top: 0.25rem;\n}\n\n.multi-select__item input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n","import { useId } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Checkbox } from 'components/Checkbox';\nimport { Label } from 'components/Label';\n\nexport interface MultiSelectItemProps {\n label: string;\n value: string | number;\n checked: boolean;\n disabled?: boolean;\n onChange(event: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport function MultiSelectItem({ label, value, checked, disabled = false, onChange }: MultiSelectItemProps) {\n const id = useId();\n\n return (\n <li className={styles['multi-select__item']}>\n <Checkbox id={id} value={value} checked={checked} onChange={onChange} disabled={disabled} />\n <Label htmlFor={id} noFontWeight={!checked}>\n {label}\n </Label>\n </li>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;ACgBA,SAAgB,EAAgB,EAAE,UAAO,UAAO,YAAS,cAAW,IAAO,eAAkC;CAC3G,IAAM,IAAK,GAAO;CAElB,OACE,kBAAC,MAAD;EAAI,WAAW,EAAO;YAAtB,CACE,kBAAC,GAAD;GAAc;GAAW;GAAgB;GAAmB;GAAoB;GAAY,CAAA,EAC5F,kBAAC,GAAD;GAAO,SAAS;GAAI,cAAc,CAAC;aAChC;GACK,CAAA,CACL"}
1
+ {"version":3,"file":"MultiSelectItem-6d8kQgFs.js","names":[],"sources":["../src/components/MultiSelect/MultiSelect.module.css","../src/components/MultiSelect/components/MultiSelectItem.tsx"],"sourcesContent":[".multi-select {\n border: 1px solid var(--color-uva-black);\n border-radius: var(--border-radius-default);\n padding: 0.75rem;\n}\n\n.multi-select--no-border {\n border: none;\n padding: 0;\n}\n\n.multi-select__header {\n display: flex;\n justify-content: space-between;\n margin-bottom: 0.5rem;\n}\n\n.multi-select__list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.multi-select__list--scrollable {\n max-height: 8.75rem;\n overflow: auto;\n}\n\n.multi-select__item {\n align-items: start;\n display: grid;\n grid-template-columns: auto 1fr;\n user-select: none;\n}\n\n.multi-select__item input[type=\"checkbox\"] {\n margin-right: 0.75rem;\n margin-top: 0.25rem;\n}\n\n.multi-select__item input[type=\"checkbox\"]:disabled + label {\n color: var(--color-grey-500);\n}\n","import { useId } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Checkbox } from 'components/Checkbox';\nimport { Label } from 'components/Label';\n\nexport interface MultiSelectItemProps {\n label: string;\n value: string | number;\n checked: boolean;\n disabled?: boolean;\n onChange(event: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport function MultiSelectItem({ label, value, checked, disabled = false, onChange }: MultiSelectItemProps) {\n const id = useId();\n\n return (\n <li className={styles['multi-select__item']}>\n <Checkbox id={id} value={value} checked={checked} onChange={onChange} disabled={disabled} />\n <Label htmlFor={id} noFontWeight={!checked}>\n {label}\n </Label>\n </li>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;ACgBA,SAAgB,EAAgB,EAAE,UAAO,UAAO,YAAS,cAAW,IAAO,eAAkC;CAC3G,IAAM,IAAK,EAAM;CAEjB,OACE,kBAAC,MAAD;EAAI,WAAW,EAAO;YAAtB,CACE,kBAAC,GAAD;GAAc;GAAW;GAAgB;GAAmB;GAAoB;EAAW,CAAA,GAC3F,kBAAC,GAAD;GAAO,SAAS;GAAI,cAAc,CAAC;aAChC;EACI,CAAA,CACL;;AAER"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
2
  import { Icon as t } from "./components/Icon/Icon.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  import './assets/Notification.css';var i = {
@@ -65,4 +65,4 @@ import './assets/Notification.css';var i = {
65
65
  //#endregion
66
66
  export { a as t };
67
67
 
68
- //# sourceMappingURL=Notification-CIhsHuF0.js.map
68
+ //# sourceMappingURL=Notification-BAqCenxt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Notification-CIhsHuF0.js","names":[],"sources":["../src/components/Notification/Notification.module.css","../src/components/Notification/Notification.tsx"],"sourcesContent":[".notification {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n\n.notification--default {\n padding: 1rem;\n}\n.notification--bar {\n border: none;\n padding: 0.5rem 1rem;\n}\n\n.notification--neutral {\n background-color: var(--color-grey-300);\n border-left: 0.25rem solid var(--color-grey-600);\n}\n.notification--information {\n background-color: var(--color-navy-200);\n border-left: 0.25rem solid var(--color-navy-600);\n}\n.notification--success {\n background-color: var(--color-forest-200);\n border-left: 0.25rem solid var(--color-forest-600);\n}\n.notification--warning {\n background-color: var(--color-orange-200);\n border-left: 0.25rem solid var(--color-orange-600);\n}\n.notification--danger {\n background-color: var(--color-red-200);\n border-left: 0.25rem solid var(--color-red-600);\n}\n\n.notification--bar.notification--neutral {\n background-color: var(--color-grey-600);\n color: var(--color-uva-white);\n}\n.notification--bar.notification--information {\n background-color: var(--color-navy-600);\n color: var(--color-uva-white);\n}\n.notification--bar.notification--success {\n background-color: var(--color-forest-600);\n}\n.notification--bar.notification--warning {\n background-color: var(--color-orange-600);\n}\n.notification--bar.notification--danger {\n background-color: var(--color-red-600);\n color: var(--color-uva-white);\n}\n\n.notification-content {\n display: flex;\n gap: 1rem;\n}\n.notification-content--text {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.notification-title {\n font-weight: var(--semibold);\n margin: 0;\n}\n.notification-subtitle {\n margin: 0;\n}\n\n.notification-close-button {\n align-items: center;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n color: var(--color-uva-black);\n display: inline-flex;\n height: 1.5rem;\n justify-content: center;\n position: relative;\n transition: var(--transition-colors);\n width: 1.5rem;\n}\n\n.notification-close-button:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: 0.125rem;\n}\n\n.notification-close-button:hover {\n cursor: pointer;\n outline: 0;\n}\n\n/* make the clickable area of the overlay close button 42x42px simmilar to a regular button */\n.notification-close-button::after {\n bottom: -0.625rem;\n content: \"\";\n left: -0.625rem;\n position: absolute;\n right: -0.625rem;\n top: -0.625rem;\n}\n\n.notification-close-button--bar--neutral,\n.notification-close-button--bar--information,\n.notification-close-button--bar--danger {\n color: var(--color-uva-white);\n}\n\n.notification-close-button--neutral:hover {\n background-color: var(--color-grey-600);\n color: var(--color-uva-white);\n}\n.notification-close-button--information:hover {\n background-color: var(--color-navy-600);\n color: var(--color-uva-white);\n}\n.notification-close-button--success:hover {\n background-color: var(--color-forest-600);\n}\n.notification-close-button--warning:hover {\n background-color: var(--color-orange-600);\n}\n.notification-close-button--danger:hover {\n background-color: var(--color-red-600);\n color: var(--color-uva-white);\n}\n\n.notification-close-button--bar--neutral:hover {\n background-color: var(--color-grey-300);\n color: var(--color-uva-black);\n}\n.notification-close-button--bar--information:hover {\n background-color: var(--color-navy-300);\n color: var(--color-uva-black);\n}\n.notification-close-button--bar--success:hover {\n background-color: var(--color-forest-300);\n}\n.notification-close-button--bar--warning:hover {\n background-color: var(--color-orange-300);\n}\n.notification-close-button--bar--danger:hover {\n background-color: var(--color-red-300);\n color: var(--color-uva-black);\n}\n","import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './Notification.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport type NotificationVariant = 'default' | 'bar';\nexport type NotificationLevel = 'neutral' | 'information' | 'success' | 'warning' | 'danger';\n\nexport interface NotificationProps {\n title?: string;\n subtitle?: string;\n action?: ReactNode;\n variant?: NotificationVariant;\n level: NotificationLevel;\n onClose?: () => void;\n}\n\nexport const Notification = ({ title, subtitle, action, variant = 'default', level, onClose }: NotificationProps) => {\n const isBar = variant === 'bar';\n\n function setIconName(toastType: NotificationLevel) {\n if (toastType === 'neutral') return 'CalendarEdit';\n if (toastType === 'information') return 'SquareInfo';\n if (toastType === 'success') return 'CheckCircle';\n return 'ExclamationTriangleMini';\n }\n\n return (\n <div className={clsx(styles['notification'], styles[`notification--${variant}`], styles[`notification--${level}`])}>\n <div className={styles['notification-content']}>\n <Icon name={setIconName(level)} />\n <div className={styles['notification-content--text']}>\n {title && <p className={styles['notification-title']}>{title}</p>}\n {subtitle && <p className={styles['notification-subtitle']}>{subtitle}</p>}\n {action && <div className={styles['notification-action']}>{action}</div>}\n </div>\n </div>\n {onClose && (\n <button\n type=\"button\"\n aria-label=\"close\"\n className={clsx(styles['notification-close-button'], styles[`notification-close-button--${level}`], {\n [styles[`notification-close-button--bar--${level}`]]: isBar,\n })}\n >\n <Icon name=\"Cross\" size={24} />\n </button>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;GCoBa,KAAgB,EAAE,UAAO,aAAU,WAAQ,aAAU,WAAW,UAAO,iBAAiC;CACnH,IAAM,IAAQ,MAAY;CAE1B,SAAS,EAAY,GAA8B;EAIjD,OAHI,MAAc,YAAkB,iBAChC,MAAc,gBAAsB,eACpC,MAAc,YAAkB,gBAC7B;;CAGT,OACE,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,cAAiB,EAAO,iBAAiB,MAAY,EAAO,iBAAiB,KAAS;YAAlH,CACE,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACE,kBAAC,GAAD,EAAM,MAAM,EAAY,EAAM,EAAI,CAAA,EAClC,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB;KACG,KAAS,kBAAC,KAAD;MAAG,WAAW,EAAO;gBAAwB;MAAU,CAAA;KAChE,KAAY,kBAAC,KAAD;MAAG,WAAW,EAAO;gBAA2B;MAAa,CAAA;KACzE,KAAU,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAyB;MAAa,CAAA;KACpE;MACF;MACL,KACC,kBAAC,UAAD;GACE,MAAK;GACL,cAAW;GACX,WAAW,EAAK,EAAO,8BAA8B,EAAO,8BAA8B,MAAU,GACjG,EAAO,mCAAmC,OAAW,GACvD,CAAC;aAEF,kBAAC,GAAD;IAAM,MAAK;IAAQ,MAAM;IAAM,CAAA;GACxB,CAAA,CAEP"}
1
+ {"version":3,"file":"Notification-BAqCenxt.js","names":[],"sources":["../src/components/Notification/Notification.module.css","../src/components/Notification/Notification.tsx"],"sourcesContent":[".notification {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n\n.notification--default {\n padding: 1rem;\n}\n.notification--bar {\n border: none;\n padding: 0.5rem 1rem;\n}\n\n.notification--neutral {\n background-color: var(--color-grey-300);\n border-left: 0.25rem solid var(--color-grey-600);\n}\n.notification--information {\n background-color: var(--color-navy-200);\n border-left: 0.25rem solid var(--color-navy-600);\n}\n.notification--success {\n background-color: var(--color-forest-200);\n border-left: 0.25rem solid var(--color-forest-600);\n}\n.notification--warning {\n background-color: var(--color-orange-200);\n border-left: 0.25rem solid var(--color-orange-600);\n}\n.notification--danger {\n background-color: var(--color-red-200);\n border-left: 0.25rem solid var(--color-red-600);\n}\n\n.notification--bar.notification--neutral {\n background-color: var(--color-grey-600);\n color: var(--color-uva-white);\n}\n.notification--bar.notification--information {\n background-color: var(--color-navy-600);\n color: var(--color-uva-white);\n}\n.notification--bar.notification--success {\n background-color: var(--color-forest-600);\n}\n.notification--bar.notification--warning {\n background-color: var(--color-orange-600);\n}\n.notification--bar.notification--danger {\n background-color: var(--color-red-600);\n color: var(--color-uva-white);\n}\n\n.notification-content {\n display: flex;\n gap: 1rem;\n}\n.notification-content--text {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.notification-title {\n font-weight: var(--semibold);\n margin: 0;\n}\n.notification-subtitle {\n margin: 0;\n}\n\n.notification-close-button {\n align-items: center;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n color: var(--color-uva-black);\n display: inline-flex;\n height: 1.5rem;\n justify-content: center;\n position: relative;\n transition: var(--transition-colors);\n width: 1.5rem;\n}\n\n.notification-close-button:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: 0.125rem;\n}\n\n.notification-close-button:hover {\n cursor: pointer;\n outline: 0;\n}\n\n/* make the clickable area of the overlay close button 42x42px simmilar to a regular button */\n.notification-close-button::after {\n bottom: -0.625rem;\n content: \"\";\n left: -0.625rem;\n position: absolute;\n right: -0.625rem;\n top: -0.625rem;\n}\n\n.notification-close-button--bar--neutral,\n.notification-close-button--bar--information,\n.notification-close-button--bar--danger {\n color: var(--color-uva-white);\n}\n\n.notification-close-button--neutral:hover {\n background-color: var(--color-grey-600);\n color: var(--color-uva-white);\n}\n.notification-close-button--information:hover {\n background-color: var(--color-navy-600);\n color: var(--color-uva-white);\n}\n.notification-close-button--success:hover {\n background-color: var(--color-forest-600);\n}\n.notification-close-button--warning:hover {\n background-color: var(--color-orange-600);\n}\n.notification-close-button--danger:hover {\n background-color: var(--color-red-600);\n color: var(--color-uva-white);\n}\n\n.notification-close-button--bar--neutral:hover {\n background-color: var(--color-grey-300);\n color: var(--color-uva-black);\n}\n.notification-close-button--bar--information:hover {\n background-color: var(--color-navy-300);\n color: var(--color-uva-black);\n}\n.notification-close-button--bar--success:hover {\n background-color: var(--color-forest-300);\n}\n.notification-close-button--bar--warning:hover {\n background-color: var(--color-orange-300);\n}\n.notification-close-button--bar--danger:hover {\n background-color: var(--color-red-300);\n color: var(--color-uva-black);\n}\n","import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './Notification.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport type NotificationVariant = 'default' | 'bar';\nexport type NotificationLevel = 'neutral' | 'information' | 'success' | 'warning' | 'danger';\n\nexport interface NotificationProps {\n title?: string;\n subtitle?: string;\n action?: ReactNode;\n variant?: NotificationVariant;\n level: NotificationLevel;\n onClose?: () => void;\n}\n\nexport const Notification = ({ title, subtitle, action, variant = 'default', level, onClose }: NotificationProps) => {\n const isBar = variant === 'bar';\n\n function setIconName(toastType: NotificationLevel) {\n if (toastType === 'neutral') return 'CalendarEdit';\n if (toastType === 'information') return 'SquareInfo';\n if (toastType === 'success') return 'CheckCircle';\n return 'ExclamationTriangleMini';\n }\n\n return (\n <div className={clsx(styles['notification'], styles[`notification--${variant}`], styles[`notification--${level}`])}>\n <div className={styles['notification-content']}>\n <Icon name={setIconName(level)} />\n <div className={styles['notification-content--text']}>\n {title && <p className={styles['notification-title']}>{title}</p>}\n {subtitle && <p className={styles['notification-subtitle']}>{subtitle}</p>}\n {action && <div className={styles['notification-action']}>{action}</div>}\n </div>\n </div>\n {onClose && (\n <button\n type=\"button\"\n aria-label=\"close\"\n className={clsx(styles['notification-close-button'], styles[`notification-close-button--${level}`], {\n [styles[`notification-close-button--bar--${level}`]]: isBar,\n })}\n >\n <Icon name=\"Cross\" size={24} />\n </button>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;GCoBa,KAAgB,EAAE,UAAO,aAAU,WAAQ,aAAU,WAAW,UAAO,iBAAiC;CACnH,IAAM,IAAQ,MAAY;CAE1B,SAAS,EAAY,GAA8B;EAIjD,OAHI,MAAc,YAAkB,iBAChC,MAAc,gBAAsB,eACpC,MAAc,YAAkB,gBAC7B;CACT;CAEA,OACE,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,cAAiB,EAAO,iBAAiB,MAAY,EAAO,iBAAiB,IAAQ;YAAjH,CACE,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACE,kBAAC,GAAD,EAAM,MAAM,EAAY,CAAK,EAAI,CAAA,GACjC,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB;KACG,KAAS,kBAAC,KAAD;MAAG,WAAW,EAAO;gBAAwB;KAAS,CAAA;KAC/D,KAAY,kBAAC,KAAD;MAAG,WAAW,EAAO;gBAA2B;KAAY,CAAA;KACxE,KAAU,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAyB;KAAY,CAAA;IACpE;KACF;MACJ,KACC,kBAAC,UAAD;GACE,MAAK;GACL,cAAW;GACX,WAAW,EAAK,EAAO,8BAA8B,EAAO,8BAA8B,MAAU,GACjG,EAAO,mCAAmC,OAAW,EACxD,CAAC;aAED,kBAAC,GAAD;IAAM,MAAK;IAAQ,MAAM;GAAK,CAAA;EACxB,CAAA,CAEP;;AAET"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
2
  import { Icon as t } from "./components/Icon/Icon.js";
3
3
  import { forwardRef as n } from "react";
4
4
  import { jsx as r } from "react/jsx-runtime";
@@ -19,4 +19,4 @@ var i = {
19
19
  //#endregion
20
20
  export { a as t };
21
21
 
22
- //# sourceMappingURL=OverlayCloseButton-rttFbAM_.js.map
22
+ //# sourceMappingURL=OverlayCloseButton-j-7mC4Zz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayCloseButton-rttFbAM_.js","names":[],"sources":["../src/components/OverlayCloseButton/OverlayCloseButton.module.css","../src/components/OverlayCloseButton/OverlayCloseButton.tsx"],"sourcesContent":[".overlay-close-button {\n align-items: center;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n color: var(--color-uva-black);\n display: inline-flex;\n height: 1.5rem;\n justify-content: center;\n position: absolute;\n right: 0.125rem;\n top: 0.125rem;\n transition: var(--transition-colors);\n width: 1.5rem;\n}\n\n.overlay-close-button:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: 0.125rem;\n}\n\n.overlay-close-button:hover {\n background-color: var(--color-grey-300);\n cursor: pointer;\n outline: 0;\n}\n\n/* make the clickable area of the overlay close button 42x42px simmilar to a regular button */\n.overlay-close-button::after {\n bottom: -0.625rem;\n content: \" \";\n left: -0.625rem;\n position: absolute;\n right: -0.625rem;\n top: -0.625rem;\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .overlay-close-button--padded {\n right: 1rem;\n top: 1rem;\n }\n}\n","import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport styles from './OverlayCloseButton.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport interface OverlayCloseButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {\n /** The `aria-label` value of the button. */\n 'aria-label': string; // mandatory\n /** `true` to add padding around the button; otherwise, `false`. The default is `false`. */\n paddedModal?: boolean;\n}\n\n/** Represents a component to render a close button in the top right corner of a container. */\nexport const OverlayCloseButton = forwardRef<HTMLButtonElement, OverlayCloseButtonProps>(\n ({ paddedModal, ...restProps }, forwardedRef) => (\n <button\n {...restProps}\n type=\"button\"\n ref={forwardedRef}\n className={clsx(styles['overlay-close-button'], {\n [styles['overlay-close-button--padded']]: paddedModal,\n })}\n >\n <Icon name=\"Cross\" size={24} />\n </button>\n )\n);\n"],"mappings":";;;;;;;;GCiBa,IAAqB,GAC/B,EAAE,gBAAa,GAAG,KAAa,MAC9B,kBAAC,UAAD;CACE,GAAI;CACJ,MAAK;CACL,KAAK;CACL,WAAW,EAAK,EAAO,yBAAyB,GAC7C,EAAO,kCAAkC,GAC3C,CAAC;WAEF,kBAAC,GAAD;EAAM,MAAK;EAAQ,MAAM;EAAM,CAAA;CACxB,CAAA,CAEZ"}
1
+ {"version":3,"file":"OverlayCloseButton-j-7mC4Zz.js","names":[],"sources":["../src/components/OverlayCloseButton/OverlayCloseButton.module.css","../src/components/OverlayCloseButton/OverlayCloseButton.tsx"],"sourcesContent":[".overlay-close-button {\n align-items: center;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n color: var(--color-uva-black);\n display: inline-flex;\n height: 1.5rem;\n justify-content: center;\n position: absolute;\n right: 0.125rem;\n top: 0.125rem;\n transition: var(--transition-colors);\n width: 1.5rem;\n}\n\n.overlay-close-button:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: 0.125rem;\n}\n\n.overlay-close-button:hover {\n background-color: var(--color-grey-300);\n cursor: pointer;\n outline: 0;\n}\n\n/* make the clickable area of the overlay close button 42x42px simmilar to a regular button */\n.overlay-close-button::after {\n bottom: -0.625rem;\n content: \" \";\n left: -0.625rem;\n position: absolute;\n right: -0.625rem;\n top: -0.625rem;\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .overlay-close-button--padded {\n right: 1rem;\n top: 1rem;\n }\n}\n","import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport styles from './OverlayCloseButton.module.css';\n\nimport { Icon } from 'components/Icon';\n\nexport interface OverlayCloseButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {\n /** The `aria-label` value of the button. */\n 'aria-label': string; // mandatory\n /** `true` to add padding around the button; otherwise, `false`. The default is `false`. */\n paddedModal?: boolean;\n}\n\n/** Represents a component to render a close button in the top right corner of a container. */\nexport const OverlayCloseButton = forwardRef<HTMLButtonElement, OverlayCloseButtonProps>(\n ({ paddedModal, ...restProps }, forwardedRef) => (\n <button\n {...restProps}\n type=\"button\"\n ref={forwardedRef}\n className={clsx(styles['overlay-close-button'], {\n [styles['overlay-close-button--padded']]: paddedModal,\n })}\n >\n <Icon name=\"Cross\" size={24} />\n </button>\n )\n);\n"],"mappings":";;;;;;;;GCiBa,IAAqB,GAC/B,EAAE,gBAAa,GAAG,KAAa,MAC9B,kBAAC,UAAD;CACE,GAAI;CACJ,MAAK;CACL,KAAK;CACL,WAAW,EAAK,EAAO,yBAAyB,GAC7C,EAAO,kCAAkC,EAC5C,CAAC;WAED,kBAAC,GAAD;EAAM,MAAK;EAAQ,MAAM;CAAK,CAAA;AACxB,CAAA,CAEZ"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  import './assets/OverlayStepBar.css';//#region src/components/OverlayStepBar/OverlayStepBar.module.css
4
4
  var r = {
@@ -42,4 +42,4 @@ var r = {
42
42
  //#endregion
43
43
  export { i as t };
44
44
 
45
- //# sourceMappingURL=OverlayStepBar-CjaoYdsh.js.map
45
+ //# sourceMappingURL=OverlayStepBar-Cj_-0waE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayStepBar-CjaoYdsh.js","names":[],"sources":["../src/components/OverlayStepBar/OverlayStepBar.module.css","../src/components/OverlayStepBar/OverlayStepBar.tsx"],"sourcesContent":[".overlay-step-bar__container {\n align-items: center;\n background-color: var(--color-grey-200);\n display: flex;\n height: 2.5rem;\n justify-content: center;\n overflow-y: hidden;\n}\n\n.overlay-step-bar__step-wrapper {\n background-color: var(--color-grey-200);\n height: 100%;\n position: relative;\n}\n\n.overlay-step-bar__step-wrapper:not(:last-child)::after {\n border-bottom: 1.5rem solid transparent;\n border-left: 1rem solid var(--color-grey-200);\n border-top: 1.5rem solid transparent;\n content: \"\";\n position: absolute;\n right: -0.25rem;\n top: -0.25rem;\n z-index: 10;\n}\n\n.overlay-step-bar__step-wrapper:not(:last-child)::before {\n border-bottom: 1.5rem solid transparent;\n border-left: 1rem solid var(--color-uva-white);\n border-top: 1.5rem solid transparent;\n content: \"\";\n position: absolute;\n right: calc(-0.25rem - 0.25rem);\n top: -0.25rem;\n z-index: 5;\n}\n\n.overlay-step-bar__step {\n align-items: center;\n appearance: none;\n background-color: transparent;\n border: none;\n color: var(--color-grey-700);\n cursor: pointer;\n display: flex;\n font-family: inherit;\n font-size: var(--font-size-default);\n height: 100%;\n margin-left: 0.5rem;\n padding: 0 2rem 0 1.5rem;\n position: relative;\n width: calc(100% - 0.75rem);\n}\n\n.overlay-step-bar__step--label {\n display: none;\n text-decoration: none;\n white-space: nowrap;\n}\n\n.overlay-step-bar__step--label-show {\n display: block;\n}\n\n.overlay-step-bar__step--index {\n margin-right: 0.5rem;\n}\n\n.overlay-step-bar__step--label:hover {\n text-decoration: underline;\n}\n\n.overlay-step-bar__step--active .overlay-step-bar__step--label {\n display: block;\n}\n\n.overlay-step-bar__step:hover .overlay-step-bar__step--index,\n.overlay-step-bar__step:hover .overlay-step-bar__step--label {\n text-decoration: underline;\n}\n\n@media (min-width: 70rem) {\n .overlay-step-bar__step--label {\n display: block;\n }\n\n .overlay-step-bar__step:hover .overlay-step-bar__step--index {\n text-decoration: none;\n }\n}\n\n.overlay-step-bar__step:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: -0.25rem;\n z-index: 15;\n}\n\n.overlay-step-bar__step--active {\n color: var(--color-uva-black);\n font-weight: var(--semibold);\n}\n\n.overlay-step-bar__step--active:hover .overlay-step-bar__step--index,\n.overlay-step-bar__step--active:hover .overlay-step-bar__step--label {\n cursor: default;\n text-decoration: none;\n}\n","import { clsx } from 'clsx';\n\nimport styles from './OverlayStepBar.module.css';\n\nexport interface OverlayStepBarProps {\n /** Array of strings. */\n stepLabels: string[];\n /** activeStep number starting with 1. */\n activeStep: number;\n /** Array of prefix numbers to not show in the steplabels */\n disabledCountPrefix?: number[];\n /** navigate to step. */\n onStepClick?: (step: number) => void;\n}\n\nexport const OverlayStepBar = ({\n stepLabels,\n activeStep = 0,\n disabledCountPrefix = [],\n onStepClick,\n}: OverlayStepBarProps) => {\n if (activeStep > stepLabels.length) {\n console.error('activeStep is greater than the number of steps');\n }\n\n const getStepDisplayNumber = (stepIndex: number): string => {\n const stepNumber = stepIndex + 1;\n\n if (disabledCountPrefix.includes(stepNumber)) {\n return '';\n }\n\n const enabledStepsBefore = Array.from({ length: stepIndex }, (_, count) => count + 1).filter(\n (step) => !disabledCountPrefix.includes(step)\n ).length;\n\n return String(enabledStepsBefore + 1);\n };\n\n return (\n <div className={styles['overlay-step-bar__container']}>\n {stepLabels.length &&\n stepLabels.map((label, index) => (\n <span key={`${index}_${label}`} className={styles[`overlay-step-bar__step-wrapper`]}>\n <button\n className={clsx(styles[`overlay-step-bar__step`], [\n index === activeStep - 1 && styles[`overlay-step-bar__step--active`],\n ])}\n {...(onStepClick && { onClick: () => onStepClick(index + 1) })}\n type=\"button\"\n aria-label={`Step ${index + 1}`}\n aria-current={index === activeStep - 1 ? 'step' : undefined}\n disabled={index === activeStep - 1}\n >\n <span className={styles[`overlay-step-bar__step--index`]}>{getStepDisplayNumber(index)}</span>\n <span\n className={clsx(\n styles[`overlay-step-bar__step--label`],\n disabledCountPrefix.includes(index + 1) && styles[`overlay-step-bar__step--label-show`]\n )}\n >\n {label}\n </span>\n </button>\n </span>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;GCea,KAAkB,EAC7B,eACA,gBAAa,GACb,yBAAsB,EAAE,EACxB,qBACyB;CACzB,AAAI,IAAa,EAAW,UAC1B,QAAQ,MAAM,iDAAiD;CAGjE,IAAM,KAAwB,MAA8B;EAC1D,IAAM,IAAa,IAAY;EAE/B,IAAI,EAAoB,SAAS,EAAW,EAC1C,OAAO;EAGT,IAAM,IAAqB,MAAM,KAAK,EAAE,QAAQ,GAAW,GAAG,GAAG,MAAU,IAAQ,EAAE,CAAC,QACnF,MAAS,CAAC,EAAoB,SAAS,EAAK,CAC9C,CAAC;EAEF,OAAO,OAAO,IAAqB,EAAE;;CAGvC,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;YACpB,EAAW,UACV,EAAW,KAAK,GAAO,MACrB,kBAAC,QAAD;GAAgC,WAAW,EAAO;aAChD,kBAAC,UAAD;IACE,WAAW,EAAK,EAAO,2BAA2B,CAChD,MAAU,IAAa,KAAK,EAAO,kCACpC,CAAC;IACF,GAAK,KAAe,EAAE,eAAe,EAAY,IAAQ,EAAE,EAAE;IAC7D,MAAK;IACL,cAAY,QAAQ,IAAQ;IAC5B,gBAAc,MAAU,IAAa,IAAI,SAAS,KAAA;IAClD,UAAU,MAAU,IAAa;cARnC,CAUE,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAmC,EAAqB,EAAM;KAAQ,CAAA,EAC9F,kBAAC,QAAD;KACE,WAAW,EACT,EAAO,kCACP,EAAoB,SAAS,IAAQ,EAAE,IAAI,EAAO,sCACnD;eAEA;KACI,CAAA,CACA;;GACJ,EArBI,GAAG,EAAM,GAAG,IAqBhB,CACP;EACA,CAAA"}
1
+ {"version":3,"file":"OverlayStepBar-Cj_-0waE.js","names":[],"sources":["../src/components/OverlayStepBar/OverlayStepBar.module.css","../src/components/OverlayStepBar/OverlayStepBar.tsx"],"sourcesContent":[".overlay-step-bar__container {\n align-items: center;\n background-color: var(--color-grey-200);\n display: flex;\n height: 2.5rem;\n justify-content: center;\n overflow-y: hidden;\n}\n\n.overlay-step-bar__step-wrapper {\n background-color: var(--color-grey-200);\n height: 100%;\n position: relative;\n}\n\n.overlay-step-bar__step-wrapper:not(:last-child)::after {\n border-bottom: 1.5rem solid transparent;\n border-left: 1rem solid var(--color-grey-200);\n border-top: 1.5rem solid transparent;\n content: \"\";\n position: absolute;\n right: -0.25rem;\n top: -0.25rem;\n z-index: 10;\n}\n\n.overlay-step-bar__step-wrapper:not(:last-child)::before {\n border-bottom: 1.5rem solid transparent;\n border-left: 1rem solid var(--color-uva-white);\n border-top: 1.5rem solid transparent;\n content: \"\";\n position: absolute;\n right: calc(-0.25rem - 0.25rem);\n top: -0.25rem;\n z-index: 5;\n}\n\n.overlay-step-bar__step {\n align-items: center;\n appearance: none;\n background-color: transparent;\n border: none;\n color: var(--color-grey-700);\n cursor: pointer;\n display: flex;\n font-family: inherit;\n font-size: var(--font-size-default);\n height: 100%;\n margin-left: 0.5rem;\n padding: 0 2rem 0 1.5rem;\n position: relative;\n width: calc(100% - 0.75rem);\n}\n\n.overlay-step-bar__step--label {\n display: none;\n text-decoration: none;\n white-space: nowrap;\n}\n\n.overlay-step-bar__step--label-show {\n display: block;\n}\n\n.overlay-step-bar__step--index {\n margin-right: 0.5rem;\n}\n\n.overlay-step-bar__step--label:hover {\n text-decoration: underline;\n}\n\n.overlay-step-bar__step--active .overlay-step-bar__step--label {\n display: block;\n}\n\n.overlay-step-bar__step:hover .overlay-step-bar__step--index,\n.overlay-step-bar__step:hover .overlay-step-bar__step--label {\n text-decoration: underline;\n}\n\n@media (min-width: 70rem) {\n .overlay-step-bar__step--label {\n display: block;\n }\n\n .overlay-step-bar__step:hover .overlay-step-bar__step--index {\n text-decoration: none;\n }\n}\n\n.overlay-step-bar__step:focus-visible {\n outline: 0.125rem dotted var(--color-navy-600);\n outline-offset: -0.25rem;\n z-index: 15;\n}\n\n.overlay-step-bar__step--active {\n color: var(--color-uva-black);\n font-weight: var(--semibold);\n}\n\n.overlay-step-bar__step--active:hover .overlay-step-bar__step--index,\n.overlay-step-bar__step--active:hover .overlay-step-bar__step--label {\n cursor: default;\n text-decoration: none;\n}\n","import { clsx } from 'clsx';\n\nimport styles from './OverlayStepBar.module.css';\n\nexport interface OverlayStepBarProps {\n /** Array of strings. */\n stepLabels: string[];\n /** activeStep number starting with 1. */\n activeStep: number;\n /** Array of prefix numbers to not show in the steplabels */\n disabledCountPrefix?: number[];\n /** navigate to step. */\n onStepClick?: (step: number) => void;\n}\n\nexport const OverlayStepBar = ({\n stepLabels,\n activeStep = 0,\n disabledCountPrefix = [],\n onStepClick,\n}: OverlayStepBarProps) => {\n if (activeStep > stepLabels.length) {\n console.error('activeStep is greater than the number of steps');\n }\n\n const getStepDisplayNumber = (stepIndex: number): string => {\n const stepNumber = stepIndex + 1;\n\n if (disabledCountPrefix.includes(stepNumber)) {\n return '';\n }\n\n const enabledStepsBefore = Array.from({ length: stepIndex }, (_, count) => count + 1).filter(\n (step) => !disabledCountPrefix.includes(step)\n ).length;\n\n return String(enabledStepsBefore + 1);\n };\n\n return (\n <div className={styles['overlay-step-bar__container']}>\n {stepLabels.length &&\n stepLabels.map((label, index) => (\n <span key={`${index}_${label}`} className={styles[`overlay-step-bar__step-wrapper`]}>\n <button\n className={clsx(styles[`overlay-step-bar__step`], [\n index === activeStep - 1 && styles[`overlay-step-bar__step--active`],\n ])}\n {...(onStepClick && { onClick: () => onStepClick(index + 1) })}\n type=\"button\"\n aria-label={`Step ${index + 1}`}\n aria-current={index === activeStep - 1 ? 'step' : undefined}\n disabled={index === activeStep - 1}\n >\n <span className={styles[`overlay-step-bar__step--index`]}>{getStepDisplayNumber(index)}</span>\n <span\n className={clsx(\n styles[`overlay-step-bar__step--label`],\n disabledCountPrefix.includes(index + 1) && styles[`overlay-step-bar__step--label-show`]\n )}\n >\n {label}\n </span>\n </button>\n </span>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;GCea,KAAkB,EAC7B,eACA,gBAAa,GACb,yBAAsB,CAAC,GACvB,qBACyB;CACzB,AAAI,IAAa,EAAW,UAC1B,QAAQ,MAAM,gDAAgD;CAGhE,IAAM,KAAwB,MAA8B;EAC1D,IAAM,IAAa,IAAY;EAE/B,IAAI,EAAoB,SAAS,CAAU,GACzC,OAAO;EAGT,IAAM,IAAqB,MAAM,KAAK,EAAE,QAAQ,EAAU,IAAI,GAAG,MAAU,IAAQ,CAAC,EAAE,QACnF,MAAS,CAAC,EAAoB,SAAS,CAAI,CAC9C,EAAE;EAEF,OAAO,OAAO,IAAqB,CAAC;CACtC;CAEA,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;YACpB,EAAW,UACV,EAAW,KAAK,GAAO,MACrB,kBAAC,QAAD;GAAgC,WAAW,EAAO;aAChD,kBAAC,UAAD;IACE,WAAW,EAAK,EAAO,2BAA2B,CAChD,MAAU,IAAa,KAAK,EAAO,iCACrC,CAAC;IACD,GAAK,KAAe,EAAE,eAAe,EAAY,IAAQ,CAAC,EAAE;IAC5D,MAAK;IACL,cAAY,QAAQ,IAAQ;IAC5B,gBAAc,MAAU,IAAa,IAAI,SAAS,KAAA;IAClD,UAAU,MAAU,IAAa;cARnC,CAUE,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAmC,EAAqB,CAAK;IAAQ,CAAA,GAC7F,kBAAC,QAAD;KACE,WAAW,EACT,EAAO,kCACP,EAAoB,SAAS,IAAQ,CAAC,KAAK,EAAO,qCACpD;eAEC;IACG,CAAA,CACA;;EACJ,GArBK,GAAG,EAAM,GAAG,GAqBjB,CACP;CACA,CAAA;AAET"}
@@ -1,7 +1,7 @@
1
- import { t as e } from "./clsx-BD2qMUU1.js";
2
- import { t } from "./Backdrop-D8AHeuBn.js";
3
- import { t as n } from "./OverlayCloseButton-rttFbAM_.js";
4
- import { t as r } from "./Spinner-BpElTDIu.js";
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
+ import { t } from "./Backdrop-bQ8kXsge.js";
3
+ import { t as n } from "./OverlayCloseButton-j-7mC4Zz.js";
4
+ import { t as r } from "./Spinner-BmPjd2Bv.js";
5
5
  import { useEffect as i, useRef as a, useState as o } from "react";
6
6
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  import { useDialog as u } from "@react-aria/dialog";
@@ -105,4 +105,4 @@ function _({ buttons: _, children: v, isLoading: y, spinnerAriaValueText: b = "L
105
105
  //#endregion
106
106
  export { _ as t };
107
107
 
108
- //# sourceMappingURL=PageOverlay-S4xsqJha.js.map
108
+ //# sourceMappingURL=PageOverlay-DqwdG5ve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageOverlay-S4xsqJha.js","names":[],"sources":["../src/components/PageOverlay/PageOverlay.module.css","../src/components/PageOverlay/PageOverlay.tsx"],"sourcesContent":[".page-overlay__container {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 50;\n}\n\n.page-overlay {\n background: var(--color-uva-white);\n display: flex;\n flex-direction: column;\n\n /* dynamic view height needed to adapt for possible auto hiding of mobile address bar */\n height: 100dvh;\n}\n\n.page-overlay--full-screen {\n width: 100vw;\n}\n\n.page-overlay--with-gutters {\n max-width: 87.5rem;\n width: 100%;\n}\n\n.page-overlay__content {\n display: flex;\n flex-direction: column;\n height: 100svh;\n justify-content: space-between;\n overflow: hidden;\n overflow-y: auto;\n padding: 0 1.5rem;\n width: 100%;\n}\n\n.page-overlay__content--grey {\n background-color: var(--color-grey-200);\n}\n\n.page-overlay__content--white {\n background-color: var(--color-uva-white);\n}\n\n.page-overlay__children {\n padding-bottom: 1rem;\n}\n\n.page-overlay__title-wrapper {\n position: relative;\n}\n\n.page-overlay__title {\n font-size: var(--font-size-s);\n line-height: var(--line-height-m);\n margin: 0 1.5rem 0 0;\n padding: 1rem 1.5rem;\n}\n\n.page-overlay__buttons-bar {\n background-color: var(--color-uva-white);\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n justify-content: flex-start;\n margin: 0 calc(-1 * 1.5rem);\n padding: 0.5rem 1rem;\n position: sticky;\n right: 0;\n}\n\n.page-overlay__buttons-bar::before {\n background: linear-gradient(to top, rgba(0 0 0 / 30%), rgba(0 0 0 / 0%));\n bottom: 100%;\n content: \"\";\n height: 10px;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n transition: opacity 0.4s ease-out;\n}\n\n.page-overlay__buttons-bar--shadow::before {\n opacity: 1;\n\n /* Show the shadow when content is scrollable and not scrolled to the bottom */\n}\n\n.page-overlay__close {\n height: 1.5rem;\n position: absolute;\n right: 1rem;\n top: calc(50% - 0.125rem);\n transform: translateY(-50%);\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .page-overlay--with-gutters {\n margin: 0 calc(1.5rem / 2);\n }\n}\n","import { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { OverlayContainer, useModal, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport classNames, { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport type { FormHTMLAttributes, KeyboardEvent, PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './PageOverlay.module.css';\n\nimport { OverlayCloseButton } from 'components/OverlayCloseButton';\nimport { Spinner } from 'components/Spinner';\nimport { Backdrop } from 'components/Backdrop';\n\nexport interface PageOverlayProps {\n /** The buttons of the dialog. */\n buttons?: ReactNode;\n /** `true` to show a spinner, if the contents of the dialog is lazy loaded; otherwise, `false`. */\n isLoading?: boolean;\n /** The `aria-valuetext` value of the [Spinner](/story/atoms-spinner--spinner-example) component. Used together with `isLoading`. */\n spinnerAriaValueText?: string;\n /** The `aria-label` value of the [OverlayCloseButton](/story/atoms-overlayclosebutton--overlay-close-button-example) component. */\n closeButtonAriaValueText?: string;\n /** `true` to render the dialog opened; otherwise, `false`. */\n isOpen: boolean;\n /** `true` to disable form validation; otherwise, `false`. */\n noValidate?: boolean;\n /** The callback function that is invoked when the dialog is closed. */\n onClose?(): void;\n /** The callback function that is invoked when the form is submitted. */\n onSubmit?: FormHTMLAttributes<HTMLFormElement>['onSubmit'];\n /** The title of the dialog. */\n title?: string;\n /** The contents of the dialog header. */\n headerContent?: ReactNode;\n /** The variant styling of the dialog. */\n variant?: 'full-screen' | 'with-gutters';\n /** The content background color of the dialog. Default grey-300*/\n contentBackgroundColor?: 'grey' | 'white';\n}\n\n/** Represents a component for a modal dialog. */\nexport function PageOverlay({\n buttons,\n children,\n isLoading,\n spinnerAriaValueText = 'Loading',\n closeButtonAriaValueText = 'Close',\n isOpen,\n noValidate = false,\n onClose,\n onSubmit,\n title,\n headerContent,\n variant = 'full-screen',\n contentBackgroundColor = 'grey',\n}: PropsWithChildren<PageOverlayProps>) {\n const ref = useRef<HTMLDivElement>(null);\n const formRef = useRef<HTMLFormElement>(null);\n const [isScrollable, setIsScrollable] = useState(false);\n const [isScrolledToBottom, setIsScrolledToBottom] = useState(false);\n\n const { dialogProps, titleProps } = useDialog({ role: 'dialog' }, ref);\n const { modalProps } = useModal({ isDisabled: !isOpen });\n const { overlayProps, underlayProps } = useOverlay({ isOpen, onClose }, ref);\n\n usePreventScroll({ isDisabled: !isOpen });\n\n useEffect(() => {\n const formElement = formRef.current;\n\n if (!formElement) return;\n\n function checkScrollable() {\n const scrollHeight = formElement!.scrollHeight;\n const clientHeight = formElement!.clientHeight;\n const scrollTop = formElement!.scrollTop;\n\n setIsScrollable(scrollHeight > clientHeight);\n setIsScrolledToBottom(scrollTop + clientHeight >= scrollHeight);\n }\n\n function handleScrollAndResize() {\n checkScrollable();\n }\n\n formElement.addEventListener('scroll', handleScrollAndResize);\n window.addEventListener('resize', handleScrollAndResize);\n\n const timeoutId = setTimeout(() => {\n checkScrollable();\n }, 0);\n\n return () => {\n formElement.removeEventListener('scroll', handleScrollAndResize);\n\n window.removeEventListener('resize', handleScrollAndResize);\n clearTimeout(timeoutId);\n };\n }, [isOpen, headerContent]);\n\n function onKeyUp(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n if (!isOpen) return null;\n\n return (\n <OverlayContainer className={styles['page-overlay__container']}>\n <Backdrop {...underlayProps}>\n {isLoading ? (\n <Spinner ariaValueText={spinnerAriaValueText} />\n ) : (\n <>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope autoFocus contain restoreFocus>\n <div\n {...dialogProps}\n {...modalProps}\n {...overlayProps}\n className={clsx(styles['page-overlay'], {\n [styles[`page-overlay--${variant}`]]: variant,\n })}\n onKeyUp={onKeyUp}\n role=\"presentation\"\n ref={ref}\n >\n {(title || headerContent) && (\n <div className={styles['page-overlay__title-wrapper']}>\n {title && (\n <h1 {...titleProps} className={styles['page-overlay__title']}>\n {title}\n </h1>\n )}\n {headerContent}\n {\n <span className={styles['page-overlay__close']}>\n <OverlayCloseButton aria-label={closeButtonAriaValueText} onClick={onClose} />\n </span>\n }\n </div>\n )}\n <form\n className={classNames(\n styles['page-overlay__content'],\n styles[`page-overlay__content--${contentBackgroundColor}`],\n {\n [styles['page-overlay--content-with-buttons']]: buttons,\n }\n )}\n onSubmit={onSubmit}\n noValidate={noValidate}\n ref={formRef}\n >\n <div className={styles['page-overlay__children']}>{children}</div>\n {buttons && (\n <div\n className={classNames(styles['page-overlay__buttons-bar'], {\n [styles['page-overlay__buttons-bar--shadow']]: isScrollable && !isScrolledToBottom,\n })}\n >\n {buttons}\n </div>\n )}\n </form>\n </div>\n </FocusScope>\n </>\n )}\n </Backdrop>\n </OverlayContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AC0CA,SAAgB,EAAY,EAC1B,YACA,aACA,cACA,0BAAuB,WACvB,8BAA2B,SAC3B,WACA,gBAAa,IACb,YACA,aACA,UACA,kBACA,aAAU,eACV,4BAAyB,UACa;CACtC,IAAM,IAAM,EAAuB,KAAK,EAClC,IAAU,EAAwB,KAAK,EACvC,CAAC,GAAc,KAAmB,EAAS,GAAM,EACjD,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAE7D,EAAE,gBAAa,kBAAe,EAAU,EAAE,MAAM,UAAU,EAAE,EAAI,EAChE,EAAE,kBAAe,EAAS,EAAE,YAAY,CAAC,GAAQ,CAAC,EAClD,EAAE,iBAAc,qBAAkB,EAAW;EAAE;EAAQ;EAAS,EAAE,EAAI;CAI5E,AAFA,EAAiB,EAAE,YAAY,CAAC,GAAQ,CAAC,EAEzC,QAAgB;EACd,IAAM,IAAc,EAAQ;EAE5B,IAAI,CAAC,GAAa;EAElB,SAAS,IAAkB;GACzB,IAAM,IAAe,EAAa,cAC5B,IAAe,EAAa,cAC5B,IAAY,EAAa;GAG/B,AADA,EAAgB,IAAe,EAAa,EAC5C,EAAsB,IAAY,KAAgB,EAAa;;EAGjE,SAAS,IAAwB;GAC/B,GAAiB;;EAInB,AADA,EAAY,iBAAiB,UAAU,EAAsB,EAC7D,OAAO,iBAAiB,UAAU,EAAsB;EAExD,IAAM,IAAY,iBAAiB;GACjC,GAAiB;KAChB,EAAE;EAEL,aAAa;GAIX,AAHA,EAAY,oBAAoB,UAAU,EAAsB,EAEhE,OAAO,oBAAoB,UAAU,EAAsB,EAC3D,aAAa,EAAU;;IAExB,CAAC,GAAQ,EAAc,CAAC;CAE3B,SAAS,EAAQ,GAAsB;EACrC,EAAM,iBAAiB;;CAKzB,OAFK,IAGH,kBAAC,GAAD;EAAkB,WAAW,EAAO;YAClC,kBAAC,GAAD;GAAU,GAAI;aACX,IACC,kBAAC,GAAD,EAAS,eAAe,GAAwB,CAAA,GAEhD,kBAAA,GAAA,EAAA,UAEE,kBAAC,GAAD;IAAY,WAAA;IAAU,SAAA;IAAQ,cAAA;cAC5B,kBAAC,OAAD;KACE,GAAI;KACJ,GAAI;KACJ,GAAI;KACJ,WAAW,EAAK,EAAO,iBAAiB,GACrC,EAAO,iBAAiB,OAAa,GACvC,CAAC;KACO;KACT,MAAK;KACA;eATP,EAWI,KAAS,MACT,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACG,KACC,kBAAC,MAAD;QAAI,GAAI;QAAY,WAAW,EAAO;kBACnC;QACE,CAAA;OAEN;OAEC,kBAAC,QAAD;QAAM,WAAW,EAAO;kBACtB,kBAAC,GAAD;SAAoB,cAAY;SAA0B,SAAS;SAAW,CAAA;QACzE,CAAA;OAEL;SAER,kBAAC,QAAD;MACE,WAAW,EACT,EAAO,0BACP,EAAO,0BAA0B,MACjC,GACG,EAAO,wCAAwC,GACjD,CACF;MACS;MACE;MACZ,KAAK;gBAVP,CAYE,kBAAC,OAAD;OAAK,WAAW,EAAO;OAA4B;OAAe,CAAA,EACjE,KACC,kBAAC,OAAD;OACE,WAAW,EAAW,EAAO,8BAA8B,GACxD,EAAO,uCAAuC,KAAgB,CAAC,GACjE,CAAC;iBAED;OACG,CAAA,CAEH;QACH;;IACK,CAAA,EACZ,CAAA;GAEI,CAAA;EACM,CAAA,GAjED"}
1
+ {"version":3,"file":"PageOverlay-DqwdG5ve.js","names":[],"sources":["../src/components/PageOverlay/PageOverlay.module.css","../src/components/PageOverlay/PageOverlay.tsx"],"sourcesContent":[".page-overlay__container {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 50;\n}\n\n.page-overlay {\n background: var(--color-uva-white);\n display: flex;\n flex-direction: column;\n\n /* dynamic view height needed to adapt for possible auto hiding of mobile address bar */\n height: 100dvh;\n}\n\n.page-overlay--full-screen {\n width: 100vw;\n}\n\n.page-overlay--with-gutters {\n max-width: 87.5rem;\n width: 100%;\n}\n\n.page-overlay__content {\n display: flex;\n flex-direction: column;\n height: 100svh;\n justify-content: space-between;\n overflow: hidden;\n overflow-y: auto;\n padding: 0 1.5rem;\n width: 100%;\n}\n\n.page-overlay__content--grey {\n background-color: var(--color-grey-200);\n}\n\n.page-overlay__content--white {\n background-color: var(--color-uva-white);\n}\n\n.page-overlay__children {\n padding-bottom: 1rem;\n}\n\n.page-overlay__title-wrapper {\n position: relative;\n}\n\n.page-overlay__title {\n font-size: var(--font-size-s);\n line-height: var(--line-height-m);\n margin: 0 1.5rem 0 0;\n padding: 1rem 1.5rem;\n}\n\n.page-overlay__buttons-bar {\n background-color: var(--color-uva-white);\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n justify-content: flex-start;\n margin: 0 calc(-1 * 1.5rem);\n padding: 0.5rem 1rem;\n position: sticky;\n right: 0;\n}\n\n.page-overlay__buttons-bar::before {\n background: linear-gradient(to top, rgba(0 0 0 / 30%), rgba(0 0 0 / 0%));\n bottom: 100%;\n content: \"\";\n height: 10px;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n transition: opacity 0.4s ease-out;\n}\n\n.page-overlay__buttons-bar--shadow::before {\n opacity: 1;\n\n /* Show the shadow when content is scrollable and not scrolled to the bottom */\n}\n\n.page-overlay__close {\n height: 1.5rem;\n position: absolute;\n right: 1rem;\n top: calc(50% - 0.125rem);\n transform: translateY(-50%);\n}\n\n@media (min-width: 28rem) and (min-height: 28rem) {\n .page-overlay--with-gutters {\n margin: 0 calc(1.5rem / 2);\n }\n}\n","import { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { OverlayContainer, useModal, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport classNames, { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport type { FormHTMLAttributes, KeyboardEvent, PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './PageOverlay.module.css';\n\nimport { OverlayCloseButton } from 'components/OverlayCloseButton';\nimport { Spinner } from 'components/Spinner';\nimport { Backdrop } from 'components/Backdrop';\n\nexport interface PageOverlayProps {\n /** The buttons of the dialog. */\n buttons?: ReactNode;\n /** `true` to show a spinner, if the contents of the dialog is lazy loaded; otherwise, `false`. */\n isLoading?: boolean;\n /** The `aria-valuetext` value of the [Spinner](/story/atoms-spinner--spinner-example) component. Used together with `isLoading`. */\n spinnerAriaValueText?: string;\n /** The `aria-label` value of the [OverlayCloseButton](/story/atoms-overlayclosebutton--overlay-close-button-example) component. */\n closeButtonAriaValueText?: string;\n /** `true` to render the dialog opened; otherwise, `false`. */\n isOpen: boolean;\n /** `true` to disable form validation; otherwise, `false`. */\n noValidate?: boolean;\n /** The callback function that is invoked when the dialog is closed. */\n onClose?(): void;\n /** The callback function that is invoked when the form is submitted. */\n onSubmit?: FormHTMLAttributes<HTMLFormElement>['onSubmit'];\n /** The title of the dialog. */\n title?: string;\n /** The contents of the dialog header. */\n headerContent?: ReactNode;\n /** The variant styling of the dialog. */\n variant?: 'full-screen' | 'with-gutters';\n /** The content background color of the dialog. Default grey-300*/\n contentBackgroundColor?: 'grey' | 'white';\n}\n\n/** Represents a component for a modal dialog. */\nexport function PageOverlay({\n buttons,\n children,\n isLoading,\n spinnerAriaValueText = 'Loading',\n closeButtonAriaValueText = 'Close',\n isOpen,\n noValidate = false,\n onClose,\n onSubmit,\n title,\n headerContent,\n variant = 'full-screen',\n contentBackgroundColor = 'grey',\n}: PropsWithChildren<PageOverlayProps>) {\n const ref = useRef<HTMLDivElement>(null);\n const formRef = useRef<HTMLFormElement>(null);\n const [isScrollable, setIsScrollable] = useState(false);\n const [isScrolledToBottom, setIsScrolledToBottom] = useState(false);\n\n const { dialogProps, titleProps } = useDialog({ role: 'dialog' }, ref);\n const { modalProps } = useModal({ isDisabled: !isOpen });\n const { overlayProps, underlayProps } = useOverlay({ isOpen, onClose }, ref);\n\n usePreventScroll({ isDisabled: !isOpen });\n\n useEffect(() => {\n const formElement = formRef.current;\n\n if (!formElement) return;\n\n function checkScrollable() {\n const scrollHeight = formElement!.scrollHeight;\n const clientHeight = formElement!.clientHeight;\n const scrollTop = formElement!.scrollTop;\n\n setIsScrollable(scrollHeight > clientHeight);\n setIsScrolledToBottom(scrollTop + clientHeight >= scrollHeight);\n }\n\n function handleScrollAndResize() {\n checkScrollable();\n }\n\n formElement.addEventListener('scroll', handleScrollAndResize);\n window.addEventListener('resize', handleScrollAndResize);\n\n const timeoutId = setTimeout(() => {\n checkScrollable();\n }, 0);\n\n return () => {\n formElement.removeEventListener('scroll', handleScrollAndResize);\n\n window.removeEventListener('resize', handleScrollAndResize);\n clearTimeout(timeoutId);\n };\n }, [isOpen, headerContent]);\n\n function onKeyUp(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n if (!isOpen) return null;\n\n return (\n <OverlayContainer className={styles['page-overlay__container']}>\n <Backdrop {...underlayProps}>\n {isLoading ? (\n <Spinner ariaValueText={spinnerAriaValueText} />\n ) : (\n <>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope autoFocus contain restoreFocus>\n <div\n {...dialogProps}\n {...modalProps}\n {...overlayProps}\n className={clsx(styles['page-overlay'], {\n [styles[`page-overlay--${variant}`]]: variant,\n })}\n onKeyUp={onKeyUp}\n role=\"presentation\"\n ref={ref}\n >\n {(title || headerContent) && (\n <div className={styles['page-overlay__title-wrapper']}>\n {title && (\n <h1 {...titleProps} className={styles['page-overlay__title']}>\n {title}\n </h1>\n )}\n {headerContent}\n {\n <span className={styles['page-overlay__close']}>\n <OverlayCloseButton aria-label={closeButtonAriaValueText} onClick={onClose} />\n </span>\n }\n </div>\n )}\n <form\n className={classNames(\n styles['page-overlay__content'],\n styles[`page-overlay__content--${contentBackgroundColor}`],\n {\n [styles['page-overlay--content-with-buttons']]: buttons,\n }\n )}\n onSubmit={onSubmit}\n noValidate={noValidate}\n ref={formRef}\n >\n <div className={styles['page-overlay__children']}>{children}</div>\n {buttons && (\n <div\n className={classNames(styles['page-overlay__buttons-bar'], {\n [styles['page-overlay__buttons-bar--shadow']]: isScrollable && !isScrolledToBottom,\n })}\n >\n {buttons}\n </div>\n )}\n </form>\n </div>\n </FocusScope>\n </>\n )}\n </Backdrop>\n </OverlayContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AC0CA,SAAgB,EAAY,EAC1B,YACA,aACA,cACA,0BAAuB,WACvB,8BAA2B,SAC3B,WACA,gBAAa,IACb,YACA,aACA,UACA,kBACA,aAAU,eACV,4BAAyB,UACa;CACtC,IAAM,IAAM,EAAuB,IAAI,GACjC,IAAU,EAAwB,IAAI,GACtC,CAAC,GAAc,KAAmB,EAAS,EAAK,GAChD,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAE5D,EAAE,gBAAa,kBAAe,EAAU,EAAE,MAAM,SAAS,GAAG,CAAG,GAC/D,EAAE,kBAAe,EAAS,EAAE,YAAY,CAAC,EAAO,CAAC,GACjD,EAAE,iBAAc,qBAAkB,EAAW;EAAE;EAAQ;CAAQ,GAAG,CAAG;CAI3E,AAFA,EAAiB,EAAE,YAAY,CAAC,EAAO,CAAC,GAExC,QAAgB;EACd,IAAM,IAAc,EAAQ;EAE5B,IAAI,CAAC,GAAa;EAElB,SAAS,IAAkB;GACzB,IAAM,IAAe,EAAa,cAC5B,IAAe,EAAa,cAC5B,IAAY,EAAa;GAG/B,AADA,EAAgB,IAAe,CAAY,GAC3C,EAAsB,IAAY,KAAgB,CAAY;EAChE;EAEA,SAAS,IAAwB;GAC/B,EAAgB;EAClB;EAGA,AADA,EAAY,iBAAiB,UAAU,CAAqB,GAC5D,OAAO,iBAAiB,UAAU,CAAqB;EAEvD,IAAM,IAAY,iBAAiB;GACjC,EAAgB;EAClB,GAAG,CAAC;EAEJ,aAAa;GAIX,AAHA,EAAY,oBAAoB,UAAU,CAAqB,GAE/D,OAAO,oBAAoB,UAAU,CAAqB,GAC1D,aAAa,CAAS;EACxB;CACF,GAAG,CAAC,GAAQ,CAAa,CAAC;CAE1B,SAAS,EAAQ,GAAsB;EACrC,EAAM,gBAAgB;CACxB;CAIA,OAFK,IAGH,kBAAC,GAAD;EAAkB,WAAW,EAAO;YAClC,kBAAC,GAAD;GAAU,GAAI;aACX,IACC,kBAAC,GAAD,EAAS,eAAe,EAAuB,CAAA,IAE/C,kBAAA,GAAA,EAAA,UAEE,kBAAC,GAAD;IAAY,WAAA;IAAU,SAAA;IAAQ,cAAA;cAC5B,kBAAC,OAAD;KACE,GAAI;KACJ,GAAI;KACJ,GAAI;KACJ,WAAW,EAAK,EAAO,iBAAiB,GACrC,EAAO,iBAAiB,OAAa,EACxC,CAAC;KACQ;KACT,MAAK;KACA;eATP,EAWI,KAAS,MACT,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACG,KACC,kBAAC,MAAD;QAAI,GAAI;QAAY,WAAW,EAAO;kBACnC;OACC,CAAA;OAEL;OAEC,kBAAC,QAAD;QAAM,WAAW,EAAO;kBACtB,kBAAC,GAAD;SAAoB,cAAY;SAA0B,SAAS;QAAU,CAAA;OACzE,CAAA;MAEL;SAEP,kBAAC,QAAD;MACE,WAAW,EACT,EAAO,0BACP,EAAO,0BAA0B,MACjC,GACG,EAAO,wCAAwC,EAClD,CACF;MACU;MACE;MACZ,KAAK;gBAVP,CAYE,kBAAC,OAAD;OAAK,WAAW,EAAO;OAA4B;MAAc,CAAA,GAChE,KACC,kBAAC,OAAD;OACE,WAAW,EAAW,EAAO,8BAA8B,GACxD,EAAO,uCAAuC,KAAgB,CAAC,EAClE,CAAC;iBAEA;MACE,CAAA,CAEH;OACH;;GACK,CAAA,EACZ,CAAA;EAEI,CAAA;CACM,CAAA,IAjEA;AAmEtB"}
@@ -1,8 +1,8 @@
1
- import { t as e } from "./chunk-3e0lkp8x.js";
2
- import { t } from "./LexicalComposerContext.prod-Ca-YN_fj.js";
3
- import { Rt as n, ot as r } from "./Lexical.prod-CqPLSi0R.js";
4
- import { r as i } from "./LexicalUtils.prod-BqcriFWV.js";
5
- import { n as a } from "./LexicalClipboard.prod-BVw_sFpo.js";
1
+ import { t as e } from "./chunk-CWhphoD1.js";
2
+ import { t } from "./LexicalComposerContext.prod-y_BRxu3Z.js";
3
+ import { Rt as n, ot as r } from "./Lexical.prod-8zZnpGo4.js";
4
+ import { r as i } from "./LexicalUtils.prod-BWhWP8es.js";
5
+ import { n as a } from "./LexicalClipboard.prod-hbxbsROy.js";
6
6
  import { useEffect as o } from "react";
7
7
  //#region node_modules/@staartwind.nl/lexical-paste-from-word/dist/normalizer.js
8
8
  var s = /* @__PURE__ */ e(((e) => {
@@ -232,4 +232,4 @@ var s = /* @__PURE__ */ e(((e) => {
232
232
  //#endregion
233
233
  export { l as t };
234
234
 
235
- //# sourceMappingURL=PasteHandlerPlugin-BNp8ST0q.js.map
235
+ //# sourceMappingURL=PasteHandlerPlugin-Bc6n-G35.js.map