@occmundial/occ-atomic 3.0.0-beta.49 → 3.0.0-beta.50

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [3.0.0-beta.50](https://github.com/occmundial/occ-atomic/compare/v3.0.0-beta.49...v3.0.0-beta.50) (2024-09-03)
2
+
3
+
4
+ ### Features
5
+
6
+ * Update footer design and use design tokens ([2e83d4f](https://github.com/occmundial/occ-atomic/commit/2e83d4f7f135570a6c4a375c28bedab578f1a8f4))
7
+
1
8
  # [3.0.0-beta.49](https://github.com/occmundial/occ-atomic/compare/v3.0.0-beta.48...v3.0.0-beta.49) (2024-08-27)
2
9
 
3
10
 
@@ -1,105 +1,84 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
12
- var _Grid = _interopRequireDefault(require("../Grid"));
13
-
14
- var _WindowSize = _interopRequireDefault(require("../WindowSize"));
15
-
16
- var _Flexbox = _interopRequireDefault(require("../Flexbox"));
17
-
18
- var _grid = _interopRequireDefault(require("../subatomic/grid"));
14
+ var _Grid = _interopRequireDefault(require("./../Grid"));
19
15
 
20
16
  var _List = _interopRequireDefault(require("./List"));
21
17
 
22
- var _Text = _interopRequireDefault(require("../Text"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
19
 
24
- var _Button = _interopRequireDefault(require("../Button"));
20
+ 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); }
25
21
 
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+ 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
23
 
28
24
  var itemTypes = {
29
25
  link: 'link',
30
26
  icon: 'icon',
31
27
  custom: 'custom'
32
28
  };
33
- /** Customisable footer component. This component can receive an array of columns. Those columns can contain an array of lists, and those lists can contain a title and and array of items. The items are objects that must define a type (one of 'link,', 'icon' or 'cursom').
34
- It can also receive a copy string, to show the copyright data, and an array of links to show above it.
35
- */
36
29
 
37
30
  var Footer = function Footer(_ref) {
38
- var classes = _ref.classes,
39
- columns = _ref.columns,
40
- winWidth = _ref.winWidth,
41
- bottomLinks = _ref.bottomLinks,
31
+ var _ref$columns = _ref.columns,
32
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
33
+ _ref$bottomLinks = _ref.bottomLinks,
34
+ bottomLinks = _ref$bottomLinks === void 0 ? [] : _ref$bottomLinks,
42
35
  copyText = _ref.copyText,
43
36
  aux = _ref.aux,
44
- bottomItem = _ref.bottomItem,
45
- listClassName = _ref.listClassName;
46
- var text = aux.text,
47
- icon = aux.icon,
48
- href = aux.href,
49
- target = aux.target,
50
- iconRight = aux.iconRight,
51
- auxClassName = aux.className;
52
- var isMobile = winWidth < _grid["default"].sm;
53
- return /*#__PURE__*/_react["default"].createElement("div", {
54
- className: columns.length > 0 ? classes.footer : classes.footerWithoutColumns
37
+ listClassName = _ref.listClassName,
38
+ isFluid = _ref.isFluid,
39
+ topElement = _ref.topElement,
40
+ bottomLinksClassName = _ref.bottomLinksClassName,
41
+ sectionDivider = _ref.sectionDivider,
42
+ classes = _ref.classes;
43
+ return /*#__PURE__*/_react["default"].createElement("footer", {
44
+ className: classes.footer
55
45
  }, /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
56
- fluid: winWidth < _grid["default"].xl
57
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
58
- display: "flex",
59
- direction: isMobile ? 'col' : 'row',
46
+ fluid: isFluid,
47
+ className: classes.footerContainer
48
+ }, /*#__PURE__*/(0, _react.isValidElement)(topElement) ? topElement : '', columns.length ? /*#__PURE__*/_react["default"].createElement("section", {
60
49
  className: classes.column
61
50
  }, columns.map(function (column, index) {
62
- return /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
51
+ return /*#__PURE__*/_react["default"].createElement("div", {
63
52
  key: index,
64
- flex: "1",
65
- className: !isMobile ? classes.list : ''
53
+ className: classes.listContainer
66
54
  }, column.map(function (list) {
67
55
  return /*#__PURE__*/_react["default"].createElement(_List["default"], {
68
- list: list,
69
- isMobile: isMobile,
70
56
  key: list.key,
57
+ list: list,
71
58
  listClassName: listClassName
72
59
  });
73
60
  }));
74
- })), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
75
- display: "flex",
76
- alignItems: "start",
77
- className: classes.bottomWrap,
78
- direction: isMobile ? 'col' : 'row'
79
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
80
- flex: "1"
81
- }, aux && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
82
- href: href,
83
- target: target,
84
- icon: icon,
85
- iconRight: iconRight,
86
- size: "md",
87
- theme: "ghostPink",
88
- className: "".concat(isMobile ? classes.buttonMobile : '', " ").concat(auxClassName)
89
- }, text), /*#__PURE__*/_react["default"].createElement(_Text["default"], {
90
- small: true,
91
- mid: true,
92
- bottomTiny: true,
93
- tag: "div"
94
- }, bottomLinks.map(function (item) {
95
- return /*#__PURE__*/_react["default"].createElement("div", {
96
- className: isMobile ? classes.mobileListElement : classes.listElement,
61
+ })) : '', sectionDivider ? /*#__PURE__*/_react["default"].createElement("div", {
62
+ className: classes.divider
63
+ }) : '', /*#__PURE__*/_react["default"].createElement("section", {
64
+ className: classes.bottomSection
65
+ }, aux ? /*#__PURE__*/_react["default"].createElement("div", {
66
+ className: classes.auxContainer
67
+ }, aux.badges ? /*#__PURE__*/_react["default"].createElement("div", {
68
+ className: classes.badgesContainer
69
+ }, aux.badges) : '', aux.socialMedia ? /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: classes.socialMediaContainer
71
+ }, aux.socialMedia) : '', aux.extraContent) : '', /*#__PURE__*/_react["default"].createElement("div", {
72
+ className: classes.bottomContainer
73
+ }, /*#__PURE__*/_react["default"].createElement("div", {
74
+ className: "".concat(classes.bottomLinksContainer, " ").concat(bottomLinksClassName)
75
+ }, bottomLinks.map(function (item, index) {
76
+ return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
97
77
  key: item.key
98
- }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
99
- tag: "label",
100
- small: true,
101
- mid: true,
102
- testId: item.testId
78
+ }, index === 0 || index === bottomLinks.length ? '' : /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: classes.linkDivider
80
+ }), /*#__PURE__*/_react["default"].createElement("div", {
81
+ className: classes.listElement
103
82
  }, /*#__PURE__*/_react["default"].createElement("a", {
104
83
  className: classes.link,
105
84
  href: item.href,
@@ -107,10 +86,9 @@ var Footer = function Footer(_ref) {
107
86
  rel: item.rel,
108
87
  onClick: item.onClick
109
88
  }, item.text)));
110
- })), copyText && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
111
- small: true,
112
- mid: true
113
- }, copyText)), bottomItem)));
89
+ })), copyText && /*#__PURE__*/_react["default"].createElement("div", {
90
+ className: classes.copyright
91
+ }, copyText)))));
114
92
  };
