@dxc-technology/halstack-react 0.0.0-dddc3c4 → 0.0.0-de7c6b0

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 (220) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +110 -114
  7. package/accordion/Accordion.stories.tsx +104 -114
  8. package/accordion/Accordion.test.js +10 -11
  9. package/accordion/types.d.ts +0 -11
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +24 -65
  12. package/accordion-group/AccordionGroup.stories.tsx +93 -66
  13. package/accordion-group/AccordionGroup.test.js +27 -62
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -11
  17. package/alert/Alert.js +5 -9
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +1 -1
  20. package/bleed/Bleed.stories.tsx +1 -0
  21. package/box/Box.d.ts +1 -1
  22. package/box/Box.js +8 -27
  23. package/box/Box.stories.tsx +38 -51
  24. package/box/Box.test.js +1 -1
  25. package/box/types.d.ts +0 -11
  26. package/bulleted-list/BulletedList.js +4 -2
  27. package/bulleted-list/BulletedList.stories.tsx +7 -1
  28. package/bulleted-list/types.d.ts +31 -4
  29. package/button/Button.js +13 -16
  30. package/button/Button.stories.tsx +151 -9
  31. package/button/Button.test.js +1 -1
  32. package/button/types.d.ts +3 -3
  33. package/card/Card.d.ts +1 -1
  34. package/card/Card.js +27 -45
  35. package/card/Card.stories.tsx +12 -42
  36. package/card/Card.test.js +1 -1
  37. package/card/types.d.ts +1 -6
  38. package/checkbox/Checkbox.d.ts +2 -2
  39. package/checkbox/Checkbox.js +94 -101
  40. package/checkbox/Checkbox.stories.tsx +131 -59
  41. package/checkbox/Checkbox.test.js +94 -17
  42. package/checkbox/types.d.ts +4 -0
  43. package/chip/Chip.js +28 -49
  44. package/chip/Chip.stories.tsx +121 -26
  45. package/chip/Chip.test.js +3 -5
  46. package/common/OpenSans.css +68 -80
  47. package/common/coreTokens.d.ts +146 -0
  48. package/common/coreTokens.js +167 -0
  49. package/common/utils.d.ts +1 -0
  50. package/common/utils.js +4 -4
  51. package/common/variables.d.ts +1482 -0
  52. package/common/variables.js +990 -1137
  53. package/date-input/Calendar.d.ts +4 -0
  54. package/date-input/Calendar.js +258 -0
  55. package/date-input/DateInput.js +134 -237
  56. package/date-input/DateInput.stories.tsx +199 -33
  57. package/date-input/DateInput.test.js +494 -138
  58. package/date-input/DatePicker.d.ts +4 -0
  59. package/date-input/DatePicker.js +146 -0
  60. package/date-input/Icons.d.ts +6 -0
  61. package/date-input/Icons.js +75 -0
  62. package/date-input/YearPicker.d.ts +4 -0
  63. package/date-input/YearPicker.js +126 -0
  64. package/date-input/types.d.ts +51 -0
  65. package/dialog/Dialog.d.ts +1 -1
  66. package/dialog/Dialog.js +54 -85
  67. package/dialog/Dialog.stories.tsx +154 -170
  68. package/dialog/Dialog.test.js +302 -3
  69. package/dialog/types.d.ts +0 -12
  70. package/dropdown/Dropdown.js +43 -42
  71. package/dropdown/Dropdown.stories.tsx +210 -84
  72. package/dropdown/Dropdown.test.js +22 -27
  73. package/dropdown/DropdownMenu.js +12 -18
  74. package/dropdown/DropdownMenuItem.js +5 -18
  75. package/dropdown/types.d.ts +3 -3
  76. package/file-input/FileInput.d.ts +2 -2
  77. package/file-input/FileInput.js +174 -220
  78. package/file-input/FileInput.stories.tsx +122 -11
  79. package/file-input/FileInput.test.js +14 -14
  80. package/file-input/FileItem.d.ts +4 -14
  81. package/file-input/FileItem.js +39 -63
  82. package/file-input/types.d.ts +17 -0
  83. package/flex/Flex.d.ts +1 -1
  84. package/flex/Flex.js +33 -19
  85. package/flex/Flex.stories.tsx +35 -26
  86. package/flex/types.d.ts +83 -7
  87. package/footer/Footer.d.ts +1 -1
  88. package/footer/Footer.js +8 -23
  89. package/footer/Footer.stories.tsx +26 -16
  90. package/footer/Footer.test.js +14 -26
  91. package/footer/types.d.ts +0 -5
  92. package/grid/Grid.d.ts +7 -0
  93. package/grid/Grid.js +91 -0
  94. package/grid/Grid.stories.tsx +219 -0
  95. package/grid/types.d.ts +115 -0
  96. package/header/Header.d.ts +4 -3
  97. package/header/Header.js +20 -49
  98. package/header/Header.stories.tsx +115 -36
  99. package/header/Header.test.js +2 -2
  100. package/header/types.d.ts +1 -14
  101. package/heading/Heading.js +1 -1
  102. package/heading/Heading.test.js +1 -1
  103. package/inset/Inset.stories.tsx +2 -1
  104. package/layout/ApplicationLayout.d.ts +5 -5
  105. package/layout/ApplicationLayout.js +1 -1
  106. package/layout/types.d.ts +2 -3
  107. package/link/Link.js +4 -4
  108. package/link/Link.stories.tsx +60 -0
  109. package/link/Link.test.js +2 -4
  110. package/link/types.d.ts +2 -2
  111. package/main.d.ts +3 -2
  112. package/main.js +9 -1
  113. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  114. package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
  115. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +110 -6
  116. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  117. package/{tabs-nav → nav-tabs}/Tab.js +49 -33
  118. package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
  119. package/nav-tabs/types.js +5 -0
  120. package/number-input/NumberInput.test.js +44 -8
  121. package/package.json +13 -18
  122. package/paginator/Icons.d.ts +5 -0
  123. package/paginator/Icons.js +16 -28
  124. package/paginator/Paginator.js +8 -16
  125. package/paginator/Paginator.stories.tsx +24 -0
  126. package/paginator/Paginator.test.js +58 -48
  127. package/paragraph/Paragraph.d.ts +3 -4
  128. package/paragraph/Paragraph.js +5 -5
  129. package/password-input/PasswordInput.test.js +14 -13
  130. package/progress-bar/ProgressBar.d.ts +2 -2
  131. package/progress-bar/ProgressBar.js +5 -5
  132. package/progress-bar/ProgressBar.stories.jsx +35 -2
  133. package/progress-bar/ProgressBar.test.js +1 -1
  134. package/progress-bar/types.d.ts +4 -3
  135. package/quick-nav/QuickNav.js +11 -12
  136. package/quick-nav/QuickNav.stories.tsx +111 -19
  137. package/radio-group/Radio.d.ts +1 -1
  138. package/radio-group/Radio.js +46 -31
  139. package/radio-group/RadioGroup.js +23 -23
  140. package/radio-group/RadioGroup.stories.tsx +132 -18
  141. package/radio-group/RadioGroup.test.js +124 -97
  142. package/radio-group/types.d.ts +2 -2
  143. package/resultsetTable/Icons.d.ts +7 -0
  144. package/resultsetTable/Icons.js +51 -0
  145. package/resultsetTable/ResultsetTable.js +49 -108
  146. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  147. package/resultsetTable/ResultsetTable.test.js +41 -64
  148. package/resultsetTable/types.d.ts +1 -1
  149. package/select/Listbox.d.ts +1 -1
  150. package/select/Listbox.js +5 -35
  151. package/select/Option.js +11 -24
  152. package/select/Select.js +59 -36
  153. package/select/Select.stories.tsx +494 -150
  154. package/select/Select.test.js +341 -288
  155. package/select/types.d.ts +2 -2
  156. package/sidenav/Icons.d.ts +7 -0
  157. package/sidenav/Icons.js +51 -0
  158. package/sidenav/Sidenav.d.ts +2 -2
  159. package/sidenav/Sidenav.js +66 -96
  160. package/sidenav/Sidenav.stories.tsx +165 -63
  161. package/sidenav/types.d.ts +21 -18
  162. package/slider/Slider.d.ts +2 -2
  163. package/slider/Slider.js +24 -15
  164. package/slider/Slider.stories.tsx +57 -0
  165. package/slider/Slider.test.js +1 -1
  166. package/slider/types.d.ts +6 -2
  167. package/spinner/Spinner.js +17 -23
  168. package/spinner/Spinner.stories.jsx +53 -27
  169. package/spinner/Spinner.test.js +1 -1
  170. package/switch/Switch.d.ts +3 -3
  171. package/switch/Switch.js +96 -85
  172. package/switch/Switch.stories.tsx +33 -0
  173. package/switch/Switch.test.js +27 -14
  174. package/switch/types.d.ts +8 -3
  175. package/table/Table.js +3 -3
  176. package/table/Table.stories.jsx +80 -1
  177. package/table/Table.test.js +2 -2
  178. package/tabs/Tab.js +12 -15
  179. package/tabs/Tabs.js +11 -17
  180. package/tabs/Tabs.stories.tsx +45 -5
  181. package/tabs/Tabs.test.js +4 -5
  182. package/tabs/types.d.ts +2 -2
  183. package/tag/Tag.js +8 -10
  184. package/tag/Tag.stories.tsx +14 -1
  185. package/tag/Tag.test.js +1 -1
  186. package/text-input/Icons.d.ts +8 -0
  187. package/text-input/Icons.js +60 -0
  188. package/text-input/Suggestion.js +40 -11
  189. package/text-input/Suggestions.d.ts +4 -0
  190. package/text-input/Suggestions.js +134 -0
  191. package/text-input/TextInput.js +189 -277
  192. package/text-input/TextInput.stories.tsx +280 -184
  193. package/text-input/TextInput.test.js +736 -725
  194. package/text-input/types.d.ts +21 -2
  195. package/textarea/Textarea.js +3 -4
  196. package/textarea/Textarea.stories.jsx +60 -1
  197. package/textarea/Textarea.test.js +2 -4
  198. package/toggle-group/ToggleGroup.d.ts +2 -2
  199. package/toggle-group/ToggleGroup.js +7 -4
  200. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  201. package/toggle-group/ToggleGroup.test.js +1 -1
  202. package/toggle-group/types.d.ts +1 -1
  203. package/typography/Typography.d.ts +2 -2
  204. package/typography/Typography.js +14 -113
  205. package/typography/Typography.stories.tsx +1 -1
  206. package/useTheme.d.ts +1234 -1
  207. package/useTheme.js +1 -1
  208. package/useTranslatedLabels.d.ts +84 -1
  209. package/utils/BaseTypography.d.ts +21 -0
  210. package/utils/BaseTypography.js +108 -0
  211. package/utils/FocusLock.d.ts +13 -0
  212. package/utils/FocusLock.js +138 -0
  213. package/wizard/Wizard.js +2 -2
  214. package/wizard/Wizard.stories.tsx +20 -0
  215. package/wizard/Wizard.test.js +1 -1
  216. package/wizard/types.d.ts +5 -6
  217. package/card/ice-cream.jpg +0 -0
  218. package/common/RequiredComponent.js +0 -32
  219. /package/{tabs-nav → grid}/types.js +0 -0
  220. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -17,7 +17,7 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
