@telus-uds/components-base 3.28.2 → 3.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/jest.config.cjs +1 -0
  3. package/lib/cjs/ActionCard/ActionCard.js +4 -4
  4. package/lib/cjs/ActivityIndicator/Dots.native.js +1 -2
  5. package/lib/cjs/ActivityIndicator/Spinner.native.js +1 -2
  6. package/lib/cjs/Box/Box.js +1 -2
  7. package/lib/cjs/Button/Button.js +1 -2
  8. package/lib/cjs/Button/ButtonBase.js +8 -8
  9. package/lib/cjs/Button/ButtonDropdown.js +1 -2
  10. package/lib/cjs/Button/ButtonGroup.js +1 -2
  11. package/lib/cjs/Button/ButtonLink.js +1 -2
  12. package/lib/cjs/Card/Card.js +1 -2
  13. package/lib/cjs/Card/CardBase.js +12 -0
  14. package/lib/cjs/Card/PressableCardBase.js +1 -2
  15. package/lib/cjs/Card/index.js +1 -2
  16. package/lib/cjs/CardGroup/CardGroup.js +1 -2
  17. package/lib/cjs/Carousel/Carousel.js +6 -6
  18. package/lib/cjs/CheckboxCard/CheckboxCard.js +1 -2
  19. package/lib/cjs/CheckboxCardGroup/CheckboxCardGroup.js +1 -2
  20. package/lib/cjs/ColourToggle/ColourBubble.js +17 -3
  21. package/lib/cjs/ColourToggle/ColourToggle.js +8 -2
  22. package/lib/cjs/ExpandCollapse/Control.js +17 -3
  23. package/lib/cjs/ExpandCollapse/Panel.js +6 -0
  24. package/lib/cjs/ExpandCollapseMini/ExpandCollapseMini.js +14 -2
  25. package/lib/cjs/ExpandCollapseMini/ExpandCollapseMiniControl.js +15 -2
  26. package/lib/cjs/HorizontalScroll/index.js +1 -2
  27. package/lib/cjs/Icon/IconText.js +1 -2
  28. package/lib/cjs/Icon/index.js +1 -2
  29. package/lib/cjs/InputSupports/InputSupports.js +1 -2
  30. package/lib/cjs/InputSupports/useInputSupports.js +1 -3
  31. package/lib/cjs/Link/ChevronLink.js +1 -0
  32. package/lib/cjs/Link/LinkBase.js +29 -13
  33. package/lib/cjs/Link/MobileIconTextContent.js +155 -0
  34. package/lib/cjs/Listbox/Listbox.js +1 -2
  35. package/lib/cjs/Modal/Modal.js +1 -1
  36. package/lib/cjs/Pagination/PageButton.js +1 -2
  37. package/lib/cjs/Pagination/Pagination.js +1 -2
  38. package/lib/cjs/QuickLinks/QuickLinks.js +7 -0
  39. package/lib/cjs/Radio/Radio.js +1 -2
  40. package/lib/cjs/RadioCard/RadioCard.js +1 -2
  41. package/lib/cjs/RadioCard/RadioCardGroup.js +1 -2
  42. package/lib/cjs/Shortcuts/Shortcuts.js +1 -2
  43. package/lib/cjs/SideNav/SideNav.js +1 -2
  44. package/lib/cjs/StackView/StackWrapBox.js +9 -1
  45. package/lib/cjs/StackView/StackWrapGap.js +3 -1
  46. package/lib/cjs/StackView/getStackedContent.js +21 -12
  47. package/lib/cjs/TabBar/TabBar.js +7 -2
  48. package/lib/cjs/Tabs/Tabs.js +1 -2
  49. package/lib/cjs/Tooltip/Tooltip.native.js +2 -2
  50. package/lib/cjs/index.js +1 -2
  51. package/lib/cjs/utils/index.js +1 -2
  52. package/lib/esm/ActionCard/ActionCard.js +4 -4
  53. package/lib/esm/Button/ButtonBase.js +8 -8
  54. package/lib/esm/Card/CardBase.js +12 -0
  55. package/lib/esm/Carousel/Carousel.js +6 -6
  56. package/lib/esm/ColourToggle/ColourBubble.js +17 -3
  57. package/lib/esm/ColourToggle/ColourToggle.js +8 -2
  58. package/lib/esm/ExpandCollapse/Control.js +17 -3
  59. package/lib/esm/ExpandCollapse/Panel.js +6 -0
  60. package/lib/esm/ExpandCollapseMini/ExpandCollapseMini.js +14 -2
  61. package/lib/esm/ExpandCollapseMini/ExpandCollapseMiniControl.js +15 -2
  62. package/lib/esm/InputSupports/InputSupports.js +1 -2
  63. package/lib/esm/InputSupports/useInputSupports.js +1 -3
  64. package/lib/esm/Link/ChevronLink.js +1 -0
  65. package/lib/esm/Link/LinkBase.js +29 -13
  66. package/lib/esm/Link/MobileIconTextContent.js +147 -0
  67. package/lib/esm/Modal/Modal.js +1 -1
  68. package/lib/esm/QuickLinks/QuickLinks.js +7 -0
  69. package/lib/esm/StackView/StackWrapBox.js +9 -1
  70. package/lib/esm/StackView/StackWrapGap.js +3 -1
  71. package/lib/esm/StackView/getStackedContent.js +20 -10
  72. package/lib/esm/TabBar/TabBar.js +7 -2
  73. package/lib/esm/Tooltip/Tooltip.native.js +2 -2
  74. package/lib/package.json +1 -1
  75. package/package.json +1 -1
  76. package/src/Card/CardBase.jsx +12 -0
  77. package/src/ColourToggle/ColourBubble.jsx +18 -3
  78. package/src/ColourToggle/ColourToggle.jsx +7 -2
  79. package/src/ExpandCollapse/Control.jsx +24 -4
  80. package/src/ExpandCollapse/Panel.jsx +6 -0
  81. package/src/ExpandCollapseMini/ExpandCollapseMini.jsx +23 -3
  82. package/src/ExpandCollapseMini/ExpandCollapseMiniControl.jsx +14 -2
  83. package/src/InputSupports/InputSupports.jsx +1 -6
  84. package/src/InputSupports/useInputSupports.js +1 -1
  85. package/src/Link/ChevronLink.jsx +1 -0
  86. package/src/Link/LinkBase.jsx +47 -20
  87. package/src/Link/MobileIconTextContent.jsx +129 -0
  88. package/src/Modal/Modal.jsx +1 -1
  89. package/src/QuickLinks/QuickLinks.jsx +8 -0
  90. package/src/StackView/StackWrapBox.jsx +13 -1
  91. package/src/StackView/StackWrapGap.jsx +2 -1
  92. package/src/StackView/getStackedContent.jsx +22 -8
  93. package/src/TabBar/TabBar.jsx +21 -4
