@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
package/header/types.d.ts CHANGED
@@ -6,13 +6,13 @@ type Props = {
6
6
  */
7
7
  underlined?: boolean;
8
8
  /**
9
- * Content showed in the header. Take into account that the component applies styles
9
+ * Content shown in the header. Take into account that the component applies styles
10
10
  * for the first child in the content, so we recommend the use of React.Fragment
11
11
  * to be applied correctly. Otherwise, the styles can be modified.
12
12
  */
13
13
  content?: React.ReactNode;
14
14
  /**
15
- * Content showed in responsive version. It receives the close menu handler that can
15
+ * Content shown in responsive version. It receives the close menu handler that can
16
16
  * be used to add that functionality when a element is clicked.
17
17
  */
18
18
  responsiveContent?: (closeHandler: () => void) => React.ReactNode;
package/icon/Icon.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import IconPropsType from "./types";
3
+ declare const DxcIcon: ({ icon }: IconPropsType) => JSX.Element;
4
+ export default DxcIcon;
package/icon/Icon.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _templateObject;
12
+ var DxcIcon = function DxcIcon(_ref) {
13
+ var icon = _ref.icon;
14
+ var filled = false;
15
+ var iconName = icon;
16
+ if (icon.startsWith("filled_")) {
17
+ filled = true;
18
+ iconName = icon.replace(/filled_/g, "");
19
+ }
20
+ return /*#__PURE__*/_react["default"].createElement(IconContainer, {
21
+ role: "img",
22
+ "aria-label": icon,
23
+ filled: filled,
24
+ icon: iconName,
25
+ "aria-hidden": "true"
26
+ });
27
+ };
28
+ var IconContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Material Symbols Outlined\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-feature-settings: \"liga\";\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n -moz-osx-font-smoothing: grayscale;\n font-variation-settings: ", ";\n ::before {\n content: \"", "\";\n }\n"])), function (props) {
29
+ return props.filled ? "'FILL' 1" : "'FILL' 0";
30
+ }, function (props) {
31
+ return props.icon;
32
+ });
33
+ var _default = exports["default"] = DxcIcon;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import DxcIcon from "./Icon";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { DxcTypography } from "../main";
6
+
7
+ export default {
8
+ title: "Icon",
9
+ component: DxcIcon,
10
+ };
11
+
12
+ export const Chromatic = () => (
13
+ <>
14
+ <Title title="Icon component" theme="light" level={2} />
15
+ <ExampleContainer>
16
+ <DxcIcon icon="home" />
17
+ <DxcIcon icon="filled_home" />
18
+ </ExampleContainer>
19
+ <ExampleContainer>
20
+ <DxcTypography as="p" color="#b182e3">
21
+ <DxcIcon icon="home" />
22
+ <DxcIcon icon="filled_home" />
23
+ </DxcTypography>
24
+ </ExampleContainer>
25
+ </>
26
+ );
@@ -0,0 +1,4 @@
1
+ type Props = {
2
+ icon: string;
3
+ };
4
+ export default Props;
package/icon/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -2,7 +2,9 @@ import React from "react";
2
2
  import DxcImage from "./Image";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
- import { DxcFlex, DxcInset, DxcParagraph } from "../main";
5
+ import DxcFlex from "../flex/Flex";
6
+ import DxcInset from "../inset/Inset";
7
+ import DxcParagraph from "../paragraph/Paragraph";
6
8
 
7
9
  export default {
8
10
  title: "Image",
@@ -7,7 +7,7 @@ declare const DxcApplicationLayout: {
7
7
  Dropdown: (props: import("../dropdown/types").default) => React.JSX.Element;
8
8
  };
9
9
  Main: ({ children }: AppLayoutMainPropsType) => JSX.Element;
10
- Footer: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, }: import("../footer/types").default) => JSX.Element;
10
+ Footer: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, mode, }: import("../footer/types").default) => JSX.Element;
11
11
  SideNav: {
12
12
  ({ title, children }: import("../sidenav/types").default): JSX.Element;
13
13
  Section: ({ children }: import("../sidenav/types").SidenavSectionPropsType) => JSX.Element;
@@ -15,7 +15,7 @@ var _Sidenav = _interopRequireDefault(require("../sidenav/Sidenav"));
15
15
  var _styledComponents = _interopRequireDefault(require("styled-components"));
16
16
  var _variables = require("../common/variables");
17
17
  var _Icons = _interopRequireDefault(require("./Icons"));
18
- var _SidenavContext = require("./SidenavContext");
18
+ var _SidenavContext = require("../sidenav/SidenavContext");
19
19
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
20
20
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
21
21
  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); }
