@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
|
@@ -31,27 +31,29 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
31
31
|
|
|
32
32
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.textInputHandlerProps, _utils.textInputProps, _utils.viewProps]);
|
|
33
33
|
|
|
34
|
-
const selectInputStyles = ({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
34
|
+
const selectInputStyles = (_ref, inactive) => {
|
|
35
|
+
let {
|
|
36
|
+
backgroundColor,
|
|
37
|
+
color,
|
|
38
|
+
borderWidth = 0,
|
|
39
|
+
borderColor,
|
|
40
|
+
borderRadius,
|
|
41
|
+
paddingTop = 0,
|
|
42
|
+
paddingBottom = 0,
|
|
43
|
+
paddingLeft,
|
|
44
|
+
paddingRight = 0,
|
|
45
|
+
fontName,
|
|
46
|
+
fontSize,
|
|
47
|
+
fontWeight,
|
|
48
|
+
lineHeight,
|
|
49
|
+
icon,
|
|
50
|
+
iconSize = 0,
|
|
51
|
+
minLines,
|
|
52
|
+
maxLines,
|
|
53
|
+
width,
|
|
54
|
+
height
|
|
55
|
+
} = _ref;
|
|
56
|
+
|
|
55
57
|
// Subtract border width from padding so overall input width/height doesn't
|
|
56
58
|
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
57
59
|
const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
@@ -102,52 +104,62 @@ const selectInputStyles = ({
|
|
|
102
104
|
};
|
|
103
105
|
};
|
|
104
106
|
|
|
105
|
-
const selectOuterBorderStyles =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
outerBorderColor,
|
|
109
|
-
borderRadius
|
|
110
|
-
}) => ({
|
|
111
|
-
background: outerBackgroundColor,
|
|
112
|
-
...(0, _ThemeProvider.applyOuterBorder)({
|
|
113
|
-
outerBorderColor,
|
|
107
|
+
const selectOuterBorderStyles = _ref2 => {
|
|
108
|
+
let {
|
|
109
|
+
outerBackgroundColor,
|
|
114
110
|
outerBorderWidth,
|
|
111
|
+
outerBorderColor,
|
|
115
112
|
borderRadius
|
|
116
|
-
}
|
|
117
|
-
|
|
113
|
+
} = _ref2;
|
|
114
|
+
return {
|
|
115
|
+
background: outerBackgroundColor,
|
|
116
|
+
...(0, _ThemeProvider.applyOuterBorder)({
|
|
117
|
+
outerBorderColor,
|
|
118
|
+
outerBorderWidth,
|
|
119
|
+
borderRadius
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
};
|
|
118
123
|
|
|
119
|
-
const selectIconTokens =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
const selectIconTokens = _ref3 => {
|
|
125
|
+
let {
|
|
126
|
+
iconSize,
|
|
127
|
+
iconColor
|
|
128
|
+
} = _ref3;
|
|
129
|
+
return {
|
|
130
|
+
size: iconSize,
|
|
131
|
+
color: iconColor
|
|
132
|
+
};
|
|
133
|
+
};
|
|
126
134
|
|
|
127
|
-
const selectIconContainerStyles =
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
135
|
+
const selectIconContainerStyles = _ref4 => {
|
|
136
|
+
let {
|
|
137
|
+
paddingRight,
|
|
138
|
+
paddingBottom
|
|
139
|
+
} = _ref4;
|
|
140
|
+
return {
|
|
141
|
+
paddingRight,
|
|
142
|
+
paddingBottom
|
|
143
|
+
};
|
|
144
|
+
};
|
|
134
145
|
|
|
135
|
-
const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
147
|
+
let {
|
|
148
|
+
value,
|
|
149
|
+
height,
|
|
150
|
+
initialValue,
|
|
151
|
+
inactive,
|
|
152
|
+
readOnly,
|
|
153
|
+
onChange,
|
|
154
|
+
onChangeText,
|
|
155
|
+
onFocus,
|
|
156
|
+
onBlur,
|
|
157
|
+
onMouseOver,
|
|
158
|
+
onMouseOut,
|
|
159
|
+
tokens,
|
|
160
|
+
variant = {},
|
|
161
|
+
...rest
|
|
162
|
+
} = _ref5;
|
|
151
163
|
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
152
164
|
|
|
153
165
|
const handleFocus = event => {
|
package/lib/TextInput/index.js
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "TextArea", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _TextArea.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "TextInput", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _TextInput.default;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.uninitialisedError = exports.default = exports.ThemeSetterContext = exports.ThemeContext = void 0;
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
@@ -26,10 +26,11 @@ exports.ThemeContext = ThemeContext;
|
|
|
26
26
|
const ThemeSetterContext = /*#__PURE__*/(0, _react.createContext)(uninitialisedError);
|
|
27
27
|
exports.ThemeSetterContext = ThemeSetterContext;
|
|
28
28
|
|
|
29
|
-
const ThemeProvider =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const ThemeProvider = _ref => {
|
|
30
|
+
let {
|
|
31
|
+
children,
|
|
32
|
+
defaultTheme
|
|
33
|
+
} = _ref;
|
|
33
34
|
const [theme, setTheme] = (0, _react.useState)(defaultTheme); // Validate the theme tokens version on every render.
|
|
34
35
|
// This will intentionally break the application when attempting to use an invalid theme.
|
|
35
36
|
// This will surface an incompatibility quickly rather than allowing the potential for strange bugs due to missing or incompatible tokens.
|
|
@@ -7,19 +7,19 @@ var _exportNames = {
|
|
|
7
7
|
useTheme: true,
|
|
8
8
|
useSetTheme: true
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
Object.defineProperty(exports, "useSetTheme", {
|
|
11
12
|
enumerable: true,
|
|
12
13
|
get: function () {
|
|
13
|
-
return
|
|
14
|
+
return _useSetTheme.default;
|
|
14
15
|
}
|
|
15
16
|
});
|
|
16
|
-
Object.defineProperty(exports, "
|
|
17
|
+
Object.defineProperty(exports, "useTheme", {
|
|
17
18
|
enumerable: true,
|
|
18
19
|
get: function () {
|
|
19
|
-
return
|
|
20
|
+
return _useTheme.default;
|
|
20
21
|
}
|
|
21
22
|
});
|
|
22
|
-
exports.default = void 0;
|
|
23
23
|
|
|
24
24
|
var _ThemeProvider = _interopRequireDefault(require("./ThemeProvider"));
|
|
25
25
|
|
|
@@ -18,9 +18,12 @@ const useSetTheme = () => {
|
|
|
18
18
|
} // Merge provided object into current theme
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
const editTheme = (0, _react.useCallback)(newTheme => setTheme((
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const editTheme = (0, _react.useCallback)(newTheme => setTheme(function () {
|
|
22
|
+
let oldTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
|
+
return { ...oldTheme,
|
|
24
|
+
...newTheme
|
|
25
|
+
};
|
|
26
|
+
}), [setTheme]);
|
|
24
27
|
return {
|
|
25
28
|
setTheme,
|
|
26
29
|
editTheme
|
|
@@ -45,7 +45,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
45
45
|
* @param {AppearanceSet} [states] - optional object containing current theme appearances dictated by user action or context
|
|
46
46
|
* @returns {TokensSet} - the currently-applicable resolved set of theme tokens to apply
|
|
47
47
|
*/
|
|
48
|
-
const useThemeTokens = (componentName
|
|
48
|
+
const useThemeTokens = function (componentName) {
|
|
49
|
+
let tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
50
|
+
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
51
|
+
let states = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
49
52
|
const theme = (0, _useTheme.default)();
|
|
50
53
|
const componentTheme = (0, _utils.getComponentTheme)(theme, componentName);
|
|
51
54
|
const themeTokens = (0, _utils.getThemeTokens)(componentTheme, tokens, variants, states);
|
|
@@ -107,7 +110,9 @@ const useThemeTokens = (componentName, tokens = {}, variants = {}, states = {})
|
|
|
107
110
|
|
|
108
111
|
exports.useThemeTokens = useThemeTokens;
|
|
109
112
|
|
|
110
|
-
const useThemeTokensCallback = (componentName
|
|
113
|
+
const useThemeTokensCallback = function (componentName) {
|
|
114
|
+
let tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
115
|
+
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
111
116
|
const theme = (0, _useTheme.default)();
|
|
112
117
|
const componentTheme = (0, _utils.getComponentTheme)(theme, componentName);
|
|
113
118
|
const getThemeTokensCallback = (0, _react.useCallback)((states, tokenOverrides) => {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.applyOuterBorder = void 0;
|
|
7
7
|
exports.applyShadowToken = applyShadowToken;
|
|
8
|
+
exports.applyTextStyles = applyTextStyles;
|
|
8
9
|
exports.verticalAlignRow = verticalAlignRow;
|
|
9
|
-
exports.applyOuterBorder = void 0;
|
|
10
10
|
|
|
11
11
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
12
12
|
|
|
@@ -19,16 +19,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
* don't map directly to cross-platform design token values.
|
|
20
20
|
*/
|
|
21
21
|
// Make design tokens fit React Native's text styles' specific requirements and quirks
|
|
22
|
-
function applyTextStyles({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
function applyTextStyles(_ref) {
|
|
23
|
+
let {
|
|
24
|
+
fontSize,
|
|
25
|
+
fontScaleCap,
|
|
26
|
+
lineHeight,
|
|
27
|
+
letterSpacing,
|
|
28
|
+
fontWeight = '400',
|
|
29
|
+
fontName,
|
|
30
|
+
fontStyle = 'normal',
|
|
31
|
+
...rest
|
|
32
|
+
} = _ref;
|
|
32
33
|
const styles = { ...rest
|
|
33
34
|
};
|
|
34
35
|
|
|
@@ -50,7 +51,7 @@ function applyTextStyles({
|
|
|
50
51
|
if (fontName) {
|
|
51
52
|
// Don't set undefined font families. May need some validation here that the font is available.
|
|
52
53
|
// Android doesn't recognise font weights natively so apply custom font weights via `fontFamily`.
|
|
53
|
-
styles.fontFamily =
|
|
54
|
+
styles.fontFamily = "".concat(fontName).concat(fontWeight).concat(fontStyle);
|
|
54
55
|
} else if (fontWeight) {
|
|
55
56
|
// If using system default font, apply the font weight directly.
|
|
56
57
|
// Font weight support in Android is limited to 'bold' or anything else === 'normal'.
|
|
@@ -89,17 +90,18 @@ function applyShadowToken(shadowToken) {
|
|
|
89
90
|
return applyShadow();
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
function applyWebShadow({
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
function applyWebShadow(_ref2) {
|
|
94
|
+
let {
|
|
95
|
+
inset,
|
|
96
|
+
color = '',
|
|
97
|
+
offsetX = 0,
|
|
98
|
+
offsetY = 0,
|
|
99
|
+
blur = 0,
|
|
100
|
+
spread = 0
|
|
101
|
+
} = _ref2;
|
|
100
102
|
const insetString = inset ? 'inset ' : '';
|
|
101
103
|
const boxShadow = {
|
|
102
|
-
boxShadow:
|
|
104
|
+
boxShadow: "".concat(insetString).concat(offsetX, "px ").concat(offsetY, "px ").concat(blur, "px ").concat(spread, "px ").concat(color)
|
|
103
105
|
};
|
|
104
106
|
return boxShadow;
|
|
105
107
|
}
|
|
@@ -128,14 +130,15 @@ function applyAndroidShadow(shadowToken) {
|
|
|
128
130
|
return {};
|
|
129
131
|
}
|
|
130
132
|
|
|
131
|
-
function applyIosShadow({
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
133
|
+
function applyIosShadow(_ref3) {
|
|
134
|
+
let {
|
|
135
|
+
inset,
|
|
136
|
+
color,
|
|
137
|
+
offsetX,
|
|
138
|
+
offsetY,
|
|
139
|
+
spread,
|
|
140
|
+
blur
|
|
141
|
+
} = _ref3;
|
|
139
142
|
// React Native iOS doesn't support inset shadows.
|
|
140
143
|
// TODO: maybe use a library or workaround for inset shadows. This is a sizable task and would
|
|
141
144
|
// involve changing component implementations to use a custom view, can't be done with styles alone.
|
|
@@ -167,7 +170,8 @@ const verticalAlignToFlexRowAlign = {
|
|
|
167
170
|
bottom: 'flex-end'
|
|
168
171
|
};
|
|
169
172
|
|
|
170
|
-
function verticalAlignRow(verticalAlign
|
|
173
|
+
function verticalAlignRow(verticalAlign) {
|
|
174
|
+
let reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
171
175
|
return {
|
|
172
176
|
flexDirection: reverse ? 'row-reverse' : 'row',
|
|
173
177
|
alignItems: verticalAlignToFlexRowAlign[verticalAlign]
|
|
@@ -179,17 +183,20 @@ function verticalAlignRow(verticalAlign, reverse = false) {
|
|
|
179
183
|
*/
|
|
180
184
|
|
|
181
185
|
|
|
182
|
-
const applyOuterBorder =
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
186
|
+
const applyOuterBorder = _ref4 => {
|
|
187
|
+
let {
|
|
188
|
+
outerBorderColor,
|
|
189
|
+
outerBorderWidth = 0,
|
|
190
|
+
outerBorderGap = 0,
|
|
191
|
+
borderRadius = 0
|
|
192
|
+
} = _ref4;
|
|
193
|
+
return {
|
|
194
|
+
margin: 0 - outerBorderWidth - outerBorderGap,
|
|
195
|
+
padding: outerBorderGap,
|
|
196
|
+
borderRadius: borderRadius + outerBorderGap + outerBorderWidth,
|
|
197
|
+
borderWidth: outerBorderWidth,
|
|
198
|
+
borderColor: outerBorderColor
|
|
199
|
+
};
|
|
200
|
+
};
|
|
194
201
|
|
|
195
202
|
exports.applyOuterBorder = applyOuterBorder;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.validateThemeTokensVersion = exports.
|
|
6
|
+
exports.validateThemeTokensVersion = exports.validateThemeTokens = exports.toArray = exports.resolveThemeTokens = exports.mergeAppearances = exports.getThemeTokens = exports.getComponentTheme = exports.doesThemeRuleApply = exports.doesThemeConditionApply = void 0;
|
|
7
7
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
|
|
@@ -28,19 +28,19 @@ const getComponentTheme = (theme, componentName) => {
|
|
|
28
28
|
// Give clear and understandable error messages for common dev errors, for example,
|
|
29
29
|
// typo in component name, missing export or accessing old version of theme
|
|
30
30
|
if (!theme) {
|
|
31
|
-
throw new Error(
|
|
31
|
+
throw new Error("Called useTheme's getStyle on \"".concat(componentName, "\" with no theme provided"));
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
const themeName = ((_theme$metadata = theme.metadata) === null || _theme$metadata === void 0 ? void 0 : _theme$metadata.name) || '';
|
|
35
35
|
|
|
36
36
|
if (!theme.components) {
|
|
37
|
-
throw new Error(
|
|
37
|
+
throw new Error("Theme \"".concat(themeName, "\" has no components defined (looking for \"").concat(componentName, "\")"));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const componentTheme = theme.components[componentName];
|
|
41
41
|
|
|
42
42
|
if (!componentTheme) {
|
|
43
|
-
throw new Error(
|
|
43
|
+
throw new Error("Theme \"".concat(themeName, "\" does not have styles for component \"").concat(componentName, "\""));
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
return componentTheme;
|
|
@@ -48,9 +48,12 @@ const getComponentTheme = (theme, componentName) => {
|
|
|
48
48
|
|
|
49
49
|
exports.getComponentTheme = getComponentTheme;
|
|
50
50
|
|
|
51
|
-
const doesThemeConditionApply = (
|
|
51
|
+
const doesThemeConditionApply = (_ref, appearances) => {
|
|
52
|
+
var _appearances$key;
|
|
53
|
+
|
|
54
|
+
let [key, value] = _ref;
|
|
52
55
|
// use null rather than undefined so we can serialise the value in themes
|
|
53
|
-
const appearanceValue = appearances[key]
|
|
56
|
+
const appearanceValue = (_appearances$key = appearances[key]) !== null && _appearances$key !== void 0 ? _appearances$key : null;
|
|
54
57
|
return Array.isArray(value) ? value.includes(appearanceValue) : value === appearanceValue;
|
|
55
58
|
};
|
|
56
59
|
|
|
@@ -77,12 +80,18 @@ const doesThemeRuleApply = (rule, appearances) => Object.entries(rule.if).every(
|
|
|
77
80
|
|
|
78
81
|
exports.doesThemeRuleApply = doesThemeRuleApply;
|
|
79
82
|
|
|
80
|
-
const resolveThemeTokens = (defaultTokens
|
|
83
|
+
const resolveThemeTokens = function (defaultTokens) {
|
|
84
|
+
let appearances = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
85
|
+
let tokenOverrides = arguments.length > 2 ? arguments[2] : undefined;
|
|
86
|
+
|
|
81
87
|
const resolve = tokens => typeof tokens === 'function' ? tokens(appearances) : tokens;
|
|
82
88
|
|
|
83
89
|
if (!tokenOverrides) return resolve(defaultTokens);
|
|
84
|
-
return Object.entries(resolve(tokenOverrides)).reduce((mergedTokens,
|
|
85
|
-
[tokenName]
|
|
90
|
+
return Object.entries(resolve(tokenOverrides)).reduce((mergedTokens, _ref2) => {
|
|
91
|
+
let [tokenName, tokenValue] = _ref2;
|
|
92
|
+
return tokenValue === undefined ? mergedTokens : { ...mergedTokens,
|
|
93
|
+
[tokenName]: tokenValue
|
|
94
|
+
};
|
|
86
95
|
}, resolve(defaultTokens));
|
|
87
96
|
};
|
|
88
97
|
/**
|
|
@@ -122,9 +131,13 @@ const validateThemeTokens = (themeTokens, validator, componentName) => {
|
|
|
122
131
|
|
|
123
132
|
exports.validateThemeTokens = validateThemeTokens;
|
|
124
133
|
|
|
125
|
-
const mergeAppearances = (
|
|
126
|
-
|
|
127
|
-
|
|
134
|
+
const mergeAppearances = function () {
|
|
135
|
+
let variants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
136
|
+
let states = arguments.length > 1 ? arguments[1] : undefined;
|
|
137
|
+
return states ? { ...states,
|
|
138
|
+
...variants
|
|
139
|
+
} : variants;
|
|
140
|
+
};
|
|
128
141
|
/**
|
|
129
142
|
* Get a set of theme tokens by applying a theme's component rules based on a component's variants and state.
|
|
130
143
|
*
|
|
@@ -140,10 +153,13 @@ const mergeAppearances = (variants = {}, states) => states ? { ...states,
|
|
|
140
153
|
|
|
141
154
|
exports.mergeAppearances = mergeAppearances;
|
|
142
155
|
|
|
143
|
-
const getThemeTokens = ({
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
156
|
+
const getThemeTokens = function (_ref3, tokensProp) {
|
|
157
|
+
let {
|
|
158
|
+
rules = [],
|
|
159
|
+
tokens: defaultThemeTokens = {}
|
|
160
|
+
} = _ref3;
|
|
161
|
+
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
162
|
+
let states = arguments.length > 3 ? arguments[3] : undefined;
|
|
147
163
|
const appearances = mergeAppearances(variants, states); // TODO: if in dev mode, validate the appearances and provided propTokens
|
|
148
164
|
// Get the theme's default tokens set and merge tokens from applicable theme rules over it
|
|
149
165
|
|
|
@@ -178,11 +194,7 @@ const validateThemeTokensVersion = theme => {
|
|
|
178
194
|
const actualThemeTokensVersion = theme === null || theme === void 0 ? void 0 : (_theme$metadata2 = theme.metadata) === null || _theme$metadata2 === void 0 ? void 0 : _theme$metadata2.themeTokensVersion;
|
|
179
195
|
|
|
180
196
|
if (!(0, _satisfies.default)(actualThemeTokensVersion, expectedThemeTokensVersion)) {
|
|
181
|
-
throw new Error(
|
|
182
|
-
|
|
183
|
-
The UDS base components ${_package.default.name} v${_package.default.version} are only compatible with UDS themes that are built with @telus-uds/system-theme-tokens version that is semver compatible with ${expectedThemeTokensVersion}. The current theme was built with @telus-uds/system-theme-tokens v${actualThemeTokensVersion}.
|
|
184
|
-
|
|
185
|
-
If you see this error than most likely you have attempted to install ${_package.default.name} and a UDS theme manually because you are building a multi-brand application. If you are building a single brand application, consider installing the brand specific design system package such as @telus-uds/ds-allium. For more information, see https://github.com/telus/universal-design-system/blob/main/packages/docs-uds/docs/multi-brand-usage.md`);
|
|
197
|
+
throw new Error("Invalid UDS token schema version detected.\n\nThe UDS base components ".concat(_package.default.name, " v").concat(_package.default.version, " are only compatible with UDS themes that are built with @telus-uds/system-theme-tokens version that is semver compatible with ").concat(expectedThemeTokensVersion, ". The current theme was built with @telus-uds/system-theme-tokens v").concat(actualThemeTokensVersion, ".\n\nIf you see this error than most likely you have attempted to install ").concat(_package.default.name, " and a UDS theme manually because you are building a multi-brand application. If you are building a single brand application, consider installing the brand specific design system package such as @telus-uds/ds-allium. For more information, see https://github.com/telus/universal-design-system/blob/main/packages/docs-uds/docs/multi-brand-usage.md"));
|
|
186
198
|
}
|
|
187
199
|
};
|
|
188
200
|
|