@dxc-technology/halstack-react 0.0.0-b4fde6b → 0.0.0-b5ec444

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 (257) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +51 -138
  4. package/HalstackContext.js +10 -35
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +24 -76
  8. package/accordion/Accordion.stories.tsx +1 -113
  9. package/accordion/Accordion.test.js +18 -33
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.js +15 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  13. package/accordion-group/AccordionGroup.test.js +43 -71
  14. package/accordion-group/AccordionGroupAccordion.js +9 -21
  15. package/accordion-group/types.d.ts +6 -18
  16. package/action-icon/ActionIcon.d.ts +4 -0
  17. package/action-icon/ActionIcon.js +47 -0
  18. package/action-icon/ActionIcon.stories.tsx +41 -0
  19. package/action-icon/ActionIcon.test.js +64 -0
  20. package/action-icon/types.d.ts +26 -0
  21. package/alert/Alert.js +15 -50
  22. package/alert/Alert.test.js +28 -45
  23. package/alert/types.d.ts +5 -5
  24. package/badge/Badge.d.ts +1 -1
  25. package/badge/Badge.js +141 -43
  26. package/badge/Badge.stories.tsx +210 -0
  27. package/badge/Badge.test.js +30 -0
  28. package/badge/types.d.ts +52 -3
  29. package/bleed/Bleed.js +13 -21
  30. package/bleed/types.d.ts +2 -2
  31. package/box/Box.js +11 -33
  32. package/box/Box.test.js +1 -6
  33. package/box/types.d.ts +3 -3
  34. package/bulleted-list/BulletedList.js +18 -54
  35. package/bulleted-list/BulletedList.stories.tsx +1 -92
  36. package/bulleted-list/types.d.ts +5 -5
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +66 -99
  39. package/button/Button.stories.tsx +6 -87
  40. package/button/Button.test.js +19 -16
  41. package/button/types.d.ts +8 -4
  42. package/card/Card.d.ts +1 -1
  43. package/card/Card.js +39 -79
  44. package/card/Card.stories.tsx +0 -29
  45. package/card/Card.test.js +10 -21
  46. package/card/types.d.ts +6 -12
  47. package/checkbox/Checkbox.js +85 -120
  48. package/checkbox/Checkbox.stories.tsx +16 -54
  49. package/checkbox/Checkbox.test.js +107 -63
  50. package/checkbox/types.d.ts +8 -4
  51. package/chip/Chip.js +12 -31
  52. package/chip/Chip.stories.tsx +1 -1
  53. package/chip/Chip.test.js +15 -28
  54. package/chip/types.d.ts +4 -4
  55. package/common/coreTokens.d.ts +105 -14
  56. package/common/coreTokens.js +41 -24
  57. package/common/utils.js +2 -8
  58. package/common/variables.d.ts +51 -138
  59. package/common/variables.js +61 -155
  60. package/container/Container.d.ts +4 -0
  61. package/container/Container.js +194 -0
  62. package/container/Container.stories.tsx +214 -0
  63. package/container/types.d.ts +74 -0
  64. package/date-input/Calendar.js +15 -59
  65. package/date-input/DateInput.js +50 -96
  66. package/date-input/DateInput.stories.tsx +11 -30
  67. package/date-input/DateInput.test.js +674 -701
  68. package/date-input/DatePicker.js +11 -42
  69. package/date-input/Icons.d.ts +6 -6
  70. package/date-input/Icons.js +6 -23
  71. package/date-input/YearPicker.js +8 -34
  72. package/date-input/types.d.ts +27 -21
  73. package/dialog/Dialog.js +13 -40
  74. package/dialog/Dialog.stories.tsx +170 -0
  75. package/dialog/Dialog.test.js +125 -187
  76. package/dialog/types.d.ts +18 -13
  77. package/dropdown/Dropdown.js +48 -100
  78. package/dropdown/Dropdown.test.js +391 -378
  79. package/dropdown/DropdownMenu.js +8 -19
  80. package/dropdown/DropdownMenuItem.js +5 -17
  81. package/dropdown/types.d.ts +17 -19
  82. package/file-input/FileInput.js +180 -248
  83. package/file-input/FileInput.stories.tsx +1 -1
  84. package/file-input/FileInput.test.js +356 -354
  85. package/file-input/FileItem.js +14 -41
  86. package/file-input/types.d.ts +10 -10
  87. package/flex/Flex.js +25 -39
  88. package/flex/types.d.ts +6 -6
  89. package/footer/Footer.d.ts +1 -1
  90. package/footer/Footer.js +70 -102
  91. package/footer/Footer.stories.tsx +37 -6
  92. package/footer/Footer.test.js +21 -33
  93. package/footer/Icons.d.ts +3 -2
  94. package/footer/Icons.js +66 -7
  95. package/footer/types.d.ts +25 -21
  96. package/grid/Grid.d.ts +1 -1
  97. package/grid/Grid.js +2 -17
  98. package/grid/Grid.stories.tsx +38 -38
  99. package/grid/types.d.ts +10 -10
  100. package/header/Header.d.ts +2 -2
  101. package/header/Header.js +31 -114
  102. package/header/Header.stories.tsx +7 -71
  103. package/header/Header.test.js +12 -25
  104. package/header/Icons.d.ts +2 -2
  105. package/header/Icons.js +2 -7
  106. package/header/types.d.ts +5 -20
  107. package/heading/Heading.js +9 -31
  108. package/heading/Heading.test.js +70 -87
  109. package/heading/types.d.ts +7 -7
  110. package/image/Image.d.ts +4 -0
  111. package/image/Image.js +70 -0
  112. package/image/Image.stories.tsx +127 -0
  113. package/image/types.d.ts +72 -0
  114. package/image/types.js +5 -0
  115. package/inset/Inset.js +13 -21
  116. package/inset/types.d.ts +2 -2
  117. package/layout/ApplicationLayout.d.ts +3 -3
  118. package/layout/ApplicationLayout.js +28 -65
  119. package/layout/ApplicationLayout.stories.tsx +1 -1
  120. package/layout/Icons.d.ts +8 -5
  121. package/layout/Icons.js +51 -59
  122. package/layout/SidenavContext.d.ts +1 -1
  123. package/layout/SidenavContext.js +3 -9
  124. package/layout/types.d.ts +3 -3
  125. package/link/Link.js +21 -42
  126. package/link/Link.test.js +23 -41
  127. package/link/types.d.ts +14 -14
  128. package/main.d.ts +6 -4
  129. package/main.js +25 -59
  130. package/nav-tabs/NavTabs.js +17 -46
  131. package/nav-tabs/NavTabs.stories.tsx +7 -5
  132. package/nav-tabs/NavTabs.test.js +38 -44
  133. package/nav-tabs/Tab.js +22 -50
  134. package/nav-tabs/types.d.ts +9 -9
  135. package/number-input/NumberInput.d.ts +7 -0
  136. package/number-input/NumberInput.js +47 -37
  137. package/number-input/NumberInput.stories.tsx +42 -26
  138. package/number-input/NumberInput.test.js +859 -412
  139. package/number-input/types.d.ts +11 -5
  140. package/package.json +30 -28
  141. package/paginator/Icons.d.ts +5 -5
  142. package/paginator/Icons.js +5 -19
  143. package/paginator/Paginator.js +15 -43
  144. package/paginator/Paginator.test.js +224 -207
  145. package/paginator/types.d.ts +3 -3
  146. package/paragraph/Paragraph.js +3 -19
  147. package/paragraph/Paragraph.stories.tsx +0 -17
  148. package/password-input/Icons.d.ts +6 -0
  149. package/password-input/Icons.js +35 -0
  150. package/password-input/PasswordInput.js +57 -126
  151. package/password-input/PasswordInput.stories.tsx +1 -33
  152. package/password-input/PasswordInput.test.js +157 -140
  153. package/password-input/types.d.ts +8 -7
  154. package/progress-bar/ProgressBar.js +21 -53
  155. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  156. package/progress-bar/ProgressBar.test.js +35 -52
  157. package/progress-bar/types.d.ts +3 -3
  158. package/quick-nav/QuickNav.js +4 -27
  159. package/quick-nav/QuickNav.stories.tsx +1 -1
  160. package/quick-nav/types.d.ts +10 -10
  161. package/radio-group/Radio.d.ts +1 -1
  162. package/radio-group/Radio.js +22 -54
  163. package/radio-group/RadioGroup.js +37 -83
  164. package/radio-group/RadioGroup.stories.tsx +10 -10
  165. package/radio-group/RadioGroup.test.js +504 -470
  166. package/radio-group/types.d.ts +8 -8
  167. package/resultset-table/Icons.d.ts +7 -0
  168. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  169. package/resultset-table/ResultsetTable.d.ts +7 -0
  170. package/{resultsetTable → resultset-table}/ResultsetTable.js +36 -64
  171. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  172. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +138 -92
  173. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  174. package/resultset-table/types.js +5 -0
  175. package/select/Icons.d.ts +7 -7
  176. package/select/Icons.js +1 -5
  177. package/select/Listbox.js +13 -39
  178. package/select/Option.js +17 -27
  179. package/select/Select.js +87 -163
  180. package/select/Select.stories.tsx +3 -3
  181. package/select/Select.test.js +1946 -1804
  182. package/select/types.d.ts +14 -15
  183. package/sidenav/Icons.d.ts +4 -4
  184. package/sidenav/Icons.js +1 -5
  185. package/sidenav/Sidenav.js +26 -68
  186. package/sidenav/Sidenav.test.js +3 -10
  187. package/sidenav/types.d.ts +18 -18
  188. package/slider/Slider.js +68 -125
  189. package/slider/Slider.test.js +107 -103
  190. package/slider/types.d.ts +4 -4
  191. package/spinner/Spinner.js +16 -54
  192. package/spinner/Spinner.test.js +25 -34
  193. package/spinner/types.d.ts +3 -3
  194. package/status-light/StatusLight.d.ts +4 -0
  195. package/status-light/StatusLight.js +51 -0
  196. package/status-light/StatusLight.stories.tsx +74 -0
  197. package/status-light/StatusLight.test.js +25 -0
  198. package/status-light/types.d.ts +17 -0
  199. package/status-light/types.js +5 -0
  200. package/switch/Switch.js +49 -97
  201. package/switch/Switch.stories.tsx +0 -34
  202. package/switch/Switch.test.js +51 -96
  203. package/switch/types.d.ts +4 -4
  204. package/table/ActionsCell.d.ts +4 -0
  205. package/table/ActionsCell.js +68 -0
  206. package/table/DropdownTheme.js +62 -0
  207. package/table/Table.d.ts +4 -1
  208. package/table/Table.js +24 -30
  209. package/table/{Table.stories.jsx → Table.stories.tsx} +304 -2
  210. package/table/Table.test.js +93 -6
  211. package/table/types.d.ts +45 -6
  212. package/tabs/Tab.js +17 -33
  213. package/tabs/Tabs.js +52 -129
  214. package/tabs/Tabs.stories.tsx +1 -1
  215. package/tabs/Tabs.test.js +62 -118
  216. package/tabs/types.d.ts +19 -19
  217. package/tag/Tag.js +21 -51
  218. package/tag/Tag.test.js +19 -30
  219. package/tag/types.d.ts +7 -7
  220. package/text-input/Icons.d.ts +5 -5
  221. package/text-input/Icons.js +1 -5
  222. package/text-input/Suggestion.js +9 -26
  223. package/text-input/Suggestions.d.ts +1 -1
  224. package/text-input/Suggestions.js +15 -65
  225. package/text-input/TextInput.js +218 -326
  226. package/text-input/TextInput.stories.tsx +48 -152
  227. package/text-input/TextInput.test.js +1227 -1194
  228. package/text-input/types.d.ts +25 -17
  229. package/textarea/Textarea.js +67 -109
  230. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  231. package/textarea/Textarea.test.js +150 -179
  232. package/textarea/types.d.ts +9 -5
  233. package/toggle-group/ToggleGroup.js +90 -107
  234. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  235. package/toggle-group/ToggleGroup.test.js +68 -87
  236. package/toggle-group/types.d.ts +26 -17
  237. package/typography/Typography.js +4 -13
  238. package/typography/types.d.ts +1 -1
  239. package/useTheme.d.ts +48 -135
  240. package/useTheme.js +1 -8
  241. package/useTranslatedLabels.js +1 -7
  242. package/utils/BaseTypography.d.ts +2 -2
  243. package/utils/BaseTypography.js +16 -30
  244. package/utils/FocusLock.js +25 -39
  245. package/wizard/Wizard.js +14 -49
  246. package/wizard/Wizard.test.js +53 -80
  247. package/wizard/types.d.ts +6 -6
  248. package/card/ice-cream.jpg +0 -0
  249. package/number-input/NumberInputContext.d.ts +0 -4
  250. package/number-input/NumberInputContext.js +0 -19
  251. package/number-input/numberInputContextTypes.d.ts +0 -19
  252. package/resultsetTable/Icons.d.ts +0 -7
  253. package/resultsetTable/ResultsetTable.d.ts +0 -4
  254. package/slider/Slider.stories.tsx +0 -240
  255. /package/{resultsetTable → action-icon}/types.js +0 -0
  256. /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
  257. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -1,4 +1,4 @@