- var _variables = require("../common/variables.js");
20
+ var _variables = require("../common/variables");
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
@@ -46,11 +46,8 @@ var DxcSpinner = function DxcSpinner(_ref) {
46
46
  margin: margin,
47
47
  mode: mode
48
48
  }, /*#__PURE__*/_react["default"].createElement(SpinnerContainer, {
49
- backgroundType: backgroundType,
50
- mode: mode
51
- }, mode === "overlay" && /*#__PURE__*/_react["default"].createElement(BackOverlay, null), /*#__PURE__*/_react["default"].createElement(BackgroundSpinner, {
52
49
  mode: mode
53
- }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGBackground, {
50
+ }, mode === "overlay" && /*#__PURE__*/_react["default"].createElement(BackOverlay, null), /*#__PURE__*/_react["default"].createElement(BackgroundSpinner, null, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGBackground, {
54
51
  viewBox: "0 0 140 140"
55
52
  }, /*#__PURE__*/_react["default"].createElement(CircleBackground, {
56
53
  cx: "70",
@@ -65,8 +62,7 @@ var DxcSpinner = function DxcSpinner(_ref) {
65
62
  r: "6",
66
63
  mode: mode
67
64
  }))), value >= 0 && value <= 100 ? /*#__PURE__*/_react["default"].createElement(Spinner, {
68
- role: "progressbar",
69
- mode: mode
65
+ role: "progressbar"
70
66
  }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
71
67
  viewBox: "0 0 140 140",
72
68
  isDeterminated: true
@@ -90,8 +86,7 @@ var DxcSpinner = function DxcSpinner(_ref) {
90
86
  isDeterminated: true,
91
87
  value: value
92
88
  }))) : /*#__PURE__*/_react["default"].createElement(Spinner, {
93
- role: "progressbar",
94
- mode: mode
89
+ role: "progressbar"
95
90
  }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
96
91
  viewBox: "0 0 140 140",
97
92
  isDeterminated: false
@@ -101,7 +96,8 @@ var DxcSpinner = function DxcSpinner(_ref) {
101
96
  r: "65",
102
97
  backgroundType: backgroundType,
103
98
  mode: mode,
104
- isDeterminated: false
99
+ isDeterminated: false,
100
+ value: value
105
101
  })), mode === "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
