@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
package/lib/SideNav/Item.js
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
|
|
16
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
17
|
+
|
|
18
|
+
var _ItemContent = _interopRequireDefault(require("./ItemContent"));
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
7
27
|
|
|
8
28
|
function selectItemStyles({
|
|
9
29
|
backgroundColor,
|
|
@@ -27,7 +47,7 @@ function selectItemStyles({
|
|
|
27
47
|
paddingTop,
|
|
28
48
|
paddingBottom,
|
|
29
49
|
justifyContent,
|
|
30
|
-
...verticalAlignRow(verticalAlign)
|
|
50
|
+
...(0, _ThemeProvider.verticalAlignRow)(verticalAlign)
|
|
31
51
|
};
|
|
32
52
|
}
|
|
33
53
|
/**
|
|
@@ -37,7 +57,7 @@ function selectItemStyles({
|
|
|
37
57
|
*/
|
|
38
58
|
|
|
39
59
|
|
|
40
|
-
const Item = ({
|
|
60
|
+
const Item = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
41
61
|
children,
|
|
42
62
|
itemId,
|
|
43
63
|
groupId,
|
|
@@ -50,21 +70,23 @@ const Item = ({
|
|
|
50
70
|
accessibilityRole = 'link',
|
|
51
71
|
testID,
|
|
52
72
|
...props
|
|
53
|
-
}) => {
|
|
73
|
+
}, ref) => {
|
|
54
74
|
const handlePress = () => onPress(itemId, groupId);
|
|
55
75
|
|
|
56
76
|
const {
|
|
57
77
|
hrefAttrs,
|
|
58
78
|
rest
|
|
59
|
-
} = hrefAttrsProp.bundle(props);
|
|
60
|
-
|
|
79
|
+
} = _utils.hrefAttrsProp.bundle(props);
|
|
80
|
+
|
|
81
|
+
const linkPropSet = _utils.linkProps.select({
|
|
61
82
|
accessibilityRole,
|
|
62
83
|
href,
|
|
63
84
|
onPress: handlePress,
|
|
64
|
-
|
|
85
|
+
hrefAttrs,
|
|
65
86
|
...rest
|
|
66
87
|
});
|
|
67
|
-
|
|
88
|
+
|
|
89
|
+
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', tokens, variant);
|
|
68
90
|
|
|
69
91
|
const getAppearanceState = ({
|
|
70
92
|
hovered
|
|
@@ -76,60 +98,64 @@ const Item = ({
|
|
|
76
98
|
|
|
77
99
|
const getPressableStyle = pressableState => selectItemStyles(getTokens(getAppearanceState(pressableState)));
|
|
78
100
|
|
|
79
|
-
return /*#__PURE__*/
|
|
80
|
-
|
|
81
|
-
|
|
101
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
|
|
102
|
+
ref: ref,
|
|
103
|
+
style: getPressableStyle,
|
|
104
|
+
...linkPropSet,
|
|
82
105
|
accessibilityState: {
|
|
83
106
|
selected: isActive
|
|
84
107
|
},
|
|
85
|
-
testID: testID
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
108
|
+
testID: testID,
|
|
109
|
+
children: pressableState => {
|
|
110
|
+
const themeTokens = getTokens(getAppearanceState(pressableState));
|
|
111
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
|
|
112
|
+
tokens: themeTokens,
|
|
113
|
+
children: children
|
|
114
|
+
});
|
|
115
|
+
}
|
|
91
116
|
});
|
|
92
|
-
};
|
|
93
|
-
|
|
117
|
+
});
|
|
118
|
+
Item.displayName = 'Item';
|
|
94
119
|
Item.propTypes = {
|
|
95
120
|
/**
|
|
96
121
|
* Text content of the `Item`.
|
|
97
122
|
*/
|
|
98
|
-
children:
|
|
123
|
+
children: _propTypes.default.node.isRequired,
|
|
99
124
|
|
|
100
125
|
/**
|
|
101
126
|
* @ignore
|
|
102
127
|
* Set internally in `SideNav` render function - used to keep track of active item.
|
|
103
128
|
*/
|
|
104
|
-
itemId:
|
|
129
|
+
itemId: _propTypes.default.string,
|
|
105
130
|
|
|
106
131
|
/**
|
|
107
132
|
* @ignore
|
|
108
133
|
* Set internally in `SideNav` render function - used to keep track of expanded items groups.
|
|
109
134
|
*/
|
|
110
|
-
groupId:
|
|
111
|
-
onPress:
|
|
112
|
-
href:
|
|
135
|
+
groupId: _propTypes.default.string,
|
|
136
|
+
onPress: _propTypes.default.func,
|
|
137
|
+
href: _propTypes.default.string,
|
|
113
138
|
|
|
114
139
|
/**
|
|
115
140
|
* On Web if href is passed, React Native Web maps this object's props to
|
|
116
|
-
* `rel`, `target` and
|
|
141
|
+
* `rel`, `target` and `download` attrs.
|
|
117
142
|
*/
|
|
118
|
-
hrefAttrs:
|
|
143
|
+
hrefAttrs: _propTypes.default.shape(_utils.hrefAttrsProp.types),
|
|
119
144
|
|
|
120
145
|
/**
|
|
121
146
|
* @ignore
|
|
122
147
|
* Set internally in `SideNav` render function.
|
|
123
148
|
*/
|
|
124
|
-
isActive:
|
|
149
|
+
isActive: _propTypes.default.bool,
|
|
125
150
|
|
|
126
151
|
/**
|
|
127
152
|
* @ignore
|
|
128
153
|
* Set internally in `SideNav.ItemsGroup` render function. Used to mark expanded `ItemsGroup` parent.
|
|
129
154
|
*/
|
|
130
|
-
isExpanded:
|
|
131
|
-
tokens: getTokensPropType('SideNavItem'),
|
|
132
|
-
variant: variantProp.propType,
|
|
133
|
-
...a11yProps.types
|
|
155
|
+
isExpanded: _propTypes.default.bool,
|
|
156
|
+
tokens: (0, _utils.getTokensPropType)('SideNavItem'),
|
|
157
|
+
variant: _utils.variantProp.propType,
|
|
158
|
+
..._utils.a11yProps.types
|
|
134
159
|
};
|
|
135
|
-
|
|
160
|
+
var _default = Item;
|
|
161
|
+
exports.default = _default;
|
|
@@ -1,9 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.selectAccentStyles = selectAccentStyles;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
|
|
13
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
14
|
+
|
|
15
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
16
|
+
|
|
17
|
+
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
18
|
+
|
|
19
|
+
var _utils = require("../utils");
|
|
20
|
+
|
|
21
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
+
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
|
|
25
|
+
function selectAccentStyles(tokens) {
|
|
7
26
|
return {
|
|
8
27
|
left: tokens.accentOffset,
|
|
9
28
|
top: tokens.accentPadding,
|
|
@@ -17,22 +36,29 @@ export function selectAccentStyles(tokens) {
|
|
|
17
36
|
* Content inside an item or control in a SideNav, themed by the SideNavItem theme
|
|
18
37
|
*/
|
|
19
38
|
|
|
39
|
+
|
|
20
40
|
const ItemContent = ({
|
|
21
41
|
children,
|
|
22
42
|
tokens
|
|
23
|
-
}) => /*#__PURE__*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}))
|
|
43
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
44
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
45
|
+
tokens: (0, _utils.selectTokens)('Typography', tokens),
|
|
46
|
+
children: children
|
|
47
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
48
|
+
style: [staticStyles.absolute, selectAccentStyles(tokens)]
|
|
49
|
+
})]
|
|
50
|
+
});
|
|
28
51
|
|
|
29
52
|
ItemContent.propTypes = {
|
|
30
|
-
tokens: getTokensPropType('SideNavItem'),
|
|
31
|
-
children:
|
|
53
|
+
tokens: (0, _utils.getTokensPropType)('SideNavItem'),
|
|
54
|
+
children: _propTypes.default.node
|
|
32
55
|
};
|
|
33
|
-
|
|
56
|
+
|
|
57
|
+
const staticStyles = _StyleSheet.default.create({
|
|
34
58
|
absolute: {
|
|
35
59
|
position: 'absolute'
|
|
36
60
|
}
|
|
37
61
|
});
|
|
38
|
-
|
|
62
|
+
|
|
63
|
+
var _default = ItemContent;
|
|
64
|
+
exports.default = _default;
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 _ItemContent = _interopRequireDefault(require("./ItemContent"));
|
|
13
|
+
|
|
14
|
+
var _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
|
|
15
|
+
|
|
16
|
+
var _utils = require("../utils");
|
|
17
|
+
|
|
18
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
7
28
|
/**
|
|
8
29
|
Expandable content areas for use within `SideNav`.
|
|
9
30
|
|
|
@@ -14,8 +35,7 @@ import { useThemeTokensCallback } from '../ThemeProvider';
|
|
|
14
35
|
## Usage Criteria
|
|
15
36
|
- Use `SideNav.ItemsGroup` with large pages that have multiple sections
|
|
16
37
|
*/
|
|
17
|
-
|
|
18
|
-
const ItemsGroup = ({
|
|
38
|
+
const ItemsGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
19
39
|
children,
|
|
20
40
|
label,
|
|
21
41
|
openGroups,
|
|
@@ -25,7 +45,7 @@ const ItemsGroup = ({
|
|
|
25
45
|
tokens,
|
|
26
46
|
itemTokens,
|
|
27
47
|
onToggle
|
|
28
|
-
}) => {
|
|
48
|
+
}, ref) => {
|
|
29
49
|
// A SideNav control uses the same style and theme as SideNavItem, with a 'parent' variant,
|
|
30
50
|
// plus control-specific tokens from the SideNavItemsGroup theme (e.g. open/close icon, etc).
|
|
31
51
|
const getAppearance = appearance => ({ ...variant,
|
|
@@ -37,13 +57,13 @@ const ItemsGroup = ({
|
|
|
37
57
|
type: 'parent'
|
|
38
58
|
});
|
|
39
59
|
|
|
40
|
-
const getGroupTokens = useThemeTokensCallback('SideNavItemsGroup', tokens, variant);
|
|
60
|
+
const getGroupTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItemsGroup', tokens, variant);
|
|
41
61
|
|
|
42
|
-
const getPanelTokens = appearance => selectTokens('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
|
|
62
|
+
const getPanelTokens = appearance => (0, _utils.selectTokens)('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
|
|
43
63
|
|
|
44
|
-
const getItemTokens = useThemeTokensCallback('SideNavItem', itemTokens, variant);
|
|
64
|
+
const getItemTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', itemTokens, variant);
|
|
45
65
|
|
|
46
|
-
const getControlTokens = appearance => selectTokens('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
|
|
66
|
+
const getControlTokens = appearance => (0, _utils.selectTokens)('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
|
|
47
67
|
// main style from SideNavItem
|
|
48
68
|
...getGroupTokens(getAppearance(appearance)) // control-specific tokens like icon etc
|
|
49
69
|
|
|
@@ -51,12 +71,14 @@ const ItemsGroup = ({
|
|
|
51
71
|
|
|
52
72
|
const controlContent = controlState => {
|
|
53
73
|
const currentItemTokens = getItemTokens(getItemAppearance(controlState));
|
|
54
|
-
return /*#__PURE__*/
|
|
55
|
-
tokens: currentItemTokens
|
|
56
|
-
|
|
74
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
|
|
75
|
+
tokens: currentItemTokens,
|
|
76
|
+
children: label
|
|
77
|
+
});
|
|
57
78
|
};
|
|
58
79
|
|
|
59
|
-
return /*#__PURE__*/
|
|
80
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default.Panel, {
|
|
81
|
+
ref: ref,
|
|
60
82
|
openIds: openGroups,
|
|
61
83
|
panelId: groupId,
|
|
62
84
|
onToggle: onToggle,
|
|
@@ -66,46 +88,48 @@ const ItemsGroup = ({
|
|
|
66
88
|
accessibilityState: {
|
|
67
89
|
active: isActive
|
|
68
90
|
} // ExpandCollapse.Panel handles expanded state
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
};
|
|
72
|
-
|
|
91
|
+
,
|
|
92
|
+
children: children
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
ItemsGroup.displayName = 'ItemsGroup';
|
|
73
96
|
ItemsGroup.propTypes = {
|
|
74
97
|
/**
|
|
75
98
|
* Specifies the links contained within. It may only contain `SideNav.Item`.
|
|
76
99
|
*/
|
|
77
|
-
children: componentPropType('Item'),
|
|
100
|
+
children: (0, _utils.componentPropType)('Item'),
|
|
78
101
|
|
|
79
102
|
/**
|
|
80
103
|
* Text content of the group's parent `SideNav.Item`.
|
|
81
104
|
*/
|
|
82
|
-
label:
|
|
105
|
+
label: _propTypes.default.string.isRequired,
|
|
83
106
|
|
|
84
107
|
/**
|
|
85
108
|
* @ignore
|
|
86
109
|
* Set internally in `SideNav` render function - used to keep track of expanded items groups.
|
|
87
110
|
*/
|
|
88
|
-
groupId:
|
|
111
|
+
groupId: _propTypes.default.string,
|
|
89
112
|
|
|
90
113
|
/**
|
|
91
114
|
* @ignore
|
|
92
115
|
* Set internally in `SideNav` render function. Called when the group is expanded/collapsed.
|
|
93
116
|
*/
|
|
94
|
-
onToggle:
|
|
117
|
+
onToggle: _propTypes.default.func,
|
|
95
118
|
|
|
96
119
|
/**
|
|
97
120
|
* @ignore
|
|
98
121
|
* Set internally in `SideNav` render function. Contains `groupId`s of currently open groups.
|
|
99
122
|
*/
|
|
100
|
-
openGroups:
|
|
123
|
+
openGroups: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])),
|
|
101
124
|
|
|
102
125
|
/**
|
|
103
126
|
* @ignore
|
|
104
127
|
* Set internally in `SideNav` render function. Used to mark group containing the currently active `SideNav.Item`.
|
|
105
128
|
*/
|
|
106
|
-
isActive:
|
|
107
|
-
variant: variantProp.propType,
|
|
108
|
-
tokens: getTokensPropType('SideNavItemsGroup'),
|
|
109
|
-
itemTokens: getTokensPropType('SideNavItem')
|
|
129
|
+
isActive: _propTypes.default.bool,
|
|
130
|
+
variant: _utils.variantProp.propType,
|
|
131
|
+
tokens: (0, _utils.getTokensPropType)('SideNavItemsGroup'),
|
|
132
|
+
itemTokens: (0, _utils.getTokensPropType)('SideNavItem')
|
|
110
133
|
};
|
|
111
|
-
|
|
134
|
+
var _default = ItemsGroup;
|
|
135
|
+
exports.default = _default;
|
package/lib/SideNav/SideNav.js
CHANGED
|
@@ -1,10 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
|
|
13
|
+
|
|
14
|
+
var _Item = _interopRequireDefault(require("./Item"));
|
|
15
|
+
|
|
16
|
+
var _ItemsGroup = _interopRequireDefault(require("./ItemsGroup"));
|
|
17
|
+
|
|
18
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
+
|
|
20
|
+
var _utils = require("../utils");
|
|
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; }
|
|
8
29
|
|
|
9
30
|
function selectBorderStyles(tokens) {
|
|
10
31
|
return {
|
|
@@ -20,16 +41,16 @@ function selectBorderStyles(tokens) {
|
|
|
20
41
|
*/
|
|
21
42
|
|
|
22
43
|
|
|
23
|
-
const SideNav = ({
|
|
44
|
+
const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
24
45
|
children,
|
|
25
46
|
variant = {},
|
|
26
47
|
tokens,
|
|
27
48
|
accordion = true,
|
|
28
49
|
itemTokens,
|
|
29
50
|
groupTokens
|
|
30
|
-
}) => {
|
|
31
|
-
const themeTokens = useThemeTokens('SideNav', tokens, variant);
|
|
32
|
-
const [active, setActive] = useState({
|
|
51
|
+
}, ref) => {
|
|
52
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('SideNav', tokens, variant);
|
|
53
|
+
const [active, setActive] = (0, _react.useState)({
|
|
33
54
|
groupId: undefined,
|
|
34
55
|
itemId: undefined
|
|
35
56
|
});
|
|
@@ -45,78 +66,84 @@ const SideNav = ({
|
|
|
45
66
|
return active.groupId === groupId && active.itemId === itemId;
|
|
46
67
|
};
|
|
47
68
|
|
|
48
|
-
return /*#__PURE__*/
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default, {
|
|
70
|
+
ref: ref,
|
|
49
71
|
maxOpen: accordion ? 1 : null,
|
|
50
|
-
style: selectBorderStyles(themeTokens)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const {
|
|
57
|
-
itemId = `item-${index}`,
|
|
58
|
-
onPress
|
|
59
|
-
} = item.props;
|
|
60
|
-
|
|
61
|
-
const handlePress = (...args) => {
|
|
62
|
-
onItemPress(...args);
|
|
63
|
-
if (onPress) onPress(...args);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
return /*#__PURE__*/React.createElement(Item, Object.assign({}, item.props, {
|
|
67
|
-
key: itemId,
|
|
68
|
-
itemId: itemId,
|
|
69
|
-
groupId: groupId,
|
|
70
|
-
variant: groupId ? { ...variant,
|
|
71
|
-
type: 'child'
|
|
72
|
-
} : variant,
|
|
73
|
-
tokens: itemTokens,
|
|
74
|
-
isActive: isItemActive(itemId, groupId),
|
|
75
|
-
onPress: handlePress
|
|
76
|
-
}));
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
return React.Children.map(children, (child, index) => {
|
|
80
|
-
// iterate over children and identify them internally to later reference expanded groups and active items
|
|
81
|
-
if (child.type === Item) return renderItem(child, index);
|
|
82
|
-
|
|
83
|
-
if (child.type === ItemsGroup) {
|
|
72
|
+
style: selectBorderStyles(themeTokens),
|
|
73
|
+
children: ({
|
|
74
|
+
openIds,
|
|
75
|
+
onToggle
|
|
76
|
+
}) => {
|
|
77
|
+
const renderItem = (item, index, groupId) => {
|
|
84
78
|
const {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
itemId = `item-${index}`,
|
|
80
|
+
onPress
|
|
81
|
+
} = item.props;
|
|
82
|
+
|
|
83
|
+
const handlePress = (...args) => {
|
|
84
|
+
onItemPress(...args);
|
|
85
|
+
if (onPress) onPress(...args);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
return /*#__PURE__*/(0, _react.createElement)(_Item.default, { ...item.props,
|
|
89
|
+
key: itemId,
|
|
90
|
+
itemId: itemId,
|
|
90
91
|
groupId: groupId,
|
|
91
|
-
variant: variant,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
isActive:
|
|
96
|
-
|
|
97
|
-
})
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
92
|
+
variant: groupId ? { ...variant,
|
|
93
|
+
type: 'child'
|
|
94
|
+
} : variant,
|
|
95
|
+
tokens: itemTokens,
|
|
96
|
+
isActive: isItemActive(itemId, groupId),
|
|
97
|
+
onPress: handlePress
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
return _react.default.Children.map(children, (child, index) => {
|
|
102
|
+
// iterate over children and identify them internally to later reference expanded groups and active items
|
|
103
|
+
if (child.type === _Item.default) return renderItem(child, index);
|
|
104
|
+
|
|
105
|
+
if (child.type === _ItemsGroup.default) {
|
|
106
|
+
const {
|
|
107
|
+
groupId = `group-${index}`
|
|
108
|
+
} = child.props;
|
|
109
|
+
const isGroupActive = active.itemId !== undefined && active.groupId === groupId;
|
|
104
110
|
|
|
111
|
+
const handleToggle = event => onToggle(groupId, event);
|
|
112
|
+
|
|
113
|
+
return /*#__PURE__*/(0, _react.createElement)(_ItemsGroup.default, { ...child.props,
|
|
114
|
+
key: groupId,
|
|
115
|
+
groupId: groupId,
|
|
116
|
+
variant: variant,
|
|
117
|
+
tokens: groupTokens,
|
|
118
|
+
itemTokens: itemTokens,
|
|
119
|
+
openGroups: openIds,
|
|
120
|
+
isActive: isGroupActive,
|
|
121
|
+
onToggle: handleToggle
|
|
122
|
+
}, _react.default.Children.map(child.props.children, (item, itemIndex) => renderItem(item, itemIndex, groupId)));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return null;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
SideNav.displayName = 'SideNav';
|
|
105
131
|
SideNav.propTypes = {
|
|
106
132
|
/**
|
|
107
133
|
* Specifies the structure and links of the `SideNav`. It may only consist of `SideNav.Item` and `SideNav.ItemsGroup`.
|
|
108
134
|
*/
|
|
109
|
-
children: componentPropType(['Item', 'ItemsGroup']),
|
|
135
|
+
children: (0, _utils.componentPropType)(['Item', 'ItemsGroup']),
|
|
110
136
|
|
|
111
137
|
/**
|
|
112
138
|
* Identifies if only one `SideNav.ItemsGroup` should be open at a time.
|
|
113
139
|
*/
|
|
114
|
-
accordion:
|
|
115
|
-
variant: variantProp.propType,
|
|
116
|
-
tokens: getTokensPropType('SideNav'),
|
|
117
|
-
itemTokens: getTokensPropType('SideNavItem'),
|
|
118
|
-
groupTokens: getTokensPropType('SideNavItemsGroup')
|
|
140
|
+
accordion: _propTypes.default.bool,
|
|
141
|
+
variant: _utils.variantProp.propType,
|
|
142
|
+
tokens: (0, _utils.getTokensPropType)('SideNav'),
|
|
143
|
+
itemTokens: (0, _utils.getTokensPropType)('SideNavItem'),
|
|
144
|
+
groupTokens: (0, _utils.getTokensPropType)('SideNavItemsGroup')
|
|
119
145
|
};
|
|
120
|
-
SideNav.Item =
|
|
121
|
-
SideNav.ItemsGroup =
|
|
122
|
-
|
|
146
|
+
SideNav.Item = _Item.default;
|
|
147
|
+
SideNav.ItemsGroup = _ItemsGroup.default;
|
|
148
|
+
var _default = SideNav;
|
|
149
|
+
exports.default = _default;
|
package/lib/SideNav/index.js
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _SideNav.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _SideNav = _interopRequireDefault(require("./SideNav"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|