@strapi/design-system 1.3.0-beta.1 → 1.3.0-beta.2

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 (733) hide show
  1. package/Accordion.development.js +775 -0
  2. package/Accordion.js +9 -0
  3. package/Accordion.production.js +1 -0
  4. package/Alert.development.js +562 -0
  5. package/Alert.js +9 -0
  6. package/Alert.production.js +1 -0
  7. package/Avatar.development.js +485 -0
  8. package/Avatar.js +9 -0
  9. package/Avatar.production.js +1 -0
  10. package/Badge.development.js +494 -0
  11. package/Badge.js +9 -0
  12. package/Badge.production.js +1 -0
  13. package/BaseButton.development.js +285 -0
  14. package/BaseButton.js +9 -0
  15. package/BaseButton.production.js +1 -0
  16. package/BaseCheckbox.development.js +434 -0
  17. package/BaseCheckbox.js +9 -0
  18. package/BaseCheckbox.production.js +1 -0
  19. package/BaseLink.development.js +273 -0
  20. package/BaseLink.js +9 -0
  21. package/BaseLink.production.js +1 -0
  22. package/BaseRadio.development.js +321 -0
  23. package/BaseRadio.js +9 -0
  24. package/BaseRadio.production.js +1 -0
  25. package/Box.development.js +341 -0
  26. package/Box.js +9 -0
  27. package/Box.production.js +1 -0
  28. package/Breadcrumbs.development.js +518 -0
  29. package/Breadcrumbs.js +9 -0
  30. package/Breadcrumbs.production.js +1 -0
  31. package/Button.development.js +573 -0
  32. package/Button.js +9 -0
  33. package/Button.production.js +1 -0
  34. package/Card.development.js +746 -0
  35. package/Card.js +9 -0
  36. package/Card.production.js +1 -0
  37. package/CarouselInput.development.js +898 -0
  38. package/CarouselInput.js +9 -0
  39. package/CarouselInput.production.js +1 -0
  40. package/Checkbox.development.js +722 -0
  41. package/Checkbox.js +9 -0
  42. package/Checkbox.production.js +1 -0
  43. package/Combobox.development.js +934 -0
  44. package/Combobox.js +9 -0
  45. package/Combobox.production.js +1 -0
  46. package/DatePicker.development.js +1323 -0
  47. package/DatePicker.js +9 -0
  48. package/DatePicker.production.js +1 -0
  49. package/DateTimePicker.development.js +1622 -0
  50. package/DateTimePicker.js +9 -0
  51. package/DateTimePicker.production.js +1 -0
  52. package/Dialog.development.js +741 -0
  53. package/Dialog.js +9 -0
  54. package/Dialog.production.js +1 -0
  55. package/DismissibleLayer.development.js +218 -0
  56. package/DismissibleLayer.js +9 -0
  57. package/DismissibleLayer.production.js +1 -0
  58. package/Divider.development.js +398 -0
  59. package/Divider.js +9 -0
  60. package/Divider.production.js +1 -0
  61. package/EmptyStateLayout.development.js +425 -0
  62. package/EmptyStateLayout.js +9 -0
  63. package/EmptyStateLayout.production.js +1 -0
  64. package/Field.development.js +614 -0
  65. package/Field.js +9 -0
  66. package/Field.production.js +1 -0
  67. package/Flex.development.js +377 -0
  68. package/Flex.js +9 -0
  69. package/Flex.production.js +1 -0
  70. package/FocusTrap.development.js +341 -0
  71. package/FocusTrap.js +9 -0
  72. package/FocusTrap.production.js +1 -0
  73. package/Grid.development.js +422 -0
  74. package/Grid.js +9 -0
  75. package/Grid.production.js +1 -0
  76. package/Icon.development.js +376 -0
  77. package/Icon.js +9 -0
  78. package/Icon.production.js +1 -0
  79. package/IconButton.development.js +684 -0
  80. package/IconButton.js +9 -0
  81. package/IconButton.production.js +1 -0
  82. package/KeyboardNavigable.development.js +454 -0
  83. package/KeyboardNavigable.js +9 -0
  84. package/KeyboardNavigable.production.js +1 -0
  85. package/Layout.development.js +626 -0
  86. package/Layout.js +9 -0
  87. package/Layout.production.js +1 -0
  88. package/Link.development.js +492 -0
  89. package/Link.js +9 -0
  90. package/Link.production.js +1 -0
  91. package/LinkButton.development.js +573 -0
  92. package/LinkButton.js +9 -0
  93. package/LinkButton.production.js +1 -0
  94. package/LiveRegions.development.js +147 -0
  95. package/LiveRegions.js +9 -0
  96. package/LiveRegions.production.js +1 -0
  97. package/Loader.development.js +309 -0
  98. package/Loader.js +9 -0
  99. package/Loader.production.js +1 -0
  100. package/Main.development.js +410 -0
  101. package/Main.js +9 -0
  102. package/Main.production.js +1 -0
  103. package/MainNav.development.js +957 -0
  104. package/MainNav.js +9 -0
  105. package/MainNav.production.js +1 -0
  106. package/ModalLayout.development.js +895 -0
  107. package/ModalLayout.js +9 -0
  108. package/ModalLayout.production.js +1 -0
  109. package/NumberInput.development.js +733 -0
  110. package/NumberInput.js +9 -0
  111. package/NumberInput.production.js +1 -0
  112. package/Pagination.development.js +587 -0
  113. package/Pagination.js +9 -0
  114. package/Pagination.production.js +1 -0
  115. package/Popover.development.js +481 -0
  116. package/Popover.js +9 -0
  117. package/Popover.production.js +1 -0
  118. package/Portal.development.js +212 -0
  119. package/Portal.js +9 -0
  120. package/Portal.production.js +1 -0
  121. package/ProgressBar.development.js +273 -0
  122. package/ProgressBar.js +9 -0
  123. package/ProgressBar.production.js +1 -0
  124. package/Radio.development.js +518 -0
  125. package/Radio.js +9 -0
  126. package/Radio.production.js +1 -0
  127. package/RawTable.development.js +549 -0
  128. package/RawTable.js +9 -0
  129. package/RawTable.production.js +1 -0
  130. package/Searchbar.development.js +696 -0
  131. package/Searchbar.js +9 -0
  132. package/Searchbar.production.js +1 -0
  133. package/Select.development.js +1063 -0
  134. package/Select.js +9 -0
  135. package/Select.production.js +1 -0
  136. package/SimpleMenu.development.js +821 -0
  137. package/SimpleMenu.js +9 -0
  138. package/SimpleMenu.production.js +1 -0
  139. package/Stack.development.js +434 -0
  140. package/Stack.js +9 -0
  141. package/Stack.production.js +1 -0
  142. package/Status.development.js +494 -0
  143. package/Status.js +9 -0
  144. package/Status.production.js +1 -0
  145. package/SubNav.development.js +1123 -0
  146. package/SubNav.js +9 -0
  147. package/SubNav.production.js +1 -0
  148. package/Switch.development.js +434 -0
  149. package/Switch.js +9 -0
  150. package/Switch.production.js +1 -0
  151. package/Table.development.js +741 -0
  152. package/Table.js +9 -0
  153. package/Table.production.js +1 -0
  154. package/Tabs.development.js +590 -0
  155. package/Tabs.js +9 -0
  156. package/Tabs.production.js +1 -0
  157. package/Tag.development.js +494 -0
  158. package/Tag.js +9 -0
  159. package/Tag.production.js +1 -0
  160. package/TextButton.development.js +517 -0
  161. package/TextButton.js +9 -0
  162. package/TextButton.production.js +1 -0
  163. package/TextInput.development.js +662 -0
  164. package/TextInput.js +9 -0
  165. package/TextInput.production.js +1 -0
  166. package/Textarea.development.js +674 -0
  167. package/Textarea.js +9 -0
  168. package/Textarea.production.js +1 -0
  169. package/ThemeProvider.development.js +300 -0
  170. package/ThemeProvider.js +9 -0
  171. package/ThemeProvider.production.js +1 -0
  172. package/TimePicker.development.js +1098 -0
  173. package/TimePicker.js +9 -0
  174. package/TimePicker.production.js +1 -0
  175. package/ToggleCheckbox.development.js +542 -0
  176. package/ToggleCheckbox.js +9 -0
  177. package/ToggleCheckbox.production.js +1 -0
  178. package/ToggleInput.development.js +745 -0
  179. package/ToggleInput.js +9 -0
  180. package/ToggleInput.production.js +1 -0
  181. package/Tooltip.development.js +588 -0
  182. package/Tooltip.js +9 -0
  183. package/Tooltip.production.js +1 -0
  184. package/Typography.development.js +276 -0
  185. package/Typography.js +9 -0
  186. package/Typography.production.js +1 -0
  187. package/VisuallyHidden.development.js +146 -0
  188. package/VisuallyHidden.js +9 -0
  189. package/VisuallyHidden.production.js +1 -0
  190. package/index.development.js +4338 -0
  191. package/index.js +9 -0
  192. package/index.production.js +1 -0
  193. package/package.json +2 -2
  194. package/themes.development.js +254 -0
  195. package/themes.js +9 -0
  196. package/themes.production.js +1 -0
  197. package/v2/Breadcrumbs.development.js +906 -0
  198. package/v2/Breadcrumbs.js +9 -0
  199. package/v2/Breadcrumbs.production.js +1 -0
  200. package/v2/Link.development.js +505 -0
  201. package/v2/Link.js +9 -0
  202. package/v2/Link.production.js +1 -0
  203. package/v2/LinkButton.development.js +586 -0
  204. package/v2/LinkButton.js +9 -0
  205. package/v2/LinkButton.production.js +1 -0
  206. package/v2/MainNav.development.js +970 -0
  207. package/v2/MainNav.js +9 -0
  208. package/v2/MainNav.production.js +1 -0
  209. package/v2/Pagination.development.js +600 -0
  210. package/v2/Pagination.js +9 -0
  211. package/v2/Pagination.production.js +1 -0
  212. package/v2/SimpleMenu.development.js +834 -0
  213. package/v2/SimpleMenu.js +9 -0
  214. package/v2/SimpleMenu.production.js +1 -0
  215. package/v2/SubNav.development.js +1136 -0
  216. package/v2/SubNav.js +9 -0
  217. package/v2/SubNav.production.js +1 -0
  218. package/v2/index.development.js +1740 -0
  219. package/v2/index.js +9 -0
  220. package/v2/index.production.js +1 -0
  221. package/v2/package.json +81 -0
  222. package/.eslintignore +0 -3
  223. package/.eslintrc.js +0 -38
  224. package/.prettierrc.js +0 -7
  225. package/.storybook/components/Theme.js +0 -28
  226. package/.storybook/main.js +0 -13
  227. package/.storybook/manager.js +0 -12
  228. package/.storybook/preview.js +0 -42
  229. package/.storybook/utils/createCustomTheme.js +0 -26
  230. package/LICENSE +0 -20
  231. package/__mocks__/fileMock.js +0 -1
  232. package/__mocks__/styleMock.js +0 -1
  233. package/babel.config.js +0 -5
  234. package/createIndexFiles.js +0 -34
  235. package/global-setup.js +0 -4
  236. package/jest.config.js +0 -17
  237. package/playwright.config.js +0 -39
  238. package/src/Accordion/Accordion.js +0 -148
  239. package/src/Accordion/Accordion.stories.mdx +0 -327
  240. package/src/Accordion/AccordionContent.js +0 -26
  241. package/src/Accordion/AccordionContext.js +0 -5
  242. package/src/Accordion/AccordionGroup.js +0 -114
  243. package/src/Accordion/AccordionToggle.js +0 -192
  244. package/src/Accordion/__tests__/Accordion.e2e.js +0 -32
  245. package/src/Accordion/__tests__/AccordionKeyboard.e2e.js +0 -73
  246. package/src/Accordion/index.js +0 -4
  247. package/src/Accordion/utils.js +0 -15
  248. package/src/Alert/Alert.js +0 -144
  249. package/src/Alert/Alert.stories.mdx +0 -135
  250. package/src/Alert/__tests__/Alert.e2e.js +0 -39
  251. package/src/Alert/index.js +0 -1
  252. package/src/Alert/utils.js +0 -35
  253. package/src/Avatar/Avatar.js +0 -110
  254. package/src/Avatar/Avatar.stories.mdx +0 -67
  255. package/src/Avatar/AvatarGroup.js +0 -9
  256. package/src/Avatar/__tests__/Avatar.e2e.js +0 -23
  257. package/src/Avatar/__tests__/Avatar.spec.js +0 -153
  258. package/src/Avatar/constants.js +0 -2
  259. package/src/Avatar/index.js +0 -2
  260. package/src/Badge/Badge.js +0 -41
  261. package/src/Badge/Badge.stories.mdx +0 -57
  262. package/src/Badge/__tests__/Badge.e2e.js +0 -23
  263. package/src/Badge/index.js +0 -1
  264. package/src/BaseButton/BaseButton.js +0 -46
  265. package/src/BaseButton/BaseButton.stories.mdx +0 -32
  266. package/src/BaseButton/__tests__/BaseButton.e2e.js +0 -23
  267. package/src/BaseButton/index.js +0 -1
  268. package/src/BaseCheckbox/BaseCheckbox.js +0 -133
  269. package/src/BaseCheckbox/BaseCheckbox.stories.mdx +0 -107
  270. package/src/BaseCheckbox/__tests__/BaseCheckbox.e2e.js +0 -94
  271. package/src/BaseCheckbox/assets/checkmark-black.svg +0 -6
  272. package/src/BaseCheckbox/assets/checkmark.svg +0 -6
  273. package/src/BaseCheckbox/index.js +0 -1
  274. package/src/BaseCheckbox/utils.js +0 -7
  275. package/src/BaseLink/BaseLink.js +0 -38
  276. package/src/BaseLink/BaseLink.stories.mdx +0 -34
  277. package/src/BaseLink/__tests__/BaseLink.e2e.js +0 -23
  278. package/src/BaseLink/__tests__/BaseLink.spec.js +0 -26
  279. package/src/BaseLink/index.js +0 -1
  280. package/src/BaseRadio/BaseRadio.js +0 -69
  281. package/src/BaseRadio/BaseRadio.stories.mdx +0 -110
  282. package/src/BaseRadio/RadioGroup.js +0 -36
  283. package/src/BaseRadio/__tests__/BaseRadio.e2e.js +0 -90
  284. package/src/BaseRadio/context.js +0 -3
  285. package/src/BaseRadio/index.js +0 -2
  286. package/src/BaseRadio/utils.js +0 -30
  287. package/src/Box/Box.js +0 -104
  288. package/src/Box/Box.stories.mdx +0 -57
  289. package/src/Box/BoxProps.js +0 -99
  290. package/src/Box/__tests__/Box.e2e.js +0 -23
  291. package/src/Box/__tests__/Box.spec.js +0 -36
  292. package/src/Box/index.js +0 -1
  293. package/src/Breadcrumbs/Breadcrumbs.js +0 -58
  294. package/src/Breadcrumbs/Breadcrumbs.stories.mdx +0 -47
  295. package/src/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -23
  296. package/src/Breadcrumbs/index.js +0 -1
  297. package/src/Button/Button.js +0 -138
  298. package/src/Button/Button.stories.mdx +0 -216
  299. package/src/Button/__tests__/Button.e2e.js +0 -89
  300. package/src/Button/__tests__/utils.spec.js +0 -19
  301. package/src/Button/constants.js +0 -12
  302. package/src/Button/index.js +0 -1
  303. package/src/Button/utils.js +0 -170
  304. package/src/Card/Card.js +0 -35
  305. package/src/Card/Card.stories.mdx +0 -202
  306. package/src/Card/CardAction.js +0 -13
  307. package/src/Card/CardAsset.js +0 -49
  308. package/src/Card/CardBadge.js +0 -18
  309. package/src/Card/CardBody.js +0 -11
  310. package/src/Card/CardCheckbox.js +0 -14
  311. package/src/Card/CardContent.js +0 -16
  312. package/src/Card/CardContext.js +0 -5
  313. package/src/Card/CardHeader.js +0 -12
  314. package/src/Card/CardTimer.js +0 -23
  315. package/src/Card/CardTitle.js +0 -12
  316. package/src/Card/__tests__/Card.e2e.js +0 -164
  317. package/src/Card/index.js +0 -10
  318. package/src/Card/story-assets/first.jpg +0 -0
  319. package/src/CarouselInput/Carousel.js +0 -138
  320. package/src/CarouselInput/Carousel.stories.mdx +0 -149
  321. package/src/CarouselInput/CarouselActions.js +0 -6
  322. package/src/CarouselInput/CarouselImage.js +0 -39
  323. package/src/CarouselInput/CarouselInput.js +0 -80
  324. package/src/CarouselInput/CarouselSlide.js +0 -32
  325. package/src/CarouselInput/__tests__/CarouselImage.e2e.js +0 -15
  326. package/src/CarouselInput/__tests__/CarouselInput.e2e.js +0 -48
  327. package/src/CarouselInput/index.js +0 -5
  328. package/src/CarouselInput/story-assets/first.jpg +0 -0
  329. package/src/Checkbox/Checkbox.js +0 -63
  330. package/src/Checkbox/Checkbox.stories.mdx +0 -190
  331. package/src/Checkbox/__tests__/Checkbox.e2e.js +0 -96
  332. package/src/Checkbox/index.js +0 -1
  333. package/src/Combobox/Combobox.js +0 -421
  334. package/src/Combobox/Combobox.stories.mdx +0 -191
  335. package/src/Combobox/ComboboxList.js +0 -22
  336. package/src/Combobox/ComboboxOption.js +0 -36
  337. package/src/Combobox/__tests__/Combobox.e2e.js +0 -133
  338. package/src/Combobox/__tests__/utils.spec.js +0 -94
  339. package/src/Combobox/components.js +0 -69
  340. package/src/Combobox/index.js +0 -2
  341. package/src/Combobox/utils.js +0 -97
  342. package/src/DatePicker/DatePicker.js +0 -132
  343. package/src/DatePicker/DatePicker.stories.mdx +0 -172
  344. package/src/DatePicker/DatePickerCalendar.js +0 -134
  345. package/src/DatePicker/DatePickerTd.js +0 -51
  346. package/src/DatePicker/DatePickerTh.js +0 -39
  347. package/src/DatePicker/__tests__/DatePicker.e2e.js +0 -94
  348. package/src/DatePicker/__tests__/DatePicker.spec.js +0 -40
  349. package/src/DatePicker/compareDates.js +0 -9
  350. package/src/DatePicker/components.js +0 -45
  351. package/src/DatePicker/index.js +0 -1
  352. package/src/DatePicker/utils/formatDate.js +0 -5
  353. package/src/DatePicker/utils/generateWeeks.js +0 -58
  354. package/src/DatePicker/utils/getDayOfWeek.js +0 -24
  355. package/src/DatePicker/utils/getMonths.js +0 -10
  356. package/src/DatePicker/utils/getYears.js +0 -19
  357. package/src/DatePicker/utils/index.js +0 -5
  358. package/src/DatePicker/utils/tests/generateWeeks.spec.js +0 -136
  359. package/src/DatePicker/utils/tests/getMonths.spec.js +0 -21
  360. package/src/DatePicker/utils/tests/getYears.spec.js +0 -21
  361. package/src/DateTimePicker/DateTimePicker.js +0 -151
  362. package/src/DateTimePicker/DateTimePicker.stories.mdx +0 -114
  363. package/src/DateTimePicker/DateTimePickerProps.js +0 -85
  364. package/src/DateTimePicker/__tests__/DateTimePicker.e2e.js +0 -103
  365. package/src/DateTimePicker/__tests__/DateTimePicker.spec.js +0 -89
  366. package/src/DateTimePicker/__tests__/__snapshots__/DateTimePicker.spec.js.snap +0 -448
  367. package/src/DateTimePicker/__tests__/parseDate.test.js +0 -10
  368. package/src/DateTimePicker/index.js +0 -1
  369. package/src/DateTimePicker/parseDate.js +0 -11
  370. package/src/Dialog/Dialog.js +0 -86
  371. package/src/Dialog/Dialog.stories.mdx +0 -78
  372. package/src/Dialog/DialogBody.js +0 -36
  373. package/src/Dialog/DialogFooter.js +0 -38
  374. package/src/Dialog/__tests__/Dialog.e2e.js +0 -20
  375. package/src/Dialog/__tests__/Dialog.spec.js +0 -28
  376. package/src/Dialog/index.js +0 -3
  377. package/src/DismissibleLayer/DismissibleLayer.js +0 -87
  378. package/src/DismissibleLayer/DismissibleLayer.stories.mdx +0 -50
  379. package/src/DismissibleLayer/__test__/DimissibleLayer.spec.js +0 -44
  380. package/src/DismissibleLayer/index.js +0 -1
  381. package/src/Divider/Divider.js +0 -26
  382. package/src/Divider/Divider.stories.mdx +0 -55
  383. package/src/Divider/__tests__/Divider.e2e.js +0 -23
  384. package/src/Divider/index.js +0 -1
  385. package/src/EmptyStateLayout/EmptyStateLayout.js +0 -48
  386. package/src/EmptyStateLayout/EmptyStateLayout.stories.mdx +0 -87
  387. package/src/EmptyStateLayout/__tests__/EmptyStateLayout.e2e.js +0 -31
  388. package/src/EmptyStateLayout/index.js +0 -1
  389. package/src/EmptyStateLayout/story-assets/Illo.js +0 -51
  390. package/src/Field/Field.js +0 -29
  391. package/src/Field/Field.stories.mdx +0 -237
  392. package/src/Field/FieldAction.js +0 -25
  393. package/src/Field/FieldContext.js +0 -4
  394. package/src/Field/FieldError.js +0 -17
  395. package/src/Field/FieldHint.js +0 -17
  396. package/src/Field/FieldInput.js +0 -129
  397. package/src/Field/FieldLabel.js +0 -50
  398. package/src/Field/__tests__/Field.e2e.js +0 -61
  399. package/src/Field/index.js +0 -7
  400. package/src/Flex/Flex.js +0 -26
  401. package/src/Flex/Flex.stories.mdx +0 -45
  402. package/src/Flex/FlexProps.js +0 -41
  403. package/src/Flex/__tests__/Flex.e2e.js +0 -23
  404. package/src/Flex/index.js +0 -1
  405. package/src/FocusTrap/ExampleComponent.js +0 -71
  406. package/src/FocusTrap/FocusTrap.js +0 -83
  407. package/src/FocusTrap/FocusTrap.stories.mdx +0 -32
  408. package/src/FocusTrap/__tests__/FocusTrap.e2e.js +0 -126
  409. package/src/FocusTrap/index.js +0 -1
  410. package/src/Grid/Grid.js +0 -30
  411. package/src/Grid/Grid.stories.mdx +0 -112
  412. package/src/Grid/GridContext.js +0 -5
  413. package/src/Grid/GridItem.js +0 -40
  414. package/src/Grid/__tests__/Grid.e2e.js +0 -23
  415. package/src/Grid/index.js +0 -2
  416. package/src/Icon/Icon.js +0 -27
  417. package/src/Icon/Icon.stories.mdx +0 -41
  418. package/src/Icon/__tests__/Icon.e2e.js +0 -21
  419. package/src/Icon/index.js +0 -1
  420. package/src/IconButton/IconButton.js +0 -175
  421. package/src/IconButton/IconButton.stories.mdx +0 -153
  422. package/src/IconButton/__tests__/IconButton.e2e.js +0 -57
  423. package/src/IconButton/index.js +0 -1
  424. package/src/KeyboardNavigable/KeyboardNavigable.js +0 -96
  425. package/src/KeyboardNavigable/index.js +0 -1
  426. package/src/Layout/ActionLayout.js +0 -40
  427. package/src/Layout/ContentLayout.js +0 -15
  428. package/src/Layout/GridLayout.js +0 -12
  429. package/src/Layout/GridLayout.stories.mdx +0 -36
  430. package/src/Layout/HeaderLayout.js +0 -170
  431. package/src/Layout/HeaderLayout.stories.mdx +0 -175
  432. package/src/Layout/Layout.js +0 -31
  433. package/src/Layout/Layout.stories.mdx +0 -240
  434. package/src/Layout/TwoColsLayout.js +0 -26
  435. package/src/Layout/TwoColsLayout.stories.mdx +0 -46
  436. package/src/Layout/__tests__/GridLayout.e2e.js +0 -23
  437. package/src/Layout/__tests__/HeaderLayout.e2e.js +0 -83
  438. package/src/Layout/__tests__/Layout.e2e.js +0 -23
  439. package/src/Layout/__tests__/TwoColsLayout.e2e.js +0 -23
  440. package/src/Layout/index.js +0 -6
  441. package/src/Link/Link.js +0 -105
  442. package/src/Link/Link.stories.mdx +0 -57
  443. package/src/Link/__tests__/Link.e2e.js +0 -23
  444. package/src/Link/index.js +0 -1
  445. package/src/LinkButton/LinkButton.js +0 -113
  446. package/src/LinkButton/LinkButton.stories.mdx +0 -153
  447. package/src/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  448. package/src/LinkButton/index.js +0 -1
  449. package/src/LiveRegions/LiveRegions.js +0 -13
  450. package/src/LiveRegions/LiveRegions.stories.mdx +0 -76
  451. package/src/LiveRegions/StoryComponent.js +0 -26
  452. package/src/LiveRegions/__tests__/LiveRegions.spec.js +0 -200
  453. package/src/LiveRegions/constants.js +0 -5
  454. package/src/LiveRegions/index.js +0 -1
  455. package/src/LiveRegions/useNotifyAT.js +0 -39
  456. package/src/Loader/Loader.js +0 -40
  457. package/src/Loader/Loader.stories.mdx +0 -48
  458. package/src/Loader/__tests__/Loader.e2e.js +0 -23
  459. package/src/Loader/assets/loader.svg +0 -3
  460. package/src/Loader/index.js +0 -1
  461. package/src/Main/Main.js +0 -24
  462. package/src/Main/SkipToContent.js +0 -29
  463. package/src/Main/index.js +0 -2
  464. package/src/MainNav/MainNav.js +0 -31
  465. package/src/MainNav/MainNav.stories.mdx +0 -197
  466. package/src/MainNav/MainNavContext.js +0 -5
  467. package/src/MainNav/NavBrand.js +0 -76
  468. package/src/MainNav/NavCondense.js +0 -44
  469. package/src/MainNav/NavLink.js +0 -143
  470. package/src/MainNav/NavSection.js +0 -53
  471. package/src/MainNav/NavSections.js +0 -20
  472. package/src/MainNav/NavUser.js +0 -53
  473. package/src/MainNav/__tests__/MainNav.e2e.js +0 -23
  474. package/src/MainNav/index.js +0 -7
  475. package/src/MainNav/strapi-img.png +0 -0
  476. package/src/ModalLayout/ModalBody.js +0 -12
  477. package/src/ModalLayout/ModalContext.js +0 -4
  478. package/src/ModalLayout/ModalFooter.js +0 -37
  479. package/src/ModalLayout/ModalHeader.js +0 -35
  480. package/src/ModalLayout/ModalLayout.js +0 -58
  481. package/src/ModalLayout/ModalLayout.stories.mdx +0 -100
  482. package/src/ModalLayout/__tests__/ModalLayout.e2e.js +0 -19
  483. package/src/ModalLayout/__tests__/ModalLayout.spec.js +0 -596
  484. package/src/ModalLayout/index.js +0 -4
  485. package/src/NumberInput/NumberInput.js +0 -253
  486. package/src/NumberInput/NumberInput.stories.mdx +0 -319
  487. package/src/NumberInput/__tests__/NumberInput.e2e.js +0 -194
  488. package/src/NumberInput/index.js +0 -1
  489. package/src/Pagination/Pagination.js +0 -37
  490. package/src/Pagination/Pagination.stories.mdx +0 -97
  491. package/src/Pagination/PaginationContext.js +0 -4
  492. package/src/Pagination/__tests__/Pagination.e2e.js +0 -23
  493. package/src/Pagination/assets/next.svg +0 -3
  494. package/src/Pagination/assets/previous.svg +0 -3
  495. package/src/Pagination/components.js +0 -147
  496. package/src/Pagination/index.js +0 -2
  497. package/src/Popover/Popover.js +0 -167
  498. package/src/Popover/Popover.stories.mdx +0 -167
  499. package/src/Popover/__tests__/Popover.e2e.js +0 -48
  500. package/src/Popover/__tests__/Popover.spec.js +0 -153
  501. package/src/Popover/index.js +0 -1
  502. package/src/Portal/Portal.js +0 -25
  503. package/src/Portal/Portal.stories.mdx +0 -33
  504. package/src/Portal/__tests__/Portal.e2e.js +0 -23
  505. package/src/Portal/index.js +0 -1
  506. package/src/ProgressBar/ProgressBar.js +0 -57
  507. package/src/ProgressBar/ProgressBar.stories.mdx +0 -47
  508. package/src/ProgressBar/__tests__/ProgressBar.e2e.js +0 -41
  509. package/src/ProgressBar/index.js +0 -1
  510. package/src/Radio/Radio.js +0 -25
  511. package/src/Radio/Radio.stories.mdx +0 -66
  512. package/src/Radio/__tests__/Radio.e2e.js +0 -66
  513. package/src/Radio/__tests__/Radio.spec.js +0 -56
  514. package/src/Radio/index.js +0 -2
  515. package/src/RawTable/RawCell.js +0 -182
  516. package/src/RawTable/RawTable.js +0 -123
  517. package/src/RawTable/RawTable.stories.mdx +0 -258
  518. package/src/RawTable/RawTableContext.js +0 -10
  519. package/src/RawTable/RawTbody.js +0 -18
  520. package/src/RawTable/RawThead.js +0 -15
  521. package/src/RawTable/RawTr.js +0 -20
  522. package/src/RawTable/__tests__/RawTable.e2e.js +0 -344
  523. package/src/RawTable/focusFocusable.js +0 -7
  524. package/src/RawTable/index.js +0 -5
  525. package/src/Searchbar/SearchForm.js +0 -3
  526. package/src/Searchbar/Searchbar.js +0 -103
  527. package/src/Searchbar/Searchbar.stories.mdx +0 -115
  528. package/src/Searchbar/__tests__/Searchbar.e2e.js +0 -52
  529. package/src/Searchbar/index.js +0 -2
  530. package/src/Select/MultiSelectNested.js +0 -31
  531. package/src/Select/OptGroup.js +0 -27
  532. package/src/Select/Option.js +0 -123
  533. package/src/Select/Select.js +0 -318
  534. package/src/Select/Select.stories.mdx +0 -362
  535. package/src/Select/SelectButton.js +0 -77
  536. package/src/Select/SelectList.js +0 -113
  537. package/src/Select/SelectTags.js +0 -50
  538. package/src/Select/__tests__/Select.e2e.js +0 -238
  539. package/src/Select/__tests__/Select.spec.js +0 -1020
  540. package/src/Select/components.js +0 -51
  541. package/src/Select/constants.js +0 -6
  542. package/src/Select/hooks/useButtonRef.js +0 -31
  543. package/src/Select/hooks/useListRef.js +0 -35
  544. package/src/Select/index.js +0 -5
  545. package/src/Select/utils.js +0 -27
  546. package/src/SimpleMenu/SimpleMenu.js +0 -252
  547. package/src/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  548. package/src/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -98
  549. package/src/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  550. package/src/SimpleMenu/index.js +0 -1
  551. package/src/SimpleMenu/utils.js +0 -12
  552. package/src/Stack/Stack.js +0 -75
  553. package/src/Stack/Stack.stories.mdx +0 -66
  554. package/src/Stack/__tests__/Stack.e2e.js +0 -43
  555. package/src/Stack/index.js +0 -1
  556. package/src/Status/Status.js +0 -76
  557. package/src/Status/Status.stories.mdx +0 -80
  558. package/src/Status/__tests__/Status.e2e.js +0 -23
  559. package/src/Status/__tests__/Status.spec.js +0 -48
  560. package/src/Status/index.js +0 -1
  561. package/src/SubNav/SubNav.js +0 -25
  562. package/src/SubNav/SubNav.stories.mdx +0 -234
  563. package/src/SubNav/SubNavHeader.js +0 -122
  564. package/src/SubNav/SubNavLink.js +0 -92
  565. package/src/SubNav/SubNavLinkSection.js +0 -75
  566. package/src/SubNav/SubNavSection.js +0 -75
  567. package/src/SubNav/SubNavSectionLabel.js +0 -67
  568. package/src/SubNav/SubNavSections.js +0 -20
  569. package/src/SubNav/__tests__/SubNav.e2e.js +0 -23
  570. package/src/SubNav/index.js +0 -6
  571. package/src/Switch/Switch.js +0 -97
  572. package/src/Switch/Switch.stories.mdx +0 -76
  573. package/src/Switch/__tests__/Switch.e2e.js +0 -33
  574. package/src/Switch/index.js +0 -1
  575. package/src/Table/Cell.js +0 -49
  576. package/src/Table/TFooter.js +0 -58
  577. package/src/Table/Table.js +0 -96
  578. package/src/Table/Table.stories.mdx +0 -330
  579. package/src/Table/Tbody.js +0 -13
  580. package/src/Table/Thead.js +0 -11
  581. package/src/Table/Tr.js +0 -28
  582. package/src/Table/__tests__/Table.e2e.js +0 -41
  583. package/src/Table/index.js +0 -6
  584. package/src/Tabs/TabGroup.js +0 -46
  585. package/src/Tabs/TabPanels.js +0 -32
  586. package/src/Tabs/Tabs.js +0 -227
  587. package/src/Tabs/Tabs.stories.mdx +0 -211
  588. package/src/Tabs/TabsContext.js +0 -5
  589. package/src/Tabs/__tests__/Tabs.e2e.js +0 -253
  590. package/src/Tabs/components.js +0 -66
  591. package/src/Tabs/index.js +0 -3
  592. package/src/Tabs/useTabsFocus.js +0 -28
  593. package/src/Tag/Tag.js +0 -72
  594. package/src/Tag/Tag.stories.mdx +0 -47
  595. package/src/Tag/__tests__/Tag.e2e.js +0 -37
  596. package/src/Tag/index.js +0 -1
  597. package/src/TextButton/TextButton.js +0 -102
  598. package/src/TextButton/TextButton.stories.mdx +0 -71
  599. package/src/TextButton/__tests__/TextButton.e2e.js +0 -23
  600. package/src/TextButton/index.js +0 -1
  601. package/src/TextInput/TextInput.js +0 -67
  602. package/src/TextInput/TextInput.stories.mdx +0 -228
  603. package/src/TextInput/__tests__/TextInput.e2e.js +0 -73
  604. package/src/TextInput/index.js +0 -1
  605. package/src/Textarea/Textarea.js +0 -74
  606. package/src/Textarea/Textarea.stories.mdx +0 -105
  607. package/src/Textarea/TextareaInput.js +0 -77
  608. package/src/Textarea/__tests__/Textarea.e2e.js +0 -37
  609. package/src/Textarea/index.js +0 -1
  610. package/src/ThemeProvider/ThemeProvider.js +0 -193
  611. package/src/ThemeProvider/hooks.js +0 -5
  612. package/src/ThemeProvider/index.js +0 -2
  613. package/src/TimePicker/TimePicker.js +0 -128
  614. package/src/TimePicker/TimePicker.stories.mdx +0 -171
  615. package/src/TimePicker/__tests__/TimePicker.e2e.js +0 -37
  616. package/src/TimePicker/__tests__/TimePicker.spec.js +0 -2099
  617. package/src/TimePicker/index.js +0 -1
  618. package/src/ToggleCheckbox/ToggleCheckbox.js +0 -169
  619. package/src/ToggleCheckbox/ToggleCheckbox.stories.mdx +0 -96
  620. package/src/ToggleCheckbox/__tests__/ToggleCheckbox.e2e.js +0 -59
  621. package/src/ToggleCheckbox/index.js +0 -1
  622. package/src/ToggleInput/ToggleInput.js +0 -89
  623. package/src/ToggleInput/ToggleInput.stories.mdx +0 -171
  624. package/src/ToggleInput/__tests__/ToggleInput.e2e.js +0 -109
  625. package/src/ToggleInput/index.js +0 -1
  626. package/src/Tooltip/Tooltip.js +0 -72
  627. package/src/Tooltip/Tooltip.stories.mdx +0 -127
  628. package/src/Tooltip/__tests__/Tooltip.e2e.js +0 -33
  629. package/src/Tooltip/__tests__/Tooltip.spec.js +0 -306
  630. package/src/Tooltip/hooks/useTooltipHandlers.js +0 -39
  631. package/src/Tooltip/hooks/useTooltipLayout.js +0 -21
  632. package/src/Tooltip/index.js +0 -1
  633. package/src/Tooltip/utils/__tests__/positionTooltip.spec.js +0 -114
  634. package/src/Tooltip/utils/positionTooltip.js +0 -83
  635. package/src/Typography/Typography.js +0 -24
  636. package/src/Typography/Typography.stories.mdx +0 -86
  637. package/src/Typography/TypographyProps.js +0 -30
  638. package/src/Typography/__tests__/Typography.e2e.js +0 -25
  639. package/src/Typography/__tests__/Typography.spec.js +0 -32
  640. package/src/Typography/__tests__/__snapshots__/Typography.spec.js.snap +0 -103
  641. package/src/Typography/constants.js +0 -9
  642. package/src/Typography/index.js +0 -1
  643. package/src/Typography/utils.js +0 -69
  644. package/src/VisuallyHidden/VisuallyHidden.js +0 -12
  645. package/src/VisuallyHidden/index.js +0 -1
  646. package/src/helpers/__tests__/useId.spec.js +0 -39
  647. package/src/helpers/escapeSelector.js +0 -1
  648. package/src/helpers/genId.js +0 -2
  649. package/src/helpers/getDefaultLocale.js +0 -33
  650. package/src/helpers/getFocusableNodes.js +0 -35
  651. package/src/helpers/handleResponsiveValues.js +0 -34
  652. package/src/helpers/keyboardKeys.js +0 -17
  653. package/src/helpers/setOpacity.js +0 -4
  654. package/src/helpers/setTabIndexOnFirstItem.js +0 -7
  655. package/src/helpers/useElementOnScreen.js +0 -27
  656. package/src/helpers/useId.js +0 -8
  657. package/src/helpers/useIntersection.js +0 -31
  658. package/src/helpers/useLockScroll.js +0 -14
  659. package/src/helpers/usePrevious.js +0 -9
  660. package/src/helpers/useResizeObserver.js +0 -22
  661. package/src/index.js +0 -65
  662. package/src/themes/ColorButton.js +0 -24
  663. package/src/themes/Theme.stories.mdx +0 -227
  664. package/src/themes/__tests__/extendTheme.spec.js +0 -119
  665. package/src/themes/colors.js +0 -46
  666. package/src/themes/common-theme.js +0 -19
  667. package/src/themes/darkTheme/dark-colors.js +0 -49
  668. package/src/themes/darkTheme/dark-shadows.js +0 -10
  669. package/src/themes/darkTheme/index.js +0 -9
  670. package/src/themes/extendTheme.js +0 -60
  671. package/src/themes/index.js +0 -4
  672. package/src/themes/lightTheme/index.js +0 -9
  673. package/src/themes/lightTheme/light-colors.js +0 -49
  674. package/src/themes/lightTheme/light-shadows.js +0 -10
  675. package/src/themes/sizes.js +0 -10
  676. package/src/themes/utils.js +0 -50
  677. package/src/v2/Breadcrumbs/Breadcrumbs.js +0 -45
  678. package/src/v2/Breadcrumbs/Breadcrumbs.stories.mdx +0 -129
  679. package/src/v2/Breadcrumbs/Crumb.js +0 -30
  680. package/src/v2/Breadcrumbs/CrumbLink.js +0 -33
  681. package/src/v2/Breadcrumbs/CrumbSimpleMenu.js +0 -30
  682. package/src/v2/Breadcrumbs/Divider.js +0 -16
  683. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -47
  684. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.spec.js +0 -47
  685. package/src/v2/Breadcrumbs/index.js +0 -4
  686. package/src/v2/Link/Link.js +0 -79
  687. package/src/v2/Link/Link.stories.mdx +0 -113
  688. package/src/v2/Link/__tests__/Link.e2e.js +0 -23
  689. package/src/v2/Link/index.js +0 -1
  690. package/src/v2/LinkButton/LinkButton.js +0 -105
  691. package/src/v2/LinkButton/LinkButton.stories.mdx +0 -153
  692. package/src/v2/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  693. package/src/v2/LinkButton/index.js +0 -1
  694. package/src/v2/MainNav/MainNav.js +0 -31
  695. package/src/v2/MainNav/MainNav.stories.mdx +0 -197
  696. package/src/v2/MainNav/MainNavContext.js +0 -5
  697. package/src/v2/MainNav/NavBrand.js +0 -79
  698. package/src/v2/MainNav/NavCondense.js +0 -44
  699. package/src/v2/MainNav/NavLink.js +0 -143
  700. package/src/v2/MainNav/NavSection.js +0 -53
  701. package/src/v2/MainNav/NavSections.js +0 -20
  702. package/src/v2/MainNav/NavUser.js +0 -53
  703. package/src/v2/MainNav/__tests__/MainNav.e2e.js +0 -23
  704. package/src/v2/MainNav/index.js +0 -7
  705. package/src/v2/MainNav/strapi-img.png +0 -0
  706. package/src/v2/Pagination/Pagination.js +0 -37
  707. package/src/v2/Pagination/Pagination.stories.mdx +0 -97
  708. package/src/v2/Pagination/PaginationContext.js +0 -4
  709. package/src/v2/Pagination/__tests__/Pagination.e2e.js +0 -23
  710. package/src/v2/Pagination/assets/next.svg +0 -3
  711. package/src/v2/Pagination/assets/previous.svg +0 -3
  712. package/src/v2/Pagination/components.js +0 -136
  713. package/src/v2/Pagination/index.js +0 -2
  714. package/src/v2/SimpleMenu/SimpleMenu.js +0 -252
  715. package/src/v2/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  716. package/src/v2/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -100
  717. package/src/v2/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  718. package/src/v2/SimpleMenu/index.js +0 -1
  719. package/src/v2/SimpleMenu/utils.js +0 -12
  720. package/src/v2/SubNav/SubNav.js +0 -25
  721. package/src/v2/SubNav/SubNav.stories.mdx +0 -234
  722. package/src/v2/SubNav/SubNavHeader.js +0 -122
  723. package/src/v2/SubNav/SubNavLink.js +0 -95
  724. package/src/v2/SubNav/SubNavLinkSection.js +0 -75
  725. package/src/v2/SubNav/SubNavSection.js +0 -75
  726. package/src/v2/SubNav/SubNavSectionLabel.js +0 -67
  727. package/src/v2/SubNav/SubNavSections.js +0 -20
  728. package/src/v2/SubNav/__tests__/SubNav.e2e.js +0 -23
  729. package/src/v2/SubNav/index.js +0 -6
  730. package/src/v2/index.js +0 -7
  731. package/test-bundler.js +0 -35
  732. package/tests/check-exports.spec.js +0 -36
  733. package/webpack.config.js +0 -84
