@telus-uds/components-base 1.7.1 → 1.8.2
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/CHANGELOG.md +41 -2
- package/component-docs.json +944 -691
- package/lib/A11yInfoProvider/index.js +4 -3
- package/lib/A11yText/index.js +6 -5
- package/lib/ActivityIndicator/Spinner.js +7 -6
- package/lib/ActivityIndicator/Spinner.native.js +8 -6
- package/lib/ActivityIndicator/index.js +6 -5
- package/lib/ActivityIndicator/shared.js +1 -1
- package/lib/BaseProvider/index.js +13 -10
- package/lib/Box/Box.js +20 -19
- package/lib/Button/Button.js +7 -6
- package/lib/Button/ButtonBase.js +95 -77
- package/lib/Button/ButtonGroup.js +140 -65
- package/lib/Button/ButtonLink.js +9 -7
- package/lib/Button/index.js +4 -4
- package/lib/Button/propTypes.js +1 -1
- package/lib/Card/Card.js +8 -7
- package/lib/Card/CardBase.js +35 -31
- package/lib/Card/PressableCardBase.js +14 -12
- package/lib/Checkbox/Checkbox.js +96 -82
- package/lib/Checkbox/CheckboxGroup.js +30 -28
- package/lib/Checkbox/CheckboxInput.js +12 -10
- package/lib/Divider/Divider.js +8 -7
- package/lib/ExpandCollapse/Control.js +42 -36
- package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib/ExpandCollapse/Panel.js +29 -24
- package/lib/Feedback/Feedback.js +48 -35
- package/lib/Fieldset/Fieldset.js +22 -14
- package/lib/Fieldset/FieldsetContainer.js +16 -13
- package/lib/Fieldset/FieldsetContainer.native.js +11 -8
- package/lib/Fieldset/Legend.js +10 -7
- package/lib/Fieldset/Legend.native.js +10 -7
- package/lib/FlexGrid/Col/Col.js +17 -16
- package/lib/FlexGrid/FlexGrid.js +15 -14
- package/lib/FlexGrid/Row/Row.js +13 -12
- package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
- package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
- package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
- package/lib/HorizontalScroll/itemPositions.js +19 -13
- package/lib/Icon/Icon.js +10 -9
- package/lib/Icon/IconText.js +8 -7
- package/lib/Icon/index.js +5 -5
- package/lib/IconButton/IconButton.js +50 -42
- package/lib/InputLabel/InputLabel.js +44 -30
- package/lib/InputLabel/LabelContent.js +12 -9
- package/lib/InputLabel/LabelContent.native.js +9 -6
- package/lib/InputSupports/InputSupports.js +17 -9
- package/lib/InputSupports/useInputSupports.js +7 -6
- package/lib/Link/ChevronLink.js +9 -8
- package/lib/Link/InlinePressable.js +13 -10
- package/lib/Link/InlinePressable.native.js +20 -16
- package/lib/Link/Link.js +10 -9
- package/lib/Link/LinkBase.js +96 -78
- package/lib/Link/TextButton.js +9 -8
- package/lib/List/List.js +9 -7
- package/lib/List/ListItem.js +99 -74
- package/lib/Modal/Modal.js +72 -59
- package/lib/Notification/Notification.js +47 -34
- package/lib/Pagination/PageButton.js +11 -10
- package/lib/Pagination/Pagination.js +39 -28
- package/lib/Pagination/SideButton.js +21 -18
- package/lib/Pagination/usePagination.js +5 -4
- package/lib/Progress/Progress.js +23 -19
- package/lib/Progress/ProgressBar.js +23 -19
- package/lib/Progress/ProgressBarBackground.js +4 -3
- package/lib/Radio/Radio.js +79 -68
- package/lib/Radio/RadioButton.js +63 -53
- package/lib/Radio/RadioGroup.js +39 -30
- package/lib/Radio/RadioInput.js +12 -10
- package/lib/RadioCard/RadioCard.js +15 -14
- package/lib/RadioCard/RadioCardGroup.js +34 -25
- package/lib/Search/Search.js +52 -32
- package/lib/Select/Group.js +5 -4
- package/lib/Select/Group.native.js +4 -3
- package/lib/Select/Item.js +10 -7
- package/lib/Select/Item.native.js +1 -9
- package/lib/Select/Picker.js +16 -15
- package/lib/Select/Picker.native.js +49 -38
- package/lib/Select/Select.js +134 -113
- package/lib/SideNav/Item.js +39 -33
- package/lib/SideNav/ItemContent.js +15 -12
- package/lib/SideNav/ItemsGroup.js +13 -11
- package/lib/SideNav/SideNav.js +19 -16
- package/lib/Skeleton/Skeleton.js +106 -44
- package/lib/Skeleton/skeleton.constant.js +1 -1
- package/lib/Spacer/Spacer.js +6 -5
- package/lib/StackView/StackView.js +12 -11
- package/lib/StackView/StackWrap.js +2 -2
- package/lib/StackView/StackWrapBox.js +12 -11
- package/lib/StackView/StackWrapGap.js +11 -10
- package/lib/StackView/common.js +14 -11
- package/lib/StackView/getStackedContent.js +8 -7
- package/lib/StackView/index.js +1 -1
- package/lib/StepTracker/Step.js +122 -103
- package/lib/StepTracker/StepTracker.js +48 -38
- package/lib/Tabs/Tabs.js +29 -24
- package/lib/Tabs/TabsItem.js +79 -68
- package/lib/Tags/Tags.js +67 -61
- package/lib/TextInput/TextArea.js +26 -20
- package/lib/TextInput/TextInput.js +20 -15
- package/lib/TextInput/TextInputBase.js +74 -62
- package/lib/TextInput/index.js +4 -4
- package/lib/ThemeProvider/ThemeProvider.js +6 -5
- package/lib/ThemeProvider/index.js +5 -5
- package/lib/ThemeProvider/useSetTheme.js +6 -3
- package/lib/ThemeProvider/useThemeTokens.js +7 -2
- package/lib/ThemeProvider/utils/styles.js +48 -41
- package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
- package/lib/ToggleSwitch/ToggleSwitch.js +95 -72
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +42 -33
- package/lib/Tooltip/Backdrop.js +4 -3
- package/lib/Tooltip/Backdrop.native.js +5 -4
- package/lib/Tooltip/Tooltip.js +82 -66
- package/lib/Tooltip/getTooltipPosition.js +29 -18
- package/lib/TooltipButton/TooltipButton.js +28 -21
- package/lib/Typography/Typography.js +37 -33
- package/lib/ViewportProvider/ViewportProvider.js +4 -3
- package/lib/ViewportProvider/useViewportListener.js +6 -3
- package/lib/index.js +54 -54
- package/lib/utils/a11y/semantics.js +5 -2
- package/lib/utils/a11y/textSize.js +8 -6
- package/lib/utils/animation/useVerticalExpandAnimation.js +32 -18
- package/lib/utils/children.js +2 -1
- package/lib/utils/index.js +10 -10
- package/lib/utils/input.js +22 -17
- package/lib/utils/pressability.js +36 -22
- package/lib/utils/props/clickProps.js +2 -1
- package/lib/utils/props/getPropSelector.js +6 -3
- package/lib/utils/props/handlerProps.js +25 -19
- package/lib/utils/props/hrefAttrsProp.js +14 -11
- package/lib/utils/props/index.js +12 -12
- package/lib/utils/props/inputSupportsProps.js +21 -11
- package/lib/utils/props/linkProps.js +7 -6
- package/lib/utils/props/pressProps.js +1 -1
- package/lib/utils/props/tokens.js +27 -13
- package/lib/utils/ssr.js +6 -2
- package/lib/utils/useCopy.js +6 -4
- package/lib/utils/useHash.js +2 -1
- package/lib/utils/useResponsiveProp.js +1 -1
- package/lib/utils/useUniqueId.js +2 -1
- package/lib/utils/withLinkRouter.js +6 -5
- package/package.json +18 -12
- package/src/Button/ButtonGroup.jsx +106 -41
- package/src/Checkbox/Checkbox.jsx +7 -4
- package/src/Checkbox/CheckboxGroup.jsx +3 -3
- package/src/ExpandCollapse/Panel.jsx +3 -1
- package/src/Fieldset/Fieldset.jsx +6 -0
- package/src/InputLabel/InputLabel.jsx +17 -2
- package/src/InputSupports/InputSupports.jsx +9 -1
- package/src/Notification/Notification.jsx +1 -1
- package/src/Pagination/Pagination.jsx +3 -0
- package/src/Radio/Radio.jsx +5 -1
- package/src/Radio/RadioGroup.jsx +11 -5
- package/src/RadioCard/RadioCard.jsx +5 -1
- package/src/RadioCard/RadioCardGroup.jsx +6 -0
- package/src/Search/Search.jsx +12 -1
- package/src/Select/Item.native.jsx +0 -7
- package/src/Skeleton/Skeleton.jsx +56 -3
- package/src/ToggleSwitch/ToggleSwitch.jsx +6 -0
- package/src/ToggleSwitch/ToggleSwitchGroup.jsx +6 -0
- package/src/Tooltip/Tooltip.jsx +1 -1
- package/src/utils/animation/useVerticalExpandAnimation.js +25 -12
- package/src/utils/props/inputSupportsProps.js +6 -1
- package/src/utils/props/tokens.js +21 -19
- package/.storybook/main.js +0 -4
- package/.storybook/preview.js +0 -37
- package/.turbo/turbo-build.log +0 -8
- package/.turbo/turbo-lint.log +0 -13
- package/CHANGELOG.json +0 -250
- package/__fixtures__/Accessible.js +0 -35
- package/__fixtures__/Accessible.native.js +0 -35
- package/__fixtures__/Theme.jsx +0 -13
- package/__fixtures__/Viewport.jsx +0 -17
- package/__fixtures__/test-utils.js +0 -25
- package/__fixtures__/testTheme.js +0 -1830
- package/__tests__/A11yText/A11yText.test.jsx +0 -34
- package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
- package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -287
- package/__tests__/Box/Box.test.jsx +0 -111
- package/__tests__/Button/Button.test.jsx +0 -86
- package/__tests__/Button/ButtonBase.test.jsx +0 -82
- package/__tests__/Button/ButtonGroup.test.jsx +0 -347
- package/__tests__/Button/ButtonLink.test.jsx +0 -61
- package/__tests__/Card/Card.test.jsx +0 -63
- package/__tests__/Checkbox/Checkbox.test.jsx +0 -94
- package/__tests__/Checkbox/CheckboxGroup.test.jsx +0 -246
- package/__tests__/Divider/Divider.test.jsx +0 -91
- package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
- package/__tests__/Feedback/Feedback.test.jsx +0 -42
- package/__tests__/FlexGrid/Col.test.jsx +0 -256
- package/__tests__/FlexGrid/FlexGrid.test.jsx +0 -136
- package/__tests__/FlexGrid/Row.test.jsx +0 -273
- package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
- package/__tests__/Icon/Icon.test.jsx +0 -61
- package/__tests__/IconButton/IconButton.test.jsx +0 -52
- package/__tests__/InputSupports/InputSupports.test.jsx +0 -50
- package/__tests__/Link/Link.test.jsx +0 -63
- package/__tests__/Link/TextButton.test.jsx +0 -35
- package/__tests__/List/List.test.jsx +0 -60
- package/__tests__/Modal/Modal.test.jsx +0 -47
- package/__tests__/Notification/Notification.test.jsx +0 -20
- package/__tests__/Pagination/Pagination.test.jsx +0 -160
- package/__tests__/Progress/Progress.test.jsx +0 -79
- package/__tests__/Radio/Radio.test.jsx +0 -87
- package/__tests__/Radio/RadioGroup.test.jsx +0 -220
- package/__tests__/RadioCard/RadioCard.test.jsx +0 -87
- package/__tests__/RadioCard/RadioCardGroup.test.jsx +0 -246
- package/__tests__/Search/Search.test.jsx +0 -73
- package/__tests__/Select/Select.test.jsx +0 -94
- package/__tests__/SideNav/SideNav.test.jsx +0 -110
- package/__tests__/Skeleton/Skeleton.test.jsx +0 -61
- package/__tests__/Spacer/Spacer.test.jsx +0 -63
- package/__tests__/StackView/StackView.test.jsx +0 -216
- package/__tests__/StackView/StackWrap.test.jsx +0 -47
- package/__tests__/StackView/getStackedContent.test.jsx +0 -295
- package/__tests__/StepTracker/StepTracker.test.jsx +0 -94
- package/__tests__/Tabs/Tabs.test.jsx +0 -40
- package/__tests__/Tags/Tags.test.jsx +0 -327
- package/__tests__/TextInput/TextArea.test.jsx +0 -35
- package/__tests__/TextInput/TextInputBase.test.jsx +0 -125
- package/__tests__/ThemeProvider/ThemeProvider.test.jsx +0 -77
- package/__tests__/ThemeProvider/useThemeTokens.test.jsx +0 -514
- package/__tests__/ThemeProvider/utils/theme-tokens.test.js +0 -41
- package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
- package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
- package/__tests__/Tooltip/Tooltip.test.jsx +0 -65
- package/__tests__/Tooltip/getTooltipPosition.test.js +0 -79
- package/__tests__/Typography/typography.test.jsx +0 -90
- package/__tests__/utils/children.test.jsx +0 -128
- package/__tests__/utils/containUniqueFields.test.js +0 -25
- package/__tests__/utils/input.test.js +0 -375
- package/__tests__/utils/props.test.js +0 -36
- package/__tests__/utils/semantics.test.jsx +0 -34
- package/__tests__/utils/useCopy.test.js +0 -42
- package/__tests__/utils/useResponsiveProp.test.jsx +0 -202
- package/__tests__/utils/useSpacingScale.test.jsx +0 -273
- package/__tests__/utils/useUniqueId.test.js +0 -31
- package/babel.config.js +0 -35
- package/generate-component-docs.js +0 -72
- package/jest.config.js +0 -32
- package/lib-module/A11yInfoProvider/index.js +0 -62
- package/lib-module/A11yText/index.js +0 -55
- package/lib-module/ActivityIndicator/Spinner.js +0 -76
- package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
- package/lib-module/ActivityIndicator/index.js +0 -40
- package/lib-module/ActivityIndicator/shared.js +0 -12
- package/lib-module/BaseProvider/index.js +0 -26
- package/lib-module/Box/Box.js +0 -243
- package/lib-module/Box/index.js +0 -2
- package/lib-module/Button/Button.js +0 -25
- package/lib-module/Button/ButtonBase.js +0 -254
- package/lib-module/Button/ButtonGroup.js +0 -173
- package/lib-module/Button/ButtonLink.js +0 -39
- package/lib-module/Button/index.js +0 -4
- package/lib-module/Button/propTypes.js +0 -36
- package/lib-module/Card/Card.js +0 -83
- package/lib-module/Card/CardBase.js +0 -62
- package/lib-module/Card/PressableCardBase.js +0 -113
- package/lib-module/Card/index.js +0 -4
- package/lib-module/Checkbox/Checkbox.js +0 -332
- package/lib-module/Checkbox/CheckboxGroup.js +0 -231
- package/lib-module/Checkbox/CheckboxInput.js +0 -58
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
- package/lib-module/Checkbox/index.js +0 -3
- package/lib-module/Divider/Divider.js +0 -123
- package/lib-module/Divider/index.js +0 -2
- package/lib-module/ExpandCollapse/Accordion.js +0 -15
- package/lib-module/ExpandCollapse/Control.js +0 -130
- package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
- package/lib-module/ExpandCollapse/Panel.js +0 -158
- package/lib-module/ExpandCollapse/index.js +0 -7
- package/lib-module/Feedback/Feedback.js +0 -144
- package/lib-module/Feedback/index.js +0 -2
- package/lib-module/Fieldset/Fieldset.js +0 -145
- package/lib-module/Fieldset/FieldsetContainer.js +0 -29
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
- package/lib-module/Fieldset/Legend.js +0 -21
- package/lib-module/Fieldset/Legend.native.js +0 -28
- package/lib-module/Fieldset/cssReset.js +0 -14
- package/lib-module/Fieldset/index.js +0 -2
- package/lib-module/FlexGrid/Col/Col.js +0 -275
- package/lib-module/FlexGrid/Col/index.js +0 -2
- package/lib-module/FlexGrid/FlexGrid.js +0 -147
- package/lib-module/FlexGrid/Row/Row.js +0 -183
- package/lib-module/FlexGrid/Row/index.js +0 -2
- package/lib-module/FlexGrid/helpers/index.js +0 -18
- package/lib-module/FlexGrid/index.js +0 -2
- package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
- package/lib-module/HorizontalScroll/dictionary.js +0 -11
- package/lib-module/HorizontalScroll/index.js +0 -11
- package/lib-module/HorizontalScroll/itemPositions.js +0 -106
- package/lib-module/Icon/Icon.js +0 -61
- package/lib-module/Icon/IconText.js +0 -81
- package/lib-module/Icon/index.js +0 -4
- package/lib-module/IconButton/IconButton.js +0 -115
- package/lib-module/IconButton/index.js +0 -2
- package/lib-module/InputLabel/InputLabel.js +0 -134
- package/lib-module/InputLabel/LabelContent.js +0 -24
- package/lib-module/InputLabel/LabelContent.native.js +0 -16
- package/lib-module/InputLabel/index.js +0 -2
- package/lib-module/InputSupports/InputSupports.js +0 -88
- package/lib-module/InputSupports/index.js +0 -2
- package/lib-module/InputSupports/useInputSupports.js +0 -31
- package/lib-module/Link/ChevronLink.js +0 -51
- package/lib-module/Link/InlinePressable.js +0 -37
- package/lib-module/Link/InlinePressable.native.js +0 -85
- package/lib-module/Link/Link.js +0 -27
- package/lib-module/Link/LinkBase.js +0 -223
- package/lib-module/Link/TextButton.js +0 -34
- package/lib-module/Link/index.js +0 -5
- package/lib-module/List/List.js +0 -55
- package/lib-module/List/ListItem.js +0 -223
- package/lib-module/List/index.js +0 -5
- package/lib-module/Modal/Modal.js +0 -208
- package/lib-module/Modal/dictionary.js +0 -9
- package/lib-module/Modal/index.js +0 -2
- package/lib-module/Notification/Notification.js +0 -196
- package/lib-module/Notification/dictionary.js +0 -8
- package/lib-module/Notification/index.js +0 -2
- package/lib-module/Pagination/PageButton.js +0 -65
- package/lib-module/Pagination/Pagination.js +0 -140
- package/lib-module/Pagination/SideButton.js +0 -103
- package/lib-module/Pagination/dictionary.js +0 -18
- package/lib-module/Pagination/index.js +0 -2
- package/lib-module/Pagination/usePagination.js +0 -72
- package/lib-module/Progress/Progress.js +0 -85
- package/lib-module/Progress/ProgressBar.js +0 -134
- package/lib-module/Progress/ProgressBarBackground.js +0 -41
- package/lib-module/Progress/index.js +0 -4
- package/lib-module/Radio/Radio.js +0 -274
- package/lib-module/Radio/RadioButton.js +0 -128
- package/lib-module/Radio/RadioGroup.js +0 -234
- package/lib-module/Radio/RadioInput.js +0 -60
- package/lib-module/Radio/RadioInput.native.js +0 -6
- package/lib-module/Radio/index.js +0 -3
- package/lib-module/RadioCard/RadioCard.js +0 -218
- package/lib-module/RadioCard/RadioCardGroup.js +0 -241
- package/lib-module/RadioCard/index.js +0 -3
- package/lib-module/Search/Search.js +0 -241
- package/lib-module/Search/dictionary.js +0 -12
- package/lib-module/Search/index.js +0 -2
- package/lib-module/Select/Group.js +0 -20
- package/lib-module/Select/Group.native.js +0 -14
- package/lib-module/Select/Item.js +0 -17
- package/lib-module/Select/Item.native.js +0 -9
- package/lib-module/Select/Picker.js +0 -67
- package/lib-module/Select/Picker.native.js +0 -110
- package/lib-module/Select/Select.js +0 -316
- package/lib-module/Select/index.js +0 -6
- package/lib-module/SideNav/Item.js +0 -139
- package/lib-module/SideNav/ItemContent.js +0 -45
- package/lib-module/SideNav/ItemsGroup.js +0 -115
- package/lib-module/SideNav/SideNav.js +0 -133
- package/lib-module/SideNav/index.js +0 -1
- package/lib-module/Skeleton/Skeleton.js +0 -117
- package/lib-module/Skeleton/index.js +0 -2
- package/lib-module/Skeleton/skeleton.constant.js +0 -3
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
- package/lib-module/Spacer/Spacer.js +0 -97
- package/lib-module/Spacer/index.js +0 -2
- package/lib-module/StackView/StackView.js +0 -124
- package/lib-module/StackView/StackWrap.js +0 -48
- package/lib-module/StackView/StackWrap.native.js +0 -3
- package/lib-module/StackView/StackWrapBox.js +0 -114
- package/lib-module/StackView/StackWrapGap.js +0 -58
- package/lib-module/StackView/common.js +0 -32
- package/lib-module/StackView/getStackedContent.js +0 -123
- package/lib-module/StackView/index.js +0 -5
- package/lib-module/StepTracker/Step.js +0 -229
- package/lib-module/StepTracker/StepTracker.js +0 -175
- package/lib-module/StepTracker/dictionary.js +0 -10
- package/lib-module/StepTracker/index.js +0 -2
- package/lib-module/Tabs/Tabs.js +0 -113
- package/lib-module/Tabs/TabsItem.js +0 -215
- package/lib-module/Tabs/index.js +0 -2
- package/lib-module/Tags/Tags.js +0 -245
- package/lib-module/Tags/index.js +0 -2
- package/lib-module/TextInput/TextArea.js +0 -88
- package/lib-module/TextInput/TextInput.js +0 -68
- package/lib-module/TextInput/TextInputBase.js +0 -233
- package/lib-module/TextInput/index.js +0 -3
- package/lib-module/TextInput/propTypes.js +0 -37
- package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
- package/lib-module/ThemeProvider/index.js +0 -6
- package/lib-module/ThemeProvider/useSetTheme.js +0 -22
- package/lib-module/ThemeProvider/useTheme.js +0 -14
- package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
- package/lib-module/ThemeProvider/utils/index.js +0 -2
- package/lib-module/ThemeProvider/utils/styles.js +0 -174
- package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
- package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -227
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -211
- package/lib-module/ToggleSwitch/index.js +0 -3
- package/lib-module/Tooltip/Backdrop.js +0 -52
- package/lib-module/Tooltip/Backdrop.native.js +0 -43
- package/lib-module/Tooltip/Tooltip.js +0 -332
- package/lib-module/Tooltip/dictionary.js +0 -8
- package/lib-module/Tooltip/getTooltipPosition.js +0 -164
- package/lib-module/Tooltip/index.js +0 -2
- package/lib-module/TooltipButton/TooltipButton.js +0 -71
- package/lib-module/TooltipButton/index.js +0 -2
- package/lib-module/Typography/Typography.js +0 -120
- package/lib-module/Typography/index.js +0 -2
- package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
- package/lib-module/ViewportProvider/index.js +0 -3
- package/lib-module/ViewportProvider/useViewport.js +0 -3
- package/lib-module/ViewportProvider/useViewportListener.js +0 -43
- package/lib-module/index.js +0 -48
- package/lib-module/utils/a11y/index.js +0 -2
- package/lib-module/utils/a11y/semantics.js +0 -154
- package/lib-module/utils/a11y/textSize.js +0 -34
- package/lib-module/utils/animation/index.js +0 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -49
- package/lib-module/utils/children.js +0 -118
- package/lib-module/utils/containUniqueFields.js +0 -26
- package/lib-module/utils/index.js +0 -16
- package/lib-module/utils/info/index.js +0 -7
- package/lib-module/utils/info/platform/index.js +0 -11
- package/lib-module/utils/info/platform/platform.android.js +0 -1
- package/lib-module/utils/info/platform/platform.ios.js +0 -1
- package/lib-module/utils/info/platform/platform.js +0 -1
- package/lib-module/utils/info/platform/platform.native.js +0 -4
- package/lib-module/utils/info/versions.js +0 -5
- package/lib-module/utils/input.js +0 -180
- package/lib-module/utils/pressability.js +0 -97
- package/lib-module/utils/props/a11yProps.js +0 -140
- package/lib-module/utils/props/clickProps.js +0 -25
- package/lib-module/utils/props/componentPropType.js +0 -63
- package/lib-module/utils/props/copyPropTypes.js +0 -2
- package/lib-module/utils/props/getPropSelector.js +0 -6
- package/lib-module/utils/props/handlerProps.js +0 -59
- package/lib-module/utils/props/hrefAttrsProp.js +0 -30
- package/lib-module/utils/props/index.js +0 -19
- package/lib-module/utils/props/inputSupportsProps.js +0 -52
- package/lib-module/utils/props/linkProps.js +0 -43
- package/lib-module/utils/props/paddingProp.js +0 -9
- package/lib-module/utils/props/pressProps.js +0 -42
- package/lib-module/utils/props/rectProp.js +0 -9
- package/lib-module/utils/props/responsiveProps.js +0 -30
- package/lib-module/utils/props/selectSystemProps.js +0 -24
- package/lib-module/utils/props/spacingProps.js +0 -56
- package/lib-module/utils/props/textInputProps.js +0 -194
- package/lib-module/utils/props/textProps.js +0 -59
- package/lib-module/utils/props/tokens.js +0 -120
- package/lib-module/utils/props/variantProp.js +0 -18
- package/lib-module/utils/props/viewProps.js +0 -22
- package/lib-module/utils/ssr.js +0 -35
- package/lib-module/utils/useCopy.js +0 -42
- package/lib-module/utils/useHash.js +0 -44
- package/lib-module/utils/useHash.native.js +0 -7
- package/lib-module/utils/useResponsiveProp.js +0 -47
- package/lib-module/utils/useSpacingScale.js +0 -123
- package/lib-module/utils/useUniqueId.js +0 -12
- package/lib-module/utils/withLinkRouter.js +0 -82
- package/stories/A11yText/A11yText.stories.jsx +0 -71
- package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +0 -22
- package/stories/Box/Box.stories.jsx +0 -143
- package/stories/Button/Button.stories.jsx +0 -72
- package/stories/Button/ButtonGroup.stories.jsx +0 -81
- package/stories/Button/ButtonLink.stories.jsx +0 -30
- package/stories/Card/Card.stories.jsx +0 -62
- package/stories/Checkbox/Checkbox.stories.jsx +0 -94
- package/stories/Divider/Divider.stories.jsx +0 -68
- package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +0 -112
- package/stories/Feedback/Feedback.stories.jsx +0 -96
- package/stories/FlexGrid/01 FlexGrid.stories.jsx +0 -54
- package/stories/FlexGrid/02 Row.stories.jsx +0 -41
- package/stories/FlexGrid/03 Col.stories.jsx +0 -141
- package/stories/Icon/Icon.stories.jsx +0 -79
- package/stories/IconButton/IconButton.stories.jsx +0 -50
- package/stories/InputLabel/InputLabel.stories.jsx +0 -39
- package/stories/Link/ChevronLink.stories.jsx +0 -48
- package/stories/Link/Link.stories.jsx +0 -90
- package/stories/Link/TextButton.stories.jsx +0 -79
- package/stories/List/List.stories.jsx +0 -117
- package/stories/Modal/Modal.stories.jsx +0 -54
- package/stories/Notification/Notification.stories.jsx +0 -82
- package/stories/Pagination/Pagination.stories.jsx +0 -64
- package/stories/Progress/Progress.stories.jsx +0 -93
- package/stories/Radio/Radio.stories.jsx +0 -100
- package/stories/RadioCard/RadioCard.stories.jsx +0 -98
- package/stories/Search/Search.stories.jsx +0 -66
- package/stories/Select/Select.stories.jsx +0 -55
- package/stories/SideNav/SideNav.stories.jsx +0 -42
- package/stories/SideNav/SideNavItem.stories.jsx +0 -9
- package/stories/SideNav/SideNavItemsGroup.stories.jsx +0 -17
- package/stories/Skeleton/Skeleton.stories.jsx +0 -36
- package/stories/Spacer/Spacer.stories.jsx +0 -38
- package/stories/StackView/StackView.stories.jsx +0 -75
- package/stories/StackView/StackWrap.stories.jsx +0 -64
- package/stories/StepTracker/StepTracker.stories.jsx +0 -71
- package/stories/Tabs/Tabs.stories.jsx +0 -97
- package/stories/Tags/Tags.stories.jsx +0 -69
- package/stories/TextInput/TextArea.stories.jsx +0 -101
- package/stories/TextInput/TextInput.stories.jsx +0 -141
- package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +0 -64
- package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +0 -81
- package/stories/Tooltip/Tooltip.stories.jsx +0 -81
- package/stories/TooltipButton/TooltipButton.stories.jsx +0 -11
- package/stories/Typography/Typography.stories.jsx +0 -49
- package/stories/platform-supports.jsx +0 -32
- package/stories/platform-supports.native.jsx +0 -3
- package/stories/supports.jsx +0 -236
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import View from "react-native-web/dist/exports/View";
|
|
3
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
4
|
-
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import { useThemeTokens, applyTextStyles } from '../ThemeProvider';
|
|
7
|
-
import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps, wrapStringsInText } from '../utils';
|
|
8
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
12
|
-
|
|
13
|
-
const selectBulletStyles = ({
|
|
14
|
-
itemBulletWidth,
|
|
15
|
-
itemBulletHeight,
|
|
16
|
-
itemBulletColor
|
|
17
|
-
}) => ({
|
|
18
|
-
width: itemBulletWidth,
|
|
19
|
-
height: itemBulletHeight,
|
|
20
|
-
borderRadius: itemBulletHeight / 2,
|
|
21
|
-
backgroundColor: itemBulletColor
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
const selectBulletContainerStyles = ({
|
|
25
|
-
itemBulletContainerWidth,
|
|
26
|
-
itemBulletContainerAlign
|
|
27
|
-
}) => ({
|
|
28
|
-
width: itemBulletContainerWidth,
|
|
29
|
-
alignItems: itemBulletContainerAlign
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const selectItemIconTokens = ({
|
|
33
|
-
itemIconSize,
|
|
34
|
-
itemIconColor
|
|
35
|
-
}) => ({
|
|
36
|
-
size: itemIconSize,
|
|
37
|
-
color: itemIconColor
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const selectSideItemContainerStyles = ({
|
|
41
|
-
listGutter,
|
|
42
|
-
iconMarginTop
|
|
43
|
-
}) => ({
|
|
44
|
-
marginTop: iconMarginTop,
|
|
45
|
-
marginRight: listGutter
|
|
46
|
-
}); // Align bullets with the top line of text the same way icons are aligned
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const selectBulletPositioningStyles = ({
|
|
50
|
-
itemIconSize
|
|
51
|
-
}) => ({
|
|
52
|
-
width: itemIconSize,
|
|
53
|
-
height: itemIconSize
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
const selectItemStyles = ({
|
|
57
|
-
itemFontWeight,
|
|
58
|
-
itemFontSize,
|
|
59
|
-
itemLineHeight,
|
|
60
|
-
itemFontName
|
|
61
|
-
}) => applyTextStyles({
|
|
62
|
-
fontWeight: itemFontWeight,
|
|
63
|
-
fontSize: itemFontSize,
|
|
64
|
-
lineHeight: itemLineHeight,
|
|
65
|
-
fontName: itemFontName
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
const selectItemBlockStyles = ({
|
|
69
|
-
interItemMargin
|
|
70
|
-
}) => ({
|
|
71
|
-
marginBottom: interItemMargin
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
const selectDividerStyles = ({
|
|
75
|
-
dividerColor,
|
|
76
|
-
dividerSize,
|
|
77
|
-
interItemMarginWithDivider
|
|
78
|
-
}) => ({
|
|
79
|
-
borderBottomWidth: dividerSize,
|
|
80
|
-
borderColor: dividerColor,
|
|
81
|
-
marginBottom: interItemMarginWithDivider,
|
|
82
|
-
paddingBottom: interItemMarginWithDivider
|
|
83
|
-
});
|
|
84
|
-
/**
|
|
85
|
-
* ListItem is responsible for rendering icon or a bullet as side item
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const ListItem = /*#__PURE__*/forwardRef(({
|
|
90
|
-
tokens,
|
|
91
|
-
variant,
|
|
92
|
-
icon,
|
|
93
|
-
iconColor,
|
|
94
|
-
iconSize,
|
|
95
|
-
showDivider,
|
|
96
|
-
children,
|
|
97
|
-
isLastItem,
|
|
98
|
-
...rest
|
|
99
|
-
}, ref) => {
|
|
100
|
-
const themeTokens = useThemeTokens('List', tokens, variant);
|
|
101
|
-
const itemStyles = selectItemStyles(themeTokens);
|
|
102
|
-
const itemBlockStyles = selectItemBlockStyles(themeTokens);
|
|
103
|
-
const dividerStyles = selectDividerStyles(themeTokens);
|
|
104
|
-
const itemBulletContainerStyles = selectBulletContainerStyles(themeTokens);
|
|
105
|
-
const itemBulletStyles = selectBulletStyles(themeTokens);
|
|
106
|
-
const itemBulletPositioningStyles = selectBulletPositioningStyles(themeTokens);
|
|
107
|
-
const iconTokens = selectItemIconTokens(themeTokens);
|
|
108
|
-
const sideItemContainerStyles = selectSideItemContainerStyles(themeTokens);
|
|
109
|
-
const accessibilityRole = Platform.select({
|
|
110
|
-
web: 'listitem',
|
|
111
|
-
default: 'item'
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
const renderItem = () => /*#__PURE__*/_jsx(View, {
|
|
115
|
-
style: staticStyles.wrap,
|
|
116
|
-
children: wrapStringsInText(children, {
|
|
117
|
-
style: itemStyles
|
|
118
|
-
})
|
|
119
|
-
});
|
|
120
|
-
/**
|
|
121
|
-
* Function responsible returning styling, in case the item is the last shouldn't
|
|
122
|
-
* add extra margin on the bottom, if "showDivider" is true it should add a divider
|
|
123
|
-
* and custom margin and padding, otherwise just adds a margin to the bottom
|
|
124
|
-
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const getContainerStyle = () => {
|
|
128
|
-
if (isLastItem) {
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (showDivider) {
|
|
133
|
-
return dividerStyles;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return itemBlockStyles;
|
|
137
|
-
};
|
|
138
|
-
/**
|
|
139
|
-
* Renders item bullet or Icon in case it's defined
|
|
140
|
-
* in case children are string the icon is centered otherwise
|
|
141
|
-
* it will align itself at start of the container
|
|
142
|
-
*/
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const renderMarker = () => {
|
|
146
|
-
const IconComponent = icon || /*#__PURE__*/_jsx(_Fragment, {});
|
|
147
|
-
|
|
148
|
-
if (icon) {
|
|
149
|
-
return /*#__PURE__*/_jsx(View, {
|
|
150
|
-
style: sideItemContainerStyles,
|
|
151
|
-
children: /*#__PURE__*/_jsx(IconComponent, {
|
|
152
|
-
size: iconSize || iconTokens.size,
|
|
153
|
-
color: iconColor || iconTokens.color
|
|
154
|
-
})
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return /*#__PURE__*/_jsx(View, {
|
|
159
|
-
style: [sideItemContainerStyles, itemBulletContainerStyles],
|
|
160
|
-
children: /*#__PURE__*/_jsx(View, {
|
|
161
|
-
style: [staticStyles.bulletPositioning, itemBulletPositioningStyles],
|
|
162
|
-
children: /*#__PURE__*/_jsx(View, {
|
|
163
|
-
style: itemBulletStyles,
|
|
164
|
-
testID: "unordered-item-bullet"
|
|
165
|
-
})
|
|
166
|
-
})
|
|
167
|
-
});
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
171
|
-
ref: ref,
|
|
172
|
-
style: [staticStyles.itemContainer, getContainerStyle()],
|
|
173
|
-
accessibilityRole: accessibilityRole,
|
|
174
|
-
...selectProps(rest),
|
|
175
|
-
children: [renderMarker(), renderItem()]
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
ListItem.displayName = 'ListItem';
|
|
179
|
-
const staticStyles = StyleSheet.create({
|
|
180
|
-
itemContainer: {
|
|
181
|
-
flexDirection: 'row'
|
|
182
|
-
},
|
|
183
|
-
wrap: {
|
|
184
|
-
flex: 1
|
|
185
|
-
},
|
|
186
|
-
bulletPositioning: {
|
|
187
|
-
alignItems: 'center',
|
|
188
|
-
justifyContent: 'center'
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
ListItem.propTypes = { ...selectedSystemPropTypes,
|
|
192
|
-
tokens: getTokensPropType('List'),
|
|
193
|
-
variant: variantProp.propType,
|
|
194
|
-
children: PropTypes.node.isRequired,
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Renders side item icon
|
|
198
|
-
*/
|
|
199
|
-
icon: PropTypes.func,
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Will set display icon color
|
|
203
|
-
*/
|
|
204
|
-
iconColor: PropTypes.string,
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Allow the user define the icon size if not defined the theme's file
|
|
208
|
-
*/
|
|
209
|
-
iconSize: PropTypes.number,
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* @ignore
|
|
213
|
-
* Defined by parent if it's last item on the list
|
|
214
|
-
*/
|
|
215
|
-
isLastItem: PropTypes.bool,
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* @ignore
|
|
219
|
-
* In case it is not the last item allow display divider
|
|
220
|
-
*/
|
|
221
|
-
showDivider: PropTypes.bool
|
|
222
|
-
};
|
|
223
|
-
export default ListItem;
|
package/lib-module/List/index.js
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
3
|
-
import TouchableWithoutFeedback from "react-native-web/dist/exports/TouchableWithoutFeedback";
|
|
4
|
-
import View from "react-native-web/dist/exports/View";
|
|
5
|
-
import NativeModal from "react-native-web/dist/exports/Modal";
|
|
6
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
7
|
-
import PropTypes from 'prop-types';
|
|
8
|
-
import { applyShadowToken, useThemeTokens } from '../ThemeProvider';
|
|
9
|
-
import { a11yProps, copyPropTypes, getTokensPropType, selectSystemProps, useCopy, variantProp, viewProps, selectTokens } from '../utils';
|
|
10
|
-
import { useViewport } from '../ViewportProvider';
|
|
11
|
-
import IconButton from '../IconButton';
|
|
12
|
-
import dictionary from './dictionary';
|
|
13
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
16
|
-
|
|
17
|
-
const selectContainerStyles = ({
|
|
18
|
-
containerPaddingLeft,
|
|
19
|
-
containerPaddingRight,
|
|
20
|
-
containerPaddingTop,
|
|
21
|
-
containerPaddingBottom,
|
|
22
|
-
maxWidth,
|
|
23
|
-
height
|
|
24
|
-
}) => ({
|
|
25
|
-
height,
|
|
26
|
-
maxWidth,
|
|
27
|
-
paddingLeft: containerPaddingLeft,
|
|
28
|
-
paddingRight: containerPaddingRight,
|
|
29
|
-
paddingTop: containerPaddingTop,
|
|
30
|
-
paddingBottom: containerPaddingBottom
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const selectModalStyles = ({
|
|
34
|
-
backgroundColor,
|
|
35
|
-
borderRadius,
|
|
36
|
-
height,
|
|
37
|
-
paddingLeft,
|
|
38
|
-
paddingRight,
|
|
39
|
-
paddingTop,
|
|
40
|
-
paddingBottom,
|
|
41
|
-
shadow
|
|
42
|
-
}) => ({
|
|
43
|
-
backgroundColor,
|
|
44
|
-
borderRadius,
|
|
45
|
-
height,
|
|
46
|
-
paddingLeft,
|
|
47
|
-
paddingRight,
|
|
48
|
-
paddingTop,
|
|
49
|
-
paddingBottom,
|
|
50
|
-
...applyShadowToken(shadow)
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
const selectBackdropStyles = ({
|
|
54
|
-
backdropColor,
|
|
55
|
-
backdropOpacity
|
|
56
|
-
}) => ({
|
|
57
|
-
backgroundColor: backdropColor,
|
|
58
|
-
opacity: backdropOpacity
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
const selectCloseButtonContainerStyles = ({
|
|
62
|
-
paddingRight,
|
|
63
|
-
paddingTop
|
|
64
|
-
}) => ({
|
|
65
|
-
paddingRight,
|
|
66
|
-
paddingTop
|
|
67
|
-
});
|
|
68
|
-
/**
|
|
69
|
-
* A modal window is a secondary window that opens on top of the main one.
|
|
70
|
-
* Users have to interact with it before they can carry out their task and return to the main window.
|
|
71
|
-
* Use to reveal additional information to a user after they have performed an explicit interaction.
|
|
72
|
-
* They are a strongly discouraged pattern; it's preferred to have all relevant information within a page,
|
|
73
|
-
* and irrelevant information either linked externally or omitted.
|
|
74
|
-
*
|
|
75
|
-
* - Must only appear after a customer interaction, not on page load or any other circumstance
|
|
76
|
-
* - Open a modal based on explicit customer action e.g. clicking on a button/link/form field
|
|
77
|
-
* - Only one modal should be "current" at any time
|
|
78
|
-
* - Read [WebAIM's documentation](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/dialog.html) to create accessible modals
|
|
79
|
-
* - Don’t use modals to reinforce or repeat information already available in the parent page or view
|
|
80
|
-
* - Don’t use modals consecutively
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const Modal = /*#__PURE__*/forwardRef(({
|
|
85
|
-
children,
|
|
86
|
-
isOpen,
|
|
87
|
-
onClose,
|
|
88
|
-
maxWidth,
|
|
89
|
-
tokens,
|
|
90
|
-
variant,
|
|
91
|
-
copy,
|
|
92
|
-
closeButton,
|
|
93
|
-
...rest
|
|
94
|
-
}, ref) => {
|
|
95
|
-
const viewport = useViewport();
|
|
96
|
-
const themeTokens = useThemeTokens('Modal', tokens, variant, {
|
|
97
|
-
viewport,
|
|
98
|
-
maxWidth
|
|
99
|
-
});
|
|
100
|
-
const {
|
|
101
|
-
closeIcon: CloseIconComponent
|
|
102
|
-
} = themeTokens;
|
|
103
|
-
const getCopy = useCopy({
|
|
104
|
-
dictionary,
|
|
105
|
-
copy
|
|
106
|
-
});
|
|
107
|
-
const closeLabel = getCopy('closeButton');
|
|
108
|
-
|
|
109
|
-
const handleClose = () => {
|
|
110
|
-
if (typeof onClose === 'function') onClose();
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const handleKeyUp = event => {
|
|
114
|
-
if (event.key === 'Escape') onClose();
|
|
115
|
-
}; // Show the custom react node passed to `closedButton` or the default close button if `closeButton` is `undefined`.
|
|
116
|
-
// Hide the close button if `closeButton` is `null`.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const showCloseButton = closeButton !== null;
|
|
120
|
-
|
|
121
|
-
if (!isOpen) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return /*#__PURE__*/_jsx(NativeModal, {
|
|
126
|
-
transparent: true,
|
|
127
|
-
...selectProps(rest),
|
|
128
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
129
|
-
style: [staticStyles.positioningContainer],
|
|
130
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
131
|
-
style: [staticStyles.sizingContainer, selectContainerStyles(themeTokens)],
|
|
132
|
-
pointerEvents: "box-none" // don't capture backdrop press events
|
|
133
|
-
,
|
|
134
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
135
|
-
ref: ref,
|
|
136
|
-
style: [staticStyles.modal, selectModalStyles(themeTokens)],
|
|
137
|
-
onKeyUp: handleKeyUp,
|
|
138
|
-
children: [showCloseButton && /*#__PURE__*/_jsx(View, {
|
|
139
|
-
style: [staticStyles.closeButtonContainer, selectCloseButtonContainerStyles(themeTokens)],
|
|
140
|
-
children: closeButton || /*#__PURE__*/_jsx(IconButton, {
|
|
141
|
-
onPress: handleClose,
|
|
142
|
-
icon: CloseIconComponent,
|
|
143
|
-
accessibilityRole: "button",
|
|
144
|
-
accessibilityLabel: closeLabel,
|
|
145
|
-
tokens: selectTokens('IconButton', themeTokens, 'close')
|
|
146
|
-
})
|
|
147
|
-
}), children]
|
|
148
|
-
})
|
|
149
|
-
}), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
|
|
150
|
-
onPress: handleClose,
|
|
151
|
-
children: /*#__PURE__*/_jsx(View, {
|
|
152
|
-
style: [staticStyles.backdrop, selectBackdropStyles(themeTokens)]
|
|
153
|
-
})
|
|
154
|
-
})]
|
|
155
|
-
})
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
Modal.displayName = 'Modal';
|
|
159
|
-
Modal.propTypes = { ...selectedSystemPropTypes,
|
|
160
|
-
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
|
161
|
-
copy: copyPropTypes,
|
|
162
|
-
isOpen: PropTypes.bool,
|
|
163
|
-
onClose: PropTypes.func,
|
|
164
|
-
maxWidth: PropTypes.bool,
|
|
165
|
-
tokens: getTokensPropType('Modal'),
|
|
166
|
-
variant: variantProp.propType,
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Pass a react node to override the default close button or pass `null` to hide the close button.
|
|
170
|
-
*/
|
|
171
|
-
closeButton: PropTypes.node
|
|
172
|
-
};
|
|
173
|
-
export default Modal;
|
|
174
|
-
const staticStyles = StyleSheet.create({
|
|
175
|
-
backdrop: {
|
|
176
|
-
position: 'absolute',
|
|
177
|
-
top: 0,
|
|
178
|
-
left: 0,
|
|
179
|
-
right: 0,
|
|
180
|
-
bottom: 0,
|
|
181
|
-
zIndex: -1,
|
|
182
|
-
...Platform.select({
|
|
183
|
-
web: {
|
|
184
|
-
cursor: 'pointer'
|
|
185
|
-
}
|
|
186
|
-
})
|
|
187
|
-
},
|
|
188
|
-
positioningContainer: {
|
|
189
|
-
flexBasis: '100%',
|
|
190
|
-
alignItems: 'center',
|
|
191
|
-
justifyContent: 'center'
|
|
192
|
-
},
|
|
193
|
-
sizingContainer: {
|
|
194
|
-
maxHeight: '100%',
|
|
195
|
-
// so that the container can expand up to the full viewport height
|
|
196
|
-
width: '100%' // ensure that the modal actually expands to the set maxWidth
|
|
197
|
-
|
|
198
|
-
},
|
|
199
|
-
modal: {
|
|
200
|
-
maxHeight: '100%' // so that the modal can expand vertically up to the sizing container's height (exclusive of its vertical padding)
|
|
201
|
-
|
|
202
|
-
},
|
|
203
|
-
closeButtonContainer: {
|
|
204
|
-
position: 'absolute',
|
|
205
|
-
top: 0,
|
|
206
|
-
right: 0
|
|
207
|
-
}
|
|
208
|
-
});
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, useState } from 'react';
|
|
2
|
-
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
3
|
-
import View from "react-native-web/dist/exports/View";
|
|
4
|
-
import PropTypes from 'prop-types';
|
|
5
|
-
import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
|
|
6
|
-
import { a11yProps, getTokensPropType, selectSystemProps, selectTokens, variantProp, viewProps, wrapStringsInText } from '../utils';
|
|
7
|
-
import ButtonBase from '../Button/ButtonBase';
|
|
8
|
-
import useCopy from '../utils/useCopy';
|
|
9
|
-
import dictionary from './dictionary';
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
13
|
-
|
|
14
|
-
const selectContainerStyles = tokens => ({ ...tokens
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
const selectTextStyles = tokens => applyTextStyles(selectTokens('Typography', tokens));
|
|
18
|
-
|
|
19
|
-
const selectIconProps = ({
|
|
20
|
-
iconSize,
|
|
21
|
-
iconColor
|
|
22
|
-
}) => ({
|
|
23
|
-
size: iconSize,
|
|
24
|
-
color: iconColor
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const selectIconContainerStyles = ({
|
|
28
|
-
iconGap
|
|
29
|
-
}) => ({
|
|
30
|
-
paddingRight: iconGap
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const selectDismissIconProps = ({
|
|
34
|
-
dismissIconSize,
|
|
35
|
-
dismissIconColor
|
|
36
|
-
}) => ({
|
|
37
|
-
size: dismissIconSize,
|
|
38
|
-
color: dismissIconColor
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const selectDismissButtonContainerStyles = ({
|
|
42
|
-
dismissButtonGap
|
|
43
|
-
}) => ({
|
|
44
|
-
paddingLeft: dismissButtonGap
|
|
45
|
-
});
|
|
46
|
-
/**
|
|
47
|
-
* A banner that highlights important messages:
|
|
48
|
-
* - Status message to show there is an error or outage of services
|
|
49
|
-
* - Confirmation message in response to user action
|
|
50
|
-
* - Account information letting the user know they have almost used all their data
|
|
51
|
-
*
|
|
52
|
-
* ## Usage criteria
|
|
53
|
-
* - Use simple text content only, such as bold test or links. Don’t use other complex components or paragraphs
|
|
54
|
-
* - Show notifications before the content that the message is related to, otherwise show at the top of the main content
|
|
55
|
-
* - Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
|
|
56
|
-
* - When showing multiple notifications, show them in order of importance from top to bottom
|
|
57
|
-
* - Use variants to visually show the type of message contained within the Notification.
|
|
58
|
-
* - The icon and colour will indicate meaning and importance
|
|
59
|
-
*
|
|
60
|
-
* ### Variants
|
|
61
|
-
* - Use `variant.style` to set the visual style of the notification
|
|
62
|
-
* - Use `dismissible` prop to enable dismissible functionality
|
|
63
|
-
* - Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
|
|
64
|
-
*
|
|
65
|
-
* ### When to use the system prop?
|
|
66
|
-
* - Use `system` to show system-based messages coming from the application
|
|
67
|
-
* - Don’t use `system` when the message is in response to user action
|
|
68
|
-
*
|
|
69
|
-
* ## Variants
|
|
70
|
-
*
|
|
71
|
-
* #### Success
|
|
72
|
-
* Use the success variant to provide feedback of a successful operation. The message will include an icon to indicate meaning and importance.
|
|
73
|
-
*
|
|
74
|
-
* #### Warning
|
|
75
|
-
* Use the warning variant to provide feedback of a warning; users would still be able to proceed forward.
|
|
76
|
-
* The message will include an icon to indicate meaning and importance.
|
|
77
|
-
*
|
|
78
|
-
* #### Error
|
|
79
|
-
* Use the error variant to provide feedback of a failed operation. The message will include an icon to indicate meaning and importance.
|
|
80
|
-
*
|
|
81
|
-
* #### Dismissible
|
|
82
|
-
* Dismissible notifications should only be used for default or success notifications where there is no action needed from the user.
|
|
83
|
-
* If the information is passive then it should be dismissible as indicated by an interactive close button on the far right.
|
|
84
|
-
* If the notification requires an action then make the option(s) clear with a `ChevronLink` or `Link`.
|
|
85
|
-
*
|
|
86
|
-
* Use the `dismissible` prop to allow users to dismiss the Notification at any time. Once dismissed, the Notification is removed from the DOM.
|
|
87
|
-
*
|
|
88
|
-
* Please note:
|
|
89
|
-
*
|
|
90
|
-
* - Default and Success variants are dismissible
|
|
91
|
-
* - Error and Warning variants are not dismissible
|
|
92
|
-
*
|
|
93
|
-
* #### System message
|
|
94
|
-
* Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
|
|
95
|
-
* Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
|
|
96
|
-
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const Notification = /*#__PURE__*/forwardRef(({
|
|
100
|
-
children,
|
|
101
|
-
system,
|
|
102
|
-
dismissible,
|
|
103
|
-
copy = 'en',
|
|
104
|
-
tokens,
|
|
105
|
-
variant,
|
|
106
|
-
...rest
|
|
107
|
-
}, ref) => {
|
|
108
|
-
const [isDismissed, setIsDismissed] = useState(false);
|
|
109
|
-
const themeTokens = useThemeTokens('Notification', tokens, variant, {
|
|
110
|
-
system
|
|
111
|
-
});
|
|
112
|
-
const getCopy = useCopy({
|
|
113
|
-
dictionary,
|
|
114
|
-
copy
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
if (isDismissed) {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
const textStyles = selectTextStyles(themeTokens);
|
|
122
|
-
const content = wrapStringsInText(typeof children === 'function' ? children({
|
|
123
|
-
textStyles
|
|
124
|
-
}) : children, {
|
|
125
|
-
style: textStyles
|
|
126
|
-
});
|
|
127
|
-
const {
|
|
128
|
-
icon: IconComponent,
|
|
129
|
-
dismissIcon: DismissIconComponent
|
|
130
|
-
} = themeTokens;
|
|
131
|
-
|
|
132
|
-
const onDismissPress = () => setIsDismissed(true); // TODO: replace the dismiss button with IconButton when implemented (https://github.com/telus/universal-design-system/issues/281)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
136
|
-
ref: ref,
|
|
137
|
-
style: [staticStyles.container, selectContainerStyles(themeTokens)],
|
|
138
|
-
...selectProps(rest),
|
|
139
|
-
children: [IconComponent && /*#__PURE__*/_jsx(View, {
|
|
140
|
-
style: selectIconContainerStyles(themeTokens),
|
|
141
|
-
children: /*#__PURE__*/_jsx(IconComponent, { ...selectIconProps(themeTokens)
|
|
142
|
-
})
|
|
143
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
144
|
-
style: staticStyles.contentContainer,
|
|
145
|
-
children: content && typeof content === 'function' ? content({
|
|
146
|
-
textStyles,
|
|
147
|
-
variant
|
|
148
|
-
}) : content
|
|
149
|
-
}), dismissible && DismissIconComponent && /*#__PURE__*/_jsx(View, {
|
|
150
|
-
style: selectDismissButtonContainerStyles(themeTokens),
|
|
151
|
-
children: /*#__PURE__*/_jsx(ButtonBase, {
|
|
152
|
-
onPress: onDismissPress,
|
|
153
|
-
accessibilityRole: "button",
|
|
154
|
-
accessibilityLabel: getCopy('dismiss'),
|
|
155
|
-
children: () => /*#__PURE__*/_jsx(DismissIconComponent, { ...selectDismissIconProps(themeTokens)
|
|
156
|
-
})
|
|
157
|
-
})
|
|
158
|
-
})]
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
Notification.displayName = 'Notification';
|
|
162
|
-
Notification.propTypes = { ...selectedSystemPropTypes,
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Content of the `Notification`.
|
|
166
|
-
*/
|
|
167
|
-
children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
|
|
171
|
-
*/
|
|
172
|
-
system: PropTypes.bool,
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Use the `dismissible` prop to allow users to dismiss the Notification at any time.
|
|
176
|
-
*/
|
|
177
|
-
dismissible: PropTypes.bool,
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Select english or french copy for the accessible label of the dismiss button.
|
|
181
|
-
*/
|
|
182
|
-
copy: PropTypes.oneOfType([PropTypes.oneOf(['en', 'fr']), PropTypes.shape({
|
|
183
|
-
dismiss: PropTypes.string
|
|
184
|
-
})]),
|
|
185
|
-
tokens: getTokensPropType('Notification'),
|
|
186
|
-
variant: variantProp.propType
|
|
187
|
-
};
|
|
188
|
-
export default Notification;
|
|
189
|
-
const staticStyles = StyleSheet.create({
|
|
190
|
-
container: {
|
|
191
|
-
flexDirection: 'row'
|
|
192
|
-
},
|
|
193
|
-
contentContainer: {
|
|
194
|
-
flex: 1
|
|
195
|
-
}
|
|
196
|
-
});
|