@dxc-technology/halstack-react 0.0.0-5f8cea7 → 0.0.0-5fab8cb

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 (288) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1215 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +36 -99
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +142 -42
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1367 -0
  67. package/common/variables.js +878 -1147
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/date-input/Calendar.d.ts +4 -0
  73. package/date-input/Calendar.js +214 -0
  74. package/date-input/DateInput.js +150 -299
  75. package/date-input/DateInput.stories.tsx +203 -56
  76. package/date-input/DateInput.test.js +694 -429
  77. package/date-input/DatePicker.d.ts +4 -0
  78. package/date-input/DatePicker.js +115 -0
  79. package/date-input/Icons.d.ts +6 -0
  80. package/date-input/Icons.js +58 -0
  81. package/date-input/YearPicker.d.ts +4 -0
  82. package/date-input/YearPicker.js +100 -0
  83. package/date-input/types.d.ts +72 -15
  84. package/dialog/Dialog.d.ts +1 -1
  85. package/dialog/Dialog.js +61 -119
  86. package/dialog/Dialog.stories.tsx +310 -212
  87. package/dialog/Dialog.test.js +269 -32
  88. package/dialog/types.d.ts +18 -26
  89. package/dropdown/Dropdown.js +44 -101
  90. package/dropdown/Dropdown.stories.tsx +210 -84
  91. package/dropdown/Dropdown.test.js +393 -379
  92. package/dropdown/DropdownMenu.js +20 -37
  93. package/dropdown/DropdownMenuItem.js +9 -34
  94. package/dropdown/types.d.ts +17 -19
  95. package/file-input/FileInput.js +184 -256
  96. package/file-input/FileInput.stories.tsx +86 -3
  97. package/file-input/FileInput.test.js +356 -395
  98. package/file-input/FileItem.js +15 -41
  99. package/file-input/types.d.ts +10 -10
  100. package/flex/Flex.js +27 -39
  101. package/flex/Flex.stories.tsx +35 -26
  102. package/flex/types.d.ts +74 -9
  103. package/footer/Footer.d.ts +1 -1
  104. package/footer/Footer.js +70 -117
  105. package/footer/Footer.stories.tsx +55 -21
  106. package/footer/Footer.test.js +33 -57
  107. package/footer/Icons.d.ts +3 -2
  108. package/footer/Icons.js +66 -7
  109. package/footer/types.d.ts +25 -27
  110. package/grid/Grid.d.ts +7 -0
  111. package/grid/Grid.js +76 -0
  112. package/grid/Grid.stories.tsx +219 -0
  113. package/grid/types.d.ts +115 -0
  114. package/header/Header.d.ts +4 -3
  115. package/header/Header.js +48 -133
  116. package/header/Header.stories.tsx +115 -36
  117. package/header/Header.test.js +13 -26
  118. package/header/Icons.d.ts +2 -2
  119. package/header/Icons.js +2 -7
  120. package/header/types.d.ts +5 -20
  121. package/heading/Heading.js +10 -32
  122. package/heading/Heading.test.js +71 -88
  123. package/heading/types.d.ts +7 -7
  124. package/image/Image.d.ts +4 -0
  125. package/image/Image.js +70 -0
  126. package/image/Image.stories.tsx +127 -0
  127. package/image/types.d.ts +72 -0
  128. package/image/types.js +5 -0
  129. package/inset/Inset.js +13 -21
  130. package/inset/Inset.stories.tsx +2 -1
  131. package/inset/types.d.ts +2 -2
  132. package/layout/ApplicationLayout.d.ts +5 -5
  133. package/layout/ApplicationLayout.js +29 -66
  134. package/layout/ApplicationLayout.stories.tsx +1 -1
  135. package/layout/Icons.d.ts +8 -5
  136. package/layout/Icons.js +51 -59
  137. package/layout/SidenavContext.d.ts +1 -1
  138. package/layout/SidenavContext.js +3 -9
  139. package/layout/types.d.ts +5 -6
  140. package/link/Link.js +24 -45
  141. package/link/Link.stories.tsx +60 -0
  142. package/link/Link.test.js +24 -44
  143. package/link/types.d.ts +14 -14
  144. package/main.d.ts +8 -5
  145. package/main.js +33 -59
  146. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  147. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  148. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  149. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  150. package/nav-tabs/Tab.js +118 -0
  151. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  152. package/nav-tabs/types.js +5 -0
  153. package/number-input/NumberInput.d.ts +7 -0
  154. package/number-input/NumberInput.js +26 -35
  155. package/number-input/NumberInput.stories.tsx +42 -26
  156. package/number-input/NumberInput.test.js +701 -413
  157. package/number-input/types.d.ts +11 -5
  158. package/package.json +31 -36
  159. package/paginator/Icons.d.ts +5 -0
  160. package/paginator/Icons.js +21 -47
  161. package/paginator/Paginator.js +22 -58
  162. package/paginator/Paginator.stories.tsx +24 -0
  163. package/paginator/Paginator.test.js +252 -225
  164. package/paginator/types.d.ts +3 -3
  165. package/paragraph/Paragraph.d.ts +3 -4
  166. package/paragraph/Paragraph.js +6 -22
  167. package/paragraph/Paragraph.stories.tsx +0 -17
  168. package/password-input/Icons.d.ts +6 -0
  169. package/password-input/Icons.js +35 -0
  170. package/password-input/PasswordInput.js +57 -126
  171. package/password-input/PasswordInput.stories.tsx +1 -33
  172. package/password-input/PasswordInput.test.js +158 -141
  173. package/password-input/types.d.ts +8 -7
  174. package/progress-bar/ProgressBar.d.ts +2 -2
  175. package/progress-bar/ProgressBar.js +23 -55
  176. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  177. package/progress-bar/ProgressBar.test.js +36 -53
  178. package/progress-bar/types.d.ts +4 -3
  179. package/quick-nav/QuickNav.js +4 -27
  180. package/quick-nav/QuickNav.stories.tsx +15 -1
  181. package/quick-nav/types.d.ts +10 -10
  182. package/radio-group/Radio.d.ts +1 -1
  183. package/radio-group/Radio.js +31 -63
  184. package/radio-group/RadioGroup.js +45 -93
  185. package/radio-group/RadioGroup.stories.tsx +131 -18
  186. package/radio-group/RadioGroup.test.js +505 -471
  187. package/radio-group/types.d.ts +8 -8
  188. package/resultset-table/Icons.d.ts +7 -0
  189. package/resultset-table/Icons.js +47 -0
  190. package/resultset-table/ResultsetTable.js +159 -0
  191. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  192. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
  193. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  194. package/resultset-table/types.js +5 -0
  195. package/select/Icons.d.ts +7 -7
  196. package/select/Icons.js +1 -5
  197. package/select/Listbox.d.ts +1 -1
  198. package/select/Listbox.js +17 -72
  199. package/select/Option.js +27 -50
  200. package/select/Select.js +120 -175
  201. package/select/Select.stories.tsx +497 -153
  202. package/select/Select.test.js +1974 -1837
  203. package/select/types.d.ts +16 -17
  204. package/sidenav/Icons.d.ts +7 -0
  205. package/sidenav/Icons.js +47 -0
  206. package/sidenav/Sidenav.d.ts +2 -2
  207. package/sidenav/Sidenav.js +81 -153
  208. package/sidenav/Sidenav.stories.tsx +165 -63
  209. package/sidenav/Sidenav.test.js +3 -10
  210. package/sidenav/types.d.ts +31 -28
  211. package/slider/Slider.js +73 -131
  212. package/slider/Slider.test.js +108 -104
  213. package/slider/types.d.ts +4 -4
  214. package/spinner/Spinner.js +31 -75
  215. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  216. package/spinner/Spinner.test.js +26 -35
  217. package/spinner/types.d.ts +3 -3
  218. package/status-light/StatusLight.d.ts +4 -0
  219. package/status-light/StatusLight.js +51 -0
  220. package/status-light/StatusLight.stories.tsx +74 -0
  221. package/status-light/StatusLight.test.js +25 -0
  222. package/status-light/types.d.ts +17 -0
  223. package/status-light/types.js +5 -0
  224. package/switch/Switch.js +52 -100
  225. package/switch/Switch.stories.tsx +33 -34
  226. package/switch/Switch.test.js +52 -97
  227. package/switch/types.d.ts +4 -4
  228. package/table/Table.js +7 -29
  229. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  230. package/table/Table.test.js +2 -7
  231. package/table/types.d.ts +8 -8
  232. package/tabs/Tab.js +26 -45
  233. package/tabs/Tabs.js +62 -145
  234. package/tabs/Tabs.stories.tsx +46 -6
  235. package/tabs/Tabs.test.js +66 -123
  236. package/tabs/types.d.ts +19 -19
  237. package/tag/Tag.js +28 -60
  238. package/tag/Tag.stories.tsx +14 -1
  239. package/tag/Tag.test.js +20 -31
  240. package/tag/types.d.ts +7 -7
  241. package/text-input/Icons.d.ts +5 -5
  242. package/text-input/Icons.js +1 -5
  243. package/text-input/Suggestion.js +35 -25
  244. package/text-input/Suggestions.d.ts +1 -1
  245. package/text-input/Suggestions.js +15 -65
  246. package/text-input/TextInput.js +219 -324
  247. package/text-input/TextInput.stories.tsx +139 -155
  248. package/text-input/TextInput.test.js +1272 -1157
  249. package/text-input/types.d.ts +25 -17
  250. package/textarea/Textarea.js +70 -113
  251. package/textarea/Textarea.stories.tsx +174 -0
  252. package/textarea/Textarea.test.js +152 -183
  253. package/textarea/types.d.ts +9 -5
  254. package/toggle-group/ToggleGroup.d.ts +2 -2
  255. package/toggle-group/ToggleGroup.js +92 -106
  256. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  257. package/toggle-group/ToggleGroup.test.js +69 -88
  258. package/toggle-group/types.d.ts +26 -17
  259. package/typography/Typography.d.ts +2 -2
  260. package/typography/Typography.js +15 -123
  261. package/typography/Typography.stories.tsx +1 -1
  262. package/typography/types.d.ts +1 -1
  263. package/useTheme.d.ts +1119 -1
  264. package/useTheme.js +2 -9
  265. package/useTranslatedLabels.d.ts +84 -1
  266. package/useTranslatedLabels.js +1 -7
  267. package/utils/BaseTypography.d.ts +21 -0
  268. package/utils/BaseTypography.js +94 -0
  269. package/utils/FocusLock.d.ts +13 -0
  270. package/utils/FocusLock.js +124 -0
  271. package/wizard/Wizard.js +16 -51
  272. package/wizard/Wizard.stories.tsx +20 -0
  273. package/wizard/Wizard.test.js +54 -81
  274. package/wizard/types.d.ts +8 -9
  275. package/card/ice-cream.jpg +0 -0
  276. package/common/RequiredComponent.js +0 -32
  277. package/number-input/NumberInputContext.d.ts +0 -4
  278. package/number-input/NumberInputContext.js +0 -19
  279. package/number-input/numberInputContextTypes.d.ts +0 -19
  280. package/resultsetTable/ResultsetTable.js +0 -252
  281. package/slider/Slider.stories.tsx +0 -183
  282. package/tabs-nav/Tab.js +0 -130
  283. package/textarea/Textarea.stories.jsx +0 -157
  284. /package/{resultsetTable → action-icon}/types.js +0 -0
  285. /package/{tabs-nav → container}/types.js +0 -0
  286. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  287. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  288. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/switch/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- export declare type Margin = {
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type Props = {
8
+ type Props = {
9
9
  /**
10
10
  * Initial state of the switch, only when it is uncontrolled.
11
11
  */
@@ -62,5 +62,5 @@ declare type Props = {
62
62
  /**
63
63
  * Reference to the component.
64
64
  */
65
- export declare type RefType = HTMLDivElement;
65
+ export type RefType = HTMLDivElement;
66
66
  export default Props;
package/table/Table.js CHANGED
@@ -1,53 +1,34 @@
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _react = _interopRequireDefault(require("react"));
17
-
18
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _variables = require("../common/variables.js");
21
-
22
- var _utils = require("../common/utils.js");
23
-
13
+ var _variables = require("../common/variables");
14
+ var _utils = require("../common/utils");
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
- var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
16
  var _templateObject, _templateObject2;
29
-
30
- 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); }
31
-
32
- 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; }
33
-
17
+ 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
+ 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; }
34
19
  var DxcTable = function DxcTable(_ref) {
35
20
  var children = _ref.children,
36
- margin = _ref.margin;
21
+ margin = _ref.margin;
37
22
  var colorsTheme = (0, _useTheme["default"])();
38
23
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
39
24
  theme: colorsTheme.table
40
25
  }, /*#__PURE__*/_react["default"].createElement(DxcTableContainer, {
41
26
  margin: margin
42
- }, /*#__PURE__*/_react["default"].createElement(DxcTableContent, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
43
- color: colorsTheme.table.dataBackgroundColor
44
- }, children))));
27
+ }, /*#__PURE__*/_react["default"].createElement(DxcTableContent, null, children)));
45
28
  };
