@dxc-technology/halstack-react 10.0.0 → 11.0.0

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 (219) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +5 -17
  3. package/HalstackContext.d.ts +26 -6
  4. package/HalstackContext.js +9 -34
  5. package/README.md +47 -0
  6. package/accordion/Accordion.js +21 -58
  7. package/accordion/Accordion.stories.tsx +1 -15
  8. package/accordion/Accordion.test.js +18 -33
  9. package/accordion/types.d.ts +5 -5
  10. package/accordion-group/AccordionGroup.js +15 -42
  11. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  12. package/accordion-group/AccordionGroup.test.js +42 -60
  13. package/accordion-group/AccordionGroupAccordion.js +9 -21
  14. package/accordion-group/types.d.ts +6 -6
  15. package/alert/Alert.js +14 -46
  16. package/alert/Alert.test.js +28 -45
  17. package/alert/types.d.ts +5 -5
  18. package/badge/Badge.js +4 -17
  19. package/badge/types.d.ts +1 -1
  20. package/bleed/Bleed.js +13 -21
  21. package/bleed/types.d.ts +2 -2
  22. package/box/Box.js +10 -29
  23. package/box/Box.test.js +1 -6
  24. package/box/types.d.ts +3 -3
  25. package/bulleted-list/BulletedList.js +7 -33
  26. package/bulleted-list/BulletedList.stories.tsx +1 -91
  27. package/bulleted-list/types.d.ts +5 -5
  28. package/button/Button.js +23 -46
  29. package/button/Button.stories.tsx +5 -86
  30. package/button/Button.test.js +11 -21
  31. package/button/types.d.ts +4 -4
  32. package/card/Card.js +21 -44
  33. package/card/Card.test.js +10 -21
  34. package/card/types.d.ts +5 -5
  35. package/checkbox/Checkbox.js +81 -111
  36. package/checkbox/Checkbox.stories.tsx +16 -54
  37. package/checkbox/Checkbox.test.js +107 -63
  38. package/checkbox/types.d.ts +8 -4
  39. package/chip/Chip.js +12 -31
  40. package/chip/Chip.test.js +15 -28
  41. package/chip/types.d.ts +4 -4
  42. package/common/coreTokens.js +1 -2
  43. package/common/utils.js +2 -8
  44. package/common/variables.d.ts +23 -6
  45. package/common/variables.js +25 -15
  46. package/date-input/Calendar.js +13 -57
  47. package/date-input/DateInput.js +50 -96
  48. package/date-input/DateInput.stories.tsx +11 -30
  49. package/date-input/DateInput.test.js +674 -701
  50. package/date-input/DatePicker.js +11 -42
  51. package/date-input/Icons.d.ts +6 -6
  52. package/date-input/Icons.js +6 -23
  53. package/date-input/YearPicker.js +8 -34
  54. package/date-input/types.d.ts +27 -21
  55. package/dialog/Dialog.js +11 -35
  56. package/dialog/Dialog.test.js +125 -187
  57. package/dialog/types.d.ts +18 -13
  58. package/dropdown/Dropdown.js +39 -93
  59. package/dropdown/Dropdown.test.js +391 -378
  60. package/dropdown/DropdownMenu.js +8 -19
  61. package/dropdown/DropdownMenuItem.js +5 -17
  62. package/dropdown/types.d.ts +17 -19
  63. package/file-input/FileInput.js +131 -220
  64. package/file-input/FileInput.stories.tsx +1 -1
  65. package/file-input/FileInput.test.js +293 -342
  66. package/file-input/FileItem.js +12 -39
  67. package/file-input/types.d.ts +9 -9
  68. package/flex/Flex.js +25 -39
  69. package/flex/types.d.ts +6 -6
  70. package/footer/Footer.js +9 -39
  71. package/footer/Footer.stories.tsx +8 -7
  72. package/footer/Footer.test.js +18 -32
  73. package/footer/Icons.d.ts +2 -2
  74. package/footer/Icons.js +2 -7
  75. package/footer/types.d.ts +13 -13
  76. package/grid/Grid.js +1 -16
  77. package/grid/types.d.ts +10 -10
  78. package/header/Header.d.ts +1 -1
  79. package/header/Header.js +19 -64
  80. package/header/Header.test.js +12 -25
  81. package/header/Icons.d.ts +2 -2
  82. package/header/Icons.js +2 -7
  83. package/header/types.d.ts +5 -7
  84. package/heading/Heading.js +9 -31
  85. package/heading/Heading.test.js +70 -87
  86. package/heading/types.d.ts +7 -7
  87. package/image/Image.d.ts +4 -0
  88. package/image/Image.js +70 -0
  89. package/image/Image.stories.tsx +127 -0
  90. package/image/types.d.ts +72 -0
  91. package/inset/Inset.js +13 -21
  92. package/inset/types.d.ts +2 -2
  93. package/layout/ApplicationLayout.d.ts +1 -1
  94. package/layout/ApplicationLayout.js +25 -65
  95. package/layout/ApplicationLayout.stories.tsx +1 -1
  96. package/layout/Icons.d.ts +8 -5
  97. package/layout/Icons.js +51 -59
  98. package/layout/SidenavContext.d.ts +1 -1
  99. package/layout/SidenavContext.js +3 -9
  100. package/layout/types.d.ts +3 -3
  101. package/link/Link.js +21 -42
  102. package/link/Link.test.js +23 -41
  103. package/link/types.d.ts +14 -14
  104. package/main.d.ts +3 -2
  105. package/main.js +10 -51
  106. package/nav-tabs/NavTabs.js +11 -43
  107. package/nav-tabs/NavTabs.stories.tsx +1 -1
  108. package/nav-tabs/NavTabs.test.js +36 -43
  109. package/nav-tabs/Tab.js +16 -45
  110. package/nav-tabs/types.d.ts +9 -9
  111. package/number-input/NumberInput.d.ts +7 -0
  112. package/number-input/NumberInput.js +26 -35
  113. package/number-input/NumberInput.stories.tsx +42 -26
  114. package/number-input/NumberInput.test.js +700 -412
  115. package/number-input/types.d.ts +11 -5
  116. package/package.json +28 -26
  117. package/paginator/Icons.d.ts +5 -5
  118. package/paginator/Icons.js +5 -19
  119. package/paginator/Paginator.js +14 -39
  120. package/paginator/Paginator.test.js +224 -207
  121. package/paginator/types.d.ts +3 -3
  122. package/paragraph/Paragraph.js +3 -14
  123. package/paragraph/Paragraph.stories.tsx +0 -17
  124. package/password-input/Icons.d.ts +6 -0
  125. package/password-input/Icons.js +35 -0
  126. package/password-input/PasswordInput.js +57 -126
  127. package/password-input/PasswordInput.stories.tsx +1 -32
  128. package/password-input/PasswordInput.test.js +157 -140
  129. package/password-input/types.d.ts +8 -7
  130. package/progress-bar/ProgressBar.js +16 -42
  131. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  132. package/progress-bar/ProgressBar.test.js +35 -52
  133. package/progress-bar/types.d.ts +3 -3
  134. package/quick-nav/QuickNav.js +4 -27
  135. package/quick-nav/QuickNav.stories.tsx +1 -1
  136. package/quick-nav/types.d.ts +10 -10
  137. package/radio-group/Radio.d.ts +1 -1
  138. package/radio-group/Radio.js +22 -54
  139. package/radio-group/RadioGroup.js +37 -83
  140. package/radio-group/RadioGroup.stories.tsx +10 -10
  141. package/radio-group/RadioGroup.test.js +504 -470
  142. package/radio-group/types.d.ts +8 -8
  143. package/resultset-table/Icons.d.ts +7 -0
  144. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  145. package/{resultsetTable → resultset-table}/ResultsetTable.js +22 -58
  146. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
  147. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  148. package/select/Icons.d.ts +7 -7
  149. package/select/Icons.js +1 -5
  150. package/select/Listbox.js +13 -39
  151. package/select/Option.js +9 -26
  152. package/select/Select.js +54 -138
  153. package/select/Select.stories.tsx +3 -3
  154. package/select/Select.test.js +1906 -1800
  155. package/select/types.d.ts +14 -15
  156. package/sidenav/Icons.d.ts +4 -4
  157. package/sidenav/Icons.js +1 -5
  158. package/sidenav/Sidenav.js +24 -63
  159. package/sidenav/Sidenav.test.js +3 -10
  160. package/sidenav/types.d.ts +18 -18
  161. package/slider/Slider.js +38 -86
  162. package/slider/Slider.test.js +107 -103
  163. package/slider/types.d.ts +4 -4
  164. package/spinner/Spinner.js +10 -40
  165. package/spinner/Spinner.test.js +25 -34
  166. package/spinner/types.d.ts +3 -3
  167. package/switch/Switch.js +26 -69
  168. package/switch/Switch.stories.tsx +0 -34
  169. package/switch/Switch.test.js +51 -96
  170. package/switch/types.d.ts +4 -4
  171. package/table/Table.js +4 -23
  172. package/table/Table.test.js +1 -6
  173. package/table/types.d.ts +8 -8
  174. package/tabs/Tab.js +10 -29
  175. package/tabs/Tabs.js +48 -124
  176. package/tabs/Tabs.test.js +62 -118
  177. package/tabs/types.d.ts +19 -19
  178. package/tag/Tag.js +21 -51
  179. package/tag/Tag.test.js +19 -30
  180. package/tag/types.d.ts +7 -7
  181. package/text-input/Icons.d.ts +5 -5
  182. package/text-input/Icons.js +1 -5
  183. package/text-input/Suggestion.js +9 -26
  184. package/text-input/Suggestions.d.ts +1 -1
  185. package/text-input/Suggestions.js +12 -57
  186. package/text-input/TextInput.js +182 -263
  187. package/text-input/TextInput.stories.tsx +48 -152
  188. package/text-input/TextInput.test.js +1210 -1194
  189. package/text-input/types.d.ts +25 -17
  190. package/textarea/Textarea.js +60 -96
  191. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -99
  192. package/textarea/Textarea.test.js +150 -179
  193. package/textarea/types.d.ts +9 -5
  194. package/toggle-group/ToggleGroup.js +91 -105
  195. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  196. package/toggle-group/ToggleGroup.test.js +68 -87
  197. package/toggle-group/types.d.ts +26 -17
  198. package/typography/Typography.js +4 -13
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +20 -3
  201. package/useTheme.js +1 -8
  202. package/useTranslatedLabels.js +1 -7
  203. package/utils/BaseTypography.d.ts +2 -2
  204. package/utils/BaseTypography.js +16 -30
  205. package/utils/FocusLock.js +12 -36
  206. package/wizard/Wizard.js +14 -49
  207. package/wizard/Wizard.test.js +53 -80
  208. package/wizard/types.d.ts +6 -6
  209. package/number-input/NumberInputContext.d.ts +0 -4
  210. package/number-input/NumberInputContext.js +0 -19
  211. package/number-input/numberInputContextTypes.d.ts +0 -19
  212. package/resultsetTable/Icons.d.ts +0 -7
  213. package/slider/Slider.stories.tsx +0 -240
  214. /package/{resultsetTable → image}/types.js +0 -0
  215. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  216. /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
  217. /package/{number-input/numberInputContextTypes.js → resultset-table/types.js} +0 -0
  218. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
  219. /package/table/{Table.stories.jsx → Table.stories.tsx} +0 -0
