@dxc-technology/halstack-react 0.0.0-8b133ff → 0.0.0-8b61ced

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 (212) hide show
  1. package/HalstackContext.d.ts +4 -2
  2. package/HalstackContext.js +109 -58
  3. package/accordion/Accordion.js +122 -103
  4. package/accordion/Accordion.stories.tsx +2 -3
  5. package/accordion/Accordion.test.js +9 -10
  6. package/accordion/types.d.ts +5 -4
  7. package/accordion-group/AccordionGroup.js +2 -21
  8. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  9. package/accordion-group/AccordionGroup.test.js +20 -45
  10. package/accordion-group/types.d.ts +10 -3
  11. package/alert/Alert.js +5 -2
  12. package/badge/Badge.d.ts +1 -1
  13. package/badge/Badge.js +5 -3
  14. package/badge/types.d.ts +1 -0
  15. package/bleed/Bleed.js +1 -34
  16. package/bleed/Bleed.stories.tsx +94 -95
  17. package/bleed/types.d.ts +1 -1
  18. package/box/Box.js +23 -33
  19. package/box/types.d.ts +1 -0
  20. package/bulleted-list/BulletedList.d.ts +7 -0
  21. package/bulleted-list/BulletedList.js +123 -0
  22. package/bulleted-list/BulletedList.stories.tsx +200 -0
  23. package/bulleted-list/types.d.ts +11 -0
  24. package/{list → bulleted-list}/types.js +0 -0
  25. package/button/Button.js +46 -62
  26. package/button/Button.stories.tsx +9 -0
  27. package/button/types.d.ts +7 -7
  28. package/card/Card.js +34 -36
  29. package/card/types.d.ts +1 -0
  30. package/checkbox/Checkbox.d.ts +2 -2
  31. package/checkbox/Checkbox.js +95 -99
  32. package/checkbox/Checkbox.stories.tsx +79 -59
  33. package/checkbox/Checkbox.test.js +93 -16
  34. package/checkbox/types.d.ts +6 -2
  35. package/chip/types.d.ts +1 -1
  36. package/common/variables.js +237 -97
  37. package/date-input/Calendar.d.ts +4 -0
  38. package/date-input/Calendar.js +258 -0
  39. package/date-input/DateInput.js +81 -223
  40. package/date-input/DateInput.stories.tsx +30 -17
  41. package/date-input/DateInput.test.js +411 -138
  42. package/date-input/DatePicker.d.ts +4 -0
  43. package/date-input/DatePicker.js +160 -0
  44. package/date-input/YearPicker.d.ts +4 -0
  45. package/date-input/YearPicker.js +115 -0
  46. package/date-input/types.d.ts +53 -0
  47. package/dialog/Dialog.js +52 -28
  48. package/dialog/Dialog.stories.tsx +57 -2
  49. package/dialog/Dialog.test.js +34 -4
  50. package/dialog/types.d.ts +3 -2
  51. package/dropdown/Dropdown.d.ts +1 -1
  52. package/dropdown/Dropdown.js +247 -247
  53. package/dropdown/Dropdown.stories.tsx +126 -63
  54. package/dropdown/Dropdown.test.js +504 -108
  55. package/dropdown/DropdownMenu.d.ts +4 -0
  56. package/dropdown/DropdownMenu.js +80 -0
  57. package/dropdown/DropdownMenuItem.d.ts +4 -0
  58. package/dropdown/DropdownMenuItem.js +92 -0
  59. package/dropdown/types.d.ts +25 -5
  60. package/file-input/FileInput.d.ts +2 -2
  61. package/file-input/FileInput.js +183 -222
  62. package/file-input/FileInput.stories.tsx +38 -10
  63. package/file-input/FileInput.test.js +53 -12
  64. package/file-input/FileItem.d.ts +4 -14
  65. package/file-input/FileItem.js +43 -66
  66. package/file-input/types.d.ts +17 -0
  67. package/flex/Flex.d.ts +4 -0
  68. package/flex/Flex.js +69 -0
  69. package/flex/Flex.stories.tsx +103 -0
  70. package/flex/types.d.ts +32 -0
  71. package/{radio → flex}/types.js +0 -0
  72. package/footer/Footer.js +7 -5
  73. package/footer/Footer.stories.tsx +8 -1
  74. package/footer/Icons.js +1 -1
  75. package/footer/types.d.ts +2 -1
  76. package/header/Header.js +80 -75
  77. package/header/Header.stories.tsx +4 -4
  78. package/header/Icons.js +2 -2
  79. package/header/types.d.ts +3 -2
  80. package/inset/Inset.js +1 -34
  81. package/inset/Inset.stories.tsx +36 -36
  82. package/inset/types.d.ts +1 -1
  83. package/layout/ApplicationLayout.d.ts +16 -6
  84. package/layout/ApplicationLayout.js +70 -117
  85. package/layout/ApplicationLayout.stories.tsx +84 -93
  86. package/layout/Icons.d.ts +5 -0
  87. package/layout/Icons.js +13 -2
  88. package/layout/SidenavContext.d.ts +5 -0
  89. package/layout/SidenavContext.js +19 -0
  90. package/layout/types.d.ts +18 -33
  91. package/link/Link.d.ts +3 -2
  92. package/link/Link.js +58 -71
  93. package/link/Link.stories.tsx +95 -53
  94. package/link/Link.test.js +7 -15
  95. package/link/types.d.ts +7 -23
  96. package/main.d.ts +7 -10
  97. package/main.js +38 -56
  98. package/number-input/NumberInput.test.js +43 -7
  99. package/number-input/types.d.ts +1 -1
  100. package/package.json +16 -19
  101. package/paginator/Paginator.js +17 -38
  102. package/paginator/Paginator.test.js +43 -1
  103. package/paragraph/Paragraph.d.ts +6 -0
  104. package/paragraph/Paragraph.js +38 -0
  105. package/paragraph/Paragraph.stories.tsx +44 -0
  106. package/password-input/PasswordInput.js +7 -4
  107. package/password-input/PasswordInput.test.js +14 -14
  108. package/password-input/types.d.ts +1 -1
  109. package/progress-bar/ProgressBar.d.ts +2 -2
  110. package/progress-bar/ProgressBar.js +57 -51
  111. package/progress-bar/ProgressBar.stories.jsx +13 -11
  112. package/progress-bar/ProgressBar.test.js +67 -22
  113. package/progress-bar/types.d.ts +3 -4
  114. package/quick-nav/QuickNav.js +75 -22
  115. package/quick-nav/QuickNav.stories.tsx +131 -26
  116. package/quick-nav/types.d.ts +4 -4
  117. package/radio-group/Radio.d.ts +1 -1
  118. package/radio-group/Radio.js +43 -28
  119. package/radio-group/RadioGroup.js +30 -27
  120. package/radio-group/RadioGroup.stories.tsx +1 -0
  121. package/radio-group/RadioGroup.test.js +123 -96
  122. package/radio-group/types.d.ts +2 -2
  123. package/resultsetTable/Icons.d.ts +7 -0
  124. package/resultsetTable/Icons.js +51 -0
  125. package/resultsetTable/ResultsetTable.js +48 -107
  126. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  127. package/resultsetTable/ResultsetTable.test.js +65 -41
  128. package/resultsetTable/types.d.ts +2 -2
  129. package/select/Listbox.d.ts +1 -1
  130. package/select/Listbox.js +58 -8
  131. package/select/Select.js +80 -90
  132. package/select/Select.stories.tsx +147 -105
  133. package/select/Select.test.js +425 -249
  134. package/select/types.d.ts +2 -5
  135. package/sidenav/Sidenav.d.ts +6 -5
  136. package/sidenav/Sidenav.js +184 -52
  137. package/sidenav/Sidenav.stories.tsx +154 -156
  138. package/sidenav/Sidenav.test.js +25 -37
  139. package/sidenav/types.d.ts +50 -27
  140. package/slider/Slider.d.ts +2 -2
  141. package/slider/Slider.js +120 -95
  142. package/slider/Slider.stories.tsx +7 -1
  143. package/slider/Slider.test.js +121 -21
  144. package/slider/types.d.ts +6 -2
  145. package/spinner/Spinner.js +3 -3
  146. package/switch/Switch.d.ts +2 -2
  147. package/switch/Switch.js +138 -68
  148. package/switch/Switch.stories.tsx +8 -30
  149. package/switch/Switch.test.js +144 -17
  150. package/switch/types.d.ts +6 -2
  151. package/table/Table.js +1 -1
  152. package/table/Table.test.js +1 -1
  153. package/tabs/Tab.d.ts +4 -0
  154. package/tabs/Tab.js +135 -0
  155. package/tabs/Tabs.js +360 -104
  156. package/tabs/Tabs.stories.tsx +74 -7
  157. package/tabs/Tabs.test.js +217 -6
  158. package/tabs/types.d.ts +15 -5
  159. package/tabs-nav/NavTabs.d.ts +8 -0
  160. package/tabs-nav/NavTabs.js +125 -0
  161. package/tabs-nav/NavTabs.stories.tsx +170 -0
  162. package/tabs-nav/NavTabs.test.js +82 -0
  163. package/tabs-nav/Tab.d.ts +4 -0
  164. package/tabs-nav/Tab.js +130 -0
  165. package/tabs-nav/types.d.ts +53 -0
  166. package/{row → tabs-nav}/types.js +0 -0
  167. package/tag/Tag.js +1 -1
  168. package/tag/types.d.ts +1 -1
  169. package/text-input/Icons.d.ts +8 -0
  170. package/text-input/Icons.js +60 -0
  171. package/text-input/Suggestion.d.ts +4 -0
  172. package/text-input/Suggestion.js +84 -0
  173. package/text-input/Suggestions.d.ts +4 -0
  174. package/text-input/Suggestions.js +134 -0
  175. package/text-input/TextInput.js +211 -330
  176. package/text-input/TextInput.stories.tsx +194 -182
  177. package/text-input/TextInput.test.js +738 -726
  178. package/text-input/types.d.ts +33 -2
  179. package/textarea/Textarea.js +10 -19
  180. package/textarea/types.d.ts +1 -1
  181. package/toggle-group/types.d.ts +1 -1
  182. package/typography/Typography.d.ts +4 -0
  183. package/typography/Typography.js +131 -0
  184. package/typography/Typography.stories.tsx +198 -0
  185. package/typography/types.d.ts +18 -0
  186. package/{stack → typography}/types.js +0 -0
  187. package/useTranslatedLabels.d.ts +2 -0
  188. package/useTranslatedLabels.js +20 -0
  189. package/wizard/Wizard.js +36 -41
  190. package/wizard/Wizard.stories.tsx +20 -1
  191. package/wizard/types.d.ts +5 -4
  192. package/common/RequiredComponent.js +0 -32
  193. package/list/List.d.ts +0 -4
  194. package/list/List.js +0 -47
  195. package/list/List.stories.tsx +0 -95
  196. package/list/types.d.ts +0 -7
  197. package/radio/Radio.d.ts +0 -4
  198. package/radio/Radio.js +0 -173
  199. package/radio/Radio.stories.tsx +0 -192
  200. package/radio/Radio.test.js +0 -71
  201. package/radio/types.d.ts +0 -54
  202. package/row/Row.d.ts +0 -3
  203. package/row/Row.js +0 -127
  204. package/row/Row.stories.tsx +0 -237
  205. package/row/types.d.ts +0 -28
  206. package/stack/Stack.d.ts +0 -3
  207. package/stack/Stack.js +0 -97
  208. package/stack/Stack.stories.tsx +0 -164
  209. package/stack/types.d.ts +0 -24
  210. package/text/Text.d.ts +0 -7
  211. package/text/Text.js +0 -30
  212. package/text/Text.stories.tsx +0 -19
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import DxcButton from "./Button";
3
+ import DxcFlex from "./../flex/Flex";
3
4
  import { BackgroundColorProvider } from "../BackgroundColorContext";
