@telus-uds/components-base 1.8.1 → 1.8.4
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 +35 -2
- package/component-docs.json +711 -669
- package/lib/A11yInfoProvider/index.js +4 -3
- package/lib/A11yText/index.js +6 -5
- package/lib/ActivityIndicator/Spinner.js +14 -13
- package/lib/ActivityIndicator/Spinner.native.js +10 -8
- 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 +97 -79
- package/lib/Button/ButtonGroup.js +34 -32
- 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 +97 -83
- package/lib/Checkbox/CheckboxGroup.js +29 -27
- package/lib/Checkbox/CheckboxInput.js +12 -10
- package/lib/Divider/Divider.js +10 -9
- package/lib/ExpandCollapse/Control.js +42 -36
- package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib/ExpandCollapse/Panel.js +29 -40
- package/lib/Feedback/Feedback.js +48 -35
- package/lib/Fieldset/Fieldset.js +16 -15
- 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 +18 -17
- 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 +11 -10
- 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 +37 -30
- package/lib/InputLabel/LabelContent.js +12 -9
- package/lib/InputLabel/LabelContent.native.js +9 -6
- package/lib/InputSupports/InputSupports.js +11 -10
- 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 +20 -13
- package/lib/List/ListItem.js +103 -79
- package/lib/Modal/Modal.js +74 -60
- package/lib/Notification/Notification.js +46 -33
- package/lib/Pagination/PageButton.js +13 -12
- package/lib/Pagination/Pagination.js +43 -30
- package/lib/Pagination/SideButton.js +21 -18
- package/lib/Pagination/usePagination.js +7 -6
- package/lib/Progress/Progress.js +23 -19
- package/lib/Progress/ProgressBar.js +25 -21
- package/lib/Progress/ProgressBarBackground.js +7 -6
- package/lib/Radio/Radio.js +80 -69
- package/lib/Radio/RadioButton.js +63 -53
- package/lib/Radio/RadioGroup.js +30 -28
- package/lib/Radio/RadioInput.js +12 -10
- package/lib/RadioCard/RadioCard.js +16 -15
- package/lib/RadioCard/RadioCardGroup.js +30 -28
- 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 +21 -18
- package/lib/Skeleton/Skeleton.js +60 -44
- package/lib/Skeleton/skeleton.constant.js +1 -1
- package/lib/Skeleton/skeletonWebAnimation.js +1 -1
- package/lib/Spacer/Spacer.js +6 -5
- package/lib/StackView/StackView.js +12 -11
- package/lib/StackView/StackWrap.js +5 -3
- 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 +10 -9
- 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 +57 -27
- package/lib/Tabs/TabsItem.js +78 -68
- package/lib/Tags/Tags.js +68 -62
- 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 +50 -43
- package/lib/ThemeProvider/utils/theme-tokens.js +33 -21
- package/lib/ToggleSwitch/ToggleSwitch.js +90 -74
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +37 -35
- package/lib/Tooltip/Backdrop.js +6 -13
- package/lib/Tooltip/Backdrop.native.js +5 -4
- package/lib/Tooltip/Tooltip.js +81 -65
- 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 +46 -19
- package/lib/utils/children.js +4 -3
- package/lib/utils/index.js +10 -10
- package/lib/utils/input.js +28 -29
- package/lib/utils/pressability.js +36 -22
- package/lib/utils/props/clickProps.js +2 -1
- package/lib/utils/props/componentPropType.js +3 -3
- 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 +15 -12
- package/lib/utils/props/linkProps.js +7 -6
- package/lib/utils/props/pressProps.js +1 -1
- package/lib/utils/props/selectSystemProps.js +2 -2
- package/lib/utils/props/tokens.js +29 -15
- 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/useSpacingScale.js +3 -1
- package/lib/utils/useUniqueId.js +3 -2
- package/lib/utils/withLinkRouter.js +6 -5
- package/lib-module/A11yInfoProvider/index.js +4 -3
- package/lib-module/A11yText/index.js +6 -5
- package/lib-module/ActivityIndicator/Spinner.js +14 -13
- package/lib-module/ActivityIndicator/Spinner.native.js +9 -8
- package/lib-module/ActivityIndicator/index.js +6 -5
- package/lib-module/BaseProvider/index.js +13 -10
- package/lib-module/Box/Box.js +20 -19
- package/lib-module/Button/Button.js +7 -6
- package/lib-module/Button/ButtonBase.js +96 -79
- package/lib-module/Button/ButtonGroup.js +34 -32
- package/lib-module/Button/ButtonLink.js +8 -7
- package/lib-module/Card/Card.js +8 -7
- package/lib-module/Card/CardBase.js +35 -31
- package/lib-module/Card/PressableCardBase.js +12 -11
- package/lib-module/Checkbox/Checkbox.js +97 -83
- package/lib-module/Checkbox/CheckboxGroup.js +29 -27
- package/lib-module/Checkbox/CheckboxInput.js +12 -10
- package/lib-module/Divider/Divider.js +10 -9
- package/lib-module/ExpandCollapse/Control.js +42 -36
- package/lib-module/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib-module/ExpandCollapse/Panel.js +29 -37
- package/lib-module/Feedback/Feedback.js +46 -33
- package/lib-module/Fieldset/Fieldset.js +16 -15
- package/lib-module/Fieldset/FieldsetContainer.js +16 -13
- package/lib-module/Fieldset/FieldsetContainer.native.js +11 -8
- package/lib-module/Fieldset/Legend.js +10 -7
- package/lib-module/Fieldset/Legend.native.js +10 -7
- package/lib-module/FlexGrid/Col/Col.js +18 -17
- package/lib-module/FlexGrid/FlexGrid.js +15 -14
- package/lib-module/FlexGrid/Row/Row.js +13 -12
- package/lib-module/HorizontalScroll/HorizontalScroll.js +24 -19
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +18 -14
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +6 -5
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +12 -9
- package/lib-module/HorizontalScroll/itemPositions.js +18 -12
- package/lib-module/Icon/Icon.js +10 -9
- package/lib-module/Icon/IconText.js +9 -7
- package/lib-module/IconButton/IconButton.js +48 -41
- package/lib-module/InputLabel/InputLabel.js +37 -30
- package/lib-module/InputLabel/LabelContent.js +12 -9
- package/lib-module/InputLabel/LabelContent.native.js +9 -6
- package/lib-module/InputSupports/InputSupports.js +11 -10
- package/lib-module/InputSupports/useInputSupports.js +7 -6
- package/lib-module/Link/ChevronLink.js +9 -8
- package/lib-module/Link/InlinePressable.js +13 -10
- package/lib-module/Link/InlinePressable.native.js +20 -16
- package/lib-module/Link/Link.js +10 -9
- package/lib-module/Link/LinkBase.js +94 -77
- package/lib-module/Link/TextButton.js +9 -8
- package/lib-module/List/List.js +20 -13
- package/lib-module/List/ListItem.js +103 -78
- package/lib-module/Modal/Modal.js +74 -60
- package/lib-module/Notification/Notification.js +46 -33
- package/lib-module/Pagination/PageButton.js +13 -12
- package/lib-module/Pagination/Pagination.js +43 -30
- package/lib-module/Pagination/SideButton.js +21 -18
- package/lib-module/Pagination/usePagination.js +7 -6
- package/lib-module/Progress/Progress.js +23 -19
- package/lib-module/Progress/ProgressBar.js +25 -21
- package/lib-module/Progress/ProgressBarBackground.js +7 -6
- package/lib-module/Radio/Radio.js +80 -69
- package/lib-module/Radio/RadioButton.js +62 -52
- package/lib-module/Radio/RadioGroup.js +30 -28
- package/lib-module/Radio/RadioInput.js +12 -10
- package/lib-module/RadioCard/RadioCard.js +16 -15
- package/lib-module/RadioCard/RadioCardGroup.js +30 -28
- package/lib-module/Search/Search.js +52 -32
- package/lib-module/Select/Group.js +5 -4
- package/lib-module/Select/Group.native.js +4 -3
- package/lib-module/Select/Item.js +10 -7
- package/lib-module/Select/Item.native.js +1 -7
- package/lib-module/Select/Picker.js +16 -15
- package/lib-module/Select/Picker.native.js +46 -36
- package/lib-module/Select/Select.js +134 -113
- package/lib-module/SideNav/Item.js +39 -33
- package/lib-module/SideNav/ItemContent.js +14 -11
- package/lib-module/SideNav/ItemsGroup.js +13 -11
- package/lib-module/SideNav/SideNav.js +21 -18
- package/lib-module/Skeleton/Skeleton.js +60 -44
- package/lib-module/Skeleton/skeletonWebAnimation.js +1 -1
- package/lib-module/Spacer/Spacer.js +6 -5
- package/lib-module/StackView/StackView.js +12 -11
- package/lib-module/StackView/StackWrap.js +5 -3
- package/lib-module/StackView/StackWrapBox.js +12 -11
- package/lib-module/StackView/StackWrapGap.js +11 -10
- package/lib-module/StackView/common.js +14 -11
- package/lib-module/StackView/getStackedContent.js +10 -9
- package/lib-module/StepTracker/Step.js +122 -103
- package/lib-module/StepTracker/StepTracker.js +48 -38
- package/lib-module/Tabs/Tabs.js +57 -27
- package/lib-module/Tabs/TabsItem.js +77 -68
- package/lib-module/Tags/Tags.js +68 -62
- package/lib-module/TextInput/TextArea.js +26 -20
- package/lib-module/TextInput/TextInput.js +19 -15
- package/lib-module/TextInput/TextInputBase.js +74 -62
- package/lib-module/ThemeProvider/ThemeProvider.js +5 -4
- package/lib-module/ThemeProvider/useSetTheme.js +6 -3
- package/lib-module/ThemeProvider/useThemeTokens.js +7 -2
- package/lib-module/ThemeProvider/utils/styles.js +48 -41
- package/lib-module/ThemeProvider/utils/theme-tokens.js +32 -20
- package/lib-module/ToggleSwitch/ToggleSwitch.js +90 -74
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +37 -35
- package/lib-module/Tooltip/Backdrop.js +6 -13
- package/lib-module/Tooltip/Backdrop.native.js +5 -4
- package/lib-module/Tooltip/Tooltip.js +81 -65
- package/lib-module/Tooltip/getTooltipPosition.js +29 -18
- package/lib-module/TooltipButton/TooltipButton.js +28 -21
- package/lib-module/Typography/Typography.js +35 -31
- package/lib-module/ViewportProvider/ViewportProvider.js +4 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -3
- package/lib-module/utils/a11y/semantics.js +4 -1
- package/lib-module/utils/a11y/textSize.js +7 -5
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +47 -20
- package/lib-module/utils/children.js +4 -3
- package/lib-module/utils/input.js +28 -29
- package/lib-module/utils/pressability.js +35 -21
- package/lib-module/utils/props/clickProps.js +2 -1
- package/lib-module/utils/props/componentPropType.js +3 -3
- package/lib-module/utils/props/getPropSelector.js +6 -3
- package/lib-module/utils/props/handlerProps.js +24 -18
- package/lib-module/utils/props/hrefAttrsProp.js +14 -11
- package/lib-module/utils/props/inputSupportsProps.js +15 -12
- package/lib-module/utils/props/linkProps.js +7 -6
- package/lib-module/utils/props/selectSystemProps.js +2 -2
- package/lib-module/utils/props/tokens.js +27 -14
- package/lib-module/utils/ssr.js +5 -2
- package/lib-module/utils/useCopy.js +6 -4
- package/lib-module/utils/useHash.js +2 -1
- package/lib-module/utils/useSpacingScale.js +3 -1
- package/lib-module/utils/useUniqueId.js +3 -2
- package/lib-module/utils/withLinkRouter.js +6 -5
- package/package.json +13 -11
- package/src/ExpandCollapse/Panel.jsx +2 -19
- package/src/List/List.jsx +34 -19
- package/src/List/ListItem.jsx +12 -2
- package/src/Modal/Modal.jsx +2 -1
- package/src/Pagination/Pagination.jsx +3 -0
- package/src/Search/Search.jsx +11 -0
- package/src/Select/Item.native.jsx +0 -7
- package/src/Tabs/Tabs.jsx +24 -2
- package/src/Tabs/TabsItem.jsx +6 -5
- package/src/utils/animation/useVerticalExpandAnimation.js +47 -13
|
@@ -43,84 +43,100 @@ const selectButtonTokens = tokens => (0, _utils.selectTokens)('Button', { ...tok
|
|
|
43
43
|
}); // Map and rename icon-specific tokens to name used within Icon
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
const selectIconTokens =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
const selectIconTokens = _ref => {
|
|
47
|
+
let {
|
|
48
|
+
iconSize,
|
|
49
|
+
iconColor
|
|
50
|
+
} = _ref;
|
|
51
|
+
return {
|
|
52
|
+
size: iconSize,
|
|
53
|
+
color: iconColor
|
|
54
|
+
};
|
|
55
|
+
};
|
|
53
56
|
|
|
54
|
-
const selectTrackStyles =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
const selectTrackStyles = _ref2 => {
|
|
58
|
+
let {
|
|
59
|
+
trackBorderWidth,
|
|
60
|
+
trackBorderColor,
|
|
61
|
+
trackBorderRadius,
|
|
62
|
+
width
|
|
63
|
+
} = _ref2;
|
|
64
|
+
return {
|
|
65
|
+
borderWidth: trackBorderWidth,
|
|
66
|
+
borderColor: trackBorderColor,
|
|
67
|
+
borderRadius: trackBorderRadius,
|
|
68
|
+
width
|
|
69
|
+
};
|
|
70
|
+
};
|
|
65
71
|
|
|
66
|
-
const selectSwitchStyles =
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
72
|
+
const selectSwitchStyles = _ref3 => {
|
|
73
|
+
let {
|
|
74
|
+
switchSize,
|
|
75
|
+
switchColor,
|
|
76
|
+
switchBorderWidth,
|
|
77
|
+
switchBorderColor,
|
|
78
|
+
switchBorderRadius,
|
|
79
|
+
switchShadow
|
|
80
|
+
} = _ref3;
|
|
81
|
+
return {
|
|
82
|
+
width: switchSize,
|
|
83
|
+
height: switchSize,
|
|
84
|
+
backgroundColor: switchColor,
|
|
85
|
+
borderWidth: switchBorderWidth,
|
|
86
|
+
borderColor: switchBorderColor,
|
|
87
|
+
borderRadius: switchBorderRadius,
|
|
88
|
+
...(0, _ThemeProvider.applyShadowToken)(switchShadow),
|
|
89
|
+
..._Platform.default.select({
|
|
90
|
+
// TODO: https://github.com/telus/universal-design-system/issues/487
|
|
91
|
+
web: {
|
|
92
|
+
transition: 'transform 200ms'
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
};
|
|
96
|
+
};
|
|
88
97
|
|
|
89
|
-
const selectLabelStyles =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
const selectLabelStyles = _ref4 => {
|
|
99
|
+
let {
|
|
100
|
+
labelMarginLeft
|
|
101
|
+
} = _ref4;
|
|
102
|
+
return {
|
|
103
|
+
marginLeft: labelMarginLeft
|
|
104
|
+
};
|
|
105
|
+
};
|
|
94
106
|
|
|
95
|
-
const selectLabelTokens =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
const selectLabelTokens = _ref5 => {
|
|
108
|
+
let {
|
|
109
|
+
labelColor,
|
|
110
|
+
labelFontName,
|
|
111
|
+
labelFontSize,
|
|
112
|
+
labelFontWeight,
|
|
113
|
+
labelLineHeight
|
|
114
|
+
} = _ref5;
|
|
115
|
+
return {
|
|
116
|
+
color: labelColor,
|
|
117
|
+
fontName: labelFontName,
|
|
118
|
+
fontWeight: labelFontWeight,
|
|
119
|
+
fontSize: labelFontSize,
|
|
120
|
+
lineHeight: labelLineHeight
|
|
121
|
+
};
|
|
122
|
+
};
|
|
108
123
|
|
|
109
|
-
const ToggleSwitch = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
const ToggleSwitch = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
125
|
+
let {
|
|
126
|
+
copy = 'en',
|
|
127
|
+
value,
|
|
128
|
+
initialValue,
|
|
129
|
+
onChange,
|
|
130
|
+
id,
|
|
131
|
+
label,
|
|
132
|
+
inactive,
|
|
133
|
+
tokens,
|
|
134
|
+
tooltip,
|
|
135
|
+
variant,
|
|
136
|
+
accessibilityRole = 'switch',
|
|
137
|
+
accessibilityLabel = label,
|
|
138
|
+
...rest
|
|
139
|
+
} = _ref6;
|
|
124
140
|
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('ToggleSwitch', tokens, variant);
|
|
125
141
|
const themeTokens = getTokens();
|
|
126
142
|
const {
|
|
@@ -137,7 +153,7 @@ const ToggleSwitch = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
137
153
|
const getButtonTokens = buttonState => selectButtonTokens(getTokens(buttonState));
|
|
138
154
|
|
|
139
155
|
const uniqueId = (0, _utils.useUniqueId)('toggleSwitch');
|
|
140
|
-
const inputId = id
|
|
156
|
+
const inputId = id !== null && id !== void 0 ? id : uniqueId;
|
|
141
157
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
142
158
|
space: 2,
|
|
143
159
|
direction: "row",
|
|
@@ -35,31 +35,32 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
35
35
|
|
|
36
36
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
37
37
|
const [selectItemProps, selectedItemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.viewProps]);
|
|
38
|
-
const ToggleSwitchGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
38
|
+
const ToggleSwitchGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
39
|
+
let {
|
|
40
|
+
copy = 'en',
|
|
41
|
+
variant,
|
|
42
|
+
tokens,
|
|
43
|
+
items = [],
|
|
44
|
+
values,
|
|
45
|
+
initialValues,
|
|
46
|
+
maxValues = 1,
|
|
47
|
+
onChange,
|
|
48
|
+
readOnly = false,
|
|
49
|
+
inactive = false,
|
|
50
|
+
feedback,
|
|
51
|
+
hint,
|
|
52
|
+
tooltip,
|
|
53
|
+
legend,
|
|
54
|
+
name: inputGroupName,
|
|
55
|
+
accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
|
|
56
|
+
: _Platform.default.select({
|
|
57
|
+
web: 'group',
|
|
58
|
+
default: 'none'
|
|
59
|
+
}),
|
|
60
|
+
toggleSwitchTokens,
|
|
61
|
+
validation,
|
|
62
|
+
...rest
|
|
63
|
+
} = _ref;
|
|
63
64
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
64
65
|
const {
|
|
65
66
|
space,
|
|
@@ -85,18 +86,19 @@ const ToggleSwitchGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
85
86
|
const uniqueFields = ['id', 'label'];
|
|
86
87
|
|
|
87
88
|
if (!(0, _utils.containUniqueFields)(items, uniqueFields)) {
|
|
88
|
-
throw new Error(
|
|
89
|
+
throw new Error("ToggleSwitchGroup items must have unique ".concat(uniqueFields.join(', ')));
|
|
89
90
|
}
|
|
90
91
|
|
|
91
|
-
const toggleSwitches = items.map(({
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
const toggleSwitches = items.map((_ref2, index) => {
|
|
93
|
+
let {
|
|
94
|
+
label,
|
|
95
|
+
id = label,
|
|
96
|
+
accessibilityLabel = label,
|
|
97
|
+
onChange: itemOnChange,
|
|
98
|
+
ref: itemRef,
|
|
99
|
+
tooltip: itemTooltip,
|
|
100
|
+
...itemRest
|
|
101
|
+
} = _ref2;
|
|
100
102
|
const isSelected = currentValues.includes(id);
|
|
101
103
|
|
|
102
104
|
const handleChange = (newCheckedState, event) => {
|
package/lib/Tooltip/Backdrop.js
CHANGED
|
@@ -19,15 +19,7 @@ function createPortalNode(nodeId) {
|
|
|
19
19
|
// this way the backdrop stays in place when scrolling the window - that's why we need to
|
|
20
20
|
// position it at the scroll position when rendering
|
|
21
21
|
|
|
22
|
-
node.style.cssText =
|
|
23
|
-
position: absolute;
|
|
24
|
-
top: ${window.scrollY}px;
|
|
25
|
-
left: ${window.scrollX}px;
|
|
26
|
-
right: 0;
|
|
27
|
-
bottom: 0;
|
|
28
|
-
z-index: 9999;
|
|
29
|
-
pointer-events: none;
|
|
30
|
-
`;
|
|
22
|
+
node.style.cssText = "\n position: absolute; \n top: ".concat(window.scrollY, "px;\n left: ").concat(window.scrollX, "px; \n right: 0; \n bottom: 0; \n z-index: 9999; \n pointer-events: none;\n ");
|
|
31
23
|
document.body.appendChild(node);
|
|
32
24
|
return node;
|
|
33
25
|
}
|
|
@@ -42,12 +34,13 @@ function removePortalNode(nodeId) {
|
|
|
42
34
|
*/
|
|
43
35
|
|
|
44
36
|
|
|
45
|
-
function Backdrop({
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
function Backdrop(_ref) {
|
|
38
|
+
let {
|
|
39
|
+
children
|
|
40
|
+
} = _ref;
|
|
48
41
|
const [portalNode, setPortalNode] = (0, _react.useState)();
|
|
49
42
|
(0, _react.useEffect)(() => {
|
|
50
|
-
const nodeId =
|
|
43
|
+
const nodeId = "tooltip-backdrop-".concat(Date.now());
|
|
51
44
|
const node = createPortalNode(nodeId);
|
|
52
45
|
setPortalNode(node);
|
|
53
46
|
return () => {
|
|
@@ -27,10 +27,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
27
27
|
* approach is that a press on the Backdrop will actually stop the press event from propagating,
|
|
28
28
|
* i.e. anything rendered beneath the Backdrop can't be pressed until the Backdrop is closed.
|
|
29
29
|
*/
|
|
30
|
-
function Backdrop({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
function Backdrop(_ref) {
|
|
31
|
+
let {
|
|
32
|
+
onPress,
|
|
33
|
+
children
|
|
34
|
+
} = _ref;
|
|
34
35
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
|
|
35
36
|
transparent: true,
|
|
36
37
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
|
package/lib/Tooltip/Tooltip.js
CHANGED
|
@@ -45,35 +45,42 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
45
45
|
|
|
46
46
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
47
47
|
|
|
48
|
-
const selectTooltipStyles =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
48
|
+
const selectTooltipStyles = _ref => {
|
|
49
|
+
let {
|
|
50
|
+
backgroundColor,
|
|
51
|
+
paddingTop,
|
|
52
|
+
paddingBottom,
|
|
53
|
+
paddingLeft,
|
|
54
|
+
paddingRight,
|
|
55
|
+
borderRadius
|
|
56
|
+
} = _ref;
|
|
57
|
+
return {
|
|
58
|
+
backgroundColor,
|
|
59
|
+
paddingTop,
|
|
60
|
+
paddingBottom,
|
|
61
|
+
paddingLeft,
|
|
62
|
+
paddingRight,
|
|
63
|
+
borderRadius
|
|
64
|
+
};
|
|
65
|
+
};
|
|
63
66
|
|
|
64
|
-
const selectTooltipShadowStyles =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
const selectTooltipShadowStyles = _ref2 => {
|
|
68
|
+
let {
|
|
69
|
+
shadow,
|
|
70
|
+
borderRadius
|
|
71
|
+
} = _ref2;
|
|
72
|
+
return {
|
|
73
|
+
borderRadius,
|
|
74
|
+
...(0, _ThemeProvider.applyShadowToken)(shadow)
|
|
75
|
+
};
|
|
76
|
+
};
|
|
71
77
|
|
|
72
|
-
const selectTooltipPositionStyles =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
const selectTooltipPositionStyles = _ref3 => {
|
|
79
|
+
let {
|
|
80
|
+
top,
|
|
81
|
+
left,
|
|
82
|
+
width
|
|
83
|
+
} = _ref3;
|
|
77
84
|
return {
|
|
78
85
|
top,
|
|
79
86
|
left,
|
|
@@ -81,16 +88,18 @@ const selectTooltipPositionStyles = ({
|
|
|
81
88
|
};
|
|
82
89
|
};
|
|
83
90
|
|
|
84
|
-
const selectArrowStyles = ({
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
const selectArrowStyles = (_ref4, _ref5) => {
|
|
92
|
+
let {
|
|
93
|
+
backgroundColor,
|
|
94
|
+
arrowWidth,
|
|
95
|
+
arrowBorderRadius,
|
|
96
|
+
shadow
|
|
97
|
+
} = _ref4;
|
|
98
|
+
let {
|
|
99
|
+
position,
|
|
100
|
+
width: tooltipWidth,
|
|
101
|
+
height: tooltipHeight
|
|
102
|
+
} = _ref5;
|
|
94
103
|
// the arrow width is actually a diagonal of the rectangle that we'll use as a tip
|
|
95
104
|
const rectangleSide = Math.sqrt(arrowWidth * arrowWidth / 2); // position the arrow at the side and center of the tooltip - this happens before rotation
|
|
96
105
|
// so we use the rectangle size as basis
|
|
@@ -163,15 +172,16 @@ const defaultControl = (pressableState, variant) => /*#__PURE__*/(0, _jsxRuntime
|
|
|
163
172
|
*/
|
|
164
173
|
|
|
165
174
|
|
|
166
|
-
const Tooltip = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
+
const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
176
|
+
let {
|
|
177
|
+
children,
|
|
178
|
+
content,
|
|
179
|
+
position = 'auto',
|
|
180
|
+
copy = 'en',
|
|
181
|
+
tokens,
|
|
182
|
+
variant,
|
|
183
|
+
...rest
|
|
184
|
+
} = _ref6;
|
|
175
185
|
const [isOpen, setIsOpen] = (0, _react.useState)(false);
|
|
176
186
|
const controlRef = (0, _react.useRef)();
|
|
177
187
|
const [controlLayout, setControlLayout] = (0, _react.useState)(null);
|
|
@@ -188,9 +198,10 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
188
198
|
arrowOffset
|
|
189
199
|
} = themeTokens;
|
|
190
200
|
(0, _react.useEffect)(() => {
|
|
191
|
-
const subscription = _Dimensions.default.addEventListener('change',
|
|
192
|
-
|
|
193
|
-
|
|
201
|
+
const subscription = _Dimensions.default.addEventListener('change', _ref7 => {
|
|
202
|
+
let {
|
|
203
|
+
window
|
|
204
|
+
} = _ref7;
|
|
194
205
|
setWindowDimensions(window);
|
|
195
206
|
});
|
|
196
207
|
|
|
@@ -201,24 +212,29 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
201
212
|
|
|
202
213
|
const close = () => setIsOpen(false);
|
|
203
214
|
|
|
204
|
-
const getPressableState =
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
215
|
+
const getPressableState = _ref8 => {
|
|
216
|
+
let {
|
|
217
|
+
pressed,
|
|
218
|
+
hovered,
|
|
219
|
+
focused
|
|
220
|
+
} = _ref8;
|
|
221
|
+
return {
|
|
222
|
+
pressed,
|
|
223
|
+
hover: hovered,
|
|
224
|
+
focus: focused
|
|
225
|
+
};
|
|
226
|
+
};
|
|
213
227
|
|
|
214
|
-
const onTooltipLayout =
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
228
|
+
const onTooltipLayout = _ref9 => {
|
|
229
|
+
let {
|
|
230
|
+
nativeEvent: {
|
|
231
|
+
layout: {
|
|
232
|
+
width,
|
|
233
|
+
height
|
|
234
|
+
}
|
|
219
235
|
}
|
|
220
|
-
}
|
|
221
|
-
|
|
236
|
+
} = _ref9;
|
|
237
|
+
|
|
222
238
|
if (tooltipDimensions === null || tooltipDimensions.width !== width || tooltipDimensions.height !== height) {
|
|
223
239
|
setTooltipDimensions({
|
|
224
240
|
width: _Platform.default.select({
|
|
@@ -56,9 +56,12 @@ function invertPosition(position) {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
function findRectByPosition(position, rectsArray) {
|
|
59
|
-
return rectsArray.find(
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
return rectsArray.find(_ref => {
|
|
60
|
+
let {
|
|
61
|
+
position: rectPosition
|
|
62
|
+
} = _ref;
|
|
63
|
+
return rectPosition === position;
|
|
64
|
+
});
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
64
67
|
* Used for absolute positioning of the tooltip. Since the tooltip is always centered relatively
|
|
@@ -70,13 +73,14 @@ function findRectByPosition(position, rectsArray) {
|
|
|
70
73
|
*/
|
|
71
74
|
|
|
72
75
|
|
|
73
|
-
function getTooltipPosition(position, {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
function getTooltipPosition(position, _ref2) {
|
|
77
|
+
let {
|
|
78
|
+
controlLayout,
|
|
79
|
+
tooltipDimensions,
|
|
80
|
+
windowDimensions,
|
|
81
|
+
arrowWidth = 0,
|
|
82
|
+
arrowOffset = 0
|
|
83
|
+
} = _ref2;
|
|
80
84
|
const {
|
|
81
85
|
width: controlWidth,
|
|
82
86
|
height: controlHeight,
|
|
@@ -146,9 +150,12 @@ function getTooltipPosition(position, {
|
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
|
|
149
|
-
const inWindow = boundingRects.filter(
|
|
150
|
-
|
|
151
|
-
|
|
153
|
+
const inWindow = boundingRects.filter(_ref3 => {
|
|
154
|
+
let {
|
|
155
|
+
overflow
|
|
156
|
+
} = _ref3;
|
|
157
|
+
return overflow === 0;
|
|
158
|
+
}); // pick the first position that fits in window
|
|
152
159
|
// (these are sorted clockwise which makes them show where one would expect them to be)
|
|
153
160
|
|
|
154
161
|
if (inWindow.length > 0) {
|
|
@@ -157,11 +164,15 @@ function getTooltipPosition(position, {
|
|
|
157
164
|
// the least overflowing and normalize its position to fit within window bounds
|
|
158
165
|
|
|
159
166
|
|
|
160
|
-
boundingRects.sort(({
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
boundingRects.sort((_ref4, _ref5) => {
|
|
168
|
+
let {
|
|
169
|
+
overflow: overflowA
|
|
170
|
+
} = _ref4;
|
|
171
|
+
let {
|
|
172
|
+
overflow: overflowB
|
|
173
|
+
} = _ref5;
|
|
174
|
+
return overflowA - overflowB;
|
|
175
|
+
});
|
|
165
176
|
const leastOverflowing = boundingRects[0]; // prefer 'below' over 'above', since we can always expand the document downwards,
|
|
166
177
|
// and 'above' might cause issues on small viewports with large tooltips
|
|
167
178
|
|
|
@@ -23,24 +23,30 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
23
23
|
|
|
24
24
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
25
25
|
|
|
26
|
-
const selectInnerContainerStyles =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
const selectInnerContainerStyles = _ref => {
|
|
27
|
+
let {
|
|
28
|
+
borderRadius,
|
|
29
|
+
width
|
|
30
|
+
} = _ref;
|
|
31
|
+
return {
|
|
32
|
+
borderRadius,
|
|
33
|
+
width
|
|
34
|
+
};
|
|
35
|
+
};
|
|
33
36
|
|
|
34
|
-
const selectIconTokens =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
const selectIconTokens = _ref2 => {
|
|
38
|
+
let {
|
|
39
|
+
iconSize,
|
|
40
|
+
iconColor
|
|
41
|
+
/* iconScale = 1 */
|
|
38
42
|
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
} = _ref2;
|
|
44
|
+
return {
|
|
45
|
+
size: iconSize,
|
|
46
|
+
color: iconColor // scale: iconScale TODO re-enable with icon component
|
|
42
47
|
|
|
43
|
-
}
|
|
48
|
+
};
|
|
49
|
+
};
|
|
44
50
|
/**
|
|
45
51
|
* `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
|
|
46
52
|
* In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
|
|
@@ -48,12 +54,13 @@ const selectIconTokens = ({
|
|
|
48
54
|
*/
|
|
49
55
|
|
|
50
56
|
|
|
51
|
-
const TooltipButton =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
const TooltipButton = _ref3 => {
|
|
58
|
+
let {
|
|
59
|
+
pressableState,
|
|
60
|
+
tokens,
|
|
61
|
+
variant,
|
|
62
|
+
...rest
|
|
63
|
+
} = _ref3;
|
|
57
64
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TooltipButton', tokens, variant, pressableState);
|
|
58
65
|
const {
|
|
59
66
|
icon: IconComponent
|