@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c3c521c

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 (319) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1215 -6
  4. package/HalstackContext.js +125 -110
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -160
  8. package/accordion/Accordion.stories.tsx +102 -126
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +31 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +20 -59
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +142 -42
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +64 -63
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +19 -60
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -14
  40. package/bulleted-list/BulletedList.d.ts +7 -0
  41. package/bulleted-list/BulletedList.js +89 -0
  42. package/bulleted-list/BulletedList.stories.tsx +115 -0
  43. package/bulleted-list/types.d.ts +38 -0
  44. package/button/Button.d.ts +1 -1
  45. package/button/Button.js +63 -117
  46. package/button/Button.stories.tsx +160 -90
  47. package/button/Button.test.js +20 -17
  48. package/button/types.d.ts +12 -8
  49. package/card/Card.d.ts +1 -1
  50. package/card/Card.js +48 -89
  51. package/card/Card.stories.tsx +12 -42
  52. package/card/Card.test.js +11 -22
  53. package/card/types.d.ts +6 -11
  54. package/checkbox/Checkbox.d.ts +2 -2
  55. package/checkbox/Checkbox.js +140 -182
  56. package/checkbox/Checkbox.stories.tsx +128 -94
  57. package/checkbox/Checkbox.test.js +160 -39
  58. package/checkbox/types.d.ts +11 -3
  59. package/chip/Chip.js +39 -79
  60. package/chip/Chip.stories.tsx +121 -26
  61. package/chip/Chip.test.js +16 -31
  62. package/chip/types.d.ts +4 -4
  63. package/common/OpenSans.css +68 -80
  64. package/common/coreTokens.d.ts +237 -0
  65. package/common/coreTokens.js +184 -0
  66. package/common/utils.d.ts +1 -0
  67. package/common/utils.js +6 -12
  68. package/common/variables.d.ts +1367 -0
  69. package/common/variables.js +909 -1140
  70. package/container/Container.d.ts +4 -0
  71. package/container/Container.js +194 -0
  72. package/container/Container.stories.tsx +214 -0
  73. package/container/types.d.ts +74 -0
  74. package/date-input/Calendar.d.ts +4 -0
  75. package/date-input/Calendar.js +214 -0
  76. package/date-input/DateInput.js +150 -299
  77. package/date-input/DateInput.stories.tsx +203 -56
  78. package/date-input/DateInput.test.js +700 -371
  79. package/date-input/DatePicker.d.ts +4 -0
  80. package/date-input/DatePicker.js +115 -0
  81. package/date-input/Icons.d.ts +6 -0
  82. package/date-input/Icons.js +58 -0
  83. package/date-input/YearPicker.d.ts +4 -0
  84. package/date-input/YearPicker.js +100 -0
  85. package/date-input/types.d.ts +72 -15
  86. package/dialog/Dialog.d.ts +1 -1
  87. package/dialog/Dialog.js +73 -107
  88. package/dialog/Dialog.stories.tsx +320 -167
  89. package/dialog/Dialog.test.js +287 -20
  90. package/dialog/types.d.ts +18 -25
  91. package/dropdown/Dropdown.d.ts +1 -1
  92. package/dropdown/Dropdown.js +243 -300
  93. package/dropdown/Dropdown.stories.tsx +245 -56
  94. package/dropdown/Dropdown.test.js +575 -165
  95. package/dropdown/DropdownMenu.d.ts +4 -0
  96. package/dropdown/DropdownMenu.js +63 -0
  97. package/dropdown/DropdownMenuItem.d.ts +4 -0
  98. package/dropdown/DropdownMenuItem.js +67 -0
  99. package/dropdown/types.d.ts +32 -14
  100. package/file-input/FileInput.d.ts +2 -2
  101. package/file-input/FileInput.js +241 -355
  102. package/file-input/FileInput.stories.tsx +123 -12
  103. package/file-input/FileInput.test.js +369 -367
  104. package/file-input/FileItem.d.ts +4 -14
  105. package/file-input/FileItem.js +45 -96
  106. package/file-input/types.d.ts +25 -8
  107. package/flex/Flex.d.ts +4 -0
  108. package/flex/Flex.js +57 -0
  109. package/flex/Flex.stories.tsx +112 -0
  110. package/flex/types.d.ts +97 -0
  111. package/footer/Footer.d.ts +1 -1
  112. package/footer/Footer.js +70 -117
  113. package/footer/Footer.stories.tsx +60 -19
  114. package/footer/Footer.test.js +33 -57
  115. package/footer/Icons.d.ts +3 -2
  116. package/footer/Icons.js +66 -7
  117. package/footer/types.d.ts +25 -26
  118. package/grid/Grid.d.ts +7 -0
  119. package/grid/Grid.js +76 -0
  120. package/grid/Grid.stories.tsx +219 -0
  121. package/grid/types.d.ts +115 -0
  122. package/header/Header.d.ts +4 -3
  123. package/header/Header.js +85 -168
  124. package/header/Header.stories.tsx +118 -39
  125. package/header/Header.test.js +13 -26
  126. package/header/Icons.d.ts +2 -2
  127. package/header/Icons.js +4 -9
  128. package/header/types.d.ts +5 -19
  129. package/heading/Heading.js +10 -32
  130. package/heading/Heading.test.js +71 -88
  131. package/heading/types.d.ts +7 -7
  132. package/image/Image.d.ts +4 -0
  133. package/image/Image.js +70 -0
  134. package/image/Image.stories.tsx +127 -0
  135. package/image/types.d.ts +72 -0
  136. package/inset/Inset.js +13 -21
  137. package/inset/Inset.stories.tsx +5 -4
  138. package/inset/types.d.ts +2 -2
  139. package/layout/ApplicationLayout.d.ts +15 -6
  140. package/layout/ApplicationLayout.js +50 -115
  141. package/layout/ApplicationLayout.stories.tsx +81 -45
  142. package/layout/Icons.d.ts +8 -5
  143. package/layout/Icons.js +51 -59
  144. package/layout/SidenavContext.d.ts +1 -1
  145. package/layout/SidenavContext.js +3 -9
  146. package/layout/types.d.ts +21 -32
  147. package/link/Link.js +25 -46
  148. package/link/Link.stories.tsx +73 -6
  149. package/link/Link.test.js +24 -44
  150. package/link/types.d.ts +14 -14
  151. package/main.d.ts +12 -13
  152. package/main.js +45 -103
  153. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  154. package/{tabs-nav → nav-tabs}/NavTabs.js +28 -60
  155. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  156. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  157. package/nav-tabs/Tab.js +118 -0
  158. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  159. package/number-input/NumberInput.d.ts +7 -0
  160. package/number-input/NumberInput.js +26 -35
  161. package/number-input/NumberInput.stories.tsx +42 -26
  162. package/number-input/NumberInput.test.js +701 -377
  163. package/number-input/types.d.ts +11 -5
  164. package/package.json +43 -46
  165. package/paginator/Icons.d.ts +5 -0
  166. package/paginator/Icons.js +21 -47
  167. package/paginator/Paginator.js +23 -59
  168. package/paginator/Paginator.stories.tsx +24 -0
  169. package/paginator/Paginator.test.js +253 -226
  170. package/paginator/types.d.ts +3 -3
  171. package/paragraph/Paragraph.d.ts +5 -0
  172. package/paragraph/Paragraph.js +22 -0
  173. package/paragraph/Paragraph.stories.tsx +27 -0
  174. package/password-input/Icons.d.ts +6 -0
  175. package/password-input/Icons.js +35 -0
  176. package/password-input/PasswordInput.js +57 -126
  177. package/password-input/PasswordInput.stories.tsx +1 -33
  178. package/password-input/PasswordInput.test.js +160 -142
  179. package/password-input/types.d.ts +8 -7
  180. package/progress-bar/ProgressBar.js +65 -91
  181. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  182. package/progress-bar/ProgressBar.test.js +72 -44
  183. package/progress-bar/types.d.ts +3 -3
  184. package/quick-nav/QuickNav.js +27 -45
  185. package/quick-nav/QuickNav.stories.tsx +146 -27
  186. package/quick-nav/types.d.ts +10 -10
  187. package/radio-group/Radio.d.ts +1 -1
  188. package/radio-group/Radio.js +59 -76
  189. package/radio-group/RadioGroup.js +67 -114
  190. package/radio-group/RadioGroup.stories.tsx +132 -18
  191. package/radio-group/RadioGroup.test.js +518 -457
  192. package/radio-group/types.d.ts +10 -10
  193. package/resultset-table/Icons.d.ts +7 -0
  194. package/resultset-table/Icons.js +47 -0
  195. package/resultset-table/ResultsetTable.js +159 -0
  196. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  197. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
  198. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  199. package/resultset-table/types.js +5 -0
  200. package/select/Icons.d.ts +7 -7
  201. package/select/Icons.js +1 -5
  202. package/select/Listbox.js +17 -49
  203. package/select/Option.js +27 -50
  204. package/select/Select.js +132 -202
  205. package/select/Select.stories.tsx +497 -152
  206. package/select/Select.test.js +1966 -1758
  207. package/select/types.d.ts +16 -19
  208. package/sidenav/Icons.d.ts +7 -0
  209. package/sidenav/Icons.js +47 -0
  210. package/sidenav/Sidenav.d.ts +6 -5
  211. package/sidenav/Sidenav.js +127 -78
  212. package/sidenav/Sidenav.stories.tsx +251 -151
  213. package/sidenav/Sidenav.test.js +26 -45
  214. package/sidenav/types.d.ts +52 -26
  215. package/slider/Slider.d.ts +2 -2
  216. package/slider/Slider.js +148 -181
  217. package/slider/Slider.test.js +185 -81
  218. package/slider/types.d.ts +7 -3
  219. package/spinner/Spinner.js +31 -75
  220. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  221. package/spinner/Spinner.test.js +26 -35
  222. package/spinner/types.d.ts +3 -3
  223. package/status-light/StatusLight.d.ts +4 -0
  224. package/status-light/StatusLight.js +51 -0
  225. package/status-light/StatusLight.stories.tsx +74 -0
  226. package/status-light/StatusLight.test.js +25 -0
  227. package/status-light/types.d.ts +17 -0
  228. package/status-light/types.js +5 -0
  229. package/switch/Switch.d.ts +2 -2
  230. package/switch/Switch.js +145 -126
  231. package/switch/Switch.stories.tsx +37 -60
  232. package/switch/Switch.test.js +138 -56
  233. package/switch/types.d.ts +7 -3
  234. package/table/Table.js +8 -30
  235. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  236. package/table/Table.test.js +3 -8
  237. package/table/types.d.ts +8 -8
  238. package/tabs/Tab.d.ts +4 -0
  239. package/tabs/Tab.js +116 -0
  240. package/tabs/Tabs.js +314 -141
  241. package/tabs/Tabs.stories.tsx +120 -6
  242. package/tabs/Tabs.test.js +223 -69
  243. package/tabs/types.d.ts +28 -18
  244. package/tag/Tag.js +29 -61
  245. package/tag/Tag.stories.tsx +14 -1
  246. package/tag/Tag.test.js +20 -31
  247. package/tag/types.d.ts +7 -7
  248. package/text-input/Icons.d.ts +8 -0
  249. package/text-input/Icons.js +56 -0
  250. package/text-input/Suggestion.js +40 -28
  251. package/text-input/Suggestions.d.ts +4 -0
  252. package/text-input/Suggestions.js +84 -0
  253. package/text-input/TextInput.js +308 -506
  254. package/text-input/TextInput.stories.tsx +266 -275
  255. package/text-input/TextInput.test.js +1402 -1375
  256. package/text-input/types.d.ts +43 -16
  257. package/textarea/Textarea.js +70 -113
  258. package/textarea/Textarea.stories.tsx +174 -0
  259. package/textarea/Textarea.test.js +152 -183
  260. package/textarea/types.d.ts +9 -5
  261. package/toggle-group/ToggleGroup.d.ts +2 -2
  262. package/toggle-group/ToggleGroup.js +92 -106
  263. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  264. package/toggle-group/ToggleGroup.test.js +69 -88
  265. package/toggle-group/types.d.ts +26 -17
  266. package/typography/Typography.d.ts +4 -0
  267. package/typography/Typography.js +23 -0
  268. package/typography/Typography.stories.tsx +198 -0
  269. package/typography/types.d.ts +18 -0
  270. package/typography/types.js +5 -0
  271. package/useTheme.d.ts +1119 -1
  272. package/useTheme.js +2 -9
  273. package/useTranslatedLabels.d.ts +84 -1
  274. package/useTranslatedLabels.js +1 -7
  275. package/utils/BaseTypography.d.ts +21 -0
  276. package/utils/BaseTypography.js +94 -0
  277. package/utils/FocusLock.d.ts +13 -0
  278. package/utils/FocusLock.js +124 -0
  279. package/wizard/Wizard.js +24 -66
  280. package/wizard/Wizard.stories.tsx +40 -1
  281. package/wizard/Wizard.test.js +54 -81
  282. package/wizard/types.d.ts +7 -7
  283. package/card/ice-cream.jpg +0 -0
  284. package/common/RequiredComponent.js +0 -32
  285. package/inline/Inline.d.ts +0 -4
  286. package/inline/Inline.js +0 -54
  287. package/inline/Inline.stories.tsx +0 -264
  288. package/inline/types.d.ts +0 -32
  289. package/list/List.d.ts +0 -4
  290. package/list/List.js +0 -47
  291. package/list/List.stories.tsx +0 -89
  292. package/list/types.d.ts +0 -7
  293. package/number-input/NumberInputContext.d.ts +0 -4
  294. package/number-input/NumberInputContext.js +0 -19
  295. package/number-input/numberInputContextTypes.d.ts +0 -19
  296. package/resultsetTable/ResultsetTable.js +0 -254
  297. package/row/Row.d.ts +0 -3
  298. package/row/Row.js +0 -127
  299. package/row/Row.stories.tsx +0 -237
  300. package/row/types.d.ts +0 -28
  301. package/slider/Slider.stories.tsx +0 -177
  302. package/stack/Stack.d.ts +0 -4
  303. package/stack/Stack.js +0 -50
  304. package/stack/Stack.stories.tsx +0 -225
  305. package/stack/types.d.ts +0 -28
  306. package/tabs-nav/Tab.js +0 -132
  307. package/text/Text.d.ts +0 -7
  308. package/text/Text.js +0 -30
  309. package/text/Text.stories.tsx +0 -19
  310. package/textarea/Textarea.stories.jsx +0 -157
  311. /package/{inline → action-icon}/types.js +0 -0
  312. /package/{list → bulleted-list}/types.js +0 -0
  313. /package/{resultsetTable → container}/types.js +0 -0
  314. /package/{row → flex}/types.js +0 -0
  315. /package/{stack → grid}/types.js +0 -0
  316. /package/{tabs-nav → image}/types.js +0 -0
  317. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  318. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
  319. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
