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

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 (669) hide show
  1. package/.eslintrc.js +38 -0
  2. package/.prettierrc.js +7 -0
  3. package/.storybook/{main.cjs → main.js} +0 -0
  4. package/babel.config.js +5 -0
  5. package/createIndexFiles.js +34 -0
  6. package/global-setup.js +1 -1
  7. package/jest.config.js +3 -1
  8. package/package.json +22 -28
  9. package/playwright.config.js +4 -2
  10. package/src/Accordion/Accordion.js +1 -0
  11. package/src/BaseCheckbox/BaseCheckbox.js +14 -9
  12. package/src/BaseCheckbox/BaseCheckbox.stories.mdx +1 -1
  13. package/src/Checkbox/Checkbox.stories.mdx +1 -1
  14. package/src/DatePicker/__tests__/DatePicker.spec.js +1 -0
  15. package/src/DateTimePicker/__tests__/DateTimePicker.e2e.js +1 -1
  16. package/src/DismissibleLayer/DismissibleLayer.js +15 -1
  17. package/src/DismissibleLayer/__test__/DimissibleLayer.spec.js +4 -2
  18. package/src/IconButton/IconButton.js +62 -22
  19. package/src/IconButton/IconButton.stories.mdx +69 -16
  20. package/src/ModalLayout/__tests__/ModalLayout.spec.js +7 -1
  21. package/src/Portal/Portal.js +0 -5
  22. package/src/Status/Status.stories.mdx +9 -4
  23. package/src/Switch/Switch.stories.mdx +23 -2
  24. package/webpack.config.js +84 -0
  25. package/.eslintrc +0 -34
  26. package/.prettierrc +0 -7
  27. package/dist/Accordion/Accordion.cjs +0 -23
  28. package/dist/Accordion/Accordion.js +0 -87
  29. package/dist/Accordion/AccordionContent.cjs +0 -1
  30. package/dist/Accordion/AccordionContent.js +0 -23
  31. package/dist/Accordion/AccordionContext.cjs +0 -1
  32. package/dist/Accordion/AccordionContext.js +0 -6
  33. package/dist/Accordion/AccordionGroup.cjs +0 -47
  34. package/dist/Accordion/AccordionGroup.js +0 -91
  35. package/dist/Accordion/AccordionToggle.cjs +0 -28
  36. package/dist/Accordion/AccordionToggle.js +0 -127
  37. package/dist/Accordion/index.cjs +0 -1
  38. package/dist/Accordion/index.js +0 -11
  39. package/dist/Accordion/utils.cjs +0 -1
  40. package/dist/Accordion/utils.js +0 -7
  41. package/dist/Alert/Alert.cjs +0 -35
  42. package/dist/Alert/Alert.js +0 -111
  43. package/dist/Alert/index.cjs +0 -1
  44. package/dist/Alert/index.js +0 -4
  45. package/dist/Alert/utils.cjs +0 -1
  46. package/dist/Alert/utils.js +0 -6
  47. package/dist/Avatar/Avatar.cjs +0 -29
  48. package/dist/Avatar/Avatar.js +0 -79
  49. package/dist/Avatar/AvatarGroup.cjs +0 -5
  50. package/dist/Avatar/AvatarGroup.js +0 -11
  51. package/dist/Avatar/constants.cjs +0 -1
  52. package/dist/Avatar/constants.js +0 -5
  53. package/dist/Avatar/index.cjs +0 -1
  54. package/dist/Avatar/index.js +0 -7
  55. package/dist/Badge/Badge.cjs +0 -1
  56. package/dist/Badge/Badge.js +0 -33
  57. package/dist/Badge/index.cjs +0 -1
  58. package/dist/Badge/index.js +0 -4
  59. package/dist/BaseButton/BaseButton.cjs +0 -23
  60. package/dist/BaseButton/BaseButton.js +0 -45
  61. package/dist/BaseButton/index.cjs +0 -1
  62. package/dist/BaseButton/index.js +0 -5
  63. package/dist/BaseCheckbox/BaseCheckbox.cjs +0 -62
  64. package/dist/BaseCheckbox/BaseCheckbox.js +0 -104
  65. package/dist/BaseCheckbox/assets/checkmark-black.cjs +0 -1
  66. package/dist/BaseCheckbox/assets/checkmark-black.js +0 -4
  67. package/dist/BaseCheckbox/assets/checkmark.cjs +0 -1
  68. package/dist/BaseCheckbox/assets/checkmark.js +0 -4
  69. package/dist/BaseCheckbox/index.cjs +0 -1
  70. package/dist/BaseCheckbox/index.js +0 -4
  71. package/dist/BaseCheckbox/utils.cjs +0 -1
  72. package/dist/BaseCheckbox/utils.js +0 -4
  73. package/dist/BaseLink/BaseLink.cjs +0 -3
  74. package/dist/BaseLink/BaseLink.js +0 -31
  75. package/dist/BaseLink/index.cjs +0 -1
  76. package/dist/BaseLink/index.js +0 -4
  77. package/dist/BaseRadio/BaseRadio.cjs +0 -31
  78. package/dist/BaseRadio/BaseRadio.js +0 -62
  79. package/dist/BaseRadio/RadioGroup.cjs +0 -1
  80. package/dist/BaseRadio/RadioGroup.js +0 -32
  81. package/dist/BaseRadio/context.cjs +0 -1
  82. package/dist/BaseRadio/context.js +0 -6
  83. package/dist/BaseRadio/index.cjs +0 -1
  84. package/dist/BaseRadio/index.js +0 -6
  85. package/dist/BaseRadio/utils.cjs +0 -1
  86. package/dist/BaseRadio/utils.js +0 -6
  87. package/dist/Box/Box.cjs +0 -80
  88. package/dist/Box/Box.js +0 -95
  89. package/dist/Box/BoxProps.cjs +0 -1
  90. package/dist/Box/BoxProps.js +0 -51
  91. package/dist/Box/index.cjs +0 -1
  92. package/dist/Box/index.js +0 -4
  93. package/dist/Breadcrumbs/Breadcrumbs.cjs +0 -16
  94. package/dist/Breadcrumbs/Breadcrumbs.js +0 -52
  95. package/dist/Breadcrumbs/index.cjs +0 -1
  96. package/dist/Breadcrumbs/index.js +0 -5
  97. package/dist/Button/Button.cjs +0 -43
  98. package/dist/Button/Button.js +0 -105
  99. package/dist/Button/constants.cjs +0 -1
  100. package/dist/Button/constants.js +0 -14
  101. package/dist/Button/index.cjs +0 -1
  102. package/dist/Button/index.js +0 -5
  103. package/dist/Button/utils.cjs +0 -87
  104. package/dist/Button/utils.js +0 -112
  105. package/dist/Card/Card.cjs +0 -1
  106. package/dist/Card/Card.js +0 -32
  107. package/dist/Card/CardAction.cjs +0 -6
  108. package/dist/Card/CardAction.js +0 -14
  109. package/dist/Card/CardAsset.cjs +0 -19
  110. package/dist/Card/CardAsset.js +0 -42
  111. package/dist/Card/CardBadge.cjs +0 -6
  112. package/dist/Card/CardBadge.js +0 -14
  113. package/dist/Card/CardBody.cjs +0 -1
  114. package/dist/Card/CardBody.js +0 -15
  115. package/dist/Card/CardCheckbox.cjs +0 -1
  116. package/dist/Card/CardCheckbox.js +0 -16
  117. package/dist/Card/CardContent.cjs +0 -3
  118. package/dist/Card/CardContent.js +0 -15
  119. package/dist/Card/CardContext.cjs +0 -1
  120. package/dist/Card/CardContext.js +0 -6
  121. package/dist/Card/CardHeader.cjs +0 -4
  122. package/dist/Card/CardHeader.js +0 -13
  123. package/dist/Card/CardTimer.cjs +0 -5
  124. package/dist/Card/CardTimer.js +0 -26
  125. package/dist/Card/CardTitle.cjs +0 -1
  126. package/dist/Card/CardTitle.js +0 -23
  127. package/dist/Card/index.cjs +0 -1
  128. package/dist/Card/index.js +0 -23
  129. package/dist/CarouselInput/Carousel.cjs +0 -14
  130. package/dist/CarouselInput/Carousel.js +0 -131
  131. package/dist/CarouselInput/CarouselActions.cjs +0 -1
  132. package/dist/CarouselInput/CarouselActions.js +0 -14
  133. package/dist/CarouselInput/CarouselImage.cjs +0 -4
  134. package/dist/CarouselInput/CarouselImage.js +0 -35
  135. package/dist/CarouselInput/CarouselInput.cjs +0 -1
  136. package/dist/CarouselInput/CarouselInput.js +0 -79
  137. package/dist/CarouselInput/CarouselSlide.cjs +0 -3
  138. package/dist/CarouselInput/CarouselSlide.js +0 -26
  139. package/dist/CarouselInput/index.cjs +0 -1
  140. package/dist/CarouselInput/index.js +0 -12
  141. package/dist/Checkbox/Checkbox.cjs +0 -7
  142. package/dist/Checkbox/Checkbox.js +0 -64
  143. package/dist/Checkbox/index.cjs +0 -1
  144. package/dist/Checkbox/index.js +0 -4
  145. package/dist/Combobox/Combobox.cjs +0 -1
  146. package/dist/Combobox/Combobox.js +0 -285
  147. package/dist/Combobox/ComboboxList.cjs +0 -1
  148. package/dist/Combobox/ComboboxList.js +0 -15
  149. package/dist/Combobox/ComboboxOption.cjs +0 -1
  150. package/dist/Combobox/ComboboxOption.js +0 -30
  151. package/dist/Combobox/components.cjs +0 -53
  152. package/dist/Combobox/components.js +0 -64
  153. package/dist/Combobox/index.cjs +0 -1
  154. package/dist/Combobox/index.js +0 -7
  155. package/dist/Combobox/utils.cjs +0 -1
  156. package/dist/Combobox/utils.js +0 -78
  157. package/dist/DatePicker/DatePicker.cjs +0 -1
  158. package/dist/DatePicker/DatePicker.js +0 -104
  159. package/dist/DatePicker/DatePickerCalendar.cjs +0 -1
  160. package/dist/DatePicker/DatePickerCalendar.js +0 -102
  161. package/dist/DatePicker/DatePickerTd.cjs +0 -19
  162. package/dist/DatePicker/DatePickerTd.js +0 -55
  163. package/dist/DatePicker/DatePickerTh.cjs +0 -9
  164. package/dist/DatePicker/DatePickerTh.js +0 -35
  165. package/dist/DatePicker/compareDates.cjs +0 -1
  166. package/dist/DatePicker/compareDates.js +0 -4
  167. package/dist/DatePicker/components.cjs +0 -31
  168. package/dist/DatePicker/components.js +0 -41
  169. package/dist/DatePicker/index.cjs +0 -1
  170. package/dist/DatePicker/index.js +0 -4
  171. package/dist/DatePicker/utils/formatDate.cjs +0 -1
  172. package/dist/DatePicker/utils/formatDate.js +0 -4
  173. package/dist/DatePicker/utils/generateWeeks.cjs +0 -1
  174. package/dist/DatePicker/utils/generateWeeks.js +0 -17
  175. package/dist/DatePicker/utils/getDayOfWeek.cjs +0 -1
  176. package/dist/DatePicker/utils/getDayOfWeek.js +0 -15
  177. package/dist/DatePicker/utils/getMonths.cjs +0 -1
  178. package/dist/DatePicker/utils/getMonths.js +0 -7
  179. package/dist/DatePicker/utils/getYears.cjs +0 -1
  180. package/dist/DatePicker/utils/getYears.js +0 -9
  181. package/dist/DatePicker/utils/index.cjs +0 -1
  182. package/dist/DatePicker/utils/index.js +0 -12
  183. package/dist/DateTimePicker/DateTimePicker.cjs +0 -1
  184. package/dist/DateTimePicker/DateTimePicker.js +0 -108
  185. package/dist/DateTimePicker/DateTimePickerProps.cjs +0 -1
  186. package/dist/DateTimePicker/DateTimePickerProps.js +0 -42
  187. package/dist/DateTimePicker/__tests__/parseDate.test.cjs +0 -1
  188. package/dist/DateTimePicker/__tests__/parseDate.test.js +0 -8
  189. package/dist/DateTimePicker/index.cjs +0 -1
  190. package/dist/DateTimePicker/index.js +0 -4
  191. package/dist/DateTimePicker/parseDate.cjs +0 -1
  192. package/dist/DateTimePicker/parseDate.js +0 -7
  193. package/dist/Dialog/Dialog.cjs +0 -14
  194. package/dist/Dialog/Dialog.js +0 -66
  195. package/dist/Dialog/DialogBody.cjs +0 -10
  196. package/dist/Dialog/DialogBody.js +0 -32
  197. package/dist/Dialog/DialogFooter.cjs +0 -9
  198. package/dist/Dialog/DialogFooter.js +0 -31
  199. package/dist/Dialog/index.cjs +0 -1
  200. package/dist/Dialog/index.js +0 -8
  201. package/dist/DismissibleLayer/DismissibleLayer.cjs +0 -1
  202. package/dist/DismissibleLayer/DismissibleLayer.js +0 -37
  203. package/dist/DismissibleLayer/index.cjs +0 -1
  204. package/dist/DismissibleLayer/index.js +0 -4
  205. package/dist/Divider/Divider.cjs +0 -5
  206. package/dist/Divider/Divider.js +0 -24
  207. package/dist/Divider/index.cjs +0 -1
  208. package/dist/Divider/index.js +0 -4
  209. package/dist/EmptyStateLayout/EmptyStateLayout.cjs +0 -10
  210. package/dist/EmptyStateLayout/EmptyStateLayout.js +0 -44
  211. package/dist/EmptyStateLayout/index.cjs +0 -1
  212. package/dist/EmptyStateLayout/index.js +0 -4
  213. package/dist/EmptyStateLayout/story-assets/Illo.cjs +0 -1
  214. package/dist/EmptyStateLayout/story-assets/Illo.js +0 -49
  215. package/dist/Field/Field.cjs +0 -1
  216. package/dist/Field/Field.js +0 -28
  217. package/dist/Field/FieldAction.cjs +0 -10
  218. package/dist/Field/FieldAction.js +0 -24
  219. package/dist/Field/FieldContext.cjs +0 -1
  220. package/dist/Field/FieldContext.js +0 -6
  221. package/dist/Field/FieldError.cjs +0 -1
  222. package/dist/Field/FieldError.js +0 -16
  223. package/dist/Field/FieldHint.cjs +0 -1
  224. package/dist/Field/FieldHint.js +0 -15
  225. package/dist/Field/FieldInput.cjs +0 -43
  226. package/dist/Field/FieldInput.js +0 -105
  227. package/dist/Field/FieldLabel.cjs +0 -9
  228. package/dist/Field/FieldLabel.js +0 -44
  229. package/dist/Field/index.cjs +0 -1
  230. package/dist/Field/index.js +0 -18
  231. package/dist/Flex/Flex.cjs +0 -9
  232. package/dist/Flex/Flex.js +0 -22
  233. package/dist/Flex/FlexProps.cjs +0 -1
  234. package/dist/Flex/FlexProps.js +0 -40
  235. package/dist/Flex/index.cjs +0 -1
  236. package/dist/Flex/index.js +0 -4
  237. package/dist/FocusTrap/ExampleComponent.cjs +0 -1
  238. package/dist/FocusTrap/ExampleComponent.js +0 -70
  239. package/dist/FocusTrap/FocusTrap.cjs +0 -1
  240. package/dist/FocusTrap/FocusTrap.js +0 -48
  241. package/dist/FocusTrap/index.cjs +0 -1
  242. package/dist/FocusTrap/index.js +0 -4
  243. package/dist/Grid/Grid.cjs +0 -5
  244. package/dist/Grid/Grid.js +0 -28
  245. package/dist/Grid/GridContext.cjs +0 -1
  246. package/dist/Grid/GridContext.js +0 -6
  247. package/dist/Grid/GridItem.cjs +0 -12
  248. package/dist/Grid/GridItem.js +0 -41
  249. package/dist/Grid/index.cjs +0 -1
  250. package/dist/Grid/index.js +0 -6
  251. package/dist/Icon/Icon.cjs +0 -6
  252. package/dist/Icon/Icon.js +0 -26
  253. package/dist/Icon/index.cjs +0 -1
  254. package/dist/Icon/index.js +0 -4
  255. package/dist/IconButton/IconButton.cjs +0 -86
  256. package/dist/IconButton/IconButton.js +0 -129
  257. package/dist/IconButton/index.cjs +0 -1
  258. package/dist/IconButton/index.js +0 -5
  259. package/dist/KeyboardNavigable/KeyboardNavigable.cjs +0 -1
  260. package/dist/KeyboardNavigable/KeyboardNavigable.js +0 -58
  261. package/dist/KeyboardNavigable/index.cjs +0 -1
  262. package/dist/KeyboardNavigable/index.js +0 -4
  263. package/dist/Layout/ActionLayout.cjs +0 -9
  264. package/dist/Layout/ActionLayout.js +0 -37
  265. package/dist/Layout/ContentLayout.cjs +0 -1
  266. package/dist/Layout/ContentLayout.js +0 -13
  267. package/dist/Layout/GridLayout.cjs +0 -5
  268. package/dist/Layout/GridLayout.js +0 -13
  269. package/dist/Layout/HeaderLayout.cjs +0 -8
  270. package/dist/Layout/HeaderLayout.js +0 -132
  271. package/dist/Layout/Layout.cjs +0 -6
  272. package/dist/Layout/Layout.js +0 -24
  273. package/dist/Layout/TwoColsLayout.cjs +0 -1
  274. package/dist/Layout/TwoColsLayout.js +0 -29
  275. package/dist/Layout/index.cjs +0 -1
  276. package/dist/Layout/index.js +0 -15
  277. package/dist/Link/Link.cjs +0 -33
  278. package/dist/Link/Link.js +0 -87
  279. package/dist/Link/index.cjs +0 -1
  280. package/dist/Link/index.js +0 -4
  281. package/dist/LinkButton/LinkButton.cjs +0 -32
  282. package/dist/LinkButton/LinkButton.js +0 -99
  283. package/dist/LinkButton/index.cjs +0 -1
  284. package/dist/LinkButton/index.js +0 -4
  285. package/dist/LiveRegions/LiveRegions.cjs +0 -1
  286. package/dist/LiveRegions/LiveRegions.js +0 -22
  287. package/dist/LiveRegions/StoryComponent.cjs +0 -1
  288. package/dist/LiveRegions/StoryComponent.js +0 -18
  289. package/dist/LiveRegions/constants.cjs +0 -1
  290. package/dist/LiveRegions/constants.js +0 -8
  291. package/dist/LiveRegions/index.cjs +0 -1
  292. package/dist/LiveRegions/index.js +0 -4
  293. package/dist/LiveRegions/useNotifyAT.cjs +0 -1
  294. package/dist/LiveRegions/useNotifyAT.js +0 -17
  295. package/dist/Loader/Loader.cjs +0 -12
  296. package/dist/Loader/Loader.js +0 -37
  297. package/dist/Loader/assets/loader.cjs +0 -1
  298. package/dist/Loader/assets/loader.js +0 -4
  299. package/dist/Loader/index.cjs +0 -1
  300. package/dist/Loader/index.js +0 -4
  301. package/dist/Main/Main.cjs +0 -6
  302. package/dist/Main/Main.js +0 -26
  303. package/dist/Main/SkipToContent.cjs +0 -12
  304. package/dist/Main/SkipToContent.js +0 -29
  305. package/dist/Main/index.cjs +0 -1
  306. package/dist/Main/index.js +0 -6
  307. package/dist/MainNav/MainNav.cjs +0 -9
  308. package/dist/MainNav/MainNav.js +0 -30
  309. package/dist/MainNav/MainNavContext.cjs +0 -1
  310. package/dist/MainNav/MainNavContext.js +0 -6
  311. package/dist/MainNav/NavBrand.cjs +0 -12
  312. package/dist/MainNav/NavBrand.js +0 -67
  313. package/dist/MainNav/NavCondense.cjs +0 -20
  314. package/dist/MainNav/NavCondense.js +0 -45
  315. package/dist/MainNav/NavLink.cjs +0 -69
  316. package/dist/MainNav/NavLink.js +0 -119
  317. package/dist/MainNav/NavSection.cjs +0 -1
  318. package/dist/MainNav/NavSection.js +0 -49
  319. package/dist/MainNav/NavSections.cjs +0 -1
  320. package/dist/MainNav/NavSections.js +0 -21
  321. package/dist/MainNav/NavUser.cjs +0 -7
  322. package/dist/MainNav/NavUser.js +0 -54
  323. package/dist/MainNav/index.cjs +0 -1
  324. package/dist/MainNav/index.js +0 -16
  325. package/dist/ModalLayout/ModalBody.cjs +0 -4
  326. package/dist/ModalLayout/ModalBody.js +0 -13
  327. package/dist/ModalLayout/ModalContext.cjs +0 -1
  328. package/dist/ModalLayout/ModalContext.js +0 -6
  329. package/dist/ModalLayout/ModalFooter.cjs +0 -8
  330. package/dist/ModalLayout/ModalFooter.js +0 -32
  331. package/dist/ModalLayout/ModalHeader.cjs +0 -4
  332. package/dist/ModalLayout/ModalHeader.js +0 -37
  333. package/dist/ModalLayout/ModalLayout.cjs +0 -12
  334. package/dist/ModalLayout/ModalLayout.js +0 -42
  335. package/dist/ModalLayout/index.cjs +0 -1
  336. package/dist/ModalLayout/index.js +0 -10
  337. package/dist/NumberInput/NumberInput.cjs +0 -12
  338. package/dist/NumberInput/NumberInput.js +0 -179
  339. package/dist/NumberInput/index.cjs +0 -1
  340. package/dist/NumberInput/index.js +0 -4
  341. package/dist/Pagination/Pagination.cjs +0 -5
  342. package/dist/Pagination/Pagination.js +0 -30
  343. package/dist/Pagination/PaginationContext.cjs +0 -1
  344. package/dist/Pagination/PaginationContext.js +0 -6
  345. package/dist/Pagination/assets/next.cjs +0 -1
  346. package/dist/Pagination/assets/next.js +0 -4
  347. package/dist/Pagination/assets/previous.cjs +0 -1
  348. package/dist/Pagination/assets/previous.js +0 -4
  349. package/dist/Pagination/components.cjs +0 -36
  350. package/dist/Pagination/components.js +0 -111
  351. package/dist/Pagination/index.cjs +0 -1
  352. package/dist/Pagination/index.js +0 -9
  353. package/dist/Popover/Popover.cjs +0 -26
  354. package/dist/Popover/Popover.js +0 -122
  355. package/dist/Popover/index.cjs +0 -1
  356. package/dist/Popover/index.js +0 -5
  357. package/dist/Portal/Portal.cjs +0 -1
  358. package/dist/Portal/Portal.js +0 -15
  359. package/dist/Portal/index.cjs +0 -1
  360. package/dist/Portal/index.js +0 -4
  361. package/dist/ProgressBar/ProgressBar.cjs +0 -21
  362. package/dist/ProgressBar/ProgressBar.js +0 -58
  363. package/dist/ProgressBar/index.cjs +0 -1
  364. package/dist/ProgressBar/index.js +0 -4
  365. package/dist/Radio/Radio.cjs +0 -4
  366. package/dist/Radio/Radio.js +0 -24
  367. package/dist/Radio/index.cjs +0 -1
  368. package/dist/Radio/index.js +0 -6
  369. package/dist/RawTable/RawCell.cjs +0 -1
  370. package/dist/RawTable/RawCell.js +0 -80
  371. package/dist/RawTable/RawTable.cjs +0 -1
  372. package/dist/RawTable/RawTable.js +0 -73
  373. package/dist/RawTable/RawTableContext.cjs +0 -1
  374. package/dist/RawTable/RawTableContext.js +0 -12
  375. package/dist/RawTable/RawTbody.cjs +0 -1
  376. package/dist/RawTable/RawTbody.js +0 -16
  377. package/dist/RawTable/RawThead.cjs +0 -1
  378. package/dist/RawTable/RawThead.js +0 -14
  379. package/dist/RawTable/RawTr.cjs +0 -1
  380. package/dist/RawTable/RawTr.js +0 -19
  381. package/dist/RawTable/focusFocusable.cjs +0 -1
  382. package/dist/RawTable/focusFocusable.js +0 -7
  383. package/dist/RawTable/index.cjs +0 -1
  384. package/dist/RawTable/index.js +0 -13
  385. package/dist/Searchbar/SearchForm.cjs +0 -1
  386. package/dist/Searchbar/SearchForm.js +0 -8
  387. package/dist/Searchbar/Searchbar.cjs +0 -29
  388. package/dist/Searchbar/Searchbar.js +0 -79
  389. package/dist/Searchbar/index.cjs +0 -1
  390. package/dist/Searchbar/index.js +0 -6
  391. package/dist/Select/MultiSelectNested.cjs +0 -1
  392. package/dist/Select/MultiSelectNested.js +0 -26
  393. package/dist/Select/OptGroup.cjs +0 -1
  394. package/dist/Select/OptGroup.js +0 -20
  395. package/dist/Select/Option.cjs +0 -49
  396. package/dist/Select/Option.js +0 -104
  397. package/dist/Select/Select.cjs +0 -3
  398. package/dist/Select/Select.js +0 -232
  399. package/dist/Select/SelectButton.cjs +0 -19
  400. package/dist/Select/SelectButton.js +0 -64
  401. package/dist/Select/SelectList.cjs +0 -1
  402. package/dist/Select/SelectList.js +0 -81
  403. package/dist/Select/SelectTags.cjs +0 -8
  404. package/dist/Select/SelectTags.js +0 -36
  405. package/dist/Select/components.cjs +0 -39
  406. package/dist/Select/components.js +0 -48
  407. package/dist/Select/constants.cjs +0 -1
  408. package/dist/Select/constants.js +0 -8
  409. package/dist/Select/hooks/useButtonRef.cjs +0 -1
  410. package/dist/Select/hooks/useButtonRef.js +0 -13
  411. package/dist/Select/hooks/useListRef.cjs +0 -1
  412. package/dist/Select/hooks/useListRef.js +0 -18
  413. package/dist/Select/index.cjs +0 -1
  414. package/dist/Select/index.js +0 -12
  415. package/dist/Select/utils.cjs +0 -1
  416. package/dist/Select/utils.js +0 -17
  417. package/dist/SimpleMenu/SimpleMenu.cjs +0 -19
  418. package/dist/SimpleMenu/SimpleMenu.js +0 -164
  419. package/dist/SimpleMenu/index.cjs +0 -1
  420. package/dist/SimpleMenu/index.js +0 -5
  421. package/dist/SimpleMenu/utils.cjs +0 -12
  422. package/dist/SimpleMenu/utils.js +0 -15
  423. package/dist/Stack/Stack.cjs +0 -19
  424. package/dist/Stack/Stack.js +0 -55
  425. package/dist/Stack/index.cjs +0 -1
  426. package/dist/Stack/index.js +0 -4
  427. package/dist/Status/Status.cjs +0 -11
  428. package/dist/Status/Status.js +0 -46
  429. package/dist/Status/index.cjs +0 -1
  430. package/dist/Status/index.js +0 -4
  431. package/dist/SubNav/SubNav.cjs +0 -10
  432. package/dist/SubNav/SubNav.js +0 -26
  433. package/dist/SubNav/SubNavHeader.cjs +0 -4
  434. package/dist/SubNav/SubNavHeader.js +0 -98
  435. package/dist/SubNav/SubNavLink.cjs +0 -39
  436. package/dist/SubNav/SubNavLink.js +0 -80
  437. package/dist/SubNav/SubNavLinkSection.cjs +0 -19
  438. package/dist/SubNav/SubNavLinkSection.js +0 -68
  439. package/dist/SubNav/SubNavSection.cjs +0 -8
  440. package/dist/SubNav/SubNavSection.js +0 -63
  441. package/dist/SubNav/SubNavSectionLabel.cjs +0 -9
  442. package/dist/SubNav/SubNavSectionLabel.js +0 -53
  443. package/dist/SubNav/SubNavSections.cjs +0 -1
  444. package/dist/SubNav/SubNavSections.js +0 -20
  445. package/dist/SubNav/index.cjs +0 -1
  446. package/dist/SubNav/index.js +0 -15
  447. package/dist/Switch/Switch.cjs +0 -42
  448. package/dist/Switch/Switch.js +0 -80
  449. package/dist/Switch/index.cjs +0 -1
  450. package/dist/Switch/index.js +0 -4
  451. package/dist/Table/Cell.cjs +0 -17
  452. package/dist/Table/Cell.js +0 -39
  453. package/dist/Table/TFooter.cjs +0 -22
  454. package/dist/Table/TFooter.js +0 -50
  455. package/dist/Table/Table.cjs +0 -36
  456. package/dist/Table/Table.js +0 -80
  457. package/dist/Table/Tbody.cjs +0 -5
  458. package/dist/Table/Tbody.js +0 -13
  459. package/dist/Table/Thead.cjs +0 -3
  460. package/dist/Table/Thead.js +0 -11
  461. package/dist/Table/Tr.cjs +0 -20
  462. package/dist/Table/Tr.js +0 -28
  463. package/dist/Table/index.cjs +0 -1
  464. package/dist/Table/index.js +0 -15
  465. package/dist/Tabs/TabGroup.cjs +0 -1
  466. package/dist/Tabs/TabGroup.js +0 -36
  467. package/dist/Tabs/TabPanels.cjs +0 -1
  468. package/dist/Tabs/TabPanels.js +0 -32
  469. package/dist/Tabs/Tabs.cjs +0 -5
  470. package/dist/Tabs/Tabs.js +0 -134
  471. package/dist/Tabs/TabsContext.cjs +0 -1
  472. package/dist/Tabs/TabsContext.js +0 -6
  473. package/dist/Tabs/components.cjs +0 -43
  474. package/dist/Tabs/components.js +0 -52
  475. package/dist/Tabs/index.cjs +0 -1
  476. package/dist/Tabs/index.js +0 -10
  477. package/dist/Tabs/useTabsFocus.cjs +0 -1
  478. package/dist/Tabs/useTabsFocus.js +0 -16
  479. package/dist/Tag/Tag.cjs +0 -14
  480. package/dist/Tag/Tag.js +0 -60
  481. package/dist/Tag/index.cjs +0 -1
  482. package/dist/Tag/index.js +0 -4
  483. package/dist/TextButton/TextButton.cjs +0 -32
  484. package/dist/TextButton/TextButton.js +0 -82
  485. package/dist/TextButton/index.cjs +0 -1
  486. package/dist/TextButton/index.js +0 -4
  487. package/dist/TextInput/TextInput.cjs +0 -1
  488. package/dist/TextInput/TextInput.js +0 -69
  489. package/dist/TextInput/index.cjs +0 -1
  490. package/dist/TextInput/index.js +0 -4
  491. package/dist/Textarea/Textarea.cjs +0 -15
  492. package/dist/Textarea/Textarea.js +0 -74
  493. package/dist/Textarea/TextareaInput.cjs +0 -30
  494. package/dist/Textarea/TextareaInput.js +0 -68
  495. package/dist/Textarea/index.cjs +0 -1
  496. package/dist/Textarea/index.js +0 -4
  497. package/dist/ThemeProvider/ThemeProvider.cjs +0 -173
  498. package/dist/ThemeProvider/ThemeProvider.js +0 -186
  499. package/dist/ThemeProvider/hooks.cjs +0 -1
  500. package/dist/ThemeProvider/hooks.js +0 -5
  501. package/dist/ThemeProvider/index.cjs +0 -1
  502. package/dist/ThemeProvider/index.js +0 -6
  503. package/dist/TimePicker/TimePicker.cjs +0 -12
  504. package/dist/TimePicker/TimePicker.js +0 -104
  505. package/dist/TimePicker/index.cjs +0 -1
  506. package/dist/TimePicker/index.js +0 -4
  507. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +0 -36
  508. package/dist/ToggleCheckbox/ToggleCheckbox.js +0 -119
  509. package/dist/ToggleCheckbox/index.cjs +0 -1
  510. package/dist/ToggleCheckbox/index.js +0 -4
  511. package/dist/ToggleInput/ToggleInput.cjs +0 -6
  512. package/dist/ToggleInput/ToggleInput.js +0 -90
  513. package/dist/ToggleInput/index.cjs +0 -1
  514. package/dist/ToggleInput/index.js +0 -4
  515. package/dist/Tooltip/Tooltip.cjs +0 -6
  516. package/dist/Tooltip/Tooltip.js +0 -60
  517. package/dist/Tooltip/hooks/useTooltipHandlers.cjs +0 -1
  518. package/dist/Tooltip/hooks/useTooltipHandlers.js +0 -22
  519. package/dist/Tooltip/hooks/useTooltipLayout.cjs +0 -1
  520. package/dist/Tooltip/hooks/useTooltipLayout.js +0 -14
  521. package/dist/Tooltip/index.cjs +0 -1
  522. package/dist/Tooltip/index.js +0 -4
  523. package/dist/Tooltip/utils/positionTooltip.cjs +0 -1
  524. package/dist/Tooltip/utils/positionTooltip.js +0 -27
  525. package/dist/Typography/Typography.cjs +0 -10
  526. package/dist/Typography/Typography.js +0 -23
  527. package/dist/Typography/TypographyProps.cjs +0 -1
  528. package/dist/Typography/TypographyProps.js +0 -31
  529. package/dist/Typography/constants.cjs +0 -1
  530. package/dist/Typography/constants.js +0 -11
  531. package/dist/Typography/index.cjs +0 -1
  532. package/dist/Typography/index.js +0 -4
  533. package/dist/Typography/utils.cjs +0 -34
  534. package/dist/Typography/utils.js +0 -59
  535. package/dist/VisuallyHidden/VisuallyHidden.cjs +0 -10
  536. package/dist/VisuallyHidden/VisuallyHidden.js +0 -14
  537. package/dist/VisuallyHidden/index.cjs +0 -1
  538. package/dist/VisuallyHidden/index.js +0 -4
  539. package/dist/helpers/escapeSelector.cjs +0 -1
  540. package/dist/helpers/escapeSelector.js +0 -4
  541. package/dist/helpers/genId.cjs +0 -1
  542. package/dist/helpers/genId.js +0 -5
  543. package/dist/helpers/getDefaultLocale.cjs +0 -1
  544. package/dist/helpers/getDefaultLocale.js +0 -4
  545. package/dist/helpers/getFocusableNodes.cjs +0 -1
  546. package/dist/helpers/getFocusableNodes.js +0 -7
  547. package/dist/helpers/handleResponsiveValues.cjs +0 -5
  548. package/dist/helpers/handleResponsiveValues.js +0 -19
  549. package/dist/helpers/keyboardKeys.cjs +0 -1
  550. package/dist/helpers/keyboardKeys.js +0 -20
  551. package/dist/helpers/setOpacity.cjs +0 -1
  552. package/dist/helpers/setOpacity.js +0 -4
  553. package/dist/helpers/setTabIndexOnFirstItem.cjs +0 -1
  554. package/dist/helpers/setTabIndexOnFirstItem.js +0 -7
  555. package/dist/helpers/useElementOnScreen.cjs +0 -1
  556. package/dist/helpers/useElementOnScreen.js +0 -15
  557. package/dist/helpers/useId.cjs +0 -1
  558. package/dist/helpers/useId.js +0 -6
  559. package/dist/helpers/useIntersection.cjs +0 -1
  560. package/dist/helpers/useIntersection.js +0 -21
  561. package/dist/helpers/useLockScroll.cjs +0 -1
  562. package/dist/helpers/useLockScroll.js +0 -9
  563. package/dist/helpers/usePrevious.cjs +0 -1
  564. package/dist/helpers/usePrevious.js +0 -10
  565. package/dist/helpers/useResizeObserver.cjs +0 -1
  566. package/dist/helpers/useResizeObserver.js +0 -14
  567. package/dist/index.cjs +0 -1
  568. package/dist/index.js +0 -290
  569. package/dist/themes/ColorButton.cjs +0 -3
  570. package/dist/themes/ColorButton.js +0 -25
  571. package/dist/themes/colors.cjs +0 -1
  572. package/dist/themes/colors.js +0 -49
  573. package/dist/themes/common-theme.cjs +0 -1
  574. package/dist/themes/common-theme.js +0 -21
  575. package/dist/themes/darkTheme/dark-colors.cjs +0 -1
  576. package/dist/themes/darkTheme/dark-colors.js +0 -52
  577. package/dist/themes/darkTheme/dark-shadows.cjs +0 -1
  578. package/dist/themes/darkTheme/dark-shadows.js +0 -12
  579. package/dist/themes/darkTheme/index.cjs +0 -1
  580. package/dist/themes/darkTheme/index.js +0 -11
  581. package/dist/themes/extendTheme.cjs +0 -13
  582. package/dist/themes/extendTheme.js +0 -36
  583. package/dist/themes/index.cjs +0 -1
  584. package/dist/themes/index.js +0 -12
  585. package/dist/themes/lightTheme/index.cjs +0 -1
  586. package/dist/themes/lightTheme/index.js +0 -11
  587. package/dist/themes/lightTheme/light-colors.cjs +0 -1
  588. package/dist/themes/lightTheme/light-colors.js +0 -52
  589. package/dist/themes/lightTheme/light-shadows.cjs +0 -1
  590. package/dist/themes/lightTheme/light-shadows.js +0 -12
  591. package/dist/themes/sizes.cjs +0 -1
  592. package/dist/themes/sizes.js +0 -13
  593. package/dist/themes/utils.cjs +0 -41
  594. package/dist/themes/utils.js +0 -46
  595. package/dist/v2/Breadcrumbs/Breadcrumbs.cjs +0 -9
  596. package/dist/v2/Breadcrumbs/Breadcrumbs.js +0 -38
  597. package/dist/v2/Breadcrumbs/Crumb.cjs +0 -1
  598. package/dist/v2/Breadcrumbs/Crumb.js +0 -27
  599. package/dist/v2/Breadcrumbs/CrumbLink.cjs +0 -14
  600. package/dist/v2/Breadcrumbs/CrumbLink.js +0 -31
  601. package/dist/v2/Breadcrumbs/CrumbSimpleMenu.cjs +0 -8
  602. package/dist/v2/Breadcrumbs/CrumbSimpleMenu.js +0 -28
  603. package/dist/v2/Breadcrumbs/Divider.cjs +0 -1
  604. package/dist/v2/Breadcrumbs/Divider.js +0 -15
  605. package/dist/v2/Breadcrumbs/index.cjs +0 -1
  606. package/dist/v2/Breadcrumbs/index.js +0 -10
  607. package/dist/v2/Link/Link.cjs +0 -23
  608. package/dist/v2/Link/Link.js +0 -69
  609. package/dist/v2/Link/index.cjs +0 -1
  610. package/dist/v2/Link/index.js +0 -4
  611. package/dist/v2/LinkButton/LinkButton.cjs +0 -33
  612. package/dist/v2/LinkButton/LinkButton.js +0 -95
  613. package/dist/v2/LinkButton/index.cjs +0 -1
  614. package/dist/v2/LinkButton/index.js +0 -4
  615. package/dist/v2/MainNav/MainNav.cjs +0 -9
  616. package/dist/v2/MainNav/MainNav.js +0 -30
  617. package/dist/v2/MainNav/MainNavContext.cjs +0 -1
  618. package/dist/v2/MainNav/MainNavContext.js +0 -6
  619. package/dist/v2/MainNav/NavBrand.cjs +0 -12
  620. package/dist/v2/MainNav/NavBrand.js +0 -68
  621. package/dist/v2/MainNav/NavCondense.cjs +0 -20
  622. package/dist/v2/MainNav/NavCondense.js +0 -45
  623. package/dist/v2/MainNav/NavLink.cjs +0 -69
  624. package/dist/v2/MainNav/NavLink.js +0 -122
  625. package/dist/v2/MainNav/NavSection.cjs +0 -1
  626. package/dist/v2/MainNav/NavSection.js +0 -49
  627. package/dist/v2/MainNav/NavSections.cjs +0 -1
  628. package/dist/v2/MainNav/NavSections.js +0 -21
  629. package/dist/v2/MainNav/NavUser.cjs +0 -7
  630. package/dist/v2/MainNav/NavUser.js +0 -54
  631. package/dist/v2/MainNav/index.cjs +0 -1
  632. package/dist/v2/MainNav/index.js +0 -16
  633. package/dist/v2/Pagination/Pagination.cjs +0 -5
  634. package/dist/v2/Pagination/Pagination.js +0 -30
  635. package/dist/v2/Pagination/PaginationContext.cjs +0 -1
  636. package/dist/v2/Pagination/PaginationContext.js +0 -6
  637. package/dist/v2/Pagination/assets/next.cjs +0 -1
  638. package/dist/v2/Pagination/assets/next.js +0 -4
  639. package/dist/v2/Pagination/assets/previous.cjs +0 -1
  640. package/dist/v2/Pagination/assets/previous.js +0 -4
  641. package/dist/v2/Pagination/components.cjs +0 -36
  642. package/dist/v2/Pagination/components.js +0 -111
  643. package/dist/v2/Pagination/index.cjs +0 -1
  644. package/dist/v2/Pagination/index.js +0 -9
  645. package/dist/v2/SimpleMenu/SimpleMenu.cjs +0 -19
  646. package/dist/v2/SimpleMenu/SimpleMenu.js +0 -164
  647. package/dist/v2/SimpleMenu/index.cjs +0 -1
  648. package/dist/v2/SimpleMenu/index.js +0 -5
  649. package/dist/v2/SimpleMenu/utils.cjs +0 -12
  650. package/dist/v2/SimpleMenu/utils.js +0 -15
  651. package/dist/v2/SubNav/SubNav.cjs +0 -10
  652. package/dist/v2/SubNav/SubNav.js +0 -26
  653. package/dist/v2/SubNav/SubNavHeader.cjs +0 -4
  654. package/dist/v2/SubNav/SubNavHeader.js +0 -98
  655. package/dist/v2/SubNav/SubNavLink.cjs +0 -39
  656. package/dist/v2/SubNav/SubNavLink.js +0 -83
  657. package/dist/v2/SubNav/SubNavLinkSection.cjs +0 -19
  658. package/dist/v2/SubNav/SubNavLinkSection.js +0 -68
  659. package/dist/v2/SubNav/SubNavSection.cjs +0 -8
  660. package/dist/v2/SubNav/SubNavSection.js +0 -63
  661. package/dist/v2/SubNav/SubNavSectionLabel.cjs +0 -9
  662. package/dist/v2/SubNav/SubNavSectionLabel.js +0 -53
  663. package/dist/v2/SubNav/SubNavSections.cjs +0 -1
  664. package/dist/v2/SubNav/SubNavSections.js +0 -20
  665. package/dist/v2/SubNav/index.cjs +0 -1
  666. package/dist/v2/SubNav/index.js +0 -15
  667. package/dist/v2/index.cjs +0 -1
  668. package/dist/v2/index.js +0 -51
  669. package/vite.config.js +0 -35
