@occmundial/occ-atomic 3.0.0-beta.5 → 3.0.0-beta.51

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. package/CHANGELOG.md +414 -0
  2. package/build/Avatar/Avatar.js +69 -21
  3. package/build/Avatar/Avatar.test.js +15 -8
  4. package/build/Avatar/AvatarContent/AvatarContent.js +61 -21
  5. package/build/Avatar/AvatarContent/AvatarContent.test.js +4 -18
  6. package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +75 -15
  7. package/build/Avatar/AvatarContent/styles.js +88 -21
  8. package/build/Avatar/__snapshots__/Avatar.test.js.snap +11 -2
  9. package/build/Avatar/styles.js +18 -7
  10. package/build/Banner/Banner.js +30 -40
  11. package/build/Banner/Banner.test.js +64 -17
  12. package/build/Banner/__snapshots__/Banner.test.js.snap +0 -28
  13. package/build/Banner/index.js +1 -6
  14. package/build/Button/Button.js +1 -1
  15. package/build/Button/Button.test.js +0 -11
  16. package/build/Button/__snapshots__/Button.test.js.snap +54 -60
  17. package/build/Button/styles.js +42 -75
  18. package/build/Checkbox/Checkbox.js +48 -3
  19. package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +81 -49
  20. package/build/Checkbox/styles.js +91 -48
  21. package/build/Fab/__snapshots__/Fab.test.js.snap +2 -2
  22. package/build/Footer/Footer.js +63 -84
  23. package/build/Footer/List/List.js +89 -124
  24. package/build/Footer/List/styles.js +85 -31
  25. package/build/Footer/__snapshots__/Footer.test.js.snap +113 -57
  26. package/build/Footer/styles.js +119 -53
  27. package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
  28. package/build/Grid/Col/styles.js +12 -6
  29. package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
  30. package/build/Grid/Row/styles.js +15 -5
  31. package/build/Grid/styles.js +26 -9
  32. package/build/Modal/Modal.js +94 -66
  33. package/build/Modal/Modal.test.js +14 -7
  34. package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
  35. package/build/Modal/styles.js +165 -143
  36. package/build/Pager/Page/Page.js +8 -5
  37. package/build/Pager/Page/Page.test.js +13 -9
  38. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  39. package/build/Pager/Page/styles.js +48 -14
  40. package/build/Pager/Pager.js +139 -235
  41. package/build/Pager/Pager.test.js +81 -36
  42. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  43. package/build/Pager/styles.js +5 -40
  44. package/build/Pill/Choice/Choice.js +6 -4
  45. package/build/Pill/Choice/styles.js +13 -10
  46. package/build/Pill/Group/styles.js +5 -5
  47. package/build/Pill/Stack/Stack.js +2 -2
  48. package/build/Pill/Stack/styles.js +5 -8
  49. package/build/Placeholder/Placeholder.js +29 -12
  50. package/build/Placeholder/Placeholder.test.js +4 -4
  51. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
  52. package/build/Placeholder/styles.js +86 -42
  53. package/build/Provider/usePrevious.js +1 -1
  54. package/build/Radio/Radio.js +42 -6
  55. package/build/Radio/__snapshots__/Radio.test.js.snap +81 -80
  56. package/build/Radio/styles.js +93 -85
  57. package/build/SlideDown/SlideDown.js +162 -169
  58. package/build/SlideDown/SlideDown.test.js +49 -44
  59. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +45 -13
  60. package/build/SlideDown/styles.js +52 -18
  61. package/build/SlideToggle/SlideToggle.js +38 -6
  62. package/build/SlideToggle/SlideToggle.test.js +2 -2
  63. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -37
  64. package/build/SlideToggle/styles.js +64 -45
  65. package/build/Tabs/Tab/Tab.js +73 -0
  66. package/build/Tabs/Tab/index.js +34 -0
  67. package/build/Tabs/Tab/index.test.js +132 -0
  68. package/build/Tabs/Tab/styles.js +74 -0
  69. package/build/Tabs/TabContent/TabContent.js +76 -0
  70. package/build/Tabs/TabContent/index.js +34 -0
  71. package/build/Tabs/TabContent/index.test.js +68 -0
  72. package/build/Tabs/TabContent/styles.js +23 -0
  73. package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
  74. package/build/Tabs/TabIndicator/index.js +34 -0
  75. package/build/Tabs/TabIndicator/styles.js +24 -0
  76. package/build/Tabs/TabList/TabList.js +108 -0
  77. package/build/Tabs/TabList/index.js +34 -0
  78. package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
  79. package/build/Tabs/Tabs.js +74 -0
  80. package/build/Tabs/context.js +94 -0
  81. package/build/Tabs/index.js +34 -0
  82. package/build/Tabs/index.test.js +157 -0
  83. package/build/Tabs/styles.js +19 -0
  84. package/build/Tag/Tag.js +2 -2
  85. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  86. package/build/Tag/styles.js +76 -82
  87. package/build/Text/Text.js +6 -3
  88. package/build/TextField/TextField.js +7 -6
  89. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  90. package/build/TextField/styles.js +3 -0
  91. package/build/Tip/Tip.js +62 -95
  92. package/build/Tip/Tip.test.js +29 -6
  93. package/build/Tip/TipText/index.js +32 -0
  94. package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
  95. package/build/Tip/styles.js +125 -31
  96. package/build/Toaster/Toast/Toast.js +76 -64
  97. package/build/Toaster/Toast/styles.js +118 -46
  98. package/build/Toaster/Toaster.js +3 -2
  99. package/build/Toaster/Toaster.test.js +5 -2
  100. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  101. package/build/Toaster/functions.js +4 -0
  102. package/build/Toaster/styles.js +3 -3
  103. package/build/Tooltip/Tooltip.js +73 -22
  104. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  105. package/build/Tooltip/styles.js +32 -10
  106. package/build/index.js +14 -1
  107. package/build/subatomic/grid.js +5 -5
  108. package/build/tokens/colors.json +35 -3
  109. package/package.json +4 -1
  110. package/build/Banner/styles.js +0 -41
  111. package/build/Pager/Break/Break.js +0 -27
  112. package/build/Pager/Break/Break.test.js +0 -53
  113. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  114. package/build/Pager/Break/index.js +0 -18
  115. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