115
93
 
116
94
  var columnPropTypes = _propTypes["default"].arrayOf(_propTypes["default"].arrayOf(_propTypes["default"].shape({
@@ -143,32 +121,35 @@ Footer.propTypes = {
143
121
  /** Array of links to render at the bottom. */
144
122
  bottomLinks: _propTypes["default"].array,
145
123
 
146
- /** Custom component to render on the bottom left. */
147
- customBottom: _propTypes["default"].node,
148
-
149
124
  /** String or component to show as the copyright label. */
150
125
  copyText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
151
126
 
152
127
  /** Object to implement an auxiliar button on the bottom right. */
153
128
  aux: _propTypes["default"].shape({
154
- text: _propTypes["default"].string,
155
- icon: _propTypes["default"].string,
156
- href: _propTypes["default"].string,
157
- target: _propTypes["default"].string,
158
- iconRight: _propTypes["default"].string
129
+ badges: _propTypes["default"].node,
130
+ socialMedia: _propTypes["default"].node,
131
+ extraContent: _propTypes["default"].node
159
132
  }),
160
133
 
161
134
  /** Custom component to render on the bottom right, at the end of the footer */
162
135
  bottomItem: _propTypes["default"].node,
163
136
 
164
137
  /** Footer list className. */
165
- listClassName: _propTypes["default"].string
138
+ listClassName: _propTypes["default"].string,
139
+ isFluid: _propTypes["default"]["boolean"],
140
+
141
+ /** Custom component to render at the top of the footer, commonly used for brand logo */
142
+ topElement: _propTypes["default"].node,
143
+
144
+ /** Custom classname for bottomLinks container. */
145
+ bottomLinksClassName: _propTypes["default"].string,
146
+
147
+ /** Flag to display an horizontal line between sections */
148
+ sectionDivider: _propTypes["default"]["boolean"]
166
149
  };
167
150
  Footer.defaultProps = {
168
151
  bottomLinks: [],
169
152
  columns: []
170
153
  };
171
-
172
- var _default = (0, _WindowSize["default"])(Footer);
173
-
154
+ var _default = Footer;
174
155
  exports["default"] = _default;
@@ -11,13 +11,11 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _Text = _interopRequireDefault(require("../../Text"));
15
-
16
14
  var _Icon = _interopRequireDefault(require("../../Icon"));
17
15
 
18
- var _spacing = _interopRequireDefault(require("../../subatomic/spacing"));
16
+ var _spacing = _interopRequireDefault(require("../../tokens/spacing.json"));
19
17
 
20
- var _colors = _interopRequireDefault(require("../../subatomic/colors"));
18
+ var _colors = _interopRequireDefault(require("../../tokens/colors.json"));
21
19
 
22
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
21
 
@@ -25,27 +23,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
23
 
26
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
25
 
28
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
-
30
- 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); } }
31
-
32
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
33
-
34
- 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); }
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
35
27
 
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
+ 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."); }
37
29
 
