@telus-uds/components-base 1.71.0 → 1.73.0

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.
Files changed (115) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/lib/Box/Box.js +17 -6
  3. package/lib/ColourToggle/ColourBubble.js +135 -0
  4. package/lib/ColourToggle/ColourToggle.js +101 -0
  5. package/lib/ColourToggle/index.js +10 -0
  6. package/lib/FlexGrid/Col/Col.js +42 -19
  7. package/lib/FlexGrid/FlexGrid.js +40 -17
  8. package/lib/FlexGrid/Row/Row.js +45 -22
  9. package/lib/Listbox/ListboxGroup.js +7 -1
  10. package/lib/Modal/ModalContent.js +4 -6
  11. package/lib/MultiSelectFilter/MultiSelectFilter.js +1 -0
  12. package/lib/Notification/Notification.js +13 -5
  13. package/lib/OrderedList/Item.js +180 -0
  14. package/lib/OrderedList/ItemBase.js +54 -0
  15. package/lib/OrderedList/OrderedList.js +71 -0
  16. package/lib/OrderedList/OrderedListBase.js +47 -0
  17. package/lib/OrderedList/index.js +10 -0
  18. package/lib/Responsive/Responsive.js +24 -14
  19. package/lib/Responsive/ResponsiveProp.js +46 -0
  20. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +72 -0
  21. package/lib/ThemeProvider/ThemeProvider.js +5 -2
  22. package/lib/ThemeProvider/index.js +9 -1
  23. package/lib/ThemeProvider/useResponsiveThemeTokens.js +89 -0
  24. package/lib/Typography/Typography.js +48 -22
  25. package/lib/index.js +16 -0
  26. package/lib/server.js +40 -0
  27. package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +56 -0
  28. package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +10 -0
  29. package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +10 -0
  30. package/lib/utils/ssr-media-query/create-stylesheet/index.js +44 -0
  31. package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +39 -6
  32. package/lib-module/Box/Box.js +17 -6
  33. package/lib-module/ColourToggle/ColourBubble.js +125 -0
  34. package/lib-module/ColourToggle/ColourToggle.js +92 -0
  35. package/lib-module/ColourToggle/index.js +2 -0
  36. package/lib-module/FlexGrid/Col/Col.js +42 -19
  37. package/lib-module/FlexGrid/FlexGrid.js +40 -17
  38. package/lib-module/FlexGrid/Row/Row.js +45 -22
  39. package/lib-module/Listbox/ListboxGroup.js +7 -1
  40. package/lib-module/Modal/ModalContent.js +4 -6
  41. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +1 -0
  42. package/lib-module/Notification/Notification.js +13 -5
  43. package/lib-module/OrderedList/Item.js +171 -0
  44. package/lib-module/OrderedList/ItemBase.js +43 -0
  45. package/lib-module/OrderedList/OrderedList.js +61 -0
  46. package/lib-module/OrderedList/OrderedListBase.js +36 -0
  47. package/lib-module/OrderedList/index.js +2 -0
  48. package/lib-module/Responsive/Responsive.js +24 -15
  49. package/lib-module/Responsive/ResponsiveProp.js +39 -0
  50. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +64 -0
  51. package/lib-module/ThemeProvider/ThemeProvider.js +5 -2
  52. package/lib-module/ThemeProvider/index.js +1 -0
  53. package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +81 -0
  54. package/lib-module/Typography/Typography.js +50 -24
  55. package/lib-module/index.js +2 -0
  56. package/lib-module/server.js +4 -0
  57. package/lib-module/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +48 -0
  58. package/lib-module/utils/ssr-media-query/create-stylesheet/index.android.js +2 -0
  59. package/lib-module/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -0
  60. package/lib-module/utils/ssr-media-query/create-stylesheet/index.js +36 -0
  61. package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +36 -6
  62. package/package.json +13 -2
  63. package/src/Box/Box.jsx +35 -17
  64. package/src/ColourToggle/ColourBubble.jsx +111 -0
  65. package/src/ColourToggle/ColourToggle.jsx +83 -0
  66. package/src/ColourToggle/index.js +3 -0
  67. package/src/FlexGrid/Col/Col.jsx +42 -13
  68. package/src/FlexGrid/FlexGrid.jsx +40 -11
  69. package/src/FlexGrid/Row/Row.jsx +40 -16
  70. package/src/Listbox/ListboxGroup.jsx +9 -2
  71. package/src/Modal/ModalContent.jsx +4 -6
  72. package/src/MultiSelectFilter/MultiSelectFilter.jsx +2 -0
  73. package/src/Notification/Notification.jsx +15 -3
  74. package/src/OrderedList/Item.jsx +152 -0
  75. package/src/OrderedList/ItemBase.jsx +43 -0
  76. package/src/OrderedList/OrderedList.jsx +61 -0
  77. package/src/OrderedList/OrderedListBase.jsx +33 -0
  78. package/src/OrderedList/index.js +3 -0
  79. package/src/Responsive/Responsive.jsx +24 -11
  80. package/src/Responsive/ResponsiveProp.jsx +33 -0
  81. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +58 -0
  82. package/src/ThemeProvider/ThemeProvider.jsx +5 -2
  83. package/src/ThemeProvider/index.js +1 -0
  84. package/src/ThemeProvider/useResponsiveThemeTokens.js +85 -0
  85. package/src/Typography/Typography.jsx +72 -24
  86. package/src/index.js +2 -0
  87. package/src/server.js +4 -0
  88. package/src/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +41 -0
  89. package/src/utils/ssr-media-query/create-stylesheet/index.android.js +3 -0
  90. package/src/utils/ssr-media-query/create-stylesheet/index.ios.js +3 -0
  91. package/src/utils/ssr-media-query/create-stylesheet/index.js +33 -0
  92. package/src/utils/ssr-media-query/utils/create-media-query-styles.js +21 -6
  93. package/types/Badge.d.ts +28 -0
  94. package/types/Box.d.ts +52 -0
  95. package/types/ChevronLink.d.ts +47 -0
  96. package/types/Common.d.ts +106 -0
  97. package/types/Divider.d.ts +19 -0
  98. package/types/ExpandCollapse.d.ts +65 -0
  99. package/types/HorizontalScrollButton.d.ts +16 -0
  100. package/types/Icon.d.ts +21 -0
  101. package/types/Link.d.ts +48 -0
  102. package/types/List.d.ts +48 -0
  103. package/types/Search.d.ts +38 -0
  104. package/types/Select.d.ts +57 -0
  105. package/types/Spacer.d.ts +5 -0
  106. package/types/StackView.d.ts +28 -0
  107. package/types/Tabs.d.ts +46 -0
  108. package/types/TextButton.d.ts +11 -0
  109. package/types/ToggleSwitch.d.ts +54 -0
  110. package/types/ToolTip.d.ts +40 -0
  111. package/types/Typography.d.ts +39 -0
  112. package/types/index.d.ts +62 -0
  113. package/lib/utils/ssr-media-query/create-stylesheet.js +0 -76
  114. package/lib-module/utils/ssr-media-query/create-stylesheet.js +0 -68
  115. package/src/utils/ssr-media-query/create-stylesheet.js +0 -61