106
102
  viewBox: "0 0 16 16",
107
103
  isDeterminated: false
@@ -111,26 +107,24 @@ var DxcSpinner = function DxcSpinner(_ref) {
111
107
  r: "6",
112
108
  backgroundType: backgroundType,
113
109
  mode: mode,
114
- isDeterminated: false
115
- }))), mode !== "small" && /*#__PURE__*/_react["default"].createElement(LabelsContainer, {
116
- label: label,
117
- value: value,
118
- showValue: showValue
119
- }, /*#__PURE__*/_react["default"].createElement(SpinnerLabel, {
110
+ isDeterminated: false,
111
+ value: value
112
+ }))), mode !== "small" && /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, /*#__PURE__*/_react["default"].createElement(SpinnerLabel, {
120
113
  backgroundType: backgroundType,
121
114
  mode: mode
122
115
  }, label), (value || value === 0) && showValue && /*#__PURE__*/_react["default"].createElement(SpinnerProgress, {
116
+ value: value,
123
117
  backgroundType: backgroundType,
124
118
  mode: mode,
125
119
  showValue: showValue
126
120
  }, value, "%")))));
127
121
  };
128
122
 
129
- var determinatedValue = function determinatedValue(props, strokeDashArray) {
123
+ var determinatedValue = function determinatedValue(value, strokeDashArray) {
130
124
  var val = 0;
131
125
 
132
- if (props.value >= 0 && props.value <= 100) {
133
- val = strokeDashArray * (1 - props.value / 100);
126
+ if (value >= 0 && value <= 100) {
127
+ val = strokeDashArray * (1 - value / 100);
134
128
  }
135
129
 
136
130
  return val;
@@ -178,7 +172,7 @@ var BackOverlay = _styledComponents["default"].div(_templateObject3 || (_templat
178
172
  return "".concat(props.theme.overlayOpacity);
179
173
  });
180
174
 
181
- var BackgroundSpinner = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: absolute;\n z-index: 1;\n"])));
175
+ var BackgroundSpinner = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: absolute;\n"])));
182
176
 
183
177
  var SVGBackground = _styledComponents["default"].svg(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n"])));
184
178
 
@@ -190,7 +184,7 @@ var CircleBackground = _styledComponents["default"].circle(_templateObject6 || (
190
184
  return props.mode !== "small" ? "8.5px" : "2px";
191
185
  });
192
186
 
193
- var Spinner = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: relative;\n z-index: 2;\n"])));
187
+ var Spinner = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: relative;\n"])));
194
188
 
195
189
  var SVGSpinner = _styledComponents["default"].svg(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n transform: rotate(-90deg);\n top: 0;\n left: 0;\n transform-origin: center;\n overflow: visible;\n animation: ", ";\n"])), function (props) {
196
190
  return !props.isDeterminated ? "1.4s linear infinite both spinner-svg" : "";
@@ -207,7 +201,7 @@ var CircleSpinner = _styledComponents["default"].circle(_templateObject9 || (_te
207
201
  }, function (props) {
208
202
  return props.mode !== "small" ? "8.5px" : "2px";
209
203
  }, function (props) {
210
- return props.isDeterminated ? props.mode !== "small" ? determinatedValue(props, 409) : determinatedValue(props, 38) : "";
204
+ return props.isDeterminated ? props.mode !== "small" ? determinatedValue(props.value, 409) : determinatedValue(props.value, 38) : "";
211
205
  });
212
206
 
213
207
  var LabelsContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n margin: 0 auto;\n position: absolute;\n text-align: center;\n width: 110px;\n"])));
@@ -229,7 +223,7 @@ var SpinnerLabel = _styledComponents["default"].p(_templateObject11 || (_templat
229
223
  });
230
224
 
231
225
  var SpinnerProgress = _styledComponents["default"].p(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n font-style: ", ";\n color: ", ";\n text-align: ", ";\n letter-spacing: ", ";\n"])), function (props) {
232
- return props.value !== "" && props.showValue === true && "block" || "none";
226
+ return props.value && props.showValue === true && "block" || "none";
233
227
  }, function (props) {
234
228
  return props.mode === "overlay" ? props.theme.overlayProgressValueFontFamily : props.theme.progressValueFontFamily;
235
229
  }, function (props) {
@@ -2,67 +2,84 @@ import React from "react";
2
2
  import DxcSpinner from "./Spinner";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Spinner",
8
9
  component: DxcSpinner,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ spinner: {
14
+ accentColor: "#5f249f",
15
+ baseColor: "#ffffff",
16
+ fontColor: "#000000",
17
+ overlayColor: "#a46ede",
18
+ overlayFontColor: "#ffffff",
19
+ },
20
+ };
21
+
11
22
  export const Chromatic = () => (
12
23
  <>
13
24
  <ExampleContainer>
14
25
  <Title title="With label" theme="light" level={4} />
15
- <DxcSpinner label="Label" value="50"></DxcSpinner>
26
+ <DxcSpinner label="Label" value={50}></DxcSpinner>
16
27
  <Title title="With value label" theme="light" level={4} />
17
- <DxcSpinner value="50" showValue></DxcSpinner>
28
+ <DxcSpinner value={50} showValue></DxcSpinner>
18
29
  <Title title="With label and value label" theme="light" level={4} />
19
- <DxcSpinner label="Label" value="50" showValue></DxcSpinner>
30
+ <DxcSpinner label="Label" value={50} showValue></DxcSpinner>
20
31
  <Title title="With 100%" theme="light" level={4} />
21
- <DxcSpinner label="Label" value="100" showValue></DxcSpinner>
32
+ <DxcSpinner label="Label" value={100} showValue></DxcSpinner>
22
33
  </ExampleContainer>
23
34
  <Title title="Modes" theme="light" level={2} />
24
35
  <ExampleContainer>
25
36
  <Title title="Mode large" theme="light" level={4} />
26
- <DxcSpinner mode="large" value="50"></DxcSpinner>
37
+ <DxcSpinner mode="large" value={50}></DxcSpinner>
27
38
  <Title title="Mode small" theme="light" level={4} />
28
- <DxcSpinner mode="small" value="50"></DxcSpinner>
39
+ <DxcSpinner mode="small" value={50}></DxcSpinner>
29
40
  <Title title="Mode small with 100%" theme="light" level={4} />
30
- <DxcSpinner mode="small" value="100" showValue></DxcSpinner>
41
+ <DxcSpinner mode="small" value={100} showValue></DxcSpinner>
31
42
  </ExampleContainer>
32
43
  <Title title="Margins with large mode" theme="light" level={2} />
33
44
  <ExampleContainer>
34
45
  <Title title="Xxsmall margin" theme="light" level={4} />
35
- <DxcSpinner margin="xxsmall" value="75"></DxcSpinner>
46
+ <DxcSpinner margin="xxsmall" value={75}></DxcSpinner>
36
47
  <Title title="Xsmall margin" theme="light" level={4} />
37
- <DxcSpinner margin="xsmall" value="75"></DxcSpinner>
48
+ <DxcSpinner margin="xsmall" value={75}></DxcSpinner>
38
49
  <Title title="Small margin" theme="light" level={4} />
39
- <DxcSpinner margin="small" value="75"></DxcSpinner>
50
+ <DxcSpinner margin="small" value={75}></DxcSpinner>
40
51
  <Title title="Medium margin" theme="light" level={4} />
41
- <DxcSpinner margin="medium" value="75"></DxcSpinner>
52
+ <DxcSpinner margin="medium" value={75}></DxcSpinner>
42
53
  <Title title="Large margin" theme="light" level={4} />
43
- <DxcSpinner margin="large" value="75"></DxcSpinner>
54
+ <DxcSpinner margin="large" value={75}></DxcSpinner>
44
55
  <Title title="Xlarge margin" theme="light" level={4} />
45
- <DxcSpinner margin="xlarge" value="75"></DxcSpinner>
56
+ <DxcSpinner margin="xlarge" value={75}></DxcSpinner>
46
57
  <Title title="Xxlarge margin" theme="light" level={4} />
47
- <DxcSpinner margin="xxlarge" value="75"></DxcSpinner>
58
+ <DxcSpinner margin="xxlarge" value={75}></DxcSpinner>
48
59
  </ExampleContainer>
49
60
  <Title title="Margins with small mode" theme="light" level={2} />
50
61
  <ExampleContainer>
51
62
  <Title title="Xxsmall margin" theme="light" level={4} />
52
- <DxcSpinner margin="xxsmall" mode="small" value="75"></DxcSpinner>
63
+ <DxcSpinner margin="xxsmall" mode="small" value={75}></DxcSpinner>
53
64
  <Title title="Xsmall margin" theme="light" level={4} />
54
- <DxcSpinner margin="xsmall" mode="small" value="75"></DxcSpinner>
65
+ <DxcSpinner margin="xsmall" mode="small" value={75}></DxcSpinner>
55
66
  <Title title="Small margin" theme="light" level={4} />
56
- <DxcSpinner margin="small" mode="small" value="75"></DxcSpinner>
67
+ <DxcSpinner margin="small" mode="small" value={75}></DxcSpinner>
57
68
  <Title title="Medium margin" theme="light" level={4} />
58
- <DxcSpinner margin="medium" mode="small" value="75"></DxcSpinner>
69
+ <DxcSpinner margin="medium" mode="small" value={75}></DxcSpinner>
59
70
  <Title title="Large margin" theme="light" level={4} />
60
- <DxcSpinner margin="large" mode="small" value="75"></DxcSpinner>
71
+ <DxcSpinner margin="large" mode="small" value={75}></DxcSpinner>
61
72
  <Title title="Xlarge margin" theme="light" level={4} />
62
- <DxcSpinner margin="xlarge" mode="small" value="75"></DxcSpinner>
73
+ <DxcSpinner margin="xlarge" mode="small" value={75}></DxcSpinner>
63
74
  <Title title="Xxlarge margin" theme="light" level={4} />
64
- <DxcSpinner margin="xxlarge" mode="small" value="75"></DxcSpinner>
65
- <hr />
75
+ <DxcSpinner margin="xxlarge" mode="small" value={75}></DxcSpinner>
76
+ </ExampleContainer>
77
+ <Title title="Opinionated theme" theme="light" level={2} />
78
+ <ExampleContainer>
79
+ <Title title="With label and value label" theme="light" level={4} />
80
+ <HalstackProvider theme={opinionatedTheme}>
81
+ <DxcSpinner label="Label" value={50} showValue></DxcSpinner>
82
+ </HalstackProvider>
66
83
  </ExampleContainer>
67
84
  </>
68
85
  );
@@ -70,34 +87,43 @@ export const Chromatic = () => (
70
87
  export const SpinnerOverlay = () => (
71
88
  <ExampleContainer>
72
89
  <Title title="Mode overlay" theme="light" level={4} />
73
- <DxcSpinner mode="overlay" value="25"></DxcSpinner>
90
+ <DxcSpinner mode="overlay" value={25}></DxcSpinner>
74
91
  </ExampleContainer>
75
92
  );
76
93
 
77
94
  export const SpinnerOverlayWith100 = () => (
78
95
  <ExampleContainer>
79
96
  <Title title="Mode overlay" theme="light" level={4} />
80
- <DxcSpinner mode="overlay" value="100"></DxcSpinner>
97
+ <DxcSpinner mode="overlay" value={100}></DxcSpinner>
81
98
  </ExampleContainer>
82
99
  );
83
100
 
84
101
  export const SpinnerOverlayWithLabel = () => (
85
102
  <ExampleContainer>
86
103
  <Title title="Mode overlay" theme="light" level={4} />
87
- <DxcSpinner mode="overlay" value="50" label="Label"></DxcSpinner>
104
+ <DxcSpinner mode="overlay" value={50} label="Label"></DxcSpinner>
88
105
  </ExampleContainer>
89
106
  );
90
107
 
91
108
  export const SpinnerOverlayWithValue = () => (
92
109
  <ExampleContainer>
93
110
  <Title title="Mode overlay" theme="light" level={4} />
94
- <DxcSpinner mode="overlay" value="50" showValue></DxcSpinner>
111
+ <DxcSpinner mode="overlay" value={50} showValue></DxcSpinner>
95
112
  </ExampleContainer>
96
113
  );
97
114
 
98
115
  export const SpinnerOverlayWithValueAndLabel = () => (
99
116
  <ExampleContainer>
100
117
  <Title title="Mode overlay" theme="light" level={4} />
101
- <DxcSpinner mode="overlay" label="Label" value="50" showValue></DxcSpinner>
118
+ <DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
119
+ </ExampleContainer>
120
+ );
121
+
122
+ export const SpinnerOverlayWithValueAndLabelOpinionated = () => (
123
+ <ExampleContainer>
124
+ <HalstackProvider theme={opinionatedTheme}>
125
+ <Title title="Mode overlay" theme="light" level={4} />
126
+ <DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
127
+ </HalstackProvider>
102
128
  </ExampleContainer>
103
129
  );
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Spinner = _interopRequireDefault(require("./Spinner"));
9
+ var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
10
10
 
11
11
  describe("Spinner component tests", function () {
12
12
  test("Spinner renders with correct label", function () {
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
2
- import { SwitchPropsType } from "./types";
3
- declare const DxcSwitch: ({ defaultChecked, checked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
1
+ import React from "react";
2
+ import SwitchPropsType from "./types";
3
+ declare const DxcSwitch: React.ForwardRefExoticComponent<SwitchPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcSwitch;
package/switch/Switch.js CHANGED
@@ -21,9 +21,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _uuid = require("uuid");
23
23
 
24
- var _variables = require("../common/variables.js");
24
+ var _variables = require("../common/variables");
25
25
 
26
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
27
27
 
28
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
29
 
@@ -31,15 +31,13 @@ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabel
31
31
 
32
32
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
33
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
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 DxcSwitch = function DxcSwitch(_ref) {
41
- var _ref2;
42
-
40
+ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
41
  var defaultChecked = _ref.defaultChecked,
44
42
  checked = _ref.checked,
45
43
  value = _ref.value,
@@ -71,10 +69,6 @@ var DxcSwitch = function DxcSwitch(_ref) {
71
69
  innerChecked = _useState4[0],
72
70
  setInnerChecked = _useState4[1];
73
71
 
74
- var _useState5 = (0, _react.useState)((_ref2 = label !== "" && label !== null && label !== undefined) !== null && _ref2 !== void 0 ? _ref2 : false),
75
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
76
- hasLabel = _useState6[0];
77
-
78
72
  var colorsTheme = (0, _useTheme["default"])();
79
73
  var translatedLabels = (0, _useTranslatedLabels["default"])();
80
74
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
@@ -89,30 +83,16 @@ var DxcSwitch = function DxcSwitch(_ref) {
89
83
  refTrack.current.focus();
90
84
  var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
91
85
  setInnerChecked(isChecked);
92
-
93
- if (typeof onChange === "function") {
94
- onChange(isChecked);
95
- }
96
-
86
+ onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
97
87
  break;
98
88
  }
99
89
  };
100
90
 
101
91
  var handlerSwitchChange = function handlerSwitchChange(event) {
102
- if (checked === undefined) {
103
- var _event$target$checked;
104
-
105
- var isChecked = (_event$target$checked = event.target.checked) !== null && _event$target$checked !== void 0 ? _event$target$checked : !innerChecked;
106
- setInnerChecked(isChecked);
107
-
108
- if (typeof onChange === "function") {
109
- onChange(isChecked);
110
- }
111
- } else {
112
- if (typeof onChange === "function") {
113
- onChange(!checked);
114
- }
115
- }
92
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
93
+ return !innerChecked;
94
+ });
95
+ onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
116
96
  };
117
97
 
118
98
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
@@ -120,64 +100,108 @@ var DxcSwitch = function DxcSwitch(_ref) {
120
100
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
121
101
  margin: margin,
122
102
  size: size,
123
- onKeyDown: handleOnKeyDown
124
- }, labelPosition === "before" && hasLabel && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
103
+ onKeyDown: handleOnKeyDown,
104
+ disabled: disabled,
105
+ onClick: !disabled ? handlerSwitchChange : undefined,
106
+ ref: ref
107
+ }, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
125
108
  id: labelId,
126
109
  labelPosition: labelPosition,
127
- onClick: !disabled ? handlerSwitchChange : undefined,
128
110
  disabled: disabled,
129
111
  backgroundType: backgroundType,
130
- hasLabel: hasLabel
131
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(SwitchBase, {
132
- labelPosition: labelPosition,
133
- hasLabel: hasLabel,
134
- htmlFor: labelId,
135
- onClick: disabled === true ? function () {} : handlerSwitchChange
136
- }, /*#__PURE__*/_react["default"].createElement(SwitchInput, {
112
+ label: label
113
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
137
114
  type: "checkbox",
138
- role: "switch",
139
115
  name: name,
140
- id: labelId,
141
- disabled: disabled,
116
+ "aria-hidden": true,
142
117
  value: value,
143
- "aria-labelledby": labelId,
144
- "aria-label": hasLabel ? label : undefined,
145
- "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
146
- defaultChecked: defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : undefined,
147
- tabIndex: -1
148
- }), disabled ? /*#__PURE__*/_react["default"].createElement(DisabledSwitchTrack, {
149
- backgroundType: backgroundType,
150
- "data-checked": checked !== null && checked !== void 0 ? checked : innerChecked ? innerChecked : undefined,
151
- tabIndex: -1
152
- }) : /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
118
+ disabled: disabled,
119
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
120
+ readOnly: true
121
+ }), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
122
+ role: "switch",
153
123
  backgroundType: backgroundType,
154
- "data-checked": checked !== null && checked !== void 0 ? checked : innerChecked ? innerChecked : undefined,
155
- tabIndex: tabIndex,
124
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
125
+ "aria-disabled": disabled,
126
+ disabled: disabled,
127
+ "aria-labelledby": labelId,
128
+ tabIndex: !disabled ? tabIndex : -1,
156
129
  ref: refTrack
157
- })), labelPosition === "after" && hasLabel && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
130
+ })), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
158
131
  id: labelId,
159
132
  labelPosition: labelPosition,
160
- onClick: !disabled ? handlerSwitchChange : undefined,
161
133
  disabled: disabled,
162
134
  backgroundType: backgroundType,
163
- hasLabel: hasLabel
135
+ label: label
164
136
  }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
165
- };
137
+ });
166
138
 
167
139
  var sizes = {
168
140
  small: "60px",
169
141
  medium: "240px",
170
142
  large: "480px",
171
143
  fillParent: "100%",
172
- fitContent: "unset"
144
+ fitContent: "fit-content"
173
145
  };
174
146
 
175
147
  var calculateWidth = function calculateWidth(margin, size) {
176
148
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
177
149
  };
178
150
 
179
- var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
151
+ var getDisabledColor = function getDisabledColor(props, element, subelement) {
152
+ switch (element) {
153
+ case "track":
154
+ switch (subelement) {
155
+ case "check":
156
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
157
+
158
+ case "uncheck":
159
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
160
+ }
161
+
162
+ case "thumb":
163
+ switch (subelement) {
164
+ case "check":
165
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
166
+
167
+ case "uncheck":
168
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
169
+ }
170
+
171
+ case "label":
172
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
173
+ }
174
+ };
175
+
176
+ var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
177
+ switch (element) {
178
+ case "track":
179
+ switch (subelement) {
180
+ case "check":
181
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
182
+
183
+ case "uncheck":
184
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
185
+ }
186
+
187
+ case "thumb":
188
+ switch (subelement) {
189
+ case "check":
190
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
191
+
192
+ case "uncheck":
193
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
194
+ }
195
+
196
+ case "label":
197
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
198
+ }
199
+ };
200
+
201
+ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
180
202
  return calculateWidth(props.margin, props.size);
203
+ }, function (props) {
204
+ return props.disabled === true ? "not-allowed" : "pointer";
181
205
  }, function (props) {
182
206
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
183
207
  }, function (props) {
@@ -190,8 +214,8 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
190
214
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
191
215
  });
192
216
 
193
- var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
194
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
217
+ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
218
+ return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
195
219
  }, function (props) {
196
220
  return props.theme.labelFontFamily;
197
221
  }, function (props) {
@@ -201,23 +225,21 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
201
225
  }, function (props) {
202
226
  return props.theme.labelFontWeight;
203
227
  }, function (props) {
204
- return props.disabled === true ? "not-allowed" : "pointer";
205
- }, function (props) {
206
- return !props.hasLabel ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
228
+ return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
207
229
  }, function (props) {
208
230
  return props.labelPosition === "before" && "order: -1";
209
231
  });
210
232
 
211
- var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: ", ";\n"])), function (props) {
212
- return !props.hasLabel ? "0px 4px" : props.labelPosition === "before" ? "0 4px 0 12px" : "0 12px 0 4px";
213
- });
233
+ var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0px 12px;\n"])));
214
234
 
215
- var SwitchInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0px;\n"])));
235
+ var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
216
236
 
217
- var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n transition: transform 0.2s ease;\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n transition: transform 0.2s ease;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n z-index: 1;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[data-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
237
+ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
218
238
  return props.theme.trackWidth;
219
239
  }, function (props) {
220
240
  return props.theme.trackHeight;
241
+ }, function (props) {
242
+ return props.disabled ? "not-allowed" : "pointer";
221
243
  }, function (props) {
222
244
  return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
223
245
  }, function (props) {
@@ -225,27 +247,16 @@ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templa
225
247
  }, function (props) {
226
248
  return props.theme.thumbHeight;
227
249
  }, function (props) {
228
- return props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
250
+ return props.disabled ? getDisabledColor(props, "thumb", "uncheck") : getNotDisabledColor(props, "thumb", "uncheck");
229
251
  }, function (props) {
230
- return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
252
+ return props.disabled ? getDisabledColor(props, "track", "uncheck") : getNotDisabledColor(props, "track", "uncheck");
231
253
  }, function (props) {
232
- return props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
254
+ return props.disabled ? getDisabledColor(props, "track", "check") : getNotDisabledColor(props, "track", "check");
233
255
  }, function (props) {
234
256
  return props.theme.thumbShift;
235
257
  }, function (props) {
236
- return props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
258
+ return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
237
259
  });
238
260
 
239
- var DisabledSwitchTrack = (0, _styledComponents["default"])(SwitchTrack)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: not-allowed;\n\n /* Unchecked */\n background-color: ", ";\n\n ::before {\n background-color: ", ";\n }\n\n /* Checked */\n &[data-checked=\"true\"] {\n background-color: ", ";\n\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
240
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
241
- }, function (props) {
242
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
243
- }, function (props) {
244
- return props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
245
- }, function (props) {
246
- return props.theme.thumbShift;
247
- }, function (props) {
248
- return props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
249
- });
250
261
  var _default = DxcSwitch;
251
262
  exports["default"] = _default;