@dxc-technology/halstack-react 0.0.0-64f5836 → 0.0.0-6501724

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 (383) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +120 -175
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +8 -0
  12. package/accordion-group/AccordionGroup.js +56 -112
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +79 -0
  18. package/accordion-group/types.js +5 -0
  19. package/alert/Alert.d.ts +4 -0
  20. package/alert/Alert.js +10 -30
  21. package/alert/Alert.stories.tsx +198 -0
  22. package/alert/Alert.test.js +92 -0
  23. package/alert/types.d.ts +49 -0
  24. package/alert/types.js +5 -0
  25. package/badge/Badge.d.ts +4 -0
  26. package/badge/Badge.js +6 -4
  27. package/badge/types.d.ts +5 -0
  28. package/badge/types.js +5 -0
  29. package/bleed/Bleed.d.ts +3 -0
  30. package/bleed/Bleed.js +51 -0
  31. package/bleed/Bleed.stories.tsx +342 -0
  32. package/bleed/types.d.ts +37 -0
  33. package/bleed/types.js +5 -0
  34. package/box/Box.d.ts +4 -0
  35. package/box/Box.js +31 -69
  36. package/box/Box.stories.tsx +147 -0
  37. package/box/Box.test.js +18 -0
  38. package/box/types.d.ts +44 -0
  39. package/box/types.js +5 -0
  40. package/bulleted-list/BulletedList.d.ts +7 -0
  41. package/bulleted-list/BulletedList.js +125 -0
  42. package/bulleted-list/BulletedList.stories.tsx +206 -0
  43. package/bulleted-list/types.d.ts +38 -0
  44. package/bulleted-list/types.js +5 -0
  45. package/button/Button.d.ts +1 -1
  46. package/button/Button.js +59 -88
  47. package/button/Button.stories.tsx +403 -284
  48. package/button/Button.test.js +35 -0
  49. package/button/types.d.ts +12 -16
  50. package/card/Card.d.ts +4 -0
  51. package/card/Card.js +47 -87
  52. package/card/Card.stories.tsx +200 -0
  53. package/card/Card.test.js +50 -0
  54. package/card/ice-cream.jpg +0 -0
  55. package/card/types.d.ts +68 -0
  56. package/card/types.js +5 -0
  57. package/checkbox/Checkbox.d.ts +2 -2
  58. package/checkbox/Checkbox.js +108 -111
  59. package/checkbox/Checkbox.stories.tsx +260 -0
  60. package/checkbox/Checkbox.test.js +155 -0
  61. package/checkbox/types.d.ts +13 -6
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +37 -118
  64. package/chip/Chip.stories.tsx +214 -0
  65. package/chip/Chip.test.js +54 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/OpenSans.css +68 -80
  69. package/common/coreTokens.d.ts +146 -0
  70. package/common/coreTokens.js +167 -0
  71. package/common/utils.d.ts +1 -0
  72. package/common/utils.js +4 -4
  73. package/common/variables.d.ts +1482 -0
  74. package/common/variables.js +1100 -1308
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +258 -0
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/date-input/DateInput.js +173 -300
  79. package/date-input/DateInput.stories.tsx +304 -0
  80. package/date-input/DateInput.test.js +835 -0
  81. package/date-input/DatePicker.d.ts +4 -0
  82. package/date-input/DatePicker.js +146 -0
  83. package/date-input/Icons.d.ts +6 -0
  84. package/date-input/Icons.js +75 -0
  85. package/date-input/YearPicker.d.ts +4 -0
  86. package/date-input/YearPicker.js +126 -0
  87. package/date-input/types.d.ts +158 -0
  88. package/date-input/types.js +5 -0
  89. package/dialog/Dialog.d.ts +4 -0
  90. package/dialog/Dialog.js +68 -121
  91. package/dialog/Dialog.stories.tsx +195 -0
  92. package/dialog/Dialog.test.js +369 -0
  93. package/dialog/types.d.ts +31 -0
  94. package/dialog/types.js +5 -0
  95. package/dropdown/Dropdown.d.ts +4 -0
  96. package/dropdown/Dropdown.js +244 -306
  97. package/dropdown/Dropdown.stories.tsx +438 -0
  98. package/dropdown/Dropdown.test.js +586 -0
  99. package/dropdown/DropdownMenu.d.ts +4 -0
  100. package/dropdown/DropdownMenu.js +74 -0
  101. package/dropdown/DropdownMenuItem.d.ts +4 -0
  102. package/dropdown/DropdownMenuItem.js +79 -0
  103. package/dropdown/types.d.ts +100 -0
  104. package/dropdown/types.js +5 -0
  105. package/file-input/FileInput.d.ts +4 -0
  106. package/file-input/FileInput.js +183 -168
  107. package/file-input/FileInput.stories.tsx +618 -0
  108. package/file-input/FileInput.test.js +457 -0
  109. package/file-input/FileItem.d.ts +4 -0
  110. package/file-input/FileItem.js +50 -81
  111. package/file-input/types.d.ts +129 -0
  112. package/file-input/types.js +5 -0
  113. package/flex/Flex.d.ts +4 -0
  114. package/flex/Flex.js +71 -0
  115. package/flex/Flex.stories.tsx +112 -0
  116. package/flex/types.d.ts +97 -0
  117. package/flex/types.js +5 -0
  118. package/footer/Footer.d.ts +4 -0
  119. package/footer/Footer.js +37 -151
  120. package/footer/Footer.stories.tsx +228 -0
  121. package/footer/Footer.test.js +97 -0
  122. package/footer/Icons.d.ts +2 -0
  123. package/footer/Icons.js +4 -4
  124. package/footer/types.d.ts +66 -0
  125. package/footer/types.js +5 -0
  126. package/grid/Grid.d.ts +7 -0
  127. package/grid/Grid.js +91 -0
  128. package/grid/Grid.stories.tsx +219 -0
  129. package/grid/types.d.ts +115 -0
  130. package/grid/types.js +5 -0
  131. package/header/Header.d.ts +8 -0
  132. package/header/Header.js +127 -150
  133. package/header/Header.stories.tsx +315 -0
  134. package/header/Header.test.js +79 -0
  135. package/header/Icons.d.ts +2 -0
  136. package/header/Icons.js +4 -29
  137. package/header/types.d.ts +48 -0
  138. package/header/types.js +5 -0
  139. package/heading/Heading.d.ts +4 -0
  140. package/heading/Heading.js +8 -25
  141. package/heading/Heading.stories.tsx +54 -0
  142. package/heading/Heading.test.js +186 -0
  143. package/heading/types.d.ts +33 -0
  144. package/heading/types.js +5 -0
  145. package/inset/Inset.d.ts +3 -0
  146. package/inset/Inset.js +51 -0
  147. package/inset/Inset.stories.tsx +230 -0
  148. package/inset/types.d.ts +37 -0
  149. package/inset/types.js +5 -0
  150. package/layout/ApplicationLayout.d.ts +20 -0
  151. package/layout/ApplicationLayout.js +72 -136
  152. package/layout/ApplicationLayout.stories.tsx +162 -0
  153. package/layout/Icons.d.ts +5 -0
  154. package/layout/Icons.js +13 -2
  155. package/layout/SidenavContext.d.ts +5 -0
  156. package/layout/SidenavContext.js +19 -0
  157. package/layout/types.d.ts +41 -0
  158. package/layout/types.js +5 -0
  159. package/link/Link.d.ts +4 -0
  160. package/link/Link.js +62 -109
  161. package/link/Link.stories.tsx +253 -0
  162. package/link/Link.test.js +81 -0
  163. package/link/types.d.ts +54 -0
  164. package/link/types.js +5 -0
  165. package/main.d.ts +13 -12
  166. package/main.js +68 -54
  167. package/nav-tabs/NavTabs.d.ts +8 -0
  168. package/nav-tabs/NavTabs.js +122 -0
  169. package/nav-tabs/NavTabs.stories.tsx +274 -0
  170. package/nav-tabs/NavTabs.test.js +82 -0
  171. package/nav-tabs/Tab.d.ts +4 -0
  172. package/nav-tabs/Tab.js +146 -0
  173. package/nav-tabs/types.d.ts +52 -0
  174. package/nav-tabs/types.js +5 -0
  175. package/number-input/NumberInput.d.ts +4 -0
  176. package/number-input/NumberInput.js +16 -68
  177. package/number-input/NumberInput.stories.tsx +115 -0
  178. package/number-input/NumberInput.test.js +542 -0
  179. package/number-input/NumberInputContext.d.ts +4 -0
  180. package/number-input/NumberInputContext.js +5 -2
  181. package/number-input/numberInputContextTypes.d.ts +19 -0
  182. package/number-input/numberInputContextTypes.js +5 -0
  183. package/number-input/types.d.ts +124 -0
  184. package/number-input/types.js +5 -0
  185. package/package.json +22 -23
  186. package/paginator/Icons.d.ts +5 -0
  187. package/paginator/Icons.js +16 -28
  188. package/paginator/Paginator.js +22 -57
  189. package/paginator/Paginator.stories.tsx +87 -0
  190. package/paginator/Paginator.test.js +318 -0
  191. package/paragraph/Paragraph.d.ts +5 -0
  192. package/paragraph/Paragraph.js +38 -0
  193. package/paragraph/Paragraph.stories.tsx +44 -0
  194. package/password-input/PasswordInput.d.ts +4 -0
  195. package/password-input/PasswordInput.js +24 -57
  196. package/password-input/PasswordInput.stories.tsx +131 -0
  197. package/password-input/PasswordInput.test.js +181 -0
  198. package/password-input/types.d.ts +110 -0
  199. package/password-input/types.js +5 -0
  200. package/progress-bar/ProgressBar.d.ts +4 -0
  201. package/progress-bar/ProgressBar.js +64 -76
  202. package/progress-bar/ProgressBar.stories.jsx +93 -0
  203. package/progress-bar/ProgressBar.test.js +110 -0
  204. package/progress-bar/types.d.ts +37 -0
  205. package/progress-bar/types.js +5 -0
  206. package/quick-nav/QuickNav.d.ts +4 -0
  207. package/quick-nav/QuickNav.js +117 -0
  208. package/quick-nav/QuickNav.stories.tsx +356 -0
  209. package/quick-nav/types.d.ts +21 -0
  210. package/quick-nav/types.js +5 -0
  211. package/radio-group/Radio.d.ts +4 -0
  212. package/radio-group/Radio.js +156 -0
  213. package/radio-group/RadioGroup.d.ts +4 -0
  214. package/radio-group/RadioGroup.js +281 -0
  215. package/radio-group/RadioGroup.stories.tsx +214 -0
  216. package/radio-group/RadioGroup.test.js +722 -0
  217. package/radio-group/types.d.ts +114 -0
  218. package/radio-group/types.js +5 -0
  219. package/resultsetTable/Icons.d.ts +7 -0
  220. package/resultsetTable/Icons.js +51 -0
  221. package/resultsetTable/ResultsetTable.d.ts +4 -0
  222. package/resultsetTable/ResultsetTable.js +54 -133
  223. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  224. package/resultsetTable/ResultsetTable.test.js +325 -0
  225. package/resultsetTable/types.d.ts +67 -0
  226. package/resultsetTable/types.js +5 -0
  227. package/select/Icons.d.ts +10 -0
  228. package/select/Icons.js +93 -0
  229. package/select/Listbox.d.ts +4 -0
  230. package/select/Listbox.js +169 -0
  231. package/select/Option.d.ts +4 -0
  232. package/select/Option.js +97 -0
  233. package/select/Select.d.ts +4 -0
  234. package/select/Select.js +202 -401
  235. package/select/Select.stories.tsx +971 -0
  236. package/select/Select.test.js +2228 -0
  237. package/select/types.d.ts +210 -0
  238. package/select/types.js +5 -0
  239. package/sidenav/Icons.d.ts +7 -0
  240. package/sidenav/Icons.js +51 -0
  241. package/sidenav/Sidenav.d.ts +10 -0
  242. package/sidenav/Sidenav.js +147 -54
  243. package/sidenav/Sidenav.stories.tsx +282 -0
  244. package/sidenav/Sidenav.test.js +44 -0
  245. package/sidenav/types.d.ts +76 -0
  246. package/sidenav/types.js +5 -0
  247. package/slider/Slider.d.ts +4 -0
  248. package/slider/Slider.js +160 -158
  249. package/slider/Slider.stories.tsx +240 -0
  250. package/slider/Slider.test.js +250 -0
  251. package/slider/types.d.ts +86 -0
  252. package/slider/types.js +5 -0
  253. package/spinner/Spinner.d.ts +4 -0
  254. package/spinner/Spinner.js +26 -49
  255. package/spinner/Spinner.stories.jsx +129 -0
  256. package/spinner/Spinner.test.js +64 -0
  257. package/spinner/types.d.ts +32 -0
  258. package/spinner/types.js +5 -0
  259. package/switch/Switch.d.ts +2 -2
  260. package/switch/Switch.js +153 -70
  261. package/switch/Switch.stories.tsx +171 -0
  262. package/switch/Switch.test.js +225 -0
  263. package/switch/types.d.ts +10 -2
  264. package/table/Table.d.ts +4 -0
  265. package/table/Table.js +6 -6
  266. package/table/Table.stories.jsx +356 -0
  267. package/table/Table.test.js +26 -0
  268. package/table/types.d.ts +21 -0
  269. package/table/types.js +5 -0
  270. package/tabs/Tab.d.ts +4 -0
  271. package/tabs/Tab.js +132 -0
  272. package/tabs/Tabs.d.ts +4 -0
  273. package/tabs/Tabs.js +361 -159
  274. package/tabs/Tabs.stories.tsx +226 -0
  275. package/tabs/Tabs.test.js +350 -0
  276. package/tabs/types.d.ts +92 -0
  277. package/tabs/types.js +5 -0
  278. package/tag/Tag.d.ts +4 -0
  279. package/tag/Tag.js +38 -65
  280. package/tag/Tag.stories.tsx +155 -0
  281. package/tag/Tag.test.js +60 -0
  282. package/tag/types.d.ts +69 -0
  283. package/tag/types.js +5 -0
  284. package/text-input/Icons.d.ts +8 -0
  285. package/text-input/Icons.js +60 -0
  286. package/text-input/Suggestion.d.ts +4 -0
  287. package/text-input/Suggestion.js +84 -0
  288. package/text-input/Suggestions.d.ts +4 -0
  289. package/text-input/Suggestions.js +134 -0
  290. package/text-input/TextInput.d.ts +4 -0
  291. package/text-input/TextInput.js +236 -388
  292. package/text-input/TextInput.stories.tsx +569 -0
  293. package/text-input/TextInput.test.js +1723 -0
  294. package/text-input/types.d.ts +197 -0
  295. package/text-input/types.js +5 -0
  296. package/textarea/Textarea.d.ts +4 -0
  297. package/textarea/Textarea.js +41 -82
  298. package/textarea/Textarea.stories.jsx +216 -0
  299. package/textarea/Textarea.test.js +435 -0
  300. package/textarea/types.d.ts +137 -0
  301. package/textarea/types.js +5 -0
  302. package/toggle-group/ToggleGroup.d.ts +4 -0
  303. package/toggle-group/ToggleGroup.js +24 -49
  304. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  305. package/toggle-group/ToggleGroup.test.js +156 -0
  306. package/toggle-group/types.d.ts +105 -0
  307. package/toggle-group/types.js +5 -0
  308. package/typography/Typography.d.ts +4 -0
  309. package/typography/Typography.js +32 -0
  310. package/typography/Typography.stories.tsx +198 -0
  311. package/typography/types.d.ts +18 -0
  312. package/typography/types.js +5 -0
  313. package/useTheme.d.ts +1235 -0
  314. package/useTheme.js +3 -3
  315. package/useTranslatedLabels.d.ts +85 -0
  316. package/useTranslatedLabels.js +20 -0
  317. package/utils/BaseTypography.d.ts +21 -0
  318. package/utils/BaseTypography.js +108 -0
  319. package/utils/FocusLock.d.ts +13 -0
  320. package/utils/FocusLock.js +138 -0
  321. package/wizard/Wizard.d.ts +4 -0
  322. package/wizard/Wizard.js +119 -105
  323. package/wizard/Wizard.stories.tsx +253 -0
  324. package/wizard/Wizard.test.js +141 -0
  325. package/wizard/types.d.ts +64 -0
  326. package/wizard/types.js +5 -0
  327. package/ThemeContext.js +0 -246
  328. package/V3Select/V3Select.js +0 -455
  329. package/V3Select/index.d.ts +0 -27
  330. package/V3Textarea/V3Textarea.js +0 -260
  331. package/V3Textarea/index.d.ts +0 -27
  332. package/accordion/index.d.ts +0 -28
  333. package/accordion-group/index.d.ts +0 -16
  334. package/alert/index.d.ts +0 -51
  335. package/box/index.d.ts +0 -25
  336. package/card/index.d.ts +0 -22
  337. package/chip/index.d.ts +0 -22
  338. package/common/RequiredComponent.js +0 -32
  339. package/date/Date.js +0 -373
  340. package/date/index.d.ts +0 -27
  341. package/date-input/index.d.ts +0 -95
  342. package/dialog/index.d.ts +0 -18
  343. package/dropdown/index.d.ts +0 -26
  344. package/file-input/index.d.ts +0 -81
  345. package/footer/index.d.ts +0 -25
  346. package/header/index.d.ts +0 -25
  347. package/heading/index.d.ts +0 -17
  348. package/input-text/Icons.js +0 -22
  349. package/input-text/InputText.js +0 -611
  350. package/input-text/index.d.ts +0 -36
  351. package/link/index.d.ts +0 -23
  352. package/number-input/index.d.ts +0 -113
  353. package/password-input/index.d.ts +0 -94
  354. package/progress-bar/index.d.ts +0 -18
  355. package/radio/Radio.js +0 -195
  356. package/radio/index.d.ts +0 -23
  357. package/resultsetTable/index.d.ts +0 -19
  358. package/select/index.d.ts +0 -131
  359. package/sidenav/index.d.ts +0 -13
  360. package/slider/index.d.ts +0 -29
  361. package/spinner/index.d.ts +0 -17
  362. package/table/index.d.ts +0 -13
  363. package/tabs/index.d.ts +0 -19
  364. package/tag/index.d.ts +0 -24
  365. package/text-input/index.d.ts +0 -135
  366. package/textarea/index.d.ts +0 -117
  367. package/toggle/Toggle.js +0 -186
  368. package/toggle/index.d.ts +0 -21
  369. package/toggle-group/index.d.ts +0 -21
  370. package/upload/Upload.js +0 -201
  371. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  372. package/upload/buttons-upload/Icons.js +0 -40
  373. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  374. package/upload/dragAndDropArea/Icons.js +0 -39
  375. package/upload/file-upload/FileToUpload.js +0 -115
  376. package/upload/file-upload/Icons.js +0 -66
  377. package/upload/files-upload/FilesToUpload.js +0 -109
  378. package/upload/index.d.ts +0 -15
  379. package/upload/transaction/Icons.js +0 -160
  380. package/upload/transaction/Transaction.js +0 -104
  381. package/upload/transactions/Transactions.js +0 -94
  382. package/wizard/Icons.js +0 -65
  383. package/wizard/index.d.ts +0 -18