package/CHANGELOG.md CHANGED
@@ -1,12 +1,47 @@
1
1
  # Change Log - @telus-uds/components-base
2
2
 
3
- This log was last generated on Fri, 01 Dec 2023 20:57:37 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 08 Jan 2024 20:08:06 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.73.0
8
+
9
+ Mon, 08 Jan 2024 20:08:06 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - RNMQ integration to Responsive component (srikanthkhari@gmail.com)
14
+ - Changes in the Notification component (35577399+JoshHC@users.noreply.github.com)
15
+ - Support server component (wlsdud194@hotmail.com)
16
+ - Changes to the box component for allow gradient in mobile (35577399+JoshHC@users.noreply.github.com)
17
+ - update story for badge to include subtle variant (evander.owusu@telus.com)
18
+ - Bump @telus-uds/system-theme-tokens to v2.49.0
19
+
20
+ ### Patches
21
+
22
+ - fix multiselectfilter controlled rendered values (guillermo.peitzner@telus.com)
23
+ - remove listitem accessibility role from android devices (guillermo.peitzner@telus.com)
24
+
25
+ ## 1.72.0
26
+
27
+ Wed, 13 Dec 2023 21:24:24 GMT
28
+
29
+ ### Minor changes
30
+
31
+ - refactor ordered-list for multiplatform (guillermo.peitzner@telus.com)
32
+ - copy over mta type files to components base (evander.owusu@telus.com)
33
+ - new Colourtoggle component (mauricio.batresmontejo@telus.com)
34
+ - Bump @telus-uds/system-theme-tokens to v2.48.0
35
+
36
+ ### Patches
37
+
38
+ - change to rnmq approach so rnw is not needed as dep for RN (srikanthkhari@gmail.com)
39
+ - adding viewport for consulting tokens (mauricio.batresmontejo@telus.com)
40
+ - fix modal content (mauricio.batresmontejo@telus.com)
41
+
7
42
  ## 1.71.0