package/main.d.ts CHANGED
@@ -22,7 +22,6 @@ import DxcChip from "./chip/Chip";
22
22
  import DxcApplicationLayout from "./layout/ApplicationLayout";
23
23
  import DxcToggleGroup from "./toggle-group/ToggleGroup";
24
24
  import DxcAccordionGroup from "./accordion-group/AccordionGroup";
25
- import DxcBadge from "./badge/Badge";
26
25
  import DxcTextInput from "./text-input/TextInput";
27
26
  import DxcPasswordInput from "./password-input/PasswordInput";
28
27
  import DxcDateInput from "./date-input/DateInput";
@@ -42,5 +41,9 @@ import DxcBulletedList from "./bulleted-list/BulletedList";
42
41
  import DxcGrid from "./grid/Grid";
43
42
  import DxcImage from "./image/Image";
44
43
  import DxcContainer from "./container/Container";
44
+ import DxcBadge from "./badge/Badge";
45
+ import DxcStatusLight from "./status-light/StatusLight";
46
+ import DxcContextualMenu from "./contextual-menu/ContextualMenu";
47
+ import DxcDivider from "./divider/Divider";
45
48
  import HalstackContext, { HalstackProvider, HalstackLanguageContext } from "./HalstackContext";
46
- export { DxcAlert, DxcButton, DxcCheckbox, DxcTextInput, DxcDropdown, DxcSwitch, DxcSlider, DxcTable, DxcTabs, DxcToggleGroup, DxcDialog, DxcCard, DxcProgressBar, DxcAccordion, DxcSpinner, DxcBox, DxcTag, DxcPaginator, DxcWizard, DxcLink, DxcHeading, DxcResultsetTable, DxcChip, DxcApplicationLayout, HalstackContext, HalstackLanguageContext, HalstackProvider, DxcAccordionGroup, DxcBadge, DxcPasswordInput, DxcDateInput, DxcNumberInput, DxcTextarea, DxcSelect, DxcFileInput, DxcRadioGroup, DxcBleed, DxcInset, DxcQuickNav, DxcNavTabs, DxcFlex, DxcTypography, DxcParagraph, DxcBulletedList, DxcGrid, DxcImage, DxcContainer, };
49
+ export { DxcAlert, DxcButton, DxcCheckbox, DxcTextInput, DxcDropdown, DxcSwitch, DxcSlider, DxcTable, DxcTabs, DxcToggleGroup, DxcDialog, DxcCard, DxcProgressBar, DxcAccordion, DxcSpinner, DxcBox, DxcTag, DxcPaginator, DxcWizard, DxcLink, DxcHeading, DxcResultsetTable, DxcChip, DxcApplicationLayout, HalstackContext, HalstackLanguageContext, HalstackProvider, DxcAccordionGroup, DxcPasswordInput, DxcDateInput, DxcNumberInput, DxcTextarea, DxcSelect, DxcFileInput, DxcRadioGroup, DxcBleed, DxcInset, DxcQuickNav, DxcNavTabs, DxcFlex, DxcTypography, DxcParagraph, DxcBulletedList, DxcGrid, DxcImage, DxcContainer, DxcBadge, DxcStatusLight, DxcContextualMenu, DxcDivider, };
package/main.js CHANGED
@@ -83,6 +83,12 @@ Object.defineProperty(exports, "DxcContainer", {
83
83
  return _Container["default"];
84
84
  }
85
85
  });
