@openedx/paragon 23.14.1 → 23.14.3
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/README.md +80 -14
- package/dist/ActionRow/index.d.ts +18 -0
- package/dist/ActionRow/index.js +6 -24
- package/dist/ActionRow/index.js.map +1 -1
- package/dist/Alert/index.js +21 -24
- package/dist/Alert/index.js.map +1 -1
- package/dist/Annotation/index.d.ts +13 -0
- package/dist/Annotation/index.js +11 -30
- package/dist/Annotation/index.js.map +1 -1
- package/dist/Avatar/index.d.ts +11 -0
- package/dist/Avatar/index.js +7 -21
- package/dist/Avatar/index.js.map +1 -1
- package/dist/AvatarButton/index.d.ts +17 -0
- package/dist/AvatarButton/index.js +11 -33
- package/dist/AvatarButton/index.js.map +1 -1
- package/dist/Breadcrumb/BreadcrumbLink.js +5 -6
- package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
- package/dist/Breadcrumb/index.js +11 -12
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Bubble/index.d.ts +6 -2
- package/dist/Bubble/index.js +14 -39
- package/dist/Bubble/index.js.map +1 -1
- package/dist/Button/index.d.ts +42 -7
- package/dist/Button/index.js +43 -115
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/BaseCard.js +11 -12
- package/dist/Card/BaseCard.js.map +1 -1
- package/dist/Card/CardBody.js +9 -12
- package/dist/Card/CardBody.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarousel.js +13 -14
- package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselHeader.js +4 -5
- package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselItems.js +3 -4
- package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselProvider.js +7 -8
- package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselSubtitle.js +5 -6
- package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselTitle.js +5 -6
- package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
- package/dist/Card/CardCarousel/messages.d.ts +13 -0
- package/dist/Card/CardCarousel/messages.js +4 -5
- package/dist/Card/CardCarousel/messages.js.map +1 -0
- package/dist/Card/CardContext.js +6 -7
- package/dist/Card/CardContext.js.map +1 -1
- package/dist/Card/CardDeck.js +9 -10
- package/dist/Card/CardDeck.js.map +1 -1
- package/dist/Card/CardDivider.js +8 -11
- package/dist/Card/CardDivider.js.map +1 -1
- package/dist/Card/CardFooter.js +9 -10
- package/dist/Card/CardFooter.js.map +1 -1
- package/dist/Card/CardGrid.js +6 -7
- package/dist/Card/CardGrid.js.map +1 -1
- package/dist/Card/CardHeader.js +9 -10
- package/dist/Card/CardHeader.js.map +1 -1
- package/dist/Card/CardImageCap.js +15 -16
- package/dist/Card/CardImageCap.js.map +1 -1
- package/dist/Card/CardSection.js +9 -10
- package/dist/Card/CardSection.js.map +1 -1
- package/dist/Card/CardStatus.js +9 -10
- package/dist/Card/CardStatus.js.map +1 -1
- package/dist/Card/index.js +9 -10
- package/dist/Card/index.js.map +1 -1
- package/dist/Chip/ChipIcon.js +8 -9
- package/dist/Chip/ChipIcon.js.map +1 -1
- package/dist/Chip/index.d.ts +22 -0
- package/dist/Chip/index.js +15 -70
- package/dist/Chip/index.js.map +1 -1
- package/dist/ChipCarousel/index.js +49 -53
- package/dist/ChipCarousel/index.js.map +1 -1
- package/dist/ChipCarousel/messages.d.ts +13 -0
- package/dist/ChipCarousel/messages.js +4 -5
- package/dist/ChipCarousel/messages.js.map +1 -0
- package/dist/CloseButton/index.js.map +1 -1
- package/dist/Collapse/index.js.map +1 -1
- package/dist/Collapsible/CollapsibleBody.js +6 -7
- package/dist/Collapsible/CollapsibleBody.js.map +1 -1
- package/dist/Collapsible/CollapsibleTrigger.js +9 -10
- package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
- package/dist/Collapsible/CollapsibleVisible.js +5 -6
- package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
- package/dist/ColorPicker/index.js +6 -7
- package/dist/ColorPicker/index.js.map +1 -1
- package/dist/Container/index.js +9 -12
- package/dist/Container/index.js.map +1 -1
- package/dist/DataTable/BulkActions.js +4 -5
- package/dist/DataTable/BulkActions.js.map +1 -1
- package/dist/DataTable/CardView.js +16 -18
- package/dist/DataTable/CardView.js.map +1 -1
- package/dist/DataTable/CollapsibleButtonGroup.js +5 -6
- package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
- package/dist/DataTable/DataTableLayout.js +5 -6
- package/dist/DataTable/DataTableLayout.js.map +1 -1
- package/dist/DataTable/DropdownFilters.js +7 -2
- package/dist/DataTable/DropdownFilters.js.map +1 -1
- package/dist/DataTable/EmptyTable.js +5 -6
- package/dist/DataTable/EmptyTable.js.map +1 -1
- package/dist/DataTable/ExpandAll.js +4 -5
- package/dist/DataTable/ExpandAll.js.map +1 -1
- package/dist/DataTable/ExpandRow.js +3 -4
- package/dist/DataTable/ExpandRow.js.map +1 -1
- package/dist/DataTable/FilterStatus.js +8 -9
- package/dist/DataTable/FilterStatus.js.map +1 -1
- package/dist/DataTable/RowStatus.js +4 -5
- package/dist/DataTable/RowStatus.js.map +1 -1
- package/dist/DataTable/SidebarFilters.js +3 -4
- package/dist/DataTable/SidebarFilters.js.map +1 -1
- package/dist/DataTable/Table.js +3 -4
- package/dist/DataTable/Table.js.map +1 -1
- package/dist/DataTable/TableActions.js +3 -4
- package/dist/DataTable/TableActions.js.map +1 -1
- package/dist/DataTable/TableCell.js +5 -6
- package/dist/DataTable/TableCell.js.map +1 -1
- package/dist/DataTable/TableControlBar.js +3 -4
- package/dist/DataTable/TableControlBar.js.map +1 -1
- package/dist/DataTable/TableFilters.js +6 -7
- package/dist/DataTable/TableFilters.js.map +1 -1
- package/dist/DataTable/TableFooter.js +4 -5
- package/dist/DataTable/TableFooter.js.map +1 -1
- package/dist/DataTable/TableHeaderCell.js +13 -15
- package/dist/DataTable/TableHeaderCell.js.map +1 -1
- package/dist/DataTable/TableHeaderRow.js +3 -4
- package/dist/DataTable/TableHeaderRow.js.map +1 -1
- package/dist/DataTable/TableRow.js +3 -4
- package/dist/DataTable/TableRow.js.map +1 -1
- package/dist/DataTable/filters/CheckboxFilter.js +25 -29
- package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
- package/dist/DataTable/filters/DropdownFilter.js +16 -20
- package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/MultiSelectDropdownFilter.js +25 -29
- package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/TextFilter.js +8 -9
- package/dist/DataTable/filters/TextFilter.js.map +1 -1
- package/dist/DataTable/hooks.js +11 -13
- package/dist/DataTable/hooks.js.map +1 -1
- package/dist/DataTable/index.js +42 -36
- package/dist/DataTable/index.js.map +1 -1
- package/dist/DataTable/messages.d.ts +13 -0
- package/dist/DataTable/messages.js +7 -3
- package/dist/DataTable/messages.js.map +1 -0
- package/dist/DataTable/selection/BaseSelectionStatus.js +11 -12
- package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelect.js +3 -4
- package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelectHeader.js +3 -4
- package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelectionStatus.js +4 -5
- package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
- package/dist/DataTable/selection/SelectionStatus.js +4 -5
- package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
- package/dist/DataTable/utils/getVisibleColumns.js +9 -13
- package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
- package/dist/Dropdown/index.js +17 -20
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Dropzone/DefaultContent.js +5 -6
- package/dist/Dropzone/DefaultContent.js.map +1 -1
- package/dist/Dropzone/DragError.js +3 -4
- package/dist/Dropzone/DragError.js.map +1 -1
- package/dist/Dropzone/GenericError.js +4 -5
- package/dist/Dropzone/GenericError.js.map +1 -1
- package/dist/Dropzone/UploadProgress.js +6 -7
- package/dist/Dropzone/UploadProgress.js.map +1 -1
- package/dist/Dropzone/index.js +14 -15
- package/dist/Dropzone/index.js.map +1 -1
- package/dist/Dropzone/messages.d.ts +53 -0
- package/dist/Dropzone/messages.js +12 -13
- package/dist/Dropzone/messages.js.map +1 -0
- package/dist/Fade/index.js.map +1 -1
- package/dist/Form/FormAutosuggest.js +18 -20
- package/dist/Form/FormAutosuggest.js.map +1 -1
- package/dist/Form/FormAutosuggestOption.js +6 -7
- package/dist/Form/FormAutosuggestOption.js.map +1 -1
- package/dist/Form/FormCheckbox.js +16 -18
- package/dist/Form/FormCheckbox.js.map +1 -1
- package/dist/Form/FormCheckboxSet.js +11 -12
- package/dist/Form/FormCheckboxSet.js.map +1 -1
- package/dist/Form/FormCheckboxSetContext.js +9 -10
- package/dist/Form/FormCheckboxSetContext.js.map +1 -1
- package/dist/Form/FormControl.js +12 -13
- package/dist/Form/FormControl.js.map +1 -1
- package/dist/Form/FormControlDecorator.js +4 -5
- package/dist/Form/FormControlDecorator.js.map +1 -1
- package/dist/Form/FormControlDecoratorGroup.js +8 -9
- package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
- package/dist/Form/FormControlFeedback.js +4 -5
- package/dist/Form/FormControlFeedback.js.map +1 -1
- package/dist/Form/FormControlFloatingLabel.js +3 -4
- package/dist/Form/FormControlFloatingLabel.js.map +1 -1
- package/dist/Form/FormControlSet.js +7 -8
- package/dist/Form/FormControlSet.js.map +1 -1
- package/dist/Form/FormGroup.js +9 -10
- package/dist/Form/FormGroup.js.map +1 -1
- package/dist/Form/FormGroupContext.js +7 -8
- package/dist/Form/FormGroupContext.js.map +1 -1
- package/dist/Form/FormLabel.d.ts +2 -11
- package/dist/Form/FormLabel.js +5 -15
- package/dist/Form/FormLabel.js.map +1 -1
- package/dist/Form/FormRadio.js +28 -31
- package/dist/Form/FormRadio.js.map +1 -1
- package/dist/Form/FormRadioSet.js +11 -12
- package/dist/Form/FormRadioSet.js.map +1 -1
- package/dist/Form/FormRadioSetContext.js +9 -10
- package/dist/Form/FormRadioSetContext.js.map +1 -1
- package/dist/Form/FormSwitch.js +25 -29
- package/dist/Form/FormSwitch.js.map +1 -1
- package/dist/Form/FormText.js +16 -19
- package/dist/Form/FormText.js.map +1 -1
- package/dist/Form/fieldUtils.js +11 -22
- package/dist/Form/fieldUtils.js.map +1 -1
- package/dist/Form/useCheckboxSetValues.js +1 -2
- package/dist/Form/useCheckboxSetValues.js.map +1 -1
- package/dist/Hyperlink/index.js +17 -21
- package/dist/Hyperlink/index.js.map +1 -1
- package/dist/Icon/index.js +10 -11
- package/dist/Icon/index.js.map +1 -1
- package/dist/IconButton/index.d.ts +8 -304
- package/dist/IconButton/index.js +21 -84
- package/dist/IconButton/index.js.map +1 -1
- package/dist/IconButtonToggle/index.js +5 -6
- package/dist/IconButtonToggle/index.js.map +1 -1
- package/dist/Image/index.js.map +1 -1
- package/dist/Layout/index.js +4 -5
- package/dist/Layout/index.js.map +1 -1
- package/dist/Media/index.js.map +1 -1
- package/dist/Menu/MenuItem.js +8 -9
- package/dist/Menu/MenuItem.js.map +1 -1
- package/dist/Menu/SelectMenu.js +8 -9
- package/dist/Menu/SelectMenu.js.map +1 -1
- package/dist/Menu/index.js +6 -7
- package/dist/Menu/index.js.map +1 -1
- package/dist/Modal/AlertModal.js +6 -7
- package/dist/Modal/AlertModal.js.map +1 -1
- package/dist/Modal/FullscreenModal.js +7 -8
- package/dist/Modal/FullscreenModal.js.map +1 -1
- package/dist/Modal/MarketingModal.js +9 -10
- package/dist/Modal/MarketingModal.js.map +1 -1
- package/dist/Modal/ModalCloseButton.js +5 -6
- package/dist/Modal/ModalCloseButton.js.map +1 -1
- package/dist/Modal/ModalContext.js +6 -7
- package/dist/Modal/ModalContext.js.map +1 -1
- package/dist/Modal/ModalDialog.d.ts +6 -65
- package/dist/Modal/ModalDialog.js +16 -81
- package/dist/Modal/ModalDialog.js.map +1 -1
- package/dist/Modal/ModalDialogBody.js +5 -6
- package/dist/Modal/ModalDialogBody.js.map +1 -1
- package/dist/Modal/ModalDialogFooter.js +5 -6
- package/dist/Modal/ModalDialogFooter.js.map +1 -1
- package/dist/Modal/ModalDialogHeader.js +9 -12
- package/dist/Modal/ModalDialogHeader.js.map +1 -1
- package/dist/Modal/ModalDialogHero.js +5 -6
- package/dist/Modal/ModalDialogHero.js.map +1 -1
- package/dist/Modal/ModalDialogHeroBackground.js +6 -7
- package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
- package/dist/Modal/ModalDialogHeroContent.js +5 -6
- package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
- package/dist/Modal/ModalDialogTitle.js +5 -6
- package/dist/Modal/ModalDialogTitle.js.map +1 -1
- package/dist/Modal/ModalLayer.d.ts +0 -25
- package/dist/Modal/ModalLayer.js +13 -35
- package/dist/Modal/ModalLayer.js.map +1 -1
- package/dist/Modal/ModalPopup.js +11 -12
- package/dist/Modal/ModalPopup.js.map +1 -1
- package/dist/Modal/PopperElement.js +7 -8
- package/dist/Modal/PopperElement.js.map +1 -1
- package/dist/Modal/StandardModal.js +7 -8
- package/dist/Modal/StandardModal.js.map +1 -1
- package/dist/OverflowScroll/OverflowScroll.js +12 -13
- package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
- package/dist/OverflowScroll/OverflowScrollItems.js +3 -4
- package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
- package/dist/Overlay/index.d.ts +2 -2
- package/dist/PageBanner/index.js +9 -10
- package/dist/PageBanner/index.js.map +1 -1
- package/dist/Pagination/PaginationContext.js +12 -13
- package/dist/Pagination/PaginationContext.js.map +1 -1
- package/dist/Pagination/subcomponents/PageButton.js +3 -4
- package/dist/Pagination/subcomponents/PageButton.js.map +1 -1
- package/dist/Popover/index.js +11 -14
- package/dist/Popover/index.js.map +1 -1
- package/dist/ProductTour/Checkpoint.js +12 -13
- package/dist/ProductTour/Checkpoint.js.map +1 -1
- package/dist/ProductTour/CheckpointActionRow.js +10 -11
- package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
- package/dist/ProductTour/CheckpointBody.js +3 -4
- package/dist/ProductTour/CheckpointBody.js.map +1 -1
- package/dist/ProductTour/CheckpointHeader.js +7 -8
- package/dist/ProductTour/CheckpointHeader.js.map +1 -1
- package/dist/ProductTour/CheckpointTitle.js +6 -9
- package/dist/ProductTour/CheckpointTitle.js.map +1 -1
- package/dist/ProductTour/index.js +3 -4
- package/dist/ProductTour/index.js.map +1 -1
- package/dist/ProductTour/messages.d.ts +23 -0
- package/dist/ProductTour/messages.js +6 -7
- package/dist/ProductTour/messages.js.map +1 -0
- package/dist/ProgressBar/index.js +11 -12
- package/dist/ProgressBar/index.js.map +1 -1
- package/dist/ResponsiveEmbed/index.js.map +1 -1
- package/dist/Scrollable/index.js +4 -5
- package/dist/Scrollable/index.js.map +1 -1
- package/dist/SearchField/SearchFieldLabel.js +4 -5
- package/dist/SearchField/SearchFieldLabel.js.map +1 -1
- package/dist/SelectableBox/SelectableBoxSet.js +13 -14
- package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
- package/dist/SelectableBox/index.js +14 -15
- package/dist/SelectableBox/index.js.map +1 -1
- package/dist/Skeleton/index.js.map +1 -1
- package/dist/Spinner/index.d.ts +11 -0
- package/dist/Spinner/index.js +6 -17
- package/dist/Spinner/index.js.map +1 -1
- package/dist/Stack/index.js +12 -15
- package/dist/Stack/index.js.map +1 -1
- package/dist/StatefulButton/index.js +9 -10
- package/dist/StatefulButton/index.js.map +1 -1
- package/dist/Stepper/Stepper.js +4 -5
- package/dist/Stepper/Stepper.js.map +1 -1
- package/dist/Stepper/StepperActionRow.js +6 -7
- package/dist/Stepper/StepperActionRow.js.map +1 -1
- package/dist/Stepper/StepperContext.js +4 -5
- package/dist/Stepper/StepperContext.js.map +1 -1
- package/dist/Stepper/StepperHeader.js +23 -31
- package/dist/Stepper/StepperHeader.js.map +1 -1
- package/dist/Stepper/StepperHeaderStep.js +8 -9
- package/dist/Stepper/StepperHeaderStep.js.map +1 -1
- package/dist/Stepper/StepperStep.js +10 -11
- package/dist/Stepper/StepperStep.js.map +1 -1
- package/dist/Sticky/index.js +8 -12
- package/dist/Sticky/index.js.map +1 -1
- package/dist/Tabs/index.js +8 -9
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Toast/ToastContainer.js +3 -4
- package/dist/Toast/ToastContainer.js.map +1 -1
- package/dist/Toast/index.d.ts +20 -41
- package/dist/Toast/index.js +11 -48
- package/dist/Toast/index.js.map +1 -1
- package/dist/ToggleButton/index.js.map +1 -1
- package/dist/Tooltip/index.js +11 -14
- package/dist/Tooltip/index.js.map +1 -1
- package/dist/Truncate/index.js +9 -10
- package/dist/Truncate/index.js.map +1 -1
- package/dist/asInput/index.js +9 -13
- package/dist/asInput/index.js.map +1 -1
- package/dist/hooks/useArrowKeyNavigationHook.js +17 -21
- package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -1
- package/dist/hooks/useIsVisibleHook.js +4 -6
- package/dist/hooks/useIsVisibleHook.js.map +1 -1
- package/dist/hooks/useToggleHook.js +1 -3
- package/dist/hooks/useToggleHook.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +5 -10
- package/dist/index.js.map +1 -1
- package/dist/theme-urls.json +6 -6
- package/dist/utils/newId.js +1 -2
- package/dist/utils/newId.js.map +1 -1
- package/package.json +2 -2
- package/src/ActionRow/{index.jsx → index.tsx} +14 -22
- package/src/Annotation/{index.jsx → index.tsx} +15 -22
- package/src/Avatar/{index.jsx → index.tsx} +13 -19
- package/src/AvatarButton/{index.jsx → index.tsx} +23 -31
- package/src/Bubble/index.tsx +12 -32
- package/src/Button/index.tsx +68 -93
- package/src/Chip/index.tsx +26 -59
- package/src/CloseButton/index.tsx +1 -0
- package/src/Collapse/index.tsx +1 -0
- package/src/DataTable/DropdownFilters.jsx +9 -2
- package/src/DataTable/README.md +19 -18
- package/src/DataTable/index.jsx +6 -1
- package/src/DataTable/{messages.js → messages.ts} +5 -0
- package/src/DataTable/tests/DataTable.test.jsx +51 -1
- package/src/DataTable/tests/DropdownFilters.test.jsx +11 -7
- package/src/Fade/index.tsx +1 -0
- package/src/Form/FormLabel.tsx +2 -10
- package/src/IconButton/index.tsx +17 -81
- package/src/Image/index.tsx +2 -0
- package/src/Media/index.tsx +1 -0
- package/src/Modal/ModalDialog.tsx +6 -66
- package/src/Modal/ModalLayer.tsx +0 -22
- package/src/Modal/modal-popup.mdx +1 -1
- package/src/ProductTour/ProductTour.test.jsx +0 -1
- package/src/ResponsiveEmbed/index.tsx +1 -0
- package/src/Skeleton/index.tsx +1 -0
- package/src/Spinner/{index.jsx → index.tsx} +10 -15
- package/src/Toast/index.tsx +21 -40
- package/src/ToggleButton/index.tsx +2 -0
- package/src/index.ts +5 -10
- /package/{src/CloseButton/index.jsx → dist/CloseButton/index.d.ts} +0 -0
- /package/{src/Collapse/index.jsx → dist/Collapse/index.d.ts} +0 -0
- /package/{src/Fade/index.jsx → dist/Fade/index.d.ts} +0 -0
- /package/{src/Image/index.jsx → dist/Image/index.d.ts} +0 -0
- /package/{src/Media/index.jsx → dist/Media/index.d.ts} +0 -0
- /package/{src/ResponsiveEmbed/index.jsx → dist/ResponsiveEmbed/index.d.ts} +0 -0
- /package/{src/Skeleton/index.jsx → dist/Skeleton/index.d.ts} +0 -0
- /package/{src/ToggleButton/index.jsx → dist/ToggleButton/index.d.ts} +0 -0
- /package/src/Card/CardCarousel/{messages.js → messages.ts} +0 -0
- /package/src/ChipCarousel/{messages.js → messages.ts} +0 -0
- /package/src/Dropzone/{messages.js → messages.ts} +0 -0
- /package/src/ProductTour/{messages.js → messages.ts} +0 -0
- /package/src/Spinner/{Spinner.test.jsx → Spinner.test.tsx} +0 -0
- /package/src/Spinner/__snapshots__/{Spinner.test.jsx.snap → Spinner.test.tsx.snap} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormSwitch.js","names":["React","PropTypes","classNames","FormCheckbox","useFormGroupContext","SwitchControl","forwardRef","
|
|
1
|
+
{"version":3,"file":"FormSwitch.js","names":["React","PropTypes","classNames","FormCheckbox","useFormGroupContext","SwitchControl","forwardRef","isIndeterminate","props","ref","defaultRef","useRef","resolvedRef","getControlProps","checkboxProps","className","useEffect","current","indeterminate","createElement","type","propTypes","bool","string","defaultProps","undefined","FormSwitch","children","helperText","role","controlAs","isValid","isInvalid","description","node","isRequired","labelClassName","floatLabelLeft"],"sources":["../../src/Form/FormSwitch.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport FormCheckbox from './FormCheckbox';\nimport { useFormGroupContext } from './FormGroupContext';\n\nconst SwitchControl = React.forwardRef(\n ({ isIndeterminate, ...props }, ref) => {\n const defaultRef = React.useRef();\n const resolvedRef = ref || defaultRef;\n const { getControlProps } = useFormGroupContext();\n const checkboxProps = getControlProps({\n ...props,\n className: classNames(\n 'pgn__form-switch-input',\n props.className,\n ),\n });\n\n React.useEffect(() => {\n // this if(resolvedRef.current) prevents console errors in testing\n if (resolvedRef.current) {\n resolvedRef.current.indeterminate = isIndeterminate;\n }\n }, [resolvedRef, isIndeterminate]);\n\n return (\n <input\n type=\"checkbox\"\n {...checkboxProps}\n ref={resolvedRef}\n />\n );\n },\n);\n\nSwitchControl.propTypes = {\n /** Specifies whether input should be rendered in indeterminate state. */\n isIndeterminate: PropTypes.bool,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n};\n\nSwitchControl.defaultProps = {\n isIndeterminate: false,\n className: undefined,\n};\n\nconst FormSwitch = React.forwardRef(({\n children,\n className,\n helperText,\n ...props\n}, ref) => (\n <div className=\"d-inline-flex flex-column\">\n <FormCheckbox\n className={classNames('pgn__form-switch', className)}\n {...props}\n role=\"switch\"\n ref={ref}\n controlAs={SwitchControl}\n // ignore the following props for form switch\n isValid={null}\n isInvalid={null}\n description={null}\n >\n {children}\n </FormCheckbox>\n {helperText && (\n <div className=\"pgn__form-switch-helper-text\">\n {helperText}\n </div>\n )}\n </div>\n));\n\nFormSwitch.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies class name to append to the label element. */\n labelClassName: PropTypes.string,\n /** Specifies helper text to display below the switch. */\n helperText: PropTypes.node,\n /** Determines whether the label should float to the left when the switch is active. */\n floatLabelLeft: PropTypes.bool,\n};\n\nFormSwitch.defaultProps = {\n className: undefined,\n labelClassName: undefined,\n helperText: undefined,\n floatLabelLeft: false,\n};\n\nexport { SwitchControl };\nexport default FormSwitch;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,mBAAmB,QAAQ,oBAAoB;AAExD,MAAMC,aAAa,gBAAGL,KAAK,CAACM,UAAU,CACpC,CAAC;EAAEC,eAAe;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtC,MAAMC,UAAU,GAAGV,KAAK,CAACW,MAAM,CAAC,CAAC;EACjC,MAAMC,WAAW,GAAGH,GAAG,IAAIC,UAAU;EACrC,MAAM;IAAEG;EAAgB,CAAC,GAAGT,mBAAmB,CAAC,CAAC;EACjD,MAAMU,aAAa,GAAGD,eAAe,CAAC;IACpC,GAAGL,KAAK;IACRO,SAAS,EAAEb,UAAU,CACnB,wBAAwB,EACxBM,KAAK,CAACO,SACR;EACF,CAAC,CAAC;EAEFf,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB;IACA,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACvBL,WAAW,CAACK,OAAO,CAACC,aAAa,GAAGX,eAAe;IACrD;EACF,CAAC,EAAE,CAACK,WAAW,EAAEL,eAAe,CAAC,CAAC;EAElC,oBACEP,KAAA,CAAAmB,aAAA;IACEC,IAAI,EAAC,UAAU;IAAA,GACXN,aAAa;IACjBL,GAAG,EAAEG;EAAY,CAClB,CAAC;AAEN,CACF,CAAC;AAEDP,aAAa,CAACgB,SAAS,GAAG;EACxB;EACAd,eAAe,EAAEN,SAAS,CAACqB,IAAI;EAC/B;EACAP,SAAS,EAAEd,SAAS,CAACsB;AACvB,CAAC;AAEDlB,aAAa,CAACmB,YAAY,GAAG;EAC3BjB,eAAe,EAAE,KAAK;EACtBQ,SAAS,EAAEU;AACb,CAAC;AAED,MAAMC,UAAU,gBAAG1B,KAAK,CAACM,UAAU,CAAC,CAAC;EACnCqB,QAAQ;EACRZ,SAAS;EACTa,UAAU;EACV,GAAGpB;AACL,CAAC,EAAEC,GAAG,kBACJT,KAAA,CAAAmB,aAAA;EAAKJ,SAAS,EAAC;AAA2B,gBACxCf,KAAA,CAAAmB,aAAA,CAAChB,YAAY;EACXY,SAAS,EAAEb,UAAU,CAAC,kBAAkB,EAAEa,SAAS,CAAE;EAAA,GACjDP,KAAK;EACTqB,IAAI,EAAC,QAAQ;EACbpB,GAAG,EAAEA,GAAI;EACTqB,SAAS,EAAEzB;EACX;EAAA;EACA0B,OAAO,EAAE,IAAK;EACdC,SAAS,EAAE,IAAK;EAChBC,WAAW,EAAE;AAAK,GAEjBN,QACW,CAAC,EACdC,UAAU,iBACT5B,KAAA,CAAAmB,aAAA;EAAKJ,SAAS,EAAC;AAA8B,GAC1Ca,UACE,CAEJ,CACN,CAAC;AAEFF,UAAU,CAACL,SAAS,GAAG;EACrB;EACAM,QAAQ,EAAE1B,SAAS,CAACiC,IAAI,CAACC,UAAU;EACnC;EACApB,SAAS,EAAEd,SAAS,CAACsB,MAAM;EAC3B;EACAa,cAAc,EAAEnC,SAAS,CAACsB,MAAM;EAChC;EACAK,UAAU,EAAE3B,SAAS,CAACiC,IAAI;EAC1B;EACAG,cAAc,EAAEpC,SAAS,CAACqB;AAC5B,CAAC;AAEDI,UAAU,CAACF,YAAY,GAAG;EACxBT,SAAS,EAAEU,SAAS;EACpBW,cAAc,EAAEX,SAAS;EACzBG,UAAU,EAAEH,SAAS;EACrBY,cAAc,EAAE;AAClB,CAAC;AAED,SAAShC,aAAa;AACtB,eAAeqB,UAAU","ignoreList":[]}
|
package/dist/Form/FormText.js
CHANGED
|
@@ -13,11 +13,10 @@ const FORM_TEXT_ICONS = {
|
|
|
13
13
|
[FORM_TEXT_TYPES.CRITERIA_VALID]: CheckCircle,
|
|
14
14
|
[FORM_TEXT_TYPES.CRITERIA_INVALID]: Cancel
|
|
15
15
|
};
|
|
16
|
-
const resolveTextType =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
} = _ref;
|
|
16
|
+
const resolveTextType = ({
|
|
17
|
+
isInvalid,
|
|
18
|
+
isValid
|
|
19
|
+
}) => {
|
|
21
20
|
if (isValid) {
|
|
22
21
|
return FORM_TEXT_TYPES.VALID;
|
|
23
22
|
}
|
|
@@ -26,11 +25,10 @@ const resolveTextType = _ref => {
|
|
|
26
25
|
}
|
|
27
26
|
return FORM_TEXT_TYPES.DEFAULT;
|
|
28
27
|
};
|
|
29
|
-
function FormTextIcon(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} = _ref2;
|
|
28
|
+
function FormTextIcon({
|
|
29
|
+
type,
|
|
30
|
+
customIcon
|
|
31
|
+
}) {
|
|
34
32
|
if (customIcon) {
|
|
35
33
|
return customIcon;
|
|
36
34
|
}
|
|
@@ -50,15 +48,14 @@ FormTextIcon.defaultProps = {
|
|
|
50
48
|
type: undefined,
|
|
51
49
|
customIcon: undefined
|
|
52
50
|
};
|
|
53
|
-
function FormText(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
} = _ref3;
|
|
51
|
+
function FormText({
|
|
52
|
+
children,
|
|
53
|
+
type,
|
|
54
|
+
icon,
|
|
55
|
+
muted,
|
|
56
|
+
hasIcon,
|
|
57
|
+
...props
|
|
58
|
+
}) {
|
|
62
59
|
const className = classNames(props.className, 'pgn__form-text', `pgn__form-text-${type}`, {
|
|
63
60
|
'text-muted': muted
|
|
64
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormText.js","names":["React","PropTypes","classNames","Icon","Check","Close","Cancel","CheckCircle","RadioButtonUnchecked","WarningFilled","FORM_TEXT_TYPES","FORM_TEXT_ICONS","DEFAULT","VALID","INVALID","WARNING","CRITERIA_EMPTY","CRITERIA_VALID","CRITERIA_INVALID","resolveTextType","
|
|
1
|
+
{"version":3,"file":"FormText.js","names":["React","PropTypes","classNames","Icon","Check","Close","Cancel","CheckCircle","RadioButtonUnchecked","WarningFilled","FORM_TEXT_TYPES","FORM_TEXT_ICONS","DEFAULT","VALID","INVALID","WARNING","CRITERIA_EMPTY","CRITERIA_VALID","CRITERIA_INVALID","resolveTextType","isInvalid","isValid","FormTextIcon","type","customIcon","typeIcon","createElement","src","propTypes","oneOf","Object","values","node","defaultProps","undefined","FormText","children","icon","muted","hasIcon","props","className","FORM_TEXT_TYPE_CHOICES","isRequired","string","bool"],"sources":["../../src/Form/FormText.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Icon from '../Icon';\nimport {\n Check, Close, Cancel, CheckCircle, RadioButtonUnchecked, WarningFilled,\n} from '../../icons';\n\nimport { FORM_TEXT_TYPES } from './constants';\n\nconst FORM_TEXT_ICONS = {\n [FORM_TEXT_TYPES.DEFAULT]: null,\n [FORM_TEXT_TYPES.VALID]: Check,\n [FORM_TEXT_TYPES.INVALID]: Close,\n [FORM_TEXT_TYPES.WARNING]: WarningFilled,\n [FORM_TEXT_TYPES.CRITERIA_EMPTY]: RadioButtonUnchecked,\n [FORM_TEXT_TYPES.CRITERIA_VALID]: CheckCircle,\n [FORM_TEXT_TYPES.CRITERIA_INVALID]: Cancel,\n};\n\nconst resolveTextType = ({ isInvalid, isValid }) => {\n if (isValid) {\n return FORM_TEXT_TYPES.VALID;\n }\n if (isInvalid) {\n return FORM_TEXT_TYPES.INVALID;\n }\n return FORM_TEXT_TYPES.DEFAULT;\n};\n\nfunction FormTextIcon({ type, customIcon }) {\n if (customIcon) {\n return customIcon;\n }\n\n const typeIcon = FORM_TEXT_ICONS[type];\n if (typeIcon) {\n return <Icon src={typeIcon} />;\n }\n\n return null;\n}\n\nFormTextIcon.propTypes = {\n type: PropTypes.oneOf(Object.values(FORM_TEXT_TYPES)),\n customIcon: PropTypes.node,\n};\n\nFormTextIcon.defaultProps = {\n type: undefined,\n customIcon: undefined,\n};\n\nfunction FormText({\n children, type, icon, muted, hasIcon, ...props\n}) {\n const className = classNames(\n props.className,\n 'pgn__form-text',\n `pgn__form-text-${type}`,\n {\n 'text-muted': muted,\n },\n );\n\n return (\n <div {...props} className={className}>\n {hasIcon && <FormTextIcon customIcon={icon} type={type} />}\n <div>\n {children}\n </div>\n </div>\n );\n}\n\nconst FORM_TEXT_TYPE_CHOICES = [\n 'default',\n 'valid',\n 'invalid',\n 'warning',\n 'criteria-empty',\n 'criteria-valid',\n 'criteria-invalid',\n];\n\nFormText.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies whether to show an icon next to the text. */\n hasIcon: PropTypes.bool,\n /** Specifies text type, this affects styling. */\n type: PropTypes.oneOf(FORM_TEXT_TYPE_CHOICES),\n /** Specifies icon to show, will only be shown if `hasIcon` prop is set to `true`. */\n icon: PropTypes.node,\n /** Specifies whether to show text with muted styling. */\n muted: PropTypes.bool,\n};\n\nFormText.defaultProps = {\n hasIcon: true,\n type: 'default',\n icon: undefined,\n className: undefined,\n muted: false,\n};\n\nexport default FormText;\nexport {\n FORM_TEXT_TYPES,\n FORM_TEXT_ICONS,\n FormTextIcon,\n resolveTextType,\n};\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Form/fieldUtils.js
CHANGED
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import { newId } from '../utils';
|
|
4
|
-
const omitUndefinedProperties =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
let [key, value] = _ref;
|
|
8
|
-
if (value !== undefined) {
|
|
9
|
-
acc[key] = value;
|
|
10
|
-
}
|
|
11
|
-
return acc;
|
|
12
|
-
}, {});
|
|
13
|
-
};
|
|
14
|
-
const callAllHandlers = function () {
|
|
15
|
-
for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
16
|
-
handlers[_key] = arguments[_key];
|
|
4
|
+
const omitUndefinedProperties = (obj = {}) => Object.entries(obj).reduce((acc, [key, value]) => {
|
|
5
|
+
if (value !== undefined) {
|
|
6
|
+
acc[key] = value;
|
|
17
7
|
}
|
|
8
|
+
return acc;
|
|
9
|
+
}, {});
|
|
10
|
+
const callAllHandlers = (...handlers) => {
|
|
18
11
|
const unifiedEventHandler = event => {
|
|
19
12
|
handlers.filter(handler => typeof handler === 'function').forEach(handler => handler(event));
|
|
20
13
|
};
|
|
21
14
|
return unifiedEventHandler;
|
|
22
15
|
};
|
|
23
|
-
const useHasValue =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} = _ref2;
|
|
16
|
+
const useHasValue = ({
|
|
17
|
+
defaultValue,
|
|
18
|
+
value
|
|
19
|
+
}) => {
|
|
28
20
|
const [hasUncontrolledValue, setHasUncontrolledValue] = useState(!!defaultValue || defaultValue === 0);
|
|
29
21
|
const hasValue = !!value || value === 0 || hasUncontrolledValue;
|
|
30
22
|
const handleInputEvent = e => setHasUncontrolledValue(!!e.target.value);
|
|
@@ -57,10 +49,7 @@ const useIdList = (uniqueIdPrefix, initialList) => {
|
|
|
57
49
|
};
|
|
58
50
|
return [idList, useRegisteredId];
|
|
59
51
|
};
|
|
60
|
-
const mergeAttributeValues =
|
|
61
|
-
for (var _len2 = arguments.length, values = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
62
|
-
values[_key2] = arguments[_key2];
|
|
63
|
-
}
|
|
52
|
+
const mergeAttributeValues = (...values) => {
|
|
64
53
|
const mergedValues = classNames(values);
|
|
65
54
|
return mergedValues || undefined;
|
|
66
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldUtils.js","names":["classNames","useState","useEffect","newId","omitUndefinedProperties","obj","
|
|
1
|
+
{"version":3,"file":"fieldUtils.js","names":["classNames","useState","useEffect","newId","omitUndefinedProperties","obj","Object","entries","reduce","acc","key","value","undefined","callAllHandlers","handlers","unifiedEventHandler","event","filter","handler","forEach","useHasValue","defaultValue","hasUncontrolledValue","setHasUncontrolledValue","hasValue","handleInputEvent","e","target","useIdList","uniqueIdPrefix","initialList","idList","setIdList","addId","idToAdd","oldIdList","getNewId","removeId","idToRemove","id","useRegisteredId","explicitlyRegisteredId","registeredId","setRegisteredId","mergeAttributeValues","values","mergedValues"],"sources":["../../src/Form/fieldUtils.ts"],"sourcesContent":["import classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport { newId } from '../utils';\n\nconst omitUndefinedProperties = (obj = {}) => Object.entries(obj)\n .reduce((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = value;\n }\n return acc;\n }, {} as Record<string, any>);\n\nconst callAllHandlers = <EventType extends Object>(...handlers: ((event: EventType) => void)[]) => {\n const unifiedEventHandler = (event: EventType) => {\n handlers\n .filter(handler => typeof handler === 'function')\n .forEach(handler => handler(event));\n };\n return unifiedEventHandler;\n};\n\nconst useHasValue = <ValueType>({ defaultValue, value }: { defaultValue?: ValueType, value?: ValueType }) => {\n const [hasUncontrolledValue, setHasUncontrolledValue] = useState(!!defaultValue || defaultValue === 0);\n const hasValue = !!value || value === 0 || hasUncontrolledValue;\n const handleInputEvent = (e: React.ChangeEvent<HTMLInputElement>) => setHasUncontrolledValue(!!e.target.value);\n return [hasValue, handleInputEvent];\n};\n\nconst useIdList = (\n uniqueIdPrefix: string,\n initialList?: string[],\n): [idList: string[], useRegisteredId: (id: string | undefined) => string | undefined] => {\n const [idList, setIdList] = useState(initialList || []);\n const addId = (idToAdd: string) => {\n setIdList(oldIdList => [...oldIdList, idToAdd]);\n return idToAdd;\n };\n const getNewId = () => {\n const idToAdd = newId(`${uniqueIdPrefix}-`);\n return addId(idToAdd);\n };\n const removeId = (idToRemove: string | undefined) => {\n setIdList(oldIdList => oldIdList.filter(id => id !== idToRemove));\n };\n\n const useRegisteredId = (explicitlyRegisteredId: string | undefined) => {\n const [registeredId, setRegisteredId] = useState(explicitlyRegisteredId);\n useEffect(() => {\n if (explicitlyRegisteredId) {\n addId(explicitlyRegisteredId);\n } else if (!registeredId) {\n setRegisteredId(getNewId());\n }\n return () => removeId(registeredId);\n }, [registeredId, explicitlyRegisteredId]);\n return registeredId;\n };\n\n return [idList, useRegisteredId];\n};\n\nconst mergeAttributeValues = (...values: (string | undefined)[]) => {\n const mergedValues = classNames(values);\n return mergedValues || undefined;\n};\n\nexport {\n callAllHandlers,\n useHasValue,\n mergeAttributeValues,\n useIdList,\n omitUndefinedProperties,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,8 +12,7 @@ const checkboxValuesReducer = (state, action) => {
|
|
|
12
12
|
return [];
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
-
const useCheckboxSetValues =
|
|
16
|
-
let initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
15
|
+
const useCheckboxSetValues = (initialState = []) => {
|
|
17
16
|
const [state, dispatch] = useReducer(checkboxValuesReducer, initialState);
|
|
18
17
|
const dispatchers = {
|
|
19
18
|
add: value => dispatch({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckboxSetValues.js","names":["useReducer","checkboxValuesReducer","state","action","type","value","filter","useCheckboxSetValues","initialState","
|
|
1
|
+
{"version":3,"file":"useCheckboxSetValues.js","names":["useReducer","checkboxValuesReducer","state","action","type","value","filter","useCheckboxSetValues","initialState","dispatch","dispatchers","add","remove","set","clear"],"sources":["../../src/Form/useCheckboxSetValues.jsx"],"sourcesContent":["import { useReducer } from 'react';\n\nconst checkboxValuesReducer = (state, action) => {\n switch (action.type) {\n case 'add':\n return [...state, action.value];\n case 'remove':\n return state.filter(value => value !== action.value);\n case 'set':\n return [...action.value];\n case 'clear':\n default:\n return [];\n }\n};\n\nconst useCheckboxSetValues = (initialState = []) => {\n const [state, dispatch] = useReducer(checkboxValuesReducer, initialState);\n\n const dispatchers = {\n add: (value) => dispatch({ type: 'add', value }),\n remove: (value) => dispatch({ type: 'remove', value }),\n set: (value) => dispatch({ type: 'set', value }),\n clear: () => dispatch({ type: 'clear' }),\n };\n return [state, dispatchers];\n};\n\nexport default useCheckboxSetValues;\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,MAAMC,qBAAqB,GAAGA,CAACC,KAAK,EAAEC,MAAM,KAAK;EAC/C,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,KAAK,EAAEC,MAAM,CAACE,KAAK,CAAC;IACjC,KAAK,QAAQ;MACX,OAAOH,KAAK,CAACI,MAAM,CAACD,KAAK,IAAIA,KAAK,KAAKF,MAAM,CAACE,KAAK,CAAC;IACtD,KAAK,KAAK;MACR,OAAO,CAAC,GAAGF,MAAM,CAACE,KAAK,CAAC;IAC1B,KAAK,OAAO;IACZ;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAED,MAAME,oBAAoB,GAAGA,CAACC,YAAY,GAAG,EAAE,KAAK;EAClD,MAAM,CAACN,KAAK,EAAEO,QAAQ,CAAC,GAAGT,UAAU,CAACC,qBAAqB,EAAEO,YAAY,CAAC;EAEzE,MAAME,WAAW,GAAG;IAClBC,GAAG,EAAGN,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDO,MAAM,EAAGP,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,QAAQ;MAAEC;IAAM,CAAC,CAAC;IACtDQ,GAAG,EAAGR,KAAK,IAAKI,QAAQ,CAAC;MAAEL,IAAI,EAAE,KAAK;MAAEC;IAAM,CAAC,CAAC;IAChDS,KAAK,EAAEA,CAAA,KAAML,QAAQ,CAAC;MAAEL,IAAI,EAAE;IAAQ,CAAC;EACzC,CAAC;EACD,OAAO,CAACF,KAAK,EAAEQ,WAAW,CAAC;AAC7B,CAAC;AAED,eAAeH,oBAAoB","ignoreList":[]}
|
package/dist/Hyperlink/index.js
CHANGED
|
@@ -16,21 +16,20 @@ const messages = defineMessages({
|
|
|
16
16
|
defaultMessage: 'Opens in a new tab'
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
-
const Hyperlink = /*#__PURE__*/forwardRef((
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} = _ref;
|
|
19
|
+
const Hyperlink = /*#__PURE__*/forwardRef(({
|
|
20
|
+
as: Component = 'a',
|
|
21
|
+
className,
|
|
22
|
+
destination,
|
|
23
|
+
children,
|
|
24
|
+
target = '_self',
|
|
25
|
+
onClick,
|
|
26
|
+
externalLinkAlternativeText,
|
|
27
|
+
externalLinkTitle,
|
|
28
|
+
variant = 'default',
|
|
29
|
+
isInline = false,
|
|
30
|
+
showLaunchIcon = true,
|
|
31
|
+
...attrs
|
|
32
|
+
}, ref) => {
|
|
34
33
|
const intl = useIntl();
|
|
35
34
|
let externalLinkIcon;
|
|
36
35
|
if (target === '_blank') {
|
|
@@ -89,12 +88,9 @@ Hyperlink.propTypes = {
|
|
|
89
88
|
// @ts-ignore
|
|
90
89
|
as: PropTypes.elementType,
|
|
91
90
|
/** specifies the URL; required iff `as` prop is a standard anchor tag */
|
|
92
|
-
destination: customPropTypeRequirement(PropTypes.string,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} = _ref2;
|
|
96
|
-
return as && as === 'a';
|
|
97
|
-
},
|
|
91
|
+
destination: customPropTypeRequirement(PropTypes.string, ({
|
|
92
|
+
as
|
|
93
|
+
}) => as && as === 'a',
|
|
98
94
|
// "[`destination` is required when]..."
|
|
99
95
|
'the `as` prop is a standard anchor element (i.e., "a")'),
|
|
100
96
|
/** Content of the hyperlink */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","forwardRef","PropTypes","classNames","defineMessages","useIntl","Launch","Icon","customPropTypeRequirement","messages","externalLinkAltText","id","defaultMessage","externalLinkTitle","Hyperlink","_ref","ref","as","Component","className","destination","children","target","onClick","externalLinkAlternativeText","variant","isInline","showLaunchIcon","attrs","intl","externalLinkIcon","generateRel","rel","includes","createElement","title","formatMessage","src","screenReaderText","style","height","width","additionalProps","href","propTypes","elementType","string","_ref2","node","isRequired","oneOf","func","bool","defaultProps","undefined","displayName"],"sources":["../../src/Hyperlink/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n type BsPrefixRefForwardingComponent as ComponentWithAsProp,\n type BsPrefixProps,\n} from 'react-bootstrap/esm/helpers';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { customPropTypeRequirement } from '../utils/propTypes/utils';\n\nexport interface HyperlinkProps extends BsPrefixProps, Omit<React.ComponentPropsWithRef<'a'>, 'href' | 'target'> {\n /** specifies the URL */\n destination?: string;\n /** Content of the hyperlink */\n children: React.ReactNode;\n /** Custom class names for the hyperlink */\n className?: string;\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText?: string;\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle?: string;\n /** type of hyperlink */\n variant?: 'default' | 'muted' | 'brand';\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline?: boolean;\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon?: boolean;\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be\n * loaded into the same browsing context as the current one.\n * If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent\n * any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target?: '_blank' | '_self';\n}\n\nexport type HyperlinkType = ComponentWithAsProp<'a', HyperlinkProps>;\n\nconst messages = defineMessages({\n externalLinkAltText: {\n id: 'Hyperlink.externalLinkAltText',\n defaultMessage: 'in a new tab',\n },\n externalLinkTitle: {\n id: 'Hyperlink.externalLinkTitle',\n defaultMessage: 'Opens in a new tab',\n },\n});\n\nconst Hyperlink = forwardRef<HTMLAnchorElement, HyperlinkProps>(({\n as: Component = 'a',\n className,\n destination,\n children,\n target = '_self',\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant = 'default',\n isInline = false,\n showLaunchIcon = true,\n ...attrs\n}, ref) => {\n const intl = useIntl();\n let externalLinkIcon;\n\n if (target === '_blank') {\n const generateRel = () => {\n let { rel } = attrs;\n if (!rel) {\n return 'noopener noreferrer';\n }\n if (!rel.includes('noopener')) {\n rel += ' noopener';\n }\n if (!rel.includes('noreferrer')) {\n rel += ' noreferrer';\n }\n return rel;\n };\n\n // Add this rel attribute to prevent Reverse Tabnabbing\n attrs.rel = generateRel();\n if (showLaunchIcon) {\n externalLinkIcon = (\n <span\n className=\"pgn__hyperlink__external-icon\"\n title={externalLinkTitle || intl.formatMessage(messages.externalLinkTitle)}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText || intl.formatMessage(messages.externalLinkAltText)}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n const additionalProps: Record<string, any> = { ...attrs };\n if (destination) {\n additionalProps.href = destination;\n }\n\n return (\n <Component\n ref={ref}\n className={classNames(\n 'pgn__hyperlink',\n `${variant}-link`,\n {\n 'standalone-link': !isInline,\n 'inline-link': isInline,\n },\n className,\n )}\n target={target}\n onClick={onClick}\n {...additionalProps}\n >\n {children}\n {externalLinkIcon}\n </Component>\n );\n});\n\nHyperlink.propTypes = {\n /** specifies the component element type to render for the hyperlink */\n // @ts-ignore\n as: PropTypes.elementType,\n /** specifies the URL; required iff `as` prop is a standard anchor tag */\n destination: customPropTypeRequirement(\n PropTypes.string,\n ({ as }: { as: React.ElementType }) => as && as === 'a',\n // \"[`destination` is required when]...\"\n 'the `as` prop is a standard anchor element (i.e., \"a\")',\n ),\n /** Content of the hyperlink */\n // @ts-ignore\n children: PropTypes.node.isRequired,\n /** Custom class names for the hyperlink */\n className: PropTypes.string,\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be\n * loaded into the same browsing context as the current one.\n * If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent\n * any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target: PropTypes.oneOf(['_blank', '_self']),\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText: PropTypes.string,\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle: PropTypes.string,\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline: PropTypes.bool,\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon: PropTypes.bool,\n};\n\nHyperlink.defaultProps = {\n as: 'a',\n className: undefined,\n destination: undefined,\n externalLinkAlternativeText: undefined,\n externalLinkTitle: undefined,\n isInline: false,\n onClick: undefined,\n showLaunchIcon: true,\n target: '_self',\n variant: 'default',\n};\n\nHyperlink.displayName = 'Hyperlink';\n\nexport default Hyperlink;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","forwardRef","PropTypes","classNames","defineMessages","useIntl","Launch","Icon","customPropTypeRequirement","messages","externalLinkAltText","id","defaultMessage","externalLinkTitle","Hyperlink","as","Component","className","destination","children","target","onClick","externalLinkAlternativeText","variant","isInline","showLaunchIcon","attrs","ref","intl","externalLinkIcon","generateRel","rel","includes","createElement","title","formatMessage","src","screenReaderText","style","height","width","additionalProps","href","propTypes","elementType","string","node","isRequired","oneOf","func","bool","defaultProps","undefined","displayName"],"sources":["../../src/Hyperlink/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n type BsPrefixRefForwardingComponent as ComponentWithAsProp,\n type BsPrefixProps,\n} from 'react-bootstrap/esm/helpers';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { Launch } from '../../icons';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { customPropTypeRequirement } from '../utils/propTypes/utils';\n\nexport interface HyperlinkProps extends BsPrefixProps, Omit<React.ComponentPropsWithRef<'a'>, 'href' | 'target'> {\n /** specifies the URL */\n destination?: string;\n /** Content of the hyperlink */\n children: React.ReactNode;\n /** Custom class names for the hyperlink */\n className?: string;\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText?: string;\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle?: string;\n /** type of hyperlink */\n variant?: 'default' | 'muted' | 'brand';\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline?: boolean;\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon?: boolean;\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be\n * loaded into the same browsing context as the current one.\n * If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent\n * any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target?: '_blank' | '_self';\n}\n\nexport type HyperlinkType = ComponentWithAsProp<'a', HyperlinkProps>;\n\nconst messages = defineMessages({\n externalLinkAltText: {\n id: 'Hyperlink.externalLinkAltText',\n defaultMessage: 'in a new tab',\n },\n externalLinkTitle: {\n id: 'Hyperlink.externalLinkTitle',\n defaultMessage: 'Opens in a new tab',\n },\n});\n\nconst Hyperlink = forwardRef<HTMLAnchorElement, HyperlinkProps>(({\n as: Component = 'a',\n className,\n destination,\n children,\n target = '_self',\n onClick,\n externalLinkAlternativeText,\n externalLinkTitle,\n variant = 'default',\n isInline = false,\n showLaunchIcon = true,\n ...attrs\n}, ref) => {\n const intl = useIntl();\n let externalLinkIcon;\n\n if (target === '_blank') {\n const generateRel = () => {\n let { rel } = attrs;\n if (!rel) {\n return 'noopener noreferrer';\n }\n if (!rel.includes('noopener')) {\n rel += ' noopener';\n }\n if (!rel.includes('noreferrer')) {\n rel += ' noreferrer';\n }\n return rel;\n };\n\n // Add this rel attribute to prevent Reverse Tabnabbing\n attrs.rel = generateRel();\n if (showLaunchIcon) {\n externalLinkIcon = (\n <span\n className=\"pgn__hyperlink__external-icon\"\n title={externalLinkTitle || intl.formatMessage(messages.externalLinkTitle)}\n >\n <Icon\n src={Launch}\n screenReaderText={externalLinkAlternativeText || intl.formatMessage(messages.externalLinkAltText)}\n style={{ height: '1em', width: '1em' }}\n data-testid=\"hyperlink-icon\"\n />\n </span>\n );\n }\n }\n\n const additionalProps: Record<string, any> = { ...attrs };\n if (destination) {\n additionalProps.href = destination;\n }\n\n return (\n <Component\n ref={ref}\n className={classNames(\n 'pgn__hyperlink',\n `${variant}-link`,\n {\n 'standalone-link': !isInline,\n 'inline-link': isInline,\n },\n className,\n )}\n target={target}\n onClick={onClick}\n {...additionalProps}\n >\n {children}\n {externalLinkIcon}\n </Component>\n );\n});\n\nHyperlink.propTypes = {\n /** specifies the component element type to render for the hyperlink */\n // @ts-ignore\n as: PropTypes.elementType,\n /** specifies the URL; required iff `as` prop is a standard anchor tag */\n destination: customPropTypeRequirement(\n PropTypes.string,\n ({ as }: { as: React.ElementType }) => as && as === 'a',\n // \"[`destination` is required when]...\"\n 'the `as` prop is a standard anchor element (i.e., \"a\")',\n ),\n /** Content of the hyperlink */\n // @ts-ignore\n children: PropTypes.node.isRequired,\n /** Custom class names for the hyperlink */\n className: PropTypes.string,\n /** specifies where the link should open. The default behavior is `_self`, which means that the URL will be\n * loaded into the same browsing context as the current one.\n * If the target is `_blank` (opening a new window) `rel='noopener'` will be added to the anchor tag to prevent\n * any potential [reverse tabnabbing attack](https://www.owasp.org/index.php/Reverse_Tabnabbing).\n */\n target: PropTypes.oneOf(['_blank', '_self']),\n /** specifies the callback function when the link is clicked */\n onClick: PropTypes.func,\n /** Alt text for the icon indicating that this link opens in a new tab, if target=\"_blank\". e.g. _(\"in a new tab\") */\n externalLinkAlternativeText: PropTypes.string,\n /** Tooltip text for the \"opens in new tab\" icon, if target=\"_blank\". e.g. _(\"Opens in a new tab\"). */\n externalLinkTitle: PropTypes.string,\n /** type of hyperlink */\n variant: PropTypes.oneOf(['default', 'muted', 'brand']),\n /** Display the link with an underline. By default, it is only underlined on hover. */\n isInline: PropTypes.bool,\n /** specify if we need to show launch Icon. By default, it will be visible. */\n showLaunchIcon: PropTypes.bool,\n};\n\nHyperlink.defaultProps = {\n as: 'a',\n className: undefined,\n destination: undefined,\n externalLinkAlternativeText: undefined,\n externalLinkTitle: undefined,\n isInline: false,\n onClick: undefined,\n showLaunchIcon: true,\n target: '_self',\n variant: 'default',\n};\n\nHyperlink.displayName = 'Hyperlink';\n\nexport default Hyperlink;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Icon/index.js
CHANGED
|
@@ -11,17 +11,16 @@ import withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';
|
|
|
11
11
|
* - focusable is set to false on the svg in all cases as a workaround for an ie11 bug
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
function Icon(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} = _ref;
|
|
14
|
+
function Icon({
|
|
15
|
+
src: Component,
|
|
16
|
+
id,
|
|
17
|
+
className,
|
|
18
|
+
hidden,
|
|
19
|
+
screenReaderText,
|
|
20
|
+
svgAttrs,
|
|
21
|
+
size,
|
|
22
|
+
...attrs
|
|
23
|
+
}) {
|
|
25
24
|
if (Component) {
|
|
26
25
|
// If no aria label is specified, hide this icon from screenreaders
|
|
27
26
|
const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];
|
package/dist/Icon/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","withDeprecatedProps","DeprTypes","Icon","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","withDeprecatedProps","DeprTypes","Icon","src","Component","id","className","hidden","screenReaderText","svgAttrs","size","attrs","hasAriaLabel","mergedSvgProps","undefined","createElement","role","focusable","Fragment","propTypes","elementType","shape","string","oneOf","bool","oneOfType","element","defaultProps","deprType","FORMAT","expect","value","transform","Array","isArray","join","message"],"sources":["../../src/Icon/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\n/**\n * An svg with an \"img\" role must satisfy the following a11y requirements\n * - It needs a text alternative in the form of aria-label, aria-labelledby, or screen-reader only text.\n * - If no label is desired, aria-label will be set to an empty string and aria-hidden to \"true\".\n * - focusable is set to false on the svg in all cases as a workaround for an ie11 bug\n */\n\nfunction Icon({\n src: Component,\n id,\n className,\n hidden,\n screenReaderText,\n svgAttrs,\n size,\n ...attrs\n}) {\n if (Component) {\n // If no aria label is specified, hide this icon from screenreaders\n const hasAriaLabel = svgAttrs['aria-label'] || svgAttrs['aria-labelledby'];\n\n const mergedSvgProps = { ...svgAttrs };\n\n if (!hasAriaLabel) {\n mergedSvgProps['aria-label'] = undefined;\n mergedSvgProps['aria-hidden'] = true;\n }\n\n return (\n <span\n className={classNames('pgn__icon', { [`pgn__icon__${size}`]: !!size }, className)}\n id={id}\n {...attrs}\n >\n <Component\n role=\"img\"\n focusable={false}\n {...mergedSvgProps}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </span>\n );\n }\n\n return (\n <>\n <span\n id={id || newId('Icon')}\n className={className}\n aria-hidden={hidden}\n />\n {screenReaderText && (\n <span className=\"sr-only\">\n {screenReaderText}\n </span>\n )}\n </>\n );\n}\n\nIcon.propTypes = {\n /**\n * An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@openedx/paragon/icons';`\n */\n src: PropTypes.elementType,\n /** HTML element attributes to pass through to the underlying svg element */\n svgAttrs: PropTypes.shape({\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n }),\n /**\n * the `id` property of the Icon element, by default this value is generated\n * with the `newId` function with the `prefix` of `Icon`.\n */\n id: PropTypes.string,\n /** The size of the icon. */\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),\n /** A class name that will define what the Icon looks like. */\n className: PropTypes.string,\n /**\n * a boolean that determines the value of `aria-hidden` attribute on the Icon span,\n * this value is `true` by default.\n */\n hidden: PropTypes.bool,\n /**\n * a string or an element that will be used on a secondary span leveraging the `sr-only` style\n * for screenreader only text, this value is `undefined` by default. This value is recommended for use unless\n * the Icon is being used in a way that is purely decorative or provides no additional context for screen\n * reader users. This field should be thought of the same way an `alt` attribute would be used for `image` tags.\n */\n screenReaderText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nIcon.defaultProps = {\n src: null,\n svgAttrs: {},\n id: undefined,\n hidden: true,\n screenReaderText: undefined,\n size: undefined,\n className: undefined,\n};\n\nexport default withDeprecatedProps(Icon, 'Icon', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n});\n"],"mappings":"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","ignoreList":[]}
|