8
43
 
9
- Fri, 01 Dec 2023 20:57:37 GMT
44
+ Fri, 01 Dec 2023 21:08:36 GMT
10
45
 
11
46
  ### Minor changes
12
47
 
package/lib/Box/Box.js CHANGED
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
10
  var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
11
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
12
  var _ThemeProvider = require("../ThemeProvider");
12
13
  var _utils = require("../utils");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -23,7 +24,7 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
23
24
  * @typedef {import('../utils/props/spacingProps.js').SpacingOptions} SpacingOptions
24
25
  */
25
26
 
26
- const selectBoxStyles = _ref => {
27
+ const selectBoxStyles = (_ref, customGradient) => {
27
28
  let {
28
29
  backgroundColor,
29
30
  gradient,
@@ -49,7 +50,11 @@ const selectBoxStyles = _ref => {
49
50
  angle,
50
51
  stops: [stopOne, stopTwo]
51
52
  } = gradient;
52
- styles.backgroundImage = `linear-gradient(${angle}deg, ${stopOne.color}, 75% , ${stopTwo.color})`;
53
+ if (_Platform.default.OS === 'web') {
54
+ styles.backgroundImage = `linear-gradient(${angle}deg, ${stopOne.color}, 75%, ${stopTwo.color})`;
55
+ } else if (customGradient && _Platform.default.OS !== 'web') {
56
+ styles.colors = [stopOne.color, stopTwo.color];
57
+ }
53
58
  }
54
59
  const paddings = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'];
55
60
  // Only set on styles if token provided because we spread this object after the spacing scale values
@@ -144,6 +149,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
144
149
  accessibilityRole,
145
150
  testID,
146
151
  dataSet,
152
+ customGradient,
147
153
  ...rest
148
154
  } = _ref2;
149
155
  const props = {
@@ -158,8 +164,9 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
158
164
  paddingRight: (0, _utils.useSpacingScale)(right),
159
165
  paddingTop: (0, _utils.useSpacingScale)(top),
160
166
  paddingBottom: (0, _utils.useSpacingScale)(bottom),
161
- ...selectBoxStyles(themeTokens)
167
+ ...selectBoxStyles(themeTokens, customGradient)
162
168
  };
169
+ const childrenToRender = typeof customGradient === 'function' ? customGradient(styles.colors, styles)(children) : children;
163
170
  if (scroll) {
164
171
  const scrollProps = typeof scroll === 'object' ? scroll : {};
165
172
  scrollProps.contentContainerStyle = [styles, scrollProps.contentContainerStyle];
@@ -169,7 +176,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
169
176
  testID: testID,
170
177
  dataSet: dataSet,
171
178
  ref: ref,
172
- children: children
179
+ children: childrenToRender
173
180
  });
174
181
  }
175
182
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -178,7 +185,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
178
185
  testID: testID,
179
186
  dataSet: dataSet,
180
187
  ref: ref,
181
- children: children
188
+ children: childrenToRender
182
189
  });
183
190
  });
184
191
  Box.displayName = 'Box';
@@ -262,7 +269,11 @@ Box.propTypes = {
262
269
  /**
263
270
  * Box accepts any content as children.
264
271
  */
265
- children: _propTypes.default.node.isRequired
272
+ children: _propTypes.default.node.isRequired,
273
+ /**
274
+ Use this prop if need to add a custom gradient for mobile
275
+ */
276
+ customGradient: _propTypes.default.func
266
277
  };
267
278
  var _default = Box;
268
279
  exports.default = _default;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