4
5
  import Title from "../../.storybook/components/Title";
5
6
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
@@ -270,5 +271,13 @@ export const Chromatic = () => (
270
271
  <Title title="Xxlarge margin" theme="light" level={4} />
271
272
  <DxcButton label="Xxlarge margin" margin="xxlarge" />
272
273
  </ExampleContainer>
274
+ <Title title="Inside a flex" theme="light" level={2} />
275
+ <ExampleContainer>
276
+ <DxcFlex direction="column" gap="0.75rem">
277
+ <DxcButton label="Button" />
278
+ <DxcButton label="Button" />
279
+ <DxcButton label="Button" />
280
+ </DxcFlex>
281
+ </ExampleContainer>
273
282
  </>
274
283
  );
package/button/types.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
9
+ export declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type Props = {
11
11
  /**
12
- * Text to be placed next to the button.
12
+ * Text to be placed in the button.
13
13
  */
14
14
  label?: string;
15
15
  /**
16
- * Uses one of the available button modes.
16
+ * The available button modes.
17
17
  */
18
18
  mode?: "primary" | "secondary" | "text";
19
19
  /**
@@ -25,11 +25,11 @@ declare type Props = {
25
25
  */
26
26
  iconPosition?: "before" | "after";
27
27
  /**
28
- * This prop corresponds to the 'type' prop of the button in html.
28
+ * 'type' html prop of the button.
29
29
  */
30
30
  type?: "button" | "reset" | "submit";
31
31
  /**
32
- * Element or path used as the icon that will be placed next to the button label.
32
+ * Element or path used as the icon that will be placed next to the label.
33
33
  */
34
34
  icon?: string | SVG;
35
35
  /**
package/card/Card.js CHANGED
@@ -25,7 +25,7 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
26
  var _Box = _interopRequireDefault(require("../box/Box"));
27
27
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
29
29
 
30
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
31
 
@@ -64,17 +64,6 @@ var DxcCard = function DxcCard(_ref) {
64
64
  src: imageSrc
65
65
  }));
66
66
 
67
- var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
68
- shadowDepth: !outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
69
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
70
- theme: colorsTheme.card
71
- }, /*#__PURE__*/_react["default"].createElement(CardContainer, {
72
- hasAction: onClick || linkHref,
73
- imagePosition: imagePosition
74
- }, imageSrc && imagePosition === "before" && imageComponent, /*#__PURE__*/_react["default"].createElement(CardContent, {
75
- contentPadding: contentPadding
76
- }, children), imageSrc && imagePosition === "after" && imageComponent)));
77
-
78
67
  return /*#__PURE__*/_react["default"].createElement(StyledDxcCard, {
79
68
  margin: margin,
80
69
  onMouseEnter: function onMouseEnter() {
@@ -84,15 +73,23 @@ var DxcCard = function DxcCard(_ref) {
84
73
  return changeIsHovered(false);
85
74
  },
86
75
  onClick: onClick,
87
- hasAction: onClick,
88
- tabIndex: typeof onClick === "function" && !linkHref ? tabIndex : -1
89
- }, linkHref && /*#__PURE__*/_react["default"].createElement(StyledLink, {
90
- tabIndex: tabIndex,
76
+ hasAction: onClick || linkHref,
77
+ tabIndex: onClick || linkHref ? tabIndex : -1,
78
+ as: linkHref && "a",
91
79
  href: linkHref
92
- }, tagContent) || tagContent);
80
+ }, /*#__PURE__*/_react["default"].createElement(_Box["default"], {
81
+ shadowDepth: !outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
82
+ }, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
83
+ theme: colorsTheme.card
84
+ }, /*#__PURE__*/_react["default"].createElement(CardContainer, {
85
+ hasAction: onClick || linkHref,
86
+ imagePosition: imagePosition
87
+ }, imageSrc && imagePosition === "before" && imageComponent, /*#__PURE__*/_react["default"].createElement(CardContent, {
88
+ contentPadding: contentPadding
89
+ }, children), imageSrc && imagePosition === "after" && imageComponent))));
93
90
  };
