@telus-uds/components-base 0.0.2-prerelease.7 → 1.0.1
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/.eslintrc.js +9 -0
- package/.ultra.cache.json +1 -1
- package/CHANGELOG.md +71 -0
- package/README.md +4 -2
- package/__fixtures__/Accessible.js +33 -0
- package/__fixtures__/Accessible.native.js +32 -0
- package/__fixtures__/test-utils.js +25 -0
- package/__fixtures__/testTheme.js +438 -31
- package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
- package/__tests__/Button/ButtonGroup.test.jsx +6 -7
- package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
- package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
- package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
- package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
- package/__tests__/Icon/Icon.test.jsx +3 -3
- package/__tests__/IconButton/IconButton.test.jsx +52 -0
- package/__tests__/Link/LinkBase.test.jsx +0 -14
- package/__tests__/Modal/Modal.test.jsx +47 -0
- package/__tests__/Notification/Notification.test.jsx +20 -0
- package/__tests__/Pagination/Pagination.test.jsx +2 -2
- package/__tests__/Progress/Progress.test.jsx +79 -0
- package/__tests__/Radio/Radio.test.jsx +2 -2
- package/__tests__/Radio/RadioGroup.test.jsx +220 -0
- package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
- package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
- package/__tests__/Search/Search.test.jsx +73 -0
- package/__tests__/Select/Select.test.jsx +3 -2
- package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
- package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
- package/__tests__/Tabs/Tabs.test.jsx +40 -0
- package/__tests__/Tags/Tags.test.jsx +5 -6
- package/__tests__/TextInput/TextArea.test.jsx +3 -2
- package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
- package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
- package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
- package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
- package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
- package/__tests__/utils/children.test.jsx +128 -0
- package/__tests__/utils/input.test.js +59 -1
- package/__tests__/utils/semantics.test.jsx +43 -0
- package/__tests__/utils/useCopy.test.js +14 -3
- package/babel.config.js +20 -0
- package/jest.config.js +6 -3
- package/lib/A11yInfoProvider/index.js +54 -26
- package/lib/A11yText/index.js +45 -17
- package/lib/ActivityIndicator/Spinner.js +81 -0
- package/lib/ActivityIndicator/Spinner.native.js +129 -91
- package/lib/ActivityIndicator/index.js +28 -12
- package/lib/ActivityIndicator/shared.js +27 -12
- package/lib/BaseProvider/index.js +34 -11
- package/lib/Box/Box.js +153 -35
- package/lib/Box/index.js +13 -2
- package/lib/Button/Button.js +38 -16
- package/lib/Button/ButtonBase.js +93 -79
- package/lib/Button/ButtonGroup.js +112 -73
- package/lib/Button/ButtonLink.js +45 -19
- package/lib/Button/index.js +31 -4
- package/lib/Button/propTypes.js +32 -9
- package/lib/Card/Card.js +38 -41
- package/lib/Card/CardBase.js +86 -0
- package/lib/Card/PressableCardBase.js +141 -0
- package/lib/Card/index.js +40 -2
- package/lib/Checkbox/Checkbox.js +158 -111
- package/lib/Checkbox/CheckboxGroup.js +241 -0
- package/lib/Checkbox/CheckboxInput.js +74 -0
- package/lib/Checkbox/CheckboxInput.native.js +9 -1
- package/lib/Checkbox/index.js +21 -2
- package/lib/Divider/Divider.js +59 -28
- package/lib/Divider/index.js +13 -2
- package/lib/ExpandCollapse/Accordion.js +26 -7
- package/lib/ExpandCollapse/Control.js +60 -31
- package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
- package/lib/ExpandCollapse/Panel.js +83 -44
- package/lib/ExpandCollapse/index.js +25 -7
- package/lib/Feedback/Feedback.js +77 -43
- package/lib/Feedback/index.js +13 -2
- package/lib/Fieldset/Fieldset.js +165 -0
- package/lib/Fieldset/FieldsetContainer.js +46 -0
- package/lib/Fieldset/FieldsetContainer.native.js +38 -0
- package/lib/Fieldset/Legend.js +38 -0
- package/lib/Fieldset/Legend.native.js +48 -0
- package/lib/Fieldset/cssReset.js +21 -0
- package/lib/Fieldset/index.js +13 -0
- package/lib/FlexGrid/Col/Col.js +73 -41
- package/lib/FlexGrid/Col/index.js +13 -2
- package/lib/FlexGrid/FlexGrid.js +99 -49
- package/lib/FlexGrid/Row/Row.js +58 -30
- package/lib/FlexGrid/Row/index.js +13 -2
- package/lib/FlexGrid/helpers/index.js +9 -1
- package/lib/FlexGrid/index.js +13 -2
- package/lib/FlexGrid/providers/GutterContext.js +15 -3
- package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
- package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
- package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
- package/lib/HorizontalScroll/dictionary.js +18 -0
- package/lib/HorizontalScroll/index.js +35 -0
- package/lib/HorizontalScroll/itemPositions.js +128 -0
- package/lib/Icon/Icon.js +57 -48
- package/lib/Icon/IconText.js +54 -25
- package/lib/Icon/index.js +31 -4
- package/lib/IconButton/IconButton.js +140 -0
- package/lib/IconButton/index.js +13 -0
- package/lib/InputLabel/InputLabel.js +102 -40
- package/lib/InputLabel/LabelContent.js +41 -0
- package/lib/InputLabel/LabelContent.native.js +32 -6
- package/lib/InputLabel/index.js +13 -2
- package/lib/InputSupports/InputSupports.js +71 -52
- package/lib/InputSupports/index.js +13 -2
- package/lib/InputSupports/propTypes.js +19 -8
- package/lib/InputSupports/useInputSupports.js +41 -0
- package/lib/Link/ChevronLink.js +44 -20
- package/lib/Link/InlinePressable.js +56 -0
- package/lib/Link/InlinePressable.native.js +39 -15
- package/lib/Link/Link.js +36 -13
- package/lib/Link/LinkBase.js +98 -61
- package/lib/Link/TextButton.js +41 -17
- package/lib/Link/index.js +39 -5
- package/lib/List/List.js +55 -26
- package/lib/List/ListItem.js +79 -41
- package/lib/List/index.js +13 -2
- package/lib/Modal/Modal.js +231 -0
- package/lib/Modal/dictionary.js +16 -0
- package/lib/Modal/index.js +13 -0
- package/lib/Notification/Notification.js +216 -0
- package/lib/Notification/dictionary.js +15 -0
- package/lib/Notification/index.js +13 -0
- package/lib/Pagination/PageButton.js +61 -28
- package/lib/Pagination/Pagination.js +78 -43
- package/lib/Pagination/SideButton.js +73 -42
- package/lib/Pagination/dictionary.js +9 -2
- package/lib/Pagination/index.js +13 -2
- package/lib/Pagination/usePagination.js +12 -2
- package/lib/Progress/Progress.js +104 -0
- package/lib/Progress/ProgressBar.js +157 -0
- package/lib/Progress/ProgressBarBackground.js +61 -0
- package/lib/Progress/index.js +16 -0
- package/lib/Radio/Radio.js +116 -114
- package/lib/Radio/RadioButton.js +152 -0
- package/lib/Radio/RadioGroup.js +244 -0
- package/lib/Radio/RadioInput.js +76 -0
- package/lib/Radio/RadioInput.native.js +9 -1
- package/lib/Radio/index.js +21 -2
- package/lib/RadioCard/RadioCard.js +244 -0
- package/lib/RadioCard/RadioCardGroup.js +252 -0
- package/lib/RadioCard/index.js +21 -0
- package/lib/Search/Search.js +254 -0
- package/lib/Search/dictionary.js +19 -0
- package/lib/Search/index.js +13 -0
- package/lib/Select/Group.js +33 -0
- package/lib/Select/Group.native.js +16 -5
- package/lib/Select/Item.js +29 -0
- package/lib/Select/Item.native.js +14 -4
- package/lib/Select/Picker.js +84 -0
- package/lib/Select/Picker.native.js +73 -30
- package/lib/Select/Select.js +155 -85
- package/lib/Select/index.js +19 -6
- package/lib/SideNav/Item.js +63 -37
- package/lib/SideNav/ItemContent.js +41 -15
- package/lib/SideNav/ItemsGroup.js +55 -31
- package/lib/SideNav/SideNav.js +100 -73
- package/lib/SideNav/index.js +15 -1
- package/lib/Skeleton/Skeleton.js +64 -46
- package/lib/Skeleton/index.js +13 -2
- package/lib/Skeleton/skeleton.constant.js +12 -0
- package/lib/Skeleton/skeletonWebAnimation.js +27 -0
- package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
- package/lib/Spacer/Spacer.js +49 -18
- package/lib/Spacer/index.js +13 -2
- package/lib/StackView/StackView.js +72 -31
- package/lib/StackView/StackWrap.js +43 -13
- package/lib/StackView/StackWrap.native.js +13 -2
- package/lib/StackView/StackWrapBox.js +77 -29
- package/lib/StackView/StackWrapGap.js +56 -26
- package/lib/StackView/common.js +23 -6
- package/lib/StackView/getStackedContent.js +47 -17
- package/lib/StackView/index.js +29 -5
- package/lib/StepTracker/Step.js +245 -0
- package/lib/StepTracker/StepTracker.js +202 -0
- package/lib/StepTracker/dictionary.js +17 -0
- package/lib/StepTracker/index.js +13 -0
- package/lib/Tabs/Tabs.js +124 -0
- package/lib/Tabs/TabsItem.js +238 -0
- package/lib/Tabs/index.js +13 -0
- package/lib/Tags/Tags.js +148 -99
- package/lib/Tags/index.js +13 -2
- package/lib/TextInput/TextArea.js +57 -28
- package/lib/TextInput/TextInput.js +50 -23
- package/lib/TextInput/TextInputBase.js +90 -63
- package/lib/TextInput/index.js +23 -3
- package/lib/TextInput/propTypes.js +18 -7
- package/lib/ThemeProvider/ThemeProvider.js +46 -18
- package/lib/ThemeProvider/index.js +61 -6
- package/lib/ThemeProvider/useSetTheme.js +19 -5
- package/lib/ThemeProvider/useTheme.js +13 -4
- package/lib/ThemeProvider/useThemeTokens.js +32 -16
- package/lib/ThemeProvider/utils/index.js +31 -2
- package/lib/ThemeProvider/utils/styles.js +50 -14
- package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
- package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
- package/lib/ToggleSwitch/index.js +13 -2
- package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
- package/lib/Tooltip/Backdrop.native.js +39 -15
- package/lib/Tooltip/Tooltip.js +117 -74
- package/lib/Tooltip/dictionary.js +9 -2
- package/lib/Tooltip/getTooltipPosition.js +9 -1
- package/lib/Tooltip/index.js +13 -2
- package/lib/TooltipButton/TooltipButton.js +57 -38
- package/lib/TooltipButton/index.js +13 -2
- package/lib/Typography/Typography.js +87 -41
- package/lib/Typography/index.js +13 -2
- package/lib/ViewportProvider/ViewportProvider.js +34 -13
- package/lib/ViewportProvider/index.js +28 -3
- package/lib/ViewportProvider/useViewport.js +15 -3
- package/lib/ViewportProvider/useViewportListener.js +24 -10
- package/lib/index.js +539 -33
- package/lib/utils/a11y/index.js +31 -1
- package/lib/utils/a11y/semantics.js +173 -0
- package/lib/utils/a11y/textSize.js +23 -7
- package/lib/utils/animation/index.js +15 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
- package/lib/utils/children.js +134 -0
- package/lib/utils/index.js +163 -10
- package/lib/utils/info/index.js +18 -6
- package/lib/utils/info/platform/index.js +19 -7
- package/lib/utils/info/platform/platform.android.js +8 -1
- package/lib/utils/info/platform/platform.ios.js +8 -1
- package/lib/utils/info/platform/platform.js +8 -0
- package/lib/utils/info/platform/platform.native.js +8 -1
- package/lib/utils/info/versions.js +15 -4
- package/lib/utils/input.js +53 -25
- package/lib/utils/pressability.js +38 -10
- package/lib/utils/propTypes.js +287 -141
- package/lib/utils/useCopy.js +40 -5
- package/lib/utils/useHash.js +52 -0
- package/lib/utils/useHash.native.js +15 -0
- package/lib/utils/useResponsiveProp.js +21 -9
- package/lib/utils/useSpacingScale.js +19 -9
- package/lib/utils/useUniqueId.js +12 -3
- package/package.json +14 -9
- package/release-context.json +4 -4
- package/src/A11yText/index.jsx +6 -4
- package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
- package/src/ActivityIndicator/Spinner.native.jsx +5 -3
- package/src/Box/Box.jsx +132 -39
- package/src/Button/Button.jsx +10 -6
- package/src/Button/ButtonBase.jsx +99 -99
- package/src/Button/ButtonGroup.jsx +81 -69
- package/src/Button/ButtonLink.jsx +21 -15
- package/src/Button/propTypes.js +12 -2
- package/src/Card/Card.jsx +5 -31
- package/src/Card/CardBase.jsx +59 -0
- package/src/Card/PressableCardBase.jsx +119 -0
- package/src/Card/index.js +3 -0
- package/src/Checkbox/Checkbox.jsx +121 -112
- package/src/Checkbox/CheckboxGroup.jsx +206 -0
- package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
- package/src/Checkbox/index.js +2 -0
- package/src/Divider/Divider.jsx +7 -4
- package/src/ExpandCollapse/Accordion.jsx +3 -2
- package/src/ExpandCollapse/Control.jsx +40 -43
- package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
- package/src/ExpandCollapse/Panel.jsx +69 -63
- package/src/Feedback/Feedback.jsx +36 -33
- package/src/Fieldset/Fieldset.jsx +136 -0
- package/src/Fieldset/FieldsetContainer.jsx +31 -0
- package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
- package/src/Fieldset/Legend.jsx +21 -0
- package/src/Fieldset/Legend.native.jsx +27 -0
- package/src/Fieldset/cssReset.js +14 -0
- package/src/Fieldset/index.js +3 -0
- package/src/FlexGrid/Col/Col.jsx +139 -132
- package/src/FlexGrid/FlexGrid.jsx +79 -51
- package/src/FlexGrid/Row/Row.jsx +55 -48
- package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
- package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
- package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
- package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
- package/src/HorizontalScroll/dictionary.js +11 -0
- package/src/HorizontalScroll/index.js +17 -0
- package/src/HorizontalScroll/itemPositions.js +101 -0
- package/src/Icon/Icon.jsx +43 -50
- package/src/Icon/IconText.jsx +23 -18
- package/src/Icon/index.js +2 -2
- package/src/IconButton/IconButton.jsx +114 -0
- package/src/IconButton/index.js +3 -0
- package/src/InputLabel/InputLabel.jsx +57 -35
- package/src/InputLabel/LabelContent.jsx +21 -0
- package/src/InputLabel/LabelContent.native.jsx +11 -2
- package/src/InputSupports/InputSupports.jsx +29 -45
- package/src/InputSupports/useInputSupports.js +30 -0
- package/src/Link/ChevronLink.jsx +26 -16
- package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
- package/src/Link/InlinePressable.native.jsx +5 -3
- package/src/Link/Link.jsx +22 -16
- package/src/Link/LinkBase.jsx +76 -65
- package/src/Link/TextButton.jsx +30 -23
- package/src/List/List.jsx +5 -4
- package/src/List/ListItem.jsx +77 -82
- package/src/Modal/Modal.jsx +190 -0
- package/src/Modal/dictionary.js +9 -0
- package/src/Modal/index.js +3 -0
- package/src/Notification/Notification.jsx +164 -0
- package/src/Notification/dictionary.js +8 -0
- package/src/Notification/index.js +3 -0
- package/src/Pagination/PageButton.jsx +42 -35
- package/src/Pagination/Pagination.jsx +88 -92
- package/src/Pagination/SideButton.jsx +44 -41
- package/src/Progress/Progress.jsx +78 -0
- package/src/Progress/ProgressBar.jsx +123 -0
- package/src/Progress/ProgressBarBackground.jsx +36 -0
- package/src/Progress/index.js +6 -0
- package/src/Radio/Radio.jsx +82 -112
- package/src/Radio/RadioButton.jsx +142 -0
- package/src/Radio/RadioGroup.jsx +209 -0
- package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
- package/src/Radio/index.js +2 -0
- package/src/RadioCard/RadioCard.jsx +198 -0
- package/src/RadioCard/RadioCardGroup.jsx +218 -0
- package/src/RadioCard/index.js +5 -0
- package/src/Search/Search.jsx +225 -0
- package/src/Search/dictionary.js +12 -0
- package/src/Search/index.js +3 -0
- package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
- package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
- package/src/Select/Picker.jsx +74 -0
- package/src/Select/Picker.native.jsx +56 -49
- package/src/Select/Select.jsx +125 -92
- package/src/SideNav/Item.jsx +54 -47
- package/src/SideNav/ItemsGroup.jsx +50 -43
- package/src/SideNav/SideNav.jsx +68 -60
- package/src/Skeleton/Skeleton.jsx +25 -32
- package/src/Skeleton/skeleton.constant.js +3 -0
- package/src/Skeleton/skeletonWebAnimation.js +13 -0
- package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
- package/src/Spacer/Spacer.jsx +11 -4
- package/src/StackView/StackView.jsx +54 -23
- package/src/StackView/StackWrap.jsx +16 -7
- package/src/StackView/StackWrapBox.jsx +63 -28
- package/src/StackView/StackWrapGap.jsx +46 -24
- package/src/StackView/common.jsx +3 -2
- package/src/StackView/getStackedContent.jsx +8 -2
- package/src/StepTracker/Step.jsx +202 -0
- package/src/StepTracker/StepTracker.jsx +174 -0
- package/src/StepTracker/dictionary.js +10 -0
- package/src/StepTracker/index.js +3 -0
- package/src/Tabs/Tabs.jsx +97 -0
- package/src/Tabs/TabsItem.jsx +212 -0
- package/src/Tabs/index.js +3 -0
- package/src/Tags/Tags.jsx +115 -102
- package/src/TextInput/TextArea.jsx +5 -4
- package/src/TextInput/TextInput.jsx +5 -4
- package/src/TextInput/TextInputBase.jsx +95 -98
- package/src/ThemeProvider/ThemeProvider.jsx +11 -7
- package/src/ThemeProvider/useSetTheme.js +4 -0
- package/src/ThemeProvider/useThemeTokens.js +2 -2
- package/src/ThemeProvider/utils/styles.js +18 -5
- package/src/ThemeProvider/utils/theme-tokens.js +74 -5
- package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
- package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
- package/src/Tooltip/Tooltip.jsx +135 -131
- package/src/TooltipButton/TooltipButton.jsx +23 -27
- package/src/Typography/Typography.jsx +71 -47
- package/src/index.js +23 -2
- package/src/utils/a11y/index.js +1 -0
- package/src/utils/a11y/semantics.js +162 -0
- package/src/utils/children.jsx +119 -0
- package/src/utils/index.js +3 -0
- package/src/utils/info/platform/platform.js +1 -0
- package/src/utils/info/versions.js +2 -2
- package/src/utils/input.js +36 -25
- package/src/utils/pressability.js +4 -0
- package/src/utils/propTypes.js +199 -72
- package/src/utils/useCopy.js +30 -4
- package/src/utils/useHash.js +39 -0
- package/src/utils/useHash.native.js +6 -0
- package/stories/A11yText/A11yText.stories.jsx +6 -10
- package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
- package/stories/Box/Box.stories.jsx +1 -1
- package/stories/Button/Button.stories.jsx +2 -2
- package/stories/Button/ButtonGroup.stories.jsx +1 -1
- package/stories/Button/ButtonLink.stories.jsx +1 -1
- package/stories/Card/Card.stories.jsx +1 -1
- package/stories/Checkbox/Checkbox.stories.jsx +24 -1
- package/stories/Divider/Divider.stories.jsx +1 -1
- package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
- package/stories/Feedback/Feedback.stories.jsx +1 -1
- package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
- package/stories/FlexGrid/02 Row.stories.jsx +1 -1
- package/stories/FlexGrid/03 Col.stories.jsx +1 -1
- package/stories/Icon/Icon.stories.jsx +27 -7
- package/stories/IconButton/IconButton.stories.jsx +50 -0
- package/stories/InputLabel/InputLabel.stories.jsx +1 -1
- package/stories/Link/ChevronLink.stories.jsx +1 -1
- package/stories/Link/Link.stories.jsx +17 -21
- package/stories/Link/TextButton.stories.jsx +1 -1
- package/stories/List/List.stories.jsx +1 -1
- package/stories/Modal/Modal.stories.jsx +29 -0
- package/stories/Notification/Notification.stories.jsx +82 -0
- package/stories/Pagination/Pagination.stories.jsx +1 -1
- package/stories/Progress/Progress.stories.jsx +93 -0
- package/stories/Radio/Radio.stories.jsx +23 -36
- package/stories/RadioCard/RadioCard.stories.jsx +98 -0
- package/stories/Search/Search.stories.jsx +16 -0
- package/stories/Select/Select.stories.jsx +1 -1
- package/stories/SideNav/SideNav.stories.jsx +1 -1
- package/stories/SideNav/SideNavItem.stories.jsx +1 -1
- package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
- package/stories/Skeleton/Skeleton.stories.jsx +2 -2
- package/stories/Spacer/Spacer.stories.jsx +1 -1
- package/stories/StackView/StackView.stories.jsx +1 -1
- package/stories/StackView/StackWrap.stories.jsx +1 -1
- package/stories/StepTracker/StepTracker.stories.jsx +71 -0
- package/stories/Tabs/Tabs.stories.jsx +97 -0
- package/stories/Tags/Tags.stories.jsx +1 -1
- package/stories/TextInput/TextArea.stories.jsx +1 -1
- package/stories/TextInput/TextInput.stories.jsx +1 -1
- package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
- package/stories/Tooltip/Tooltip.stories.jsx +1 -1
- package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
- package/stories/Typography/Typography.stories.jsx +1 -1
- package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
- package/stories/supports.jsx +37 -3
- package/__fixtures__/accessible.icon.svg +0 -6
- package/babel.config.json +0 -8
- package/docs/Contributing.stories.mdx +0 -9
- package/docs/Fonts.stories.mdx +0 -104
- package/docs/Icons.stories.mdx +0 -144
- package/docs/Introduction.stories.mdx +0 -9
- package/lib/ActivityIndicator/Spinner.web.js +0 -55
- package/lib/Checkbox/CheckboxInput.web.js +0 -57
- package/lib/InputLabel/LabelContent.web.js +0 -17
- package/lib/Link/InlinePressable.web.js +0 -32
- package/lib/Radio/RadioInput.web.js +0 -59
- package/lib/Select/Group.web.js +0 -18
- package/lib/Select/Item.web.js +0 -15
- package/lib/Select/Picker.web.js +0 -63
- package/lib/config/svgr-icons-web.js +0 -9
- package/lib/config/svgr-icons.js +0 -52
- package/lib/utils/info/platform/platform.web.js +0 -1
- package/src/InputLabel/LabelContent.web.jsx +0 -13
- package/src/Select/Picker.web.jsx +0 -67
- package/src/config/svgr-icons-web.js +0 -11
- package/src/config/svgr-icons.js +0 -46
- package/src/utils/info/platform/platform.web.js +0 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
+
|
|
12
|
+
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
13
|
+
|
|
14
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
+
|
|
20
|
+
var _utils = require("../utils");
|
|
21
|
+
|
|
22
|
+
var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
|
|
23
|
+
|
|
24
|
+
var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
|
|
25
|
+
|
|
26
|
+
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
const selectContainerStyles = tokens => ({ ...tokens
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const selectTextStyles = tokens => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', tokens));
|
|
40
|
+
|
|
41
|
+
const selectIconProps = ({
|
|
42
|
+
iconSize,
|
|
43
|
+
iconColor
|
|
44
|
+
}) => ({
|
|
45
|
+
size: iconSize,
|
|
46
|
+
color: iconColor
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const selectIconContainerStyles = ({
|
|
50
|
+
iconGap
|
|
51
|
+
}) => ({
|
|
52
|
+
paddingRight: iconGap
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const selectDismissIconProps = ({
|
|
56
|
+
dismissIconSize,
|
|
57
|
+
dismissIconColor
|
|
58
|
+
}) => ({
|
|
59
|
+
size: dismissIconSize,
|
|
60
|
+
color: dismissIconColor
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const selectDismissButtonContainerStyles = ({
|
|
64
|
+
dismissButtonGap
|
|
65
|
+
}) => ({
|
|
66
|
+
paddingLeft: dismissButtonGap
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* A banner that highlights important messages:
|
|
70
|
+
* - Status message to show there is an error or outage of services
|
|
71
|
+
* - Confirmation message in response to user action
|
|
72
|
+
* - Account information letting the user know they have almost used all their data
|
|
73
|
+
*
|
|
74
|
+
* ## Usage criteria
|
|
75
|
+
* - Use simple text content only, such as bold test or links. Don’t use other complex components or paragraphs
|
|
76
|
+
* - Show notifications before the content that the message is related to, otherwise show at the top of the main content
|
|
77
|
+
* - Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
|
|
78
|
+
* - When showing multiple notifications, show them in order of importance from top to bottom
|
|
79
|
+
* - Use variants to visually show the type of message contained within the Notification.
|
|
80
|
+
* - The icon and colour will indicate meaning and importance
|
|
81
|
+
*
|
|
82
|
+
* ### Variants
|
|
83
|
+
* - Use `variant.style` to set the visual style of the notification
|
|
84
|
+
* - Use `dismissible` prop to enable dismissible functionality
|
|
85
|
+
* - Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
|
|
86
|
+
*
|
|
87
|
+
* ### When to use the system prop?
|
|
88
|
+
* - Use `system` to show system-based messages coming from the application
|
|
89
|
+
* - Don’t use `system` when the message is in response to user action
|
|
90
|
+
*
|
|
91
|
+
* ## Variants
|
|
92
|
+
*
|
|
93
|
+
* #### Success
|
|
94
|
+
* Use the success variant to provide feedback of a successful operation. The message will include an icon to indicate meaning and importance.
|
|
95
|
+
*
|
|
96
|
+
* #### Warning
|
|
97
|
+
* Use the warning variant to provide feedback of a warning; users would still be able to proceed forward.
|
|
98
|
+
* The message will include an icon to indicate meaning and importance.
|
|
99
|
+
*
|
|
100
|
+
* #### Error
|
|
101
|
+
* Use the error variant to provide feedback of a failed operation. The message will include an icon to indicate meaning and importance.
|
|
102
|
+
*
|
|
103
|
+
* #### Dismissible
|
|
104
|
+
* Dismissible notifications should only be used for default or success notifications where there is no action needed from the user.
|
|
105
|
+
* If the information is passive then it should be dismissible as indicated by an interactive close button on the far right.
|
|
106
|
+
* If the notification requires an action then make the option(s) clear with a `ChevronLink` or `Link`.
|
|
107
|
+
*
|
|
108
|
+
* Use the `dismissible` prop to allow users to dismiss the Notification at any time. Once dismissed, the Notification is removed from the DOM.
|
|
109
|
+
*
|
|
110
|
+
* Please note:
|
|
111
|
+
*
|
|
112
|
+
* - Default and Success variants are dismissible
|
|
113
|
+
* - Error and Warning variants are not dismissible
|
|
114
|
+
*
|
|
115
|
+
* #### System message
|
|
116
|
+
* Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
|
|
117
|
+
* Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
122
|
+
children,
|
|
123
|
+
system,
|
|
124
|
+
dismissible,
|
|
125
|
+
copy = 'en',
|
|
126
|
+
tokens,
|
|
127
|
+
variant
|
|
128
|
+
}, ref) => {
|
|
129
|
+
const [isDismissed, setIsDismissed] = (0, _react.useState)(false);
|
|
130
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Notification', tokens, variant, {
|
|
131
|
+
system
|
|
132
|
+
});
|
|
133
|
+
const getCopy = (0, _useCopy.default)({
|
|
134
|
+
dictionary: _dictionary.default,
|
|
135
|
+
copy
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
if (isDismissed) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const textStyles = selectTextStyles(themeTokens);
|
|
143
|
+
const content = typeof children === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
144
|
+
style: textStyles,
|
|
145
|
+
children: children
|
|
146
|
+
}) : children;
|
|
147
|
+
const {
|
|
148
|
+
icon: IconComponent,
|
|
149
|
+
dismissIcon: DismissIconComponent
|
|
150
|
+
} = themeTokens;
|
|
151
|
+
|
|
152
|
+
const onDismissPress = () => setIsDismissed(true); // TODO: replace the dismiss button with IconButton when implemented (https://github.com/telus/universal-design-system/issues/281)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
156
|
+
ref: ref,
|
|
157
|
+
style: [staticStyles.container, selectContainerStyles(themeTokens)],
|
|
158
|
+
children: [IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
159
|
+
style: selectIconContainerStyles(themeTokens),
|
|
160
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconProps(themeTokens)
|
|
161
|
+
})
|
|
162
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
163
|
+
style: staticStyles.contentContainer,
|
|
164
|
+
children: content && typeof content === 'function' ? content({
|
|
165
|
+
textStyles,
|
|
166
|
+
variant
|
|
167
|
+
}) : content
|
|
168
|
+
}), dismissible && DismissIconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
169
|
+
style: selectDismissButtonContainerStyles(themeTokens),
|
|
170
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
|
|
171
|
+
onPress: onDismissPress,
|
|
172
|
+
accessibilityRole: "button",
|
|
173
|
+
accessibilityLabel: getCopy('dismiss'),
|
|
174
|
+
children: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(DismissIconComponent, { ...selectDismissIconProps(themeTokens)
|
|
175
|
+
})
|
|
176
|
+
})
|
|
177
|
+
})]
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
Notification.displayName = 'Notification';
|
|
181
|
+
Notification.propTypes = {
|
|
182
|
+
/**
|
|
183
|
+
* Content of the `Notification`.
|
|
184
|
+
*/
|
|
185
|
+
children: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.func]),
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
|
|
189
|
+
*/
|
|
190
|
+
system: _propTypes.default.bool,
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Use the `dismissible` prop to allow users to dismiss the Notification at any time.
|
|
194
|
+
*/
|
|
195
|
+
dismissible: _propTypes.default.bool,
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Select english or french copy for the accessible label of the dismiss button.
|
|
199
|
+
*/
|
|
200
|
+
copy: _propTypes.default.oneOfType([_propTypes.default.oneOf(['en', 'fr']), _propTypes.default.shape({
|
|
201
|
+
dismiss: _propTypes.default.string
|
|
202
|
+
})]),
|
|
203
|
+
tokens: (0, _utils.getTokensPropType)('Notification'),
|
|
204
|
+
variant: _utils.variantProp.propType
|
|
205
|
+
};
|
|
206
|
+
var _default = Notification;
|
|
207
|
+
exports.default = _default;
|
|
208
|
+
|
|
209
|
+
const staticStyles = _StyleSheet.default.create({
|
|
210
|
+
container: {
|
|
211
|
+
flexDirection: 'row'
|
|
212
|
+
},
|
|
213
|
+
contentContainer: {
|
|
214
|
+
flex: 1
|
|
215
|
+
}
|
|
216
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Notification = _interopRequireDefault(require("./Notification"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _Notification.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
|
|
13
|
+
|
|
14
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
15
|
+
|
|
16
|
+
var _utils = require("../utils");
|
|
17
|
+
|
|
18
|
+
var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
|
|
19
|
+
|
|
20
|
+
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
const PageButton = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
10
31
|
label,
|
|
11
32
|
onPress,
|
|
12
33
|
href,
|
|
@@ -15,18 +36,18 @@ function PageButton({
|
|
|
15
36
|
variant,
|
|
16
37
|
tokens,
|
|
17
38
|
...props
|
|
18
|
-
}) {
|
|
19
|
-
const getTokens = useThemeTokensCallback('PaginationPageButton', tokens, variant);
|
|
20
|
-
const getCopy =
|
|
21
|
-
dictionary,
|
|
39
|
+
}, ref) => {
|
|
40
|
+
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('PaginationPageButton', tokens, variant);
|
|
41
|
+
const getCopy = (0, _useCopy.default)({
|
|
42
|
+
dictionary: _dictionary.default,
|
|
22
43
|
copy
|
|
23
44
|
});
|
|
24
45
|
|
|
25
|
-
const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
|
|
46
|
+
const getButtonTokens = buttonState => (0, _utils.selectTokens)('Button', getTokens(buttonState));
|
|
26
47
|
|
|
27
48
|
const activeProps = isActive ? {
|
|
28
49
|
selected: true,
|
|
29
|
-
...a11yProps.nonFocusableProps,
|
|
50
|
+
..._utils.a11yProps.nonFocusableProps,
|
|
30
51
|
// a brute fix for the focus state being stuck on an active item since it becomes non-focusable
|
|
31
52
|
// (see https://github.com/telus/universal-design-system/pull/577#issuecomment-931344107)
|
|
32
53
|
key: 'active-item'
|
|
@@ -34,10 +55,12 @@ function PageButton({
|
|
|
34
55
|
const accessibilityRole = href !== undefined ? 'link' : 'button';
|
|
35
56
|
const activeLabel = isActive ? ` ${getCopy('currentLabel')}` : '';
|
|
36
57
|
const accessibilityLabel = `${getCopy('goToLabel')} ${label}${activeLabel}`;
|
|
58
|
+
|
|
37
59
|
const {
|
|
38
60
|
hrefAttrs,
|
|
39
61
|
rest
|
|
40
|
-
} = hrefAttrsProp.bundle(props);
|
|
62
|
+
} = _utils.hrefAttrsProp.bundle(props);
|
|
63
|
+
|
|
41
64
|
const buttonProps = {
|
|
42
65
|
accessibilityRole,
|
|
43
66
|
accessibilityLabel,
|
|
@@ -46,17 +69,27 @@ function PageButton({
|
|
|
46
69
|
hrefAttrs,
|
|
47
70
|
...rest
|
|
48
71
|
};
|
|
49
|
-
return /*#__PURE__*/
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
72
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
|
|
73
|
+
ref: ref,
|
|
74
|
+
...buttonProps,
|
|
75
|
+
tokens: getButtonTokens,
|
|
76
|
+
...activeProps,
|
|
77
|
+
children: label
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
PageButton.displayName = 'PageButton';
|
|
54
81
|
PageButton.propTypes = {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
...linkProps.types
|
|
82
|
+
// Spreading any props into a secondary component accessed like Pagination.PageButton
|
|
83
|
+
// crashes a Docusaurus props table, but only in production, not in development
|
|
84
|
+
onPress: _propTypes.default.func,
|
|
85
|
+
href: _propTypes.default.string,
|
|
86
|
+
// If the above is fixed, the above can be replaced with this which includes full a11y etc:
|
|
87
|
+
// ...linkProps.types,
|
|
88
|
+
label: _propTypes.default.string,
|
|
89
|
+
isActive: _propTypes.default.bool,
|
|
90
|
+
copy: _utils.copyPropTypes,
|
|
91
|
+
variant: _utils.variantProp.propType,
|
|
92
|
+
tokens: (0, _utils.getTokensPropType)('PaginationPageButton')
|
|
61
93
|
};
|
|
62
|
-
|
|
94
|
+
var _default = PageButton;
|
|
95
|
+
exports.default = _default;
|
|
@@ -1,12 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
11
|
+
|
|
12
|
+
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
13
|
+
|
|
14
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
15
|
+
|
|
16
|
+
var _utils = require("../utils");
|
|
17
|
+
|
|
18
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
+
|
|
20
|
+
var _ViewportProvider = require("../ViewportProvider");
|
|
21
|
+
|
|
22
|
+
var _Box = _interopRequireDefault(require("../Box"));
|
|
23
|
+
|
|
24
|
+
var _usePagination = _interopRequireDefault(require("./usePagination"));
|
|
25
|
+
|
|
26
|
+
var _PageButton = _interopRequireDefault(require("./PageButton"));
|
|
27
|
+
|
|
28
|
+
var _SideButton = _interopRequireDefault(require("./SideButton"));
|
|
29
|
+
|
|
30
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
+
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
+
|
|
34
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
+
|
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
37
|
|
|
11
38
|
const selectTextStyles = ({
|
|
12
39
|
color,
|
|
@@ -14,7 +41,7 @@ const selectTextStyles = ({
|
|
|
14
41
|
fontSize,
|
|
15
42
|
fontWeight,
|
|
16
43
|
lineHeight
|
|
17
|
-
}) => applyTextStyles({
|
|
44
|
+
}) => (0, _ThemeProvider.applyTextStyles)({
|
|
18
45
|
color,
|
|
19
46
|
fontName,
|
|
20
47
|
fontSize,
|
|
@@ -22,23 +49,25 @@ const selectTextStyles = ({
|
|
|
22
49
|
lineHeight
|
|
23
50
|
});
|
|
24
51
|
|
|
25
|
-
|
|
52
|
+
const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
26
53
|
children,
|
|
27
54
|
copy = 'en',
|
|
28
55
|
variant,
|
|
29
56
|
tokens,
|
|
30
57
|
sideButtonVariant,
|
|
31
58
|
sideButtonTokens
|
|
32
|
-
}) {
|
|
33
|
-
const viewport = useViewport();
|
|
59
|
+
}, ref) => {
|
|
60
|
+
const viewport = (0, _ViewportProvider.useViewport)();
|
|
34
61
|
const {
|
|
35
62
|
truncateAbove,
|
|
36
63
|
gap,
|
|
37
64
|
...themeTokens
|
|
38
|
-
} = useThemeTokens('Pagination', tokens, variant, {
|
|
65
|
+
} = (0, _ThemeProvider.useThemeTokens)('Pagination', tokens, variant, {
|
|
39
66
|
viewport
|
|
40
67
|
});
|
|
41
|
-
|
|
68
|
+
|
|
69
|
+
const items = _react.default.Children.toArray(children);
|
|
70
|
+
|
|
42
71
|
const {
|
|
43
72
|
isItemActive,
|
|
44
73
|
getItemProps,
|
|
@@ -48,7 +77,7 @@ function Pagination({
|
|
|
48
77
|
previousItemProps,
|
|
49
78
|
shouldRenderButton,
|
|
50
79
|
shouldRenderEllipsis
|
|
51
|
-
} =
|
|
80
|
+
} = (0, _usePagination.default)({
|
|
52
81
|
items,
|
|
53
82
|
truncateAbove
|
|
54
83
|
});
|
|
@@ -60,59 +89,65 @@ function Pagination({
|
|
|
60
89
|
// concatenate all items to easily wrap them in identical spacing components
|
|
61
90
|
|
|
62
91
|
|
|
63
|
-
const buttons = [showPrevious && /*#__PURE__*/
|
|
92
|
+
const buttons = [showPrevious && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SideButton.default, { ...previousItemProps,
|
|
64
93
|
direction: "previous",
|
|
65
94
|
copy: copy,
|
|
66
95
|
variant: sideButtonVariant,
|
|
67
96
|
tokens: sideButtonTokens
|
|
68
|
-
})
|
|
97
|
+
}), ...items.map((child, itemIndex) => {
|
|
69
98
|
const buttonLabel = `${itemIndex + 1}`;
|
|
70
99
|
const itemProps = getItemProps(itemIndex);
|
|
71
100
|
|
|
72
101
|
if (shouldRenderButton(itemIndex)) {
|
|
73
|
-
return /*#__PURE__*/
|
|
102
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PageButton.default, { ...itemProps,
|
|
74
103
|
label: buttonLabel,
|
|
75
104
|
copy: copy,
|
|
76
105
|
isActive: isItemActive(itemIndex)
|
|
77
|
-
})
|
|
106
|
+
});
|
|
78
107
|
}
|
|
79
108
|
|
|
80
109
|
if (shouldRenderEllipsis(itemIndex)) {
|
|
81
|
-
return /*#__PURE__*/
|
|
82
|
-
style: ellipsisTextStyles
|
|
83
|
-
|
|
110
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
111
|
+
style: ellipsisTextStyles,
|
|
112
|
+
children: "..."
|
|
113
|
+
});
|
|
84
114
|
}
|
|
85
115
|
|
|
86
116
|
return null;
|
|
87
|
-
}), showNext && /*#__PURE__*/
|
|
117
|
+
}), showNext && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SideButton.default, { ...nextItemProps,
|
|
88
118
|
direction: "next",
|
|
89
119
|
copy: copy,
|
|
90
120
|
variant: sideButtonVariant,
|
|
91
121
|
tokens: sideButtonTokens
|
|
92
|
-
})
|
|
93
|
-
return /*#__PURE__*/
|
|
94
|
-
style: staticStyles.container
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
122
|
+
})];
|
|
123
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
124
|
+
style: staticStyles.container,
|
|
125
|
+
ref: ref,
|
|
126
|
+
children: buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
|
|
127
|
+
.map((element, index) => [element, `page-${index + 1}`]).filter(([element]) => element !== null).map(([element, key]) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
128
|
+
right: gap,
|
|
129
|
+
children: element
|
|
130
|
+
}, key))
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
_PageButton.default.displayName = 'PageButton';
|
|
134
|
+
Pagination.PageButton = _PageButton.default;
|
|
103
135
|
Pagination.propTypes = {
|
|
104
|
-
children: componentPropType('PageButton'),
|
|
105
|
-
copy: copyPropTypes,
|
|
106
|
-
variant: variantProp.propType,
|
|
107
|
-
tokens: getTokensPropType('Pagination'),
|
|
108
|
-
sideButtonVariant: variantProp.propType,
|
|
109
|
-
sideButtonTokens: getTokensPropType('PaginationSideButton')
|
|
136
|
+
children: (0, _utils.componentPropType)('PageButton'),
|
|
137
|
+
copy: _utils.copyPropTypes,
|
|
138
|
+
variant: _utils.variantProp.propType,
|
|
139
|
+
tokens: (0, _utils.getTokensPropType)('Pagination'),
|
|
140
|
+
sideButtonVariant: _utils.variantProp.propType,
|
|
141
|
+
sideButtonTokens: (0, _utils.getTokensPropType)('PaginationSideButton')
|
|
110
142
|
};
|
|
111
|
-
|
|
143
|
+
|
|
144
|
+
const staticStyles = _StyleSheet.default.create({
|
|
112
145
|
container: {
|
|
113
146
|
flexDirection: 'row',
|
|
114
147
|
flexWrap: 'wrap',
|
|
115
148
|
alignItems: 'center'
|
|
116
149
|
}
|
|
117
150
|
});
|
|
118
|
-
|
|
151
|
+
|
|
152
|
+
var _default = Pagination;
|
|
153
|
+
exports.default = _default;
|