@telus-uds/components-base 1.15.0 → 1.17.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 (54) hide show
  1. package/CHANGELOG.md +36 -2
  2. package/component-docs.json +1322 -346
  3. package/lib/BaseProvider/index.js +5 -1
  4. package/lib/Button/ButtonBase.js +2 -1
  5. package/lib/Carousel/Carousel.js +18 -2
  6. package/lib/Carousel/CarouselTabs/CarouselTabs.js +6 -7
  7. package/lib/List/List.js +11 -8
  8. package/lib/List/PressableListItemBase.js +5 -9
  9. package/lib/QuickLinks/QuickLinks.js +91 -0
  10. package/lib/QuickLinks/QuickLinksCard.js +47 -0
  11. package/lib/QuickLinks/QuickLinksItem.js +73 -0
  12. package/lib/QuickLinks/index.js +16 -0
  13. package/lib/Skeleton/Skeleton.js +18 -13
  14. package/lib/Skeleton/useSkeletonNativeAnimation.js +4 -2
  15. package/lib/Timeline/Timeline.js +193 -0
  16. package/lib/Timeline/index.js +13 -0
  17. package/lib/ToggleSwitch/ToggleSwitch.js +24 -19
  18. package/lib/index.js +28 -1
  19. package/lib/utils/props/a11yProps.js +50 -47
  20. package/lib-module/BaseProvider/index.js +4 -1
  21. package/lib-module/Button/ButtonBase.js +2 -1
  22. package/lib-module/Carousel/Carousel.js +16 -2
  23. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +7 -6
  24. package/lib-module/List/List.js +12 -8
  25. package/lib-module/List/PressableListItemBase.js +6 -10
  26. package/lib-module/QuickLinks/QuickLinks.js +71 -0
  27. package/lib-module/QuickLinks/QuickLinksCard.js +33 -0
  28. package/lib-module/QuickLinks/QuickLinksItem.js +50 -0
  29. package/lib-module/QuickLinks/index.js +4 -0
  30. package/lib-module/Skeleton/Skeleton.js +15 -13
  31. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +3 -2
  32. package/lib-module/Timeline/Timeline.js +174 -0
  33. package/lib-module/Timeline/index.js +2 -0
  34. package/lib-module/ToggleSwitch/ToggleSwitch.js +24 -19
  35. package/lib-module/index.js +4 -1
  36. package/lib-module/utils/props/a11yProps.js +50 -47
  37. package/package.json +8 -7
  38. package/src/BaseProvider/index.jsx +2 -1
  39. package/src/Button/ButtonBase.jsx +2 -2
  40. package/src/Carousel/Carousel.jsx +15 -2
  41. package/src/Carousel/CarouselTabs/CarouselTabs.jsx +5 -3
  42. package/src/List/List.jsx +9 -13
  43. package/src/List/PressableListItemBase.jsx +7 -9
  44. package/src/QuickLinks/QuickLinks.jsx +61 -0
  45. package/src/QuickLinks/QuickLinksCard.jsx +26 -0
  46. package/src/QuickLinks/QuickLinksItem.jsx +46 -0
  47. package/src/QuickLinks/index.js +6 -0
  48. package/src/Skeleton/Skeleton.jsx +25 -19
  49. package/src/Skeleton/useSkeletonNativeAnimation.js +3 -3
  50. package/src/Timeline/Timeline.jsx +148 -0
  51. package/src/Timeline/index.js +3 -0
  52. package/src/ToggleSwitch/ToggleSwitch.jsx +3 -3
  53. package/src/index.js +3 -0
  54. package/src/utils/props/a11yProps.js +61 -68
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ var _portal = require("@gorhom/portal");
13
+
12
14
  var _A11yInfoProvider = _interopRequireDefault(require("../A11yInfoProvider"));
13
15
 
14
16
  var _ViewportProvider = _interopRequireDefault(require("../ViewportProvider"));
@@ -32,7 +34,9 @@ const BaseProvider = _ref => {
32
34
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProvider.default, {
33
35
  defaultTheme: defaultTheme,
34
36
  themeOptions: themeOptions,
35
- children: children
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_portal.PortalProvider, {
38
+ children: children
39
+ })
36
40
  })
37
41
  })
38
42
  });
