@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,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NumberInputContext = void 0;
7
+ var _react = require("react");
8
+ var NumberInputContext = exports.NumberInputContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -123,6 +123,12 @@ type Props = {
123
123
  */
124
124
  tabIndex?: number;
125
125
  };
126
+ export type NumberInputContextProps = {
127
+ typeNumber?: string;
128
+ minNumber?: number;
129
+ maxNumber?: number;
130
+ stepNumber?: number;
131
+ };
126
132
  /**
127
133
  * Reference to the component.
128
134
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-7c194f8",
3
+ "version": "0.0.0-7c2b794",
4
4
  "description": "DXC Halstack React components library",
5
5
  "repository": "dxc-technology/halstack-react",
6
6
  "homepage": "https://developer.dxc.com/halstack",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@babel/cli": "^7.16.8",
37
- "@babel/core": "^7.23.9",
37
+ "@babel/core": "^7.24.0",
38
38
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
39
39
  "@babel/plugin-proposal-optional-chaining": "^7.13.8",
40
40
  "@babel/plugin-transform-runtime": "^7.16.8",
@@ -158,7 +158,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
158
158
  "aria-invalid": error ? true : false,
159
159
  "aria-errormessage": error ? errorId : undefined,
160
160
  "aria-required": !disabled && !readOnly && !optional,
161
- "aria-readOnly": readOnly,
161
+ "aria-readonly": readOnly,
162
162
  "aria-orientation": stacking === "column" ? "vertical" : "horizontal"
163
163
  }, /*#__PURE__*/_react["default"].createElement(ValueInput, {
164
164
  name: name,
@@ -1,4 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import ResultsetTablePropsType from "./types";
3
- declare const DxcResultsetTable: ({ columns, rows, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, }: ResultsetTablePropsType) => JSX.Element;
3
+ declare const DxcResultsetTable: {
4
+ ({ columns, rows, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, mode, }: ResultsetTablePropsType): JSX.Element;
5
+ ActionsCell: ({ actions }: import("../table/types").ActionCellsPropsType) => JSX.Element;
6
+ };
4
7
  export default DxcResultsetTable;
@@ -12,11 +12,12 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
14
  var _variables = require("../common/variables");
15
- var _Table = _interopRequireDefault(require("../table/Table"));
16
15
  var _Paginator = _interopRequireDefault(require("../paginator/Paginator"));
16
+ var _Table = _interopRequireWildcard(require("../table/Table"));
17
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
18
18
  var _Icons = _interopRequireDefault(require("./Icons"));
19
19
  var _utils = require("../common/utils");
20
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
20
21
  var _templateObject, _templateObject2, _templateObject3;
21
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); }
22
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; }
@@ -57,7 +58,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
57
58
  itemsPerPageFunction = _ref.itemsPerPageFunction,
58
59
  margin = _ref.margin,
59
60
  _ref$tabIndex = _ref.tabIndex,
60
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
61
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
62
+ _ref$mode = _ref.mode,
63
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
61
64
  var colorsTheme = (0, _useTheme["default"])();
62
65
  var _useState = (0, _react.useState)(1),
63
66
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -98,7 +101,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
98
101
  theme: colorsTheme.table
99
102
  }, /*#__PURE__*/_react["default"].createElement(DxcResultsetTableContainer, {
100
103
  margin: margin
101
- }, /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
104
+ }, /*#__PURE__*/_react["default"].createElement(_Table["default"], {
105
+ mode: mode
106
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
102
107
  return /*#__PURE__*/_react["default"].createElement("th", {
103
108
  key: "tableHeader_".concat(index),
104
109
  "aria-sort": column.isSortable ? sortColumnIndex === index ? sortOrder : "none" : undefined
@@ -109,7 +114,8 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
109
114
  column.isSortable && changeSorting(index);
110
115
  },
111
116
  tabIndex: column.isSortable ? tabIndex : -1,
112
- isSortable: column.isSortable
117
+ isSortable: column.isSortable,
118
+ mode: mode
113
119
  }, /*#__PURE__*/_react["default"].createElement("span", null, column.displayValue), column.isSortable && /*#__PURE__*/_react["default"].createElement(SortIcon, null, sortColumnIndex === index ? sortOrder === "ascending" ? _Icons["default"].arrowUp : _Icons["default"].arrowDown : _Icons["default"].bothArrows)));
