@occmundial/occ-atomic 3.0.0-beta.6 → 3.0.0-beta.60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. package/CHANGELOG.md +476 -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 -58
  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 +81 -87
  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 +109 -59
  26. package/build/Footer/styles.js +116 -51
  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/Menu/Menu.js +111 -0
  33. package/build/Menu/index.js +34 -0
  34. package/build/Menu/styles.js +28 -0
  35. package/build/Modal/Modal.js +94 -66
  36. package/build/Modal/Modal.test.js +14 -7
  37. package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
  38. package/build/Modal/styles.js +165 -143
  39. package/build/OrderBy/OrderBy.js +2 -1
  40. package/build/Pager/Page/Page.js +11 -6
  41. package/build/Pager/Page/Page.test.js +13 -9
  42. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  43. package/build/Pager/Page/styles.js +48 -14
  44. package/build/Pager/Pager.js +144 -235
  45. package/build/Pager/Pager.test.js +81 -36
  46. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  47. package/build/Pager/styles.js +5 -40
  48. package/build/Pill/Choice/Choice.js +6 -4
  49. package/build/Pill/Choice/styles.js +13 -10
  50. package/build/Pill/Group/styles.js +5 -5
  51. package/build/Pill/Stack/Stack.js +2 -2
  52. package/build/Pill/Stack/styles.js +5 -8
  53. package/build/Placeholder/Placeholder.js +29 -12
  54. package/build/Placeholder/Placeholder.test.js +4 -4
  55. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
  56. package/build/Placeholder/styles.js +86 -42
  57. package/build/Provider/usePrevious.js +1 -1
  58. package/build/Radio/Radio.js +42 -6
  59. package/build/Radio/__snapshots__/Radio.test.js.snap +81 -80
  60. package/build/Radio/styles.js +93 -85
  61. package/build/SlideDown/SlideDown.js +162 -169
  62. package/build/SlideDown/SlideDown.test.js +49 -44
  63. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
  64. package/build/SlideDown/styles.js +51 -20
  65. package/build/SlideToggle/SlideToggle.js +38 -6
  66. package/build/SlideToggle/SlideToggle.test.js +2 -2
  67. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +52 -37
  68. package/build/SlideToggle/styles.js +64 -45
  69. package/build/Tabs/Tab/Tab.js +73 -0
  70. package/build/Tabs/Tab/index.js +34 -0
  71. package/build/Tabs/Tab/index.test.js +132 -0
  72. package/build/Tabs/Tab/styles.js +74 -0
  73. package/build/Tabs/TabContent/TabContent.js +76 -0
  74. package/build/Tabs/TabContent/index.js +34 -0
  75. package/build/Tabs/TabContent/index.test.js +68 -0
  76. package/build/Tabs/TabContent/styles.js +23 -0
  77. package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
  78. package/build/Tabs/TabIndicator/index.js +34 -0
  79. package/build/Tabs/TabIndicator/styles.js +24 -0
  80. package/build/Tabs/TabList/TabList.js +108 -0
  81. package/build/Tabs/TabList/index.js +34 -0
  82. package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
  83. package/build/Tabs/Tabs.js +74 -0
  84. package/build/Tabs/context.js +94 -0
  85. package/build/Tabs/index.js +34 -0
  86. package/build/Tabs/index.test.js +157 -0
  87. package/build/Tabs/styles.js +19 -0
  88. package/build/Tag/Tag.js +2 -2
  89. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  90. package/build/Tag/styles.js +76 -82
  91. package/build/Text/Text.js +2 -1
  92. package/build/TextField/TextField.js +7 -6
  93. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  94. package/build/TextField/styles.js +3 -0
  95. package/build/Tip/Tip.js +62 -95
  96. package/build/Tip/Tip.test.js +29 -6
  97. package/build/Tip/TipText/index.js +32 -0
  98. package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
  99. package/build/Tip/styles.js +125 -31
  100. package/build/Toaster/Toast/Toast.js +76 -64
  101. package/build/Toaster/Toast/styles.js +118 -46
  102. package/build/Toaster/Toaster.js +3 -2
  103. package/build/Toaster/Toaster.test.js +5 -2
  104. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  105. package/build/Toaster/functions.js +4 -0
  106. package/build/Toaster/styles.js +3 -3
  107. package/build/Tooltip/Tooltip.js +73 -22
  108. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  109. package/build/Tooltip/styles.js +32 -10
  110. package/build/index.js +18 -16
  111. package/build/plugin/babel.js +0 -2
  112. package/build/subatomic/grid.js +5 -5
  113. package/build/tokens/colors.json +35 -3
  114. package/package.json +5 -2
  115. package/build/Banner/styles.js +0 -41
  116. package/build/Header/Header.js +0 -163
  117. package/build/Header/Header.test.js +0 -118
  118. package/build/Header/Menu/Menu.js +0 -135
  119. package/build/Header/Menu/Menu.test.js +0 -107
  120. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
  121. package/build/Header/Menu/index.js +0 -18
  122. package/build/Header/Menu/styles.js +0 -123
  123. package/build/Header/Nav/Nav.js +0 -95
  124. package/build/Header/Nav/Nav.test.js +0 -81
  125. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
  126. package/build/Header/Nav/index.js +0 -18
  127. package/build/Header/Nav/styles.js +0 -110
  128. package/build/Header/__snapshots__/Header.test.js.snap +0 -79
  129. package/build/Header/index.js +0 -18
  130. package/build/Header/styles.js +0 -94
  131. package/build/Pager/Break/Break.js +0 -27
  132. package/build/Pager/Break/Break.test.js +0 -53
  133. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  134. package/build/Pager/Break/index.js +0 -18
  135. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -11,137 +11,145 @@ var _colors = _interopRequireDefault(require("../tokens/colors.json"));