86
+ Object.defineProperty(exports, "DxcContextualMenu", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _ContextualMenu["default"];
90
+ }
91
+ });
86
92
  Object.defineProperty(exports, "DxcDateInput", {
87
93
  enumerable: true,
88
94
  get: function get() {
@@ -95,6 +101,12 @@ Object.defineProperty(exports, "DxcDialog", {
95
101
  return _Dialog["default"];
96
102
  }
97
103
  });
104
+ Object.defineProperty(exports, "DxcDivider", {
105
+ enumerable: true,
106
+ get: function get() {
107
+ return _Divider["default"];
108
+ }
109
+ });
98
110
  Object.defineProperty(exports, "DxcDropdown", {
99
111
  enumerable: true,
100
112
  get: function get() {
@@ -215,6 +227,12 @@ Object.defineProperty(exports, "DxcSpinner", {
215
227
  return _Spinner["default"];
216
228
  }
217
229
  });
230
+ Object.defineProperty(exports, "DxcStatusLight", {
231
+ enumerable: true,
232
+ get: function get() {
233
+ return _StatusLight["default"];
234
+ }
235
+ });
218
236
  Object.defineProperty(exports, "DxcSwitch", {
219
237
  enumerable: true,
220
238
  get: function get() {
@@ -311,7 +329,6 @@ var _Chip = _interopRequireDefault(require("./chip/Chip"));
311
329
  var _ApplicationLayout = _interopRequireDefault(require("./layout/ApplicationLayout"));
312
330
  var _ToggleGroup = _interopRequireDefault(require("./toggle-group/ToggleGroup"));
313
331
  var _AccordionGroup = _interopRequireDefault(require("./accordion-group/AccordionGroup"));
314
- var _Badge = _interopRequireDefault(require("./badge/Badge"));
315
332
  var _TextInput = _interopRequireDefault(require("./text-input/TextInput"));
316
333
  var _PasswordInput = _interopRequireDefault(require("./password-input/PasswordInput"));
317
334
  var _DateInput = _interopRequireDefault(require("./date-input/DateInput"));
@@ -331,6 +348,10 @@ var _BulletedList = _interopRequireDefault(require("./bulleted-list/BulletedList
331
348
  var _Grid = _interopRequireDefault(require("./grid/Grid"));
332
349
  var _Image = _interopRequireDefault(require("./image/Image"));
333
350
  var _Container = _interopRequireDefault(require("./container/Container"));
351
+ var _Badge = _interopRequireDefault(require("./badge/Badge"));
352
+ var _StatusLight = _interopRequireDefault(require("./status-light/StatusLight"));
353
+ var _ContextualMenu = _interopRequireDefault(require("./contextual-menu/ContextualMenu"));
354
+ var _Divider = _interopRequireDefault(require("./divider/Divider"));
334
355
  var _HalstackContext = _interopRequireWildcard(require("./HalstackContext"));
335
356
  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); }
336
357
  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; }
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
- import NavTabsPropsType, { NavTabsContextProps } from "./types";
3
- export declare const NavTabsContext: React.Context<NavTabsContextProps>;
2
+ import NavTabsPropsType from "./types";
4
3
  declare const DxcNavTabs: {
5
4
  ({ iconPosition, tabIndex, children }: NavTabsPropsType): JSX.Element;
6
5
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLAnchorElement>>;
@@ -5,17 +5,17 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.NavTabsContext = void 0;
8
+ exports["default"] = void 0;
9
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
14
14
  var _Tab = _interopRequireDefault(require("./Tab"));
15
- var _templateObject;
15
+ var _NavTabsContext = require("./NavTabsContext");
16
+ var _templateObject, _templateObject2;
16
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); }
17
18
  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; }
18
- var NavTabsContext = exports.NavTabsContext = /*#__PURE__*/(0, _react.createContext)(null);
19
19
  var getPropInChild = function getPropInChild(child, propName) {
20
20
  return child.props ? child.props[propName] ? child.props[propName] : child.props.children ? getPropInChild(child.props.children, propName) : undefined : undefined;
21
21
  };
@@ -81,10 +81,13 @@ var DxcNavTabs = function DxcNavTabs(_ref) {
81
81
  onKeyDown: handleOnKeyDown,
82
82
  role: "tablist",
83
83
  "aria-label": "Navigation tabs"
84
- }, /*#__PURE__*/_react["default"].createElement(NavTabsContext.Provider, {
84
+ }, /*#__PURE__*/_react["default"].createElement(_NavTabsContext.NavTabsContext.Provider, {
85
85
  value: contextValue
86
- }, children)));
86
+ }, children), /*#__PURE__*/_react["default"].createElement(Underline, null)));
87
87
  };