114
120
  }))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells, index) {
115
121
  return /*#__PURE__*/_react["default"].createElement("tr", {
@@ -146,9 +152,9 @@ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObjec
146
152
  }, function (props) {
147
153
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
148
154
  });
149
- var HeaderContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: 8px;\n width: fit-content;\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n cursor: ", ";\n\n ", "\n"])), function (props) {
155
+ var HeaderContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: ", ";\n width: fit-content;\n border: 1px solid transparent;\n border-radius: 2px;\n cursor: ", ";\n\n ", "\n"])), function (props) {
150
156
  return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
151
- }, function (props) {
157
+ }, _coreTokens["default"].spacing_8, function (props) {
152
158
  return props.isSortable ? "pointer" : "default";
153
159
  }, function (props) {
154
160
  return props.isSortable && "&:focus {\n outline: #0095ff solid 2px;\n }";
@@ -156,4 +162,5 @@ var HeaderContainer = _styledComponents["default"].span(_templateObject2 || (_te
156
162
  var SortIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 14px;\n width: 14px;\n color: ", ";\n\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
157
163
  return props.theme.sortIconColor;
158
164
  });
165
+ DxcResultsetTable.ActionsCell = _Table.DxcActionsCell;
159
166
  var _default = exports["default"] = DxcResultsetTable;
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import DxcResultsetTable from "./ResultsetTable";
3
- import DxcButton from "../button/Button";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
5
  import { userEvent, within } from "@storybook/testing-library";
7
6
  import styled from "styled-components";
7
+ import { HalstackProvider } from "../HalstackContext";
8
8
 
9
9
  export default {
10
10
  title: "Resultset Table",
@@ -13,7 +13,7 @@ export default {
13
13
 
14
14
  const deleteIcon = (
15
15
  <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
16
- <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
16
+ <path fill="currentColor" d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
17
17
  <path d="M0 0h24v24H0z" fill="none" />
18
18
  </svg>
19
19
  );
@@ -29,17 +29,77 @@ const rows = [
29
29
  [{ displayValue: "006" }, { displayValue: "Cris" }, { displayValue: "Paris" }],
30
30
  ];
31
31
 
32
+ const advancedTheme = {
33
+ table: {
34
+ actionIconColor: "#1B75BB",
35
+ hoverActionIconColor: "#1B75BB",
36
+ activeActionIconColor: "#1B75BB",
37
+ focusActionIconColor: "#1B75BB",
38
+ disabledActionIconColor: "#666666",
39
+ hoverButtonBackgroundColor: "#cccccc",
40
+ },
41
+ };
42
+
43
+ const actions = [
44
+ {
45
+ title: "icon",
46
+ onClick: (value?) => {
47
+ console.log(value);
48
+ },
49
+ options: [
50
+ {
51
+ value: "1",
52
+ label: "Amazon with a very long text",
53
+ },
54
+ {
55
+ value: "2",
56
+ label: "Ebay",
57
+ },
58
+ {
59
+ value: "3",
60
+ label: "Apple",
61
+ },
62
+ ],
63
+ },
64
+ {
65
+ icon: "https://www.freepnglogos.com/uploads/facebook-logo-design-1.png",
66
+ title: "icon",
67
+ onClick: () => {},
68
+ },
69
+ {
70
+ icon: deleteIcon,
71
+ title: "icon",
72
+ onClick: () => {},
73
+ disabled: true,
74
+ },
75
+ {
76
+ icon: deleteIcon,
77
+ title: "icon",
78
+ onClick: () => {},
79
+ },
80
+ ];
81
+
32
82
  const rowsIcon = [
33
83
  [
34
84
  { displayValue: "001", sortValue: "001" },
35
85
  { displayValue: "Peter" },
36
- { displayValue: <DxcButton icon={deleteIcon} /> },
86
+ {
87
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
88
+ },
89
+ ],
90
+ [
91
+ { displayValue: "002", sortValue: "002" },
92
+ { displayValue: "Louis" },
93
+ {
94
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
95
+ },
37
96
  ],
38
- [{ displayValue: "002", sortValue: "002" }, { displayValue: "Louis" }, { displayValue: "" }],
39
97
  [
40
98
  { displayValue: "003", sortValue: "003" },
41
99
  { displayValue: "Mark" },
42
- { displayValue: <DxcButton icon={deleteIcon} /> },
100
+ {
101
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
102
+ },
43
103
  ],
44
104
  ];
45
105
 
@@ -206,6 +266,25 @@ export const Chromatic = () => (
206
266
  <DxcResultsetTable columns={columnsSortable} rows={longValues} />
207
267
  </SmallContainer>
208
268
  </ExampleContainer>
269
+ <ExampleContainer>
270
+ <Title title="Reduced sortable table" theme="light" level={4} />
271
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable} mode="reduced" />
272
+ </ExampleContainer>
273
+ {/* PENDING SMALL ICON VERSION */}
274
+ <ExampleContainer>
275
+ <Title title="Reduced with items per page option" theme="light" level={4} />
276
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2} itemsPerPageOptions={[2, 3]} mode="reduced" />
277
+ </ExampleContainer>
278
+ <ExampleContainer>
279
+ <Title title="Reduced scroll resultset table" theme="light" level={4} />
280
+ <DxcResultsetTable columns={longColumns} rows={longRows} mode="reduced" />
281
+ </ExampleContainer>
282
+ <ExampleContainer>
283
+ <SmallContainer>
284
+ <Title title="Reduced small container and text overflow" theme="light" level={4} />
285
+ <DxcResultsetTable columns={columnsSortable} rows={longValues} mode="reduced" />
286
+ </SmallContainer>
287
+ </ExampleContainer>
209
288
  <Title title="Margins" theme="light" level={2} />
210
289
  <ExampleContainer>
211
290
  <Title title="Xxsmall" theme="light" level={4} />
@@ -298,3 +377,21 @@ LastPage.play = async ({ canvasElement }) => {
298
377
  const nextButton = canvas.getAllByRole("button")[3];
299
378
  await userEvent.click(nextButton);
300
379
  };
380
+
381
+ const ResultsetActionsCellDropdown = () => (
382
+ <ExampleContainer>
383
+ <Title title="Dropdown Action" theme="light" level={4} />
384
+ <DxcResultsetTable columns={columns} rows={rowsIcon} itemsPerPage={2} />
385
+ <Title title="Custom theme actions cell" theme="light" level={4} />
386
+ <HalstackProvider advancedTheme={advancedTheme}>
387
+ <DxcResultsetTable columns={columns} rows={rowsIcon} itemsPerPage={2} />
388
+ </HalstackProvider>
389
+ </ExampleContainer>
390
+ );
391
+
392
+ export const DropdownAction = ResultsetActionsCellDropdown.bind({});
393
+ DropdownAction.play = async ({ canvasElement }) => {
394
+ const canvas = within(canvasElement);
395
+ const dropdown = canvas.getAllByRole("button")[5];
396
+ await userEvent.click(dropdown);
397
+ };
@@ -39,6 +39,18 @@ global.ResizeObserver = /*#__PURE__*/function () {
39
39
  }]);
