@dxc-technology/halstack-react 0.0.0-7c194f8 → 0.0.0-7c2b794

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 (119) hide show
  1. package/HalstackContext.d.ts +29 -15
  2. package/HalstackContext.js +1 -1
  3. package/accordion/Accordion.js +1 -1
  4. package/accordion-group/AccordionGroup.d.ts +2 -3
  5. package/accordion-group/AccordionGroup.js +3 -3
  6. package/accordion-group/AccordionGroupAccordion.js +2 -2
  7. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  8. package/accordion-group/AccordionGroupContext.js +8 -0
  9. package/action-icon/ActionIcon.d.ts +4 -0
  10. package/action-icon/ActionIcon.js +47 -0
  11. package/action-icon/ActionIcon.stories.tsx +41 -0
  12. package/action-icon/ActionIcon.test.js +64 -0
  13. package/action-icon/types.d.ts +26 -0
  14. package/action-icon/types.js +5 -0
  15. package/badge/Badge.d.ts +1 -1
  16. package/badge/Badge.js +140 -29
  17. package/badge/Badge.stories.tsx +210 -0
  18. package/badge/Badge.test.js +30 -0
  19. package/badge/types.d.ts +52 -3
  20. package/button/Button.js +3 -2
  21. package/button/Button.stories.tsx +32 -50
  22. package/button/Button.test.js +3 -1
  23. package/button/types.d.ts +1 -1
  24. package/common/coreTokens.js +2 -2
  25. package/common/variables.d.ts +29 -15
  26. package/common/variables.js +36 -22
  27. package/container/Container.js +1 -1
  28. package/contextual-menu/ContextualMenu.d.ts +7 -0
  29. package/contextual-menu/ContextualMenu.js +71 -0
  30. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  31. package/contextual-menu/ContextualMenu.test.js +71 -0
  32. package/contextual-menu/MenuItemAction.d.ts +4 -0
  33. package/contextual-menu/MenuItemAction.js +46 -0
  34. package/contextual-menu/types.d.ts +22 -0
  35. package/contextual-menu/types.js +5 -0
  36. package/date-input/types.d.ts +2 -2
  37. package/divider/Divider.d.ts +4 -0
  38. package/divider/Divider.js +36 -0
  39. package/divider/Divider.stories.tsx +223 -0
  40. package/divider/Divider.test.js +38 -0
  41. package/divider/types.d.ts +19 -0
  42. package/divider/types.js +5 -0
  43. package/dropdown/Dropdown.js +9 -7
  44. package/dropdown/types.d.ts +1 -1
  45. package/footer/Footer.d.ts +1 -1
  46. package/footer/Footer.js +25 -12
  47. package/footer/Footer.stories.tsx +19 -0
  48. package/footer/Icons.d.ts +1 -0
  49. package/footer/Icons.js +65 -1
  50. package/footer/types.d.ts +6 -0
  51. package/header/types.d.ts +2 -2
  52. package/icon/Icon.d.ts +4 -0
  53. package/icon/Icon.js +33 -0
  54. package/icon/Icon.stories.tsx +26 -0
  55. package/icon/types.d.ts +4 -0
  56. package/icon/types.js +5 -0
  57. package/image/Image.stories.tsx +3 -1
  58. package/layout/ApplicationLayout.d.ts +1 -1
  59. package/layout/ApplicationLayout.js +1 -1
  60. package/main.d.ts +5 -2
  61. package/main.js +22 -1
  62. package/nav-tabs/NavTabs.d.ts +1 -2
  63. package/nav-tabs/NavTabs.js +9 -6
  64. package/nav-tabs/NavTabs.stories.tsx +6 -4
  65. package/nav-tabs/NavTabs.test.js +3 -2
  66. package/nav-tabs/NavTabsContext.d.ts +3 -0
  67. package/nav-tabs/NavTabsContext.js +8 -0
  68. package/nav-tabs/Tab.js +8 -7
  69. package/number-input/NumberInput.d.ts +0 -7
  70. package/number-input/NumberInput.js +24 -5
  71. package/number-input/NumberInput.test.js +165 -6
  72. package/number-input/NumberInputContext.d.ts +3 -0
  73. package/number-input/NumberInputContext.js +8 -0
  74. package/number-input/types.d.ts +6 -0
  75. package/package.json +2 -2
  76. package/radio-group/RadioGroup.js +1 -1
  77. package/resultset-table/ResultsetTable.d.ts +4 -1
  78. package/resultset-table/ResultsetTable.js +13 -6
  79. package/resultset-table/ResultsetTable.stories.tsx +102 -5
  80. package/resultset-table/ResultsetTable.test.js +66 -0
  81. package/resultset-table/types.d.ts +6 -0
  82. package/select/Option.js +8 -1
  83. package/select/Select.js +33 -23
  84. package/select/types.d.ts +2 -2
  85. package/sidenav/Sidenav.js +3 -2
  86. package/slider/Slider.js +5 -6
  87. package/status-light/StatusLight.d.ts +4 -0
  88. package/status-light/StatusLight.js +51 -0
  89. package/status-light/StatusLight.stories.tsx +74 -0
  90. package/status-light/StatusLight.test.js +25 -0
  91. package/status-light/types.d.ts +17 -0
  92. package/status-light/types.js +5 -0
  93. package/table/DropdownTheme.js +62 -0
  94. package/table/Table.d.ts +6 -2
  95. package/table/Table.js +82 -8
  96. package/table/Table.stories.tsx +304 -2
  97. package/table/Table.test.js +92 -0
  98. package/table/types.d.ts +42 -0
  99. package/tabs/Tab.js +7 -4
  100. package/tabs/Tabs.js +4 -5
  101. package/tabs/Tabs.stories.tsx +1 -1
  102. package/text-input/TextInput.js +58 -71
  103. package/text-input/TextInput.test.js +96 -79
  104. package/useTheme.d.ts +29 -15
  105. package/utils/FocusLock.js +3 -0
  106. package/wizard/types.d.ts +1 -1
  107. package/common/OpenSans.css +0 -69
  108. package/common/fonts/OpenSans-Bold.ttf +0 -0
  109. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  110. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  111. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  112. package/common/fonts/OpenSans-Italic.ttf +0 -0
  113. package/common/fonts/OpenSans-Light.ttf +0 -0
  114. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  115. package/common/fonts/OpenSans-Regular.ttf +0 -0
  116. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  117. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  118. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  119. /package/{layout → sidenav}/SidenavContext.js +0 -0
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
12
+ var _templateObject, _templateObject2, _templateObject3;
13
+ var DxcStatusLight = function DxcStatusLight(_ref) {
14
+ var _ref$mode = _ref.mode,
15
+ mode = _ref$mode === void 0 ? "default" : _ref$mode,
16
+ label = _ref.label,
17
+ _ref$size = _ref.size,
18
+ size = _ref$size === void 0 ? "medium" : _ref$size;
19
+ return /*#__PURE__*/_react["default"].createElement(StatusLightContainer, {
20
+ size: size,
21
+ "aria-label": "".concat(mode, ": ").concat(label),
22
+ "data-testid": "status_light-container"
23
+ }, /*#__PURE__*/_react["default"].createElement(StatusDot, {
24
+ mode: mode,
25
+ size: size,
26
+ "aria-hidden": "true",
27
+ "data-testid": "status-dot"
28
+ }), /*#__PURE__*/_react["default"].createElement(StatusLabel, {
29
+ mode: mode,
30
+ size: size
31
+ }, label));
32
+ };
33
+ var StatusLightContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n"])), _coreTokens["default"].spacing_8);
34
+ var StatusDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background-color: ", ";\n"])), function (_ref2) {
35
+ var size = _ref2.size;
36
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
37
+ }, function (_ref3) {
38
+ var size = _ref3.size;
39
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
40
+ }, function (_ref4) {
41
+ var mode = _ref4.mode;
42
+ return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
43
+ });
44
+ var StatusLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (_ref5) {
45
+ var size = _ref5.size;
46
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
47
+ }, _coreTokens["default"].type_sans, _coreTokens["default"].type_normal, _coreTokens["default"].type_semibold, function (_ref6) {
48
+ var mode = _ref6.mode;
49
+ return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
50
+ });
51
+ var _default = exports["default"] = DxcStatusLight;
@@ -0,0 +1,74 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcStatusLight from "./StatusLight";
5
+
6
+ export default {
7
+ title: "Status Light",
8
+ component: DxcStatusLight,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <ExampleContainer>
14
+ <Title title="Default light small" theme="light" level={4} />
15
+ <DxcStatusLight label="StatusLight" size="small" />
16
+ </ExampleContainer>
17
+ <ExampleContainer>
18
+ <Title title="Default light medium" theme="light" level={4} />
19
+ <DxcStatusLight label="StatusLight" />
20
+ </ExampleContainer>
21
+ <ExampleContainer>
22
+ <Title title="Default light large" theme="light" level={4} />
23
+ <DxcStatusLight label="StatusLight" size="large" />
24
+ </ExampleContainer>
25
+ <ExampleContainer>
26
+ <Title title="Info light small" theme="light" level={4} />
27
+ <DxcStatusLight label="StatusLight" mode="info" size="small" />
28
+ </ExampleContainer>
29
+ <ExampleContainer>
30
+ <Title title="Info light medium" theme="light" level={4} />
31
+ <DxcStatusLight label="StatusLight" mode="info" />
32
+ </ExampleContainer>
33
+ <ExampleContainer>
34
+ <Title title="Info light large" theme="light" level={4} />
35
+ <DxcStatusLight label="StatusLight" mode="info" size="large" />
36
+ </ExampleContainer>
37
+ <ExampleContainer>
38
+ <Title title="Success light small" theme="light" level={4} />
39
+ <DxcStatusLight label="StatusLight" mode="success" size="small" />
40
+ </ExampleContainer>
41
+ <ExampleContainer>
42
+ <Title title="Success lights medium" theme="light" level={4} />
43
+ <DxcStatusLight label="StatusLight" mode="success" />
44
+ </ExampleContainer>
45
+ <ExampleContainer>
46
+ <Title title="Success lights large" theme="light" level={4} />
47
+ <DxcStatusLight label="StatusLight" mode="success" size="large" />
48
+ </ExampleContainer>
49
+ <ExampleContainer>
50
+ <Title title="Warning light small" theme="light" level={4} />
51
+ <DxcStatusLight label="StatusLight" mode="warning" size="small" />
52
+ </ExampleContainer>
53
+ <ExampleContainer>
54
+ <Title title="Warning light medium" theme="light" level={4} />
55
+ <DxcStatusLight label="StatusLight" mode="warning" />
56
+ </ExampleContainer>
57
+ <ExampleContainer>
58
+ <Title title="Warning light large" theme="light" level={4} />
59
+ <DxcStatusLight label="StatusLight" mode="warning" size="large" />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="Error light small" theme="light" level={4} />
63
+ <DxcStatusLight label="StatusLight" mode="error" size="small" />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Error lights medium" theme="light" level={4} />
67
+ <DxcStatusLight label="StatusLight" mode="error" />
68
+ </ExampleContainer>
69
+ <ExampleContainer>
70
+ <Title title="Error lights large" theme="light" level={4} />
71
+ <DxcStatusLight label="StatusLight" mode="error" size="large" />
72
+ </ExampleContainer>
73
+ </>
74
+ );
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _StatusLight = _interopRequireDefault(require("./StatusLight.tsx"));
7
+ describe("StatusLight component tests", function () {
8
+ test("StatusLight renders with correct label", function () {
9
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
10
+ label: "Status Light Test"
11
+ })),
12
+ getByText = _render.getByText;
13
+ expect(getByText("Status Light Test")).toBeTruthy();
14
+ });
15
+ test("StatusLight applies accessibility attributes", function () {
16
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
17
+ label: "Status Light Test"
18
+ })),
19
+ getByTestId = _render2.getByTestId;
20
+ var statusLightContainer = getByTestId("status_light-container");
21
+ var statusDot = getByTestId("status-dot");
22
+ expect(statusLightContainer.getAttribute("aria-label")).toBe("default: Status Light Test");
23
+ expect(statusDot.getAttribute("aria-hidden")).toBe("true");
24
+ });
25
+ });
@@ -0,0 +1,17 @@
1
+ type Mode = "default" | "info" | "success" | "warning" | "error";
2
+ type Size = "small" | "medium" | "large";
3
+ type Props = {
4
+ /**
5
+ * It will define the color of the light based on its semantic meaning.
6
+ */
7
+ mode?: Mode;
8
+ /**
9
+ * An auxiliar text that will add some context to the status.
10
+ */
11
+ label: string;
12
+ /**
13
+ * Size of the component. Should be defined based on its importance and/or available space.
14
+ */
15
+ size?: Size;
16
+ };
17
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _variables = require("../common/variables");
8
+ var _default = exports["default"] = {
9
+ dropdown: {
10
+ // ActionIcon size tokens
11
+ buttonIconSize: "16px",
12
+ buttonPaddingTop: "4px",
13
+ buttonPaddingBottom: "4px",
14
+ buttonPaddingLeft: "4px",
15
+ buttonPaddingRight: "4px",
16
+ buttonHeight: "24px",
17
+ buttonBorderRadius: "2px",
18
+ buttonBorderStyle: "none",
19
+ buttonBorderThickness: "0px",
20
+ buttonBorderColor: "transparent",
21
+ optionFontSize: "14px",
22
+ optionPaddingTop: "0px",
23
+ optionPaddingBottom: "0px",
24
+ optionPaddingLeft: "16px",
25
+ optionPaddingRight: "16px",
26
+ // Dropdown tokens
27
+ buttonBackgroundColor: _variables.componentTokens.table.actionBackgroundColor,
28
+ hoverButtonBackgroundColor: _variables.componentTokens.table.hoverActionBackgroundColor,
29
+ activeButtonBackgroundColor: _variables.componentTokens.table.activeActionBackgroundColor,
30
+ buttonFontFamily: _variables.componentTokens.dropdown.buttonFontFamily,
31
+ buttonFontSize: _variables.componentTokens.dropdown.buttonFontSize,
32
+ buttonFontStyle: _variables.componentTokens.dropdown.buttonFontStyle,
33
+ buttonFontWeight: _variables.componentTokens.dropdown.buttonFontWeight,
34
+ buttonFontColor: _variables.componentTokens.dropdown.buttonFontColor,
35
+ buttonIconSpacing: _variables.componentTokens.dropdown.buttonIconSpacing,
36
+ buttonIconColor: _variables.componentTokens.table.actionIconColor,
37
+ disabledColor: _variables.componentTokens.table.disabledActionIconColor,
38
+ disabledButtonBorderColor: _variables.componentTokens.dropdown.disabledButtonBorderColor,
39
+ disabledButtonBackgroundColor: _variables.componentTokens.table.disabledActionBackgroundColor,
40
+ disabledBorderColor: _variables.componentTokens.dropdown.disabledBorderColor,
41
+ optionBackgroundColor: _variables.componentTokens.dropdown.optionBackgroundColor,
42
+ hoverOptionBackgroundColor: _variables.componentTokens.dropdown.hoverOptionBackgroundColor,
43
+ activeOptionBackgroundColor: _variables.componentTokens.dropdown.activeOptionBackgroundColor,
44
+ optionFontFamily: _variables.componentTokens.dropdown.optionFontFamily,
45
+ optionFontStyle: _variables.componentTokens.dropdown.optionFontStyle,
46
+ optionFontWeight: _variables.componentTokens.dropdown.optionFontWeight,
47
+ optionFontColor: _variables.componentTokens.dropdown.optionFontColor,
48
+ optionIconSize: _variables.componentTokens.dropdown.optionIconSize,
49
+ optionIconSpacing: _variables.componentTokens.dropdown.optionIconSpacing,
50
+ optionIconColor: _variables.componentTokens.dropdown.optionIconColor,
51
+ caretIconSize: _variables.componentTokens.dropdown.caretIconSize,
52
+ caretIconColor: _variables.componentTokens.dropdown.caretIconColor,
53
+ caretIconSpacing: _variables.componentTokens.dropdown.caretIconSpacing,
54
+ borderRadius: _variables.componentTokens.dropdown.borderRadius,
55
+ borderStyle: _variables.componentTokens.dropdown.borderStyle,
56
+ borderThickness: _variables.componentTokens.dropdown.borderThickness,
57
+ borderColor: _variables.componentTokens.dropdown.borderColor,
58
+ scrollBarThumbColor: _variables.componentTokens.dropdown.scrollBarThumbColor,
59
+ scrollBarTrackColor: _variables.componentTokens.dropdown.scrollBarTrackColor,
60
+ focusColor: _variables.componentTokens.table.focusActionBorderColor
61
+ }
62
+ };
package/table/Table.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  /// <reference types="react" />
2
- import TablePropsType from "./types";
3
- declare const DxcTable: ({ children, margin }: TablePropsType) => JSX.Element;
2
+ import TablePropsType, { ActionCellsPropsType } from "./types";
3
+ export declare const DxcActionsCell: ({ actions }: ActionCellsPropsType) => JSX.Element;
4
+ declare const DxcTable: {
5
+ ({ children, margin, mode }: TablePropsType): JSX.Element;
6
+ ActionsCell: ({ actions }: ActionCellsPropsType) => JSX.Element;
7
+ };
4
8
  export default DxcTable;