@@ -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
  );
@@ -1,64 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
- var _Spinner = _interopRequireDefault(require("./Spinner"));
10
-
6
+ var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
11
7
  describe("Spinner component tests", function () {
12
8
  test("Spinner renders with correct label", function () {
13
9
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
14
- label: "test-loading"
15
- })),
16
- getByText = _render.getByText;
17
-
10
+ label: "test-loading"
11
+ })),
12
+ getByText = _render.getByText;
18
13
  expect(getByText("test-loading")).toBeTruthy();
19
14
  });
20
15
  test("Spinner shows value correctly", function () {
21
16
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
22
- label: "test-loading",
23
- value: 75,
24
- showValue: true
25
- })),
26
- getByText = _render2.getByText;
27
-
17
+ label: "test-loading",
18
+ value: 75,
19
+ showValue: true
20
+ })),
21
+ getByText = _render2.getByText;
28
22
  expect(getByText("75%")).toBeTruthy();
29
23
  });
30
24
  test("Small spinner hides value and label correctly", function () {
31
25
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
32
- mode: "small",
33
- label: "test-loading",
34
- value: 75,
35
- showValue: true
36
- })),
37
- queryByText = _render3.queryByText;
38
-
26
+ mode: "small",
27
+ label: "test-loading",
28
+ value: 75,
29
+ showValue: true
30
+ })),
31
+ queryByText = _render3.queryByText;
39
32
  expect(queryByText("test-loading")).toBeFalsy();