40
40
  return ResizeObserver;
41
41
  }();
42
+ var icon = /*#__PURE__*/_react["default"].createElement("svg", {
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ height: "24px",
45
+ viewBox: "0 0 24 24",
46
+ width: "24px",
47
+ fill: "currentColor"
48
+ }, /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M0 0h24v24H0V0zm0 0h24v24H0V0z",
50
+ fill: "none"
51
+ }), /*#__PURE__*/_react["default"].createElement("path", {
52
+ d: "M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"
53
+ }));
42
54
  var columns = [{
43
55
  displayValue: "Id",
44
56
  isSortable: false
@@ -302,4 +314,58 @@ describe("Resultset table component tests", function () {
302
314
  _react2.fireEvent.click(lastButton);
303
315
  expect(getAllByRole("row").length - 1).toEqual(1);
304
316
  });
317
+ test("Resultset table with ActionsCell", function () {
318
+ var onSelectOption = jest.fn();
319
+ var onClick = jest.fn();
320
+ var actions = [{
321
+ icon: icon,
322
+ title: "icon1",
323
+ onClick: onSelectOption,
324
+ options: [{
325
+ value: "1",
326
+ label: "Amazon"
327
+ }, {
328
+ value: "2",
329
+ label: "Ebay"
330
+ }, {
331
+ value: "3",
332
+ label: "Aliexpress"
333
+ }]
334
+ }, {
335
+ icon: icon,
336
+ title: "icon2",
337
+ onClick: onClick
338
+ }];
339
+ var actionRows = [[{
340
+ displayValue: "001",
341
+ sortValue: "001"
342
+ }, {
343
+ displayValue: "Peter",
344
+ sortValue: "Peter"
345
+ }, {
346
+ displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
347
+ actions: actions
348
+ }),
349
+ sortValue: "Actions"
350
+ }]];
351
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
352
+ columns: columns,
353
+ rows: actionRows,
354
+ itemsPerPage: 3
355
+ })),
356
+ getAllByRole = _render8.getAllByRole,
357
+ getByRole = _render8.getByRole,
358
+ getByText = _render8.getByText;
359
+ var dropdown = getAllByRole("button")[2];
360
+ (0, _react2.act)(function () {
361
+ _userEvent["default"].click(dropdown);
362
+ });
363
+ expect(getByRole("menu")).toBeTruthy();
364
+ var option = getByText("Aliexpress");
365
+ _userEvent["default"].click(option);
366
+ expect(onSelectOption).toHaveBeenCalledWith("3");
367
+ var action = getAllByRole("button")[1];
368
+ _userEvent["default"].click(action);
369
+ expect(onClick).toHaveBeenCalled();
370
+ });
305
371
  });
