@laerdal/life-react-components 1.9.8-dev.8.full → 1.9.9-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/Accordion/ContentAccordion.cjs +5 -5
  2. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  3. package/dist/Accordion/ContentAccordion.js +6 -6
  4. package/dist/Accordion/ContentAccordion.js.map +1 -1
  5. package/dist/Accordion/styles.cjs +1 -1
  6. package/dist/Accordion/styles.cjs.map +1 -1
  7. package/dist/Accordion/styles.js +1 -1
  8. package/dist/Accordion/styles.js.map +1 -1
  9. package/dist/Button/Button.cjs +3 -3
  10. package/dist/Button/Button.cjs.map +1 -1
  11. package/dist/Button/Button.js +3 -3
  12. package/dist/Button/Button.js.map +1 -1
  13. package/dist/Button/Iconbutton.cjs +2 -1
  14. package/dist/Button/Iconbutton.cjs.map +1 -1
  15. package/dist/Button/Iconbutton.d.ts +1 -0
  16. package/dist/Button/Iconbutton.js +1 -1
  17. package/dist/Button/Iconbutton.js.map +1 -1
  18. package/dist/Card/HorizontalCard/HorizontalCard.cjs +97 -0
  19. package/dist/Card/HorizontalCard/HorizontalCard.cjs.map +1 -0
  20. package/dist/Card/HorizontalCard/HorizontalCard.d.ts +4 -0
  21. package/dist/Card/HorizontalCard/HorizontalCard.js +74 -0
  22. package/dist/Card/HorizontalCard/HorizontalCard.js.map +1 -0
  23. package/dist/Card/HorizontalCard/HorizontalCardActions.cjs +118 -0
  24. package/dist/Card/HorizontalCard/HorizontalCardActions.cjs.map +1 -0
  25. package/dist/Card/HorizontalCard/HorizontalCardActions.d.ts +5 -0
  26. package/dist/Card/HorizontalCard/HorizontalCardActions.js +98 -0
  27. package/dist/Card/HorizontalCard/HorizontalCardActions.js.map +1 -0
  28. package/dist/Card/HorizontalCard/HorizontalCardBody.cjs +60 -0
  29. package/dist/Card/HorizontalCard/HorizontalCardBody.cjs.map +1 -0
  30. package/dist/Card/HorizontalCard/HorizontalCardBody.d.ts +5 -0
  31. package/dist/Card/HorizontalCard/HorizontalCardBody.js +40 -0
  32. package/dist/Card/HorizontalCard/HorizontalCardBody.js.map +1 -0
  33. package/dist/Card/HorizontalCard/HorizontalCardThumbnail.cjs +49 -0
  34. package/dist/Card/HorizontalCard/HorizontalCardThumbnail.cjs.map +1 -0
  35. package/dist/Card/HorizontalCard/HorizontalCardThumbnail.d.ts +5 -0
  36. package/dist/Card/HorizontalCard/HorizontalCardThumbnail.js +33 -0
  37. package/dist/Card/HorizontalCard/HorizontalCardThumbnail.js.map +1 -0
  38. package/dist/Card/HorizontalCard/index.cjs +33 -0
  39. package/dist/Card/HorizontalCard/index.cjs.map +1 -0
  40. package/dist/Card/HorizontalCard/index.d.ts +2 -0
  41. package/dist/Card/HorizontalCard/index.js +3 -0
  42. package/dist/Card/HorizontalCard/index.js.map +1 -0
  43. package/dist/Card/HorizontalCard/types.cjs +6 -0
  44. package/dist/Card/HorizontalCard/types.cjs.map +1 -0
  45. package/dist/Card/HorizontalCard/types.d.ts +40 -0
  46. package/dist/Card/HorizontalCard/types.js +2 -0
  47. package/dist/Card/HorizontalCard/types.js.map +1 -0
  48. package/dist/Card/{Card.cjs → VerticalCard/Card.cjs} +33 -9
  49. package/dist/Card/VerticalCard/Card.cjs.map +1 -0
  50. package/dist/Card/{Card.d.ts → VerticalCard/Card.d.ts} +2 -1
  51. package/dist/Card/{Card.js → VerticalCard/Card.js} +30 -8
  52. package/dist/Card/VerticalCard/Card.js.map +1 -0
  53. package/dist/Card/{CardBottomSection.cjs → VerticalCard/CardBottomSection.cjs} +42 -25
  54. package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -0
  55. package/dist/Card/{CardBottomSection.d.ts → VerticalCard/CardBottomSection.d.ts} +4 -4
  56. package/dist/Card/{CardBottomSection.js → VerticalCard/CardBottomSection.js} +27 -11
  57. package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -0
  58. package/dist/Card/{CardMiddleSection.cjs → VerticalCard/CardMiddleSection.cjs} +14 -13
  59. package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -0
  60. package/dist/Card/{CardMiddleSection.d.ts → VerticalCard/CardMiddleSection.d.ts} +2 -2
  61. package/dist/Card/{CardMiddleSection.js → VerticalCard/CardMiddleSection.js} +3 -2
  62. package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -0
  63. package/dist/Card/{CardTopSection.cjs → VerticalCard/CardTopSection.cjs} +14 -12
  64. package/dist/Card/VerticalCard/CardTopSection.cjs.map +1 -0
  65. package/dist/Card/{CardTopSection.d.ts → VerticalCard/CardTopSection.d.ts} +5 -5
  66. package/dist/Card/{CardTopSection.js → VerticalCard/CardTopSection.js} +12 -10
  67. package/dist/Card/VerticalCard/CardTopSection.js.map +1 -0
  68. package/dist/Card/VerticalCard/index.cjs +88 -0
  69. package/dist/Card/VerticalCard/index.cjs.map +1 -0
  70. package/dist/Card/VerticalCard/index.d.ts +7 -0
  71. package/dist/Card/VerticalCard/index.js +8 -0
  72. package/dist/Card/VerticalCard/index.js.map +1 -0
  73. package/dist/Card/index.cjs +8 -64
  74. package/dist/Card/index.cjs.map +1 -1
  75. package/dist/Card/index.d.ts +2 -7
  76. package/dist/Card/index.js +2 -7
  77. package/dist/Card/index.js.map +1 -1
  78. package/dist/Dropdown/BasicDropdown.cjs +67 -57
  79. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  80. package/dist/Dropdown/BasicDropdown.d.ts +14 -7
  81. package/dist/Dropdown/BasicDropdown.js +67 -58
  82. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  83. package/dist/Dropdown/DropdownButton.cjs +3 -3
  84. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  85. package/dist/Dropdown/DropdownButton.d.ts +5 -1
  86. package/dist/Dropdown/DropdownButton.js +3 -4
  87. package/dist/Dropdown/DropdownButton.js.map +1 -1
  88. package/dist/GlobalNavigationBar/__tests__/GlobalNavigationBar.tests.d.ts +1 -0
  89. package/dist/GlobalNavigationBar/__tests__/Logo.tests.d.ts +1 -0
  90. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +2 -8
  91. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -1
  92. package/dist/GlobalNavigationBar/desktop/DesktopActions.js +2 -2
  93. package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -1
  94. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  95. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  96. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs +5 -1
  97. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs.map +1 -1
  98. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.d.ts +2 -0
  99. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js +2 -2
  100. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js.map +1 -1
  101. package/dist/InputFields/DatepickerField.cjs +44 -38
  102. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  103. package/dist/InputFields/DatepickerField.d.ts +17 -20
  104. package/dist/InputFields/DatepickerField.js +33 -20
  105. package/dist/InputFields/DatepickerField.js.map +1 -1
  106. package/dist/InputFields/NumberField.cjs +63 -52
  107. package/dist/InputFields/NumberField.cjs.map +1 -1
  108. package/dist/InputFields/NumberField.d.ts +14 -19
  109. package/dist/InputFields/NumberField.js +60 -53
  110. package/dist/InputFields/NumberField.js.map +1 -1
  111. package/dist/InputFields/RadioButton.cjs +1 -1
  112. package/dist/InputFields/RadioButton.cjs.map +1 -1
  113. package/dist/InputFields/RadioButton.d.ts +1 -1
  114. package/dist/InputFields/RadioButton.js +1 -1
  115. package/dist/InputFields/RadioButton.js.map +1 -1
  116. package/dist/InputFields/TextField.cjs +5 -3
  117. package/dist/InputFields/TextField.cjs.map +1 -1
  118. package/dist/InputFields/TextField.d.ts +2 -1
  119. package/dist/InputFields/TextField.js +5 -4
  120. package/dist/InputFields/TextField.js.map +1 -1
  121. package/dist/InputFields/index.cjs +26 -0
  122. package/dist/InputFields/index.cjs.map +1 -1
  123. package/dist/InputFields/index.d.ts +1 -0
  124. package/dist/InputFields/index.js +1 -0
  125. package/dist/InputFields/index.js.map +1 -1
  126. package/dist/MenuItem/MenuItem.cjs +5 -3
  127. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  128. package/dist/MenuItem/MenuItem.js +5 -3
  129. package/dist/MenuItem/MenuItem.js.map +1 -1
  130. package/dist/Popover/Popover.cjs +38 -24
  131. package/dist/Popover/Popover.cjs.map +1 -1
  132. package/dist/Popover/Popover.d.ts +1 -0
  133. package/dist/Popover/Popover.js +38 -24
  134. package/dist/Popover/Popover.js.map +1 -1
  135. package/dist/ProfileButton/ProfileButton.cjs +5 -3
  136. package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
  137. package/dist/ProfileButton/ProfileButton.d.ts +3 -0
  138. package/dist/ProfileButton/ProfileButton.js +2 -2
  139. package/dist/ProfileButton/ProfileButton.js.map +1 -1
  140. package/dist/Toggles/ToggleButton.cjs +3 -2
  141. package/dist/Toggles/ToggleButton.cjs.map +1 -1
  142. package/dist/Toggles/ToggleButton.d.ts +1 -1
  143. package/dist/Toggles/ToggleButton.js +3 -2
  144. package/dist/Toggles/ToggleButton.js.map +1 -1
  145. package/dist/Toggles/ToggleSwitch.cjs +24 -17
  146. package/dist/Toggles/ToggleSwitch.cjs.map +1 -1
  147. package/dist/Toggles/ToggleSwitch.d.ts +5 -1
  148. package/dist/Toggles/ToggleSwitch.js +21 -12
  149. package/dist/Toggles/ToggleSwitch.js.map +1 -1
  150. package/dist/Toggles/TogglerTypes.d.ts +1 -1
  151. package/dist/common/ActionWithin.cjs.map +1 -1
  152. package/dist/common/ActionWithin.js.map +1 -1
  153. package/dist/index.cjs.map +1 -1
  154. package/dist/index.js.map +1 -1
  155. package/package.json +2 -1
  156. package/dist/Card/Card.cjs.map +0 -1
  157. package/dist/Card/Card.js.map +0 -1
  158. package/dist/Card/CardBottomSection.cjs.map +0 -1
  159. package/dist/Card/CardBottomSection.js.map +0 -1
  160. package/dist/Card/CardMiddleSection.cjs.map +0 -1
  161. package/dist/Card/CardMiddleSection.js.map +0 -1
  162. package/dist/Card/CardTopSection.cjs.map +0 -1
  163. package/dist/Card/CardTopSection.js.map +0 -1