38
- 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); }; }
30
+ 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); }
39
31
 
40
- 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); }
32
+ 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; }
41
33
 
42
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
34
+ 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; }
43
35
 
44
- 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; } }
45
-
46
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
-
48
- 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; }
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
49
37
 
50
38
  var itemTypes = {
51
39
  link: 'link',
@@ -53,110 +41,87 @@ var itemTypes = {
53
41
  custom: 'custom'
54
42
  };
55
43
 
56
- var List = /*#__PURE__*/function (_Component) {
57
- _inherits(List, _Component);
58
-
59
- var _super = _createSuper(List);
60
-
61
- function List() {
62
- var _this;
63
-
64
- _classCallCheck(this, List);
65
-
66
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67
- args[_key] = arguments[_key];
68
- }
69
-
70
- _this = _super.call.apply(_super, [this].concat(args));
71
-
72
- _defineProperty(_assertThisInitialized(_this), "state", {
73
- toggle: false
74
- });
75
-
76
- _defineProperty(_assertThisInitialized(_this), "toggleList", function () {
77
- return _this.setState({
78
- toggle: !_this.state.toggle
79
- });
80
- });
81
-
82
- _defineProperty(_assertThisInitialized(_this), "renderLink", function (item) {
83
- var classes = _this.props.classes;
84
- return /*#__PURE__*/_react["default"].createElement(_Text["default"], {
85
- key: item.key,
86
- small: true,
87
- bottomTiny: true
88
- }, /*#__PURE__*/_react["default"].createElement("a", {
89
- href: item.href,
90
- target: item.target,
91
- rel: item.rel,
92
- className: classes.link,
93
- title: item.title
94
- }, item.text));
95
- });
96
-
97
- _defineProperty(_assertThisInitialized(_this), "renderIcon", function (item) {
98
- var classes = _this.props.classes;
99
- return /*#__PURE__*/_react["default"].createElement("div", {
100
- key: item.key,
101
- className: classes.iconWrapper,
102
- title: item.title
103
- }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
104
- iconName: item.iconName,
105
- className: classes.icon,
106
- onClick: item.onClick,
107
- colors: [_colors["default"].grey600],
108
- ariaLabel: item.title
109
- }));
110
- });
111
-
112
- _defineProperty(_assertThisInitialized(_this), "renderCustom", function (item) {
113
- return /*#__PURE__*/_react["default"].createElement("div", {
114
- key: item.key
115
- }, item.custom);
116
- });
117
-
118
- _defineProperty(_assertThisInitialized(_this), "renderItem", function (item) {
119
- if (item.type === itemTypes.link) return _this.renderLink(item);else if (item.type === itemTypes.icon) return _this.renderIcon(item);else if (item.type === itemTypes.custom) return _this.renderCustom(item);
120
- });
121
-
122
- return _this;
123
- }
124
-
125
- _createClass(List, [{
126
- key: "render",
127
- value: function render() {
128
- var _this2 = this;
129
-
130
- var _this$props = this.props,
131
- _this$props$list = _this$props.list,
132
- collapse = _this$props$list.collapse,
133
- title = _this$props$list.title,
134
- items = _this$props$list.items,
135
- isMobile = _this$props.isMobile,
136
- classes = _this$props.classes,
137
- listClassName = _this$props.listClassName;
138
- var toggle = this.state.toggle;
139
- var isCollapsible = collapse || isMobile;
140
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
141
- onClick: isCollapsible ? this.toggleList : null,
142
- className: "".concat(classes.title, " ").concat(isCollapsible ? classes.collapsible : '')
143
- }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
144
- tag: "span"
145
- }, title), isCollapsible && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
146
- iconName: "forward",
147
- width: _spacing["default"].small,
148
- height: _spacing["default"].small,
149
- className: "".concat(classes.arrow, " ").concat(toggle ? classes.arrowUp : classes.arrowDown)
150
- })), /*#__PURE__*/_react["default"].createElement("div", {
151
- className: "".concat(classes.list, " ").concat(toggle || !isCollapsible ? classes.toggle : '', " ").concat(listClassName)
152
- }, items.map(function (item) {
153
- return _this2.renderItem(item);
154
- })));
155
- }
156
- }]);
157
-
158
- return List;
159
- }(_react.Component);
44
+ var List = function List(_ref) {
45
+ var _ref$list = _ref.list,
46
+ title = _ref$list.title,
47
+ items = _ref$list.items,
48
+ listClassName = _ref.listClassName,
49
+ classes = _ref.classes;
50
+
51
+ var _useState = (0, _react.useState)(false),
52
+ _useState2 = _slicedToArray(_useState, 2),
53
+ toggle = _useState2[0],
54
+ setToggle = _useState2[1];
55
+
56
+ var _useState3 = (0, _react.useState)(false),
57
+ _useState4 = _slicedToArray(_useState3, 2),
58
+ overflowVisible = _useState4[0],
59
+ setOverflowVisible = _useState4[1];
60
+
61
+ var toggleList = (0, _react.useCallback)(function () {
62
+ return setToggle(!toggle);
63
+ }, [toggle]);
64
+ (0, _react.useEffect)(function () {
65
+ var timeout = setTimeout(function () {
66
+ return setOverflowVisible(toggle);
67
+ }, toggle ? 200 : 0);
68
+ return function () {
69
+ return clearTimeout(timeout);
70
+ };
71
+ }, [toggle]);
72
+ var renderLink = (0, _react.useCallback)(function (item) {
73
+ return /*#__PURE__*/_react["default"].createElement("a", {
74
+ key: item.key,
75
+ href: item.href,
76
+ target: item.target,
77
+ rel: item.rel,
78
+ className: classes.link,
79
+ title: item.title,
80
+ "data-testid": item.testId
81
+ }, item.text);
82
+ }, [classes]);
83
+ var renderIcon = (0, _react.useCallback)(function (item) {
84
+ return /*#__PURE__*/_react["default"].createElement("div", {
85
+ key: item.key,
86
+ className: classes.iconWrapper,
87
+ title: item.title
88
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
89
+ iconName: item.iconName,
90
+ onClick: item.onClick,
91
+ color: _colors["default"].grey600,
92
+ testId: item.testId
93
+ }));
94
+ }, [classes]);
95
+ var renderCustom = (0, _react.useCallback)(function (item) {
96
+ return /*#__PURE__*/_react["default"].createElement("div", {
97
+ key: item.key
98
+ }, item.custom);
99
+ }, []);
100
+ var renderItem = (0, _react.useCallback)(function (item) {
101
+ if (item.type === itemTypes.link) return renderLink(item);else if (item.type === itemTypes.icon) return renderIcon(item);else if (item.type === itemTypes.custom) return renderCustom(item);
102
+ }, [renderLink, renderIcon, renderCustom]);
103
+ return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
104
+ onClick: toggleList,
105
+ className: "".concat(classes.title, " ").concat(classes.collapsible),
106
+ "data-testid": "footer-list__title-".concat(title)
107
+ }, /*#__PURE__*/_react["default"].createElement("h5", {
108
+ className: classes.titleColor
109
+ }, title), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
110
+ iconName: "chevron-down",
111
+ size: _spacing["default"].small,
112
+ className: "".concat(classes.arrow).concat(toggle ? " ".concat(classes.arrowUp) : '')
113
+ })), /*#__PURE__*/_react["default"].createElement("div", {
114
+ className: classes.titleDesktop
115
+ }, /*#__PURE__*/_react["default"].createElement("h5", {
116
+ className: classes.titleColor
117
+ }, title)), /*#__PURE__*/_react["default"].createElement("div", {
118
+ className: "".concat(classes.list).concat(toggle ? " ".concat(classes.toggle) : '').concat(listClassName ? " ".concat(listClassName) : '')
119
+ }, /*#__PURE__*/_react["default"].createElement("div", {
120
+ className: "".concat(classes.content).concat(toggle ? " ".concat(classes.showContent) : '').concat(overflowVisible ? " ".concat(classes.overflowVisible) : '')
121
+ }, items.map(function (item) {
122
+ return renderItem(item);
123
+ }))));
124
+ };
160
125
 