@@ -19,10 +19,16 @@ var _Tag = _interopRequireDefault(require("../Tag"));
19
19
 
20
20
  var _Flexbox = _interopRequireDefault(require("../Flexbox"));
21
21
 
22
- var _colors = _interopRequireDefault(require("../subatomic/colors"));
22
+ var _colors = _interopRequireDefault(require("../tokens/colors.json"));
23
+
24
+ var _usePrevious = _interopRequireDefault(require("../Provider/usePrevious"));
23
25
 
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
27
 
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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
+
26
32
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
33
 
28
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
@@ -31,189 +37,158 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
31
37
 
32
38
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
33
39
 
34
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
-
36
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
40
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
37
41
 
38
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
42
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
39
43
 
40
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
44
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
41
45
 
42
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
43
47
 
44
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
48
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
45
49
 
46
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
50
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
51
 
48
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
49
-
50
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
-
52
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
53
-
54
- /** Component to create an accordion section. The content will be hidden by default, and shown after click. */
55
- var SlideDown = /*#__PURE__*/function (_React$Component) {
56
- _inherits(SlideDown, _React$Component);
57
-
58
- var _super = _createSuper(SlideDown);
59
-
60
- function SlideDown(props) {
61
- var _this;
62
-
63
- _classCallCheck(this, SlideDown);
64
-
65
- _this = _super.call(this, props);
66
- _this.state = {
67
- expanded: _this.props.expanded,
68
- toggled: _this.props.expanded
69
- };
70
- _this.toggleContent = _this.toggleContent.bind(_assertThisInitialized(_this));
71
- return _this;
52
+ var textSizes = {
53
+ sm: {
54
+ small: true
55
+ },
56
+ md: {
57
+ standard: true
58
+ },
59
+ lg: {
60
+ extraLarge: true
61
+ },
62
+ "default": {
63
+ standard: true
72
64
  }
73
-
74
- _createClass(SlideDown, [{
75
- key: "componentDidUpdate",
76
- value: function componentDidUpdate(prevProps) {
77
- var expanded = this.props.expanded;
78
-
79
- if (prevProps.expanded !== expanded) {
80
- this.toggleContent(expanded);
65
+ };
66
+ var _themeColors = {
67
+ blue: {
68
+ icon: {
69
+ "default": _colors["default"].icon.brand["default"],
70
+ disabled: _colors["default"].icon.brand.disabled
71
+ },
72
+ text: {
73
+ "default": {
74
+ primary: true
75
+ },
76
+ disabled: {
77
+ indigoSecondary: true
81
78
  }
82
79
  }
83
- }, {
84
- key: "toggleContent",
85
- value: function toggleContent(value) {
86
- var _this2 = this;
87
-
88
- var onToggle = this.props.onToggle;
89
- this.setState(_defineProperty({}, value ? 'expanded' : 'toggled', value));
90
- if (onToggle) onToggle(value);
91
- setTimeout(function () {
92
- _this2.setState(_defineProperty({}, value ? 'toggled' : 'expanded', value));
93
- }, value ? 0 : 300);
94
- }
95
- }, {
96
- key: "render",
97
- value: function render() {
98
- var _this3 = this;
99
-
100
- var _this$state = this.state,
101
- expanded = _this$state.expanded,
102
- toggled = _this$state.toggled;
103
- var _this$props = this.props,
104
- classes = _this$props.classes,
105
- title = _this$props.title,
106
- children = _this$props.children,
107
- tag = _this$props.tag,
108
- textSize = _this$props.textSize,
109
- strong = _this$props.strong,
110
- theme = _this$props.theme,
111
- noJustified = _this$props.noJustified;
112
-
113
- var getTextSize = function getTextSize() {
114
- switch (textSize) {
115
- case 'md':
116
- return {
117
- standard: true
118
- };
119
-
120
- case 'lg':
121
- return {
122
- large: true
123
- };
124
-
125
- case 'sm':
126
- return {
127
- small: true
128
- };
129
-
130
- default:
131
- return {
132
- standard: true
133
- };
134
- }
135
- };
136
-
137
- var getTextTheme = function getTextTheme() {
138
- switch (theme) {
139
- case 'blue':
140
- return {
141
- link: true
142
- };
143
-
144
- case 'default':
145
- default:
146
- return null;
147
- }
148
- };
149
-
150
- var getIconColor = function getIconColor() {
151
- switch (theme) {
152
- case 'blue':
153
- return _colors["default"].textLink;
154
-
155
- case 'default':
156
- default:
157
- return _colors["default"].grey900;
158
- }
159
- };
160
-
161
- var getTextProps = function getTextProps() {
162
- return _objectSpread(_objectSpread({}, getTextSize()), getTextTheme());
163
- };
164
-
165
- return /*#__PURE__*/_react["default"].createElement("div", {
166
- className: classes.wrapper
167
- }, /*#__PURE__*/_react["default"].createElement("div", {
168
- className: classes.button,
169
- onClick: function onClick() {
170
- return _this3.toggleContent(!expanded);
171
- }
172
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
173
- display: "flex",
174
- justifyContent: !noJustified ? 'between' : null,
175
- alignItems: "start"
176
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
177
- display: "flex",
178
- alignItems: "center"
179
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
180
- display: "flex",
181
- alignItems: "start",
182
- wrap: "wrap"
183
- }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({}, getTextProps(), {
184
- strong: strong,
185
- tag: "label",
186
- className: classes.text
187
- }), title), tag && /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
188
- theme: "info",
189
- className: classes.tag
190
- }, tag)))), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
191
- flex: "0 0 auto"
192
- }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
193
- iconName: "arrowDown",
194
- colors: [getIconColor()],
195
- className: classes.icon,
196
- width: 18,
197
- height: 18,
198
- style: {
199
- transform: toggled ? 'rotate(180deg)' : ''
200
- },
201
- testId: "slidedown__arrow-down"
202
- })))), expanded && /*#__PURE__*/_react["default"].createElement("div", {
203
- className: "".concat(classes.content, " ").concat(toggled ? classes.show : classes.hide)
204
- }, children));
80
+ },
81
+ "default": {
82
+ icon: {
83
+ "default": _colors["default"].icon["default"].bold,
84
+ disabled: _colors["default"].icon["default"].disabled
85
+ },
86
+ text: {
87
+ "default": {
88
+ highEmphasis: true
89
+ },
90
+ disabled: {
91
+ disabled: true
92
+ }
205
93
  }
206
- }]);
94
+ }
95
+ };
96
+ /** Component to create an accordion section. The content will be hidden by default, and shown after click. */
207
97
 