@@ -1,42 +1,25 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _variables = require("../common/variables");
23
-
24
15
  var _utils = require("../common/utils");
25
-
26
16
  var _uuid = require("uuid");
27
-
28
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
-
30
18
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
-
32
19
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
-
34
20
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
35
-
36
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
-
38
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
-
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); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
40
23
  var checkedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
24
  fill: "currentColor",
42
25
  focusable: "false",
@@ -45,54 +28,51 @@ var checkedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
45
28
  }, /*#__PURE__*/_react["default"].createElement("path", {
46
29
  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
30
  }));
48
-
49
31
  var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
50
32
  var checked = _ref.checked,
51
- _ref$defaultChecked = _ref.defaultChecked,
52
- defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
53
- value = _ref.value,
54
- _ref$label = _ref.label,
55
- label = _ref$label === void 0 ? "" : _ref$label,
56
- _ref$labelPosition = _ref.labelPosition,
57
- labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
58
- _ref$name = _ref.name,
59
- name = _ref$name === void 0 ? "" : _ref$name,
60
- _ref$disabled = _ref.disabled,
61
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
62
- _ref$optional = _ref.optional,
63
- optional = _ref$optional === void 0 ? false : _ref$optional,
64
- onChange = _ref.onChange,
65
- margin = _ref.margin,
66
- _ref$size = _ref.size,
67
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
68
- _ref$tabIndex = _ref.tabIndex,
69
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
70
-
33
+ _ref$defaultChecked = _ref.defaultChecked,
34
+ defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
35
+ value = _ref.value,
36
+ _ref$label = _ref.label,
37
+ label = _ref$label === void 0 ? "" : _ref$label,
38
+ _ref$labelPosition = _ref.labelPosition,
39
+ labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
40
+ _ref$name = _ref.name,
41
+ name = _ref$name === void 0 ? "" : _ref$name,
42
+ _ref$disabled = _ref.disabled,
43
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
44
+ _ref$optional = _ref.optional,
45
+ optional = _ref$optional === void 0 ? false : _ref$optional,
46
+ _ref$readOnly = _ref.readOnly,
47
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
48
+ onChange = _ref.onChange,
49
+ margin = _ref.margin,
50
+ _ref$size = _ref.size,
51
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
52
+ _ref$tabIndex = _ref.tabIndex,
53
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
71
54
  var _useState = (0, _react.useState)("label-checkbox-".concat((0, _uuid.v4)())),
72
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
73
- labelId = _useState2[0];
74
-
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
56
+ labelId = _useState2[0];
75
57
  var _useState3 = (0, _react.useState)(defaultChecked),
76
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
- innerChecked = _useState4[0],
78
- setInnerChecked = _useState4[1];
79
-
58
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
59
+ innerChecked = _useState4[0],
60
+ setInnerChecked = _useState4[1];
80
61
  var checkboxRef = (0, _react.useRef)(null);
81
62
  var colorsTheme = (0, _useTheme["default"])();
82
63
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
83
64
  var translatedLabels = (0, _useTranslatedLabels["default"])();
84
-
85
65
  var handleCheckboxChange = function handleCheckboxChange() {
86
- var _checkboxRef$current;
87
-
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);
66
+ if (!disabled && !readOnly) {
67
+ var _checkboxRef$current;
68
+ 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());
69
+ var newChecked = checked !== null && checked !== void 0 ? checked : innerChecked;
70
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
71
+ return !innerChecked;
72
+ });
73
+ onChange === null || onChange === void 0 ? void 0 : onChange(!newChecked);
74
+ }
94
75
  };
95
-
96
76
  var handleKeyboard = function handleKeyboard(event) {
97
77
  switch (event.key) {
98
78
  case " ":
@@ -100,21 +80,22 @@ var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
100
80
  handleCheckboxChange();
101
81
  }
102
82
  };
103
-
104
83
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
105
84
  theme: colorsTheme.checkbox
106
85
  }, /*#__PURE__*/_react["default"].createElement(MainContainer, {
107
86
  disabled: disabled,
108
- onClick: disabled ? undefined : handleCheckboxChange,
87
+ readOnly: readOnly,
88
+ onClick: handleCheckboxChange,
109
89
  margin: margin,
110
90
  size: size,
111
91
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
112
92
  backgroundType: backgroundType,
113
93
  ref: ref
114
- }, label && labelPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
94
+ }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
115
95
  id: labelId,
116
96
  disabled: disabled,
117
- backgroundType: backgroundType
97
+ backgroundType: backgroundType,
98
+ labelPosition: labelPosition
118
99
  }, label, optional && " ".concat(translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
119
100
  type: "checkbox",
120
101
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
@@ -129,19 +110,16 @@ var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
129
110
  tabIndex: disabled ? -1 : tabIndex,
130
111
  "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
131
112
  "aria-disabled": disabled,
113
+ "aria-readonly": readOnly,
132
114
  "aria-required": !disabled && !optional,
133
115
  "aria-labelledby": labelId,
134
116
  backgroundType: backgroundType,
135
117
  checked: checked !== null && checked !== void 0 ? checked : innerChecked,
136
118
  disabled: disabled,
119
+ readOnly: readOnly,
137
120
  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
- backgroundType: backgroundType
142
- }, optional && "".concat(translatedLabels.formFields.optionalLabel, " "), label)));
121
+ }, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon))));
143
122
  });
144
-
145
123
  var sizes = {
146
124
  small: "120px",
147
125
  medium: "240px",
@@ -149,54 +127,54 @@ var sizes = {
149
127
  fillParent: "100%",
150
128
  fitContent: "fit-content"
151
129
  };
152
-
153
130
  var calculateWidth = function calculateWidth(margin, size) {
154
- if (size === "fillParent") {
155
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
156
- }
157
-
158
- return sizes[size];
131
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
159
132
  };
160
-
161
133
  var getDisabledColor = function getDisabledColor(props, element) {
162
134
  switch (element) {
163
135
  case "check":
164
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
165
-
136
+ return props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
166
137
  case "background":
167
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
168
-
138
+ return props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
169
139
  case "border":
170
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
171
-
140
+ return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
172
141
  case "label":
173
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
142
+ return props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
143
+ }
144
+ };
145
+ var getReadOnlyColor = function getReadOnlyColor(props, element) {
146
+ switch (element) {
147
+ case "check":
148
+ return props.theme.readOnlyCheckColor;
149
+ case "background":
150
+ return props.theme.readOnlyBackgroundColorChecked;
151
+ case "hoverBackground":
152
+ return props.theme.hoverReadOnlyBackgroundColorChecked;
153
+ case "border":
154
+ return props.theme.readOnlyBorderColor;
155
+ case "hoverBorder":
156
+ return props.theme.hoverReadOnlyBorderColor;
174
157
  }
175
158
  };
176
-
177
159
  var getEnabledColor = function getEnabledColor(props, element) {
178
160
  switch (element) {
179
161
  case "check":
180
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
181
-
162
+ return props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
182
163
  case "background":
183
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
184
-
164
+ return props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
185
165
  case "hoverBackground":
186
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
187
-
166
+ return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
188
167
  case "border":
189
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
190
-
168
+ return props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
191
169
  case "hoverBorder":
192
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
193
-
170
+ return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
194
171
  case "label":
195
- return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
172
+ return props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
196
173
  }
197
174
  };
198
-
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) {
175
+ var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n order: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
176
+ return props.labelPosition === "before" ? 0 : 1;
177
+ }, function (props) {
200
178
  return props.disabled ? getDisabledColor(props, "label") : getEnabledColor(props, "label");
201
179
  }, function (props) {
202
180
  return props.theme.fontFamily;
@@ -205,24 +183,20 @@ var LabelContainer = _styledComponents["default"].span(_templateObject || (_temp
205
183
  }, function (props) {
206
184
  return props.theme.fontWeight;
207
185
  });
208
-
209
186
  var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
210
-
211
187
  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
188
  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");
189
+ return props.disabled ? getDisabledColor(props, "border") : props.readOnly ? getReadOnlyColor(props, "border") : getEnabledColor(props, "border");
215
190
  }, function (props) {
216
- return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
191
+ return props.checked ? props.disabled ? getDisabledColor(props, "check") : props.readOnly ? getReadOnlyColor(props, "check") : getEnabledColor(props, "check") : "transparent";
217
192
  }, function (props) {
218
- return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "background");
193
+ return props.disabled ? getDisabledColor(props, "background") : props.readOnly ? getReadOnlyColor(props, "background") : getEnabledColor(props, "background");
219
194
  }, function (props) {
220
195
  return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
221
196
  }, function (props) {
222
197
  return props.disabled && "pointer-events: none;";
223
198
  });
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 cursor: ", ";\n\n &:hover ", " {\n border: 2px solid\n ", ";\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
199
+ 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 cursor: ", ";\n\n &:hover ", " {\n border: 2px solid\n ", ";\n color: ", ";\n }\n"])), function (props) {
226
200
  return props.theme.checkLabelSpacing;
227
201
  }, function (props) {
228
202
  return calculateWidth(props.margin, props.size);
@@ -237,14 +211,10 @@ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templ
237
211
  }, function (props) {
238
212
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
239
213
  }, function (props) {
240
- return props.disabled ? "not-allowed" : "pointer";
214
+ return props.disabled ? "not-allowed" : props.readOnly ? "default" : "pointer";
241
215
  }, Checkbox, function (props) {
242
- return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "hoverBorder");
243
- }, function (props) {
244
- return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
216
+ if (!props.disabled) return props.readOnly ? getReadOnlyColor(props, "hoverBorder") : getEnabledColor(props, "hoverBorder");
245
217
  }, function (props) {
246
- return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "hoverBackground");
218
+ if (!props.disabled) return props.readOnly ? getReadOnlyColor(props, "hoverBackground") : getEnabledColor(props, "hoverBackground");
247
219
  });
248
-
249
- var _default = DxcCheckbox;
250
- exports["default"] = _default;
220
+ var _default = exports["default"] = DxcCheckbox;
@@ -1,9 +1,7 @@
1
1
  import React from "react";
2
2
  import DxcCheckbox from "./Checkbox";
