@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.
- package/dist/{Accordion-DvblEUVu.js → Accordion-DaCqVof1.js} +2 -2
- package/dist/{Accordion-DvblEUVu.js.map → Accordion-DaCqVof1.js.map} +1 -1
- package/dist/{AccordionCard-BXy-plB7.js → AccordionCard-CD5H9gR1.js} +2 -2
- package/dist/{AccordionCard-BXy-plB7.js.map → AccordionCard-CD5H9gR1.js.map} +1 -1
- package/dist/{ActionList-O9w1hqNg.js → ActionList-C0hD9noC.js} +2 -2
- package/dist/{ActionList-O9w1hqNg.js.map → ActionList-C0hD9noC.js.map} +1 -1
- package/dist/{AddCatalogueLinkForm-rph4K9P0.js → AddCatalogueLinkForm-DNv2tEdF.js} +5 -5
- package/dist/{AddCatalogueLinkForm-rph4K9P0.js.map → AddCatalogueLinkForm-DNv2tEdF.js.map} +1 -1
- package/dist/{AppStatusBar-Bca0KFDR.js → AppStatusBar-BK0yaC4G.js} +2 -2
- package/dist/{AppStatusBar-Bca0KFDR.js.map → AppStatusBar-BK0yaC4G.js.map} +1 -1
- package/dist/{Attention-Bq5UU9I8.js → Attention-xqGAJ7-T.js} +1 -1
- package/dist/{Attention-Bq5UU9I8.js.map → Attention-xqGAJ7-T.js.map} +1 -1
- package/dist/{Backdrop-D8AHeuBn.js → Backdrop-bQ8kXsge.js} +1 -1
- package/dist/{Backdrop-D8AHeuBn.js.map → Backdrop-bQ8kXsge.js.map} +1 -1
- package/dist/{Button.module-DJlNwQUj.js → Button.module-BkAiXo3V.js} +1 -1
- package/dist/{Button.module-DJlNwQUj.js.map → Button.module-BkAiXo3V.js.map} +1 -1
- package/dist/{ButtonGroup-DR80lTLz.js → ButtonGroup-ZqGGZ1rz.js} +2 -2
- package/dist/{ButtonGroup-DR80lTLz.js.map → ButtonGroup-ZqGGZ1rz.js.map} +1 -1
- package/dist/{Card-DMFyuTmy.js → Card-BH1ySOiP.js} +3 -3
- package/dist/{Card-DMFyuTmy.js.map → Card-BH1ySOiP.js.map} +1 -1
- package/dist/{Checkbox-D6-b_4dC.js → Checkbox-sAt4To2B.js} +1 -1
- package/dist/{Checkbox-D6-b_4dC.js.map → Checkbox-sAt4To2B.js.map} +1 -1
- package/dist/{CheckboxButtonBar-5UMIFMKH.js → CheckboxButtonBar-DpNnwLzI.js} +5 -5
- package/dist/{CheckboxButtonBar-5UMIFMKH.js.map → CheckboxButtonBar-DpNnwLzI.js.map} +1 -1
- package/dist/{Chip-DJHvFToV.js → Chip-9XnXFhoJ.js} +1 -1
- package/dist/{Chip-DJHvFToV.js.map → Chip-9XnXFhoJ.js.map} +1 -1
- package/dist/{ClipboardButton-geHjMl2J.js → ClipboardButton-Cg6LGUiD.js} +1 -1
- package/dist/{ClipboardButton-geHjMl2J.js.map → ClipboardButton-Cg6LGUiD.js.map} +1 -1
- package/dist/{Column-BwKEOOuL.js → Column-BwCVSZrG.js} +2 -2
- package/dist/{Column-BwKEOOuL.js.map → Column-BwCVSZrG.js.map} +1 -1
- package/dist/{Container-BLjtYDqq.js → Container-DK25h_-f.js} +2 -2
- package/dist/{Container-BLjtYDqq.js.map → Container-DK25h_-f.js.map} +1 -1
- package/dist/{ControlsButton-B1XRpMUM.js → ControlsButton-9uR_zW_F.js} +2 -2
- package/dist/{ControlsButton-B1XRpMUM.js.map → ControlsButton-9uR_zW_F.js.map} +1 -1
- package/dist/{CopyableText-DkyhZ6wk.js → CopyableText-hSqhyUWx.js} +2 -2
- package/dist/{CopyableText-DkyhZ6wk.js.map → CopyableText-hSqhyUWx.js.map} +1 -1
- package/dist/{Drawer-e7UFHVg9.js → Drawer-BbVJqFQI.js} +4 -4
- package/dist/{Drawer-e7UFHVg9.js.map → Drawer-BbVJqFQI.js.map} +1 -1
- package/dist/{EmptyStateDataDisplay-D0QiI8nE.js → EmptyStateDataDisplay-IT2P3ius.js} +2 -2
- package/dist/{EmptyStateDataDisplay-D0QiI8nE.js.map → EmptyStateDataDisplay-IT2P3ius.js.map} +1 -1
- package/dist/{ExpandableInfoPanel-CnBVVNlJ.js → ExpandableInfoPanel-DMfcJFP3.js} +2 -2
- package/dist/{ExpandableInfoPanel-CnBVVNlJ.js.map → ExpandableInfoPanel-DMfcJFP3.js.map} +1 -1
- package/dist/{FeedbackBar-ByKp32HE.js → FeedbackBar-DRbJVniP.js} +3 -3
- package/dist/{FeedbackBar-ByKp32HE.js.map → FeedbackBar-DRbJVniP.js.map} +1 -1
- package/dist/{FeedbackBox-Bu7uB9DP.js → FeedbackBox-CaSxB4uc.js} +2 -2
- package/dist/{FeedbackBox-Bu7uB9DP.js.map → FeedbackBox-CaSxB4uc.js.map} +1 -1
- package/dist/{FieldHint-fxnEOsVZ.js → FieldHint-FEBzgLI_.js} +2 -2
- package/dist/{FieldHint-fxnEOsVZ.js.map → FieldHint-FEBzgLI_.js.map} +1 -1
- package/dist/{Fieldset-0LFsZ3Mz.js → Fieldset-D01_rj_p.js} +2 -2
- package/dist/{Fieldset-0LFsZ3Mz.js.map → Fieldset-D01_rj_p.js.map} +1 -1
- package/dist/{Flyout-DEpzfZOC.js → Flyout-JUwXvgo6.js} +1 -1
- package/dist/{Flyout-DEpzfZOC.js.map → Flyout-JUwXvgo6.js.map} +1 -1
- package/dist/{FormField-BZSoQdp9.js → FormField-CcV84TfI.js} +2 -2
- package/dist/{FormField-BZSoQdp9.js.map → FormField-CcV84TfI.js.map} +1 -1
- package/dist/{HorizontalList-C22DaDz-.js → HorizontalList-CLlRGWZX.js} +1 -1
- package/dist/{HorizontalList-C22DaDz-.js.map → HorizontalList-CLlRGWZX.js.map} +1 -1
- package/dist/{IconButton-CWCMH9uf.js → IconButton-CSNMVEG1.js} +2 -2
- package/dist/{IconButton-CWCMH9uf.js.map → IconButton-CSNMVEG1.js.map} +1 -1
- package/dist/{InfoBanner-DyznQLGr.js → InfoBanner-DqBWtCVE.js} +1 -1
- package/dist/{InfoBanner-DyznQLGr.js.map → InfoBanner-DqBWtCVE.js.map} +1 -1
- package/dist/{InfoMessage-I-VlwxVc.js → InfoMessage-COywXu4O.js} +2 -2
- package/dist/{InfoMessage-I-VlwxVc.js.map → InfoMessage-COywXu4O.js.map} +1 -1
- package/dist/{Input-Bn-arMaC.js → Input-BzKvzbzP.js} +2 -2
- package/dist/{Input-Bn-arMaC.js.map → Input-BzKvzbzP.js.map} +1 -1
- package/dist/{InputField-BWAy19w9.js → InputField-T01uazlI.js} +2 -2
- package/dist/{InputField-BWAy19w9.js.map → InputField-T01uazlI.js.map} +1 -1
- package/dist/{Label-o0BcWTUS.js → Label-D0ACrYG3.js} +2 -2
- package/dist/{Label-o0BcWTUS.js.map → Label-D0ACrYG3.js.map} +1 -1
- package/dist/{Lexical.prod-CqPLSi0R.js → Lexical.prod-8zZnpGo4.js} +1 -1
- package/dist/Lexical.prod-8zZnpGo4.js.map +1 -0
- package/dist/{LexicalClipboard.prod-BVw_sFpo.js → LexicalClipboard.prod-hbxbsROy.js} +4 -4
- package/dist/LexicalClipboard.prod-hbxbsROy.js.map +1 -0
- package/dist/{LexicalComposerContext.prod-Ca-YN_fj.js → LexicalComposerContext.prod-y_BRxu3Z.js} +1 -1
- package/dist/{LexicalComposerContext.prod-Ca-YN_fj.js.map → LexicalComposerContext.prod-y_BRxu3Z.js.map} +1 -1
- package/dist/{LexicalExtension.prod-CUQTgbur.js → LexicalExtension.prod-v8IpET5E.js} +3 -3
- package/dist/LexicalExtension.prod-v8IpET5E.js.map +1 -0
- package/dist/{LexicalLink.prod-DMhcqD9x.js → LexicalLink.prod-BVUv9-sZ.js} +4 -4
- package/dist/LexicalLink.prod-BVUv9-sZ.js.map +1 -0
- package/dist/{LexicalList.prod-eYlcb5Ao.js → LexicalList.prod-CCPDDafy.js} +4 -4
- package/dist/LexicalList.prod-CCPDDafy.js.map +1 -0
- package/dist/{LexicalTable.prod-DlOxUQou.js → LexicalTable.prod-D_9Dr3kL.js} +5 -5
- package/dist/LexicalTable.prod-D_9Dr3kL.js.map +1 -0
- package/dist/{LexicalUtils.prod-BqcriFWV.js → LexicalUtils.prod-BWhWP8es.js} +2 -2
- package/dist/{LexicalUtils.prod-BqcriFWV.js.map → LexicalUtils.prod-BWhWP8es.js.map} +1 -1
- package/dist/{LinkContextMenu-ePn1iZ_z.js → LinkContextMenu-CTu2nP2j.js} +2 -2
- package/dist/{LinkContextMenu-ePn1iZ_z.js.map → LinkContextMenu-CTu2nP2j.js.map} +1 -1
- package/dist/{MenuLink-Cm1yZO_5.js → MenuLink-La_3ANEL.js} +2 -2
- package/dist/{MenuLink-Cm1yZO_5.js.map → MenuLink-La_3ANEL.js.map} +1 -1
- package/dist/{MetaDataBar-C4QO9oBV.js → MetaDataBar-48J7yPrb.js} +1 -1
- package/dist/{MetaDataBar-C4QO9oBV.js.map → MetaDataBar-48J7yPrb.js.map} +1 -1
- package/dist/{MetaDataList-CAR1HTYs.js → MetaDataList-Co9WCexh.js} +1 -1
- package/dist/{MetaDataList-CAR1HTYs.js.map → MetaDataList-Co9WCexh.js.map} +1 -1
- package/dist/{ModalDialog-N50NGnd4.js → ModalDialog-J7xcPcnS.js} +5 -5
- package/dist/{ModalDialog-N50NGnd4.js.map → ModalDialog-J7xcPcnS.js.map} +1 -1
- package/dist/{MultiSelectBox-Cuh_o-A1.js → MultiSelectBox-BmBxa6PH.js} +3 -3
- package/dist/{MultiSelectBox-Cuh_o-A1.js.map → MultiSelectBox-BmBxa6PH.js.map} +1 -1
- package/dist/{MultiSelectItem-BF5xRjz5.js → MultiSelectItem-6d8kQgFs.js} +3 -3
- package/dist/{MultiSelectItem-BF5xRjz5.js.map → MultiSelectItem-6d8kQgFs.js.map} +1 -1
- package/dist/{Notification-CIhsHuF0.js → Notification-BAqCenxt.js} +2 -2
- package/dist/{Notification-CIhsHuF0.js.map → Notification-BAqCenxt.js.map} +1 -1
- package/dist/{OverlayCloseButton-rttFbAM_.js → OverlayCloseButton-j-7mC4Zz.js} +2 -2
- package/dist/{OverlayCloseButton-rttFbAM_.js.map → OverlayCloseButton-j-7mC4Zz.js.map} +1 -1
- package/dist/{OverlayStepBar-CjaoYdsh.js → OverlayStepBar-Cj_-0waE.js} +2 -2
- package/dist/{OverlayStepBar-CjaoYdsh.js.map → OverlayStepBar-Cj_-0waE.js.map} +1 -1
- package/dist/{PageOverlay-S4xsqJha.js → PageOverlay-DqwdG5ve.js} +5 -5
- package/dist/{PageOverlay-S4xsqJha.js.map → PageOverlay-DqwdG5ve.js.map} +1 -1
- package/dist/{PasteHandlerPlugin-BNp8ST0q.js → PasteHandlerPlugin-Bc6n-G35.js} +6 -6
- package/dist/{PasteHandlerPlugin-BNp8ST0q.js.map → PasteHandlerPlugin-Bc6n-G35.js.map} +1 -1
- package/dist/{Periods-BYETtB6R.js → Periods-C5cxLlWt.js} +2 -2
- package/dist/{Periods-BYETtB6R.js.map → Periods-C5cxLlWt.js.map} +1 -1
- package/dist/{ProgrammeCard-76gG7ksx.js → ProgrammeCard-CAAOSWKa.js} +2 -2
- package/dist/{ProgrammeCard-76gG7ksx.js.map → ProgrammeCard-CAAOSWKa.js.map} +1 -1
- package/dist/{RadioButton-Bto2p5B9.js → RadioButton-CKALsbBb.js} +2 -2
- package/dist/{RadioButton-Bto2p5B9.js.map → RadioButton-CKALsbBb.js.map} +1 -1
- package/dist/{RadioGroup-JeTjVp5B.js → RadioGroup-DhnnBRJu.js} +3 -3
- package/dist/{RadioGroup-JeTjVp5B.js.map → RadioGroup-DhnnBRJu.js.map} +1 -1
- package/dist/{Repeater-BhkTEUai.js → Repeater-Bnoqqz0X.js} +2 -2
- package/dist/{Repeater-BhkTEUai.js.map → Repeater-Bnoqqz0X.js.map} +1 -1
- package/dist/{RteEditor.module-BJLUYSpf.js → RteEditor.module-pWBasED2.js} +1 -1
- package/dist/{RteEditor.module-BJLUYSpf.js.map → RteEditor.module-pWBasED2.js.map} +1 -1
- package/dist/{SearchField.module-BgxjHaPG.js → SearchField.module-Bn9xQD-f.js} +1 -1
- package/dist/{SearchField.module-BgxjHaPG.js.map → SearchField.module-Bn9xQD-f.js.map} +1 -1
- package/dist/{SectionNotification-CQqwPTqP.js → SectionNotification-BT0Z2edJ.js} +2 -2
- package/dist/{SectionNotification-CQqwPTqP.js.map → SectionNotification-BT0Z2edJ.js.map} +1 -1
- package/dist/{SelectListbox.module-HaPs1CLD.js → SelectListbox.module-Df90DNyN.js} +1 -1
- package/dist/{SelectListbox.module-HaPs1CLD.js.map → SelectListbox.module-Df90DNyN.js.map} +1 -1
- package/dist/{Slider-BlLyrET9.js → Slider-dCmT0VM2.js} +2 -2
- package/dist/{Slider-BlLyrET9.js.map → Slider-dCmT0VM2.js.map} +1 -1
- package/dist/{Sortable.module-8SoaHfuE.js → Sortable.module-CgDMpWM8.js} +1 -1
- package/dist/{Sortable.module-8SoaHfuE.js.map → Sortable.module-CgDMpWM8.js.map} +1 -1
- package/dist/{SortableProvider-8HYiBXJS.js → SortableProvider-DV6gWmq_.js} +3 -3
- package/dist/{SortableProvider-8HYiBXJS.js.map → SortableProvider-DV6gWmq_.js.map} +1 -1
- package/dist/{Spinner-BpElTDIu.js → Spinner-BmPjd2Bv.js} +1 -1
- package/dist/{Spinner-BpElTDIu.js.map → Spinner-BmPjd2Bv.js.map} +1 -1
- package/dist/{StatusBage-DQDOF5-U.js → StatusBage-CfEIuIPa.js} +2 -2
- package/dist/{StatusBage-DQDOF5-U.js.map → StatusBage-CfEIuIPa.js.map} +1 -1
- package/dist/{StatusPill-DM7n3I4W.js → StatusPill-CbJV4t-V.js} +2 -2
- package/dist/{StatusPill-DM7n3I4W.js.map → StatusPill-CbJV4t-V.js.map} +1 -1
- package/dist/{TableCellContextMenu-D0IMQr3E.js → TableCellContextMenu-9V8mnPmU.js} +3 -3
- package/dist/{TableCellContextMenu-D0IMQr3E.js.map → TableCellContextMenu-9V8mnPmU.js.map} +1 -1
- package/dist/{TableCellResizerPlugin-Bc5y-Qbx.js → TableCellResizerPlugin-Djym940U.js} +5 -5
- package/dist/{TableCellResizerPlugin-Bc5y-Qbx.js.map → TableCellResizerPlugin-Djym940U.js.map} +1 -1
- package/dist/{TextArea-CuASC9bX.js → TextArea-GR2ZWwLh.js} +2 -2
- package/dist/{TextArea-CuASC9bX.js.map → TextArea-GR2ZWwLh.js.map} +1 -1
- package/dist/{ToggleSwitch-C7z7JVtx.js → ToggleSwitch-b54K58vY.js} +2 -2
- package/dist/{ToggleSwitch-C7z7JVtx.js.map → ToggleSwitch-b54K58vY.js.map} +1 -1
- package/dist/{Tooltip-D27p9kh4.js → Tooltip-DvkGwn4j.js} +1 -1
- package/dist/{Tooltip-D27p9kh4.js.map → Tooltip-DvkGwn4j.js.map} +1 -1
- package/dist/{VarIndicator-C-GueOZD.js → VarIndicator-DoMWwSUm.js} +2 -2
- package/dist/{VarIndicator-C-GueOZD.js.map → VarIndicator-DoMWwSUm.js.map} +1 -1
- package/dist/{WeekSelector.module-BLPrVYgn.js → WeekSelector.module-DuEbNvok.js} +1 -1
- package/dist/{WeekSelector.module-BLPrVYgn.js.map → WeekSelector.module-DuEbNvok.js.map} +1 -1
- package/dist/__mocks__/svgrMock.js.map +1 -1
- package/dist/{chunk-SZQXB3JV-D6GR5B4F.js → chunk-SZQXB3JV-xjYHmnzP.js} +891 -949
- package/dist/{chunk-SZQXB3JV-D6GR5B4F.js.map → chunk-SZQXB3JV-xjYHmnzP.js.map} +1 -1
- package/dist/{client-b7M3CmlC.js → client-DJaPTT6C.js} +10 -10
- package/dist/{client-b7M3CmlC.js.map → client-DJaPTT6C.js.map} +1 -1
- package/dist/{clsx-BD2qMUU1.js → clsx-BWCAbrjV.js} +1 -1
- package/dist/{clsx-BD2qMUU1.js.map → clsx-BWCAbrjV.js.map} +1 -1
- package/dist/components/Accordion/Accordion.js +1 -1
- package/dist/components/Accordion/Accordion.stories.js +2 -2
- package/dist/components/Accordion/Accordion.stories.js.map +1 -1
- package/dist/components/Accordion/Accordion.test.js +4 -4
- package/dist/components/Accordion/Accordion.test.js.map +1 -1
- package/dist/components/Accordion/index.js +1 -1
- package/dist/components/AccordionCard/AccordionCard.d.ts +1 -1
- package/dist/components/AccordionCard/AccordionCard.js +1 -1
- package/dist/components/AccordionCard/AccordionCard.stories.js +2 -2
- package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
- package/dist/components/AccordionCard/AccordionCard.test.js +4 -4
- package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
- package/dist/components/AccordionCard/index.js +1 -1
- package/dist/components/ActionList/ActionList.d.ts +1 -1
- package/dist/components/ActionList/ActionList.js +1 -1
- package/dist/components/ActionList/ActionList.stories.js +1 -1
- package/dist/components/ActionList/ActionList.stories.js.map +1 -1
- package/dist/components/ActionList/ActionList.test.js +4 -4
- package/dist/components/ActionList/ActionList.test.js.map +1 -1
- package/dist/components/ActionList/index.js +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.d.ts +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.js +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.stories.js +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.stories.js.map +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.test.js +3 -3
- package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
- package/dist/components/AppStatusBar/index.js +1 -1
- package/dist/components/Attention/Attention.d.ts +1 -1
- package/dist/components/Attention/Attention.js +1 -1
- package/dist/components/Attention/Attention.stories.js +1 -1
- package/dist/components/Attention/Attention.stories.js.map +1 -1
- package/dist/components/Attention/Attention.test.js +3 -3
- package/dist/components/Attention/Attention.test.js.map +1 -1
- package/dist/components/Attention/index.js +1 -1
- package/dist/components/Backdrop/Backdrop.d.ts +1 -1
- package/dist/components/Backdrop/Backdrop.js +1 -1
- package/dist/components/Backdrop/Backdrop.stories.js +2 -2
- package/dist/components/Backdrop/Backdrop.stories.js.map +1 -1
- package/dist/components/Backdrop/Backdrop.test.js +3 -3
- package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
- package/dist/components/Backdrop/index.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.stories.js +2 -2
- package/dist/components/ButtonGroup/ButtonGroup.stories.js.map +1 -1
- package/dist/components/ButtonGroup/index.js +1 -1
- package/dist/components/Buttons/Button.js +2 -2
- package/dist/components/Buttons/Button.js.map +1 -1
- package/dist/components/Buttons/Button.stories.js +1 -1
- package/dist/components/Buttons/Button.stories.js.map +1 -1
- package/dist/components/Buttons/Button.test.js +2 -2
- package/dist/components/Buttons/Button.test.js.map +1 -1
- package/dist/components/Buttons/LinkButton.js +2 -2
- package/dist/components/Buttons/LinkButton.js.map +1 -1
- package/dist/components/Buttons/LinkButton.stories.js +1 -1
- package/dist/components/Buttons/LinkButton.stories.js.map +1 -1
- package/dist/components/Buttons/LinkButton.test.js +2 -2
- package/dist/components/Buttons/LinkButton.test.js.map +1 -1
- package/dist/components/Buttons/MenuButton.d.ts +1 -1
- package/dist/components/Buttons/MenuButton.js +2 -2
- package/dist/components/Buttons/MenuButton.js.map +1 -1
- package/dist/components/Buttons/MenuButton.stories.js +1 -1
- package/dist/components/Buttons/MenuButton.stories.js.map +1 -1
- package/dist/components/Buttons/MenuButton.test.js +2 -2
- package/dist/components/Buttons/MenuButton.test.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Card/Card.stories.js +1 -1
- package/dist/components/Card/Card.stories.js.map +1 -1
- package/dist/components/Card/Card.test.js +3 -3
- package/dist/components/Card/Card.test.js.map +1 -1
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Checkbox/Checkbox.js +1 -1
- package/dist/components/Checkbox/Checkbox.stories.js +4 -4
- package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +4 -4
- package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.d.ts +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +3 -3
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +3 -3
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
- package/dist/components/CheckboxButtonBar/index.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.d.ts +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +4 -4
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/CheckboxTree/index.js +1 -1
- package/dist/components/Chip/Chip.d.ts +1 -1
- package/dist/components/Chip/Chip.js +1 -1
- package/dist/components/Chip/Chip.stories.js +2 -2
- package/dist/components/Chip/Chip.stories.js.map +1 -1
- package/dist/components/Chip/index.js +1 -1
- package/dist/components/ControlsButton/ControlsButton.d.ts +1 -1
- package/dist/components/ControlsButton/ControlsButton.js +1 -1
- package/dist/components/ControlsButton/ControlsButton.stories.js +4 -4
- package/dist/components/ControlsButton/ControlsButton.stories.js.map +1 -1
- package/dist/components/ControlsButton/index.js +1 -1
- package/dist/components/CopyableText/CopyableText.d.ts +1 -1
- package/dist/components/CopyableText/CopyableText.js +1 -1
- package/dist/components/CopyableText/CopyableText.stories.js +1 -1
- package/dist/components/CopyableText/CopyableText.stories.js.map +1 -1
- package/dist/components/CopyableText/index.js +1 -1
- package/dist/components/Drawer/Drawer.d.ts +1 -1
- package/dist/components/Drawer/Drawer.js +1 -1
- package/dist/components/Drawer/Drawer.stories.js +3 -3
- package/dist/components/Drawer/Drawer.stories.js.map +1 -1
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.d.ts +1 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js +1 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js +1 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
- package/dist/components/EmptyStateDataDisplay/index.js +1 -1
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.d.ts +1 -1
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +1 -1
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +2 -2
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -1
- package/dist/components/ExpandableInfoPanel/index.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.d.ts +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.stories.js +3 -3
- package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.test.js +3 -3
- package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
- package/dist/components/FeedbackBar/index.js +1 -1
- package/dist/components/FeedbackBox/FeedbackBox.d.ts +1 -1
- package/dist/components/FeedbackBox/FeedbackBox.js +1 -1
- package/dist/components/FeedbackBox/FeedbackBox.stories.js +3 -3
- package/dist/components/FeedbackBox/FeedbackBox.stories.js.map +1 -1
- package/dist/components/FeedbackBox/index.js +1 -1
- package/dist/components/FieldHint/FieldHint.d.ts +1 -1
- package/dist/components/FieldHint/FieldHint.js +1 -1
- package/dist/components/FieldHint/FieldHint.stories.js +1 -1
- package/dist/components/FieldHint/FieldHint.stories.js.map +1 -1
- package/dist/components/FieldHint/index.js +1 -1
- package/dist/components/Fieldset/Fieldset.d.ts +1 -1
- package/dist/components/Fieldset/Fieldset.js +1 -1
- package/dist/components/Fieldset/Fieldset.stories.js +5 -5
- package/dist/components/Fieldset/Fieldset.stories.js.map +1 -1
- package/dist/components/Fieldset/index.js +1 -1
- package/dist/components/FormField/FormField.d.ts +1 -1
- package/dist/components/FormField/FormField.js +1 -1
- package/dist/components/FormField/FormField.stories.js +4 -4
- package/dist/components/FormField/FormField.stories.js.map +1 -1
- package/dist/components/FormField/index.js +1 -1
- package/dist/components/FormInput/FormInput.d.ts +1 -1
- package/dist/components/FormInput/FormInput.js +1 -1
- package/dist/components/FormInput/FormInput.stories.js +2 -2
- package/dist/components/FormInput/FormInput.stories.js.map +1 -1
- package/dist/components/FormInput/index.js +1 -1
- package/dist/components/GridRow/Column/Column.d.ts +1 -1
- package/dist/components/GridRow/Column/Column.js +1 -1
- package/dist/components/GridRow/Column/index.js +1 -1
- package/dist/components/GridRow/GridRow.d.ts +2 -2
- package/dist/components/GridRow/GridRow.js +2 -2
- package/dist/components/GridRow/GridRow.js.map +1 -1
- package/dist/components/GridRow/GridRow.stories.js.map +1 -1
- package/dist/components/HorizontalList/HorizontalList.d.ts +1 -1
- package/dist/components/HorizontalList/HorizontalList.js +1 -1
- package/dist/components/HorizontalList/HorizontalList.stories.js +1 -1
- package/dist/components/HorizontalList/HorizontalList.stories.js.map +1 -1
- package/dist/components/HorizontalList/index.js +1 -1
- package/dist/components/Icon/Icon.js +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/Icon/Icon.stories.d.ts +1 -1
- package/dist/components/Icon/Icon.stories.js +2 -2
- package/dist/components/Icon/Icon.stories.js.map +1 -1
- package/dist/components/Icon/icons/index.js +1 -1
- package/dist/components/IconButton/IconButton.js +1 -1
- package/dist/components/IconButton/IconButton.stories.js +2 -2
- package/dist/components/IconButton/IconButton.stories.js.map +1 -1
- package/dist/components/IconButton/index.js +1 -1
- package/dist/components/InfoBanner/InfoBanner.d.ts +1 -1
- package/dist/components/InfoBanner/InfoBanner.js +1 -1
- package/dist/components/InfoBanner/InfoBanner.stories.js +1 -1
- package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
- package/dist/components/InfoBanner/index.js +1 -1
- package/dist/components/InfoMessage/InfoMessage.d.ts +1 -1
- package/dist/components/InfoMessage/InfoMessage.js +1 -1
- package/dist/components/InfoMessage/InfoMessage.stories.js +1 -1
- package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
- package/dist/components/InfoMessage/index.js +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.stories.js +1 -1
- package/dist/components/Input/Input.stories.js.map +1 -1
- package/dist/components/Input/index.js +1 -1
- package/dist/components/InputField/InputField.js +1 -1
- package/dist/components/InputField/InputField.stories.js +3 -3
- package/dist/components/InputField/InputField.stories.js.map +1 -1
- package/dist/components/InputField/index.js +1 -1
- package/dist/components/Label/Label.d.ts +1 -1
- package/dist/components/Label/Label.js +1 -1
- package/dist/components/Label/Label.stories.js +1 -1
- package/dist/components/Label/Label.stories.js.map +1 -1
- package/dist/components/Label/Label.test.js +3 -3
- package/dist/components/Label/Label.test.js.map +1 -1
- package/dist/components/Label/index.js +1 -1
- package/dist/components/MenuLink/MenuLink.d.ts +1 -1
- package/dist/components/MenuLink/MenuLink.js +1 -1
- package/dist/components/MenuLink/MenuLink.stories.js +1 -1
- package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
- package/dist/components/MenuLink/index.js +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.d.ts +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.js +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.stories.js +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.test.js +2 -2
- package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
- package/dist/components/MetaDataBar/index.js +1 -1
- package/dist/components/MetaDataList/MetaDataList.d.ts +1 -1
- package/dist/components/MetaDataList/MetaDataList.js +1 -1
- package/dist/components/MetaDataList/MetaDataList.stories.js +2 -2
- package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
- package/dist/components/MetaDataList/index.js +1 -1
- package/dist/components/ModalDialog/ModalDialog.d.ts +1 -1
- package/dist/components/ModalDialog/ModalDialog.js +1 -1
- package/dist/components/ModalDialog/ModalDialog.stories.js +6 -6
- package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
- package/dist/components/ModalDialog/index.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +3 -3
- package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.d.ts +1 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
- package/dist/components/MultiSelect/components/MultiSelectItem.d.ts +1 -1
- package/dist/components/MultiSelect/components/MultiSelectItem.js +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.d.ts +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +2 -2
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js +3 -3
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
- package/dist/components/MultiSelectBox/index.js +1 -1
- package/dist/components/Notification/Notification.d.ts +1 -1
- package/dist/components/Notification/Notification.js +1 -1
- package/dist/components/Notification/Notification.stories.js +2 -2
- package/dist/components/Notification/Notification.stories.js.map +1 -1
- package/dist/components/Notification/Notification.test.js +3 -3
- package/dist/components/Notification/Notification.test.js.map +1 -1
- package/dist/components/Notification/index.js +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.js +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +3 -3
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
- package/dist/components/OverlayCloseButton/index.js +1 -1
- package/dist/components/OverlayStepBar/OverlayStepBar.d.ts +1 -1
- package/dist/components/OverlayStepBar/OverlayStepBar.js +1 -1
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +1 -1
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
- package/dist/components/OverlayStepBar/index.js +1 -1
- package/dist/components/PageOverlay/PageOverlay.d.ts +1 -1
- package/dist/components/PageOverlay/PageOverlay.js +1 -1
- package/dist/components/PageOverlay/PageOverlay.stories.js +4 -4
- package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
- package/dist/components/PageOverlay/index.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.d.ts +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
- package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
- package/dist/components/PeriodSelector/index.js +1 -1
- package/dist/components/Periods/Periods.d.ts +1 -1
- package/dist/components/Periods/Periods.js +1 -1
- package/dist/components/Periods/Periods.stories.js +1 -1
- package/dist/components/Periods/Periods.stories.js.map +1 -1
- package/dist/components/Periods/index.js +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.d.ts +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.js +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
- package/dist/components/ProgrammeCard/index.js +1 -1
- package/dist/components/RadioButton/RadioButton.d.ts +1 -1
- package/dist/components/RadioButton/RadioButton.js +1 -1
- package/dist/components/RadioButton/RadioButton.stories.js +1 -1
- package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
- package/dist/components/RadioButton/index.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.stories.js +2 -2
- package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
- package/dist/components/RadioGroup/Radiogroup.test.js +3 -3
- package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
- package/dist/components/RadioGroup/index.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.d.ts +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js.map +1 -1
- package/dist/components/RadioTabSelector/index.js +1 -1
- package/dist/components/Repeater/Repeater.d.ts +1 -1
- package/dist/components/Repeater/Repeater.js +1 -1
- package/dist/components/Repeater/Repeater.stories.js +2 -2
- package/dist/components/Repeater/Repeater.stories.js.map +1 -1
- package/dist/components/Repeater/index.js +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.d.ts +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
- package/dist/components/RteEditor/EditorHeader/index.js +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +6 -6
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +6 -6
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.d.ts +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +2 -2
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +2 -2
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/index.js +4 -4
- package/dist/components/RteEditor/Providers/LanguageProvider.d.ts +1 -1
- package/dist/components/RteEditor/Providers/LanguageProvider.js.map +1 -1
- package/dist/components/RteEditor/RteEditor.d.ts +2 -2
- package/dist/components/RteEditor/RteEditor.js +1 -1
- package/dist/components/RteEditor/RteEditor.stories.d.ts +1 -1
- package/dist/components/RteEditor/RteEditor.stories.js +2 -2
- package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js.map +1 -1
- package/dist/components/RteEditor/helpers.js +4 -4
- package/dist/components/RteEditor/helpers.js.map +1 -1
- package/dist/components/RteEditor/hooks/components/Flyout.js +1 -1
- package/dist/components/RteEditor/hooks/useFlyout.js +1 -1
- package/dist/components/RteEditor/hooks/useFlyout.js.map +1 -1
- package/dist/components/RteEditor/hooks/useTranslation.js.map +1 -1
- package/dist/components/RteEditor/index.js +1 -1
- package/dist/components/RteEditor/mockCatalogueSearchData.js.map +1 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +3 -3
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +3 -3
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
- package/dist/components/RteEditor/translations.js.map +1 -1
- package/dist/components/SearchField/SearchField.d.ts +2 -2
- package/dist/components/SearchField/SearchField.js +2 -2
- package/dist/components/SearchField/SearchField.js.map +1 -1
- package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
- package/dist/components/SearchField/components/ResultOptionBox.js +1 -1
- package/dist/components/SearchField/components/ResultOptionBox.js.map +1 -1
- package/dist/components/SearchField/components/ResultsOption.d.ts +1 -1
- package/dist/components/SearchField/components/ResultsOption.js +1 -1
- package/dist/components/SearchField/components/ResultsOption.js.map +1 -1
- package/dist/components/SearchField/mockData.js.map +1 -1
- package/dist/components/SectionNotification/SectionNotification.d.ts +1 -1
- package/dist/components/SectionNotification/SectionNotification.js +1 -1
- package/dist/components/SectionNotification/SectionNotification.stories.js +1 -1
- package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
- package/dist/components/SectionNotification/index.js +1 -1
- package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
- package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
- package/dist/components/SelectListbox/SelectListbox.d.ts +2 -2
- package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
- package/dist/components/SelectListbox/SelectProvider.d.ts +1 -1
- package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectButton.js +2 -2
- package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectContainer.d.ts +1 -1
- package/dist/components/SelectListbox/components/SelectContainer.js +1 -1
- package/dist/components/SelectListbox/components/SelectContainer.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOption.d.ts +1 -1
- package/dist/components/SelectListbox/components/SelectOption.js +2 -2
- package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOptionBox.js +1 -1
- package/dist/components/SelectListbox/components/SelectOptionBox.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/Slider/Slider.stories.js +1 -1
- package/dist/components/Slider/Slider.stories.js.map +1 -1
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/Sortable/Sortable.d.ts +1 -1
- package/dist/components/Sortable/Sortable.js +1 -1
- package/dist/components/Sortable/Sortable.js.map +1 -1
- package/dist/components/Sortable/Sortable.stories.js +2 -2
- package/dist/components/Sortable/Sortable.stories.js.map +1 -1
- package/dist/components/Sortable/SortableProvider.d.ts +1 -1
- package/dist/components/Sortable/SortableProvider.js +1 -1
- package/dist/components/Sortable/actions.js.map +1 -1
- package/dist/components/Sortable/components/SortableContainer.d.ts +1 -1
- package/dist/components/Sortable/components/SortableContainer.js +1 -1
- package/dist/components/Sortable/components/SortableHandle.d.ts +1 -1
- package/dist/components/Sortable/components/SortableHandle.js +1 -1
- package/dist/components/Sortable/components/SortableHandle.js.map +1 -1
- package/dist/components/Sortable/components/SortableItem.d.ts +1 -1
- package/dist/components/Sortable/components/SortableItem.js +3 -3
- package/dist/components/Sortable/components/SortableItem.js.map +1 -1
- package/dist/components/Sortable/sortableReducer.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +1 -1
- package/dist/components/Spinner/Spinner.js +1 -1
- package/dist/components/Spinner/Spinner.stories.js +1 -1
- package/dist/components/Spinner/Spinner.stories.js.map +1 -1
- package/dist/components/Spinner/index.js +1 -1
- package/dist/components/StatusBadge/StatusBadge.stories.js +1 -1
- package/dist/components/StatusBadge/StatusBadge.stories.js.map +1 -1
- package/dist/components/StatusBadge/StatusBadge.test.js +3 -3
- package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
- package/dist/components/StatusBadge/StatusBage.d.ts +1 -1
- package/dist/components/StatusBadge/StatusBage.js +1 -1
- package/dist/components/StatusBadge/index.js +1 -1
- package/dist/components/StatusPill/StatusPill.d.ts +1 -1
- package/dist/components/StatusPill/StatusPill.js +1 -1
- package/dist/components/StatusPill/StatusPill.stories.js +2 -2
- package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
- package/dist/components/StatusPill/index.js +1 -1
- package/dist/components/TextArea/TextArea.d.ts +1 -1
- package/dist/components/TextArea/TextArea.js +1 -1
- package/dist/components/TextArea/TextArea.stories.js +2 -2
- package/dist/components/TextArea/TextArea.stories.js.map +1 -1
- package/dist/components/TextArea/TextArea.test.js +4 -4
- package/dist/components/TextArea/TextArea.test.js.map +1 -1
- package/dist/components/TextArea/index.js +1 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.d.ts +1 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.js +1 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +2 -2
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js.map +1 -1
- package/dist/components/ToggleSwitch/index.js +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.stories.js +2 -2
- package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
- package/dist/components/Tooltip/index.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.d.ts +1 -1
- package/dist/components/VarIndicator/VarIndicator.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.stories.js +2 -2
- package/dist/components/VarIndicator/VarIndicator.stories.js.map +1 -1
- package/dist/components/VarIndicator/VarIndicator.test.js +4 -4
- package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
- package/dist/components/VarIndicator/index.js +1 -1
- package/dist/components/WeekSelector/WeekSelector.d.ts +1 -1
- package/dist/components/WeekSelector/WeekSelector.js +2 -2
- package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
- package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorButton.d.ts +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorButton.js +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorButton.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.d.ts +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.js +2 -2
- package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js.map +1 -1
- package/dist/components/WeekSelector/mockdata.js.map +1 -1
- package/dist/components/hooks/useDebounce.js.map +1 -1
- package/dist/components/hooks/useOnClickOutside.js.map +1 -1
- package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
- package/dist/components/hooks/useResponsive.js.map +1 -1
- package/dist/components/index.js +52 -52
- package/dist/{components-BzxAULjf.js → components-D6_Sx8Hs.js} +24 -24
- package/dist/{components-BzxAULjf.js.map → components-D6_Sx8Hs.js.map} +1 -1
- package/dist/{dist-V_v3kC0L.js → dist-Cxk2-lJw.js} +4 -4
- package/dist/{dist-V_v3kC0L.js.map → dist-Cxk2-lJw.js.map} +1 -1
- package/dist/{esm-BoujHjK5.js → esm-BJhEQquH.js} +10 -10
- package/dist/{esm-BoujHjK5.js.map → esm-BJhEQquH.js.map} +1 -1
- package/dist/{helpers-B1VK8xTF.js → helpers-z8cqBNoz.js} +3 -3
- package/dist/{helpers-B1VK8xTF.js.map → helpers-z8cqBNoz.js.map} +1 -1
- package/dist/{icons-TRhI-4V6.js → icons-ClUPu6KU.js} +1 -1
- package/dist/{icons-TRhI-4V6.js.map → icons-ClUPu6KU.js.map} +1 -1
- package/dist/index.js +52 -52
- package/dist/{lib-BvOQt8El.js → lib-Do6N-CJR.js} +2 -2
- package/dist/{lib-BvOQt8El.js.map → lib-Do6N-CJR.js.map} +1 -1
- package/dist/{react-18-DxAWL8_m.js → react-18-BAudFSEM.js} +3 -3
- package/dist/{react-18-DxAWL8_m.js.map → react-18-BAudFSEM.js.map} +1 -1
- package/dist/{react.esm-CweFe1CK.js → react.esm-GvSawg5E.js} +79 -79
- package/dist/{react.esm-CweFe1CK.js.map → react.esm-GvSawg5E.js.map} +1 -1
- package/dist/setupTests.js +2 -2
- package/dist/setupTests.js.map +1 -1
- package/dist/storyComponents/ClipboardButton/ClipboardButton.d.ts +1 -1
- package/dist/storyComponents/ClipboardButton/ClipboardButton.js +1 -1
- package/dist/storyComponents/ClipboardButton/index.js +1 -1
- package/dist/storyComponents/Container/Container.d.ts +1 -1
- package/dist/storyComponents/Container/Container.js +1 -1
- package/dist/storyComponents/Container/index.js +1 -1
- package/dist/storybook__react.d.js +5 -5
- package/dist/storybook__react.d.js.map +1 -1
- package/dist/{test-Pa9Lwbsq.js → test-CpW02epT.js} +2 -2
- package/dist/{test-Pa9Lwbsq.js.map → test-CpW02epT.js.map} +1 -1
- package/dist/{test-utils-Cmn06m_x.js → test-utils-DcI4ZXle.js} +2 -2
- package/dist/{test-utils-Cmn06m_x.js.map → test-utils-DcI4ZXle.js.map} +1 -1
- package/package.json +28 -27
- package/dist/Lexical.prod-CqPLSi0R.js.map +0 -1
- package/dist/LexicalClipboard.prod-BVw_sFpo.js.map +0 -1
- package/dist/LexicalExtension.prod-CUQTgbur.js.map +0 -1
- package/dist/LexicalLink.prod-DMhcqD9x.js.map +0 -1
- package/dist/LexicalList.prod-eYlcb5Ao.js.map +0 -1
- package/dist/LexicalTable.prod-DlOxUQou.js.map +0 -1
- /package/dist/{chunk-3e0lkp8x.js → chunk-CWhphoD1.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaDataBar-
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaDataList-
|
|
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-
|
|
2
|
-
import { t } from "./Backdrop-
|
|
3
|
-
import { t as n } from "./OverlayCloseButton-
|
|
4
|
-
import { t as r } from "./Spinner-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
import { t } from "./Label-
|
|
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-
|
|
36
|
+
//# sourceMappingURL=MultiSelectItem-6d8kQgFs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectItem-
|
|
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-
|
|
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-
|
|
68
|
+
//# sourceMappingURL=Notification-BAqCenxt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notification-
|
|
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-
|
|
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-
|
|
22
|
+
//# sourceMappingURL=OverlayCloseButton-j-7mC4Zz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayCloseButton-
|
|
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-
|
|
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-
|
|
45
|
+
//# sourceMappingURL=OverlayStepBar-Cj_-0waE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayStepBar-
|
|
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-
|
|
2
|
-
import { t } from "./Backdrop-
|
|
3
|
-
import { t as n } from "./OverlayCloseButton-
|
|
4
|
-
import { t as r } from "./Spinner-
|
|
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-
|
|
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-
|
|
2
|
-
import { t } from "./LexicalComposerContext.prod-
|
|
3
|
-
import { Rt as n, ot as r } from "./Lexical.prod-
|
|
4
|
-
import { r as i } from "./LexicalUtils.prod-
|
|
5
|
-
import { n as a } from "./LexicalClipboard.prod-
|
|
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-
|
|
235
|
+
//# sourceMappingURL=PasteHandlerPlugin-Bc6n-G35.js.map
|