208
- return SlideDown;
209
- }(_react["default"].Component);
98
+ function SlideDown(_ref) {
99
+ var expanded = _ref.expanded,
100
+ classes = _ref.classes,
101
+ title = _ref.title,
102
+ customTitle = _ref.customTitle,
103
+ children = _ref.children,
104
+ tag = _ref.tag,
105
+ textSize = _ref.textSize,
106
+ strong = _ref.strong,
107
+ theme = _ref.theme,
108
+ noJustified = _ref.noJustified,
109
+ onToggle = _ref.onToggle,
110
+ icon = _ref.icon,
111
+ divider = _ref.divider,
112
+ noPadding = _ref.noPadding,
113
+ disabled = _ref.disabled,
114
+ testId = _ref.testId;
115
+
116
+ var _useState = (0, _react.useState)(!!expanded),
117
+ _useState2 = _slicedToArray(_useState, 2),
118
+ _expanded = _useState2[0],
119
+ setExpanded = _useState2[1];
120
+
121
+ var prevExpanded = (0, _usePrevious["default"])(!!expanded);
122
+ var themeColors = _themeColors[theme] || _themeColors['default'];
123
+
124
+ var toggleContent = function toggleContent(e) {
125
+ e.stopPropagation();
126
+ setExpanded(!_expanded);
127
+ if (onToggle) onToggle(!_expanded);
128
+ };
129
+
130
+ var getTextProps = function getTextProps() {
131
+ return _objectSpread(_objectSpread({}, textSizes[textSize] || textSizes["default"]), disabled ? themeColors.text.disabled : themeColors.text["default"]);
132
+ };
133
+
134
+ (0, _react.useEffect)(function () {
135
+ if (prevExpanded !== expanded) {
136
+ setExpanded(expanded);
137
+ }
138
+ }, [prevExpanded, expanded]);
139
+ return /*#__PURE__*/_react["default"].createElement("div", {
140
+ className: "".concat(classes.wrapper).concat(divider ? " ".concat(classes.divider) : '')
141
+ }, /*#__PURE__*/_react["default"].createElement("div", _extends({
142
+ className: "".concat(classes.button, " ").concat(textSize === 'lg' ? classes.largePadding : classes.normalPadding).concat(!noPadding ? " ".concat(classes.buttonPadding) : '').concat(disabled ? " ".concat(classes.disabled) : ''),
143
+ role: "button"
144
+ }, !disabled && {
145
+ onClick: toggleContent
146
+ }, {
147
+ "data-testid": testId
148
+ }), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
149
+ display: "flex",
150
+ justifyContent: !noJustified ? 'between' : null,
151
+ alignItems: "center",
152
+ className: classes.flexContainer
153
+ }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
154
+ display: "flex",
155
+ alignItems: "center",
156
+ wrap: "wrap"
157
+ }, icon ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
158
+ iconName: icon,
159
+ width: 16,
160
+ height: 16,
161
+ colors: [!disabled ? themeColors.icon["default"] : themeColors.icon.disabled],
162
+ className: classes.leftIcon
163
+ }) : '', customTitle || /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({}, getTextProps(), {
164
+ strong: strong,
165
+ tag: "label",
166
+ className: "".concat(classes.text).concat(disabled ? " ".concat(classes.disabled) : '')
167
+ }), title), tag && /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
168
+ theme: "info",
169
+ className: classes.tag
170
+ }, tag)), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
171
+ iconName: "arrowDown",
172
+ colors: [!disabled ? themeColors.icon["default"] : themeColors.icon.disabled],
173
+ className: "".concat(classes.icon).concat(_expanded ? " ".concat(classes.rotateIcon) : ''),
174
+ width: 16,
175
+ height: 16,
176
+ testId: "slidedown__arrow-down"
177
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
178
+ className: "".concat(classes.contentWrapper).concat(_expanded ? " ".concat(classes.showContentWrapper) : '')
179
+ }, /*#__PURE__*/_react["default"].createElement("div", {
180
+ className: "".concat(classes.content).concat(_expanded ? " ".concat(classes.showContent) : '')
181
+ }, children)));
182
+ }
210
183
 
211
184
  SlideDown.defaultProps = {
212
185
  expanded: false,
213
186
  textSize: 'md',
214
187
  strong: false,
215
188
  theme: 'default',
216
- noJustified: false
189
+ noJustified: false,
190
+ icon: '',
191
+ noPadding: false
217
192
  };
218
193
  SlideDown.propTypes = {
219
194
  classes: _propTypes["default"].object,
@@ -222,6 +197,9 @@ SlideDown.propTypes = {
222
197
  /** Title of the tab. */
223
198
  title: _propTypes["default"].string,
224
199
 
200
+ /** If the title needs to be customized. It will be rendered instead of the title. */
201
+ customTitle: _propTypes["default"].node,
202
+
225
203
  /** Set this as true to show the content by default. If the external prop is the same of the internal state the component dont toggle */
226
204
  expanded: _propTypes["default"].bool,
227
205
 
@@ -241,7 +219,22 @@ SlideDown.propTypes = {
241
219
  theme: _propTypes["default"].oneOf(['default', 'blue']),
242
220
 
243
221
  /** The Title container has an alignment by default. Use this property if you need to remove it. */
244
- noJustified: _propTypes["default"].bool
222
+ noJustified: _propTypes["default"].bool,
223
+
224
+ /** Shows a divider at the bottom*/
225
+ divider: _propTypes["default"].bool,
226
+
227
+ /** Use the name of any of the icons available in the library. */
228
+ icon: _propTypes["default"].string,
229
+
230
+ /** The container has by default a side padding. Use this property if you need to remove it. */
231
+ noPadding: _propTypes["default"].bool,
232
+
233
+ /** It disables the component and shows it with the proper theme. */
234
+ disabled: _propTypes["default"].bool,
235
+
236
+ /** The testId property adds the data attribute data-testid to the main element and should be used for testing only. */
237
+ testId: _propTypes["default"].string
245
238
  };
246
239
  var _default = SlideDown;
247
240
  exports["default"] = _default;
@@ -14,7 +14,7 @@ var _Text = _interopRequireDefault(require("../Text"));
14
14
 
15
15
  var _Icon = _interopRequireDefault(require("../Icon"));
16
16
 
17
- var _colors = _interopRequireDefault(require("../subatomic/colors"));
17
+ var _colors = _interopRequireDefault(require("../tokens/colors.json"));
18
18
 
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
20
 
@@ -44,23 +44,16 @@ describe('SlideDown', function () {
44
44
  var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
45
45
  expanded: true,
46
46
  classes: classes,
47
- title: "Title"
47
+ title: "Title",
48
+ testId: "slidedown-test"
48
49
  }));
49
- expect(wrapper.find({
50
- 'data-testid': 'slidedown__arrow-down'
51
- }).prop('style')).toEqual({
52
- transform: 'rotate(180deg)',
53
- transition: '0.3s all'
54
- });
55
- wrapper.setState({
56
- toggled: false
57
- });
58
- expect(wrapper.find({
59
- 'data-testid': 'slidedown__arrow-down'
60
- }).prop('style')).toEqual({
61
- transform: '',
62
- transition: '0.3s all'
50
+ expect(wrapper.find('Icon .rotateIcon').length).toBe(1);
51
+ wrapper.find({
52
+ "data-testid": 'slidedown-test'
53
+ }).simulate('click', {
54
+ stopPropagation: function stopPropagation() {}
63
55
  });
56
+ expect(wrapper.find('Icon .rotateIcon').length).toBe(0);
64
57
  });
65
58
  it('shows a Tag on the title', function () {
66
59
  var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
@@ -75,31 +68,17 @@ describe('SlideDown', function () {
75
68
  it('renders the child content', function () {
76
69
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
77
70
  classes: classes,
78
- title: "Title"
79
- }, "Children content"));
80
- expect(wrapper.find('.content').length).toBe(0);
81
- wrapper.setState({
82
- expanded: true
83
- });
84
- expect(wrapper.find('.content').length).toBe(1);
85
- expect(wrapper.find('.content').text()).toEqual('Children content');
86
- });
87
- it('correct render when prop expanded change', function () {
88
- var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
89
- classes: classes,
90
- title: "Title"
71
+ title: "Title",
72
+ testId: "slidedown-test"
91
73
  }, "Children content"));
92
- expect(wrapper.find('.content').length).toBe(0);
93
- wrapper.setProps({
94
- expanded: true
95
- });
96
- expect(wrapper.find('.content').length).toBe(1);
97
- wrapper.setProps({
98
- expanded: false
74
+ expect(wrapper.find('.showContent').length).toBe(0);
75
+ wrapper.find({
76
+ "data-testid": 'slidedown-test'
77
+ }).simulate('click', {
78
+ stopPropagation: function stopPropagation() {}
99
79
  });
100
- setTimeout(function () {
101
- expect(wrapper.find('.content').length).toBe(0);
102
- }, 400);
80
+ expect(wrapper.find('.showContent').length).toBe(1);
81
+ expect(wrapper.find('.showContent').text()).toEqual('Children content');
103
82
  });
104
83
  it('Text have the right properties', function () {
105
84
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
@@ -107,20 +86,46 @@ describe('SlideDown', function () {
107
86
  textSize: 'lg',
108
87
  title: "Title"
109
88
  }, "Children content"));
110
- expect(wrapper.find(_Text["default"]).props().large).toEqual(true);
89
+ expect(wrapper.find(_Text["default"]).props().extraLarge).toEqual(true);
111
90
  });