94
91
 
95
- var StyledDxcCard = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n outline: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n :focus {\n outline: #0095ff auto 1px;\n }\n"])), function (_ref2) {
92
+ var StyledDxcCard = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n outline: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n text-decoration: none;\n\n ", "\n"])), function (_ref2) {
96
93
  var hasAction = _ref2.hasAction;
97
94
  return hasAction && "pointer" || "unset";
98
95
  }, function (_ref3) {
@@ -113,49 +110,50 @@ var StyledDxcCard = _styledComponents["default"].div(_templateObject || (_templa
113
110
  }, function (_ref8) {
114
111
  var margin = _ref8.margin;
115
112
  return margin && margin.left ? _variables.spaces[margin.left] : "";
113
+ }, function (_ref9) {
114
+ var hasAction = _ref9.hasAction;
115
+ return hasAction && ":focus {\n outline: #0095ff auto 1px;\n }";
116
116
  });
117
117
 
118
118
  var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"])), function (props) {
119
119
  return props.theme.height;
120
120
  }, function (props) {
121
121
  return props.theme.width;
122
- }, function (_ref9) {
123
- var hasAction = _ref9.hasAction;
122
+ }, function (_ref10) {
123
+ var hasAction = _ref10.hasAction;
124
124
  return hasAction ? "" : "unset";
125
125
  });
126
126
 
127
- var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n text-decoration: none;\n\n :focus {\n outline-color: #0095ff;\n }\n"])));
128
-
129
- var TagImage = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (_ref10) {
130
- var imagePadding = _ref10.imagePadding;
131
- return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
132
- }, function (_ref11) {
127
+ var TagImage = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (_ref11) {
133
128
  var imagePadding = _ref11.imagePadding;
134
129
  return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
135
130
  }, function (_ref12) {
136
- var cover = _ref12.cover;
131
+ var imagePadding = _ref12.imagePadding;
132
+ return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
133
+ }, function (_ref13) {
134
+ var cover = _ref13.cover;
137
135
  return cover ? "cover" : "contain";
138
136
  });
139
137
 
140
- var ImageContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"])), function (_ref13) {
141
- var imageBgColor = _ref13.imageBgColor;
138
+ var ImageContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"])), function (_ref14) {
139
+ var imageBgColor = _ref14.imageBgColor;
142
140
  return imageBgColor;
143
141
  });
144
142
 
145
- var CardContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (_ref14) {
146
- var contentPadding = _ref14.contentPadding;
147
- return contentPadding && (0, _typeof2["default"])(contentPadding) !== "object" ? _variables.spaces[contentPadding] : "0px";
148
- }, function (_ref15) {
143
+ var CardContent = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (_ref15) {
149
144
  var contentPadding = _ref15.contentPadding;
150
- return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.top ? _variables.spaces[contentPadding.top] : "";
145
+ return contentPadding && (0, _typeof2["default"])(contentPadding) !== "object" ? _variables.spaces[contentPadding] : "0px";
151
146
  }, function (_ref16) {
152
147
  var contentPadding = _ref16.contentPadding;
153
- return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.right ? _variables.spaces[contentPadding.right] : "";
148
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.top ? _variables.spaces[contentPadding.top] : "";
154
149
  }, function (_ref17) {
155
150
  var contentPadding = _ref17.contentPadding;
156
- return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
151
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.right ? _variables.spaces[contentPadding.right] : "";
157
152
  }, function (_ref18) {
158
153
  var contentPadding = _ref18.contentPadding;
154
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
155
+ }, function (_ref19) {
156
+ var contentPadding = _ref19.contentPadding;
159
157
  return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.left ? _variables.spaces[contentPadding.left] : "";
160
158
  });
161
159
 
package/card/types.d.ts CHANGED
@@ -47,6 +47,7 @@ declare type Props = {
47
47
  */
48
48
  margin?: Space | Size;
49
49
  /**
50
+ * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
50
51
  * Size of the padding to be applied to the content area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
51
52
  * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
52
53
  */
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import CheckboxPropsType from "./types";
3
- declare const DxcCheckbox: ({ checked, defaultChecked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: CheckboxPropsType) => JSX.Element;
3
+ declare const DxcCheckbox: React.ForwardRefExoticComponent<CheckboxPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcCheckbox;
@@ -19,8 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
23
-
24
22
  var _variables = require("../common/variables.js");
25
23
 
26
24
  var _utils = require("../common/utils.js");
@@ -29,15 +27,26 @@ var _uuid = require("uuid");
29
27
 
30
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
31
29
 
30
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
+
32
32
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
33
 
34
- var _templateObject, _templateObject2, _templateObject3;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
35
35
 
36
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
37
 
38
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
39
 
40
- var DxcCheckbox = function DxcCheckbox(_ref) {
40
+ var checkedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ fill: "currentColor",
42
+ focusable: "false",
43
+ "aria-hidden": "true",
44
+ viewBox: "0 0 24 24"
45
+ }, /*#__PURE__*/_react["default"].createElement("path", {
46
+ d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
47
+ }));
48
+
49
+ var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
41
50
  var checked = _ref.checked,
42
51
  _ref$defaultChecked = _ref.defaultChecked,
43
52
  defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
@@ -59,95 +68,86 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
59
68
  _ref$tabIndex = _ref.tabIndex,
60
69
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
61
70
 
62
- var _useState = (0, _react.useState)("checkbox-".concat((0, _uuid.v4)())),
71
+ var _useState = (0, _react.useState)("label-checkbox-".concat((0, _uuid.v4)())),
63
72
  _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
64
- switchId = _useState2[0];
65
-
66
- var labelId = "label-".concat(switchId);
73
+ labelId = _useState2[0];
67
74
 
68
75
  var _useState3 = (0, _react.useState)(defaultChecked),
69
76
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
70
77
  innerChecked = _useState4[0],
71
78
  setInnerChecked = _useState4[1];
72
79
 
73
- var _useState5 = (0, _react.useState)(false),
74
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
75
- isLabelHovered = _useState6[0],
76
- setIsLabelHovered = _useState6[1];
77
-
80
+ var checkboxRef = (0, _react.useRef)(null);
78
81
  var colorsTheme = (0, _useTheme["default"])();
79
82
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
83
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
80
84
 
81
- var handlerCheckboxChange = function handlerCheckboxChange(checkboxValue) {
82
- if (checked === undefined) {
83
- var isChecked = checkboxValue.target.checked === undefined ? !innerChecked : checkboxValue.target.checked;
84
- setInnerChecked(isChecked);
85
-
86
- if (typeof onChange === "function") {
87
- onChange(isChecked);
88
- }
89
- } else {
90
- if (typeof onChange === "function") {
91
- onChange(!checked);
92
- }
93
- }
94
- };
85
+ var handleCheckboxChange = function handleCheckboxChange() {
86
+ var _checkboxRef$current;
95
87
 
96
- var handleLabelHover = function handleLabelHover() {
97
- setIsLabelHovered(!isLabelHovered);
88
+ document.activeElement !== (checkboxRef === null || checkboxRef === void 0 ? void 0 : checkboxRef.current) && (checkboxRef === null || checkboxRef === void 0 ? void 0 : (_checkboxRef$current = checkboxRef.current) === null || _checkboxRef$current === void 0 ? void 0 : _checkboxRef$current.focus());
89
+ var newChecked = checked !== null && checked !== void 0 ? checked : innerChecked;
90
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
91
+ return !innerChecked;
92
+ });
93
+ onChange === null || onChange === void 0 ? void 0 : onChange(!newChecked);
98
94
  };
99
95
 
100
- var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
101
- id: labelId,
102
- labelPosition: labelPosition,
103
- onClick: disabled === true ? function () {} : handlerCheckboxChange,
104
- disabled: disabled,
105
- className: "labelContainer",
106
- backgroundType: backgroundType,
107
- onMouseOver: handleLabelHover,
108
- onMouseOut: handleLabelHover
109
- }, labelPosition === "before" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, label, " ", optional && /*#__PURE__*/_react["default"].createElement("span", null, "(Optional)")) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optional && /*#__PURE__*/_react["default"].createElement("span", null, "(Optional)"), " ", label));
96
+ var handleKeyboard = function handleKeyboard(event) {
97
+ switch (event.key) {
98
+ case " ":
99
+ event.preventDefault();
100
+ handleCheckboxChange();
101
+ }
102
+ };
110
103
 
111
104
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
112
105
  theme: colorsTheme.checkbox
113
- }, /*#__PURE__*/_react["default"].createElement(CheckboxContainer, {
114
- id: name,
115
- brightness: _variables.componentTokens,
116
- label: label,
117
- labelPosition: labelPosition,
106
+ }, /*#__PURE__*/_react["default"].createElement(MainContainer, {
118
107
  disabled: disabled,
108
+ onClick: disabled ? undefined : handleCheckboxChange,
119
109
  margin: margin,
120
110
  size: size,
111
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
121
112
  backgroundType: backgroundType,
122
- isLabelHovered: isLabelHovered
123
- }, label && labelPosition === "before" && labelComponent, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
113
+ ref: ref
114
+ }, label && labelPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
115
+ id: labelId,
116
+ disabled: disabled,
117
+ backgroundType: backgroundType
118
+ }, label, optional && " ".concat(translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
119
+ type: "checkbox",
124
120
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
125
- inputProps: {
126
- name: name,
127
- "aria-labelledby": labelId,
128
- role: "checkbox",
129
- "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked
130
- },
131
- onChange: handlerCheckboxChange,
121
+ name: name,
122
+ "aria-hidden": "true",
132
123
  value: value,
133
124
  disabled: disabled,
134
- disableRipple: true,
135
- className: "test",
136
- tabIndex: tabIndex
137
- }), /*#__PURE__*/_react["default"].createElement(CheckboxBlackBack, {
138
- labelPosition: labelPosition,
139
- disabled: disabled,
125
+ readOnly: true
126
+ }), /*#__PURE__*/_react["default"].createElement(CheckboxContainer, null, /*#__PURE__*/_react["default"].createElement(Checkbox, {
127
+ onKeyDown: handleKeyboard,
128
+ role: "checkbox",
129
+ tabIndex: disabled ? -1 : tabIndex,
130
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
131
+ "aria-disabled": disabled,
132
+ "aria-required": !disabled && !optional,
133
+ "aria-labelledby": labelId,
134
+ backgroundType: backgroundType,
140
135
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
136
+ disabled: disabled,
137
+ ref: checkboxRef
138
+ }, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon)), label && labelPosition === "after" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
139
+ id: labelId,
140
+ disabled: disabled,
141
141
  backgroundType: backgroundType
142
- }), label && labelPosition === "after" && labelComponent));
143
- };
142
+ }, optional && "".concat(translatedLabels.formFields.optionalLabel, " "), label)));
143
+ });
144
144
 
145
145
  var sizes = {
146
146
  small: "120px",
147
147
  medium: "240px",
148
148
  large: "480px",
149
149
  fillParent: "100%",
150
- fitContent: "unset"
150
+ fitContent: "fit-content"
151
151
  };
152
152
 
153
153
  var calculateWidth = function calculateWidth(margin, size) {
@@ -174,7 +174,7 @@ var getDisabledColor = function getDisabledColor(props, element) {
174
174
  }
175
175
  };
176
176
 
177
- var getNotDisabledColor = function getNotDisabledColor(props, element) {
177
+ var getEnabledColor = function getEnabledColor(props, element) {
178
178
  switch (element) {
179
179
  case "check":
180
180
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
@@ -182,72 +182,68 @@ var getNotDisabledColor = function getNotDisabledColor(props, element) {
182
182
  case "background":
183
183
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
184
184
 
185
+ case "hoverBackground":
186
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
187
+
185
188
  case "border":
186
189
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
187
190
 
191
+ case "hoverBorder":
192
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
193
+
188
194
  case "label":
189
195
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
190
196
  }
191
197
  };
192
198
 
193
- var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n cursor: ", ";\n"])), function (props) {
194
- return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
199
+ var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
200
+ return props.disabled ? getDisabledColor(props, "label") : getEnabledColor(props, "label");
195
201
  }, function (props) {
196
202
  return props.theme.fontFamily;
197
203
  }, function (props) {
198
204
  return props.theme.fontSize;
199
205
  }, function (props) {
200
206
  return props.theme.fontWeight;
201
- }, function (props) {
202
- return props.disabled ? "not-allowed" : "pointer";
203
207
  });