@@ -14,8 +14,7 @@ var _HorizontalScroll = _interopRequireWildcard(require("./HorizontalScroll"));
14
14
  var _itemPositions = require("./itemPositions");
15
15
  var _HorizontalScrollButton = _interopRequireDefault(require("./HorizontalScrollButton"));
16
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
18
  var _default = exports.default = _HorizontalScroll.default;
20
19
  const horizontalScrollUtils = exports.horizontalScrollUtils = {
21
20
  selectHorizontalScrollTokens: _HorizontalScroll.selectHorizontalScrollTokens,
@@ -14,8 +14,7 @@ var _Icon = _interopRequireWildcard(require("./Icon"));
14
14
  var _StackView = require("../StackView");
15
15
  var _utils = require("../utils");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
19
  /**
21
20
  * Returns an icon and some text with a sized gap between them. This is a utility component
@@ -19,6 +19,5 @@ Object.defineProperty(exports, "iconComponentPropTypes", {
19
19
  var _Icon = _interopRequireWildcard(require("./Icon"));
20
20
  var _IconText = _interopRequireDefault(require("./IconText"));
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
23
  var _default = exports.default = _Icon.default;
@@ -72,8 +72,7 @@ const InputSupports = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
72
72
  }), typeof children === 'function' ? children({
73
73
  inputId,
74
74
  ...a11yProps,
75
- validation: feedbackValidation,
76
- accessibilityDescribedBy: feedbackId
75
+ validation: feedbackValidation
77
76
  }) : children, feedback || maxCharsReachedErrorMessage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Feedback.default, {
78
77
  id: feedbackId,
79
78
  title: feedback || maxCharsReachedErrorMessage,
@@ -32,9 +32,7 @@ const useInputSupports = _ref => {
32
32
  accessibilityLabel: label,
33
33
  accessibilityHint: joinDefined([!hasValidationError && feedback, hint, maxCharacterAllowed ? getCopy('maxCharacters').replace(/%\{charCount\}/g, maxCharacterAllowed) : undefined]),
34
34
  // native only -> replaced with describedBy on web
35
- accessibilityDescribedBy: joinDefined([!hasValidationError && feedback && feedbackId,
36
- // feedback receives a11yRole=alert on error, so there's no need to include it here
37
- hint && hintId, charactersCount ? getCopy('charactersRemaining').replace(/%\{charCount\}/g, charactersCount) : undefined]),
35
+ accessibilityDescribedBy: joinDefined([hint && hintId, feedback && feedbackId || undefined, charactersCount ? getCopy('charactersRemaining').replace(/%\{charCount\}/g, charactersCount) : undefined]),
38
36
  accessibilityInvalid: hasValidationError
39
37
  };
40
38
  return {
@@ -47,6 +47,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
47
47
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Link', applyChevronTokens, variant);
48
48
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkBase.default, {
49
49
  ...otherlinkProps,
50
+ useMeasuredMobileIconLayout: true,
50
51
  iconPosition: direction,
51
52
  tokens: getTokens,
52
53
  dataSet: dataSet,
@@ -13,6 +13,7 @@ var _props = require("../utils/props");
13
13
  var _pressability = require("../utils/pressability");
14
14
  var _utils = require("../utils");
15
15
  var _InlinePressable = _interopRequireDefault(require("./InlinePressable"));
16
+ var _MobileIconTextContent = _interopRequireDefault(require("./MobileIconTextContent"));
16
17
  var _ThemeProvider = require("../ThemeProvider");
17
18
  var _Icon = require("../Icon");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
@@ -144,6 +145,7 @@ const LinkBase = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
144
145
  tokens = {},
145
146
  children,
146
147
  dataSet,
148
+ useMeasuredMobileIconLayout = false,
147
149
  accessibilityRole = 'link',
148
150
  ...rawRest
149
151
  } = _ref6;
@@ -187,8 +189,8 @@ const LinkBase = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
187
189
  const themeTokens = resolveLinkTokens(linkState);
188
190
  const outerBorderStyles = selectOuterBorderStyles(themeTokens);
189
191
  const decorationStyles = selectDecorationStyles(themeTokens);
190
- const mobileCompensation = null;
191
- return [outerBorderStyles, mobileCompensation, blockLeftStyle, decorationStyles, hasIcon && staticStyles.rowContainer];
192
+ const shouldUseMeasuredMobileContent = _Platform.default.OS !== 'web' && useMeasuredMobileIconLayout;
193
+ return [outerBorderStyles, shouldUseMeasuredMobileContent ? staticStyles.measuredMobileOuterBorderCompensation : null, blockLeftStyle, decorationStyles, hasIcon && staticStyles.rowContainer];
192
194
  },
193
195
  children: linkState => {
194
196
  const themeTokens = resolveLinkTokens(linkState);
@@ -203,19 +205,32 @@ const LinkBase = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
203
205
  } = themeTokens;
204
206
  const isTextOnlyLink = !IconComponent && !icon && accessibilityRole === 'link';
205
207
  const adjustedIconSpace = _Platform.default.OS !== 'web' && isTextOnlyLink ? 0 : iconSpace;
208
+ const shouldUseMeasuredMobileContent = _Platform.default.OS !== 'web' && useMeasuredMobileIconLayout;
209
+ const textBaselineStyle = shouldUseMeasuredMobileContent ? null : staticStyles.baseline;
210
+ const linkTextContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
211
+ style: [textStyles, blockTextStyles, textBaselineStyle, staticStyles.bubblePointerEvents],
212
+ children: typeof children === 'function' ? children(linkState) : children
213
+ });
214
+ const sharedIconProps = {
215
+ ...iconProps,
216
+ tokens: iconTokens,
217
+ style: staticStyles.bubblePointerEvents
218
+ };
219
+ if (shouldUseMeasuredMobileContent) {
220
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileIconTextContent.default, {
221
+ icon: IconComponent,
222
+ iconPosition: iconPosition,
223
+ space: adjustedIconSpace,
224
+ iconProps: sharedIconProps,
225
+ children: linkTextContent
226
+ });
227
+ }
206
228
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconText, {
207
229
  icon: IconComponent,
208
230
  iconPosition: iconPosition,
209
231
  space: adjustedIconSpace,
210
- iconProps: {
211
- ...iconProps,
212
- tokens: iconTokens,
213
- style: staticStyles.bubblePointerEvents
214
- },
215
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
216
- style: [textStyles, blockTextStyles, staticStyles.baseline, staticStyles.bubblePointerEvents],
217
- children: typeof children === 'function' ? children(linkState) : children
218
- })
232
+ iconProps: sharedIconProps,
233
+ children: linkTextContent
219
234
  });
220
235
  }
221
236
  });
@@ -273,11 +288,12 @@ const staticStyles = _StyleSheet.default.create({
273
288
  }
274
289
  })
275
290
  },
276
- outerBorderCompensation: {
291
+ measuredMobileOuterBorderCompensation: {
277
292
  ...(_Platform.default.OS !== 'web' && {
278
293
  marginHorizontal: 2,
294
+ marginVertical: 2,
279
295
  paddingHorizontal: _Platform.default.OS === 'android' ? 2 : 0,
280
- paddingTop: _Platform.default.OS === 'android' ? 2 : 0
296
+ paddingVertical: _Platform.default.OS === 'android' ? 2 : 0
281
297
  })
282
298
  }
283
299
  });
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
10
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
11
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
12
+ var _Icon = _interopRequireWildcard(require("../Icon/Icon"));
13
+ var _utils = require("../utils");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ const MobileIconTextContent = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
18
+ let {
19
+ space = 0,
20
+ iconPosition = 'left',
21
+ icon: IconComponent,
22
+ iconProps = {},
23
+ children
24
+ } = _ref;
25
+ const [translateY, setTranslateY] = _react.default.useState(0);
26
+ const latestTranslateYRef = _react.default.useRef(0);
27
+ const layoutsRef = _react.default.useRef({
28
+ container: null,
29
+ text: null,
30
+ icon: null
31
+ });
32
+ const applyAlignment = _react.default.useCallback(() => {
33
+ const {
34
+ container,
35
+ text,
36
+ icon
37
+ } = layoutsRef.current;
38
+ if (!container || !icon || !icon.height) return;
39
+ const targetY = text ? text.y + text.height / 2 : container.height / 2;
40
+ const iconY = icon.y + icon.height / 2;
41
+ const nextTranslateY = Math.round((targetY - iconY) * 100) / 100;
42
+ if (!Number.isFinite(nextTranslateY)) return;
43
+ if (Math.abs(nextTranslateY - latestTranslateYRef.current) < 0.5) return;
44
+ latestTranslateYRef.current = nextTranslateY;
45
+ setTranslateY(nextTranslateY);
46
+ }, []);
47
+ const handleContainerLayout = _react.default.useCallback(_ref2 => {
48
+ let {
49
+ nativeEvent: {
50
+ layout
51
+ }
52
+ } = _ref2;
53
+ layoutsRef.current.container = layout;
54
+ applyAlignment();
55
+ }, [applyAlignment]);
56
+ const handleTextLayout = _react.default.useCallback(_ref3 => {
57
+ let {
58
+ nativeEvent: {
59
+ layout
60
+ }
61
+ } = _ref3;
62
+ layoutsRef.current.text = layout;
63
+ applyAlignment();
64
+ }, [applyAlignment]);
65
+ const handleIconLayout = _react.default.useCallback(_ref4 => {
66
+ let {
67
+ nativeEvent: {
68
+ layout
69
+ }
70
+ } = _ref4;
71
+ layoutsRef.current.icon = layout;
72
+ applyAlignment();
73
+ }, [applyAlignment]);
74
+ const iconContent = IconComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
75
+ ref: ref,
76
+ icon: IconComponent,
77
+ scalesWithText: true,
78
+ ...iconProps
79
+ }) : null;
80
+ const iconWrapper = IconComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
81
+ onLayout: handleIconLayout,
82
+ style: [staticStyles.iconContainer, {
83
+ transform: [{
84
+ translateY
85
+ }]
86
+ }],
87
+ children: iconContent
88
+ }) : null;
89
+ if (iconPosition === 'inline') {
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Text.default, {
91
+ onLayout: handleContainerLayout,
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
93
+ onLayout: handleTextLayout,
94
+ children: children
95
+ }), ' ', /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
96
+ style: staticStyles.inlineIconContainer,
97
+ children: iconWrapper
98
+ })]
99
+ });
100
+ }
101
+ const iconSpaceStyle = iconPosition === 'left' ? {
102
+ marginRight: space
103
+ } : {
104
+ marginLeft: space
105
+ };
106
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
107
+ onLayout: handleContainerLayout,
108
+ style: staticStyles.rowContainer,
109
+ children: [iconPosition === 'left' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
110
+ style: iconSpaceStyle,
111
+ children: iconWrapper
112
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
113
+ onLayout: handleTextLayout,
114
+ children: children
115
+ }), iconPosition === 'right' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
116
+ style: iconSpaceStyle,
117
+ children: iconWrapper
118
+ })]
119
+ });
120
+ });
121
+ MobileIconTextContent.displayName = 'MobileIconTextContent';
122
+ MobileIconTextContent.propTypes = {
123
+ /**
124
+ * Amount of space between text and icon. Uses the theme spacing scale.
125
+ */
126
+ space: _utils.spacingProps.types.spacingValue,
127
+ /**
128
+ * Position of the icon relative to text.
129
+ */
130
+ iconPosition: _propTypes.default.oneOf(['left', 'right', 'inline']),
131
+ /**
132
+ * A valid UDS icon component imported from a UDS palette.
133
+ */
134
+ icon: _propTypes.default.elementType,
135
+ /**
136
+ * Props passed to the icon component.
137
+ */
138
+ iconProps: _propTypes.default.exact(_Icon.iconComponentPropTypes),
139
+ /**
140
+ * Content rendered alongside the icon.
141
+ */
142
+ children: _propTypes.default.node
143
+ };
144
+ const staticStyles = _StyleSheet.default.create({
145
+ rowContainer: {
146
+ flexDirection: 'row'
147
+ },
148
+ iconContainer: {
149
+ alignSelf: 'flex-start'
150
+ },
151
+ inlineIconContainer: {
152
+ position: 'absolute'
153
+ }
154
+ });
155
+ var _default = exports.default = MobileIconTextContent;
@@ -19,8 +19,7 @@ var _ListboxOverlay = _interopRequireDefault(require("./ListboxOverlay"));
19
19
  var _dictionary = _interopRequireDefault(require("./dictionary"));
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
23
  const styles = _StyleSheet.default.create({
25
24
  container: {
26
25
  padding: 0,
@@ -246,7 +246,7 @@ const Modal = /*#__PURE__*/_react.default.forwardRef((_ref5, ref) => {
246
246
  })]
247
247
  })
248
248
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
249
- onPress: isBackdropClickable && handleClose,
249
+ onPress: isBackdropClickable ? handleClose : undefined,
250
250
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
251
251
  style: [staticStyles.backdrop, selectBackdropStyles(themeTokens)]
252
252
  })
@@ -12,8 +12,7 @@ var _utils = require("../utils");
12
12
  var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
13
13
  var _dictionary = _interopRequireDefault(require("./dictionary"));
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
16
  const PageButton = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
18
17
  let {
19
18
  label,
@@ -18,8 +18,7 @@ var _PageButton = _interopRequireDefault(require("./PageButton"));
18
18
  var _SideButton = _interopRequireDefault(require("./SideButton"));
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
22
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
24
23
  const selectTextStyles = (_ref, themeOptions) => {
25
24
  let {
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
9
10
  var _ThemeProvider = require("../ThemeProvider");
10
11
  var _ViewportProvider = require("../ViewportProvider");
11
12
  var _utils = require("../utils");
13
+ var _semantics = require("../utils/a11y/semantics");
12
14
  var _List = _interopRequireDefault(require("../List"));
13
15
  var _StackWrap = _interopRequireDefault(require("../StackView/StackWrap"));
14
16
  var _QuickLinksCard = _interopRequireDefault(require("./QuickLinksCard"));
@@ -40,6 +42,10 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
40
42
  } = (0, _ThemeProvider.useThemeTokens)('QuickLinks', tokens, variant, {
41
43
  viewport
42
44
  });
45
+ const itemAccessibilityRole = _Platform.default.select({
46
+ web: ['ul', 'ol'].includes(tag) ? _semantics.tagsToRoles.li : undefined,
47
+ default: undefined
48
+ });
43
49
  const content = list && /*#__PURE__*/(0, _jsxRuntime.jsx)(_List.default, {
44
50
  ref: ref,
45
51
  tokens: listTokens,
@@ -54,6 +60,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
54
60
  justifyContent: stackJustify
55
61
  },
56
62
  tag: tag,
63
+ itemAccessibilityRole: itemAccessibilityRole,
57
64
  ...rest,
58
65
  children: children
59
66
  });
@@ -16,8 +16,7 @@ var _ThemeProvider = require("../ThemeProvider");
16
16
  var _utils = require("../utils");
17
17
  var _StackView = _interopRequireDefault(require("../StackView"));
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
21
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.viewProps]);
23
22
  const selectContainerStyles = _ref => {
@@ -15,8 +15,7 @@ var _Card = require("../Card");
15
15
  var _StackView = _interopRequireDefault(require("../StackView"));
16
16
  var _RadioButton = _interopRequireWildcard(require("../Radio/RadioButton"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
20
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.viewProps]);
22
21
 
@@ -13,8 +13,7 @@ var _StackView = _interopRequireWildcard(require("../StackView"));
13
13
  var _RadioCard = _interopRequireDefault(require("./RadioCard"));
14
14
  var _Fieldset = _interopRequireDefault(require("../Fieldset"));
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
18
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
20
19
  const [selectItemProps, selectedItemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.viewProps]);