@@ -63,5 +63,11 @@ type Props = {
63
63
  * Value of the tabindex attribute applied to the sortable icon.
64
64
  */
65
65
  tabIndex?: number;
66
+ /**
67
+ * Determines the visual style and layout
68
+ * - "default": The default mode with big spacing
69
+ * - "reduced": A reduced mode with minimal spacing for dense tables
70
+ */
71
+ mode?: "default" | "reduced";
66
72
  };
67
73
  export default Props;
package/select/Option.js CHANGED
@@ -21,6 +21,11 @@ var Option = function Option(_ref) {
21
21
  isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
22
22
  isLastOption = _ref.isLastOption,
23
23
  isSelected = _ref.isSelected;
24
+ var handleOnMouseEnter = function handleOnMouseEnter(event) {
25
+ var label = event.currentTarget;
26
+ var optionElement = document.getElementById(id);
27
+ if (optionElement.title === "" && label.scrollWidth > label.clientWidth) optionElement.title = option.label;
28
+ };
24
29
  return /*#__PURE__*/_react["default"].createElement(OptionItem, {
25
30
  id: id,
26
31
  onClick: function onClick() {
@@ -49,7 +54,9 @@ var Option = function Option(_ref) {
49
54
  grouped: isGroupedOption,
50
55
  hasIcon: option.icon ? true : false,
51
56
  multiple: multiple
52
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
57
+ }, /*#__PURE__*/_react["default"].createElement(OptionLabel, {
58
+ onMouseEnter: handleOnMouseEnter
59
+ }, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
53
60
  };
54
61
  var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
55
62
  return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
package/select/Select.js CHANGED
@@ -20,16 +20,17 @@ var _utils = require("../common/utils");
20
20
  var _Icons = _interopRequireDefault(require("./Icons"));
21
21
  var _Listbox = _interopRequireDefault(require("./Listbox"));
22
22
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
23
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17; // @ts-nocheck
23
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
24
24
  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); }
25
25
  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; }
26
- var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
27
- return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
28
- return groupOption.options.length > 0;
29
- }) : false : true;
26
+ var isOptionGroup = function isOptionGroup(option) {
27
+ return "options" in option && option.options != null;
30
28
  };