package/table/Table.js CHANGED
@@ -5,7 +5,7 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = exports.DxcActionsCell = void 0;
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
  var _react = _interopRequireDefault(require("react"));
@@ -13,18 +13,81 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
13
  var _variables = require("../common/variables");
14
14
  var _utils = require("../common/utils");
15
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
16
+ var _DropdownTheme = _interopRequireDefault(require("./DropdownTheme"));
17
+ var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
18
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
19
+ var _HalstackContext = require("../HalstackContext");
20
+ var _ActionIcon = _interopRequireDefault(require("../action-icon/ActionIcon"));
16
21
  var _templateObject, _templateObject2;
17
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
- var DxcTable = function DxcTable(_ref) {
20
- var children = _ref.children,
21
- margin = _ref.margin;
24
+ var moreVertIcon = /*#__PURE__*/_react["default"].createElement("svg", {
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ height: "24",
27
+ viewBox: "0 -960 960 960",
28
+ width: "24",
29
+ fill: "currentColor"
30
+ }, /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z"
32
+ }));
33
+ var overwriteTheme = function overwriteTheme(theme) {
34
+ var newTheme = _DropdownTheme["default"];
35
+ newTheme.dropdown.buttonBackgroundColor = theme.table.actionBackgroundColor;
36
+ newTheme.dropdown.hoverButtonBackgroundColor = theme.table.hoverActionBackgroundColor;
37
+ newTheme.dropdown.activeButtonBackgroundColor = theme.table.activeActionBackgroundColor;
38
+ newTheme.dropdown.buttonIconColor = theme.table.actionIconColor;
39
+ newTheme.dropdown.disabledColor = theme.table.disabledActionIconColor;
40
+ newTheme.dropdown.disabledButtonBackgroundColor = theme.table.disabledActionBackgroundColor;
41
+ return newTheme;
42
+ };
43
+ var DxcActionsCell = exports.DxcActionsCell = function DxcActionsCell(_ref) {
44
+ var actions = _ref.actions;
45
+ var actionIcons = actions.filter(function (action) {
46
+ return !action.options;
47
+ });
48
+ var actionDropdown = actions.find(function (action) {
49
+ return action.options;
50
+ });
51
+ var maxNumberOfActions = actionDropdown ? 2 : 3;
52
+ var colorsTheme = (0, _useTheme["default"])();
53
+ return /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
54
+ gap: "0.5rem",
55
+ alignItems: "center"
56
+ }, actionIcons.map(function (action, index) {
57
+ var _action$disabled, _action$tabIndex;
58
+ return index < maxNumberOfActions && /*#__PURE__*/_react["default"].createElement(_ActionIcon["default"], {
59
+ icon: action.icon,
60
+ title: action.title,
61
+ onClick: action.onClick,
62
+ disabled: (_action$disabled = action.disabled) !== null && _action$disabled !== void 0 ? _action$disabled : false,
63
+ tabIndex: (_action$tabIndex = action.tabIndex) !== null && _action$tabIndex !== void 0 ? _action$tabIndex : 0,
64
+ key: "action-".concat(index)
65
+ });
66
+ }), actionDropdown && /*#__PURE__*/_react["default"].createElement(_HalstackContext.HalstackProvider, {
67
+ advancedTheme: overwriteTheme(colorsTheme),
68
+ key: "provider-dropdown"
69
+ }, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
70
+ options: actionDropdown.options,
71
+ onSelectOption: actionDropdown.onClick,
72
+ disabled: actionDropdown.disabled,
73
+ icon: moreVertIcon,
74
+ tabIndex: actionDropdown.tabIndex,
75
+ caretHidden: true
76
+ })));
77
+ };
78
+ var DxcTable = function DxcTable(_ref2) {
79
+ var children = _ref2.children,
80
+ margin = _ref2.margin,
81
+ _ref2$mode = _ref2.mode,
82
+ mode = _ref2$mode === void 0 ? "default" : _ref2$mode;
22
83
  var colorsTheme = (0, _useTheme["default"])();
23
84
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
24
85
  theme: colorsTheme.table
25
86
  }, /*#__PURE__*/_react["default"].createElement(DxcTableContainer, {
26
87
  margin: margin
27
- }, /*#__PURE__*/_react["default"].createElement(DxcTableContent, null, children)));
88
+ }, /*#__PURE__*/_react["default"].createElement(DxcTableContent, {
89
+ mode: mode
90
+ }, children)));
28
91
  };