88
+ var Underline = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: ", ";\n"])), function (props) {
89
+ return props.theme.dividerColor;
90
+ });
88
91
  DxcNavTabs.Tab = _Tab["default"];
89
- var NavTabsContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
92
+ var NavTabsContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n"])));
90
93
  var _default = exports["default"] = DxcNavTabs;
@@ -91,7 +91,9 @@ export const Chromatic = () => (
91
91
  <DxcNavTabs.Tab href="#" notificationNumber={120}>
92
92
  Tab 3
93
93
  </DxcNavTabs.Tab>
94
- <DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
94
+ <DxcNavTabs.Tab href="#" notificationNumber={12}>
95
+ Tab 4
96
+ </DxcNavTabs.Tab>
95
97
  </DxcNavTabs>
96
98
  </ExampleContainer>
97
99
  <ExampleContainer>
@@ -140,7 +142,7 @@ export const Chromatic = () => (
140
142
  <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
141
143
  Tab 3
142
144
  </DxcNavTabs.Tab>
143
- <DxcNavTabs.Tab href="#" icon={largeIcon}>
145
+ <DxcNavTabs.Tab href="#" icon={largeIcon} notificationNumber={12}>
144
146
  Tab 4
145
147
  </DxcNavTabs.Tab>
146
148
  </DxcNavTabs>
@@ -157,7 +159,7 @@ export const Chromatic = () => (
157
159
  <DxcNavTabs.Tab href="#" icon={largeIcon} notificationNumber={120}>
158
160
  Tab 3
159
161
  </DxcNavTabs.Tab>
160
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
162
+ <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={12}>
161
163
  Tab 4
162
164
  </DxcNavTabs.Tab>
163
165
  </DxcNavTabs>
@@ -264,7 +266,7 @@ export const Chromatic = () => (
264
266
  <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
265
267
  Tab 3
266
268
  </DxcNavTabs.Tab>
267
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
269
+ <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={12}>
268
270
  Tab 4
269
271
  </DxcNavTabs.Tab>
270
272
  </DxcNavTabs>
@@ -49,9 +49,10 @@ describe("Tabs component tests", function () {
49
49
  icon: "/testIcon.png"
50
50
  }, "Tab 3"))),
51
51
  getByText = _render2.getByText,
52
- getByRole = _render2.getByRole;
52
+ getByRole = _render2.getByRole,
53
+ queryByText = _render2.queryByText;
53
54
  expect(getByText("10")).toBeTruthy();
54
- expect(getByText("20")).toBeTruthy();
55
+ expect(queryByText("20")).toBeFalsy();
55
56
  expect(getByText("+99")).toBeTruthy();
56
57
  expect(getByRole("img")).toBeTruthy();
57
58
  });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { NavTabsContextProps } from "./types";
3
+ export declare const NavTabsContext: import("react").Context<NavTabsContextProps>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NavTabsContext = void 0;
7
+ var _react = require("react");
8
+ var NavTabsContext = exports.NavTabsContext = /*#__PURE__*/(0, _react.createContext)(null);
package/nav-tabs/Tab.js CHANGED
@@ -13,9 +13,9 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _styledComponents = _interopRequireDefault(require("styled-components"));
14
14
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
15
15
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
16
- var _NavTabs = require("./NavTabs");
17
16
  var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
18
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
18
+ var _NavTabsContext = require("./NavTabsContext");
19
19
  var _templateObject, _templateObject2, _templateObject3;
20
20
  var _excluded = ["href", "active", "icon", "disabled", "notificationNumber", "children"];
21
21
  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); }
@@ -33,7 +33,7 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
33
33
  otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
34
34
  var tabRef = (0, _react.useRef)();
35
35
  var colorsTheme = (0, _useTheme["default"])();
36
- var _useContext = (0, _react.useContext)(_NavTabs.NavTabsContext),
36
+ var _useContext = (0, _react.useContext)(_NavTabsContext.NavTabsContext),
37
37
  iconPosition = _useContext.iconPosition,
38
38
  tabIndex = _useContext.tabIndex,