package/.eslintrc.js ADDED
@@ -0,0 +1,38 @@
1
+ module.exports = {
2
+ env: {
3
+ jest: true,
4
+ browser: true,
5
+ node: true,
6
+ },
7
+ parserOptions: {
8
+ ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features
9
+ sourceType: 'module', // Allows for the use of imports
10
+ ecmaFeatures: {
11
+ jsx: true, // Allows for the parsing of JSX
12
+ },
13
+ },
14
+ settings: {
15
+ react: {
16
+ version: 'detect', // Tells eslint-plugin-react to automatically detect the version of React to use
17
+ },
18
+ },
19
+ extends: [
20
+ 'plugin:react/recommended', // Uses the recommended rules from @eslint-plugin-react
21
+ 'plugin:prettier/recommended', // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array.
22
+ ],
23
+ rules: {
24
+ 'react/sort-prop-types': 1,
25
+ 'default-case': 'error',
26
+ 'no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: false }],
27
+ 'no-undef': 'error',
28
+ },
29
+ overrides: [
30
+ {
31
+ files: '*.mdx',
32
+ parser: 'eslint-mdx',
33
+ rules: {
34
+ 'react/react-in-jsx-scope': 'off',
35
+ },
36
+ },
37
+ ],
38
+ };
package/.prettierrc.js ADDED
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ semi: true,
3
+ trailingComma: "all",
4
+ singleQuote: true,
5
+ printWidth: 120,
6
+ tabWidth: 2,
7
+ };
File without changes
@@ -0,0 +1,5 @@
1
+ // Used by jest
2
+ module.exports = {
3
+ presets: ['@babel/preset-env', '@babel/preset-react'],
4
+ plugins: [['@babel/plugin-transform-runtime']],
5
+ };
@@ -0,0 +1,34 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const excludedFolders = require('../../tools/excludedFolders');
4
+
5
+ const isV2Build = process.env.IS_V2 === 'true';
6
+ let entryFolder = isV2Build ? path.resolve(__dirname, 'src', 'v2') : path.resolve(__dirname, 'src');
7
+ const fileNames = fs.readdirSync(entryFolder);
8
+ const entries = fileNames.filter((name) => !excludedFolders.includes(name));
9
+
10
+ const createIndexFile = async (fileName) => {
11
+ const name = fileName.replace('.js', '');
12
+ const content = `
13
+ 'use strict';
14
+
15
+ if (process.env.NODE_ENV === "production") {
16
+ module.exports = require("./${name}.production.js");
17
+ } else {
18
+ module.exports = require("./${name}.development.js");
19
+ }
20
+ `;
21
+
22
+ try {
23
+ const outputPath = isV2Build
24
+ ? path.resolve(__dirname, 'dist', 'v2', `${name}.js`)
25
+ : path.resolve(__dirname, 'dist', `${name}.js`);
26
+ fs.writeFile(outputPath, content);
27
+ } catch (err) {
28
+ console.log(err);
29
+ }
30
+ };
31
+
32
+ entries.forEach((entry) => {
33
+ createIndexFile(entry);
34
+ });
package/global-setup.js CHANGED
@@ -1,4 +1,4 @@
1
- export default async () => {
1
+ module.exports = async () => {
2
2
  process.env.TZ = 'UTC';
3
3
  process.env.LANG = 'en_US.UTF-8';
4
4
  };
package/jest.config.js CHANGED
@@ -1,10 +1,12 @@
1
- export default {
1
+ module.exports = {
2
2
  testRegex: ['src/.*\\.spec\\.(jsx|js)$', 'tests/.*\\.spec.js$'],
3
3
  setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect', './test-bundler.js'],
4
4
  moduleNameMapper: {
5
5
  '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
6
6
  '<rootDir>/__mocks__/fileMock.js',
7
7
  '\\.(css|less)$': '<rootDir>/__mocks__/styleMock.js',
8
+ '^@strapi/icons/(.*)': '<rootDir>/../strapi-icons/dist/$1',
9
+ '^@strapi/icons': '<rootDir>/../strapi-icons/dist/index.js',
8
10
  },
9
11
  testEnvironment: 'jsdom',
10
12
  transform: {
package/package.json CHANGED
@@ -1,21 +1,8 @@
1
1
  {
2
2
  "name": "@strapi/design-system",
3
- "version": "1.3.0-beta.0",
3
+ "version": "1.3.0-beta.1",
4
+ "main": "index.js",
4
5
  "license": "MIT",
5
- "type": "module",
6
- "main": "./dist/index.cjs",
7
- "module": "./dist/index.js",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/index.js",
11
- "require": "./dist/index.cjs"
12
- },
13
- "./*": {
14
- "import": "./dist/*.js",
15
- "require": "./dist/*.cjs"
16
- }
17
- },
18
- "sideEffects": false,
19
6
  "dependencies": {
20
7
  "@floating-ui/react-dom": "^1.0.0",
21
8
  "@internationalized/number": "^3.1.1",
@@ -23,6 +10,10 @@
23
10
  "prop-types": "^15.7.2"
24
11
  },
25
12
  "devDependencies": {
13
+ "@babel/core": "^7.13.10",
14
+ "@babel/plugin-transform-runtime": "^7.13.2",
15
+ "@babel/preset-env": "^7.13.0",
16
+ "@babel/preset-react": "^7.12.13",
26
17
  "@figspec/react": "^0.1.5",
27
18
  "@juggle/resize-observer": "^3.4.0",
28
19
  "@playwright/test": "1.27.1",
@@ -30,12 +21,13 @@
30
21
  "@storybook/addon-essentials": "^6.5.13",
31
22
  "@storybook/addon-links": "^6.5.13",
32
23
  "@storybook/react": "^6.5.13",
33
- "@strapi/icons": "^1.3.0-beta.0",
34
24
  "@swc/core": "^1.3.11",
35
25
  "@swc/jest": "^0.2.23",
36
26
  "@testing-library/jest-dom": "^5.16.5",
37
27
  "@testing-library/react": "^11.2.5",
38
28
  "axe-playwright": "^1.1.11",
29
+ "babel-loader": "^8.2.2",
30
+ "clean-webpack-plugin": "^3.0.0",
39
31
  "cross-env": "^7.0.3",
40
32
  "eslint": "^7.20.0",
41
33
  "eslint-config-prettier": "^7.2.0",
@@ -46,32 +38,34 @@
46
38
  "jest": "^29.2.2",
47
39
  "jest-environment-jsdom": "^29.2.2",
48
40
  "jest-styled-components": "^7.1.1",
49
- "prettier": "^2.7.1",
41
+ "prettier": "^2.2.1",
50
42
  "qs": "^6.10.3",
51
43
  "react": "^17.0.1",
52
44
  "react-copy-to-clipboard": "^5.0.4",
53
45
  "react-dom": "^17.0.1",
54
46
  "react-router-dom": "^5.2.0",
55
47
  "storybook-dark-mode": "^1.1.2",
56
- "styled-components": "^5.2.1"
48
+ "styled-components": "^5.3.6",
49
+ "url-loader": "^4.1.1",
50
+ "webpack-bundle-analyzer": "^4.4.0",
51
+ "webpack-cli": "^4.5.0"
57
52
  },
58
53
  "peerDependencies": {
59
- "@strapi/icons": "^1.2.6",
54
+ "@strapi/icons": "^1.2.7",
60
55
  "react": "^17.0.1",
61
56
  "react-dom": "^17.0.1",
62
57
  "react-router-dom": "^5.2.0",
63
58
  "styled-components": "^5.2.1"
64
59
  },
65
- "peerDependenciesMeta": {
66
- "react-router-dom": {
67
- "optional": true
68
- }
69
- },
70
60
  "scripts": {
71
- "dev": "vite",
61
+ "analyze:bundle": "cross-env BUNDLE_ANALYZE=1 webpack",
72
62
  "prebuild": "rimraf dist",
73
- "build": "yarn build:prod",
74
- "build:prod": "vite build",
63
+ "build": "yarn build:files && cross-env IS_V2=true yarn build:files",
64
+ "build:files": "yarn build:dev && yarn build:prod && yarn copy:files && yarn create:index-files",
65
+ "build:dev": "cross-env NODE_ENV=development webpack-cli",
66
+ "build:prod": "cross-env NODE_ENV=production webpack-cli",
67
+ "copy:files": "node ../../tools/copy-files.js",
68
+ "create:index-files": "node ./createIndexFiles.js",
75
69
  "build-storybook": "build-storybook",
76
70
  "lint": "eslint . --ext .js,.jsx,.mdx --fix",
77
71
  "lint-staged": "eslint --fix",
@@ -83,5 +77,5 @@
83
77
  "test:e2e:watch": "chokidar '**/__tests__/*.e2e.js' -c 'npm run test:e2e -- --retries=0 {path}'",
84
78
  "test:e2e:debug": "cross-env PWDEBUG=1 playwright test"
85
79
  },
86
- "gitHead": "a1a86363724b97dc619efcc96c06ffeb5cf4d62a"
80
+ "gitHead": "bfb372de4377a8b345c7801758c10d3d0bac509c"
87
81
  }
@@ -1,6 +1,6 @@
1
- import { devices } from '@playwright/test';
1
+ const { devices } = require('@playwright/test');
2
2
 
3
- export default {
3
+ const config = {
4
4
  testMatch: '**/__tests__/*.e2e.js',
5
5
  // Forbid test.only on CI
6
6
  forbidOnly: !!process.env.CI,
@@ -35,3 +35,5 @@ export default {
35
35
  },
36
36
  ],
37
37
  };
38
+
39
+ module.exports = config;
@@ -97,6 +97,7 @@ Accordion.defaultProps = {
97
97
  expanded: false,
98
98
  hasErrorMessage: true,
99
99
  id: undefined,
100
+ toggle: false,
100
101
  size: 'M',
101
102
  variant: 'primary',
102
103
  onToggle: undefined,
@@ -1,7 +1,10 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import styled from 'styled-components';
4
+
5
+ import { Box } from '../Box';
4
6
  import { getCheckboxSize } from './utils';
7
+
5
8
  import checkmarkIcon from './assets/checkmark.svg';
6
9
  import checkmarkIconDisabled from './assets/checkmark-black.svg';
7
10
 
@@ -84,15 +87,17 @@ export const BaseCheckbox = ({ indeterminate, size, name, value, onValueChange,
84
87
  };
85
88
 
86
89
  return (
87
- <CheckboxInput
88
- size={size}
89
- checked={value}
90
- onChange={handleValueChange}
91
- type="checkbox"
92
- ref={checkboxRef}
93
- name={name}
94
- {...inputProps}
95
- />
90
+ <Box>
91
+ <CheckboxInput
92
+ size={size}
93
+ checked={value}
94
+ onChange={handleValueChange}
95
+ type="checkbox"
96
+ ref={checkboxRef}
97
+ name={name}
98
+ {...inputProps}
99
+ />
100
+ </Box>
96
101
  );
97
102
  };
98
103
 
@@ -41,7 +41,7 @@ The `BaseCheckbox` can have an indeterminate state.
41
41
  <Canvas>
42
42
  <Story name="indeterminate">
43
43
  {() => {
44
- const [checkedItems, setCheckedItems] = React.useState([true, false]);
44
+ const [checkedItems, setCheckedItems] = useState([true, false]);
45
45
  const allChecked = checkedItems.every(Boolean);
46
46
  const isIndeterminate = checkedItems.some(Boolean) && !allChecked;
47
47
  return (
@@ -55,7 +55,7 @@ import { Checkbox } from '@strapi/design-system/Checkbox';
55
55
  }}
56
56
  >
57
57
  {() => {
58
- const [checkedItems, setCheckedItems] = React.useState([true, false]);
58
+ const [checkedItems, setCheckedItems] = useState([true, false]);
59
59
  const allChecked = checkedItems.every(Boolean);
60
60
  const isIndeterminate = checkedItems.some(Boolean) && !allChecked;
61
61
  return (
@@ -16,6 +16,7 @@ describe('DatePicker', () => {
16
16
  locale={locale}
17
17
  selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`}
18
18
  selectedDate={new Date('Tue Sep 06 2022')}
19
+ onChange={() => null}
19
20
  />
20
21
  </ThemeProvider>,
21
22
  );
@@ -1,4 +1,4 @@
1
- import { test, expect } from '@playwright/test';
1
+ const { test, expect } = require('@playwright/test');
2
2
 
3
3
  test.describe.parallel('DateTimePicker', () => {
4
4
  test.describe('without initial data', () => {
@@ -26,7 +26,21 @@ export const DismissibleLayer = ({ children, className, onEscapeKeyDown, onPoint
26
26
  * @type {(event: PointerEvent) => void}
27
27
  */
28
28
  const handlePointerDownOutside = (event) => {
29
- if (layerRef.current && !layerRef.current.contains(event.target)) {
29
+ /**
30
+ * Because certain elements that live inside modals e.g. Selects
31
+ * render their dropdowns in portals the `layerRef.current.contains(event.target)` fails.
32
+ *
33
+ * Therefore we check the closest portal of the DimissibleLayer (which we're trying to close)
34
+ * and the event that _may_ prematurely close the layer and see if they are equal.
35
+ */
36
+ const dismissibleLayersReactPortal = layerRef.current.closest('[data-react-portal]');
37
+ const eventsReactPortal = event.target.closest('[data-react-portal]');
38
+
39
+ if (
40
+ layerRef.current &&
41
+ !layerRef.current.contains(event.target) &&
42
+ dismissibleLayersReactPortal === eventsReactPortal
43
+ ) {
30
44
  onPointerDownOutsideHandler();
31
45
  }
32
46
  };
@@ -5,8 +5,9 @@ import { DismissibleLayer } from '../DismissibleLayer';
5
5
  describe('DismissibleLayer', () => {
6
6
  it('should fire onEscapeKeyDown when the ESCAPE key is pressed', () => {
7
7
  const onEscapeKeyDownMock = jest.fn();
8
+ const onPointerDownOutsideMock = jest.fn();
8
9
  render(
9
- <DismissibleLayer onEscapeKeyDown={onEscapeKeyDownMock}>
10
+ <DismissibleLayer onEscapeKeyDown={onEscapeKeyDownMock} onPointerDownOutside={onPointerDownOutsideMock}>
10
11
  <h1>hello world</h1>
11
12
  </DismissibleLayer>,
12
13
  );
@@ -18,9 +19,10 @@ describe('DismissibleLayer', () => {
18
19
 
19
20
  it('should fire onPointerDownOutside when the user clicks outside the DismissibleLayer', () => {
20
21
  const onPointerDownOutsideMock = jest.fn();
22
+ const onEscapeKeyDownMock = jest.fn();
21
23
  render(
22
24
  <>
23
- <DismissibleLayer onPointerDownOutside={onPointerDownOutsideMock}>
25
+ <DismissibleLayer onPointerDownOutside={onPointerDownOutsideMock} onEscapeKeyDown={onEscapeKeyDownMock}>
24
26
  <h1>hello world</h1>
25
27
  </DismissibleLayer>
26
28
  <button>Click me</button>
@@ -1,9 +1,10 @@
1
- import React from 'react';
1
+ import React, { cloneElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import styled from 'styled-components';
4
4
  import { Tooltip } from '../Tooltip';
5
5
  import { BaseButton } from '../BaseButton';
6
6
  import { Flex } from '../Flex';
7
+ import { VisuallyHidden } from '../VisuallyHidden';
7
8
 
8
9
  const IconButtonWrapper = styled(BaseButton)`
9
10
  display: flex;
@@ -94,29 +95,42 @@ export const IconButtonGroup = styled(Flex)`
94
95
  }
95
96
  `;
96
97
 
97
- export const IconButton = React.forwardRef(({ label, noBorder, icon, disabled, onClick, ...props }, ref) => {
98
- const handleClick = (e) => {
99
- if (!disabled && onClick) {
100
- onClick(e);
98
+ export const IconButton = React.forwardRef(
99
+ ({ label, noBorder, children, icon, disabled, onClick, ['aria-label']: ariaLabel, ...restProps }, ref) => {
100
+ /**
101
+ * @type {React.MouseEventHandler<HTMLButtonElement>}
102
+ */
103
+ const handleClick = (e) => {
104
+ if (!disabled && onClick) {
105
+ onClick(e);
106
+ }
107
+ };
108
+
109
+ if (!label) {
110
+ return (
111
+ <IconButtonWrapper {...restProps} ref={ref} noBorder={noBorder} onClick={handleClick} aria-disabled={disabled}>
112
+ <VisuallyHidden as="span">{ariaLabel}</VisuallyHidden>
113
+ {cloneElement(children ?? icon, {
114
+ 'aria-hidden': true,
115
+ focusable: false, // See: https://allyjs.io/tutorials/focusing-in-svg.html#making-svg-elements-focusable
116
+ })}
117
+ </IconButtonWrapper>
118
+ );
101
119
  }
102
- };
103
120
 
104
- if (!label) {
105
121
  return (
106
- <IconButtonWrapper {...props} ref={ref} noBorder={noBorder} onClick={handleClick} aria-disabled={disabled}>
107
- {icon}
108
- </IconButtonWrapper>
122
+ <Tooltip label={label}>
123
+ <IconButtonWrapper {...restProps} ref={ref} noBorder={noBorder} onClick={handleClick} aria-disabled={disabled}>
124
+ <VisuallyHidden as="span">{label}</VisuallyHidden>
125
+ {cloneElement(children ?? icon, {
126
+ 'aria-hidden': true,
127
+ focusable: false, // See: https://allyjs.io/tutorials/focusing-in-svg.html#making-svg-elements-focusable
128
+ })}
129
+ </IconButtonWrapper>
130
+ </Tooltip>
109
131
  );
110
- }
111
-
112
- return (
113
- <Tooltip label={label}>
114
- <IconButtonWrapper {...props} ref={ref} noBorder={noBorder} onClick={handleClick} aria-disabled={disabled}>
115
- {icon}
116
- </IconButtonWrapper>
117
- </Tooltip>
118
- );
119
- });
132
+ },
133
+ );
120
134
 
121
135
  IconButton.displayName = 'IconButton';
122
136
 
@@ -126,10 +140,36 @@ IconButton.defaultProps = {
126
140
  disabled: false,
127
141
  onClick: undefined,
128
142
  };
143
+
144
+ /**
145
+ * @type {(otherProps: string[]) => (props: Record<string, unknown>, propName: string) => Error | undefined}
146
+ */
147
+ const throwPropErrorIfNoneAreDefined = (otherProps, propType) => (props, propName) => {
148
+ if (!props[propName] && otherProps.every((otherProp) => !props[otherProp])) {
149
+ return new Error(`One of the following props is required: ${propName}, ${otherProps.join(', ')}`);
150
+ }
151
+
152
+ PropTypes.checkPropTypes({ [propName]: PropTypes[propType] }, props, 'prop', 'IconButton');
153
+ };
154
+
129
155
  IconButton.propTypes = {
156
+ /**
157
+ * `PropTypes.string` – must be defined if `label` is not defined.
158
+ */
159
+ ['aria-label']: throwPropErrorIfNoneAreDefined(['label'], 'string'),
160
+ /**
161
+ * `PropTypes.node` – must be defined if `icon` is not defined.
162
+ */
163
+ children: throwPropErrorIfNoneAreDefined(['icon'], 'node'),
130
164
  disabled: PropTypes.bool,
131
- icon: PropTypes.element.isRequired,
132
- label: PropTypes.string,
165
+ /**
166
+ * `PropTypes.node` – must be defined if `children` is not defined.
167
+ */
168
+ icon: throwPropErrorIfNoneAreDefined(['children'], 'node'),
169
+ /**
170
+ * `PropTypes.string` – must be defined if `aria-label` is not defined.
171
+ */
172
+ label: throwPropErrorIfNoneAreDefined(['aria-label'], 'string'),
133
173
  noBorder: PropTypes.bool,
134
174
  onClick: PropTypes.func,
135
175
  };
@@ -2,13 +2,17 @@
2
2
 
3
3
  import { Meta, Story, Canvas } from '@storybook/addon-docs';
4
4
  import { ArgsTable } from '@storybook/addon-docs';
5
+ import { useState } from 'react';
6
+
5
7
  import Pencil from '@strapi/icons/Pencil';
6
8
  import Play from '@strapi/icons/Play';
7
9
  import Trash from '@strapi/icons/Trash';
8
10
  import Plus from '@strapi/icons/Plus';
11
+
9
12
  import { IconButton, IconButtonGroup } from './IconButton';
10
13
  import { Box } from '../Box';
11
14
  import { Flex } from '../Flex';
15
+ import { Typography } from '../Typography';
12
16
 
13
17
  <Meta title="Design System/Components/IconButton" component={IconButton} />
14
18
 
@@ -38,14 +42,22 @@ Icon Buttons are used to perform actions within a page, a table or another objec
38
42
 
39
43
  <Canvas>
40
44
  <Story name="base">
41
- <Box padding={7}>
42
- <Flex>
43
- <IconButton onClick={() => console.log('edit')} label="Edit" icon={<Pencil />} />
44
- <IconButton onClick={() => console.log('Create')} label="Create" icon={<Plus />} />
45
- <IconButton onClick={() => console.log('Delete')} label="Delete" icon={<Trash />} />
46
- <IconButton onClick={() => console.log('Publish')} label="Publish" icon={<Play />} />
47
- </Flex>
48
- </Box>
45
+ {() => {
46
+ const [currentAction, setCurrentAction] = useState('None Selected');
47
+ return (
48
+ <Box padding={7}>
49
+ <Box paddingBottom={3}>
50
+ <Typography>{currentAction}</Typography>
51
+ </Box>
52
+ <Flex>
53
+ <IconButton onClick={() => setCurrentAction('edit')} label="Edit" icon={<Pencil />} />
54
+ <IconButton onClick={() => setCurrentAction('Create')} label="Create" icon={<Plus />} />
55
+ <IconButton onClick={() => setCurrentAction('Delete')} label="Delete" icon={<Trash />} />
56
+ <IconButton onClick={() => setCurrentAction('Publish')} label="Publish" icon={<Play />} />
57
+ </Flex>
58
+ </Box>
59
+ );
60
+ }}
49
61
  </Story>
50
62
  </Canvas>
51
63
 
@@ -55,14 +67,22 @@ Depending on the status of an action or the permissions, an IconButton can be un
55
67
 
56
68
  <Canvas>
57
69
  <Story name="disabled">
58
- <Box padding={7}>
59
- <Flex>
60
- <IconButton disabled onClick={() => console.log('edit')} label="Edit" icon={<Pencil />} />
61
- <IconButton disabled onClick={() => console.log('Create')} label="Create" icon={<Plus />} />
62
- <IconButton disabled onClick={() => console.log('Delete')} label="Delete" icon={<Trash />} />
63
- <IconButton disabled onClick={() => console.log('Publish')} label="Publish" icon={<Play />} />
64
- </Flex>
65
- </Box>
70
+ {() => {
71
+ const [currentAction, setCurrentAction] = useState('None Selected');
72
+ return (
73
+ <Box padding={7}>
74
+ <Box paddingBottom={3}>
75
+ <Typography>{currentAction}</Typography>
76
+ </Box>
77
+ <Flex>
78
+ <IconButton disabled onClick={() => setCurrentAction('edit')} label="Edit" icon={<Pencil />} />
79
+ <IconButton disabled onClick={() => setCurrentAction('Create')} label="Create" icon={<Plus />} />
80
+ <IconButton disabled onClick={() => setCurrentAction('Delete')} label="Delete" icon={<Trash />} />
81
+ <IconButton disabled onClick={() => setCurrentAction('Publish')} label="Publish" icon={<Play />} />
82
+ </Flex>
83
+ </Box>
84
+ );
85
+ }}
66
86
  </Story>
67
87
  </Canvas>
68
88
 
@@ -95,6 +115,39 @@ IconButtons can be used within another component is a Group shape.
95
115
  </Story>
96
116
  </Canvas>
97
117
 
118
+ ### Icons as Children & aria-label
119
+
120
+ IconButtons can take Icons as their children and can be fully accessible without a tooltip.
121
+
122
+ <Canvas>
123
+ <Story name="children">
124
+ {() => {
125
+ const [currentAction, setCurrentAction] = useState('None Selected');
126
+ return (
127
+ <Box padding={7}>
128
+ <Box paddingBottom={3}>
129
+ <Typography>{currentAction}</Typography>
130
+ </Box>
131
+ <Flex>
132
+ <IconButton onClick={() => setCurrentAction('Edit')} aria-label={'Edit'}>
133
+ <Pencil />
134
+ </IconButton>
135
+ <IconButton onClick={() => setCurrentAction('Create')} aria-label="Create">
136
+ <Plus />
137
+ </IconButton>
138
+ <IconButton onClick={() => setCurrentAction('Delete')} aria-label="Delete">
139
+ <Trash />
140
+ </IconButton>
141
+ <IconButton onClick={() => setCurrentAction('Publish')} aria-label="Publish">
142
+ <Play />
143
+ </IconButton>
144
+ </Flex>
145
+ </Box>
146
+ );
147
+ }}
148
+ </Story>
149
+ </Canvas>
150
+
98
151
  ## Props
99
152
 
100
153
  <ArgsTable of={IconButton} />
@@ -506,12 +506,18 @@ describe('ModalLayout', () => {
506
506
  Modal Title
507
507
  <button
508
508
  aria-disabled="false"
509
- aria-label="Close the modal"
510
509
  class="c8 c9"
511
510
  type="button"
512
511
  >
512
+ <span
513
+ class="c0"
514
+ >
515
+ Close the modal
516
+ </span>
513
517
  <svg
518
+ aria-hidden="true"
514
519
  fill="none"
520
+ focusable="false"
515
521
  height="1em"
516
522
  viewBox="0 0 24 24"
517
523
  width="1em"
@@ -1,6 +1,5 @@
1
1
  import { useLayoutEffect, useRef, useState } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
- import PropTypes from 'prop-types';
4
3
 
5
4
  export const Portal = ({ children }) => {
6
5
  const rootRef = useRef(null);
@@ -24,7 +23,3 @@ export const Portal = ({ children }) => {
24
23
 
25
24
  return createPortal(children, rootRef.current);
26
25
  };
27
-
28
- Portal.propTypes = {
29
- children: PropTypes.node.isRequired,
30
- };
@@ -49,20 +49,25 @@ Use a Status sparingly within forms to give an important visual indication. Stat
49
49
  </Story>
50
50
  </Canvas>
51
51
 
52
-
53
52
  ### Size
54
53
 
55
54
  <Canvas>
56
55
  <Story name="size S">
57
56
  <Stack spacing={3}>
58
57
  <Status variant="success" size="S" showBullet={false}>
59
- <Typography fontWeight="bold" textColor="success700">Published</Typography>
58
+ <Typography fontWeight="bold" textColor="success700">
59
+ Published
60
+ </Typography>
60
61
  </Status>
61
62
  <Status variant="secondary" size="S" showBullet={false}>
62
- <Typography fontWeight="bold" textColor="secondary700">Draft</Typography>
63
+ <Typography fontWeight="bold" textColor="secondary700">
64
+ Draft
65
+ </Typography>
63
66
  </Status>
64
67
  <Status variant="alternative" size="S" showBullet={false}>
65
- <Typography fontWeight="bold" textColor="alternative700">Updated</Typography>
68
+ <Typography fontWeight="bold" textColor="alternative700">
69
+ Updated
70
+ </Typography>
66
71
  </Status>
67
72
  </Stack>
68
73
  </Story>