@@ -195,11 +195,12 @@ const selectWebOnlyStyles = (inactive, themeTokens, _ref7) => {
195
195
  const selectItemIconTokens = _ref8 => {
196
196
  let {
197
197
  color,
198
+ iconColor,
198
199
  iconSize
199
200
  } = _ref8;
200
201
  return {
201
202
  size: iconSize,
202
- color
203
+ color: iconColor || color
203
204
  };
204
205
  };
205
206
 
@@ -41,6 +41,10 @@ var _CarouselStepTracker = _interopRequireDefault(require("./CarouselStepTracker
41
41
 
42
42
  var _CarouselThumbnailNavigation = _interopRequireDefault(require("./CarouselThumbnailNavigation"));
43
43
 
44
+ var _CarouselTabsPanel = _interopRequireDefault(require("./CarouselTabs/CarouselTabsPanel"));
45
+
46
+ var _CarouselTabsPanelItem = _interopRequireDefault(require("./CarouselTabs/CarouselTabsPanelItem"));
47
+
44
48
  var _dictionary = _interopRequireDefault(require("./dictionary"));
45
49
 
46
50
  var _jsxRuntime = require("react/jsx-runtime");
@@ -166,7 +170,8 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
166
170
  onAnimationEnd,
167
171
  onIndexChanged,
168
172
  skipLinkHref,
169
- refocus,
173
+ tabs,
174
+ refocus = Boolean(tabs),
170
175
  title = 'carousel',
171
176
  springConfig = undefined,
172
177
  thumbnails = undefined,
@@ -189,6 +194,7 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
189
194
  nextIcon,
190
195
  showPreviousNextNavigation,
191
196
  showPanelNavigation,
197
+ showPanelTabs,
192
198
  spaceBetweenSlideAndPreviousNextNavigation
193
199
  } = themeTokens;
194
200
 
@@ -442,6 +448,9 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
442
448
  return "".concat(copyText[0].toUpperCase()).concat(copyText.slice(1));
443
449
  }, [activeIndex, childrenArray.length, itemLabel, getCopy, title]);
444
450
 
451
+ const activePanelNavigation = tabs && showPanelTabs ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CarouselTabsPanel.default, {
452
+ items: tabs
453
+ }) : panelNavigation;
445
454
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CarouselContext.CarouselProvider, {
446
455
  activeIndex: activeIndex,
447
456
  goTo: goTo,
@@ -517,7 +526,7 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
517
526
  accessibilityLabel: getCopyWithPlaceholders('iconButtonLabel').replace('%{targetStep}', activeIndex + 2)
518
527
  })
519
528
  })]
520
- }), showPanelNavigation ? panelNavigation : null]
529
+ }), showPanelNavigation ? activePanelNavigation : null]
521
530
  });
522
531
  });
523
532
 
@@ -599,6 +608,13 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
599
608
  */
600
609
  skipLinkHref: _propTypes.default.string,
601
610
 
611
+ /**
612
+ * If provided, defaults the navigation panel to a CarouselTabsPanel element passing each item as props for one tab.
613
+ *
614
+ * Be careful to ensure that the order of each element in the items array matches the order of each child in the Carousel.
615
+ */
616
+ tabs: _propTypes.default.arrayOf(_propTypes.default.shape(_CarouselTabsPanelItem.default.propTypes || {})),
617
+
602
618
  /**
603
619
  * If true, whenever a new slide comes into view, the focus of the Carousel switches to the start.
604
620
  *
@@ -13,8 +13,6 @@ var _utils = require("../../utils");
13
13
 
14
14
  var _Carousel = _interopRequireDefault(require("../Carousel"));
15
15
 
16
- var _CarouselTabsPanel = _interopRequireDefault(require("./CarouselTabsPanel"));
17
-
18
16
  var _jsxRuntime = require("react/jsx-runtime");
19
17
 
20
18
  var _CarouselTabs$propTyp, _CarouselTabs$propTyp2;
@@ -25,22 +23,23 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
23
 
26
24
  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; }
27
25
 
26
+ /**
27
+ * @deprecated Please use Carousel and pass the `tabs` prop.
28
+ */
28
29
  const CarouselTabs = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
29
30
  let {
30
31
  items,
31
32
  refocus = true,
32
33
  ...carouselProps
33
34
  } = _ref;
34
- const panelNavigation = (0, _utils.useResponsiveProp)({
35
- md: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CarouselTabsPanel.default, {
36
- items: items
37
- })
35
+ const tabs = (0, _utils.useResponsiveProp)({
36
+ md: items
38
37
  });
39
38
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Carousel.default, {
40
39
  refocus: refocus,
41
40
  ...carouselProps,
42
41
  ref: ref,
43
- panelNavigation: panelNavigation,
42
+ tabs: tabs,
44
43
  children: items.map(_ref2 => {
45
44
  let {
46
45
  title,
package/lib/List/List.js CHANGED
@@ -15,8 +15,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
- var _ListItem = _interopRequireDefault(require("./ListItem"));
19
-
20
18
  var _jsxRuntime = require("react/jsx-runtime");
21
19
 
22
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -26,11 +24,20 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
26
24
  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; }
27
25
 
28
26
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
27
+
28
+ const isListItem = element => {
29
+ var _element$type, _element$type2;
30
+
31
+ const elementName = (element === null || element === void 0 ? void 0 : (_element$type = element.type) === null || _element$type === void 0 ? void 0 : _element$type.displayName) || (element === null || element === void 0 ? void 0 : (_element$type2 = element.type) === null || _element$type2 === void 0 ? void 0 : _element$type2.name); // Match our own ListItem, and also, custom list items
32
+
33
+ return Boolean(elementName.match(/Item/));
34
+ };
29
35
  /**
30
36
  * An unordered List component has a child a ListItem that
31
37
  * allows icon, dividers and customized typography
32
38
  */
33
39
 
40
+
34
41
  const List = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
35
42
  let {
36
43
  children,
@@ -45,12 +52,8 @@ const List = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
45
52
  } = _ref;
46
53
 
47
54
  const items = _react.Children.map(children, (child, index) => {
48
- var _child$type, _child$type2;
49
-
50
55
  // Pass ListItem-specific props to children (by name so teams can add their own ListItems)
51
- const isListItem = componentName => Boolean(componentName === _ListItem.default.displayName);
52
-
53
- if (isListItem(child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) || isListItem(child === null || child === void 0 ? void 0 : (_child$type2 = child.type) === null || _child$type2 === void 0 ? void 0 : _child$type2.name)) {
56
+ if (isListItem(child)) {
54
57
  return /*#__PURE__*/(0, _react.cloneElement)(child, {
55
58
  showDivider,
56
59
  isLastItem: index + 1 === _react.Children.count(children),
@@ -74,7 +77,7 @@ List.displayName = 'List';
74
77
  List.propTypes = { ...selectedSystemPropTypes,
75
78
  tokens: (0, _utils.getTokensPropType)('List'),
76
79
  variant: _utils.variantProp.propType,
77
- children: (0, _utils.componentPropType)('ListItem'),
80
+ children: _propTypes.default.node,
78
81
 
79
82
  /**
80
83
  * In case it is not the last item allow display divider
@@ -21,9 +21,9 @@ var _utils = require("../utils");
21
21
 
22
22
  var _ListItemBase = _interopRequireDefault(require("./ListItemBase"));
23
23
 
24
- var _ListItemContent = _interopRequireWildcard(require("./ListItemContent"));
24
+ var _ListItemContent = _interopRequireDefault(require("./ListItemContent"));
25
25
 
26
- var _ListItemMark = _interopRequireWildcard(require("./ListItemMark"));
26
+ var _ListItemMark = _interopRequireDefault(require("./ListItemMark"));
27
27
 
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
29
 
@@ -82,9 +82,10 @@ const PressableListItemBase = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) =
82
82
  onPress
83
83
  });
84
84
 
85
+ const listItemTokens = (0, _utils.selectTokens)('List', typeof tokens === 'function' ? tokens() : tokens);
85
86
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemBase.default, {
86
87
  ref: listItemRef,
87
- tokens: tokens(),
88
+ tokens: listItemTokens,
88
89
  ...listItemProps,
89
90
  children: _ref3 => {
90
91
  let {
@@ -125,17 +126,12 @@ const staticStyles = _StyleSheet.default.create({
125
126
  itemContainer: {
126
127
  flexDirection: 'row',
127
128
  flex: 1
128
- },
129
- tokens: { ..._ListItemContent.tokenTypes,
130
- ..._ListItemMark.tokenTypes
131
129
  }
132
130
  });
133
131
 
134
- PressableListItemBase.propTypes = {
132
+ PressableListItemBase.propTypes = { ..._utils.withLinkRouter.propTypes,
135
133
  href: _propTypes.default.string,
136
134
  onPress: _propTypes.default.func,
137
- // TODO - type this better, maybe import the subcomponent token types and run it through util
138
- // eslint-disable-next-line react/forbid-prop-types
139
135
  tokens: _propTypes.default.any,
140
136
  icon: _propTypes.default.elementType,
141
137
  children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _ViewportProvider = require("../ViewportProvider");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _List = _interopRequireDefault(require("../List"));
19
+
20
+ var _StackWrap = _interopRequireDefault(require("../StackView/StackWrap"));
21
+
22
+ var _QuickLinksCard = _interopRequireDefault(require("./QuickLinksCard"));
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ /**
33
+ * QuickLinks renders a list of interactive items. How it renders these items depends on theme options:
34
+ * - If the theme returns `list` token as true, it renders an ordered list based on List
35
+ * - If the theme returns `button` token as true and `list` as false, it renders a wrapping horizontal bar of buttons
36
+ * - If the theme returns `card` token as true, it wraps the above with a `Card`.
37
+ */
38
+ const QuickLinks = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
39
+ let {
40
+ tokens,
41
+ variant,
42
+ listTokens,
43
+ cardTokens,
44
+ children,
45
+ tag = 'ul',
46
+ ...rest
47
+ } = _ref;
48
+ const viewport = (0, _ViewportProvider.useViewport)();
49
+ const {
50
+ dividers,
51
+ list,
52
+ card,
53
+ stackSpace,
54
+ stackGap,
55
+ stackJustify
56
+ } = (0, _ThemeProvider.useThemeTokens)('QuickLinks', tokens, variant, {
57
+ viewport
58
+ });
59
+ const content = list && /*#__PURE__*/(0, _jsxRuntime.jsx)(_List.default, {
60
+ ref: ref,
61
+ tokens: listTokens,
62
+ showDivider: dividers,
63
+ tag: tag,
64
+ ...rest,
65
+ children: children
66
+ }) || /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackWrap.default, {
67
+ space: stackSpace,
68
+ gap: stackGap,
69
+ tokens: {
70
+ justifyContent: stackJustify
71
+ },
72
+ tag: tag,
73
+ ...rest,
74
+ children: children
75
+ });
76
+ return card ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_QuickLinksCard.default, {
77
+ tokens: cardTokens,
78
+ children: content
79
+ }) : content;
80
+ });
81
+ QuickLinks.displayName = 'QuickLinks';
82
+ QuickLinks.propTypes = {
83
+ tokens: (0, _utils.getTokensPropType)('QuickLinks'),
84
+ cardTokens: (0, _utils.getTokensPropType)('Card'),
85
+ listTokens: (0, _utils.getTokensPropType)('QuickLinksList'),
86
+ tag: _propTypes.default.string,
87
+ variant: _utils.variantProp.propType,
88
+ children: _propTypes.default.node
89
+ };
90
+ var _default = QuickLinks;
91
+ exports.default = _default;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _CardBase = _interopRequireDefault(require("../Card/CardBase"));
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ /**
23
+ * Private subcomponent for use within QuickLinks.
24
+ *
25
+ * Restyled Card with identical behaviour to Card, but themed according to the
26
+ * QuickLinksCard theme rather than the Card theme.
27
+ */
28
+ const QuickLinksList = _ref => {
29
+ let {
30
+ tokens,
31
+ variant,
32
+ children
33
+ } = _ref;
34
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('QuickLinksCard', tokens, variant);
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBase.default, {
36
+ tokens: themeTokens,
37
+ children: children
38
+ });
39
+ };
40
+
41
+ QuickLinksList.propTypes = {
42
+ tokens: (0, _utils.getTokensPropType)('QuickLinksCard'),
43
+ variant: _utils.variantProp.propType,
44
+ children: _propTypes.default.node
45
+ };
46
+ var _default = QuickLinksList;
47
+ exports.default = _default;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _utils = require("../utils");
13
+
14
+ var _ViewportProvider = require("../ViewportProvider");
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
17
+
18
+ var _PressableListItemBase = _interopRequireDefault(require("../List/PressableListItemBase"));
19
+
20
+ var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ /**
31
+ * Public component exported as QuickLinks.Item, for use as children of QuickLinks.
32
+ *
33
+ * Receives props injected by QuickLinks and renders the appropriate child component.
34
+ */
35
+ const QuickLinksItem = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
36
+ let {
37
+ tokens,
38
+ variant,
39
+ children,
40
+ ...rest
41
+ } = _ref;
42
+ const viewport = (0, _ViewportProvider.useViewport)();
43
+ const {
44
+ list
45
+ } = (0, _ThemeProvider.useThemeTokens)('QuickLinks', tokens, variant, {
46
+ viewport
47
+ });
48
+ const themeName = list ? 'QuickLinksList' : 'QuickLinksButton';
49
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)(themeName, tokens, variant);
50
+ return list ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_PressableListItemBase.default, {
51
+ ref: ref,
52
+ tokens: getTokens,
53
+ ...rest,
54
+ children: children
55
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
56
+ ref: ref,
57
+ tokens: getTokens,
58
+ ...rest,
59
+ children: children
60
+ });
61
+ });
62
+ QuickLinksItem.displayName = 'QuickLinksItem';
63
+ QuickLinksItem.propTypes = { ..._utils.withLinkRouter.propTypes,
64
+ ..._PressableListItemBase.default.propTypes,
65
+ ..._ButtonBase.default.propTypes,
66
+ tokens: (0, _utils.getTokensPropType)('QuickLinksList', 'QuickLinksButton'),
67
+ variant: _utils.variantProp.propType,
68
+ children: _propTypes.default.node
69
+ };
70
+
71
+ var _default = (0, _utils.withLinkRouter)(QuickLinksItem);
72
+
73
+ exports.default = _default;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _QuickLinks = _interopRequireDefault(require("./QuickLinks"));
9
+
10
+ var _QuickLinksItem = _interopRequireDefault(require("./QuickLinksItem"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ _QuickLinks.default.Item = _QuickLinksItem.default;
15
+ var _default = _QuickLinks.default;
16
+ exports.default = _default;
@@ -11,6 +11,10 @@ var _Animated = _interopRequireDefault(require("react-native-web/dist/cjs/export
11
11
 
12
12
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
13
 
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
+
14
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
19
 
16
20
  var _StackView = _interopRequireDefault(require("../StackView"));
@@ -36,14 +40,12 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
36
40
  const selectSkeletonStyles = _ref => {
37
41
  let {
38
42
  color,
39
- radius,
40
- fadeAnimation
43
+ radius
41
44
  } = _ref;
42
45
  return {
43
46
  backgroundColor: color,
44
47
  borderRadius: radius,
45
- maxWidth: '100%',
46
- ...fadeAnimation
48
+ maxWidth: '100%'
47
49
  };
48
50
  };
49
51
 
@@ -101,12 +103,15 @@ const Skeleton = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
101
103
  const skeletonHeight = (0, _utils.useSpacingScale)(spacingScaleValue);
102
104
  const nativeAnimation = (0, _useSkeletonNativeAnimation.default)();
103
105
 
104
- const getAnimationBaseOnPlatform = () => {
105
- if (_Platform.default.OS !== 'web') {
106
- return nativeAnimation;
107
- }
106
+ const getAnimationBasedOnPlatform = () => {
107
+ const animation = _Platform.default.OS === 'web' ? _skeletonWebAnimation.default : nativeAnimation; // We must pass the animation styles through `StyleSheet.create`
108
+ // @see https://github.com/necolas/react-native-web/issues/2387
109
+
110
+ const styles = _StyleSheet.default.create({
111
+ animation
112
+ });
108
113
 
109
- return _skeletonWebAnimation.default;
114
+ return styles.animation;
110
115
  };
111
116
 
112
117
  const getLineWidth = () => {
@@ -140,11 +145,11 @@ const Skeleton = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
140
145
 
141
146
  const renderSkeleton = function () {
142
147
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
143
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
148
+ // @see https://github.com/necolas/react-native-web/issues/2387
149
+ const Component = _Platform.default.OS === 'web' ? _View.default : _Animated.default.View;
150
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
144
151
  testID: "skeleton",
145
- style: [selectSkeletonStyles({ ...themeTokens,
146
- fadeAnimation: getAnimationBaseOnPlatform()
147
- }), getStyledBasedOnShape()]
152
+ style: [selectSkeletonStyles(themeTokens), getAnimationBasedOnPlatform(), getStyledBasedOnShape()]
148
153
  }, "skeleton-".concat(index + 1));
149
154
  };
150
155
 
@@ -9,6 +9,8 @@ var _react = require("react");
9
9
 
10
10
  var _Animated = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Animated"));
11
11
 
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
12
14
  var _skeleton = require("./skeleton.constant");
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -19,11 +21,11 @@ const useSkeletonNativeAnimation = () => {
19
21
  const fade = _Animated.default.sequence([_Animated.default.timing(fadeAnimation, {
20
22
  toValue: _skeleton.OPACITY_STOP,
21
23
  duration: _skeleton.ANIMATION_DURATION,
22
- useNativeDriver: true
24
+ useNativeDriver: _Platform.default.OS !== 'web'
23
25
  }), _Animated.default.timing(fadeAnimation, {
24
26
  toValue: _skeleton.DEFAULT_OPACITY,
25
27
  duration: _skeleton.ANIMATION_DURATION,
26
- useNativeDriver: true
28
+ useNativeDriver: _Platform.default.OS !== 'web'
27
29
  })]);
28
30
 
29
31
  _Animated.default.loop(fade).start();