39
39
  focusedLabel = _useContext.focusedLabel;
@@ -86,13 +86,14 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
86
86
  textAlign: "center",
87
87
  letterSpacing: "0.025em",
88
88
  lineHeight: "1.715em"
89
- }, children), notificationNumber && /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
90
- notificationText: typeof notificationNumber === "number" && notificationNumber > 99 ? "+99" : notificationNumber,
91
- disabled: disabled
89
+ }, children), notificationNumber && !disabled && /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
90
+ mode: "notification",
91
+ size: "small",
92
+ label: typeof notificationNumber === "number" && notificationNumber
92
93
  }))));
93
94
  });
94
- var TabContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n align-items: stretch;\n border-bottom: 2px solid ", ";\n padding: 0.5rem;\n\n svg {\n color: ", ";\n }\n &[aria-selected=\"true\"] {\n svg {\n color: ", ";\n }\n }\n &[aria-disabled=\"true\"] {\n svg {\n color: ", ";\n }\n }\n"])), function (props) {
95
- return props.active ? props.theme.selectedUnderlineColor : props.theme.dividerColor;
95
+ var TabContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n align-items: stretch;\n border-bottom: 2px solid ", ";\n padding: 0.5rem;\n z-index: 1;\n svg {\n color: ", ";\n }\n &[aria-selected=\"true\"] {\n svg {\n color: ", ";\n }\n }\n &[aria-disabled=\"true\"] {\n svg {\n color: ", ";\n }\n }\n"])), function (props) {
96
+ return props.active ? props.theme.selectedUnderlineColor : 'transparent';
96
97
  }, function (props) {
97
98
  return props.theme.unselectedIconColor;
98
99
  }, function (props) {
@@ -1,11 +1,4 @@
1
1
  import React from "react";
2
2
  import NumberInputPropsType from "./types";
3
- type NumberInputContextProps = {
4
- typeNumber?: string;
5
- minNumber?: number;
6
- maxNumber?: number;
7
- stepNumber?: number;
8
- };
9
- export declare const NumberInputContext: React.Context<NumberInputContextProps>;
10
3
  declare const DxcNumberInput: React.ForwardRefExoticComponent<NumberInputPropsType & React.RefAttributes<HTMLDivElement>>;
11
4
  export default DxcNumberInput;
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports["default"] = exports.NumberInputContext = void 0;
8
+ exports["default"] = void 0;
8
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
10
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
12
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
13
+ var _NumberInputContext = require("./NumberInputContext");
12
14
  var _templateObject;
13
- var NumberInputContext = exports.NumberInputContext = /*#__PURE__*/_react["default"].createContext(null);
15
+ 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); }
16
+ 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; }
14
17
  var DxcNumberInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
15
18
  var label = _ref.label,
16
19
  name = _ref.name,
@@ -34,14 +37,30 @@ var DxcNumberInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, r
34
37
  margin = _ref.margin,
35
38
  size = _ref.size,
36
39
  tabIndex = _ref.tabIndex;