+ var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
11
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
12
+ var _pressability = require("../utils/pressability");
13
+ var _ThemeProvider = require("../ThemeProvider");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ const selectGeneralBubbleTokens = _ref => {
19
+ let {
20
+ outerBubbleHeight,
21
+ outerBubbleWidth,
22
+ outerBubbleContentAlignItems,
23
+ outerBubbleJustifyContent,
24
+ bubbleBorderColor,
25
+ bubbleBorderWidth,
26
+ bubbleBorderRadius
27
+ } = _ref;
28
+ return {
29
+ height: outerBubbleHeight,
30
+ width: outerBubbleWidth,
31
+ justifyContent: outerBubbleContentAlignItems,
32
+ alignItems: outerBubbleJustifyContent,
33
+ borderColor: bubbleBorderColor,
34
+ borderWidth: bubbleBorderWidth,
35
+ borderRadius: bubbleBorderRadius,
36
+ ..._Platform.default.select({
37
+ web: {
38
+ outline: 'none'
39
+ }
40
+ })
41
+ };
42
+ };
43
+ const selectInnerBubbleTokens = _ref2 => {
44
+ let {
45
+ innerBubbleHeight,
46
+ innerBubbleWidth,
47
+ innerBubbleBorderRadius,
48
+ borderColor,
49
+ borderWidth,
50
+ shadow
51
+ } = _ref2;
52
+ return {
53
+ height: innerBubbleHeight,
54
+ width: innerBubbleWidth,
55
+ borderRadius: innerBubbleBorderRadius,
56
+ borderColor,
57
+ borderWidth,
58
+ ...(0, _ThemeProvider.applyShadowToken)(shadow)
59
+ };
60
+ };
61
+ const selectBorderBubbleTokens = _ref3 => {
62
+ let {
63
+ bubbleBorderColor,
64
+ bubbleBorderWidth,
65
+ bubbleBorderRadius
66
+ } = _ref3;
67
+ return {
68
+ borderColor: bubbleBorderColor,
69
+ borderWidth: bubbleBorderWidth,
70
+ borderRadius: bubbleBorderRadius
71
+ };
72
+ };
73
+ const ColourBubble = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) => {
74
+ let {
75
+ tokens = {},
76
+ id,
77
+ colourHexCode,
78
+ colourName,
79
+ isSelected,
80
+ onPress
81
+ } = _ref4;
82
+ const defaultTokens = tokens({
83
+ selected: isSelected
84
+ });
85
+ const resolveColourBubbleTokens = pressState => (0, _pressability.resolvePressableTokens)(tokens, pressState, {});
86
+ const themeTokens = (0, _react.useMemo)(() => tokens(), [tokens]);
87
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
88
+ style: state => [selectGeneralBubbleTokens(resolveColourBubbleTokens(state)), isSelected && selectBorderBubbleTokens(defaultTokens)],
89
+ onPress: onPress,
90
+ accessible: true,
91
+ accessibilityRole: "radio",
92
+ accessibilityLabel: colourName,
93
+ accessibilityState: {
94
+ checked: isSelected
95
+ },
96
+ ref: ref,
97
+ testID: id,
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
99
+ style: [selectInnerBubbleTokens(themeTokens), {
100
+ backgroundColor: colourHexCode
101
+ }]
102
+ })
103
+ });
104
+ });
105
+ ColourBubble.displayName = 'ColourBubble';
106
+ ColourBubble.propTypes = {
107
+ /**
108
+ * Colour toggle tokens callback.
109
+ */
110
+ tokens: _propTypes.default.func,
111
+ /**
112
+ * ID of each colour bubble
113
+ */
114
+ id: _propTypes.default.string,
115
+ /**
116
+ * Hexadecimal code for the background of the colour bubble
117
+ */
118
+ colourHexCode: _propTypes.default.string,
119
+ /**
120
+ * Name of the colour bubble
121
+ */
122
+ colourName: _propTypes.default.string,
123
+ /**
124
+ * If the current colour bubble is selected
125
+ */
126
+ isSelected: _propTypes.default.bool,
127
+ /**
128
+ * If provided, this function is called when the current selection
129
+ * of the color is changed of all currently `items`.
130
+ * Receives two parameters: item object selected and the event
131
+ */
132
+ onPress: _propTypes.default.func
133
+ };
134
+ var _default = ColourBubble;
135
+ exports.default = _default;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _ThemeProvider = require("../ThemeProvider");
11
+ var _utils = require("../utils");
12
+ var _StackView = require("../StackView");
13
+ var _Typography = _interopRequireDefault(require("../Typography"));
14
+ var _ColourBubble = _interopRequireDefault(require("./ColourBubble"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
20
+ const ColourToggle = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
21
+ let {
22
+ tokens,
23
+ variant,
24
+ defaultColourId,
25
+ items,
26
+ onChange,
27
+ ...rest
28
+ } = _ref;
29
+ const [currentColourId, setCurrentColourId] = (0, _react.useState)(defaultColourId);
30
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('ColourToggle', tokens, variant);
31
+ const {
32
+ space
33
+ } = getTokens();
34
+ const {
35
+ colourName: currentColourName = ''
36
+ } = items.find(item => item.id === currentColourId) || '';
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
38
+ ref: ref,
39
+ ...selectProps(rest),
40
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
41
+ children: currentColourName
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, {
43
+ space: space,
44
+ accessibilityRole: "radiogroup",
45
+ children: items.map((_ref2, index) => {
46
+ let {
47
+ id,
48
+ colourHexCode,
49
+ colourName
50
+ } = _ref2;
51
+ const colourBubbleId = id || `ColourBubble[${index}]`;
52
+ const handleChangeColour = event => {
53
+ setCurrentColourId(id);
54
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, {
55
+ id,
56
+ colourHexCode,
57
+ colourName
58
+ });
59
+ };
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ColourBubble.default, {
61
+ id: colourBubbleId,
62
+ tokens: getTokens,
63
+ isSelected: id === currentColourId,
64
+ colourHexCode: colourHexCode,
65
+ colourName: colourName,
66
+ onPress: handleChangeColour
67
+ }, colourBubbleId);
68
+ })
69
+ })]
70
+ });
71
+ });
72
+ ColourToggle.displayName = 'ColourToggle';
73
+ ColourToggle.propTypes = {
74
+ ...selectedSystemPropTypes,
75
+ /**
76
+ * Optional theme token overrides for the outer ColourToggle component
77
+ */
78
+ tokens: (0, _utils.getTokensPropType)('ColourToggle'),
79
+ /**
80
+ * Colour toggle variant.
81
+ */
82
+ variant: _utils.variantProp.propType,
83
+ /**
84
+ * Id of the selected color when component mounts
85
+ */
86
+ defaultColourId: _propTypes.default.string,
87
+ /**
88
+ * Array of objects containing specifics for each ColourBubble to be rendered in the group.
89
+ */
90
+ items: _propTypes.default.arrayOf(_propTypes.default.exact({
91
+ colourHexCode: _propTypes.default.string,
92
+ colourName: _propTypes.default.string,
93
+ id: _propTypes.default.string
94
+ })),
95
+ /**
96
+ * If provided, this function is called when the current selection of the color is changed of all currently `items`. Receives two parameters: item object selected and the event
97
+ */
98
+ onChange: _propTypes.default.func
99
+ };
100
+ var _default = ColourToggle;
101
+ exports.default = _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _ColourToggle = _interopRequireDefault(require("./ColourToggle"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var _default = _ColourToggle.default;
10
+ exports.default = _default;
@@ -10,6 +10,8 @@ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/export
10
10
  var _GutterContext = _interopRequireDefault(require("../providers/GutterContext"));
11
11
  var _helpers = _interopRequireDefault(require("../helpers"));
12
12
  var _utils = require("../../utils");
13
+ var _ViewportProvider = require("../../ViewportProvider");
14
+ var _ThemeProvider = require("../../ThemeProvider");
13
15
  var _jsxRuntime = require("react/jsx-runtime");
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -32,6 +34,12 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
32
34
  ...viewProps
33
35
  } = _ref;
34
36
  const gutter = (0, _react.useContext)(_GutterContext.default);
37
+ const viewport = (0, _ViewportProvider.useViewport)();
38
+ const {
39
+ themeOptions: {
40
+ enableMediaQueryStyleSheet
41
+ }
42
+ } = (0, _ThemeProvider.useTheme)();
35
43
  const hiddenLevels = (0, _helpers.default)([xs, sm, md, lg, xl]);
36
44
  const getHorizontalAlignLevel = () => {
37
45
  if (typeof horizontalAlign === 'object') {
@@ -95,7 +103,15 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
95
103
  lg: offsetsWithIheritance[3],
96
104
  xl: offsetsWithIheritance[4]
97
105
  };
98
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
106
+ const staticStyles = {
107
+ flexGrow: 1,
108
+ flexShrink: 0,
109
+ flexBasis: 'auto',
110
+ maxWidth: '100%',
111
+ paddingLeft: gutter ? 16 : 0,
112
+ paddingRight: gutter ? 16 : 0
113
+ };
114
+ const stylesByViewport = {
99
115
  xs: {
100
116
  display: hiddenLevels[0] === 0 ? 'none' : shown,
101
117
  textAlign: horizontalAlignLevel[0],
@@ -126,27 +142,34 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
126
142
  ...calculateWidth(sizes.xl),
127
143
  ...calculateOffset(offsets.xl)
128
144
  }
129
- });
130
- const {
131
- ids,
132
- styles
133
- } = _utils.StyleSheet.create({
134
- col: {
135
- flexGrow: 1,
136
- flexShrink: 0,
137
- flexBasis: 'auto',
138
- maxWidth: '100%',
139
- paddingLeft: gutter ? 16 : 0,
140
- paddingRight: gutter ? 16 : 0,
141
- ...mediaQueryStyles
142
- }
143
- });
145
+ };
146
+ let colStyles;
147
+ let mediaIds;
148
+ if (enableMediaQueryStyleSheet) {
149
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
150
+ const {
151
+ ids,
152
+ styles
153
+ } = _utils.StyleSheet.create({
154
+ col: {
155
+ ...staticStyles,
156
+ ...mediaQueryStyles
157
+ }
158
+ });
159
+ colStyles = styles.col;
160
+ mediaIds = ids.col;
161
+ } else {
162
+ colStyles = {
163
+ ...staticStyles,
164
+ ...stylesByViewport[viewport]
165
+ };
166
+ }
144
167
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
145
168
  ref: ref,