1
- export declare type Option = {
1
+ export type Option = {
2
2
  /**
3
3
  * Label of the option placed next to the radio input.
4
4
  */
@@ -14,11 +14,11 @@ export declare type Option = {
14
14
  */
15
15
  disabled?: boolean;
16
16
  };
17
- declare type RadioGroupProps = {
17
+ type RadioGroupProps = {
18
18
  /**
19
19
  * Text to be placed above the radio group.
20
20
  */
21
- label: string;
21
+ label?: string;
22
22
  /**
23
23
  * Name attribute of the input element. This attribute will allow users
24
24
  * to find the component's value during the submit event.
@@ -49,9 +49,9 @@ declare type RadioGroupProps = {
49
49
  */
50
50
  optionalItemLabel?: string;
51
51
  /**
52
- * If true, the component will be marked as readonly.
52
+ * If true, the component will not be mutable, meaning the user can not edit the control.
53
53
  */
54
- readonly?: boolean;
54
+ readOnly?: boolean;
55
55
  /**
56
56
  * Sets the orientation of the options within the radio group.
57
57
  */
@@ -97,18 +97,18 @@ declare type RadioGroupProps = {
97
97
  /**
98
98
  * Reference to the component.
99
99
  */
100
- export declare type RefType = HTMLDivElement;
100
+ export type RefType = HTMLDivElement;
101
101
  /**
102
102
  * Single radio prop types.
103
103
  */
104
- export declare type RadioProps = {
104
+ export type RadioProps = {
105
105
  label: string;
106
106
  checked: boolean;
107
107
  onClick: () => void;
108
108
  error?: string;
109
109
  disabled: boolean;
110
110
  focused: boolean;
111
- readonly: boolean;
111
+ readOnly: boolean;
112
112
  tabIndex: number;
113
113
  };
114
114
  export default RadioGroupProps;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ declare const icons: {
3
+ arrowUp: React.JSX.Element;
4
+ arrowDown: React.JSX.Element;
5
+ bothArrows: React.JSX.Element;
6
+ };
7
+ export default icons;
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var icons = {
13
10
  arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
14
11
  xmlns: "http://www.w3.org/2000/svg",
@@ -47,5 +44,4 @@ var icons = {
47
44
  d: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
48
45
  }))
49
46
  };
50
- var _default = icons;
51
- exports["default"] = _default;
47
+ var _default = exports["default"] = icons;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import ResultsetTablePropsType from "./types";
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
+ };
7
+ export default DxcResultsetTable;
@@ -1,52 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _variables = require("../common/variables");
23
-
24
- var _Table = _interopRequireDefault(require("../table/Table"));
25
-
15
+ var _ActionsCell = _interopRequireDefault(require("../table/ActionsCell"));
26
16
  var _Paginator = _interopRequireDefault(require("../paginator/Paginator"));
27
-
17
+ var _Table = _interopRequireDefault(require("../table/Table"));
28
18
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
-
30
19
  var _Icons = _interopRequireDefault(require("./Icons"));
31
-
32
20
  var _utils = require("../common/utils");
33
-
21
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
34
22
  var _templateObject, _templateObject2, _templateObject3;
35
-
36
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
-
38
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
-
23
+ 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); }
24
+ 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; }
40
25
  var normalizeSortValue = function normalizeSortValue(sortValue) {
41
26
  return typeof sortValue === "string" ? sortValue.toUpperCase() : sortValue;
42
27
  };
43
-
44
28
  var sortArray = function sortArray(index, order, resultset) {
45
29
  return resultset.slice().sort(function (element1, element2) {
46
30
  var sortValueA = normalizeSortValue(element1[index].sortValue || element1[index].displayValue);
47
31
  var sortValueB = normalizeSortValue(element2[index].sortValue || element2[index].displayValue);
48
32
  var comparison = 0;
49
-
50
33
  if ((0, _typeof2["default"])(sortValueA) === "object") {
51
34
  comparison = -1;
52
35
  } else if ((0, _typeof2["default"])(sortValueB) === "object") {
@@ -56,48 +39,42 @@ var sortArray = function sortArray(index, order, resultset) {
56
39
  } else if (sortValueA < sortValueB) {
57
40
  comparison = -1;
58
41
  }
59
-
60
42
  return order === "descending" ? comparison * -1 : comparison;
61
43
  });
62
44
  };
63
-
64
45
  var getMinItemsPerPageIndex = function getMinItemsPerPageIndex(currentPageInternal, itemsPerPage, page) {
65
46
  return currentPageInternal === 1 ? 0 : itemsPerPage * (page - 1);
66
47
  };
67
-
68
48
  var getMaxItemsPerPageIndex = function getMaxItemsPerPageIndex(minItemsPerPageIndex, itemsPerPage, resultset, page) {
69
49
  return minItemsPerPageIndex + itemsPerPage > resultset.length ? resultset.length : itemsPerPage * page - 1;
70
50
  };
71
-
72
51
  var DxcResultsetTable = function DxcResultsetTable(_ref) {
73
52
  var columns = _ref.columns,
74
- rows = _ref.rows,
75
- _ref$showGoToPage = _ref.showGoToPage,
76
- showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
77
- _ref$itemsPerPage = _ref.itemsPerPage,
78
- itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
79
- itemsPerPageOptions = _ref.itemsPerPageOptions,
80
- itemsPerPageFunction = _ref.itemsPerPageFunction,
81
- margin = _ref.margin,
82
- _ref$tabIndex = _ref.tabIndex,
83
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
53
+ rows = _ref.rows,
54
+ _ref$showGoToPage = _ref.showGoToPage,
55
+ showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
56
+ _ref$itemsPerPage = _ref.itemsPerPage,
57
+ itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
58
+ itemsPerPageOptions = _ref.itemsPerPageOptions,
59
+ itemsPerPageFunction = _ref.itemsPerPageFunction,
60
+ margin = _ref.margin,
61
+ _ref$tabIndex = _ref.tabIndex,
62
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
63
+ _ref$mode = _ref.mode,
64
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
84
65
  var colorsTheme = (0, _useTheme["default"])();
85
-
86
66
  var _useState = (0, _react.useState)(1),
87
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
88
- page = _useState2[0],
89
- changePage = _useState2[1];
90
-
67
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
68
+ page = _useState2[0],
69
+ changePage = _useState2[1];
91
70
  var _useState3 = (0, _react.useState)(-1),
92
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
93
- sortColumnIndex = _useState4[0],
94
- changeSortColumnIndex = _useState4[1];
95
-
71
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
72
+ sortColumnIndex = _useState4[0],
73
+ changeSortColumnIndex = _useState4[1];
96
74
  var _useState5 = (0, _react.useState)("ascending"),
97
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
98
- sortOrder = _useState6[0],
99
- changeSortOrder = _useState6[1];
100
-
75
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
76
+ sortOrder = _useState6[0],
77
+ changeSortOrder = _useState6[1];
101
78
  var minItemsPerPageIndex = (0, _react.useMemo)(function () {
102
79
  return getMinItemsPerPageIndex(page, itemsPerPage, page);
103
80
  }, [itemsPerPage, page]);
@@ -110,17 +87,14 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
110
87
  var filteredResultset = (0, _react.useMemo)(function () {
111
88
  return sortedResultset && sortedResultset.slice(minItemsPerPageIndex, maxItemsPerPageIndex + 1);
112
89
  }, [sortedResultset, minItemsPerPageIndex, maxItemsPerPageIndex]);
113
-
114
90
  var goToPage = function goToPage(newPage) {
115
91
  changePage(newPage);
116
92
  };
117
-
118
93
  var changeSorting = function changeSorting(columnIndex) {
119
94
  changePage(1);
120
95
  changeSortColumnIndex(columnIndex);
121
96
  changeSortOrder(sortColumnIndex === -1 || sortColumnIndex !== columnIndex ? "ascending" : sortOrder === "ascending" ? "descending" : "ascending");
122
97
  };
123
-
124
98
  (0, _react.useEffect)(function () {
125
99
  rows.length > 0 ? changePage(1) : changePage(0);
126
100
  }, [rows]);
@@ -128,7 +102,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
128
102
  theme: colorsTheme.table
129
103
  }, /*#__PURE__*/_react["default"].createElement(DxcResultsetTableContainer, {
130
104
  margin: margin
131
- }, /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
105
+ }, /*#__PURE__*/_react["default"].createElement(_Table["default"], {
106
+ mode: mode
107
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
132
108
  return /*#__PURE__*/_react["default"].createElement("th", {
133
109
  key: "tableHeader_".concat(index),
134
110
  "aria-sort": column.isSortable ? sortColumnIndex === index ? sortOrder : "none" : undefined
@@ -139,11 +115,12 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
139
115
  column.isSortable && changeSorting(index);
140
116
  },
141
117
  tabIndex: column.isSortable ? tabIndex : -1,
142
- isSortable: column.isSortable
118
+ isSortable: column.isSortable,
119
+ mode: mode
143
120
  }, /*#__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)));
144
121
  }))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells, index) {
145
122
  return /*#__PURE__*/_react["default"].createElement("tr", {
146
- key: "resultSetTableCell_".concat(index)
123
+ key: "resultSetTableCell_".concat(page, "_").concat(index)
147
124
  }, cells.map(function (cellContent, index) {
148
125
  return /*#__PURE__*/_react["default"].createElement("td", {
149
126
  key: "resultSetTableCellContent_".concat(index)
@@ -160,11 +137,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
160
137
  tabIndex: tabIndex
161
138
  })));
162
139
  };
163
-
164
140
  var calculateWidth = function calculateWidth(margin) {
165
141
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
166
142
  };
167
-
168
143
  var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
169
144
  return calculateWidth(props.margin);
170
145
  }, function (props) {
@@ -178,18 +153,15 @@ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObjec
178
153
  }, function (props) {
179
154
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
180
155
  });
181
-
182
- 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) {
156
+ 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) {
183
157
  return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
184
- }, function (props) {
158
+ }, _coreTokens["default"].spacing_8, function (props) {
185
159
  return props.isSortable ? "pointer" : "default";
186
160
  }, function (props) {
187
161
  return props.isSortable && "&:focus {\n outline: #0095ff solid 2px;\n }";
188
162
  });
189
-
190
163
  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) {
191
164
  return props.theme.sortIconColor;
192
165
  });
193
-
194
- var _default = DxcResultsetTable;
195
- exports["default"] = _default;
166
+ DxcResultsetTable.ActionsCell = _ActionsCell["default"];
167
+ 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
+ };