37
- return /*#__PURE__*/_react["default"].createElement(NumberInputContext.Provider, {
40
+ var numberInputRef = _react["default"].useRef(null);
41
+ (0, _react.useEffect)(function () {
42
+ var _numberInputRef$curre;
43
+ var input = (_numberInputRef$curre = numberInputRef.current) === null || _numberInputRef$curre === void 0 ? void 0 : _numberInputRef$curre.getElementsByTagName("input")[0];
44
+ var preventDefault = function preventDefault(event) {
45
+ event.preventDefault();
46
+ };
47
+ input === null || input === void 0 ? void 0 : input.addEventListener("wheel", preventDefault, {
48
+ passive: false
49
+ });
50
+ return function () {
51
+ input === null || input === void 0 ? void 0 : input.removeEventListener("wheel", preventDefault);
52
+ };
53
+ }, []);
54
+ return /*#__PURE__*/_react["default"].createElement(_NumberInputContext.NumberInputContext.Provider, {
38
55
  value: {
39
56
  typeNumber: "number",
40
57
  minNumber: min,
41
58
  maxNumber: max,
42
59
  stepNumber: step
43
60
  }
44
- }, /*#__PURE__*/_react["default"].createElement(NumberInputContainer, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
61
+ }, /*#__PURE__*/_react["default"].createElement(NumberInputContainer, {
62
+ ref: numberInputRef
63
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
45
64
  label: label,
46
65
  name: name,
47
66
  defaultValue: defaultValue,
@@ -769,12 +769,171 @@ describe("Number input component tests", function () {
769
769
  });
770
770
  expect(number.value).toBe("5");
771
771
  });
772
- test("Number has correct accessibility attributes", function () {
772
+ test("Value is unchanged when using the scroll wheel in mouse in a disabled input", function () {
773
773
  var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
774
+ disabled: true,
775
+ label: "Number input label",
776
+ min: 5,
777
+ max: 20,
778
+ step: 5,
779
+ defaultValue: 10
780
+ })),
781
+ getByLabelText = _render30.getByLabelText;
782
+ var number = getByLabelText("Number input label");
783
+ _react2.fireEvent.wheel(number, {
784
+ deltaY: -100
785
+ });
786
+ expect(number.value).toBe("10");
787
+ _react2.fireEvent.wheel(number, {
788
+ deltaY: 100
789
+ });
790
+ expect(number.value).toBe("10");
791
+ _react2.fireEvent.wheel(number, {
792
+ deltaY: -100
793
+ });
794
+ expect(number.value).toBe("10");
795
+ _react2.fireEvent.wheel(number, {
796
+ deltaY: 100
797
+ });
798
+ expect(number.value).toBe("10");
799
+ });
800
+ test("Value is unchanged when using the arrows in keyboard in a disabled input", function () {
801
+ var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
802
+ disabled: true,
803
+ label: "Number input label",
804
+ min: 5,
805
+ max: 20,
806
+ step: 5,
807
+ defaultValue: 10
808
+ })),
809
+ getByLabelText = _render31.getByLabelText;
810
+ var number = getByLabelText("Number input label");
811
+ _react2.fireEvent.keyDown(number, {
812
+ keyCode: 38
813
+ });
814
+ expect(number.value).toBe("10");
815
+ _react2.fireEvent.keyDown(number, {
816
+ keyCode: 40
817
+ });
818
+ expect(number.value).toBe("10");
819
+ _react2.fireEvent.keyDown(number, {
820
+ keyCode: 38
821
+ });
822
+ expect(number.value).toBe("10");
823
+ _react2.fireEvent.keyDown(number, {
824
+ keyCode: 40
825
+ });
826
+ expect(number.value).toBe("10");
827
+ });
828
+ test("Value is unchanged when using the scroll wheel in mouse in a read-only input", function () {
829
+ var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
830
+ readOnly: true,
831
+ label: "Number input label",
832
+ min: 5,
833
+ max: 20,
834
+ step: 5,
835
+ defaultValue: 10
836
+ })),
837
+ getByLabelText = _render32.getByLabelText;
838
+ var number = getByLabelText("Number input label");
839
+ _react2.fireEvent.wheel(number, {
840
+ deltaY: -100
841
+ });
842
+ expect(number.value).toBe("10");
843
+ _react2.fireEvent.wheel(number, {
844
+ deltaY: 100
845
+ });
846
+ expect(number.value).toBe("10");
847
+ _react2.fireEvent.wheel(number, {
848
+ deltaY: -100
849
+ });
850
+ expect(number.value).toBe("10");
851
+ _react2.fireEvent.wheel(number, {
852
+ deltaY: 100
853
+ });
854
+ expect(number.value).toBe("10");
855
+ });
856
+ test("Value is unchanged when using the arrows in keyboard in a read-only input", function () {
857
+ var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
858
+ readOnly: true,
859
+ label: "Number input label",
860
+ min: 5,
861
+ max: 20,
862
+ step: 5,
863
+ defaultValue: 10
864
+ })),
865
+ getByLabelText = _render33.getByLabelText;
866
+ var number = getByLabelText("Number input label");
867
+ _react2.fireEvent.keyDown(number, {
868
+ keyCode: 38
869
+ });
870
+ expect(number.value).toBe("10");
871
+ _react2.fireEvent.keyDown(number, {
872
+ keyCode: 40
873
+ });
874
+ expect(number.value).toBe("10");
875
+ _react2.fireEvent.keyDown(number, {
876
+ keyCode: 38
877
+ });
878
+ expect(number.value).toBe("10");
879
+ _react2.fireEvent.keyDown(number, {
880
+ keyCode: 40
881
+ });
882
+ expect(number.value).toBe("10");
883
+ });
884
+ test("Increment and decrement the value with min, max and step using the scroll wheel in mouse", function () {
885
+ var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
886
+ label: "Number input label",
887
+ min: 5,
888
+ max: 20,
889
+ step: 5
890
+ })),
891
+ getByLabelText = _render34.getByLabelText;
892
+ var number = getByLabelText("Number input label");
893
+ _userEvent["default"].type(number, "1");
894
+ _react2.fireEvent.wheel(number, {
895
+ deltaY: -100
896
+ });
897
+ expect(number.value).toBe("5");
898
+ _react2.fireEvent.wheel(number, {
899
+ deltaY: -100
900
+ });
901
+ expect(number.value).toBe("10");
902
+ _react2.fireEvent.wheel(number, {
903
+ deltaY: -100
904
+ });
905
+ expect(number.value).toBe("15");
906
+ _react2.fireEvent.wheel(number, {
907
+ deltaY: -100
908
+ });
909
+ expect(number.value).toBe("20");
910
+ _react2.fireEvent.wheel(number, {
911
+ deltaY: -100
912
+ });
913
+ expect(number.value).toBe("20");
914
+ _react2.fireEvent.wheel(number, {
915
+ deltaY: 100
916
+ });
917
+ expect(number.value).toBe("15");
918
+ _react2.fireEvent.wheel(number, {
919
+ deltaY: 100
920
+ });
921
+ expect(number.value).toBe("10");
922
+ _react2.fireEvent.wheel(number, {
923
+ deltaY: 100
924
+ });
925
+ expect(number.value).toBe("5");
926
+ _react2.fireEvent.wheel(number, {
927
+ deltaY: 100
928
+ });
929
+ expect(number.value).toBe("5");
930
+ });
931
+ test("Number has correct accessibility attributes", function () {
932
+ var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
774
933
  label: "Number input label"
775
934
  })),
776
- getByLabelText = _render30.getByLabelText,
777
- getAllByRole = _render30.getAllByRole;
935
+ getByLabelText = _render35.getByLabelText,
936
+ getAllByRole = _render35.getAllByRole;
778
937
  var number = getByLabelText("Number input label");
779
938
  expect(number.getAttribute("type")).toBe("number");
780
939
  expect(number.getAttribute("aria-autocomplete")).toBeNull();
@@ -786,7 +945,7 @@ describe("Number input component tests", function () {
786
945
  expect(increment.getAttribute("aria-label")).toBe("Increment value");
787
946
  });
788
947
  test("Number input submits correct values inside a form and actions don't trigger the submit event", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee18() {
789
- var handlerOnSubmit, _render31, getByText, getAllByRole, less, more, submit;
948
+ var handlerOnSubmit, _render36, getByText, getAllByRole, less, more, submit;
790
949
  return _regenerator["default"].wrap(function _callee18$(_context18) {
791
950
  while (1) switch (_context18.prev = _context18.next) {
792
951
  case 0:
@@ -798,14 +957,14 @@ describe("Number input component tests", function () {
798
957
  data: "0"
799
958
  });
800
959
  });
801
- _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
960
+ _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
802
961
  onSubmit: handlerOnSubmit
803
962
  }, /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
804
963
  label: "Number input label",
805
964
  name: "data"
806
965
  }), /*#__PURE__*/_react["default"].createElement("button", {
807
966
  type: "submit"
808
- }, "Submit"))), getByText = _render31.getByText, getAllByRole = _render31.getAllByRole;
967
+ }, "Submit"))), getByText = _render36.getByText, getAllByRole = _render36.getAllByRole;
809
968
  less = getAllByRole("button")[0];
810
969
  more = getAllByRole("button")[1];
811
970
  submit = getByText("Submit");
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { NumberInputContextProps } from "./types";
3
+ export declare const NumberInputContext: import("react").Context<NumberInputContextProps>;