146
169
  ...viewProps,
147
- style: [styles.col],
148
- dataSet: {
149
- media: ids.col
170
+ style: colStyles,
171
+ dataSet: mediaIds && {
172
+ media: mediaIds
150
173
  },
151
174
  children: children
152
175
  });
@@ -12,6 +12,8 @@ var _Row = _interopRequireDefault(require("./Row"));
12
12
  var _Col = _interopRequireDefault(require("./Col"));
13
13
  var _GutterContext = _interopRequireDefault(require("./providers/GutterContext"));
14
14
  var _helpers = _interopRequireDefault(require("./helpers"));
15
+ var _ThemeProvider = require("../ThemeProvider");
16
+ var _ViewportProvider = require("../ViewportProvider");
15
17
  var _jsxRuntime = require("react/jsx-runtime");
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -38,7 +40,15 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
38
40
  ...rest
39
41
  } = _ref;
40
42
  const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
41
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
43
+ const viewport = (0, _ViewportProvider.useViewport)();
44
+ const {
45
+ themeOptions: {
46
+ enableMediaQueryStyleSheet
47
+ }
48
+ } = (0, _ThemeProvider.useTheme)();
49
+ let flexgridStyles;
50
+ let mediaIds;
51
+ const stylesByViewport = {
42
52
  xs: {
43
53
  flexDirection: reverseLevel[0] ? 'column-reverse' : 'column'
44
54
  },
@@ -58,19 +68,32 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
58
68
  maxWidth: limitWidth && _systemConstants.viewports.map.get('xl'),
59
69
  flexDirection: reverseLevel[4] ? 'column-reverse' : 'column'
60
70
  }
61
- });
62
- const {
63
- ids,
64
- styles
65
- } = _utils.StyleSheet.create({
66
- flexgrid: {
67
- flexWrap: 'wrap',
68
- width: outsideGutter ? '100%' : 'auto',
69
- marginVertical: 0,
70
- marginHorizontal: outsideGutter ? 'auto' : -16,
71
- ...mediaQueryStyles
72
- }
73
- });
71
+ };
72
+ const staticStyles = {
73
+ flexWrap: 'wrap',
74
+ width: outsideGutter ? '100%' : 'auto',
75
+ marginVertical: 0,
76
+ marginHorizontal: outsideGutter ? 'auto' : -16
77
+ };
78
+ if (enableMediaQueryStyleSheet) {
79
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
80
+ const {
81
+ ids,
82
+ styles
83
+ } = _utils.StyleSheet.create({
84
+ flexgrid: {
85
+ ...staticStyles,
86
+ ...mediaQueryStyles
87
+ }
88
+ });
89
+ flexgridStyles = styles.flexgrid;
90
+ mediaIds = ids.flexgrid;
91
+ } else {
92
+ flexgridStyles = {
93
+ ...staticStyles,
94
+ ...stylesByViewport[viewport]
95
+ };
96
+ }
74
97
  const props = {
75
98
  accessibilityRole,
76
99
  ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
@@ -81,9 +104,9 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
81
104
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
82
105
  ref: ref,
83
106
  ...props,
84
- style: [styles.flexgrid],
85
- dataSet: {
86
- media: ids.flexgrid
107
+ style: flexgridStyles,
108
+ dataSet: mediaIds && {
109
+ media: mediaIds
87
110
  },
88
111
  children: children
89
112
  })
@@ -8,6 +8,8 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _helpers = _interopRequireDefault(require("../helpers"));
10
10
  var _utils = require("../../utils");
11
+ var _ThemeProvider = require("../../ThemeProvider");
12
+ var _ViewportProvider = require("../../ViewportProvider");
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -78,8 +80,25 @@ const Row = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
78
80
  children,
79
81
  ...rest
80
82
  } = _ref;
83
+ const {
84
+ themeOptions: {
85
+ enableMediaQueryStyleSheet
86
+ }
87
+ } = (0, _ThemeProvider.useTheme)();
88
+ const viewport = (0, _ViewportProvider.useViewport)();
89
+ const staticStyles = {
90
+ width: '100%',
91
+ marginVertical: 0,
92
+ marginHorizontal: 'auto',
93
+ flexGrow: 0,
94
+ flexShrink: 1,
95
+ flexBasis: 'auto',
96
+ ...horizontalAlignStyles(horizontalAlign),
97
+ ...verticalAlignStyles(verticalAlign),
98
+ ...distributeStyles(distribute)
99
+ };
81
100
  const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
82
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
101
+ const stylesByViewport = {
83
102
  xs: {
84
103
  flexDirection: reverseLevel[0] ? 'row-reverse' : 'row',
85
104
  flexWrap: reverseLevel[0] ? 'wrap-reverse' : 'wrap'
@@ -100,30 +119,34 @@ const Row = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
100
119
  flexDirection: reverseLevel[4] ? 'row-reverse' : 'row',
101
120
  flexWrap: reverseLevel[4] ? 'wrap-reverse' : 'wrap'
102
121
  }
103
- });
104
- const {
105
- ids,
106
- styles
107
- } = _utils.StyleSheet.create({
108
- row: {
109
- width: '100%',
110
- marginVertical: 0,
111
- marginHorizontal: 'auto',
112
- flexGrow: 0,
113
- flexShrink: 1,
114
- flexBasis: 'auto',
115
- ...horizontalAlignStyles(horizontalAlign),
116
- ...verticalAlignStyles(verticalAlign),
117
- ...distributeStyles(distribute),
118
- ...mediaQueryStyles
119
- }
120
- });
122
+ };
123
+ let rowStyles;
124
+ let mediaIds;
125
+ if (enableMediaQueryStyleSheet) {
126
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
127
+ const {
128
+ ids,
129
+ styles
130
+ } = _utils.StyleSheet.create({
131
+ row: {
132
+ ...staticStyles,
133
+ ...mediaQueryStyles
134
+ }
135
+ });
136
+ rowStyles = styles.row;
137
+ mediaIds = ids.row;
138
+ } else {
139
+ rowStyles = {
140
+ ...staticStyles,
141
+ ...stylesByViewport[viewport]
142
+ };
143
+ }
121
144
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
122
145
  ref: ref,
123
146
  ...rest,
124
- style: [styles.row],
125
- dataSet: {
126
- media: ids.row
147
+ style: rowStyles,
148
+ dataSet: mediaIds && {
149
+ media: mediaIds
127
150
  },
128
151
  children: children
129
152
  });
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
10
  var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
12
  var _utils = require("../utils");
12
13
  var _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
13
14
  var _ListboxItem = _interopRequireDefault(require("./ListboxItem"));
@@ -30,6 +31,11 @@ const styles = _StyleSheet.default.create({
30
31
  padding: 0
31
32
  }
32
33
  });
34
+ const getAccessibilityRole = () => _Platform.default.select({
35
+ ios: 'listitem',
36
+ android: 'none',
37
+ web: 'listitem'
38
+ });
33
39
  const ListboxGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
34
40
  let {
35
41
  id,
@@ -50,7 +56,7 @@ const ListboxGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
50
56
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
51
57
  id: "test",
52
58
  style: styles.groupWrapper,
53
- accessibilityRole: "listitem",
59
+ accessibilityRole: getAccessibilityRole(),
54
60
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default.Panel, {
55
61
  panelId: id ?? label,
56
62
  controlTokens: {