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

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,318 +0,0 @@
1
- import React, { Children, cloneElement, useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import CarretDown from '@strapi/icons/CarretDown';
4
- import Cross from '@strapi/icons/Cross';
5
- import { sizes } from '../themes/sizes';
6
- import { SelectButton } from './SelectButton';
7
- import { Field, FieldHint, FieldLabel, FieldError } from '../Field';
8
- import { Popover } from '../Popover';
9
- import { Stack } from '../Stack';
10
- import { Typography } from '../Typography';
11
- import { Flex } from '../Flex';
12
- import { Box } from '../Box';
13
- import { useId } from '../helpers/useId';
14
- import { SelectList } from './SelectList';
15
- import { SelectButtonWrapper, IconBox, CaretBox } from './components';
16
- import { useButtonRef } from './hooks/useButtonRef';
17
- import { VisuallyHidden } from '../VisuallyHidden';
18
- import { DownState } from './constants';
19
- import { escapeSelector } from '../helpers/escapeSelector';
20
- import { SelectTags } from './SelectTags';
21
- import styled from 'styled-components';
22
-
23
- const MainRow = styled(Flex)`
24
- width: 100%;
25
- `;
26
-
27
- export const Select = ({
28
- label,
29
- labelAction,
30
- id,
31
- children,
32
- customizeContent,
33
- placeholder,
34
- onChange,
35
- value,
36
- hint,
37
- error,
38
- disabled,
39
- clearLabel,
40
- onClear,
41
- onReachEnd,
42
- multi,
43
- required,
44
- selectButtonTitle,
45
- size,
46
- startIcon,
47
- withTags,
48
- ...props
49
- }) => {
50
- const generatedId = useId('select', id);
51
- const [expanded, setExpanded] = useState(undefined);
52
- const buttonRef = useButtonRef(expanded);
53
- const containerRef = useRef(null);
54
-
55
- const labelId = `${generatedId}-label`;
56
- const contentId = `${generatedId}-content`;
57
- const hasStringError = typeof error === 'string';
58
- const errorMessageId = hasStringError ? `${generatedId}-error` : undefined;
59
- const hintMessageId = hint ? `${generatedId}-hint` : undefined;
60
-
61
- const ariaDescribedBy = errorMessageId || hintMessageId;
62
-
63
- if (withTags && !multi) {
64
- throw new Error('The "withTags" props can only be used when the "multi" prop is present');
65
- }
66
-
67
- const handleEscape = () => {
68
- setExpanded(undefined);
69
- };
70
-
71
- const handleClear = () => {
72
- if (disabled) return;
73
-
74
- onClear();
75
- buttonRef.current.focus();
76
- };
77
-
78
- const handleMouseDown = (e) => {
79
- e.preventDefault();
80
- if (disabled) return;
81
- // Check if the right click has been clicked
82
- // "which" check is for webkit
83
- if (e.nativeEvent.which === 3 || e.nativeEvent.button === 2) {
84
- return;
85
- }
86
-
87
- setExpanded(DownState.Mouse);
88
- };
89
-
90
- const handleSelectItem = (newValue, closeMenu = true) => {
91
- if (multi) {
92
- onChange(value.includes(newValue) ? value.filter((x) => x !== newValue) : [...value, newValue]);
93
- } else {
94
- onChange(newValue);
95
- if (closeMenu) setExpanded(undefined);
96
- }
97
- };
98
-
99
- const handleSelectGroupItem = (newValue) => {
100
- onChange(
101
- value.includes(newValue[0])
102
- ? value.filter(function (e) {
103
- return this.indexOf(e) < 0;
104
- }, newValue)
105
- : [...value, ...newValue],
106
- );
107
- };
108
-
109
- let selectOptionLabel;
110
- let tags = [];
111
-
112
- const cloneOption = (node, isChild) => {
113
- const optionId = `${generatedId}-option-${node.props.value}`;
114
-
115
- const selected = multi ? value.includes(node.props.value) : node.props.value === value;
116
-
117
- if (selected) {
118
- if (withTags) {
119
- tags.push({ label: node.props.children, value: node.props.value });
120
- } else {
121
- selectOptionLabel = node.props.children;
122
- }
123
- }
124
-
125
- return cloneElement(node, {
126
- id: escapeSelector(optionId),
127
- onClick: () => handleSelectItem(node.props.value),
128
- selected,
129
- multi,
130
- isChild,
131
- });
132
- };
133
-
134
- const childrenClone = Children.toArray(children).map((node) => {
135
- if (node.type.displayName === 'OptGroup') {
136
- const optionId = `${generatedId}-option-${node.props.label}`;
137
-
138
- const selected = node.props.children.every((child) => value.includes(child.props.value));
139
- const indeterminate = !selected && node.props.children.some((child) => value.includes(child.props.value));
140
-
141
- return cloneElement(node, {
142
- id: escapeSelector(optionId),
143
- onClick: () => handleSelectGroupItem(node.props.children.map((child) => child.props.value)),
144
- selected,
145
- indeterminate,
146
- multi,
147
- children: Children.toArray(node.props.children).map((node) => cloneOption(node, true)),
148
- value: node.props.label,
149
- });
150
- } else {
151
- return cloneOption(node);
152
- }
153
- });
154
-
155
- return (
156
- <Field hint={hint} error={error} id={generatedId}>
157
- <Stack spacing={label || hint || hasStringError ? 1 : 0}>
158
- {label && (
159
- <FieldLabel required={required} as="span" id={labelId} action={labelAction}>
160
- {label}
161
- </FieldLabel>
162
- )}
163
-
164
- <SelectButtonWrapper size={size} hasError={Boolean(error)} disabled={disabled} ref={containerRef}>
165
- <SelectButton
166
- ref={buttonRef}
167
- labelledBy={`${labelId} ${contentId}`}
168
- aria-describedby={ariaDescribedBy}
169
- expanded={Boolean(expanded)}
170
- onTrigger={setExpanded}
171
- id={generatedId}
172
- hasError={Boolean(error)}
173
- disabled={disabled}
174
- onMouseDown={handleMouseDown}
175
- {...props}
176
- />
177
-
178
- <MainRow justifyContent="space-between">
179
- <Flex>
180
- {startIcon && (
181
- <Box paddingLeft={3} aria-hidden={true}>
182
- {startIcon}
183
- </Box>
184
- )}
185
-
186
- {withTags && <SelectTags tags={tags} onRemoveTag={handleSelectItem} disabled={disabled} />}
187
-
188
- <Box paddingLeft={4} paddingRight={4}>
189
- {withTags ? (
190
- <>
191
- {!value || value.length === 0 ? (
192
- <Typography ellipsis id={contentId} textColor={'neutral600'}>
193
- {placeholder}
194
- </Typography>
195
- ) : null}
196
- <VisuallyHidden as="span" id={contentId}>
197
- {customizeContent ? customizeContent(value) : selectOptionLabel || placeholder}
198
- {value.join(', ')}
199
- </VisuallyHidden>
200
- </>
201
- ) : (
202
- <Typography ellipsis id={contentId} textColor={value ? 'neutral800' : 'neutral600'}>
203
- {customizeContent ? customizeContent(value) : selectOptionLabel || placeholder}
204
- {multi && <VisuallyHidden as="span">{value.join(', ')}</VisuallyHidden>}
205
- </Typography>
206
- )}
207
- </Box>
208
- </Flex>
209
-
210
- <Flex>
211
- {((multi && value && value.length) || (!multi && value)) && onClear && (
212
- <IconBox
213
- as="button"
214
- type="button"
215
- onClick={handleClear}
216
- aria-label={clearLabel}
217
- aria-disabled={disabled}
218
- title={clearLabel}
219
- >
220
- <Cross />
221
- </IconBox>
222
- )}
223
-
224
- <CaretBox
225
- paddingLeft={3}
226
- aria-hidden
227
- as="button"
228
- type="button"
229
- onMouseDown={handleMouseDown}
230
- tabIndex={-1}
231
- disabled={disabled}
232
- title={selectButtonTitle}
233
- >
234
- <CarretDown />
235
- </CaretBox>
236
- </Flex>
237
- </MainRow>
238
- </SelectButtonWrapper>
239
-
240
- <FieldHint />
241
- <FieldError />
242
- </Stack>
243
-
244
- {expanded && (
245
- <Popover
246
- source={containerRef}
247
- spacing={4}
248
- fullWidth
249
- intersectionId={`select-list-intersection-${generatedId}`}
250
- onReachEnd={onReachEnd}
251
- >
252
- <SelectList
253
- selectId={generatedId}
254
- labelledBy={label ? labelId : undefined}
255
- onEscape={handleEscape}
256
- expanded={expanded}
257
- onSelectItem={(value, isGroup) => (isGroup ? handleSelectGroupItem(value) : handleSelectItem(value, false))}
258
- multi={multi}
259
- >
260
- {childrenClone}
261
- </SelectList>
262
- </Popover>
263
- )}
264
- </Field>
265
- );
266
- };
267
-
268
- Select.defaultProps = {
269
- 'aria-label': undefined,
270
- children: [],
271
- clearLabel: 'Clear',
272
- customizeContent: undefined,
273
- disabled: false,
274
- id: undefined,
275
- label: undefined,
276
- labelAction: undefined,
277
- multi: false,
278
- onChange: () => {},
279
- onClear: undefined,
280
- onReachEnd: undefined,
281
- value: undefined,
282
- hint: undefined,
283
- error: undefined,
284
- placeholder: 'Select...',
285
- required: false,
286
- selectButtonTitle: 'Carret Down Button',
287
- size: 'M',
288
- startIcon: undefined,
289
- withTags: false,
290
- };
291
-
292
- Select.propTypes = {
293
- 'aria-label': PropTypes.string,
294
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
295
- clearLabel: PropTypes.string,
296
- customizeContent: PropTypes.func,
297
- disabled: PropTypes.bool,
298
- error: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
299
- hint: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
300
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
301
- label: PropTypes.string,
302
- labelAction: PropTypes.element,
303
- multi: PropTypes.bool,
304
- onChange: PropTypes.func,
305
- onClear: PropTypes.func,
306
- onReachEnd: PropTypes.func,
307
- placeholder: PropTypes.string,
308
- required: PropTypes.bool,
309
- selectButtonTitle: PropTypes.string,
310
- size: PropTypes.oneOf(Object.keys(sizes.input)),
311
- startIcon: PropTypes.element,
312
- value: PropTypes.oneOfType([
313
- PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
314
- PropTypes.string,
315
- PropTypes.number,
316
- ]),
317
- withTags: PropTypes.bool,
318
- };
@@ -1,362 +0,0 @@
1
- <!--- Select.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 Earth from '@strapi/icons/Earth';
7
- import Plus from '@strapi/icons/Plus';
8
- import { Select } from './Select';
9
- import { Option } from './Option';
10
- import { Stack } from '../Stack';
11
- import { Typography } from '../Typography';
12
- import { MultiSelectNested } from './MultiSelectNested.js';
13
-
14
- <Meta title="Design System/Components/Select" component={Select} />
15
-
16
- # Select
17
-
18
- Selects are fields that displays to users a list of options via a PopOver component. They allow users to make a single or multiple selections from this list. The selected option(s) of a Select need(s) to be stored whether it's single or a multi. Selects are part of forms.
19
-
20
- [View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/Select)
21
-
22
- **Best practices**
23
-
24
- - A select is part of a form.
25
- - Prefer the usage of Menu component if the user needs to make a single choice.
26
- - Try to have a sort logic in the popover of the menu.
27
- - In a multi select component, the "0 currently selected" text, can be changed but it will never have a placeholder style.
28
- - Use sentence case into a Select and straight-to-the-point sentences.
29
- - An option should be written on a single line.
30
-
31
- ## Imports
32
-
33
- ```js
34
- import { Select, Option } from '@strapi/design-system/Select';
35
- ```
36
-
37
- or
38
-
39
- ```js
40
- import { MultiSelectNested } from '@strapi/design-system/Select';
41
- ```
42
-
43
- ## Usage
44
-
45
- A Select allow users to make a selection from a list.
46
-
47
- ### Default Select
48
-
49
- The default Select.
50
-
51
- <Canvas>
52
- <Story name="base">
53
- {() => {
54
- const [value, setValue] = useState();
55
- const [error, toggleError] = useState();
56
- const [disabled, toggleDisabled] = useState();
57
- return (
58
- <Stack spacing={11}>
59
- <Typography variant="beta">Current value is {value}</Typography>
60
- <Select
61
- id="select1"
62
- label="Choose your meal"
63
- labelAction={<Earth />}
64
- required
65
- placeholder="Your example"
66
- hint="Description line"
67
- onClear={() => setValue(undefined)}
68
- clearLabel="Clear the meal"
69
- error={error}
70
- value={value}
71
- onChange={setValue}
72
- disabled={disabled}
73
- startIcon={<Plus />}
74
- selectButtonTitle="Carret Down Button"
75
- >
76
- <Option
77
- value={'pizza'}
78
- startIcon={<div style={{ height: '6px', borderRadius: '50%', width: '6px', background: 'red' }} />}
79
- >
80
- Pizza
81
- </Option>
82
- <Option value={'hamburger'}>Hamburger</Option>
83
- <Option value={'bagel'}>Bagel</Option>
84
- </Select>
85
- <button onClick={() => toggleError((s) => (s ? undefined : 'An error occured'))}>
86
- <Typography>Show the error state</Typography>
87
- </button>
88
- <button onClick={() => toggleDisabled((s) => !s)}>
89
- <Typography>Show the disabled state</Typography>
90
- </button>
91
- </Stack>
92
- );
93
- }}
94
- </Story>
95
- </Canvas>
96
-
97
- ### Without label
98
-
99
- The default Select.
100
-
101
- <Canvas>
102
- <Story name="withoutLabel">
103
- {() => {
104
- const [value, setValue] = useState();
105
- const [error, toggleError] = useState();
106
- const [disabled, toggleDisabled] = useState();
107
- return (
108
- <Stack spacing={11}>
109
- <Typography variant="beta">Current value is {value}</Typography>
110
- <Select
111
- id="select1"
112
- aria-label="Choose your meal"
113
- placeholder="Your example"
114
- hint="Description line"
115
- onClear={() => setValue(undefined)}
116
- clearLabel="Clear the meal"
117
- error={error}
118
- value={value}
119
- onChange={setValue}
120
- disabled={disabled}
121
- startIcon={<Plus />}
122
- selectButtonTitle="Carret Down Button"
123
- >
124
- <Option
125
- value={'pizza'}
126
- startIcon={<div style={{ height: '6px', borderRadius: '50%', width: '6px', background: 'red' }} />}
127
- >
128
- Pizza
129
- </Option>
130
- <Option value={'hamburger'}>Hamburger</Option>
131
- <Option value={'bagel'}>Bagel</Option>
132
- </Select>
133
- <button onClick={() => toggleError((s) => (s ? undefined : 'An error occured'))}>
134
- <Typography>Show the error state</Typography>
135
- </button>
136
- <button onClick={() => toggleDisabled((s) => !s)}>
137
- <Typography>Show the disabled state</Typography>
138
- </button>
139
- </Stack>
140
- );
141
- }}
142
- </Story>
143
- </Canvas>
144
-
145
- ### Select multi
146
-
147
- A multi Select allow users to make multiple selections from a list.
148
-
149
- In a multi select component, the "0 currently selected" text, can be changed but it will never have a placeholder style.
150
-
151
- <Canvas>
152
- <Story name="multi">
153
- {() => {
154
- const [values, setValues] = useState([]);
155
- const [error, toggleError] = useState();
156
- const [disabled, toggleDisabled] = useState();
157
- return (
158
- <Stack spacing={11}>
159
- <Typography as="h2" variant="beta">
160
- Current value is {values.join(', ')}
161
- </Typography>
162
- <Select
163
- id="select1"
164
- label="Choose your meal"
165
- placeholder="Your example"
166
- onClear={() => setValues([])}
167
- hint="Description line"
168
- clearLabel="Clear the meal"
169
- selectButtonTitle="Carret Down Button"
170
- error={error}
171
- value={values}
172
- onChange={setValues}
173
- disabled={disabled}
174
- customizeContent={(values) => `${values.length} currently selected`}
175
- multi
176
- >
177
- <Option value={'pizza'}>Pizza</Option>
178
- <Option value={'hamburger'}>Hamburger</Option>
179
- <Option value={'bagel'}>Bagel</Option>
180
- </Select>
181
- <button onClick={() => toggleError((s) => (s ? undefined : 'An error occured'))}>
182
- <Typography>Show the error state</Typography>
183
- </button>
184
- <button onClick={() => toggleDisabled((s) => !s)}>
185
- <Typography>Show the disabled state</Typography>
186
- </button>
187
- </Stack>
188
- );
189
- }}
190
- </Story>
191
- </Canvas>
192
-
193
- ### Select multi with tags
194
-
195
- A multi Select allow users to visually select multiple options from a list. Prefer using a Select with multi tags when the selected values need to be visible in the input.
196
-
197
- <Canvas>
198
- <Story name="multi-withTags">
199
- {() => {
200
- const [values, setValues] = useState([]);
201
- const [error, toggleError] = useState();
202
- const [disabled, toggleDisabled] = useState();
203
- return (
204
- <Stack spacing={11}>
205
- <Typography variant="beta">Current value is {values.join(', ')}</Typography>
206
- <Select
207
- id="select1"
208
- label="Choose your meal"
209
- placeholder="Your example"
210
- onClear={() => setValues([])}
211
- hint="Description line"
212
- clearLabel="Clear the meal"
213
- error={error}
214
- value={values}
215
- onChange={setValues}
216
- disabled={disabled}
217
- customizeContent={(values) => `${values.length} currently selected`}
218
- selectButtonTitle="Carret Down Button"
219
- multi
220
- withTags
221
- >
222
- <Option value={'pizza'}>Pizza</Option>
223
- <Option value={'hamburger'}>Hamburger</Option>
224
- <Option value={'bagel'}>Bagel</Option>
225
- {Array(20)
226
- .fill(null)
227
- .map((_, i) => (
228
- <Option key={i} value={`${i}`}>
229
- Another option
230
- </Option>
231
- ))}
232
- </Select>
233
- <button onClick={() => toggleError((s) => (s ? undefined : 'An error occured'))}>
234
- <Typography>Show the error state</Typography>
235
- </button>
236
- <button onClick={() => toggleDisabled((s) => !s)}>
237
- <Typography>Show the disabled state</Typography>
238
- </button>
239
- </Stack>
240
- );
241
- }}
242
- </Story>
243
- </Canvas>
244
-
245
- ### Select size S
246
-
247
- Select should be scaled down if they aimed to be placed in a smaller portions of a page.
248
-
249
- <Canvas>
250
- <Story name="size-S">
251
- {() => {
252
- const [values, setValues] = useState([]);
253
- return (
254
- <Stack spacing={11}>
255
- <Select
256
- id="select1"
257
- label="Choose your meal"
258
- placeholder="Your example"
259
- onClear={() => setValues([])}
260
- hint="Description line"
261
- clearLabel="Clear the meal"
262
- error={undefined}
263
- size="S"
264
- value={values}
265
- onChange={setValues}
266
- disabled={false}
267
- customizeContent={(values) => `${values.length} currently selected`}
268
- selectButtonTitle="Carret Down Button"
269
- >
270
- <Option value={'pizza'}>Pizza</Option>
271
- <Option value={'hamburger'}>Hamburger</Option>
272
- <Option value={'bagel'}>Bagel</Option>
273
- </Select>
274
- </Stack>
275
- );
276
- }}
277
- </Story>
278
- </Canvas>
279
-
280
- ### Select multi nested
281
-
282
- A multi nested Select allow users to make multiple selections from a list.
283
-
284
- In a multi select component, the "0 currently selected" text, can be changed but it will never have a placeholder style.
285
-
286
- <Canvas>
287
- <Story name="multi-nested">
288
- {() => {
289
- const [error, toggleError] = useState();
290
- const [disabled, toggleDisabled] = useState();
291
- const options = [
292
- {
293
- label: 'Pizza',
294
- children: [
295
- {
296
- label: 'Peperroni',
297
- value: 'peperroni',
298
- },
299
- {
300
- label: 'Marguerita',
301
- value: 'marguerita',
302
- },
303
- ],
304
- },
305
- {
306
- label: 'Hamburger',
307
- value: 'hamburger',
308
- },
309
- {
310
- label: 'Bagel',
311
- value: 'bagel',
312
- },
313
- {
314
- label: 'Pasta',
315
- children: [
316
- {
317
- label: 'Tartuffo',
318
- value: 'tartuffo',
319
- },
320
- {
321
- label: 'Carbonara',
322
- value: 'carbonara',
323
- },
324
- ],
325
- },
326
- ];
327
- const [values, setValues] = useState([]);
328
- return (
329
- <Stack spacing={11}>
330
- <Typography variant="beta">Current value is {values.join(', ')}</Typography>
331
- <MultiSelectNested
332
- id="select1"
333
- label="Choose your meal"
334
- placeholder="Your example"
335
- onClear={() => setValues([])}
336
- hint="Description line"
337
- clearLabel="Clear the meal"
338
- error={error}
339
- disabled={disabled}
340
- customizeContent={(values) => `${values.length} currently selected`}
341
- onChange={setValues}
342
- value={values}
343
- options={options}
344
- />
345
- <button onClick={() => toggleError((s) => (s ? undefined : 'An error occured'))}>
346
- <Typography>Show the error state</Typography>
347
- </button>
348
- <button onClick={() => toggleDisabled((s) => !s)}>
349
- <Typography>Show the disabled state</Typography>
350
- </button>
351
- </Stack>
352
- );
353
- }}
354
- </Story>
355
- </Canvas>
356
-
357
- ## Props
358
-
359
- The Select component composes Field so you can pass all Field props, and React.InputHTMLAttributes.
360
- The Option component wraps all its children in the (Box)[https://design-system-git-main-strapijs.vercel.app/?path=/docs/design-system-technical-components-box--base] component, so you can pass all Box props to change its style.
361
-
362
- <ArgsTable of={Select} />