161
126
  List.propTypes = {
162
127
  classes: _propTypes["default"].object,
@@ -5,55 +5,109 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _spacing = _interopRequireDefault(require("../../subatomic/spacing"));
8
+ var _colors = _interopRequireDefault(require("../../tokens/colors.json"));
9
9
 
10
- var _colors = _interopRequireDefault(require("../../subatomic/colors"));
10
+ var _spacing = _interopRequireDefault(require("../../tokens/spacing.json"));
11
+
12
+ var _shadows = _interopRequireDefault(require("../../tokens/shadows.json"));
13
+
14
+ var _borderRadius = _interopRequireDefault(require("../../tokens/borderRadius.json"));
15
+
16
+ var _grid = _interopRequireDefault(require("../../subatomic/grid"));
17
+
18
+ var _fonts = _interopRequireDefault(require("../../tokens/fonts.json"));
19
+
20
+ var _styles = require("../../Text/styles");
11
21
 
12
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
23
 
24
+ 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; }
25
+
14
26
  var _default = {
15
- list: {
16
- transition: '0.3s all',
17
- pointerEvents: 'none',
18
- overflow: 'hidden',
19
- height: 0,
20
- transform: "translateY(".concat(-_spacing["default"].small, "px)"),
27
+ list: _defineProperty({
28
+ display: 'grid',
29
+ gridTemplateRows: '0fr',
30
+ 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',
21
31
  opacity: 0
22
- },
32
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
33
+ opacity: 1,
34
+ gridTemplateRows: '1fr'
35
+ }),
23
36
  toggle: {
24
- height: 'auto',
25
- transform: 'translateY(0)',
26
37
  opacity: 1,
27
- pointerEvents: 'all'
38
+ gridTemplateRows: '1fr',
39
+ 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'
28
40
  },
29
- collapsible: {
30
- cursor: 'pointer'
31
- },
32
- arrow: {
33
- marginLeft: _spacing["default"].tiny,
34
- marginBottom: -_spacing["default"].xTiny
41
+ content: _defineProperty({
42
+ overflow: 'hidden',
43
+ transform: 'translateY(-10px)',
44
+ transition: 'transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s',
45
+ display: 'flex',
46
+ flexDirection: 'column',
47
+ rowGap: _spacing["default"]['size-4']
48
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
49
+ transform: 'translateY(0px)',
50
+ overflow: 'visible'
51
+ }),
52
+ showContent: _defineProperty({}, "@media (max-width: ".concat(_grid["default"].xs - 1, "px)"), {
53
+ transform: 'translateY(0px)',
54
+ transition: 'transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s',
55
+ marginBottom: _spacing["default"]['size-3']
56
+ }),
57
+ overflowVisible: {
58
+ overflow: 'visible'
35
59
  },
60
+ collapsible: _defineProperty({
61
+ cursor: 'pointer',
62
+ display: 'flex',
63
+ justifyContent: 'space-between'
64
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
65
+ cursor: 'default'
66
+ }),
67
+ arrow: _defineProperty({
68
+ display: 'inline-block'
69
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
70
+ display: 'none'
71
+ }),
36
72
  arrowUp: {
37
- transform: 'rotate(-90deg)'
38
- },
39
- arrowDown: {
40
- transform: 'rotate(90deg)'
73
+ transform: 'rotate(-180deg)'
41
74
  },
42
75
  link: {
43
- color: _colors["default"].grey600,
76
+ font: (0, _styles.parseFontValue)(_fonts["default"]['body-regular']),
77
+ color: _colors["default"].text.corp.secondary,
44
78
  textDecoration: 'none',
45
- '&:hover, &:focus, &:active': {
46
- color: _colors["default"].grey600
79
+ transition: 'all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s',
80
+ '&:hover': {
81
+ color: _colors["default"].text.corp.primary
82
+ },
83
+ '&:focus-visible': {
84
+ color: _colors["default"].text.corp.primary,
85
+ boxShadow: _shadows["default"]['focus-corp'],
86
+ borderRadius: _borderRadius["default"]['br-xs'],
87
+ outline: 0
47
88
  }
48
89
  },
49
- icon: {},
50
90
  iconWrapper: {
51
- marginBottom: _spacing["default"].tiny,
52
- marginRight: _spacing["default"].tiny,
91
+ marginBottom: _spacing["default"]['size-2'],
92
+ marginRight: _spacing["default"]['size-2'],
53
93
  display: 'inline-block'
54
94
  },
55
- title: {
56
- marginBottom: _spacing["default"].tiny
57
- }
95
+ title: _defineProperty({
96
+ padding: [_spacing["default"]['size-4'], 0]
97
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
98
+ display: 'none',
99
+ padding: 0,
100
+ marginBottom: _spacing["default"]['size-5']
101
+ }),
102
+ titleColor: {
103
+ font: (0, _styles.parseFontValue)(_fonts["default"]['heading-h5']),
104
+ margin: 0
105
+ },
106
+ titleDesktop: _defineProperty({
107
+ display: 'none'
108
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
109
+ marginBottom: _spacing["default"]['size-5'],
110
+ display: 'block'
111
+ })
58
112
  };
59
113
  exports["default"] = _default;
@@ -5,72 +5,144 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _spacing = _interopRequireDefault(require("../subatomic/spacing"));
8
+ var _colors = _interopRequireDefault(require("../tokens/colors.json"));
9
9
 
10
- var _colors = _interopRequireDefault(require("../subatomic/colors"));
10
+ var _spacing = _interopRequireDefault(require("../tokens/spacing.json"));
11
+
12
+ var _shadows = _interopRequireDefault(require("../tokens/shadows.json"));
13
+
14
+ var _borderRadius = _interopRequireDefault(require("../tokens/borderRadius.json"));
11
15
 
12
16
  var _grid = _interopRequireDefault(require("../subatomic/grid"));
13
17
 
18
+ var _fonts = _interopRequireDefault(require("../tokens/fonts.json"));
19
+
20
+ var _styles = require("../Text/styles");
21
+
22
+ var _footerContainer, _column, _listContainer;
23
+
14
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
25
 
16
26
  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; }
17
27
 
18
28
  var _default = {
19
- footer: _defineProperty({
20
- backgroundColor: _colors["default"].bgGrey,
21
- padding: [_spacing["default"].base, 0, _spacing["default"].medium]
22
- }, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
23
- padding: [_spacing["default"].medium, 0, _spacing["default"].medium]
24
- }),
25
- footerWithoutColumns: _defineProperty({
26
- backgroundColor: _colors["default"].bgGrey,
27
- padding: [0, 0, _spacing["default"].medium]
28
- }, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
29
- padding: [0, 0, _spacing["default"].medium]
30
- }),
31
- column: {
32
- paddingBottom: _spacing["default"].small
33
- },
34
- list: {
35
- '&:not(:first-child)': {
36
- marginLeft: _spacing["default"].small
37
- }
29
+ footer: {
30
+ backgroundColor: _colors["default"].bg.surface["default"],
31
+ borderTop: "1px solid ".concat(_colors["default"].border["default"].subtle),
32
+ padding: [_spacing["default"]['size-7'], 0]
38
33
  },
34
+ footerContainer: (_footerContainer = {
35
+ display: 'flex',
36
+ flexDirection: 'column',
37
+ rowGap: _spacing["default"]['size-5']
38
+ }, _defineProperty(_footerContainer, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
39
+ rowGap: _spacing["default"]['size-7']
40
+ }), _defineProperty(_footerContainer, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
41
+ rowGap: _spacing["default"]['size-8']
42
+ }), _footerContainer),
43
+ column: (_column = {
44
+ display: 'flex',
45
+ flexDirection: 'column',
46
+ flexWrap: 'wrap'
47
+ }, _defineProperty(_column, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
48
+ flexDirection: 'row',
49
+ columnGap: _spacing["default"]['size-4'],
50
+ rowGap: _spacing["default"]['size-7']
51
+ }), _defineProperty(_column, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
52
+ columnGap: _spacing["default"]['size-5'],
53
+ rowGap: 0
54
+ }), _column),
39
55
  link: {
40
- color: _colors["default"].grey600,
56
+ font: (0, _styles.parseFontValue)(_fonts["default"]['body-regular']),
57
+ color: _colors["default"].text.corp.secondary,
41
58
  textDecoration: 'none',
42
- cursor: 'pointer',
43
- '&:hover, &:focus, &:active': {
44
- color: _colors["default"].grey600
45
- }
46
- },
47
- listElement: {
48
- paddingLeft: _spacing["default"].small,
49
- paddingRight: _spacing["default"].small,
50
- position: 'relative',
51
- display: 'inline-block',
52
- '&:first-child': {
53
- paddingLeft: 0
59
+ transition: 'all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s',
60
+ '&:hover': {
61
+ color: _colors["default"].text.corp.primary
54
62
  },
55
- '&:not(:last-child)': {
56
- '&::after': {
57
- content: '"|"',
58
- position: 'absolute',
59
- right: -2
60
- }
63
+ '&:focus-visible': {
64
+ color: _colors["default"].text.corp.primary,
65
+ boxShadow: _shadows["default"]['focus-corp'],
66
+ borderRadius: _borderRadius["default"]['br-xs'],
67
+ outline: 0
61
68
  }
62
69
  },
63
- mobileListElement: {
64
- paddingLeft: 0,
70
+ listElement: _defineProperty({
65
71
  display: 'block',
66
- paddingBottom: _spacing["default"].tiny
72
+ textAlign: 'center'
73
+ }, "@media (min-width: ".concat(_grid["default"].sm, "px)"), {
74
+ position: 'relative',
75
+ display: 'inline-block'
76
+ }),
77
+ listContainer: (_listContainer = {
78
+ flexBasis: '100%'
79
+ }, _defineProperty(_listContainer, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
80
+ flexBasis: "calc(50% - ".concat(_spacing["default"]['size-4'], ")")
81
+ }), _defineProperty(_listContainer, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
82
+ flexBasis: "calc(25% - ".concat(_spacing["default"]['size-5'], ")")
83
+ }), _listContainer),
84
+ bottomSection: {
85
+ display: 'flex',
86
+ flexDirection: 'column',
87
+ rowGap: _spacing["default"]['size-7']
88
+ },
89
+ bottomLinksContainer: _defineProperty({
90
+ display: 'flex',
91
+ flexDirection: 'column',
92
+ justifyContent: 'center',
93
+ columnGap: _spacing["default"]['size-5'],
94
+ rowGap: _spacing["default"]['size-4']
95
+ }, "@media (min-width: ".concat(_grid["default"].sm, "px)"), {
96
+ flexDirection: 'row',
97
+ alignItems: 'stretch'
98
+ }),
99
+ linkDivider: _defineProperty({
100
+ width: 1,
101
+ margin: [_spacing["default"]['size-0'], 0],
102
+ backgroundColor: _colors["default"].border["default"].bold,
103
+ alignSelf: 'stretch',
104
+ display: 'none'
105
+ }, "@media (min-width: ".concat(_grid["default"].sm, "px)"), {
106
+ display: 'block'
107
+ }),
108
+ copyright: {
109
+ font: (0, _styles.parseFontValue)(_fonts["default"]['body-regular']),
110
+ color: _colors["default"].text.corp.secondary,
111
+ '& > p': {
112
+ margin: 0
113
+ }
67
114
  },
68
- bottomWrap: {
69
- paddingTop: _spacing["default"].base,
70
- borderTop: "1px solid ".concat(_colors["default"].grey200)
115
+ bottomContainer: _defineProperty({
116
+ display: 'flex',
117
+ flexDirection: 'column',
118
+ rowGap: _spacing["default"]['size-4']
119
+ }, "@media (min-width: ".concat(_grid["default"].sm, "px)"), {
120
+ rowGap: _spacing["default"]['size-5']
121
+ }),
122
+ divider: {
123
+ borderTop: "1px solid ".concat(_colors["default"].border["default"].subtle)
71
124
  },
72
- buttonMobile: {
73
- marginTop: _spacing["default"].small
125
+ auxContainer: _defineProperty({
126
+ display: 'flex',
127
+ alignItems: 'center',
128
+ justifyContent: 'center',
129
+ flexDirection: 'column',
130
+ gap: _spacing["default"]['size-5']
131
+ }, "@media (min-width: ".concat(_grid["default"].md, "px)"), {
132
+ flexDirection: 'row',
133
+ gap: _spacing["default"]['size-9']
134
+ }),
135
+ badgesContainer: _defineProperty({
136
+ display: 'flex',
137
+ gap: _spacing["default"]['size-4'],
138
+ flexDirection: 'column'
139
+ }, "@media (min-width: ".concat(_grid["default"].xs, "px)"), {
140
+ flexDirection: 'row'
141
+ }),
142
+ socialMediaContainer: {
143
+ display: 'flex',
144
+ direction: 'row',
145
+ columnGap: _spacing["default"]['size-1']
74
146
  }
75
147
  };
76
148
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@occmundial/occ-atomic",
3
- "version": "3.0.0-beta.49",
3
+ "version": "3.0.0-beta.50",
4
4
  "description": "Collection of shareable styled React components for OCC applications.",
5
5
  "homepage": "http://occmundial.github.io/occ-atomic",
6
6
  "main": "build/index.js",