@@ -1,132 +0,0 @@
1
- import React, { useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import CalendarIcon from '@strapi/icons/Calendar';
4
- import Cross from '@strapi/icons/Cross';
5
- import { sizes } from '../themes/sizes';
6
- import { TextInput } from '../TextInput';
7
- import { DatePickerButton, DatePickerWrapper, IconBox } from './components';
8
- import { DatePickerCalendar } from './DatePickerCalendar';
9
- import { formatDate } from './utils/formatDate';
10
- import { useId } from '../helpers/useId';
11
- import { getDefaultLocale } from '../helpers/getDefaultLocale';
12
-
13
- export const DatePicker = ({
14
- ariaLabel,
15
- initialDate,
16
- selectedDate,
17
- onChange,
18
- label,
19
- locale: defaultLocale,
20
- selectedDateLabel,
21
- onClear,
22
- clearLabel,
23
- disabled,
24
- id,
25
- ...props
26
- }) => {
27
- const generatedId = useId('datepicker', id);
28
- const [visible, setVisible] = useState(false);
29
- const inputRef = useRef(null);
30
- const datePickerButtonRef = useRef(null);
31
- const locale = defaultLocale || getDefaultLocale();
32
- const formattedDate = selectedDate ? formatDate(selectedDate, locale) : '';
33
-
34
- const toggleVisibility = () => {
35
- if (disabled) return;
36
- setVisible((prevVisible) => !prevVisible);
37
- };
38
-
39
- const handleClear = () => {
40
- if (disabled) return;
41
-
42
- onClear();
43
- datePickerButtonRef.current.focus();
44
- };
45
-
46
- const handleChange = (date) => {
47
- onChange(date);
48
- setVisible(false);
49
- };
50
-
51
- const handleEscape = () => {
52
- setVisible(false);
53
- };
54
-
55
- return (
56
- <DatePickerWrapper bold={visible}>
57
- <TextInput
58
- ref={inputRef}
59
- onClick={toggleVisibility}
60
- // Prevent input from changing for now
61
- onChange={() => {}}
62
- value={formattedDate}
63
- startAction={
64
- <DatePickerButton
65
- ref={datePickerButtonRef}
66
- onClick={toggleVisibility}
67
- aria-label={selectedDate ? selectedDateLabel(formatDate(selectedDate, locale)) : label || ariaLabel}
68
- type="button"
69
- aria-disabled={disabled}
70
- >
71
- <CalendarIcon aria-hidden={true} />
72
- </DatePickerButton>
73
- }
74
- endAction={
75
- onClear && formattedDate ? (
76
- <IconBox as="button" onClick={handleClear} aria-label={clearLabel} aria-disabled={disabled}>
77
- <Cross />
78
- </IconBox>
79
- ) : undefined
80
- }
81
- aria-autocomplete="none"
82
- label={label}
83
- aria-label={ariaLabel}
84
- disabled={disabled}
85
- id={generatedId}
86
- {...props}
87
- />
88
-
89
- {inputRef.current && inputRef.current.inputWrapperRef && visible && (
90
- <DatePickerCalendar
91
- selectedDate={selectedDate}
92
- initialDate={initialDate}
93
- onChange={handleChange}
94
- onEscape={handleEscape}
95
- popoverSource={inputRef.current.inputWrapperRef}
96
- label={label || ariaLabel}
97
- />
98
- )}
99
- </DatePickerWrapper>
100
- );
101
- };
102
-
103
- DatePicker.defaultProps = {
104
- ariaLabel: undefined,
105
- clearLabel: undefined,
106
- disabled: false,
107
- id: undefined,
108
- label: undefined,
109
- initialDate: new Date(),
110
- onClear: undefined,
111
- placeholder: undefined,
112
- selectedDate: undefined,
113
- size: 'M',
114
- };
115
-
116
- DatePicker.propTypes = {
117
- ariaLabel: PropTypes.string,
118
- clearLabel: PropTypes.string,
119
- disabled: PropTypes.bool,
120
- id: PropTypes.string,
121
- initialDate: PropTypes.instanceOf(Date),
122
- label: PropTypes.string,
123
- locale: PropTypes.string,
124
- maxDate: PropTypes.instanceOf(Date),
125
- minDate: PropTypes.instanceOf(Date),
126
- onChange: PropTypes.func.isRequired,
127
- onClear: PropTypes.func,
128
- placeholder: PropTypes.string,
129
- selectedDate: PropTypes.instanceOf(Date),
130
- selectedDateLabel: PropTypes.func.isRequired,
131
- size: PropTypes.oneOf(Object.keys(sizes.input)),
132
- };
@@ -1,172 +0,0 @@
1
- <!--- DatePicker.stories.mdx --->
2
-
3
- import { useState } from 'react';
4
- import { Meta, Story, Canvas } from '@storybook/addon-docs';
5
- import { ArgsTable } from '@storybook/addon-docs';
6
- import { DatePicker } from './DatePicker';
7
- import { Typography } from '../Typography';
8
-
9
- <Meta title="Design System/Components/DatePicker" component={DatePicker} />
10
-
11
- # DatePicker
12
-
13
- Date pickers help users selecting a specific date from a calendar. They can be associated to a Time picker component.
14
-
15
- **Best practices**
16
-
17
- - It is possible to change the date format by changing your browser locale.
18
- - A Date picker can used simultaneously with a Time picker in a form.
19
-
20
- [View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/DatePicker)
21
-
22
- ## Imports
23
-
24
- ```js
25
- import { DatePicker } from '@strapi/design-system/DatePicker';
26
- ```
27
-
28
- ## Usage
29
-
30
- - A Date picker is used to select an unique date. It is not possible to select a date range. It is not possible to write a date from the keyboard.
31
- - When the Date picker is activated, it selects today's date. However, a Date picker can have a null value via the Clear feature.
32
-
33
- <Canvas>
34
- <Story name="base">
35
- {() => {
36
- const [date, setDate] = useState();
37
- return (
38
- <div>
39
- <DatePicker
40
- onChange={setDate}
41
- selectedDate={date}
42
- label="Date picker"
43
- name="datepicker"
44
- clearLabel={'Clear the datepicker'}
45
- onClear={() => setDate(undefined)}
46
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
47
- />
48
- <div style={{ marginLeft: '500px' }}>
49
- <button>
50
- <Typography>Button outside picker</Typography>
51
- </button>
52
- </div>
53
- </div>
54
- );
55
- }}
56
- </Story>
57
- </Canvas>
58
-
59
- ## Size S
60
-
61
- TODO
62
-
63
- <Canvas>
64
- <Story name="size S">
65
- {() => {
66
- const [date, setDate] = useState();
67
- return (
68
- <div>
69
- <DatePicker
70
- onChange={setDate}
71
- selectedDate={date}
72
- label="Date picker"
73
- name="datepicker"
74
- size="S"
75
- clearLabel={'Clear the datepicker'}
76
- onClear={() => setDate(undefined)}
77
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
78
- />
79
- <div style={{ marginLeft: '500px' }}>
80
- <button>
81
- <Typography>Button outside picker</Typography>
82
- </button>
83
- </div>
84
- </div>
85
- );
86
- }}
87
- </Story>
88
- </Canvas>
89
-
90
- ## Disabled
91
-
92
- <Canvas>
93
- <Story name="disabled">
94
- {() => {
95
- const [date, setDate] = useState();
96
- return (
97
- <div>
98
- <DatePicker
99
- onChange={setDate}
100
- selectedDate={date}
101
- label="Date picker"
102
- name="datepicker"
103
- clearLabel={'Clear the datepicker'}
104
- onClear={() => setDate(undefined)}
105
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
106
- disabled
107
- />
108
- <div style={{ marginLeft: '500px' }}>
109
- <button>
110
- <Typography>Button outside picker</Typography>
111
- </button>
112
- </div>
113
- </div>
114
- );
115
- }}
116
- </Story>
117
- </Canvas>
118
-
119
- ## Min and Max Dates
120
-
121
- By passing in `minDate` or `maxDate` it is possible to define the range of years, the datepicker displays.
122
-
123
- <Canvas>
124
- <Story name="min/ max date">
125
- {() => {
126
- const [date, setDate] = useState();
127
- return (
128
- <DatePicker
129
- onChange={setDate}
130
- selectedDate={date}
131
- label="Date picker"
132
- name="datepicker"
133
- clearLabel={'Clear the datepicker'}
134
- onClear={() => setDate(undefined)}
135
- placeholder="03/01/1970"
136
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
137
- minDate={new Date(2000, 1, 1)}
138
- maxDate={new Date(2040, 1, 1)}
139
- />
140
- );
141
- }}
142
- </Story>
143
- </Canvas>
144
-
145
- ## Locales
146
-
147
- <Canvas>
148
- <Story name="locales">
149
- {() => {
150
- const [date, setDate] = useState();
151
- return (
152
- <DatePicker
153
- onChange={setDate}
154
- selectedDate={date}
155
- label="Date picker"
156
- name="datepicker"
157
- clearLabel={'Clear the datepicker'}
158
- onClear={() => setDate(undefined)}
159
- placeholder="03/01/1970"
160
- locale="de"
161
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
162
- minDate={new Date(2000, 1, 1)}
163
- maxDate={new Date(2040, 1, 1)}
164
- />
165
- );
166
- }}
167
- </Story>
168
- </Canvas>
169
-
170
- ## Props
171
-
172
- <ArgsTable of={DatePicker} />
@@ -1,134 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { VisuallyHidden } from '../VisuallyHidden';
4
- import { DatePickerPopover } from './components';
5
- import { SimpleMenu, MenuItem } from '../SimpleMenu';
6
- import { Flex } from '../Flex';
7
- import { Box } from '../Box';
8
- import { RawTable, RawThead, RawTbody, RawTr } from '../RawTable';
9
- import { DatePickerTh } from './DatePickerTh';
10
- import { DatePickerTd } from './DatePickerTd';
11
- import { FocusTrap } from '../FocusTrap';
12
- import { getMonths, getDayOfWeek, generateWeeks, getYears, formatDate } from './utils';
13
-
14
- export const DatePickerCalendar = ({
15
- selectedDate,
16
- initialDate,
17
- popoverSource,
18
- onChange,
19
- label,
20
- minDate,
21
- maxDate,
22
- onEscape,
23
- }) => {
24
- const [date, setDate] = useState(initialDate);
25
- const [weeks, activeRow, activeCol] = generateWeeks(date, selectedDate);
26
- const { sun, mon, tue, wed, thu, fri, sat } = getDayOfWeek();
27
- const months = getMonths();
28
- const years = getYears(minDate, maxDate);
29
-
30
- useEffect(() => {
31
- if (selectedDate) {
32
- setDate(selectedDate);
33
- }
34
- }, [selectedDate]);
35
-
36
- const handleMonthChange = (month) => {
37
- const updatedDate = new Date(date);
38
- updatedDate.setMonth(months.indexOf(month));
39
- setDate(updatedDate);
40
- };
41
-
42
- const handleYearChange = (year) => {
43
- const updatedDate = new Date(date);
44
- updatedDate.setFullYear(year);
45
- setDate(updatedDate);
46
- };
47
-
48
- return (
49
- <DatePickerPopover source={popoverSource} role="dialog" aria-modal="true" aria-label={label} spacing={4}>
50
- <FocusTrap onEscape={onEscape}>
51
- <Box padding={4}>
52
- <Box paddingBottom={4} paddingLeft={2} paddingRight={2}>
53
- <Flex>
54
- <SimpleMenu label={months[date.getMonth()]}>
55
- {months.map((month) => (
56
- <MenuItem key={month} onClick={() => handleMonthChange(month)}>
57
- {month}
58
- </MenuItem>
59
- ))}
60
- </SimpleMenu>
61
- <Box paddingLeft={2}>
62
- <SimpleMenu label={date.getFullYear()}>
63
- {years.map((year) => (
64
- <MenuItem key={year} onClick={() => handleYearChange(year)}>
65
- {year}
66
- </MenuItem>
67
- ))}
68
- </SimpleMenu>
69
- </Box>
70
- </Flex>
71
- </Box>
72
- <RawTable colCount={7} rowCount={weeks.length + 1} initialCol={activeCol} initialRow={activeRow} role="grid">
73
- <RawThead>
74
- <RawTr aria-rowindex={1}>
75
- <DatePickerTh>{sun}</DatePickerTh>
76
- <DatePickerTh>{mon}</DatePickerTh>
77
- <DatePickerTh>{tue}</DatePickerTh>
78
- <DatePickerTh>{wed}</DatePickerTh>
79
- <DatePickerTh>{thu}</DatePickerTh>
80
- <DatePickerTh>{fri}</DatePickerTh>
81
- <DatePickerTh>{sat}</DatePickerTh>
82
- </RawTr>
83
- </RawThead>
84
- <RawTbody>
85
- {weeks.map((week, index) => (
86
- <RawTr key={`week-${index}`}>
87
- {week.map(({ date, outsideMonth, isSelected }) => {
88
- return (
89
- <DatePickerTd
90
- key={`${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`}
91
- outsideMonth={outsideMonth}
92
- onSelectDay={() => onChange(date)}
93
- isSelected={isSelected}
94
- >
95
- <span aria-hidden={true}>{date.getDate()}</span>
96
- <VisuallyHidden>
97
- <span>{formatDate(date)}</span>
98
- </VisuallyHidden>
99
- </DatePickerTd>
100
- );
101
- })}
102
- </RawTr>
103
- ))}
104
- </RawTbody>
105
- </RawTable>
106
- </Box>
107
- </FocusTrap>
108
- </DatePickerPopover>
109
- );
110
- };
111
-
112
- DatePickerCalendar.defaultProps = { selectedDate: undefined, initialDate: new Date() };
113
- DatePickerCalendar.propTypes = {
114
- initialDate: PropTypes.instanceOf(Date),
115
- label: PropTypes.string.isRequired,
116
-
117
- /*
118
- * Maximum year, that can be selected through the year select
119
- */
120
-
121
- maxDate: PropTypes.instanceOf(Date),
122
-
123
- /*
124
- * Minimum year, that can be selected through the year select
125
- */
126
-
127
- minDate: PropTypes.instanceOf(Date),
128
- onChange: PropTypes.func.isRequired,
129
- onEscape: PropTypes.func.isRequired,
130
- popoverSource: PropTypes.shape({
131
- current: (typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)).isRequired,
132
- }).isRequired,
133
- selectedDate: PropTypes.instanceOf(Date),
134
- };
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { RawTd } from '../RawTable';
5
- import { Typography } from '../Typography';
6
-
7
- const DatePickerCellButton = styled.button`
8
- border: none;
9
- background: ${({ theme, isSelected }) => (isSelected ? theme.colors.primary100 : theme.colors.neutral0)};
10
- height: ${32 / 16}rem;
11
- text-align: center;
12
- width: ${32 / 16}rem;
13
- border-radius: ${({ theme }) => theme.borderRadius};
14
-
15
- // Trick to prevent the outline from overflowing because of the general outline-offset
16
- outline-offset: -2px;
17
-
18
- &:hover {
19
- background: ${({ theme }) => theme.colors.primary100};
20
- }
21
-
22
- &:hover > ${Typography} {
23
- color: ${({ theme }) => theme.colors.primary600};
24
- }
25
- `;
26
-
27
- export const DatePickerTd = ({ children, outsideMonth, onSelectDay, isSelected, ...props }) => {
28
- const textColor = isSelected ? 'primary600' : outsideMonth ? 'neutral600' : 'neutral900';
29
-
30
- return (
31
- <RawTd {...props}>
32
- <DatePickerCellButton tabIndex={-1} onClick={onSelectDay} isSelected={isSelected} type="button">
33
- <Typography variant="pi" textColor={textColor} fontWeight={isSelected ? 'bold' : null}>
34
- {children}
35
- </Typography>
36
- </DatePickerCellButton>
37
- </RawTd>
38
- );
39
- };
40
-
41
- DatePickerTd.defaultProps = {
42
- isSelected: false,
43
- outsideMonth: false,
44
- };
45
-
46
- DatePickerTd.propTypes = {
47
- children: PropTypes.node.isRequired,
48
- isSelected: PropTypes.bool,
49
- onSelectDay: PropTypes.func.isRequired,
50
- outsideMonth: PropTypes.bool,
51
- };
@@ -1,39 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { RawTh } from '../RawTable';
5
- import { Typography } from '../Typography';
6
- import { VisuallyHidden } from '../VisuallyHidden';
7
- import { Flex } from '../Flex';
8
-
9
- const DatePickerThWrapper = styled(RawTh)`
10
- // Trick to prevent the outline from overflowing because of the general outline-offset
11
- outline-offset: -2px;
12
- border-radius: ${({ theme }) => theme.borderRadius};
13
- text-transform: capitalize;
14
- `;
15
-
16
- const DatePickerThRow = styled(Flex)`
17
- height: ${24 / 16}rem;
18
- width: ${32 / 16}rem;
19
- `;
20
-
21
- export const DatePickerTh = ({ children, ...props }) => {
22
- return (
23
- <DatePickerThWrapper {...props}>
24
- <DatePickerThRow justifyContent="center">
25
- <Typography variant="pi" fontWeight="bold" color="neutral800" aria-hidden>
26
- {children.substr(0, 2)}
27
- </Typography>
28
-
29
- <VisuallyHidden>
30
- <span>{children}</span>
31
- </VisuallyHidden>
32
- </DatePickerThRow>
33
- </DatePickerThWrapper>
34
- );
35
- };
36
-
37
- DatePickerTh.propTypes = {
38
- children: PropTypes.string.isRequired,
39
- };
@@ -1,94 +0,0 @@
1
- import { injectAxe, checkA11y } from 'axe-playwright';
2
-
3
- import { test, expect } from '@playwright/test';
4
-
5
- test.describe.parallel('DatePicker', () => {
6
- test.describe('light mode', () => {
7
- test.describe('disabled', () => {
8
- test.beforeEach(async ({ page }) => {
9
- // This is the URL of the Storybook Iframe
10
- await page.goto('/iframe.html?id=design-system-components-datepicker--disabled&viewMode=story');
11
- await injectAxe(page);
12
- });
13
-
14
- test('triggers axe on the document', async ({ page }) => {
15
- await checkA11y(page);
16
- });
17
-
18
- // TODO : Can't fire page.click on disabled element. To fix
19
- // it('does not open the dialog when clicking the input', async () => {
20
- // await page.click('input');
21
-
22
- // expect(await page.$('[role="dialog"]')).toBeFalsy();
23
- // });
24
- });
25
-
26
- test.describe.parallel('base', () => {
27
- test.beforeEach(async ({ page }) => {
28
- // This is the URL of the Storybook Iframe
29
- await page.goto('/iframe.html?id=design-system-components-datepicker--base&viewMode=story');
30
- await injectAxe(page);
31
- });
32
-
33
- test('triggers axe on the document', async ({ page }) => {
34
- await checkA11y(page);
35
- });
36
-
37
- test('triggers axe on the document with the dropdown open', async ({ page }) => {
38
- await page.click('input');
39
- await checkA11y(page);
40
- });
41
-
42
- test('selects a value and closes the dialog', async ({ page }) => {
43
- await page.click('input');
44
- expect(await page.$('[role="dialog"]')).toBeTruthy();
45
-
46
- await page.click(':nth-match(button[aria-haspopup], 1)');
47
- await page.click('text="January"');
48
-
49
- await page.click(':nth-match(button[aria-haspopup], 2)');
50
- await page.click('text="2021"');
51
-
52
- await page.click('text="14"');
53
-
54
- const value = await page.$eval('input', (el) => el.value);
55
- expect(value).toBe('1/14/2021');
56
- expect(await page.$('[role="dialog"]')).toBeFalsy();
57
- });
58
-
59
- test('clears the input and sends the focus back to the calendar button when pressing the clear button', async ({
60
- page,
61
- }) => {
62
- await page.click('input');
63
- expect(await page.$('[role="dialog"]')).toBeTruthy();
64
-
65
- await page.click(':nth-match(button[aria-haspopup], 1)');
66
- await page.click('text="January"');
67
- await page.click(':nth-match(button[aria-haspopup], 2)');
68
- await page.click('text="2021"');
69
- await page.click('text="14"');
70
-
71
- await page.click('[aria-label="Clear the datepicker"]');
72
- const value = await page.$eval('input', (el) => el.value);
73
- expect(value).toBe('');
74
- await expect(page.locator('[aria-label="Date picker"]')).toBeFocused();
75
- });
76
- });
77
- });
78
-
79
- test.describe('dark mode', () => {
80
- test('base A11y', async ({ page }) => {
81
- // This is the URL of the Storybook Iframe
82
- await page.goto('/iframe.html?id=design-system-components-datepicker--base&viewMode=story&theme=dark');
83
- await injectAxe(page);
84
- await checkA11y(page);
85
- });
86
-
87
- test('disabled A11y', async ({ page }) => {
88
- // This is the URL of the Storybook Iframe
89
- await page.goto('/iframe.html?id=design-system-components-datepicker--disabled&viewMode=story&theme=dark');
90
- await injectAxe(page);
91
- await checkA11y(page);
92
- });
93
- });
94
- });
@@ -1,40 +0,0 @@
1
- import * as React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
-
4
- import { DatePicker } from '../DatePicker';
5
-
6
- import { lightTheme } from '../../themes';
7
- import { ThemeProvider } from '../../ThemeProvider';
8
-
9
- describe('DatePicker', () => {
10
- describe('Locale prop', () => {
11
- const renderDate = (locale) =>
12
- render(
13
- <ThemeProvider theme={lightTheme}>
14
- <DatePicker
15
- label="date"
16
- locale={locale}
17
- selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
18
- selectedDate={new Date('Tue Sep 06 2022')}
19
- onChange={() => null}
20
- />
21
- </ThemeProvider>,
22
- );
23
-
24
- it('should format by EN locale by default', () => {
25
- renderDate();
26
-
27
- const input = screen.getByRole('textbox');
28
-
29
- expect(input.value).toMatchInlineSnapshot('"9/6/2022"');
30
- });
31
-
32
- it('should format by the DE locale when passed', () => {
33
- renderDate('de-DE');
34
-
35
- const input = screen.getByRole('textbox');
36
-
37
- expect(input.value).toMatchInlineSnapshot('"6.9.2022"');
38
- });
39
- });
40
- });
@@ -1,9 +0,0 @@
1
- export const isDateEqual = (date1, date2) => {
2
- if (!date1 || !date2) return false;
3
-
4
- return (
5
- date1.getFullYear() === date2.getFullYear() &&
6
- date1.getMonth() === date2.getMonth() &&
7
- date1.getDate() === date2.getDate()
8
- );
9
- };