@@ -0,0 +1,240 @@
1
+ import React from "react";
2
+ import DxcSlider from "./Slider";
3
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import DarkContainer from "../../.storybook/components/DarkSection";
7
+ import { HalstackProvider } from "../HalstackContext";
8
+
9
+ export default {
10
+ title: "Slider",
11
+ component: DxcSlider,
12
+ };
13
+
14
+ const labelFormat = (value) => `${value}E100000000000000000000000`;
15
+
16
+ const opinionatedTheme = {
17
+ slider: {
18
+ baseColor: "#0067b3",
19
+ fontColor: "#000000",
20
+ totalLineColor: "#e6e6e6",
21
+ },
22
+ };
23
+
24
+ export const Chromatic = () => (
25
+ <>
26
+ <Title title="States" theme="light" level={2} />
27
+ <ExampleContainer pseudoState="pseudo-hover">
28
+ <Title title="Hovered" theme="light" level={4} />
29
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
30
+ </ExampleContainer>
31
+ <ExampleContainer pseudoState="pseudo-active">
32
+ <Title title="Active" theme="light" level={4} />
33
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
34
+ </ExampleContainer>
35
+ <ExampleContainer pseudoState="pseudo-focus">
36
+ <Title title="Focused" theme="light" level={4} />
37
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Disabled" theme="light" level={4} />
41
+ <DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="Disabled discrete slider with input" theme="light" level={4} />
45
+ <DxcSlider
46
+ label="Slider"
47
+ helperText="Help message"
48
+ disabled
49
+ defaultValue={40}
50
+ minValue={0}
51
+ maxValue={50}
52
+ showLimitsValues
53
+ showInput
54
+ marks
55
+ step={10}
56
+ />
57
+ </ExampleContainer>
58
+ <Title title="Variants" theme="light" level={2} />
59
+ <ExampleContainer>
60
+ <Title title="Continuous slider" theme="light" level={4} />
61
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
62
+ </ExampleContainer>
63
+ <ExampleContainer>
64
+ <Title title="Discrete slider" theme="light" level={4} />
65
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
66
+ </ExampleContainer>
67
+ <ExampleContainer>
68
+ <Title title="Discrete slider with input" theme="light" level={4} />
69
+ <DxcSlider
70
+ defaultValue={20}
71
+ minValue={0}
72
+ maxValue={50}
73
+ label="Slider"
74
+ helperText="Help message"
75
+ showLimitsValues
76
+ showInput
77
+ marks
78
+ step={10}
79
+ />
80
+ </ExampleContainer>
81
+ <BackgroundColorProvider color="#333333">
82
+ <DarkContainer>
83
+ <Title title="Dark" theme="dark" level={2} />
84
+ <ExampleContainer pseudoState="pseudo-hover">
85
+ <Title title="Hovered" theme="dark" level={4} />
86
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
87
+ </ExampleContainer>
88
+ <ExampleContainer pseudoState="pseudo-active">
89
+ <Title title="Active" theme="dark" level={4} />
90
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
91
+ </ExampleContainer>
92
+ <ExampleContainer pseudoState="pseudo-focus">
93
+ <Title title="Focused" theme="dark" level={4} />
94
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
95
+ </ExampleContainer>
96
+ <ExampleContainer>
97
+ <Title title="Disabled" theme="dark" level={4} />
98
+ <DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="Disabled discrete slider with input" theme="dark" level={4} />
102
+ <DxcSlider
103
+ label="Slider"
104
+ helperText="Help message"
105
+ disabled
106
+ defaultValue={40}
107
+ minValue={0}
108
+ maxValue={50}
109
+ showLimitsValues
110
+ showInput
111
+ marks
112
+ step={5}
113
+ />
114
+ </ExampleContainer>
115
+ <ExampleContainer>
116
+ <Title title="Continuous slider" theme="dark" level={4} />
117
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
118
+ </ExampleContainer>
119
+ <ExampleContainer>
120
+ <Title title="Discrete slider" theme="dark" level={4} />
121
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
122
+ </ExampleContainer>
123
+ <ExampleContainer>
124
+ <Title title="Discrete slider with input" theme="dark" level={4} />
125
+ <DxcSlider
126
+ defaultValue={20}
127
+ minValue={0}
128
+ maxValue={50}
129
+ label="Slider"
130
+ helperText="Help message"
131
+ showLimitsValues
132
+ showInput
133
+ marks
134
+ step={10}
135
+ />
136
+ </ExampleContainer>
137
+ </DarkContainer>
138
+ </BackgroundColorProvider>
139
+ <Title title="Margins" theme="light" level={2} />
140
+ <ExampleContainer>
141
+ <Title title="Xxsmall" theme="light" level={4} />
142
+ <DxcSlider label="Xxsmall" margin="xxsmall" />
143
+ </ExampleContainer>
144
+ <ExampleContainer>
145
+ <Title title="Xsmall" theme="light" level={4} />
146
+ <DxcSlider label="Xsmall" margin="xsmall" />
147
+ </ExampleContainer>
148
+ <ExampleContainer>
149
+ <Title title="Small" theme="light" level={4} />
150
+ <DxcSlider label="Small" margin="small" />
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Medium" theme="light" level={4} />
154
+ <DxcSlider label="Medium" margin="medium" />
155
+ </ExampleContainer>
156
+ <ExampleContainer>
157
+ <Title title="Large" theme="light" level={4} />
158
+ <DxcSlider label="Large" margin="large" />
159
+ </ExampleContainer>
160
+ <ExampleContainer>
161
+ <Title title="Xlarge" theme="light" level={4} />
162
+ <DxcSlider label="Xlarge" margin="xlarge" />
163
+ </ExampleContainer>
164
+ <ExampleContainer>
165
+ <Title title="Xxlarge" theme="light" level={4} />
166
+ <DxcSlider label="Xxlarge" margin="xxlarge" />
167
+ </ExampleContainer>
168
+ <Title title="Sizes" theme="light" level={2} />
169
+ <ExampleContainer>
170
+ <Title title="Medium" theme="light" level={4} />
171
+ <DxcSlider label="Medium" size="medium" />
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Large" theme="light" level={4} />
175
+ <DxcSlider label="Large" size="large" />
176
+ </ExampleContainer>
177
+ <ExampleContainer>
178
+ <Title title="FillParent" theme="light" level={4} />
179
+ <DxcSlider label="FillParent" size="fillParent" />
180
+ </ExampleContainer>
181
+ <ExampleContainer>
182
+ <Title title="Large limit values labels" theme="light" level={4} />
183
+ <DxcSlider
184
+ label="Slider"
185
+ helperText="Help message"
186
+ showLimitsValues
187
+ labelFormatCallback={labelFormat}
188
+ size="large"
189
+ />
190
+ </ExampleContainer>
191
+ <Title title="Opinionated theme" theme="light" level={2} />
192
+ <ExampleContainer pseudoState="pseudo-hover">
193
+ <Title title="Hovered" theme="light" level={4} />
194
+ <HalstackProvider theme={opinionatedTheme}>
195
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
196
+ </HalstackProvider>
197
+ </ExampleContainer>
198
+ <ExampleContainer pseudoState="pseudo-active">
199
+ <Title title="Active" theme="light" level={4} />
200
+ <HalstackProvider theme={opinionatedTheme}>
201
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
202
+ </HalstackProvider>
203
+ </ExampleContainer>
204
+ <ExampleContainer pseudoState="pseudo-focus">
205
+ <Title title="Focused" theme="light" level={4} />
206
+ <HalstackProvider theme={opinionatedTheme}>
207
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
208
+ </HalstackProvider>
209
+ </ExampleContainer>
210
+ <ExampleContainer>
211
+ <Title title="Disabled discrete slider with input" theme="light" level={4} />{" "}
212
+ <HalstackProvider theme={opinionatedTheme}>
213
+ <DxcSlider
214
+ label="Slider"
215
+ helperText="Help message"
216
+ disabled
217
+ defaultValue={40}
218
+ minValue={0}
219
+ maxValue={50}
220
+ showLimitsValues
221
+ showInput
222
+ marks
223
+ step={10}
224
+ />
225
+ </HalstackProvider>
226
+ </ExampleContainer>
227
+ <ExampleContainer>
228
+ <Title title="Continuous slider" theme="light" level={4} />
229
+ <HalstackProvider theme={opinionatedTheme}>
230
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
231
+ </HalstackProvider>
232
+ </ExampleContainer>
233
+ <ExampleContainer>
234
+ <Title title="Discrete slider" theme="light" level={4} />
235
+ <HalstackProvider theme={opinionatedTheme}>
236
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
237
+ </HalstackProvider>
238
+ </ExampleContainer>
239
+ </>
240
+ );
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+
11
+ var _Slider = _interopRequireDefault(require("./Slider.tsx"));
12
+
13
+ describe("Slider component tests", function () {
14
+ test("Slider renders with correct text and label id", function () {
15
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
16
+ label: "label",
17
+ minValue: 0,
18
+ maxValue: 100,
19
+ showLimitsValues: true
20
+ })),
21
+ getByText = _render.getByText,
22
+ getByRole = _render.getByRole;
23
+
24
+ expect(getByText("0")).toBeTruthy();
25
+ expect(getByText("100")).toBeTruthy();
26
+ var sliderId = getByText("label").getAttribute("id");
27
+ expect(getByRole("slider").getAttribute("aria-labelledby")).toBe(sliderId);
28
+ expect(getByRole("slider").getAttribute("aria-orientation")).toBe("horizontal");
29
+ });
30
+ test("Slider renders with correct initial value when it is uncontrolled", function () {
31
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
32
+ defaultValue: 30,
33
+ minValue: 0,
34
+ maxValue: 100,
35
+ showLimitsValues: true,
36
+ showInput: true
37
+ })),
38
+ getByRole = _render2.getByRole;
39
+
40
+ var slider = getByRole("slider");
41
+ var input = getByRole("textbox");
42
+ expect(slider.getAttribute("aria-valuenow")).toBe("30");
43
+ expect(input.value).toBe("30");
44
+ });
45
+ test("Slider correct limit values", function () {
46
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
47
+ defaultValue: 125,
48
+ minValue: 30,
49
+ maxValue: 125,
50
+ showLimitsValues: true
51
+ })),
52
+ getByRole = _render3.getByRole,
53
+ getByText = _render3.getByText;
54
+
55
+ var slider = getByRole("slider");
56
+ expect(slider.getAttribute("aria-valuemin")).toBe("30");
57
+ expect(slider.getAttribute("aria-valuemax")).toBe("125");
58
+
59
+ _userEvent["default"].tab();
60
+
61
+ _react2.fireEvent.keyDown(slider, {
62
+ key: "ArrowRight",
63
+ code: "ArrowRight",
64
+ keyCode: 39,
65
+ charCode: 39
66
+ });
67
+
68
+ expect(slider.getAttribute("aria-valuenow")).toBe("125");
69
+ expect(getByText("30")).toBeTruthy();
70
+ expect(getByText("125")).toBeTruthy();
71
+ });
72
+ test("Calls correct function onChange in controlled slider", function () {
73
+ var onChange = jest.fn();
74
+
75
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
76
+ minValue: 0,
77
+ maxValue: 100,
78
+ onChange: onChange,
79
+ showLimitsValues: true,
80
+ value: 13,
81
+ showInput: true
82
+ })),
83
+ getByRole = _render4.getByRole;
84
+
85
+ expect(getByRole("slider").getAttribute("aria-valuenow")).toBe("13");
86
+ expect(getByRole("textbox").value).toBe("13");
87
+ (0, _react2.act)(function () {
88
+ _react2.fireEvent.change(getByRole("textbox"), {
89
+ target: {
90
+ value: 25
91
+ }
92
+ });
93
+ });
94
+ expect(onChange).toHaveBeenCalledWith(25);
95
+ expect(getByRole("slider").getAttribute("aria-valuenow")).toBe("13");
96
+ expect(getByRole("textbox").value).toBe("13");
97
+ });
98
+ test("Calls correct function onChange in uncontrolled slider", function () {
99
+ var onChange = jest.fn();
100
+
101
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
102
+ minValue: 0,
103
+ maxValue: 100,
104
+ onChange: onChange,
105
+ showLimitsValues: true,
106
+ showInput: true
107
+ })),
108
+ getByRole = _render5.getByRole;
109
+
110
+ (0, _react2.act)(function () {
111
+ _react2.fireEvent.change(getByRole("textbox"), {
112
+ target: {
113
+ value: 25
114
+ }
115
+ });
116
+ });
117
+ expect(onChange).toHaveBeenCalledWith(25);
118
+ expect(getByRole("slider").getAttribute("aria-valuenow")).toBe("25");
119
+ expect(getByRole("textbox").value).toBe("25");
120
+ });
121
+ test("Disabled slider have disabled input and slider", function () {
122
+ var onChange = jest.fn();
123
+
124
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
125
+ minValue: 0,
126
+ maxValue: 100,
127
+ onChange: onChange,
128
+ showLimitsValues: true,
129
+ disabled: true,
130
+ showInput: true,
131
+ value: 13
132
+ })),
133
+ getByRole = _render6.getByRole;
134
+
135
+ (0, _react2.act)(function () {
136
+ _react2.fireEvent.change(getByRole("textbox"), {
137
+ target: {
138
+ value: 25
139
+ }
140
+ });
141
+ });
142
+ expect(getByRole("textbox").hasAttribute("disabled")).toBeTruthy();
143
+ expect(getByRole("textbox").value).toBe("13");
144
+ expect(getByRole("slider").hasAttribute("disabled")).toBeTruthy();
145
+ });
146
+ test("Calls correct function onDragEnd when it is uncontrolled", function () {
147
+ var onDragEnd = jest.fn();
148
+
149
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
150
+ minValue: 0,
151
+ maxValue: 150,
152
+ onDragEnd: onDragEnd,
153
+ showInput: true
154
+ })),
155
+ getByRole = _render7.getByRole;
156
+
157
+ var slider = getByRole("slider");
158
+ (0, _react2.act)(function () {
159
+ _react2.fireEvent.mouseDown(slider);
160
+ });
161
+ (0, _react2.act)(function () {
162
+ _react2.fireEvent.mouseUp(slider, {
163
+ target: {
164
+ value: 120
165
+ }
166
+ });
167
+ });
168
+ expect(onDragEnd).toHaveBeenCalledWith("120");
169
+ });
170
+ test("Calls correct function onDragEnd when it is controlled", function () {
171
+ var onDragEnd = jest.fn();
172
+
173
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
174
+ minValue: 0,
175
+ maxValue: 150,
176
+ value: 50,
177
+ onDragEnd: onDragEnd,
178
+ showInput: true
179
+ })),
180
+ getByRole = _render8.getByRole;
181
+
182
+ var slider = getByRole("slider");
183
+ (0, _react2.act)(function () {
184
+ _react2.fireEvent.mouseDown(slider);
185
+ });
186
+ (0, _react2.act)(function () {
187
+ _react2.fireEvent.mouseUp(slider, {
188
+ target: {
189
+ value: 120
190
+ }
191
+ });
192
+ });
193
+ expect(onDragEnd).toHaveBeenCalledWith("120");
194
+ expect(slider.getAttribute("aria-valuenow")).toBe("50");
195
+ });
196
+ test("Calls correct function labelFormatCallback", function () {
197
+ var labelFormatCallback = jest.fn(function (x) {
198
+ return "".concat(x, "$");
199
+ });
200
+
201
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
202
+ minValue: 0,
203
+ maxValue: 100,
204
+ showLimitsValues: true,
205
+ showInput: true,
206
+ value: 25,
207
+ labelFormatCallback: labelFormatCallback
208
+ })),
209
+ getByText = _render9.getByText;
210
+
211
+ expect(getByText("0$")).toBeTruthy();
212
+ expect(getByText("100$")).toBeTruthy();
213
+ expect(labelFormatCallback).toHaveBeenCalledTimes(2);
214
+ });
215
+ test("Change value correctly to 0 from external function", function () {
216
+ var onChange = jest.fn();
217
+
218
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
219
+ minValue: 0,
220
+ maxValue: 100,
221
+ onChange: onChange,
222
+ showLimitsValues: true,
223
+ value: 13,
224
+ showInput: true
225
+ })),
226
+ rerender = _render10.rerender,
227
+ getByRole = _render10.getByRole;
228
+
229
+ var slider = getByRole("slider");
230
+
231
+ _userEvent["default"].tab();
232
+
233
+ _react2.fireEvent.keyDown(slider, {
234
+ key: "ArrowRight",
235
+ code: "ArrowRight",
236
+ keyCode: 39,
237
+ charCode: 39
238
+ });
239
+
240
+ rerender( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
241
+ minValue: 0,
242
+ maxValue: 100,
243
+ onChange: onChange,
244
+ showLimitsValues: true,
245
+ value: 0,
246
+ showInput: true
247
+ }));
248
+ expect(slider.getAttribute("aria-valuenow")).toBe("0");
249
+ });
250
+ });
@@ -0,0 +1,86 @@
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+ declare type Props = {
9
+ /**
10
+ * Text to be placed above the slider.
11
+ */
12
+ label?: string;
13
+ /**
14
+ * Name attribute of the input element.
15
+ */
16
+ name?: string;
17
+ /**
18
+ * Initial value of the slider, only when it is uncontrolled.
19
+ */
20
+ defaultValue?: number;
21
+ /**
22
+ * The selected value. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
23
+ */
24
+ value?: number;
25
+ /**
26
+ * Helper text to be placed above the slider.
27
+ */
28
+ helperText?: string;
29
+ /**
30
+ * The minimum value available for selection.
31
+ */
32
+ minValue?: number;
33
+ /**
34
+ * The maximum value available for selection.
35
+ */
36
+ maxValue?: number;
37
+ /**
38
+ * The step interval between values available for selection.
39
+ */
40
+ step?: number;
41
+ /**
42
+ * Whether the min/max value labels should be displayed next to the slider
43
+ */
44
+ showLimitsValues?: boolean;
45
+ /**
46
+ * Whether the input element for displaying/controlling the slider value should be displayed next to the slider.
47
+ */
48
+ showInput?: boolean;
49
+ /**
50
+ * If true, the component will be disabled.
51
+ */
52
+ disabled?: boolean;
53
+ /**
54
+ * Whether the marks between each step should be shown or not.
55
+ */
56
+ marks?: boolean;
57
+ /**
58
+ * This function will be called when the slider changes its value, as it's being dragged.
59
+ * The new value will be passed as a parameter when this function is executed.
60
+ */
61
+ onChange?: (value: number) => void;
62
+ /**
63
+ * This function will be called when the slider changes its value, but only when the thumb is released.
64
+ * The new value will be passed as a parameter when this function is executed.
65
+ */
66
+ onDragEnd?: (value: number) => void;
67
+ /**
68
+ * This function will be used to format the labels displayed next to the slider.
69
+ * The value will be passed as parameter and the function must return the formatted value.
70
+ */
71
+ labelFormatCallback?: (value: number) => string;
72
+ /**
73
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
74
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
75
+ */
76
+ margin?: Space | Margin;
77
+ /**
78
+ * Size of the component.
79
+ */
80
+ size?: "medium" | "large" | "fillParent";
81
+ };
82
+ /**
83
+ * Reference to the component.
84
+ */
85
+ export declare type RefType = HTMLDivElement;
86
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import SpinnerPropsType from "./types";
3
+ declare const DxcSpinner: ({ label, value, showValue, mode, margin, }: SpinnerPropsType) => JSX.Element;
4
+ export default DxcSpinner;