204
208
 
205
- var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n position: relative;\n .MuiCheckbox-colorSecondary {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n &.Mui-disabled {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n opacity: 0.34;\n }\n }\n }\n &.Mui-checked {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n\n &:hover {\n background-color: transparent;\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n background-color: transparent;\n color: ", ";\n }\n }\n }\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .MuiIconButton-colorSecondary {\n &:hover {\n background-color: transparent;\n }\n }\n .MuiButtonBase-root {\n &:hover {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n }\n\n &.Mui-focusVisible {\n .MuiIconButton-label {\n border-radius: 2px;\n outline: 2px solid\n ", ";\n outline-offset: -1px;\n }\n }\n z-index: 1;\n margin-left: ", ";\n margin-right: ", ";\n padding: 0px;\n left: ", ";\n right: ", ";\n }\n"])), function (props) {
206
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
209
+ var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
210
+
211
+ var CheckboxContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
212
+
213
+ var Checkbox = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 18px;\n width: 18px;\n border: 2px solid\n ", ";\n border-radius: 2px;\n background-color: ", ";\n color: ", ";\n\n &:focus {\n outline: 2px solid\n ", ";\n outline-offset: 2px;\n }\n svg {\n position: absolute;\n width: 22px;\n height: 22px;\n }\n ", "\n"])), function (props) {
214
+ return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "border");
207
215
  }, function (props) {
208
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
216
+ return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
209
217
  }, function (props) {
210
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
218
+ return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "background");
211
219
  }, function (props) {
212
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
220
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
213
221
  }, function (props) {
214
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
222
+ return props.disabled && "pointer-events: none;";
223
+ });
224
+
225
+ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n cursor: ", ";\n\n &:hover ", " {\n border: 2px solid\n ", ";\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
226
+ return props.theme.checkLabelSpacing;
215
227
  }, function (props) {
216
228
  return calculateWidth(props.margin, props.size);
217
229
  }, function (props) {
218
- return props.disabled ? "not-allowed" : "pointer";
219
- }, function (props) {
220
- return props.isLabelHovered ? props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor : getNotDisabledColor(props, "border");
221
- }, function (props) {
222
- return getDisabledColor(props, "border");
223
- }, function (props) {
224
- return props.disabled ? getDisabledColor(props, "background") : getNotDisabledColor(props, "background");
225
- }, function (props) {
226
- return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
227
- }, function (props) {
228
- return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
229
- }, function (props) {
230
- return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
231
- }, function (props) {
232
- return props.labelPosition === "before" && props.label ? props.theme.checkLabelSpacing : "0";
230
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
233
231
  }, function (props) {
234
- return props.labelPosition === "after" && props.label ? props.theme.checkLabelSpacing : "0";
232
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
235
233
  }, function (props) {
236
- return props.labelPosition === "before" ? "unset" : "1px";
234
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
237
235
  }, function (props) {
238
- return props.labelPosition === "before" ? "1px" : "unset";
239
- });
240
-
241
- var CheckboxBlackBack = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: 16px;\n height: 16px;\n position: absolute;\n left: ", ";\n right: ", ";\n z-index: 0;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
242
- return !props.checked ? "transparent" : props.disabled ? getDisabledColor(props, "check") : getNotDisabledColor(props, "check");
236
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
243
237
  }, function (props) {
244
- return props.labelPosition === "before" ? "unset" : "5px";
238
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
245
239
  }, function (props) {
246
- return props.labelPosition === "before" ? "5px" : "unset";
240
+ return props.disabled ? "not-allowed" : "pointer";
241
+ }, Checkbox, function (props) {
242
+ return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "hoverBorder");
247
243
  }, function (props) {
248
- return props.labelPosition === "after" ? "0px" : "";
244
+ return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
249
245
  }, function (props) {
250
- return props.labelPosition === "before" ? "0px" : "";
246
+ return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "hoverBackground");
251
247
  });
252
248
 
253
249
  var _default = DxcCheckbox;