11
11
 
12
12
  var _shadows = _interopRequireDefault(require("../tokens/shadows.json"));
13
13
 
14
+ var _borderRadius = _interopRequireDefault(require("../tokens/borderRadius.json"));
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
16
18
  var radio = _colors["default"].radio;
19
+ var transition = 'all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s';
20
+ var contentHeight = 48;
21
+ var radioWidth = 52;
22
+ var radioSize = 20;
23
+ var radioInnerSize = 10;
17
24
  var _default = {
18
25
  cont: {
19
- paddingTop: _spacing["default"]['size-2'],
20
- paddingBottom: _spacing["default"]['size-2'],
21
26
  boxSizing: 'border-box',
22
27
  display: 'flex',
23
- alignItems: 'start',
28
+ alignItems: 'flex-start',
24
29
  cursor: 'pointer',
25
30
  outline: '0',
31
+ '&:focus-visible $radio': {
32
+ boxShadow: _shadows["default"]['focus-bright-blue']
33
+ },
34
+ '&:hover $radio $radioOuter': {
35
+ boxShadow: "inset 0 0 0 1px ".concat(radio.unselected.border.hover)
36
+ },
37
+ '&:active $radio $radioOuter': {
38
+ boxShadow: "inset 0 0 0 2px ".concat(radio.unselected.border.hover)
39
+ },
26
40
  '&$active': {
27
- '&:focus $radio:before': {
28
- borderColor: radio['selected']['border']['default'],
29
- boxShadow: _shadows["default"]['focus-bright-blue']
30
- },
31
41
  '&:hover': {
32
- '& $radio:before': {
33
- borderColor: radio['selected']['border']['hover'],
34
- boxShadow: 'initial'
42
+ '& $radio $radioOuter': {
43
+ boxShadow: "inset 0 0 0 2px ".concat(radio.selected.border.hover)
35
44
  },
36
- '& $radio:after': {
37
- background: radio['selected']['bg']['hover']
45
+ '& $radio $radioInner': {
46
+ background: radio.selected.bg.hover
38
47
  }
39
48
  },
40
49
  '&:active': {
41
- '& $radio:before': {
42
- borderColor: radio['selected']['border']['hover'],
43
- borderWidth: '3px',
44
- boxShadow: 'initial'
50
+ '& $radio $radioOuter': {
51
+ boxShadow: "inset 0 0 0 3px ".concat(radio.selected.border.hover, " !important")
45
52
  },
46
- '& $radio:after': {
47
- background: radio['selected']['bg']['hover']
53
+ '& $radio $radioInner': {
54
+ background: radio.selected.bg.hover
48
55
  }
49
56
  }
50
- },
51
- '&:not($active)': {
52
- '&:focus $radio:before': {
53
- borderColor: radio['unselected']['border']['default'],
54
- boxShadow: _shadows["default"]['focus-bright-blue']
55
- },
56
- '&:hover $radio:before': {
57
- borderColor: radio['unselected']['border']['hover'],
58
- boxShadow: 'initial'
59
- },
60
- '&:active $radio:before': {
61
- borderColor: radio['unselected']['border']['hover'],
62
- borderWidth: '2px',
63
- boxShadow: 'initial'
64
- }
65
57
  }
66
58
  },
59
+ radioWrap: {
60
+ width: radioWidth,
61
+ height: contentHeight,
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ justifyContent: 'center',
65
+ flexShrink: 0
66
+ },
67
67
  radio: {
68
- width: _spacing["default"]['size-5'],
69
- height: _spacing["default"]['size-5'],
70
- position: 'relative',
71
- '&:before': {
72
- content: '""',
73
- boxSizing: 'border-box',
74
- width: 20,
75
- height: 20,
76
- borderRadius: '50%',
77
- position: 'absolute',
78
- top: '50%',
79
- left: '50%',
80
- transform: 'translate(-50%, -50%)',
81
- border: "1px solid ".concat(radio['unselected']['border']['default']),
82
- background: radio['bg']['default']
83
- },
84
- '&:after': {
85
- content: '""',
86
- boxSizing: 'border-box',
87
- width: 10,
88
- height: 10,
89
- borderRadius: '50%',
90
- position: 'absolute',
91
- top: '50%',
92
- left: '50%',
93
- transform: 'translate(-50%, -50%)',
94
- transition: '0.3s all',
95
- background: radio['bg']['default']
96
- }
68
+ width: radioSize,
69
+ height: radioSize,
70
+ borderRadius: _borderRadius["default"]['br-full'],
71
+ transition: transition,
72
+ display: 'grid',
73
+ alignItems: 'center',
74
+ justifyContent: 'center'
75
+ },
76
+ radioOuter: {
77
+ width: radioSize,
78
+ height: radioSize,
79
+ borderRadius: _borderRadius["default"]['br-full'],
80
+ boxShadow: "inset 0 0 0 1px ".concat(radio.unselected.border["default"]),
81
+ background: radio.bg["default"],
82
+ transition: transition,
83
+ gridRowStart: 1,
84
+ gridColumnStart: 1
85
+ },
86
+ radioInner: {
87
+ width: radioInnerSize,
88
+ height: radioInnerSize,
89
+ margin: 5,
90
+ borderRadius: _borderRadius["default"]['br-full'],
91
+ background: radio.bg["default"],
92
+ transition: transition,
93
+ gridRowStart: 1,
94
+ gridColumnStart: 1
97
95
  },
98
96
  active: {
99
97
  '& $radio': {
100
- '&:before': {
101
- borderWidth: 2,
102
- borderColor: radio['selected']['border']['default']
98
+ '& $radioOuter': {
99
+ boxShadow: "inset 0 0 0 2px ".concat(radio.selected.border["default"])
103
100
  },
104
- '&:after': {
105
- background: radio['selected']['bg']['default']
101
+ '& $radioInner': {
102
+ background: radio.selected.bg["default"]
106
103
  }
107
104
  }
108
105
  },
109
106
  disabled: {
110
107
  pointerEvents: 'none',
111
- '& :not($radio)': {
112
- opacity: 0.4
108
+ '& $radio $radioOuter': {
109
+ background: radio.bg.disabled
113
110
  },
114
- '&$active': {
115
- '& $radio:before': {
116
- borderColor: radio['selected']['border']['disabled']
117
- },
118
- '& $radio:after': {
119
- background: radio['selected']['bg']['disabled']
120
- }
111
+ '& $radio $radioInner': {
112
+ background: radio.bg.disabled
121
113
  },
122
- '&:not($active)': {
123
- '& $radio:before': {
124
- background: radio['bg']['disabled']
114
+ '&$active': {
115
+ '& $radio $radioOuter': {
116
+ boxShadow: "inset 0 0 0 2px ".concat(radio.selected.border.disabled)
125
117
  },
126
- '& $radio:after': {
127
- background: radio['bg']['disabled']
118
+ '& $radio $radioInner': {
119
+ background: radio.selected.bg.disabled
128
120
  }
129
121
  }
130
122
  },
123
+ labelWrap: {
124
+ minHeight: contentHeight,
125
+ display: 'flex',
126
+ alignItems: 'center',
127
+ paddingTop: _spacing["default"]['size-1'],
128
+ paddingBottom: _spacing["default"]['size-1'],
129
+ overflow: 'hidden',
130
+ flex: 1
131
+ },
131
132
  label: {
132
- marginLeft: _spacing["default"]['size-2'],
133
+ marginLeft: _spacing["default"]['size-3'],
134
+ pointerEvents: 'none',
133
135
  cursor: 'pointer',
134
- "float": 'left',
135
- flex: '1'
136
+ flex: 1
136
137
  },
137
138
  right: {
138
139
  marginLeft: _spacing["default"]['size-2'],
139
- "float": 'right'
140
+ pointerEvents: 'none'
140
141
  },
141
142
  overflow: {
142
143
  overflow: 'hidden',
143
144
  textOverflow: 'ellipsis',
144
145
  whiteSpace: 'nowrap'
146
+ },
147
+ tag: {
148
+ marginLeft: _spacing["default"]['size-2'],
149
+ pointerEvents: 'none'
150
+ },
151
+ alignLeft: {
152
+ flex: 'none'
145
153
  }
146
154
  };
147
155
  exports["default"] = _default;
@@ -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: divider ? 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;