112
91
  it('Text and Icon has theme color', function () {
113
92
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
114
93
  classes: classes,
115
94
  title: "Title"
116
95
  }, "Children content"));
117
- expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].grey900]);
118
- expect(wrapper.find(_Text["default"]).props().link).toBeFalsy();
96
+ expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].icon["default"].bold]);
97
+ expect(wrapper.find(_Text["default"]).props().primary).toBeFalsy();
119
98
  wrapper.setProps({
120
99
  theme: 'blue'
121
100
  });
122
- expect(wrapper.find(_Text["default"]).props().link).toEqual(true);
123
- expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].textLink]);
101
+ expect(wrapper.find(_Text["default"]).props().primary).toEqual(true);
102
+ expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].icon.brand["default"]]);
103
+ });
104
+ it('render a custom title', function () {
105
+ var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
106
+ customTitle: /*#__PURE__*/_react["default"].createElement("div", {
107
+ "data-testid": "custom-title",
108
+ style: {
109
+ display: 'flex',
110
+ gap: '24px',
111
+ alignItems: 'center'
112
+ }
113
+ }, /*#__PURE__*/_react["default"].createElement("p", {
114
+ style: {
115
+ margin: 0
116
+ }
117
+ }, "Custom ", /*#__PURE__*/_react["default"].createElement("b", null, "SlideDown"), " Title"), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
118
+ iconName: "search",
119
+ width: 16,
120
+ height: 16
121
+ })),
122
+ title: "This title should not render",
123
+ classes: classes
124
+ }, "Children content"));
125
+ expect(wrapper.find({
126
+ "data-testid": 'custom-title'
127
+ }).exists()).toEqual(true);
128
+ expect(wrapper.find('label').exists()).toEqual(false);
124
129
  });