3
- import { BackgroundColorProvider } from "../BackgroundColorContext";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
- import DarkContainer from "../../.storybook/components/DarkSection";
7
5
  import styled from "styled-components";
8
6
  import { HalstackProvider } from "../HalstackContext";
9
7
 
@@ -38,6 +36,22 @@ const Checkbox = () => (
38
36
  <Title title="Disabled, checked and optional" theme="light" level={4} />
39
37
  <DxcCheckbox label="Checkbox" disabled defaultChecked optional />
40
38
  </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Read-only" theme="light" level={4} />
41
+ <DxcCheckbox label="Checkbox" readOnly />
42
+ </ExampleContainer>
43
+ <ExampleContainer pseudoState="pseudo-hover">
44
+ <Title title="Hovered read-only" theme="light" level={4} />
45
+ <DxcCheckbox label="Checkbox" readOnly />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="Read-only, checked and optional" theme="light" level={4} />
49
+ <DxcCheckbox label="Checkbox" readOnly defaultChecked optional />
50
+ </ExampleContainer>
51
+ <ExampleContainer pseudoState="pseudo-hover">
52
+ <Title title="Hovered read-only and checked" theme="light" level={4} />
53
+ <DxcCheckbox label="Checkbox" readOnly defaultChecked optional />
54
+ </ExampleContainer>
41
55
  <ExampleContainer pseudoState="pseudo-focus">
42
56
  <Title title="Focused" theme="light" level={4} />
43
57
  <DxcCheckbox label="Focused" />
@@ -70,58 +84,6 @@ const Checkbox = () => (
70
84
  <Title title="Disabled and optional with label after" theme="light" level={4} />
71
85
  <DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
72
86
  </ExampleContainer>
73
- <BackgroundColorProvider color="#333333">
74
- <DarkContainer>
75
- <ExampleContainer>
76
- <Title title="Default" theme="dark" level={4} />
77
- <DxcCheckbox label="Checkbox" />
78
- </ExampleContainer>
79
- <ExampleContainer>
80
- <Title title="Checked" theme="dark" level={4} />
81
- <DxcCheckbox label="Checkbox" defaultChecked />
82
- </ExampleContainer>
83
- <ExampleContainer>
84
- <Title title="Disabled" theme="dark" level={4} />
85
- <DxcCheckbox label="Checkbox" disabled />
86
- </ExampleContainer>
87
- <ExampleContainer>
88
- <Title title="Disabled, checked and optional" theme="dark" level={4} />
89
- <DxcCheckbox label="Checkbox" disabled defaultChecked optional />
90
- </ExampleContainer>
91
- <ExampleContainer pseudoState="pseudo-focus">
92
- <Title title="Focused" theme="dark" level={4} />
93
- <DxcCheckbox label="Focused" />
94
- </ExampleContainer>
95
- <ExampleContainer pseudoState="pseudo-hover">
96
- <Title title="Hovered" theme="dark" level={4} />
97
- <DxcCheckbox label="Hovered" />
98
- </ExampleContainer>
99
- <ExampleContainer pseudoState="pseudo-hover">
100
- <Title title="Hovered and checked" theme="dark" level={4} />
101
- <DxcCheckbox label="Hovered" defaultChecked />
102
- </ExampleContainer>
103
- <ExampleContainer>
104
- <Title title="Optional" theme="dark" level={4} />
105
- <DxcCheckbox label="Checkbox" optional />
106
- </ExampleContainer>
107
- <ExampleContainer>
108
- <Title title="Label after" theme="dark" level={4} />
109
- <DxcCheckbox label="Checkbox" labelPosition="after" />
110
- </ExampleContainer>
111
- <ExampleContainer>
112
- <Title title="Checked with label after" theme="dark" level={4} />
113
- <DxcCheckbox label="Checkbox" defaultChecked labelPosition="after" />
114
- </ExampleContainer>
115
- <ExampleContainer>
116
- <Title title="Optional with label after" theme="dark" level={4} />
117
- <DxcCheckbox label="Checkbox" optional labelPosition="after" />
118
- </ExampleContainer>
119
- <ExampleContainer>
120
- <Title title="Disabled and optional with label after" theme="dark" level={4} />
121
- <DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
122
- </ExampleContainer>
123
- </DarkContainer>
124
- </BackgroundColorProvider>
125
87
  <Title title="Sizes" theme="light" level={2} />
126
88
  <ExampleContainer>
127
89
  <DxcCheckbox label="Small" size="small" />