@@ -15,8 +15,7 @@ var _ViewportProvider = require("../ViewportProvider");
15
15
  var _utils = require("../utils");
16
16
  var _HorizontalScroll = _interopRequireWildcard(require("../HorizontalScroll"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
20
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
22
21
  const {
@@ -13,8 +13,7 @@ var _ThemeProvider = require("../ThemeProvider");
13
13
  var _utils = require("../utils");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
17
  const selectContainerTokens = _ref => {
19
18
  let {
20
19
  borderWidth,
@@ -50,6 +50,7 @@ const StackWrapBox = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
50
50
  variant,
51
51
  tag,
52
52
  accessibilityRole,
53
+ itemAccessibilityRole,
53
54
  ...rest
54
55
  } = _ref;
55
56
  const viewport = (0, _ViewportProvider.useViewport)();
@@ -76,7 +77,8 @@ const StackWrapBox = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
76
77
  const content = (0, _getStackedContent.default)(children, {
77
78
  direction,
78
79
  space: 0,
79
- box: boxProps
80
+ box: boxProps,
81
+ itemAccessibilityRole
80
82
  });
81
83
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
82
84
  ref: ref,
@@ -112,6 +114,12 @@ StackWrapBox.propTypes = {
112
114
  * is not defined, the accessibilityRole will default to "heading".
113
115
  */
114
116
  tag: _propTypes.default.oneOf(_utils.layoutTags),
117
+ /**
118
+ * Optional accessibility role to apply to each item in the stack.
119
+ * On web, items are wrapped (or cloned) with this role, enabling correct list semantics
120
+ * when the container tag is "ul" or "ol".
121
+ */
122
+ itemAccessibilityRole: _propTypes.default.string,
115
123
  /**
116
124
  * A StackWrap may take any children, but will have no effect if it is only passed one child or is passed children
117
125
  * wrapped in a component. If necessary, children may be wrapped in one React Fragment.
@@ -35,6 +35,7 @@ const StackWrapGap = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
35
35
  children,
36
36
  tag,
37
37
  accessibilityRole,
38
+ itemAccessibilityRole,
38
39
  ...rest
39
40
  } = _ref;
40
41
  const viewport = (0, _ViewportProvider.useViewport)();
@@ -54,7 +55,8 @@ const StackWrapGap = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
54
55
  };
55
56
  const content = (0, _getStackedContent.default)(children, {
56
57
  direction,
57
- space: 0
58
+ space: 0,
59
+ itemAccessibilityRole
58
60
  });
59
61
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
60
62
  ref: ref,
@@ -10,8 +10,7 @@ var _Divider = _interopRequireDefault(require("../Divider"));
10
10
  var _Spacer = _interopRequireDefault(require("../Spacer"));
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
14
  /**
16
15
  * @typedef {import('react').ReactChildren} ReactChildren
17
16
  * @typedef {import('react').ReactElement} ReactElement
@@ -43,7 +42,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
43
42
  space,
44
43
  direction = 'column',
45
44
  box,
46
- preserveFragments = false
45
+ preserveFragments = false,
46
+ itemAccessibilityRole
47
47
  } = _ref;
48
48
  const boxProps = box && typeof box === 'object' ? box : {
49
49
  space
@@ -55,15 +55,24 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
55
55
  const validChildren = _react.default.Children.toArray(topLevelChildren).filter(Boolean);
56
56
  const content = validChildren.reduce((newChildren, child, index) => {
57
57
  const boxID = `Stack-Box-${index}`;
58
- const item = box ?
59
- /*#__PURE__*/
60
- // If wrapped in Box, that Box needs a key.
61
- // If possible, use an existing content key; use an index-based key only if necessary.
62
- (0, _react.createElement)(_Box.default, {
63
- ...boxProps,
64
- key: child.key || boxID,
65
- testID: boxID
66
- }, child) : child;
58
+ let item;
59
+ if (box) {
60
+ // If wrapped in Box, that Box needs a key.
61
+ // If possible, use an existing content key; use an index-based key only if necessary.
62
+ item = /*#__PURE__*/(0, _react.createElement)(_Box.default, {
63
+ ...boxProps,
64
+ accessibilityRole: itemAccessibilityRole,
65
+ key: child.key || boxID,
66
+ testID: boxID
67
+ }, child);
68
+ } else if (itemAccessibilityRole) {
69
+ item = /*#__PURE__*/_react.default.cloneElement(child, {
70
+ accessibilityRole: itemAccessibilityRole,
71
+ key: child.key || boxID
72
+ });
73
+ } else {
74
+ item = child;
75
+ }
67
76
  if (!index || !space && !divider) return [...newChildren, item];
68
77
  const testID = `Stack-${divider ? 'Divider' : 'Spacer'}-${index}`;
69
78
  const commonProps = {
@@ -58,6 +58,7 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
58
58
  * items={items}
59
59
  * initiallySelectedItem="1"
60
60
  * onChange={(itemId) => console.log(itemId)}
61
+ * accessibilityLabel="Main navigation"
61
62
  * />
62
63
  * )
63
64
  */
@@ -69,6 +70,7 @@ const TabBar = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
69
70
  onChange,
70
71
  variant,
71
72
  tokens,
73
+ accessibilityLabel,
72
74
  ...rest
73
75
  } = _ref3;
74
76
  const [isSelected, setIsSelected] = _react.default.useState(initiallySelectedItem);
@@ -83,6 +85,8 @@ const TabBar = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
83
85
  ...selectProps(rest),
84
86
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
85
87
  style: [styles.tabBarItem, selectTabBarItemContainerStyles(themeTokens)],
88
+ accessibilityRole: "tablist",
89
+ accessibilityLabel: accessibilityLabel,
86
90
  children: items.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabBarItem.default, {
87
91
  label: item.label,
88
92
  href: item.href,
@@ -91,7 +95,6 @@ const TabBar = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
91
95
  iconActive: item.iconActive,
92
96
  onPress: () => handlePress(item.id),
93
97
  id: `tab-item-${index}`,
94
- accessibilityRole: "tablist",
95
98
  tokens: item.tokens
96
99
  }, item.id))
97
100
  })
@@ -116,7 +119,9 @@ TabBar.propTypes = {
116
119
  /** Variant of TabBar for styling purposes. */
117
120
  variant: _utils.variantProp.propType,
118
121
  /** Tokens for theming and styling. */
119
- tokens: (0, _utils.getTokensPropType)('TabBar')
122
+ tokens: (0, _utils.getTokensPropType)('TabBar'),
123
+ /** Accessible label for the tab bar navigation region, used by screen readers to identify the tablist. */
124
+ accessibilityLabel: _propTypes.default.string
120
125
  };
121
126
  const styles = _StyleSheet.default.create({
122
127
  tabBar: {
@@ -15,8 +15,7 @@ var _HorizontalScroll = _interopRequireWildcard(require("../HorizontalScroll"));
15
15
  var _TabsItem = _interopRequireDefault(require("./TabsItem"));
16
16
  var _TabsDropdown = _interopRequireDefault(require("./TabsDropdown"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
20
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
22
21
  const [selectItemProps, selectedItemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.pressProps, _utils.viewProps]);