46
-
47
29
  var calculateWidth = function calculateWidth(margin) {
48
30
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
49
31
  };
50
-
51
32
  var DxcTableContainer = _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\n overflow: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"])), function (props) {
52
33
  return calculateWidth(props.margin);
53
34
  }, function (props) {
@@ -65,7 +46,6 @@ var DxcTableContainer = _styledComponents["default"].div(_templateObject || (_te
65
46
  }, function (props) {
66
47
  return props.theme.scrollBarTrackColor;
67
48
  });
68
-
69
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) {
70
50
  return "".concat(props.theme.rowSeparatorThickness, " ").concat(props.theme.rowSeparatorStyle, " ").concat(props.theme.rowSeparatorColor);
71
51
  }, function (props) {
@@ -113,6 +93,4 @@ var DxcTableContent = _styledComponents["default"].table(_templateObject2 || (_t
113
93
  }, function (props) {
114
94
  return props.theme.headerBorderRadius;
115
95
  });
116
-
117
- var _default = DxcTable;
118
- exports["default"] = _default;
96
+ var _default = exports["default"] = DxcTable;
@@ -2,12 +2,21 @@ import React from "react";
2
2
  import DxcTable from "./Table";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Table",
8
9
  component: DxcTable,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ table: {
14
+ baseColor: "#5f249f",
15
+ headerFontColor: "#ffffff",
16
+ cellFontColor: "#000000",
17
+ },
18
+ };
19
+
11
20
  export const Chromatic = () => (
12
21
  <>
13
22
  <ExampleContainer>
@@ -271,7 +280,77 @@ export const Chromatic = () => (
271
280
  <td>Cell 9</td>
272
281
  </tr>
273
282
  </DxcTable>
274
- <hr />
283
+ </ExampleContainer>
284
+ <Title title="Opinionated theme" theme="light" level={2} />
285
+ <ExampleContainer>
286
+ <HalstackProvider theme={opinionatedTheme}>
287
+ <DxcTable>
288
+ <tr>
289
+ <th>
290
+ header<br></br>subheader
291
+ </th>
292
+ <th>
293
+ header<br></br>subheader
294
+ </th>
295
+ <th>
296
+ header<br></br>subheader
297
+ </th>
298
+ </tr>
299
+ <tr>
300
+ <td>
301
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
302
+ dolore magna aliqua.
303
+ </td>
304
+ <td>
305
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
306
+ consequat.
307
+ </td>
308
+ <td>
309
+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
310
+ </td>
311
+ </tr>
312
+ <tr>
313
+ <td>cell data</td>
314
+ <td>cell data</td>
315
+ <td>cell data</td>
316
+ </tr>
317
+ <tr>
318
+ <td>cell data</td>
319
+ <td>cell data</td>
320
+ <td>cell data</td>
321
+ </tr>
322
+ <tr>
323
+ <td>cell data</td>
324
+ <td>cell data</td>
325
+ <td>cell data</td>
326
+ </tr>
327
+ <tr>
328
+ <td>cell data</td>
329
+ <td>cell data</td>
330
+ <td>cell data</td>
331
+ </tr>
332
+ <tr>
333
+ <td>cell data</td>
334
+ <td>cell data</td>
335
+ <td>cell data</td>
336
+ </tr>
337
+ <tr>
338
+ <td>cell data</td>
339
+ <td>cell data</td>
340
+ <td>cell data</td>
341
+ </tr>
342
+ <tr>
343
+ <td>cell data</td>
344
+ <td>cell data</td>
345
+ <td>cell data</td>
346
+ </tr>
347
+ <tr>
348
+ <td>cell data</td>
349
+ <td>cell data</td>
350
+ <td>cell data</td>
351
+ </tr>
352
+ </DxcTable>
353
+ </HalstackProvider>
275
354
  </ExampleContainer>
276
355
  </>
277
356
  );
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
- var _Table = _interopRequireDefault(require("./Table"));
10
-
6
+ var _Table = _interopRequireDefault(require("./Table.tsx"));
11
7
  describe("Table component tests", function () {
12
8
  test("Table renders with correct content", function () {
13
9
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6"))))),
14
- getByText = _render.getByText;
15
-
10
+ getByText = _render.getByText;
16
11
  expect(getByText("header-1")).toBeTruthy();
17
12
  expect(getByText("header-2")).toBeTruthy();
18
13
  expect(getByText("header-3")).toBeTruthy();
package/table/types.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type Props = {
10
- /**
11
- * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
12
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
13
- */
14
- margin?: Space | Margin;
9
+ type Props = {
15
10
  /**
16
11
  * The center section of the table. Can be used to render custom
17
12
  * content in this area.
18
13
  */
19
14
  children: React.ReactNode;
15
+ /**
16
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
17
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
18
+ */
19
+ margin?: Space | Margin;
20
20
  };
21
21
  export default Props;
package/tabs/Tab.js CHANGED
@@ -1,48 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = 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 _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
-
18
12
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
19
-
20
- var _Typography = _interopRequireDefault(require("../typography/Typography"));
21
-
13
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
22
14
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
-
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
-
26
- 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); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
16
+ 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); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(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; }
30
18
  var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
31
19
  var active = _ref.active,
32
- tab = _ref.tab,
33
- tabIndex = _ref.tabIndex,
34
- hasLabelAndIcon = _ref.hasLabelAndIcon,
35
- iconPosition = _ref.iconPosition,
36
- _onClick = _ref.onClick,
37
- _onMouseEnter = _ref.onMouseEnter,
38
- _onMouseLeave = _ref.onMouseLeave;
20
+ tab = _ref.tab,
21
+ tabIndex = _ref.tabIndex,
22
+ hasLabelAndIcon = _ref.hasLabelAndIcon,
23
+ iconPosition = _ref.iconPosition,
24
+ _onClick = _ref.onClick,
25
+ _onMouseEnter = _ref.onMouseEnter,
26
+ _onMouseLeave = _ref.onMouseLeave;
39
27
  var colorsTheme = (0, _useTheme["default"])();
40
28
  return /*#__PURE__*/_react["default"].createElement(TabContainer, {
41
29
  role: "tab",
42
30
  type: "button",
43
31
  tabIndex: tabIndex,
44
32
  disabled: tab.isDisabled,
45
- "aria-disabled": tab.isDisabled,
46
33
  "aria-selected": active,
47
34
  hasLabelAndIcon: hasLabelAndIcon,
48
35
  iconPosition: iconPosition,
@@ -57,15 +44,16 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
57
44
  _onMouseLeave();
58
45
  }
59
46
  }, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
60
- hasBadge: tab.notificationNumber,
47
+ notificationNumber: tab.notificationNumber,
61
48
  hasLabelAndIcon: hasLabelAndIcon,
62
- iconPosition: iconPosition
49
+ iconPosition: iconPosition,
50
+ disabled: tab.isDisabled
63
51
  }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
64
52
  hasLabelAndIcon: hasLabelAndIcon,
65
53
  iconPosition: iconPosition
66
- }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
54
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
67
55
  src: tab.icon
68
- }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
56
+ }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
69
57
  color: tab.isDisabled ? colorsTheme.tabs.disabledFontColor : active ? colorsTheme.tabs.selectedFontColor : colorsTheme.tabs.unselectedFontColor,
70
58
  fontFamily: colorsTheme.tabs.fontFamily,
71
59
  fontSize: colorsTheme.tabs.fontSize,
@@ -74,15 +62,16 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
74
62
  textAlign: "center",
75
63
  letterSpacing: "0.025em",
76
64
  lineHeight: "1.715em"
77
- }, tab.label)), tab.notificationNumber && tab.notificationNumber && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
65
+ }, tab.label)), tab.notificationNumber && !tab.isDisabled && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
78
66
  hasLabelAndIcon: hasLabelAndIcon,
79
67
  iconPosition: iconPosition
80
68
  }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
81
- notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
69
+ mode: "notification",
70
+ size: "small",
71
+ label: typeof tab.notificationNumber === "number" && tab.notificationNumber
82
72
  })));
83
73
  });
84
-
85
- var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n svg {\n color: ", ";\n }\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &[aria-disabled=\"true\"] {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
74
+ var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n svg {\n color: ", ";\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &:disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n outline: none !important;\n\n svg {\n color: ", ";\n }\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
86
75
  return props.theme.fontTextTransform;
87
76
  }, function (props) {
88
77
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
@@ -92,14 +81,14 @@ var TabContainer = _styledComponents["default"].button(_templateObject || (_temp
92
81
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "47px" || "71px";
93
82
  }, function (props) {
94
83
  return props.theme.unselectedBackgroundColor;
95
- }, function (props) {
96
- return props.theme.unselectedIconColor;
97
84
  }, function (props) {
98
85
  return "".concat(props.theme.hoverBackgroundColor, " !important");
99
86
  }, function (props) {
100
87
  return "".concat(props.theme.pressedBackgroundColor, " !important");
101
88
  }, function (props) {
102
89
  return props.theme.focusOutline;
90
+ }, function (props) {
91
+ return props.theme.unselectedIconColor;
103
92
  }, function (props) {
104
93
  return props.theme.selectedBackgroundColor;
105
94
  }, function (props) {
@@ -111,25 +100,17 @@ var TabContainer = _styledComponents["default"].button(_templateObject || (_temp
111
100
  }, function (props) {
112
101
  return props.theme.disabledIconColor;
113
102
  });
114
-
115
103
  var BadgeContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n height: 100%;\n display: flex;\n align-items: ", ";\n"])), function (props) {
116
104
  return props.hasLabelAndIcon && props.iconPosition === "top" ? "flex-start" : "center";
117
105
  });
118
-
119
106
  var MainLabelContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n margin-left: ", ";\n"])), function (props) {
120
107
  return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
121
108
  }, function (props) {
122
- return props.hasBadge ? typeof props.hasBadge === "number" ? "calc(".concat(props.theme.badgeWidthWithNotificationNumber, " + 12px)") : "calc(".concat(props.theme.badgeWidth, " + 12px)") : "unset";
109
+ return props.notificationNumber && !props.disabled ? typeof props.notificationNumber === "number" ? "36px" : "18px" : "unset";
123
110
  });
124
-
125
- var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
111
+ var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n\n img,\n svg {\n height: 22px;\n width: 22px;\n }\n"])), function (props) {
126
112
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
127
113
  }, function (props) {
128
114
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
129
115
  });
130
-
131
- var TabIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n display: inline-flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n"])));
132
-
133
- var _default = /*#__PURE__*/_react["default"].memo(Tab);
134
-
135
- exports["default"] = _default;
116
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Tab);