29
92
  var calculateWidth = function calculateWidth(margin) {
30
93
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
@@ -46,8 +109,10 @@ var DxcTableContainer = _styledComponents["default"].div(_templateObject || (_te
46
109
  }, function (props) {
47
110
  return props.theme.scrollBarTrackColor;
48
111
  });
49
- var DxcTableContent = _styledComponents["default"].table(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n border-collapse: collapse;\n width: 100%;\n\n & tr {\n border-bottom: ", ";\n height: 60px;\n }\n & td {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th:first-child {\n border-top-left-radius: ", ";\n }\n & th:last-child {\n border-top-right-radius: ", ";\n }\n & td:last-child {\n padding-right: 40px;\n }\n"])), function (props) {
112
+ var DxcTableContent = _styledComponents["default"].table(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n border-collapse: collapse;\n width: 100%;\n\n & tr {\n border-bottom: ", ";\n height: ", ";\n }\n & td {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th:first-child {\n border-top-left-radius: ", ";\n padding-left: ", ";\n }\n & th:last-child {\n border-top-right-radius: ", ";\n padding-right: ", ";\n }\n & td:first-child {\n padding-left: ", ";\n }\n & td:last-child {\n padding-right: ", ";\n }\n"])), function (props) {
50
113
  return "".concat(props.theme.rowSeparatorThickness, " ").concat(props.theme.rowSeparatorStyle, " ").concat(props.theme.rowSeparatorColor);
114
+ }, function (props) {
115
+ return props.mode === "default" ? "60px" : "36px";
51
116
  }, function (props) {
52
117
  return props.theme.dataBackgroundColor;
53
118
  }, function (props) {
@@ -67,7 +132,7 @@ var DxcTableContent = _styledComponents["default"].table(_templateObject2 || (_t
67
132
  }, function (props) {
68
133
  return props.theme.dataTextLineHeight;
69
134
  }, function (props) {
70
- return "".concat(props.theme.dataPaddingTop, " ").concat(props.theme.dataPaddingRight, " ").concat(props.theme.dataPaddingBottom, " ").concat(props.theme.dataPaddingLeft);
135
+ return props.mode === "default" ? "".concat(props.theme.dataPaddingTop, " ").concat(props.theme.dataPaddingRight, " ").concat(props.theme.dataPaddingBottom, " ").concat(props.theme.dataPaddingLeft) : "".concat(props.theme.dataPaddingTopReduced, " ").concat(props.theme.dataPaddingRightReduced, " ").concat(props.theme.dataPaddingBottomReduced, " ").concat(props.theme.dataPaddingLeftReduced);
71
136
  }, function (props) {
72
137
  return props.theme.headerBackgroundColor;
73
138
  }, function (props) {
@@ -87,10 +152,19 @@ var DxcTableContent = _styledComponents["default"].table(_templateObject2 || (_t
87
152
  }, function (props) {
88
153
  return props.theme.headerTextLineHeight;
89
154
  }, function (props) {
90
- return "".concat(props.theme.headerPaddingTop, " ").concat(props.theme.headerPaddingRight, " ").concat(props.theme.headerPaddingBottom, " ").concat(props.theme.headerPaddingLeft);
155
+ return props.mode === "default" ? "".concat(props.theme.headerPaddingTop, " ").concat(props.theme.headerPaddingRight, " ").concat(props.theme.headerPaddingBottom, " ").concat(props.theme.headerPaddingLeft) : "".concat(props.theme.headerPaddingTopReduced, " ").concat(props.theme.headerPaddingRightReduced, " ").concat(props.theme.headerPaddingBottomReduced, " ").concat(props.theme.headerPaddingLeftReduced);
91
156
  }, function (props) {
92
157
  return props.theme.headerBorderRadius;
158
+ }, function (props) {
159
+ return props.mode === "default" ? props.theme.firstChildPaddingLeft : props.theme.firstChildPaddingLeftReduced;
93
160
  }, function (props) {
94
161
  return props.theme.headerBorderRadius;
162
+ }, function (props) {
163
+ return props.mode === "default" ? props.theme.lastChildPaddingRight : props.theme.lastChildPaddingRightReduced;
164
+ }, function (props) {
165
+ return props.mode === "default" ? props.theme.firstChildPaddingLeft : props.theme.firstChildPaddingLeftReduced;
166
+ }, function (props) {
167
+ return props.mode === "default" ? props.theme.lastChildPaddingRight : props.theme.lastChildPaddingRightReduced;
95
168
  });
169
+ DxcTable.ActionsCell = DxcActionsCell;
96
170
  var _default = exports["default"] = DxcTable;