@@ -11,6 +11,10 @@ exports.default = exports.Wrapper = exports.CardTopLevelContainer = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
14
18
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
19
 
16
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -25,7 +29,7 @@ var _CardMiddleSection = _interopRequireDefault(require("./CardMiddleSection"));
25
29
 
26
30
  var _CardBottomSection = _interopRequireDefault(require("./CardBottomSection"));
27
31
 
28
- var _ = require("..");
32
+ var _index = require("../../index");
29
33
 
30
34
  var _jsxRuntime = require("react/jsx-runtime");
31
35
 
@@ -39,11 +43,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
39
43
 
40
44
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
41
45
 
42
- var CardTopLevelContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 8px;\n\n border: 1px solid transparent;\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n"])), _.COLORS.white);
46
+ var CardTopLevelContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n\n border-radius: 8px;\n\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n .elevated & {\n box-shadow: ", ";\n }\n\n .outline & {\n border: 1px solid ", ";\n }\n"])), _index.COLORS.white, _index.BOXSHADOWS.BOXSHADOW_L1, _index.COLORS.neutral_200);
43
47
 
44
48
  exports.CardTopLevelContainer = CardTopLevelContainer;
45
49
 
46
- var Wrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ", "\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n ", " {\n &:active, &.active-state {\n box-shadow: 0px 8px 16px 2px rgba(0, 0, 0, 0.15);\n border: 1px solid ", ";\n }\n\n &:hover {\n overflow: visible;\n border: 1px solid ", ";\n box-shadow: 0px 8px 16px 2px rgba(0, 0, 0, 0.15);\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n"])), _.focusStyles, CardTopLevelContainer, _.COLORS.neutral_200, _.COLORS.neutral_200);
50
+ var Wrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ", "\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n &.outline:not(.action-within) {\n ", " {\n &:hover {\n background-color: ", ";\n }\n\n &:active, &.active-state {\n background-color: ", ";\n }\n }\n }\n\n &.elevated:not(.action-within) {\n ", " {\n &:hover {\n box-shadow: ", ";\n }\n\n &:active, &.active-state {\n box-shadow: ", ";\n }\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n"])), _index.focusStyles, CardTopLevelContainer, _index.COLORS.primary_20, _index.COLORS.primary_100, CardTopLevelContainer, _index.BOXSHADOWS.BOXSHADOW_L3, _index.BOXSHADOWS.BOXSHADOW_L2);
47
51
 
48
52
  exports.Wrapper = Wrapper;
49
53
 
@@ -52,24 +56,43 @@ var Card = function Card(_ref) {
52
56
  topSectionProps = _ref.topSectionProps,
53
57
  middleSectionProps = _ref.middleSectionProps,
54
58
  bottomSectionProps = _ref.bottomSectionProps,
55
- disabled = _ref.disabled;
56
- var cls = "".concat(!!onCardClicked ? 'interactive' : '', " ").concat(disabled ? 'disabled' : '');
59
+ disabled = _ref.disabled,
60
+ _ref$variant = _ref.variant,
61
+ variant = _ref$variant === void 0 ? 'outline' : _ref$variant;
62
+
63
+ var _React$useState = React.useState([]),
64
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
65
+ actionsRefs = _React$useState2[0],
66
+ setActionsRefs = _React$useState2[1];
67
+
68
+ var checkBoxRef = React.useRef(null);
69
+ var containerRef = React.useRef(null);
70
+ (0, _index.useActionWithin)(containerRef, [].concat((0, _toConsumableArray2.default)(actionsRefs), [checkBoxRef]));
71
+ var cls = "".concat(!!onCardClicked ? 'interactive' : '', " ").concat(disabled ? 'disabled' : '', " ").concat(variant);
57
72
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
73
+ ref: containerRef,
58
74
  className: cls,
59
75
  tabIndex: !!onCardClicked && !disabled ? 0 : -1,
60
- onMouseDown: _.defaultOnMouseDownHandler,
76
+ onMouseDown: _index.defaultOnMouseDownHandler,
61
77
  onKeyDown: function onKeyDown(a) {
62
78
  return a.key === 'Enter' && !disabled && onCardClicked && onCardClicked();
63
79
  },
64
80
  onClick: function onClick(e) {
65
81
  return !disabled && onCardClicked && onCardClicked();
66
82
  },
83
+ "data-testid": 'card-wrapper',
67
84
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardTopLevelContainer, {
68
- children: [topSectionProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardTopSection.default, _objectSpread(_objectSpread({}, topSectionProps), {}, {
85
+ children: [topSectionProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardTopSection.default, _objectSpread(_objectSpread({
86
+ ref: checkBoxRef
87
+ }, topSectionProps), {}, {
69
88
  disabled: disabled
70
89
  })), middleSectionProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardMiddleSection.default, _objectSpread(_objectSpread({}, middleSectionProps), {}, {
71
90
  disabled: disabled
72
- })), bottomSectionProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBottomSection.default, _objectSpread(_objectSpread({}, bottomSectionProps), {}, {
91
+ })), bottomSectionProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBottomSection.default, _objectSpread(_objectSpread({
92
+ ref: function ref(instance) {
93
+ return setActionsRefs(instance !== null && instance !== void 0 ? instance : []);
94
+ }
95
+ }, bottomSectionProps), {}, {
73
96
  disabled: disabled
74
97
  }))]
75
98
  })
@@ -78,7 +101,8 @@ var Card = function Card(_ref) {
78
101
 
79
102
  Card.propTypes = {
80
103
  onCardClicked: _propTypes.default.func,
81
- disabled: _propTypes.default.bool.isRequired
104
+ disabled: _propTypes.default.bool,
105
+ variant: _propTypes.default.oneOf(['outline', 'elevated'])
82
106
  };
83
107
  var _default = Card;
84
108
  exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Card/VerticalCard/Card.tsx"],"names":["CardTopLevelContainer","styled","div","COLORS","white","BOXSHADOWS","BOXSHADOW_L1","neutral_200","Wrapper","focusStyles","primary_20","primary_100","BOXSHADOW_L3","BOXSHADOW_L2","Card","onCardClicked","topSectionProps","middleSectionProps","bottomSectionProps","disabled","variant","React","useState","actionsRefs","setActionsRefs","checkBoxRef","useRef","containerRef","cls","defaultOnMouseDownHandler","a","key","e","instance"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEO,IAAMA,qBAAqB,GAAGC,0BAAOC,GAAV,wVACZC,cAAOC,KADK,EAWhBC,kBAAWC,YAXK,EAeVH,cAAOI,WAfG,CAA3B;;;;AAoBA,IAAMC,OAAO,GAAGP,0BAAOC,GAAV,0sBAKdO,kBALc,EAYZT,qBAZY,EAcUG,cAAOO,UAdjB,EAkBUP,cAAOQ,WAlBjB,EAwBZX,qBAxBY,EA0BIK,kBAAWO,YA1Bf,EA8BIP,kBAAWQ,YA9Bf,CAAb;;;;AAmDP,IAAMC,IAAwC,GAAG,SAA3CA,IAA2C,OAOkB;AAAA,MANfC,aAMe,QANfA,aAMe;AAAA,MALfC,eAKe,QALfA,eAKe;AAAA,MAJfC,kBAIe,QAJfA,kBAIe;AAAA,MAHfC,kBAGe,QAHfA,kBAGe;AAAA,MAFfC,QAEe,QAFfA,QAEe;AAAA,0BADfC,OACe;AAAA,MADfA,OACe,6BADL,SACK;;AAGjE,wBAAsCC,KAAK,CAACC,QAAN,CAA+C,EAA/C,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,MAAMC,WAAW,GAAIJ,KAAK,CAACK,MAAN,CAA6B,IAA7B,CAArB;AACA,MAAMC,YAAY,GAAGN,KAAK,CAACK,MAAN,CAA6B,IAA7B,CAArB;AAEA,8BAAgBC,YAAhB,6CAAkCJ,WAAlC,IAA+CE,WAA/C;AAEA,MAAMG,GAAG,aAAM,CAAC,CAACb,aAAF,GAAkB,aAAlB,GAAkC,EAAxC,cAA8CI,QAAQ,GAAG,UAAH,GAAgB,EAAtE,cAA4EC,OAA5E,CAAT;AAEA,sBAEE,qBAAC,OAAD;AAAS,IAAA,GAAG,EAAEO,YAAd;AACS,IAAA,SAAS,EAAEC,GADpB;AAES,IAAA,QAAQ,EAAE,CAAC,CAACb,aAAF,IAAmB,CAACI,QAApB,GAA+B,CAA/B,GAAmC,CAAC,CAFvD;AAGS,IAAA,WAAW,EAAEU,gCAHtB;AAIS,IAAA,SAAS,EAAE,mBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqB,CAACZ,QAAtB,IAAkCJ,aAAlC,IAAmDA,aAAa,EAApE;AAAA,KAJrB;AAKS,IAAA,OAAO,EAAE,iBAAAiB,CAAC;AAAA,aAAI,CAACb,QAAD,IAAaJ,aAAb,IAA8BA,aAAa,EAA/C;AAAA,KALnB;AAMS,mBAAa,cANtB;AAAA,2BAOE,sBAAC,qBAAD;AAAA,iBAEIC,eAAe,iBACf,qBAAC,uBAAD;AAAgB,QAAA,GAAG,EAAES;AAArB,SACMT,eADN;AACuB,QAAA,QAAQ,EAAEG;AADjC,SAHJ,EAOIF,kBAAkB,iBAClB,qBAAC,0BAAD,kCAAuBA,kBAAvB;AAA2C,QAAA,QAAQ,EAAEE;AAArD,SARJ,EAWID,kBAAkB,iBAClB,qBAAC,0BAAD;AAAmB,QAAA,GAAG,EAAE,aAAAe,QAAQ;AAAA,iBAAIT,cAAc,CAACS,QAAD,aAACA,QAAD,cAACA,QAAD,GAAa,EAAb,CAAlB;AAAA;AAAhC,SACuBf,kBADvB;AAC2C,QAAA,QAAQ,EAAEC;AADrD,SAZJ;AAAA;AAPF,IAFF;AA4BD,CA9CD;;;AAREJ,EAAAA,a;AACAI,EAAAA,Q;AAIAC,EAAAA,O,4BAAU,S,EAAY,U;;eAmDTN,I","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport CardTopSection, {CardTopSectionProps} from './CardTopSection';\nimport CardMiddleSection, {CardMiddleSectionProps} from './CardMiddleSection';\nimport CardBottomSection, {CardBottomSectionProps} from './CardBottomSection';\nimport {BOXSHADOWS, COLORS, defaultOnMouseDownHandler, focusStyles, useActionWithin} from '../../index';\n\nexport const CardTopLevelContainer = styled.div`\n background-color: ${COLORS.white};\n\n border-radius: 8px;\n\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n .elevated & {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L1};\n }\n\n .outline & {\n border: 1px solid ${COLORS.neutral_200};\n }\n`;\n\n\nexport const Wrapper = styled.div`\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ${focusStyles}\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n &.outline:not(.action-within) {\n ${CardTopLevelContainer} {\n &:hover {\n background-color: ${COLORS.primary_20};\n }\n\n &:active, &.active-state {\n background-color: ${COLORS.primary_100};\n }\n }\n }\n\n &.elevated:not(.action-within) {\n ${CardTopLevelContainer} {\n &:hover {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L3};\n }\n\n &:active, &.active-state {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L2};\n }\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n`;\n\n\nexport interface CardProps {\n onCardClicked?: () => {};\n disabled?: boolean;\n topSectionProps?: CardTopSectionProps;\n middleSectionProps?: CardMiddleSectionProps;\n bottomSectionProps?: CardBottomSectionProps;\n variant?: 'outline' | 'elevated';\n}\n\nconst Card: React.FunctionComponent<CardProps> = ({\n onCardClicked,\n topSectionProps,\n middleSectionProps,\n bottomSectionProps,\n disabled,\n variant = 'outline'\n }: CardProps) => {\n\n\n const [actionsRefs, setActionsRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n const checkBoxRef = React.useRef<HTMLDivElement>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n useActionWithin(containerRef, [...actionsRefs, checkBoxRef]);\n\n const cls = `${!!onCardClicked ? 'interactive' : ''} ${disabled ? 'disabled' : ''} ${variant}`;\n\n return (\n\n <Wrapper ref={containerRef}\n className={cls}\n tabIndex={!!onCardClicked && !disabled ? 0 : -1}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={a => a.key === 'Enter' && !disabled && onCardClicked && onCardClicked()}\n onClick={e => !disabled && onCardClicked && onCardClicked()}\n data-testid={'card-wrapper'}>\n <CardTopLevelContainer>\n {\n topSectionProps &&\n <CardTopSection ref={checkBoxRef}\n {...topSectionProps} disabled={disabled}/>\n }\n {\n middleSectionProps &&\n <CardMiddleSection {...middleSectionProps} disabled={disabled}/>\n }\n {\n bottomSectionProps &&\n <CardBottomSection ref={instance => setActionsRefs(instance ?? [])}\n {...bottomSectionProps} disabled={disabled}/>\n }\n </CardTopLevelContainer>\n </Wrapper>\n\n );\n};\n\nexport default Card;\n"],"file":"Card.cjs"}
@@ -6,10 +6,11 @@ export declare const CardTopLevelContainer: import("styled-components").StyledCo
6
6
  export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
7
7
  export interface CardProps {
8
8
  onCardClicked?: () => {};
9
- disabled: boolean;
9
+ disabled?: boolean;
10
10
  topSectionProps?: CardTopSectionProps;
11
11
  middleSectionProps?: CardMiddleSectionProps;
12
12
  bottomSectionProps?: CardBottomSectionProps;
13
+ variant?: 'outline' | 'elevated';
13
14
  }
14
15
  declare const Card: React.FunctionComponent<CardProps>;
15
16
  export default Card;
@@ -1,4 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
4
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
5
  import _pt from "prop-types";
4
6
 
@@ -13,20 +15,32 @@ import styled from 'styled-components';
13
15
  import CardTopSection from './CardTopSection';
14
16
  import CardMiddleSection from './CardMiddleSection';
15
17
  import CardBottomSection from './CardBottomSection';
16
- import { COLORS, defaultOnMouseDownHandler, focusStyles } from '..';
18
+ import { BOXSHADOWS, COLORS, defaultOnMouseDownHandler, focusStyles, useActionWithin } from '../../index';
17
19
  import { jsx as _jsx } from "react/jsx-runtime";
18
20
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
- export var CardTopLevelContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: ", ";\n\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 8px;\n\n border: 1px solid transparent;\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n"])), COLORS.white);
20
- export var Wrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ", "\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n ", " {\n &:active, &.active-state {\n box-shadow: 0px 8px 16px 2px rgba(0, 0, 0, 0.15);\n border: 1px solid ", ";\n }\n\n &:hover {\n overflow: visible;\n border: 1px solid ", ";\n box-shadow: 0px 8px 16px 2px rgba(0, 0, 0, 0.15);\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n"])), focusStyles, CardTopLevelContainer, COLORS.neutral_200, COLORS.neutral_200);
21
+ export var CardTopLevelContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: ", ";\n\n border-radius: 8px;\n\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n .elevated & {\n box-shadow: ", ";\n }\n\n .outline & {\n border: 1px solid ", ";\n }\n"])), COLORS.white, BOXSHADOWS.BOXSHADOW_L1, COLORS.neutral_200);
22
+ export var Wrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ", "\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n &.outline:not(.action-within) {\n ", " {\n &:hover {\n background-color: ", ";\n }\n\n &:active, &.active-state {\n background-color: ", ";\n }\n }\n }\n\n &.elevated:not(.action-within) {\n ", " {\n &:hover {\n box-shadow: ", ";\n }\n\n &:active, &.active-state {\n box-shadow: ", ";\n }\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n"])), focusStyles, CardTopLevelContainer, COLORS.primary_20, COLORS.primary_100, CardTopLevelContainer, BOXSHADOWS.BOXSHADOW_L3, BOXSHADOWS.BOXSHADOW_L2);
21
23
 
22
24
  var Card = function Card(_ref) {
23
25
  var onCardClicked = _ref.onCardClicked,
24
26
  topSectionProps = _ref.topSectionProps,
25
27
  middleSectionProps = _ref.middleSectionProps,
26
28
  bottomSectionProps = _ref.bottomSectionProps,
27
- disabled = _ref.disabled;
28
- var cls = "".concat(!!onCardClicked ? 'interactive' : '', " ").concat(disabled ? 'disabled' : '');
29
+ disabled = _ref.disabled,
30
+ _ref$variant = _ref.variant,
31
+ variant = _ref$variant === void 0 ? 'outline' : _ref$variant;
32
+
33
+ var _React$useState = React.useState([]),
34
+ _React$useState2 = _slicedToArray(_React$useState, 2),
35
+ actionsRefs = _React$useState2[0],
36
+ setActionsRefs = _React$useState2[1];
37
+
38
+ var checkBoxRef = React.useRef(null);
39
+ var containerRef = React.useRef(null);
40
+ useActionWithin(containerRef, [].concat(_toConsumableArray(actionsRefs), [checkBoxRef]));
41
+ var cls = "".concat(!!onCardClicked ? 'interactive' : '', " ").concat(disabled ? 'disabled' : '', " ").concat(variant);
29
42
  return /*#__PURE__*/_jsx(Wrapper, {
43
+ ref: containerRef,
30
44
  className: cls,
31
45
  tabIndex: !!onCardClicked && !disabled ? 0 : -1,
32
46
  onMouseDown: defaultOnMouseDownHandler,
@@ -36,12 +50,19 @@ var Card = function Card(_ref) {
36
50
  onClick: function onClick(e) {
37
51
  return !disabled && onCardClicked && onCardClicked();
38
52
  },
53
+ "data-testid": 'card-wrapper',
39
54
  children: /*#__PURE__*/_jsxs(CardTopLevelContainer, {
40
- children: [topSectionProps && /*#__PURE__*/_jsx(CardTopSection, _objectSpread(_objectSpread({}, topSectionProps), {}, {
55
+ children: [topSectionProps && /*#__PURE__*/_jsx(CardTopSection, _objectSpread(_objectSpread({
56
+ ref: checkBoxRef
57
+ }, topSectionProps), {}, {
41
58
  disabled: disabled
42
59
  })), middleSectionProps && /*#__PURE__*/_jsx(CardMiddleSection, _objectSpread(_objectSpread({}, middleSectionProps), {}, {
43
60
  disabled: disabled
44
- })), bottomSectionProps && /*#__PURE__*/_jsx(CardBottomSection, _objectSpread(_objectSpread({}, bottomSectionProps), {}, {
61
+ })), bottomSectionProps && /*#__PURE__*/_jsx(CardBottomSection, _objectSpread(_objectSpread({
62
+ ref: function ref(instance) {
63
+ return setActionsRefs(instance !== null && instance !== void 0 ? instance : []);
64
+ }
65
+ }, bottomSectionProps), {}, {
45
66
  disabled: disabled
46
67
  }))]
47
68
  })
@@ -50,7 +71,8 @@ var Card = function Card(_ref) {
50
71
 
51
72
  Card.propTypes = {
52
73
  onCardClicked: _pt.func,
53
- disabled: _pt.bool.isRequired
74
+ disabled: _pt.bool,
75
+ variant: _pt.oneOf(['outline', 'elevated'])
54
76
  };
55
77
  export default Card;
56
78
  //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Card/VerticalCard/Card.tsx"],"names":["React","styled","CardTopSection","CardMiddleSection","CardBottomSection","BOXSHADOWS","COLORS","defaultOnMouseDownHandler","focusStyles","useActionWithin","CardTopLevelContainer","div","white","BOXSHADOW_L1","neutral_200","Wrapper","primary_20","primary_100","BOXSHADOW_L3","BOXSHADOW_L2","Card","onCardClicked","topSectionProps","middleSectionProps","bottomSectionProps","disabled","variant","useState","actionsRefs","setActionsRefs","checkBoxRef","useRef","containerRef","cls","a","key","e","instance"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport CardTopSection, {CardTopSectionProps} from './CardTopSection';\nimport CardMiddleSection, {CardMiddleSectionProps} from './CardMiddleSection';\nimport CardBottomSection, {CardBottomSectionProps} from './CardBottomSection';\nimport {BOXSHADOWS, COLORS, defaultOnMouseDownHandler, focusStyles, useActionWithin} from '../../index';\n\nexport const CardTopLevelContainer = styled.div`\n background-color: ${COLORS.white};\n\n border-radius: 8px;\n\n background-clip: padding-box;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n .elevated & {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L1};\n }\n\n .outline & {\n border: 1px solid ${COLORS.neutral_200};\n }\n`;\n\n\nexport const Wrapper = styled.div`\n height: max-content;\n width: max-content;\n\n &.interactive:focus {\n ${focusStyles}\n }\n\n &.interactive:not(.disabled) {\n cursor: pointer;\n\n &.outline:not(.action-within) {\n ${CardTopLevelContainer} {\n &:hover {\n background-color: ${COLORS.primary_20};\n }\n\n &:active, &.active-state {\n background-color: ${COLORS.primary_100};\n }\n }\n }\n\n &.elevated:not(.action-within) {\n ${CardTopLevelContainer} {\n &:hover {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L3};\n }\n\n &:active, &.active-state {\n box-shadow: ${BOXSHADOWS.BOXSHADOW_L2};\n }\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n }\n`;\n\n\nexport interface CardProps {\n onCardClicked?: () => {};\n disabled?: boolean;\n topSectionProps?: CardTopSectionProps;\n middleSectionProps?: CardMiddleSectionProps;\n bottomSectionProps?: CardBottomSectionProps;\n variant?: 'outline' | 'elevated';\n}\n\nconst Card: React.FunctionComponent<CardProps> = ({\n onCardClicked,\n topSectionProps,\n middleSectionProps,\n bottomSectionProps,\n disabled,\n variant = 'outline'\n }: CardProps) => {\n\n\n const [actionsRefs, setActionsRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n const checkBoxRef = React.useRef<HTMLDivElement>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n useActionWithin(containerRef, [...actionsRefs, checkBoxRef]);\n\n const cls = `${!!onCardClicked ? 'interactive' : ''} ${disabled ? 'disabled' : ''} ${variant}`;\n\n return (\n\n <Wrapper ref={containerRef}\n className={cls}\n tabIndex={!!onCardClicked && !disabled ? 0 : -1}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={a => a.key === 'Enter' && !disabled && onCardClicked && onCardClicked()}\n onClick={e => !disabled && onCardClicked && onCardClicked()}\n data-testid={'card-wrapper'}>\n <CardTopLevelContainer>\n {\n topSectionProps &&\n <CardTopSection ref={checkBoxRef}\n {...topSectionProps} disabled={disabled}/>\n }\n {\n middleSectionProps &&\n <CardMiddleSection {...middleSectionProps} disabled={disabled}/>\n }\n {\n bottomSectionProps &&\n <CardBottomSection ref={instance => setActionsRefs(instance ?? [])}\n {...bottomSectionProps} disabled={disabled}/>\n }\n </CardTopLevelContainer>\n </Wrapper>\n\n );\n};\n\nexport default Card;\n"],"file":"Card.js"}
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = exports.CardProgressContainer = exports.CardNotesContainer = exports.CardNoteRight = exports.CardNoteLeft = exports.CardButtonRowContainer = exports.CardBottomSectionContainer = exports.CardBottomDivider = exports.CardAuthorContainer = void 0;
11
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
12
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -17,9 +19,9 @@ var React = _interopRequireWildcard(require("react"));
17
19
 
18
20
  var _styledComponents = _interopRequireDefault(require("styled-components"));
19
21
 
20
- var _ = require("..");
22
+ var _index = require("../../index");
21
23
 
22
- var _Button = require("../Button");
24
+ var _Button = require("../../Button");
23
25
 
24
26
  var _jsxRuntime = require("react/jsx-runtime");
25
27
 
@@ -33,17 +35,17 @@ var CardProgressContainer = _styledComponents.default.div(_templateObject || (_t
33
35
 
34
36
  exports.CardProgressContainer = CardProgressContainer;
35
37
 
36
- var CardNotesContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: 48px;\n position: relative;\n color: ", ";\n display: flex;\n flex-direction: row;\n align-items: center;\n"])), _.COLORS.neutral_500);
38
+ var CardNotesContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: 48px;\n position: relative;\n color: ", ";\n display: flex;\n flex-direction: row;\n align-items: center;\n"])), _index.COLORS.neutral_500);
37
39
 
38
40
  exports.CardNotesContainer = CardNotesContainer;
39
41
 
40
42
  var CardAuthorContainer = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 48px;\n\n div:first-child {\n flex-grow: 2;\n }\n\n svg, img {\n width: 80px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n ", "\n"])), function (props) {
41
- return props.disabled ? "\n color: ".concat(_.COLORS.neutral_300, ";\n svg, img {\n filter: grayscale(100%);\n }\n \n ") : '';
43
+ return props.disabled ? "\n color: ".concat(_index.COLORS.neutral_300, ";\n svg, img {\n filter: grayscale(100%);\n }\n \n ") : '';
42
44
  });
43
45
 
44
46
  exports.CardAuthorContainer = CardAuthorContainer;
45
47
 
46
- var CardBottomDivider = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n width: 100%;\n"])), _.COLORS.neutral_100);
48
+ var CardBottomDivider = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n width: 100%;\n"])), _index.COLORS.neutral_100);
47
49
 
48
50
  exports.CardBottomDivider = CardBottomDivider;
49
51
 
@@ -55,19 +57,18 @@ var CardNoteRight = _styledComponents.default.div(_templateObject6 || (_template
55
57
 
56
58
  exports.CardNoteRight = CardNoteRight;
57
59
 
58
- var CardButtonRowContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n\n button:last-child{\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ", ";\n }\n"])), _.COLORS.neutral_100, _.COLORS.neutral_600);
60
+ var CardButtonRowContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n\n button:last-child {\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ", ";\n }\n"])), _index.COLORS.neutral_100, _index.COLORS.neutral_600);
59
61
 
60
62
  exports.CardButtonRowContainer = CardButtonRowContainer;
61
63
 
62
64
  var CardBottomSectionContainer = _styledComponents.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0px 16px 8px 16px;\n width: calc(100% - 32px);\n"])));
63
65
 
64
66
  exports.CardBottomSectionContainer = CardBottomSectionContainer;
65
-
66
- var CardBottomSection = function CardBottomSection(_ref) {
67
+ var CardBottomSection = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
67
68
  var progressLevel = _ref.progressLevel,
68
69
  progressMax = _ref.progressMax,
69
70
  _ref$progressType = _ref.progressType,
70
- progressType = _ref$progressType === void 0 ? _.LinearProgressType.Line : _ref$progressType,
71
+ progressType = _ref$progressType === void 0 ? _index.LinearProgressType.Line : _ref$progressType,
71
72
  noteLeft = _ref.noteLeft,
72
73
  noteLeftIcon = _ref.noteLeftIcon,
73
74
  noteRight = _ref.noteRight,
@@ -76,52 +77,68 @@ var CardBottomSection = function CardBottomSection(_ref) {
76
77
  logo = _ref.logo,
77
78
  actions = _ref.actions,
78
79
  disabled = _ref.disabled;
80
+
81
+ var _React$useState = React.useState([]),
82
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
83
+ elRefs = _React$useState2[0],
84
+ setElRefs = _React$useState2[1];
85
+
86
+ var length = (actions === null || actions === void 0 ? void 0 : actions.length) || 0;
87
+ React.useEffect(function () {
88
+ setElRefs(Array(length || 0).fill(null).map(function () {
89
+ return /*#__PURE__*/React.createRef();
90
+ }));
91
+ }, [length]);
92
+ React.useImperativeHandle(ref, function () {
93
+ return elRefs;
94
+ }, [elRefs]);
79
95
  var haveAtLeastSomething = progressLevel != undefined || noteLeft || noteLeftIcon || noteRight || noteRightIcon || authorName;
80
96
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardBottomSectionContainer, {
97
+ "data-testid": 'card-bottomSection',
81
98
  children: [haveAtLeastSomething && /*#__PURE__*/(0, _jsxRuntime.jsx)(CardBottomDivider, {}), progressLevel != undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)(CardProgressContainer, {
82
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.LinearProgress, {
83
- size: _.Size.Small,
99
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.LinearProgress, {
100
+ size: _index.Size.Small,
84
101
  type: progressType,
85
- variant: _.LinearProgressVariant.Normal,
102
+ variant: _index.LinearProgressVariant.Normal,
86
103
  value: progressLevel,
87
104
  max: progressMax !== null && progressMax !== void 0 ? progressMax : progressLevel
88
105
  })
89
106
  }), (noteLeft || noteLeftIcon || noteRight || noteRightIcon) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardNotesContainer, {
90
107
  children: [(noteLeft || noteLeftIcon) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardNoteLeft, {
91
- children: [noteLeftIcon, /*#__PURE__*/(0, _jsxRuntime.jsx)(_.ComponentXXS, {
92
- color: _.COLORS.neutral_500,
93
- textStyle: _.ComponentTextStyle.Bold,
108
+ children: [noteLeftIcon, /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ComponentXXS, {
109
+ color: _index.COLORS.neutral_500,
110
+ textStyle: _index.ComponentTextStyle.Bold,
94
111
  children: noteLeft
95
112
  })]
96
113
  }), (noteRight || noteRightIcon) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardNoteRight, {
97
- children: [noteRightIcon, /*#__PURE__*/(0, _jsxRuntime.jsx)(_.ComponentXXS, {
98
- color: _.COLORS.neutral_500,
99
- textStyle: _.ComponentTextStyle.Bold,
114
+ children: [noteRightIcon, /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ComponentXXS, {
115
+ color: _index.COLORS.neutral_500,
116
+ textStyle: _index.ComponentTextStyle.Bold,
100
117
  children: noteRight
101
118
  })]
102
119
  })]
103
120
  }), (authorName || logo) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(CardAuthorContainer, {
104
121
  disabled: disabled,
105
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.ComponentXXS, {
122
+ "data-testid": 'card-bottomSection-author',
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ComponentXXS, {
106
124
  children: authorName
107
125
  }), logo]
108
126
  }), actions && /*#__PURE__*/(0, _jsxRuntime.jsx)(CardButtonRowContainer, {
109
- children: actions.map(function (x) {
127
+ children: actions.map(function (x, index) {
110
128
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
129
+ ref: elRefs[index],
111
130
  disabled: disabled,
112
131
  variant: "secondary",
113
132
  shape: "circular",
114
133
  action: function action(e) {
115
- e === null || e === void 0 ? void 0 : e.stopPropagation();
116
134
  x.onClick();
117
135
  },
118
136
  children: x.icon
119
- });
137
+ }, index);
120
138
  })
121
139
  })]
122
140
  });
123
- };
124
-
141
+ });
125
142
  CardBottomSection.propTypes = {
126
143
  progressLevel: _propTypes.default.number,
127
144
  progressMax: _propTypes.default.number,
@@ -135,7 +152,7 @@ CardBottomSection.propTypes = {
135
152
  onClick: _propTypes.default.func.isRequired
136
153
  })),
137
154
  logo: _propTypes.default.node,
138
- disabled: _propTypes.default.bool.isRequired
155
+ disabled: _propTypes.default.bool
139
156
  };
140
157
  var _default = CardBottomSection;
141
158
  exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Card/VerticalCard/CardBottomSection.tsx"],"names":["CardProgressContainer","styled","div","CardNotesContainer","COLORS","neutral_500","CardAuthorContainer","props","disabled","neutral_300","CardBottomDivider","neutral_100","CardNoteLeft","CardNoteRight","CardButtonRowContainer","neutral_600","CardBottomSectionContainer","CardBottomSection","React","forwardRef","ref","progressLevel","progressMax","progressType","LinearProgressType","Line","noteLeft","noteLeftIcon","noteRight","noteRightIcon","authorName","logo","actions","useState","elRefs","setElRefs","length","useEffect","Array","fill","map","createRef","useImperativeHandle","haveAtLeastSomething","undefined","Size","Small","LinearProgressVariant","Normal","ComponentTextStyle","Bold","x","index","e","onClick","icon"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {\n COLORS,\n ComponentTextStyle,\n ComponentXXS,\n LinearProgress,\n LinearProgressType,\n LinearProgressVariant,\n Size\n} from '../../index';\nimport {IconButton} from '../../Button';\n\nexport interface ActionItem {\n icon: React.ReactNode;\n onClick: () => void;\n}\n\nexport interface CardBottomSectionProps {\n progressLevel?: number;\n progressMax?: number;\n progressType?: LinearProgressType;\n\n noteLeft?: string;\n noteLeftIcon?: React.ReactNode;\n noteRight?: string;\n noteRightIcon?: React.ReactNode;\n\n authorName?: string;\n actions?: ActionItem[];\n logo?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport const CardProgressContainer = styled.div`\n padding: 8px 0;\n`;\n\nexport const CardNotesContainer = styled.div`\n height: 48px;\n position: relative;\n color: ${COLORS.neutral_500};\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const CardAuthorContainer = styled.div<{ disabled?: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 48px;\n\n div:first-child {\n flex-grow: 2;\n }\n\n svg, img {\n width: 80px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n ${props => props.disabled ? `\n color: ${COLORS.neutral_300};\n svg, img {\n filter: grayscale(100%);\n }\n \n ` : ''}\n`;\n\nexport const CardBottomDivider = styled.div`\n border-top: 1px;\n border-top-color: ${COLORS.neutral_100};\n border-top-style: solid;\n width: 100%;\n`;\n\nexport const CardNoteLeft = styled.div`\n position: absolute;\n left: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n`;\n\nexport const CardNoteRight = styled.div`\n position: absolute;\n right: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n`;\n\nexport const CardButtonRowContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ${COLORS.neutral_100};\n border-top-style: solid;\n\n button:last-child {\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ${COLORS.neutral_600};\n }\n`;\n\nexport const CardBottomSectionContainer = styled.div`\n padding: 0px 16px 8px 16px;\n width: calc(100% - 32px);\n`;\n\nconst CardBottomSection = React.forwardRef(({\n progressLevel,\n progressMax,\n progressType = LinearProgressType.Line,\n noteLeft,\n noteLeftIcon,\n noteRight,\n noteRightIcon,\n authorName,\n logo,\n actions,\n disabled\n }: CardBottomSectionProps,\n ref: React.Ref<React.RefObject<HTMLButtonElement>[]>) => {\n\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLButtonElement>[]>([]);\n\n const length = actions?.length || 0;\n\n React.useEffect(() => {\n setElRefs(Array(length || 0).fill(null).map(() => React.createRef<HTMLButtonElement>()));\n }, [length]);\n\n React.useImperativeHandle(ref, () => elRefs, [elRefs]);\n\n const haveAtLeastSomething = progressLevel != undefined || noteLeft || noteLeftIcon || noteRight || noteRightIcon || authorName;\n\n return (\n <CardBottomSectionContainer data-testid={'card-bottomSection'}>\n {haveAtLeastSomething && <CardBottomDivider/>}\n {progressLevel != undefined && <CardProgressContainer>\n <LinearProgress size={Size.Small}\n type={progressType}\n variant={LinearProgressVariant.Normal}\n value={progressLevel}\n max={progressMax ?? progressLevel}/>\n </CardProgressContainer>}\n\n {(noteLeft || noteLeftIcon || noteRight || noteRightIcon) && <CardNotesContainer>\n {(noteLeft || noteLeftIcon) && (\n <CardNoteLeft>\n {noteLeftIcon}\n <ComponentXXS color={COLORS.neutral_500} textStyle={ComponentTextStyle.Bold}>{noteLeft}</ComponentXXS>\n </CardNoteLeft>\n )}\n {(noteRight || noteRightIcon) && (\n <CardNoteRight>\n {noteRightIcon}\n <ComponentXXS color={COLORS.neutral_500} textStyle={ComponentTextStyle.Bold}>{noteRight}</ComponentXXS>\n </CardNoteRight>\n )}\n </CardNotesContainer>}\n\n {(authorName || logo) && <CardAuthorContainer disabled={disabled} data-testid={'card-bottomSection-author'}>\n <ComponentXXS>{authorName}</ComponentXXS>\n {logo}\n </CardAuthorContainer>}\n\n {actions && <CardButtonRowContainer>\n {actions.map((x, index) => (\n <IconButton ref={elRefs[index]}\n key={index}\n disabled={disabled}\n variant=\"secondary\"\n shape=\"circular\"\n action={(e) => {\n x.onClick();\n }}>\n {x.icon}\n </IconButton>\n ))}\n </CardButtonRowContainer>}\n </CardBottomSectionContainer>\n );\n});\n\nexport default CardBottomSection;\n"],"file":"CardBottomSection.cjs"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { LinearProgressType } from '..';
2
+ import { LinearProgressType } from '../../index';
3
3
  export interface ActionItem {
4
4
  icon: React.ReactNode;
5
5
  onClick: () => void;
@@ -15,17 +15,17 @@ export interface CardBottomSectionProps {
15
15
  authorName?: string;
16
16
  actions?: ActionItem[];
17
17
  logo?: React.ReactNode;
18
- disabled: boolean;
18
+ disabled?: boolean;
19
19
  }
20
20
  export declare const CardProgressContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
21
21
  export declare const CardNotesContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
22
22
  export declare const CardAuthorContainer: import("styled-components").StyledComponent<"div", any, {
23
- disabled: boolean;
23
+ disabled?: boolean | undefined;
24
24
  }, never>;
25
25
  export declare const CardBottomDivider: import("styled-components").StyledComponent<"div", any, {}, never>;
26
26
  export declare const CardNoteLeft: import("styled-components").StyledComponent<"div", any, {}, never>;
27
27
  export declare const CardNoteRight: import("styled-components").StyledComponent<"div", any, {}, never>;
28
28
  export declare const CardButtonRowContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
29
29
  export declare const CardBottomSectionContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
30
- declare const CardBottomSection: React.FunctionComponent<CardBottomSectionProps>;
30
+ declare const CardBottomSection: React.ForwardRefExoticComponent<CardBottomSectionProps & React.RefAttributes<React.RefObject<HTMLButtonElement>[]>>;
31
31
  export default CardBottomSection;
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
1
2
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
3
  import _pt from "prop-types";
3
4
 
@@ -5,8 +6,8 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
5
6
 
6
7
  import * as React from 'react';
7
8
  import styled from 'styled-components';
8
- import { COLORS, ComponentTextStyle, ComponentXXS, LinearProgress, LinearProgressType, LinearProgressVariant, Size } from '..';
9
- import { IconButton } from '../Button';
9
+ import { COLORS, ComponentTextStyle, ComponentXXS, LinearProgress, LinearProgressType, LinearProgressVariant, Size } from '../../index';
10
+ import { IconButton } from '../../Button';
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
13
  export var CardProgressContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 8px 0;\n"])));
@@ -17,10 +18,9 @@ export var CardAuthorContainer = styled.div(_templateObject3 || (_templateObject
17
18
  export var CardBottomDivider = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n width: 100%;\n"])), COLORS.neutral_100);
18
19
  export var CardNoteLeft = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n left: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n"])));
19
20
  export var CardNoteRight = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n right: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n"])));
20
- export var CardButtonRowContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n\n button:last-child{\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ", ";\n }\n"])), COLORS.neutral_100, COLORS.neutral_600);
21
+ export var CardButtonRowContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ", ";\n border-top-style: solid;\n\n button:last-child {\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ", ";\n }\n"])), COLORS.neutral_100, COLORS.neutral_600);
21
22
  export var CardBottomSectionContainer = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n padding: 0px 16px 8px 16px;\n width: calc(100% - 32px);\n"])));
22
-
23
- var CardBottomSection = function CardBottomSection(_ref) {
23
+ var CardBottomSection = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
24
24
  var progressLevel = _ref.progressLevel,
25
25
  progressMax = _ref.progressMax,
26
26
  _ref$progressType = _ref.progressType,
@@ -33,8 +33,24 @@ var CardBottomSection = function CardBottomSection(_ref) {
33
33
  logo = _ref.logo,
34
34
  actions = _ref.actions,
35
35
  disabled = _ref.disabled;
36
+
37
+ var _React$useState = React.useState([]),
38
+ _React$useState2 = _slicedToArray(_React$useState, 2),
39
+ elRefs = _React$useState2[0],
40
+ setElRefs = _React$useState2[1];
41
+
42
+ var length = (actions === null || actions === void 0 ? void 0 : actions.length) || 0;
43
+ React.useEffect(function () {
44
+ setElRefs(Array(length || 0).fill(null).map(function () {
45
+ return /*#__PURE__*/React.createRef();
46
+ }));
47
+ }, [length]);
48
+ React.useImperativeHandle(ref, function () {
49
+ return elRefs;
50
+ }, [elRefs]);
36
51
  var haveAtLeastSomething = progressLevel != undefined || noteLeft || noteLeftIcon || noteRight || noteRightIcon || authorName;
37
52
  return /*#__PURE__*/_jsxs(CardBottomSectionContainer, {
53
+ "data-testid": 'card-bottomSection',
38
54
  children: [haveAtLeastSomething && /*#__PURE__*/_jsx(CardBottomDivider, {}), progressLevel != undefined && /*#__PURE__*/_jsx(CardProgressContainer, {
39
55
  children: /*#__PURE__*/_jsx(LinearProgress, {
40
56
  size: Size.Small,
@@ -59,26 +75,26 @@ var CardBottomSection = function CardBottomSection(_ref) {
59
75
  })]
60
76
  }), (authorName || logo) && /*#__PURE__*/_jsxs(CardAuthorContainer, {
61
77
  disabled: disabled,
78
+ "data-testid": 'card-bottomSection-author',
62
79
  children: [/*#__PURE__*/_jsx(ComponentXXS, {
63
80
  children: authorName
64
81
  }), logo]
65
82
  }), actions && /*#__PURE__*/_jsx(CardButtonRowContainer, {
66
- children: actions.map(function (x) {
83
+ children: actions.map(function (x, index) {
67
84
  return /*#__PURE__*/_jsx(IconButton, {
85
+ ref: elRefs[index],
68
86
  disabled: disabled,
69
87
  variant: "secondary",
70
88
  shape: "circular",
71
89
  action: function action(e) {
72
- e === null || e === void 0 ? void 0 : e.stopPropagation();
73
90
  x.onClick();
74
91
  },
75
92
  children: x.icon
76
- });
93
+ }, index);
77
94
  })
78
95
  })]
79
96
  });
80
- };
81
-
97
+ });
82
98
  CardBottomSection.propTypes = {
83
99
  progressLevel: _pt.number,
84
100
  progressMax: _pt.number,
@@ -92,7 +108,7 @@ CardBottomSection.propTypes = {
92
108
  onClick: _pt.func.isRequired
93
109
  })),
94
110
  logo: _pt.node,
95
- disabled: _pt.bool.isRequired
111
+ disabled: _pt.bool
96
112
  };
97
113
  export default CardBottomSection;
98
114
  //# sourceMappingURL=CardBottomSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Card/VerticalCard/CardBottomSection.tsx"],"names":["React","styled","COLORS","ComponentTextStyle","ComponentXXS","LinearProgress","LinearProgressType","LinearProgressVariant","Size","IconButton","CardProgressContainer","div","CardNotesContainer","neutral_500","CardAuthorContainer","props","disabled","neutral_300","CardBottomDivider","neutral_100","CardNoteLeft","CardNoteRight","CardButtonRowContainer","neutral_600","CardBottomSectionContainer","CardBottomSection","forwardRef","ref","progressLevel","progressMax","progressType","Line","noteLeft","noteLeftIcon","noteRight","noteRightIcon","authorName","logo","actions","useState","elRefs","setElRefs","length","useEffect","Array","fill","map","createRef","useImperativeHandle","haveAtLeastSomething","undefined","Small","Normal","Bold","x","index","e","onClick","icon"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {\n COLORS,\n ComponentTextStyle,\n ComponentXXS,\n LinearProgress,\n LinearProgressType,\n LinearProgressVariant,\n Size\n} from '../../index';\nimport {IconButton} from '../../Button';\n\nexport interface ActionItem {\n icon: React.ReactNode;\n onClick: () => void;\n}\n\nexport interface CardBottomSectionProps {\n progressLevel?: number;\n progressMax?: number;\n progressType?: LinearProgressType;\n\n noteLeft?: string;\n noteLeftIcon?: React.ReactNode;\n noteRight?: string;\n noteRightIcon?: React.ReactNode;\n\n authorName?: string;\n actions?: ActionItem[];\n logo?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport const CardProgressContainer = styled.div`\n padding: 8px 0;\n`;\n\nexport const CardNotesContainer = styled.div`\n height: 48px;\n position: relative;\n color: ${COLORS.neutral_500};\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const CardAuthorContainer = styled.div<{ disabled?: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 48px;\n\n div:first-child {\n flex-grow: 2;\n }\n\n svg, img {\n width: 80px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n ${props => props.disabled ? `\n color: ${COLORS.neutral_300};\n svg, img {\n filter: grayscale(100%);\n }\n \n ` : ''}\n`;\n\nexport const CardBottomDivider = styled.div`\n border-top: 1px;\n border-top-color: ${COLORS.neutral_100};\n border-top-style: solid;\n width: 100%;\n`;\n\nexport const CardNoteLeft = styled.div`\n position: absolute;\n left: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n`;\n\nexport const CardNoteRight = styled.div`\n position: absolute;\n right: 0px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 4px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n`;\n\nexport const CardButtonRowContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n border-top: 1px;\n border-top-color: ${COLORS.neutral_100};\n border-top-style: solid;\n\n button:last-child {\n margin: 8px 0px 0px 0px;\n }\n\n button:not(:last-child) {\n margin: 8px 0px 0px 0px;\n }\n\n svg {\n color: ${COLORS.neutral_600};\n }\n`;\n\nexport const CardBottomSectionContainer = styled.div`\n padding: 0px 16px 8px 16px;\n width: calc(100% - 32px);\n`;\n\nconst CardBottomSection = React.forwardRef(({\n progressLevel,\n progressMax,\n progressType = LinearProgressType.Line,\n noteLeft,\n noteLeftIcon,\n noteRight,\n noteRightIcon,\n authorName,\n logo,\n actions,\n disabled\n }: CardBottomSectionProps,\n ref: React.Ref<React.RefObject<HTMLButtonElement>[]>) => {\n\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLButtonElement>[]>([]);\n\n const length = actions?.length || 0;\n\n React.useEffect(() => {\n setElRefs(Array(length || 0).fill(null).map(() => React.createRef<HTMLButtonElement>()));\n }, [length]);\n\n React.useImperativeHandle(ref, () => elRefs, [elRefs]);\n\n const haveAtLeastSomething = progressLevel != undefined || noteLeft || noteLeftIcon || noteRight || noteRightIcon || authorName;\n\n return (\n <CardBottomSectionContainer data-testid={'card-bottomSection'}>\n {haveAtLeastSomething && <CardBottomDivider/>}\n {progressLevel != undefined && <CardProgressContainer>\n <LinearProgress size={Size.Small}\n type={progressType}\n variant={LinearProgressVariant.Normal}\n value={progressLevel}\n max={progressMax ?? progressLevel}/>\n </CardProgressContainer>}\n\n {(noteLeft || noteLeftIcon || noteRight || noteRightIcon) && <CardNotesContainer>\n {(noteLeft || noteLeftIcon) && (\n <CardNoteLeft>\n {noteLeftIcon}\n <ComponentXXS color={COLORS.neutral_500} textStyle={ComponentTextStyle.Bold}>{noteLeft}</ComponentXXS>\n </CardNoteLeft>\n )}\n {(noteRight || noteRightIcon) && (\n <CardNoteRight>\n {noteRightIcon}\n <ComponentXXS color={COLORS.neutral_500} textStyle={ComponentTextStyle.Bold}>{noteRight}</ComponentXXS>\n </CardNoteRight>\n )}\n </CardNotesContainer>}\n\n {(authorName || logo) && <CardAuthorContainer disabled={disabled} data-testid={'card-bottomSection-author'}>\n <ComponentXXS>{authorName}</ComponentXXS>\n {logo}\n </CardAuthorContainer>}\n\n {actions && <CardButtonRowContainer>\n {actions.map((x, index) => (\n <IconButton ref={elRefs[index]}\n key={index}\n disabled={disabled}\n variant=\"secondary\"\n shape=\"circular\"\n action={(e) => {\n x.onClick();\n }}>\n {x.icon}\n </IconButton>\n ))}\n </CardButtonRowContainer>}\n </CardBottomSectionContainer>\n );\n});\n\nexport default CardBottomSection;\n"],"file":"CardBottomSection.js"}