125
130
  });
126
131
  describe('SlideDownJSS', function () {
@@ -7,34 +7,66 @@ Object {
7
7
  "button": Object {
8
8
  "cursor": "pointer",
9
9
  },
10
+ "buttonPadding": Object {
11
+ "paddingLeft": "16px",
12
+ "paddingRight": "16px",
13
+ },
10
14
  "content": Object {
11
- "transition": "0.3s all ease-out",
15
+ "overflow": "hidden",
16
+ "transform": "translateY(-10px)",
17
+ "transition": "transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
12
18
  },
13
- "hide": Object {
14
- "marginBottom": 16,
15
- "marginTop": -16,
19
+ "contentWrapper": Object {
20
+ "display": "grid",
21
+ "gridTemplateRows": "0fr",
16
22
  "opacity": 0,
17
- "pointerEvents": "none",
23
+ "transition": "grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
24
+ },
25
+ "disabled": Object {
26
+ "cursor": "not-allowed",
27
+ },
28
+ "divider": Object {
29
+ "boxShadow": "inset 0 -1px 0px 0px #EDEDF1",
30
+ },
31
+ "flexContainer": Object {
32
+ "gap": "16px",
18
33
  },
19
34
  "icon": Object {
20
- "marginLeft": 8,
21
- "marginTop": 4,
35
+ "transition": "rotate cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
36
+ },
37
+ "largePadding": Object {
38
+ "paddingBottom": "16px",
39
+ "paddingTop": "16px",
40
+ },
41
+ "leftIcon": Object {
42
+ "marginRight": "8px",
43
+ },
44
+ "normalPadding": Object {
45
+ "paddingBottom": "12px",
46
+ "paddingTop": "12px",
47
+ },
48
+ "rotateIcon": Object {
49
+ "transform": "rotate(-180deg)",
50
+ },
51
+ "showContent": Object {
52
+ "marginBottom": "12px",
53
+ "transform": "translateY(0px)",
54
+ "transition": "transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s",
22
55
  },
23
- "show": Object {
24
- "marginBottom": 0,
25
- "marginTop": 0,
56
+ "showContentWrapper": Object {
57
+ "gridTemplateRows": "1fr",
26
58
  "opacity": 1,
59
+ "transition": "grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s",
27
60
  },
28
61
  "tag": Object {
29
- "marginLeft": 8,
30
- "marginTop": 4,
62
+ "marginLeft": "8px",
31
63
  "pointerEvents": "none",
32
64
  },
33
65
  "text": Object {
34
66
  "cursor": "pointer",
35
67
  },
36
68
  "wrapper": Object {
37
- "marginBottom": 16,
69
+ "marginBottom": "16px",
38
70
  },
39
71
  }
40
72
  `;