31
- var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
32
- return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
29
+ var isArrayOfOptionGroups = function isArrayOfOptionGroups(options) {
30
+ return isOptionGroup(options[0]);
31
+ };
32
+ var groupsHaveOptions = function groupsHaveOptions(filteredOptions) {
33
+ return isArrayOfOptionGroups(filteredOptions) ? filteredOptions.some(function (groupOption) {
33
34
  var _groupOption$options;
34
35
  return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
35
36
  }) : true;
@@ -39,7 +40,7 @@ var canOpenOptions = function canOpenOptions(options, disabled) {
39
40
  };
40
41
  var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
41
42
  if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
42
- if (options[0].options) return options.map(function (optionGroup) {
43
+ if (isArrayOfOptionGroups(options)) return options.map(function (optionGroup) {
43
44
  var group = {
44
45
  label: optionGroup.label,
45
46
  options: optionGroup.options.filter(function (option) {
@@ -58,7 +59,7 @@ var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, s
58
59
  var _current$options;
59
60
  return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
60
61
  };
61
- if (searchable && (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
62
+ if (searchable && (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0) isArrayOfOptionGroups(filteredOptions) ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) isArrayOfOptionGroups(options) ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
62
63
  return optional && !multiple ? last + 1 : last;
63
64
  };
64
65
  var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
@@ -67,7 +68,7 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
67
68
  if (multiple) {
68
69
  if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
69
70
  options.forEach(function (option) {
70
- if (option.options) option.options.forEach(function (singleOption) {
71
+ if (isOptionGroup(option)) option.options.forEach(function (singleOption) {
71
72
  if (value.includes(singleOption.value) && Array.isArray(selectedOption)) selectedOption.push(singleOption);
72
73
  });else if (value.includes(option.value) && Array.isArray(selectedOption)) selectedOption.push(option);
73
74
  });
@@ -79,7 +80,7 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
79
80
  } else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
80
81
  var group_index = 0;
81
82
  options.some(function (option, index) {
82
- if (option.options) {
83
+ if (isOptionGroup(option)) {
83
84
  option.options.some(function (singleOption) {
84
85
  if (singleOption.value === value) {
85
86
  selectedOption = singleOption;
@@ -101,6 +102,12 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
101
102
  singleSelectionIndex: singleSelectionIndex
102
103
  };
103
104
  };
105
+ var getSelectedOptionLabel = function getSelectedOptionLabel(placeholder, selectedOption) {
106
+ var _selectedOption$label;
107
+ if (Array.isArray(selectedOption)) return selectedOption.length === 0 ? placeholder : selectedOption.map(function (option) {
108
+ return option.label;
109
+ }).join(", ");else return (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder;
110
+ };
104
111
  var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
105
112
  return !optional && (multiple ? value.length === 0 : value === "");
106
113
  };
@@ -125,7 +132,7 @@ var useWidth = function useWidth(target) {
125
132
  return width;
126
133
  };
127
134
  var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
128
- var _ref4, _selectedOption$label;
135
+ var _ref4;
129
136
  var label = _ref.label,
130
137
  _ref$name = _ref.name,
131
138
  name = _ref$name === void 0 ? "" : _ref$name,
@@ -175,6 +182,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
175
182
  changeIsOpen = _useState12[1];
176
183
  var selectRef = (0, _react.useRef)(null);
177
184
  var selectSearchInputRef = (0, _react.useRef)(null);
185
+ var selectedOptionLabelRef = (0, _react.useRef)(null);
178
186
  var width = useWidth(selectRef.current);
179
187
  var colorsTheme = (0, _useTheme["default"])();
180
188
  var translatedLabels = (0, _useTranslatedLabels["default"])();
@@ -229,7 +237,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
229
237
  if (!event.currentTarget.contains(event.relatedTarget)) searchable && selectSearchInputRef.current.focus();
230
238
  };
231
239
  var handleSelectOnBlur = function handleSelectOnBlur(event) {
232
- // focus leaves container (outside, not to child)
240
+ // focus leaves container (outside, not to a child)
233
241
  if (!event.currentTarget.contains(event.relatedTarget)) {
234
242
  closeOptions();
235
243
  setSearchValue("");
@@ -271,7 +279,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
271
279
  var accLength = optional && !multiple ? 1 : 0;
272
280
  if (searchable) {
273
281
  if (filteredOptions.length > 0) {
274
- if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
282
+ if (optional && !multiple && visualFocusIndex === 0 && groupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else isArrayOfOptionGroups(filteredOptions) ? groupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
275
283
  var groupLength = accLength + groupOption.options.length;
276
284
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
277
285
  accLength = groupLength;
@@ -279,7 +287,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
279
287
  }) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
280
288
  }
281
289
  } else {
282
- if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else options[0].options ? options.some(function (groupOption) {
290
+ if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else isArrayOfOptionGroups(options) ? options.some(function (groupOption) {
283
291
  var groupLength = accLength + groupOption.options.length;
284
292
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
285
293
  accLength = groupLength;
@@ -316,6 +324,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
316
324
  !multiple && closeOptions();
317
325
  setSearchValue("");
318
326
  }, [handleSelectChangeValue, closeOptions, multiple]);
327
+ (0, _react.useEffect)(function () {
328
+ if ((selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current) != null) {
329
+ if ((selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current.scrollWidth) > (selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current.clientWidth)) selectedOptionLabelRef.current.title = getSelectedOptionLabel(placeholder, selectedOption);else selectedOptionLabelRef.current.title = "";
330
+ }
331
+ }, [placeholder, selectedOption]);
319
332
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
320
333
  theme: colorsTheme.select
321
334
  }, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
@@ -382,15 +395,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
382
395
  autoComplete: "nope",
383
396
  autoCorrect: "nope",
384
397
  size: 1
385
- }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
386
- disabled: disabled,
387
- atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
388
- }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, Array.isArray(selectedOption) && selectedOption.map(function (option) {
389
- return option.label;
390
- }).join(", ")), Array.isArray(selectedOption) && selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
398
+ }), (!searchable || searchValue === "") && /*#__PURE__*/_react["default"].createElement(SelectedOption, {
391
399
  disabled: disabled,
392
- atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
393
- }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
400
+ atBackground: (multiple ? (value !== null && value !== void 0 ? value : innerValue).length === 0 : !(value !== null && value !== void 0 ? value : innerValue)) || searchable && isOpen
401
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, {
402
+ ref: selectedOptionLabelRef
403
+ }, getSelectedOptionLabel(placeholder, selectedOption)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
394
404
  onMouseDown: function onMouseDown(event) {
395
405
  // Avoid input to lose focus
396
406
  event.preventDefault();
package/select/types.d.ts CHANGED
@@ -7,7 +7,7 @@ type Margin = {
7
7
  right?: Space;
8
8
  };
9
9
  type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
- type OptionGroup = {
10
+ export type OptionGroup = {
11
11
  /**
12
12
  * Label of the group to be shown in the select's listbox.
13
13
  */
@@ -17,7 +17,7 @@ type OptionGroup = {
17
17
  */
18
18
  options: Option[];
19
19
  };
20
- type Option = {
20
+ export type Option = {
21
21
  /**
22
22
  * Element used as the icon that will be placed before the option label.
23
23
  * It can be a url of an image or an inline SVG. If the url option
@@ -13,11 +13,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
15
  var _variables = require("../common/variables");
16
- var _SidenavContext = require("../layout/SidenavContext");
16
+ var _SidenavContext = require("./SidenavContext");
17
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
18
18
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
19
19
  var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
20
20
  var _Icons = _interopRequireDefault(require("./Icons"));
21
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
21
22
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
22
23
  var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
23
24
  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); }
@@ -138,7 +139,7 @@ var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templa
138
139
  }, function (props) {
139
140
  return props.theme.titleFontTextTransform;
140
141
  });
141
- var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n\n &:last-child {\n display: none;\n }\n"])));
142
+ var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: ", ";\n\n &:last-child {\n display: none;\n }\n"])), _coreTokens["default"].color_grey_400);
142
143
  var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
143
144
  var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
144
145
  return props.theme.groupTitleFontFamily;
package/slider/Slider.js CHANGED
@@ -19,8 +19,8 @@ var _uuid = require("uuid");
19
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
20
20
  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); }
21
21
  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; }
22
- var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
23
22
  var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
23
+ var _navigator;
24
24
  var _ref$label = _ref.label,
25
25
  label = _ref$label === void 0 ? "" : _ref$label,
26
26
  _ref$name = _ref.name,
@@ -61,6 +61,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
61
61
  dragging = _useState6[0],
62
62
  setDragging = _useState6[1];
63
63
  var colorsTheme = (0, _useTheme["default"])();
64
+ var isFirefox = ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.userAgent.indexOf("Firefox")) !== -1;
64
65
  var minLabel = (0, _react.useMemo)(function () {
65
66
  return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
66
67
  }, [labelFormatCallback, minValue]);
@@ -68,10 +69,10 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
68
69
  return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
69
70
  }, [labelFormatCallback, maxValue]);
70
71
  var tickMarks = (0, _react.useMemo)(function () {
71
- var ticks = [];
72
72
  var numberOfMarks = Math.floor(maxValue / step - minValue / step);
73
- var index = 0;
74
73
  var range = maxValue - minValue;
74
+ var ticks = [];
75
+ var index = 0;
75
76
  if (marks) {
76
77
  while (index <= numberOfMarks) {
77
78
  ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
@@ -82,9 +83,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
82
83
  index++;
83
84
  }
84
85
  return ticks;
85
- } else {
86
- return null;
87
- }
86
+ } else return null;
88
87
  }, [minValue, maxValue, step, value, innerValue]);
89
88
  var handleSliderChange = function handleSliderChange(event) {
90
89
  var valueToCheck = event.target.value;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import StatusLightPropsType from "./types";
3
+ declare const DxcStatusLight: ({ mode, label, size }: StatusLightPropsType) => JSX.Element;
4
+ export default DxcStatusLight;