40
33
  expect(queryByText("75%")).toBeFalsy();
41
34
  });
42
35
  test("Overlay spinner shows value and label correctly", function () {
43
36
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
44
- mode: "overlay",
45
- label: "test-loading",
46
- value: 75,
47
- showValue: true
48
- })),
49
- getByText = _render4.getByText;
50
-
37
+ mode: "overlay",
38
+ label: "test-loading",
39
+ value: 75,
40
+ showValue: true
41
+ })),
42
+ getByText = _render4.getByText;
51
43
  expect(getByText("test-loading")).toBeTruthy();
52
44
  expect(getByText("75%")).toBeTruthy();
53
45
  });
54
46
  test("Get spinner by role", function () {
55
47
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
56
- label: "test-loading",
57
- value: 75,
58
- showValue: true
59
- })),
60
- getByRole = _render5.getByRole;
61
-
48
+ label: "test-loading",
49
+ value: 75,
50
+ showValue: true
51
+ })),
52
+ getByRole = _render5.getByRole;
62
53
  expect(getByRole("progressbar")).toBeTruthy();
63
54
  });
64
55
  });
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type Props = {
8
+ type Props = {
9
9
  /**
10
10
  * Text to be placed inside the spinner.
11
11
  */
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import StatusLightPropsType from "./types";
3
+ declare const DxcStatusLight: ({ mode, label, size }: StatusLightPropsType) => JSX.Element;
4
+ export default DxcStatusLight;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
12
+ var _templateObject, _templateObject2, _templateObject3;
13
+ var DxcStatusLight = function DxcStatusLight(_ref) {
14
+ var _ref$mode = _ref.mode,
15
+ mode = _ref$mode === void 0 ? "default" : _ref$mode,
16
+ label = _ref.label,
17
+ _ref$size = _ref.size,
18
+ size = _ref$size === void 0 ? "medium" : _ref$size;
19
+ return /*#__PURE__*/_react["default"].createElement(StatusLightContainer, {
20
+ size: size,
21
+ "aria-label": "".concat(mode, ": ").concat(label),
22
+ "data-testid": "status_light-container"
23
+ }, /*#__PURE__*/_react["default"].createElement(StatusDot, {
24
+ mode: mode,
25
+ size: size,
26
+ "aria-hidden": "true",
27
+ "data-testid": "status-dot"
28
+ }), /*#__PURE__*/_react["default"].createElement(StatusLabel, {
29
+ mode: mode,
30
+ size: size
31
+ }, label));
32
+ };
33
+ var StatusLightContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n"])), _coreTokens["default"].spacing_8);
34
+ var StatusDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background-color: ", ";\n"])), function (_ref2) {
35
+ var size = _ref2.size;
36
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
37
+ }, function (_ref3) {
38
+ var size = _ref3.size;
39
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
40
+ }, function (_ref4) {
41
+ var mode = _ref4.mode;
42
+ return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
43
+ });
44
+ var StatusLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (_ref5) {
45
+ var size = _ref5.size;
46
+ return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
47
+ }, _coreTokens["default"].type_sans, _coreTokens["default"].type_normal, _coreTokens["default"].type_semibold, function (_ref6) {
48
+ var mode = _ref6.mode;
49
+ return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
50
+ });
51
+ var _default = exports["default"] = DxcStatusLight;
@@ -0,0 +1,74 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcStatusLight from "./StatusLight";
5
+
6
+ export default {
7
+ title: "Status Light",
8
+ component: DxcStatusLight,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <ExampleContainer>
14
+ <Title title="Default light small" theme="light" level={4} />
15
+ <DxcStatusLight label="StatusLight" size="small" />
16
+ </ExampleContainer>
17
+ <ExampleContainer>
18
+ <Title title="Default light medium" theme="light" level={4} />
19
+ <DxcStatusLight label="StatusLight" />
20
+ </ExampleContainer>
21
+ <ExampleContainer>
22
+ <Title title="Default light large" theme="light" level={4} />
23
+ <DxcStatusLight label="StatusLight" size="large" />
24
+ </ExampleContainer>
25
+ <ExampleContainer>
26
+ <Title title="Info light small" theme="light" level={4} />
27
+ <DxcStatusLight label="StatusLight" mode="info" size="small" />
28
+ </ExampleContainer>
29
+ <ExampleContainer>
30
+ <Title title="Info light medium" theme="light" level={4} />
31
+ <DxcStatusLight label="StatusLight" mode="info" />
32
+ </ExampleContainer>
33
+ <ExampleContainer>
34
+ <Title title="Info light large" theme="light" level={4} />
35
+ <DxcStatusLight label="StatusLight" mode="info" size="large" />
36
+ </ExampleContainer>
37
+ <ExampleContainer>
38
+ <Title title="Success light small" theme="light" level={4} />
39
+ <DxcStatusLight label="StatusLight" mode="success" size="small" />
40
+ </ExampleContainer>
41
+ <ExampleContainer>
42
+ <Title title="Success lights medium" theme="light" level={4} />
43
+ <DxcStatusLight label="StatusLight" mode="success" />
44
+ </ExampleContainer>
45
+ <ExampleContainer>
46
+ <Title title="Success lights large" theme="light" level={4} />
47
+ <DxcStatusLight label="StatusLight" mode="success" size="large" />
48
+ </ExampleContainer>
49
+ <ExampleContainer>
50
+ <Title title="Warning light small" theme="light" level={4} />
51
+ <DxcStatusLight label="StatusLight" mode="warning" size="small" />
52
+ </ExampleContainer>
53
+ <ExampleContainer>
54
+ <Title title="Warning light medium" theme="light" level={4} />
55
+ <DxcStatusLight label="StatusLight" mode="warning" />
56
+ </ExampleContainer>
57
+ <ExampleContainer>
58
+ <Title title="Warning light large" theme="light" level={4} />
59
+ <DxcStatusLight label="StatusLight" mode="warning" size="large" />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="Error light small" theme="light" level={4} />
63
+ <DxcStatusLight label="StatusLight" mode="error" size="small" />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Error lights medium" theme="light" level={4} />
67
+ <DxcStatusLight label="StatusLight" mode="error" />
68
+ </ExampleContainer>
69
+ <ExampleContainer>
70
+ <Title title="Error lights large" theme="light" level={4} />
71
+ <DxcStatusLight label="StatusLight" mode="error" size="large" />
72
+ </ExampleContainer>
73
+ </>
74
+ );
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _StatusLight = _interopRequireDefault(require("./StatusLight.tsx"));
7
+ describe("StatusLight component tests", function () {
8
+ test("StatusLight renders with correct label", function () {
9
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
10
+ label: "Status Light Test"
11
+ })),
12
+ getByText = _render.getByText;
13
+ expect(getByText("Status Light Test")).toBeTruthy();
14
+ });
15
+ test("StatusLight applies accessibility attributes", function () {
16
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
17
+ label: "Status Light Test"
18
+ })),
19
+ getByTestId = _render2.getByTestId;
20
+ var statusLightContainer = getByTestId("status_light-container");
21
+ var statusDot = getByTestId("status-dot");
22
+ expect(statusLightContainer.getAttribute("aria-label")).toBe("default: Status Light Test");
23
+ expect(statusDot.getAttribute("aria-hidden")).toBe("true");
24
+ });
25
+ });
@@ -0,0 +1,17 @@
1
+ type Mode = "default" | "info" | "success" | "warning" | "error";
2
+ type Size = "small" | "medium" | "large";
3
+ type Props = {
4
+ /**
5
+ * It will define the color of the light based on its semantic meaning.
6
+ */
7
+ mode?: Mode;
8
+ /**
9
+ * An auxiliar text that will add some context to the status.
10
+ */
11
+ label: string;
12
+ /**
13
+ * Size of the component. Should be defined based on its importance and/or available space.
14
+ */
15
+ size?: Size;
16
+ };
17
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import SwitchPropsType from "./types";
3
- declare const DxcSwitch: ({ defaultChecked, checked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
3
+ declare const DxcSwitch: React.ForwardRefExoticComponent<SwitchPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcSwitch;