@telus-uds/components-base 1.16.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 (36) hide show
  1. package/CHANGELOG.md +20 -2
  2. package/component-docs.json +708 -120
  3. package/lib/BaseProvider/index.js +5 -1
  4. package/lib/Button/ButtonBase.js +2 -1
  5. package/lib/List/List.js +11 -8
  6. package/lib/List/PressableListItemBase.js +5 -9
  7. package/lib/QuickLinks/QuickLinks.js +91 -0
  8. package/lib/QuickLinks/QuickLinksCard.js +47 -0
  9. package/lib/QuickLinks/QuickLinksItem.js +73 -0
  10. package/lib/QuickLinks/index.js +16 -0
  11. package/lib/Timeline/Timeline.js +193 -0
  12. package/lib/Timeline/index.js +13 -0
  13. package/lib/index.js +28 -1
  14. package/lib-module/BaseProvider/index.js +4 -1
  15. package/lib-module/Button/ButtonBase.js +2 -1
  16. package/lib-module/List/List.js +12 -8
  17. package/lib-module/List/PressableListItemBase.js +6 -10
  18. package/lib-module/QuickLinks/QuickLinks.js +71 -0
  19. package/lib-module/QuickLinks/QuickLinksCard.js +33 -0
  20. package/lib-module/QuickLinks/QuickLinksItem.js +50 -0
  21. package/lib-module/QuickLinks/index.js +4 -0
  22. package/lib-module/Timeline/Timeline.js +174 -0
  23. package/lib-module/Timeline/index.js +2 -0
  24. package/lib-module/index.js +4 -1
  25. package/package.json +6 -5
  26. package/src/BaseProvider/index.jsx +2 -1
  27. package/src/Button/ButtonBase.jsx +2 -2
  28. package/src/List/List.jsx +9 -13
  29. package/src/List/PressableListItemBase.jsx +7 -9
  30. package/src/QuickLinks/QuickLinks.jsx +61 -0
  31. package/src/QuickLinks/QuickLinksCard.jsx +26 -0
  32. package/src/QuickLinks/QuickLinksItem.jsx +46 -0
  33. package/src/QuickLinks/index.js +6 -0
  34. package/src/Timeline/Timeline.jsx +148 -0
  35. package/src/Timeline/index.js +3 -0
  36. package/src/index.js +3 -0
@@ -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
 
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;
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
+
14
+ var _ThemeProvider = require("../ThemeProvider");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _ViewportProvider = require("../ViewportProvider");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ 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); }
23
+
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; }
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ const selectDotStyles = _ref => {
29
+ let {
30
+ dotWidth,
31
+ timelineColor,
32
+ dotBorderWidth,
33
+ dotColor
34
+ } = _ref;
35
+ return {
36
+ width: dotWidth,
37
+ height: dotWidth,
38
+ borderRadius: dotWidth / 2,
39
+ backgroundColor: dotColor,
40
+ borderWidth: dotBorderWidth,
41
+ borderColor: timelineColor
42
+ };
43
+ };
44
+
45
+ const selectConnectorStyles = _ref2 => {
46
+ let {
47
+ timelineColor,
48
+ connectorHeight,
49
+ connectorWidth
50
+ } = _ref2;
51
+ return {
52
+ width: connectorWidth,
53
+ height: connectorHeight,
54
+ backgroundColor: timelineColor
55
+ };
56
+ };
57
+
58
+ const selectTimelineContainerStyle = _ref3 => {
59
+ let {
60
+ timelineContainerDirection
61
+ } = _ref3;
62
+ return {
63
+ flexDirection: timelineContainerDirection
64
+ };
65
+ };
66
+
67
+ const selectLineItemStyles = _ref4 => {
68
+ let {
69
+ lineItemAlign,
70
+ lineItemDirection,
71
+ lineItemMarginBottom,
72
+ lineItemMarginRight
73
+ } = _ref4;
74
+ return {
75
+ alignItems: lineItemAlign,
76
+ flexDirection: lineItemDirection,
77
+ marginBottom: lineItemMarginBottom,
78
+ marginRight: lineItemMarginRight,
79
+ overflow: 'hidden'
80
+ };
81
+ };
82
+
83
+ const selectLineItemContainer = _ref5 => {
84
+ let {
85
+ lineItemContainerDirection,
86
+ lineContainerFlexSize
87
+ } = _ref5;
88
+ return {
89
+ flexDirection: lineItemContainerDirection,
90
+ flex: lineContainerFlexSize
91
+ };
92
+ };
93
+
94
+ const selectItemContentStyles = (_ref6, isLastChild) => {
95
+ let {
96
+ itemContentFlexSize,
97
+ itemContentMarginBottom,
98
+ itemContentMarginRight
99
+ } = _ref6;
100
+ return {
101
+ flex: itemContentFlexSize,
102
+ marginBottom: !isLastChild && itemContentMarginBottom,
103
+ marginRight: !isLastChild && itemContentMarginRight
104
+ };
105
+ };
106
+
107
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
108
+ /**
109
+ * Timeline is a component that displays either a horizontal or vertical list of the
110
+ * children components passed by props
111
+ *
112
+ * ## Component API
113
+ *
114
+ * - `horizontal` In order to display the Component list horizontally
115
+ *
116
+ *
117
+ * ## A11y guidelines
118
+ * Timeline link supports all the common a11y props.
119
+ */
120
+
121
+ const Timeline = /*#__PURE__*/(0, _react.forwardRef)((_ref7, ref) => {
122
+ let {
123
+ tokens,
124
+ variant = {},
125
+ children,
126
+ accessibilityLabel,
127
+ tag = 'ul',
128
+ childrenTag = 'li',
129
+ ...rest
130
+ } = _ref7;
131
+ const viewport = (0, _ViewportProvider.useViewport)();
132
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Timeline', tokens, variant, {
133
+ viewport
134
+ });
135
+ const containerProps = { ...selectProps(rest),
136
+ ...(0, _utils.getA11yPropsFromHtmlTag)(tag, rest.accessibilityRole || 'list'),
137
+ accessibilityLabel
138
+ };
139
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, { ...containerProps,
140
+ ref: ref,
141
+ style: selectTimelineContainerStyle(themeTokens),
142
+ children: children.map((child, index) => {
143
+ var _child$props;
144
+
145
+ const childrenProps = { ...(0, _utils.getA11yPropsFromHtmlTag)(childrenTag, (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.accessibilityRole) || 'listitem')
146
+ };
147
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
148
+ style: selectLineItemContainer(themeTokens) // eslint-disable-next-line react/no-array-index-key
149
+ ,
150
+ ...childrenProps,
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
152
+ style: selectLineItemStyles(themeTokens),
153
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
154
+ style: selectDotStyles(themeTokens)
155
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
156
+ style: selectConnectorStyles(themeTokens)
157
+ })]
158
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
159
+ style: selectItemContentStyles(themeTokens, index + 1 === children.length),
160
+ children: child
161
+ })]
162
+ }, "timeline-".concat(index, "-").concat(child.displayName));
163
+ })
164
+ });
165
+ });
166
+ Timeline.displayName = 'Timeline';
167
+ Timeline.propTypes = { ...selectedSystemPropTypes,
168
+ tokens: (0, _utils.getTokensPropType)('Timeline'),
169
+ variant: _utils.variantProp.propType,
170
+
171
+ /**
172
+ * A list of components that will be rendered either horizontally or vertically
173
+ */
174
+ children: _propTypes.default.arrayOf(_propTypes.default.node).isRequired,
175
+
176
+ /**
177
+ * A required accessibility label that needs to be passed to be used on List
178
+ * which is applied as normal for a React Native accessibilityLabel prop.
179
+ */
180
+ accessibilityLabel: _propTypes.default.string.isRequired,
181
+
182
+ /**
183
+ * Sets the HTML tag of the outer container and the children. By default `'li'` for the children
184
+ * and `'ul'` for the container
185
+ *
186
+ * If either `tag` or `childrenTag` is overridden, the other should be too, to avoid producing invalid HTML.
187
+ *
188
+ */
189
+ tag: _propTypes.default.oneOf(_utils.layoutTags),
190
+ childrenTag: _propTypes.default.oneOf(_utils.layoutTags)
191
+ };
192
+ var _default = Timeline;
193
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Timeline = _interopRequireDefault(require("./Timeline"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Timeline.default;
13
+ exports.default = _default;
package/lib/index.js CHANGED
@@ -28,6 +28,7 @@ var _exportNames = {
28
28
  Notification: true,
29
29
  Pagination: true,
30
30
  Progress: true,
31
+ QuickLinks: true,
31
32
  Radio: true,
32
33
  RadioCard: true,
33
34
  Search: true,
@@ -40,6 +41,7 @@ var _exportNames = {
40
41
  StepTracker: true,
41
42
  Tabs: true,
42
43
  Tags: true,
44
+ Timeline: true,
43
45
  Tooltip: true,
44
46
  TooltipButton: true,
45
47
  Typography: true,
@@ -56,7 +58,8 @@ var _exportNames = {
56
58
  getThemeTokens: true,
57
59
  applyOuterBorder: true,
58
60
  applyTextStyles: true,
59
- applyShadowToken: true
61
+ applyShadowToken: true,
62
+ Portal: true
60
63
  };
61
64
  Object.defineProperty(exports, "A11yInfoProvider", {
62
65
  enumerable: true,
@@ -202,6 +205,12 @@ Object.defineProperty(exports, "Pagination", {
202
205
  return _Pagination.default;
203
206
  }
204
207
  });
208
+ Object.defineProperty(exports, "Portal", {
209
+ enumerable: true,
210
+ get: function () {
211
+ return _portal.Portal;
212
+ }
213
+ });
205
214
  Object.defineProperty(exports, "PressableCardBase", {
206
215
  enumerable: true,
207
216
  get: function () {
@@ -214,6 +223,12 @@ Object.defineProperty(exports, "Progress", {
214
223
  return _Progress.default;
215
224
  }
216
225
  });
226
+ Object.defineProperty(exports, "QuickLinks", {
227
+ enumerable: true,
228
+ get: function () {
229
+ return _QuickLinks.default;
230
+ }
231
+ });
217
232
  Object.defineProperty(exports, "Radio", {
218
233
  enumerable: true,
219
234
  get: function () {
@@ -292,6 +307,12 @@ Object.defineProperty(exports, "ThemeProvider", {
292
307
  return _ThemeProvider.default;
293
308
  }
294
309
  });
310
+ Object.defineProperty(exports, "Timeline", {
311
+ enumerable: true,
312
+ get: function () {
313
+ return _Timeline.default;
314
+ }
315
+ });
295
316
  Object.defineProperty(exports, "Tooltip", {
296
317
  enumerable: true,
297
318
  get: function () {
@@ -495,6 +516,8 @@ var _Pagination = _interopRequireDefault(require("./Pagination"));
495
516
 
496
517
  var _Progress = _interopRequireDefault(require("./Progress"));
497
518
 
519
+ var _QuickLinks = _interopRequireDefault(require("./QuickLinks"));
520
+
498
521
  var _Radio = _interopRequireWildcard(require("./Radio"));
499
522
 
500
523
  Object.keys(_Radio).forEach(function (key) {
@@ -569,6 +592,8 @@ Object.keys(_TextInput).forEach(function (key) {
569
592
  });
570
593
  });
571
594
 
595
+ var _Timeline = _interopRequireDefault(require("./Timeline"));
596
+
572
597
  var _ToggleSwitch = require("./ToggleSwitch");
573
598
 
574
599
  Object.keys(_ToggleSwitch).forEach(function (key) {
@@ -611,6 +636,8 @@ Object.keys(_utils).forEach(function (key) {
611
636
  });
612
637
  });
613
638
 
639
+ var _portal = require("@gorhom/portal");
640
+
614
641
  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); }
615
642
 
616
643
  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; }
@@ -2,6 +2,7 @@ var _ThemeProvider$propTy;
2
2
 
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
+ import { PortalProvider } from '@gorhom/portal';
5
6
  import A11yInfoProvider from '../A11yInfoProvider';
6
7
  import ViewportProvider from '../ViewportProvider';
7
8
  import ThemeProvider from '../ThemeProvider';
@@ -18,7 +19,9 @@ const BaseProvider = _ref => {
18
19
  children: /*#__PURE__*/_jsx(ThemeProvider, {
19
20
  defaultTheme: defaultTheme,
20
21
  themeOptions: themeOptions,
21
- children: children
22
+ children: /*#__PURE__*/_jsx(PortalProvider, {
23
+ children: children
24
+ })
22
25
  })
23
26
  })
24
27
  });