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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. package/Accordion.development.js +775 -0
  2. package/Accordion.js +9 -0
  3. package/Accordion.production.js +1 -0
  4. package/Alert.development.js +562 -0
  5. package/Alert.js +9 -0
  6. package/Alert.production.js +1 -0
  7. package/Avatar.development.js +485 -0
  8. package/Avatar.js +9 -0
  9. package/Avatar.production.js +1 -0
  10. package/Badge.development.js +494 -0
  11. package/Badge.js +9 -0
  12. package/Badge.production.js +1 -0
  13. package/BaseButton.development.js +285 -0
  14. package/BaseButton.js +9 -0
  15. package/BaseButton.production.js +1 -0
  16. package/BaseCheckbox.development.js +434 -0
  17. package/BaseCheckbox.js +9 -0
  18. package/BaseCheckbox.production.js +1 -0
  19. package/BaseLink.development.js +273 -0
  20. package/BaseLink.js +9 -0
  21. package/BaseLink.production.js +1 -0
  22. package/BaseRadio.development.js +321 -0
  23. package/BaseRadio.js +9 -0
  24. package/BaseRadio.production.js +1 -0
  25. package/Box.development.js +341 -0
  26. package/Box.js +9 -0
  27. package/Box.production.js +1 -0
  28. package/Breadcrumbs.development.js +518 -0
  29. package/Breadcrumbs.js +9 -0
  30. package/Breadcrumbs.production.js +1 -0
  31. package/Button.development.js +573 -0
  32. package/Button.js +9 -0
  33. package/Button.production.js +1 -0
  34. package/Card.development.js +746 -0
  35. package/Card.js +9 -0
  36. package/Card.production.js +1 -0
  37. package/CarouselInput.development.js +898 -0
  38. package/CarouselInput.js +9 -0
  39. package/CarouselInput.production.js +1 -0
  40. package/Checkbox.development.js +722 -0
  41. package/Checkbox.js +9 -0
  42. package/Checkbox.production.js +1 -0
  43. package/Combobox.development.js +934 -0
  44. package/Combobox.js +9 -0
  45. package/Combobox.production.js +1 -0
  46. package/DatePicker.development.js +1323 -0
  47. package/DatePicker.js +9 -0
  48. package/DatePicker.production.js +1 -0
  49. package/DateTimePicker.development.js +1622 -0
  50. package/DateTimePicker.js +9 -0
  51. package/DateTimePicker.production.js +1 -0
  52. package/Dialog.development.js +741 -0
  53. package/Dialog.js +9 -0
  54. package/Dialog.production.js +1 -0
  55. package/DismissibleLayer.development.js +218 -0
  56. package/DismissibleLayer.js +9 -0
  57. package/DismissibleLayer.production.js +1 -0
  58. package/Divider.development.js +398 -0
  59. package/Divider.js +9 -0
  60. package/Divider.production.js +1 -0
  61. package/EmptyStateLayout.development.js +425 -0
  62. package/EmptyStateLayout.js +9 -0
  63. package/EmptyStateLayout.production.js +1 -0
  64. package/Field.development.js +614 -0
  65. package/Field.js +9 -0
  66. package/Field.production.js +1 -0
  67. package/Flex.development.js +377 -0
  68. package/Flex.js +9 -0
  69. package/Flex.production.js +1 -0
  70. package/FocusTrap.development.js +341 -0
  71. package/FocusTrap.js +9 -0
  72. package/FocusTrap.production.js +1 -0
  73. package/Grid.development.js +422 -0
  74. package/Grid.js +9 -0
  75. package/Grid.production.js +1 -0
  76. package/Icon.development.js +376 -0
  77. package/Icon.js +9 -0
  78. package/Icon.production.js +1 -0
  79. package/IconButton.development.js +684 -0
  80. package/IconButton.js +9 -0
  81. package/IconButton.production.js +1 -0
  82. package/KeyboardNavigable.development.js +454 -0
  83. package/KeyboardNavigable.js +9 -0
  84. package/KeyboardNavigable.production.js +1 -0
  85. package/Layout.development.js +626 -0
  86. package/Layout.js +9 -0
  87. package/Layout.production.js +1 -0
  88. package/Link.development.js +492 -0
  89. package/Link.js +9 -0
  90. package/Link.production.js +1 -0
  91. package/LinkButton.development.js +573 -0
  92. package/LinkButton.js +9 -0
  93. package/LinkButton.production.js +1 -0
  94. package/LiveRegions.development.js +147 -0
  95. package/LiveRegions.js +9 -0
  96. package/LiveRegions.production.js +1 -0
  97. package/Loader.development.js +309 -0
  98. package/Loader.js +9 -0
  99. package/Loader.production.js +1 -0
  100. package/Main.development.js +410 -0
  101. package/Main.js +9 -0
  102. package/Main.production.js +1 -0
  103. package/MainNav.development.js +957 -0
  104. package/MainNav.js +9 -0
  105. package/MainNav.production.js +1 -0
  106. package/ModalLayout.development.js +895 -0
  107. package/ModalLayout.js +9 -0
  108. package/ModalLayout.production.js +1 -0
  109. package/NumberInput.development.js +733 -0
  110. package/NumberInput.js +9 -0
  111. package/NumberInput.production.js +1 -0
  112. package/Pagination.development.js +587 -0
  113. package/Pagination.js +9 -0
  114. package/Pagination.production.js +1 -0
  115. package/Popover.development.js +481 -0
  116. package/Popover.js +9 -0
  117. package/Popover.production.js +1 -0
  118. package/Portal.development.js +212 -0
  119. package/Portal.js +9 -0
  120. package/Portal.production.js +1 -0
  121. package/ProgressBar.development.js +273 -0
  122. package/ProgressBar.js +9 -0
  123. package/ProgressBar.production.js +1 -0
  124. package/Radio.development.js +518 -0
  125. package/Radio.js +9 -0
  126. package/Radio.production.js +1 -0
  127. package/RawTable.development.js +549 -0
  128. package/RawTable.js +9 -0
  129. package/RawTable.production.js +1 -0
  130. package/Searchbar.development.js +696 -0
  131. package/Searchbar.js +9 -0
  132. package/Searchbar.production.js +1 -0
  133. package/Select.development.js +1063 -0
  134. package/Select.js +9 -0
  135. package/Select.production.js +1 -0
  136. package/SimpleMenu.development.js +821 -0
  137. package/SimpleMenu.js +9 -0
  138. package/SimpleMenu.production.js +1 -0
  139. package/Stack.development.js +434 -0
  140. package/Stack.js +9 -0
  141. package/Stack.production.js +1 -0
  142. package/Status.development.js +494 -0
  143. package/Status.js +9 -0
  144. package/Status.production.js +1 -0
  145. package/SubNav.development.js +1123 -0
  146. package/SubNav.js +9 -0
  147. package/SubNav.production.js +1 -0
  148. package/Switch.development.js +434 -0
  149. package/Switch.js +9 -0
  150. package/Switch.production.js +1 -0
  151. package/Table.development.js +741 -0
  152. package/Table.js +9 -0
  153. package/Table.production.js +1 -0
  154. package/Tabs.development.js +590 -0
  155. package/Tabs.js +9 -0
  156. package/Tabs.production.js +1 -0
  157. package/Tag.development.js +494 -0
  158. package/Tag.js +9 -0
  159. package/Tag.production.js +1 -0
  160. package/TextButton.development.js +517 -0
  161. package/TextButton.js +9 -0
  162. package/TextButton.production.js +1 -0
  163. package/TextInput.development.js +662 -0
  164. package/TextInput.js +9 -0
  165. package/TextInput.production.js +1 -0
  166. package/Textarea.development.js +674 -0
  167. package/Textarea.js +9 -0
  168. package/Textarea.production.js +1 -0
  169. package/ThemeProvider.development.js +300 -0
  170. package/ThemeProvider.js +9 -0
  171. package/ThemeProvider.production.js +1 -0
  172. package/TimePicker.development.js +1098 -0
  173. package/TimePicker.js +9 -0
  174. package/TimePicker.production.js +1 -0
  175. package/ToggleCheckbox.development.js +542 -0
  176. package/ToggleCheckbox.js +9 -0
  177. package/ToggleCheckbox.production.js +1 -0
  178. package/ToggleInput.development.js +745 -0
  179. package/ToggleInput.js +9 -0
  180. package/ToggleInput.production.js +1 -0
  181. package/Tooltip.development.js +588 -0
  182. package/Tooltip.js +9 -0
  183. package/Tooltip.production.js +1 -0
  184. package/Typography.development.js +276 -0
  185. package/Typography.js +9 -0
  186. package/Typography.production.js +1 -0
  187. package/VisuallyHidden.development.js +146 -0
  188. package/VisuallyHidden.js +9 -0
  189. package/VisuallyHidden.production.js +1 -0
  190. package/index.development.js +4338 -0
  191. package/index.js +9 -0
  192. package/index.production.js +1 -0
  193. package/package.json +2 -2
  194. package/themes.development.js +254 -0
  195. package/themes.js +9 -0
  196. package/themes.production.js +1 -0
  197. package/v2/Breadcrumbs.development.js +906 -0
  198. package/v2/Breadcrumbs.js +9 -0
  199. package/v2/Breadcrumbs.production.js +1 -0
  200. package/v2/Link.development.js +505 -0
  201. package/v2/Link.js +9 -0
  202. package/v2/Link.production.js +1 -0
  203. package/v2/LinkButton.development.js +586 -0
  204. package/v2/LinkButton.js +9 -0
  205. package/v2/LinkButton.production.js +1 -0
  206. package/v2/MainNav.development.js +970 -0
  207. package/v2/MainNav.js +9 -0
  208. package/v2/MainNav.production.js +1 -0
  209. package/v2/Pagination.development.js +600 -0
  210. package/v2/Pagination.js +9 -0
  211. package/v2/Pagination.production.js +1 -0
  212. package/v2/SimpleMenu.development.js +834 -0
  213. package/v2/SimpleMenu.js +9 -0
  214. package/v2/SimpleMenu.production.js +1 -0
  215. package/v2/SubNav.development.js +1136 -0
  216. package/v2/SubNav.js +9 -0
  217. package/v2/SubNav.production.js +1 -0
  218. package/v2/index.development.js +1740 -0
  219. package/v2/index.js +9 -0
  220. package/v2/index.production.js +1 -0
  221. package/v2/package.json +81 -0
  222. package/.eslintignore +0 -3
  223. package/.eslintrc.js +0 -38
  224. package/.prettierrc.js +0 -7
  225. package/.storybook/components/Theme.js +0 -28
  226. package/.storybook/main.js +0 -13
  227. package/.storybook/manager.js +0 -12
  228. package/.storybook/preview.js +0 -42
  229. package/.storybook/utils/createCustomTheme.js +0 -26
  230. package/LICENSE +0 -20
  231. package/__mocks__/fileMock.js +0 -1
  232. package/__mocks__/styleMock.js +0 -1
  233. package/babel.config.js +0 -5
  234. package/createIndexFiles.js +0 -34
  235. package/global-setup.js +0 -4
  236. package/jest.config.js +0 -17
  237. package/playwright.config.js +0 -39
  238. package/src/Accordion/Accordion.js +0 -148
  239. package/src/Accordion/Accordion.stories.mdx +0 -327
  240. package/src/Accordion/AccordionContent.js +0 -26
  241. package/src/Accordion/AccordionContext.js +0 -5
  242. package/src/Accordion/AccordionGroup.js +0 -114
  243. package/src/Accordion/AccordionToggle.js +0 -192
  244. package/src/Accordion/__tests__/Accordion.e2e.js +0 -32
  245. package/src/Accordion/__tests__/AccordionKeyboard.e2e.js +0 -73
  246. package/src/Accordion/index.js +0 -4
  247. package/src/Accordion/utils.js +0 -15
  248. package/src/Alert/Alert.js +0 -144
  249. package/src/Alert/Alert.stories.mdx +0 -135
  250. package/src/Alert/__tests__/Alert.e2e.js +0 -39
  251. package/src/Alert/index.js +0 -1
  252. package/src/Alert/utils.js +0 -35
  253. package/src/Avatar/Avatar.js +0 -110
  254. package/src/Avatar/Avatar.stories.mdx +0 -67
  255. package/src/Avatar/AvatarGroup.js +0 -9
  256. package/src/Avatar/__tests__/Avatar.e2e.js +0 -23
  257. package/src/Avatar/__tests__/Avatar.spec.js +0 -153
  258. package/src/Avatar/constants.js +0 -2
  259. package/src/Avatar/index.js +0 -2
  260. package/src/Badge/Badge.js +0 -41
  261. package/src/Badge/Badge.stories.mdx +0 -57
  262. package/src/Badge/__tests__/Badge.e2e.js +0 -23
  263. package/src/Badge/index.js +0 -1
  264. package/src/BaseButton/BaseButton.js +0 -46
  265. package/src/BaseButton/BaseButton.stories.mdx +0 -32
  266. package/src/BaseButton/__tests__/BaseButton.e2e.js +0 -23
  267. package/src/BaseButton/index.js +0 -1
  268. package/src/BaseCheckbox/BaseCheckbox.js +0 -133
  269. package/src/BaseCheckbox/BaseCheckbox.stories.mdx +0 -107
  270. package/src/BaseCheckbox/__tests__/BaseCheckbox.e2e.js +0 -94
  271. package/src/BaseCheckbox/assets/checkmark-black.svg +0 -6
  272. package/src/BaseCheckbox/assets/checkmark.svg +0 -6
  273. package/src/BaseCheckbox/index.js +0 -1
  274. package/src/BaseCheckbox/utils.js +0 -7
  275. package/src/BaseLink/BaseLink.js +0 -38
  276. package/src/BaseLink/BaseLink.stories.mdx +0 -34
  277. package/src/BaseLink/__tests__/BaseLink.e2e.js +0 -23
  278. package/src/BaseLink/__tests__/BaseLink.spec.js +0 -26
  279. package/src/BaseLink/index.js +0 -1
  280. package/src/BaseRadio/BaseRadio.js +0 -69
  281. package/src/BaseRadio/BaseRadio.stories.mdx +0 -110
  282. package/src/BaseRadio/RadioGroup.js +0 -36
  283. package/src/BaseRadio/__tests__/BaseRadio.e2e.js +0 -90
  284. package/src/BaseRadio/context.js +0 -3
  285. package/src/BaseRadio/index.js +0 -2
  286. package/src/BaseRadio/utils.js +0 -30
  287. package/src/Box/Box.js +0 -104
  288. package/src/Box/Box.stories.mdx +0 -57
  289. package/src/Box/BoxProps.js +0 -99
  290. package/src/Box/__tests__/Box.e2e.js +0 -23
  291. package/src/Box/__tests__/Box.spec.js +0 -36
  292. package/src/Box/index.js +0 -1
  293. package/src/Breadcrumbs/Breadcrumbs.js +0 -58
  294. package/src/Breadcrumbs/Breadcrumbs.stories.mdx +0 -47
  295. package/src/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -23
  296. package/src/Breadcrumbs/index.js +0 -1
  297. package/src/Button/Button.js +0 -138
  298. package/src/Button/Button.stories.mdx +0 -216
  299. package/src/Button/__tests__/Button.e2e.js +0 -89
  300. package/src/Button/__tests__/utils.spec.js +0 -19
  301. package/src/Button/constants.js +0 -12
  302. package/src/Button/index.js +0 -1
  303. package/src/Button/utils.js +0 -170
  304. package/src/Card/Card.js +0 -35
  305. package/src/Card/Card.stories.mdx +0 -202
  306. package/src/Card/CardAction.js +0 -13
  307. package/src/Card/CardAsset.js +0 -49
  308. package/src/Card/CardBadge.js +0 -18
  309. package/src/Card/CardBody.js +0 -11
  310. package/src/Card/CardCheckbox.js +0 -14
  311. package/src/Card/CardContent.js +0 -16
  312. package/src/Card/CardContext.js +0 -5
  313. package/src/Card/CardHeader.js +0 -12
  314. package/src/Card/CardTimer.js +0 -23
  315. package/src/Card/CardTitle.js +0 -12
  316. package/src/Card/__tests__/Card.e2e.js +0 -164
  317. package/src/Card/index.js +0 -10
  318. package/src/Card/story-assets/first.jpg +0 -0
  319. package/src/CarouselInput/Carousel.js +0 -138
  320. package/src/CarouselInput/Carousel.stories.mdx +0 -149
  321. package/src/CarouselInput/CarouselActions.js +0 -6
  322. package/src/CarouselInput/CarouselImage.js +0 -39
  323. package/src/CarouselInput/CarouselInput.js +0 -80
  324. package/src/CarouselInput/CarouselSlide.js +0 -32
  325. package/src/CarouselInput/__tests__/CarouselImage.e2e.js +0 -15
  326. package/src/CarouselInput/__tests__/CarouselInput.e2e.js +0 -48
  327. package/src/CarouselInput/index.js +0 -5
  328. package/src/CarouselInput/story-assets/first.jpg +0 -0
  329. package/src/Checkbox/Checkbox.js +0 -63
  330. package/src/Checkbox/Checkbox.stories.mdx +0 -190
  331. package/src/Checkbox/__tests__/Checkbox.e2e.js +0 -96
  332. package/src/Checkbox/index.js +0 -1
  333. package/src/Combobox/Combobox.js +0 -421
  334. package/src/Combobox/Combobox.stories.mdx +0 -191
  335. package/src/Combobox/ComboboxList.js +0 -22
  336. package/src/Combobox/ComboboxOption.js +0 -36
  337. package/src/Combobox/__tests__/Combobox.e2e.js +0 -133
  338. package/src/Combobox/__tests__/utils.spec.js +0 -94
  339. package/src/Combobox/components.js +0 -69
  340. package/src/Combobox/index.js +0 -2
  341. package/src/Combobox/utils.js +0 -97
  342. package/src/DatePicker/DatePicker.js +0 -132
  343. package/src/DatePicker/DatePicker.stories.mdx +0 -172
  344. package/src/DatePicker/DatePickerCalendar.js +0 -134
  345. package/src/DatePicker/DatePickerTd.js +0 -51
  346. package/src/DatePicker/DatePickerTh.js +0 -39
  347. package/src/DatePicker/__tests__/DatePicker.e2e.js +0 -94
  348. package/src/DatePicker/__tests__/DatePicker.spec.js +0 -40
  349. package/src/DatePicker/compareDates.js +0 -9
  350. package/src/DatePicker/components.js +0 -45
  351. package/src/DatePicker/index.js +0 -1
  352. package/src/DatePicker/utils/formatDate.js +0 -5
  353. package/src/DatePicker/utils/generateWeeks.js +0 -58
  354. package/src/DatePicker/utils/getDayOfWeek.js +0 -24
  355. package/src/DatePicker/utils/getMonths.js +0 -10
  356. package/src/DatePicker/utils/getYears.js +0 -19
  357. package/src/DatePicker/utils/index.js +0 -5
  358. package/src/DatePicker/utils/tests/generateWeeks.spec.js +0 -136
  359. package/src/DatePicker/utils/tests/getMonths.spec.js +0 -21
  360. package/src/DatePicker/utils/tests/getYears.spec.js +0 -21
  361. package/src/DateTimePicker/DateTimePicker.js +0 -151
  362. package/src/DateTimePicker/DateTimePicker.stories.mdx +0 -114
  363. package/src/DateTimePicker/DateTimePickerProps.js +0 -85
  364. package/src/DateTimePicker/__tests__/DateTimePicker.e2e.js +0 -103
  365. package/src/DateTimePicker/__tests__/DateTimePicker.spec.js +0 -89
  366. package/src/DateTimePicker/__tests__/__snapshots__/DateTimePicker.spec.js.snap +0 -448
  367. package/src/DateTimePicker/__tests__/parseDate.test.js +0 -10
  368. package/src/DateTimePicker/index.js +0 -1
  369. package/src/DateTimePicker/parseDate.js +0 -11
  370. package/src/Dialog/Dialog.js +0 -86
  371. package/src/Dialog/Dialog.stories.mdx +0 -78
  372. package/src/Dialog/DialogBody.js +0 -36
  373. package/src/Dialog/DialogFooter.js +0 -38
  374. package/src/Dialog/__tests__/Dialog.e2e.js +0 -20
  375. package/src/Dialog/__tests__/Dialog.spec.js +0 -28
  376. package/src/Dialog/index.js +0 -3
  377. package/src/DismissibleLayer/DismissibleLayer.js +0 -87
  378. package/src/DismissibleLayer/DismissibleLayer.stories.mdx +0 -50
  379. package/src/DismissibleLayer/__test__/DimissibleLayer.spec.js +0 -44
  380. package/src/DismissibleLayer/index.js +0 -1
  381. package/src/Divider/Divider.js +0 -26
  382. package/src/Divider/Divider.stories.mdx +0 -55
  383. package/src/Divider/__tests__/Divider.e2e.js +0 -23
  384. package/src/Divider/index.js +0 -1
  385. package/src/EmptyStateLayout/EmptyStateLayout.js +0 -48
  386. package/src/EmptyStateLayout/EmptyStateLayout.stories.mdx +0 -87
  387. package/src/EmptyStateLayout/__tests__/EmptyStateLayout.e2e.js +0 -31
  388. package/src/EmptyStateLayout/index.js +0 -1
  389. package/src/EmptyStateLayout/story-assets/Illo.js +0 -51
  390. package/src/Field/Field.js +0 -29
  391. package/src/Field/Field.stories.mdx +0 -237
  392. package/src/Field/FieldAction.js +0 -25
  393. package/src/Field/FieldContext.js +0 -4
  394. package/src/Field/FieldError.js +0 -17
  395. package/src/Field/FieldHint.js +0 -17
  396. package/src/Field/FieldInput.js +0 -129
  397. package/src/Field/FieldLabel.js +0 -50
  398. package/src/Field/__tests__/Field.e2e.js +0 -61
  399. package/src/Field/index.js +0 -7
  400. package/src/Flex/Flex.js +0 -26
  401. package/src/Flex/Flex.stories.mdx +0 -45
  402. package/src/Flex/FlexProps.js +0 -41
  403. package/src/Flex/__tests__/Flex.e2e.js +0 -23
  404. package/src/Flex/index.js +0 -1
  405. package/src/FocusTrap/ExampleComponent.js +0 -71
  406. package/src/FocusTrap/FocusTrap.js +0 -83
  407. package/src/FocusTrap/FocusTrap.stories.mdx +0 -32
  408. package/src/FocusTrap/__tests__/FocusTrap.e2e.js +0 -126
  409. package/src/FocusTrap/index.js +0 -1
  410. package/src/Grid/Grid.js +0 -30
  411. package/src/Grid/Grid.stories.mdx +0 -112
  412. package/src/Grid/GridContext.js +0 -5
  413. package/src/Grid/GridItem.js +0 -40
  414. package/src/Grid/__tests__/Grid.e2e.js +0 -23
  415. package/src/Grid/index.js +0 -2
  416. package/src/Icon/Icon.js +0 -27
  417. package/src/Icon/Icon.stories.mdx +0 -41
  418. package/src/Icon/__tests__/Icon.e2e.js +0 -21
  419. package/src/Icon/index.js +0 -1
  420. package/src/IconButton/IconButton.js +0 -175
  421. package/src/IconButton/IconButton.stories.mdx +0 -153
  422. package/src/IconButton/__tests__/IconButton.e2e.js +0 -57
  423. package/src/IconButton/index.js +0 -1
  424. package/src/KeyboardNavigable/KeyboardNavigable.js +0 -96
  425. package/src/KeyboardNavigable/index.js +0 -1
  426. package/src/Layout/ActionLayout.js +0 -40
  427. package/src/Layout/ContentLayout.js +0 -15
  428. package/src/Layout/GridLayout.js +0 -12
  429. package/src/Layout/GridLayout.stories.mdx +0 -36
  430. package/src/Layout/HeaderLayout.js +0 -170
  431. package/src/Layout/HeaderLayout.stories.mdx +0 -175
  432. package/src/Layout/Layout.js +0 -31
  433. package/src/Layout/Layout.stories.mdx +0 -240
  434. package/src/Layout/TwoColsLayout.js +0 -26
  435. package/src/Layout/TwoColsLayout.stories.mdx +0 -46
  436. package/src/Layout/__tests__/GridLayout.e2e.js +0 -23
  437. package/src/Layout/__tests__/HeaderLayout.e2e.js +0 -83
  438. package/src/Layout/__tests__/Layout.e2e.js +0 -23
  439. package/src/Layout/__tests__/TwoColsLayout.e2e.js +0 -23
  440. package/src/Layout/index.js +0 -6
  441. package/src/Link/Link.js +0 -105
  442. package/src/Link/Link.stories.mdx +0 -57
  443. package/src/Link/__tests__/Link.e2e.js +0 -23
  444. package/src/Link/index.js +0 -1
  445. package/src/LinkButton/LinkButton.js +0 -113
  446. package/src/LinkButton/LinkButton.stories.mdx +0 -153
  447. package/src/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  448. package/src/LinkButton/index.js +0 -1
  449. package/src/LiveRegions/LiveRegions.js +0 -13
  450. package/src/LiveRegions/LiveRegions.stories.mdx +0 -76
  451. package/src/LiveRegions/StoryComponent.js +0 -26
  452. package/src/LiveRegions/__tests__/LiveRegions.spec.js +0 -200
  453. package/src/LiveRegions/constants.js +0 -5
  454. package/src/LiveRegions/index.js +0 -1
  455. package/src/LiveRegions/useNotifyAT.js +0 -39
  456. package/src/Loader/Loader.js +0 -40
  457. package/src/Loader/Loader.stories.mdx +0 -48
  458. package/src/Loader/__tests__/Loader.e2e.js +0 -23
  459. package/src/Loader/assets/loader.svg +0 -3
  460. package/src/Loader/index.js +0 -1
  461. package/src/Main/Main.js +0 -24
  462. package/src/Main/SkipToContent.js +0 -29
  463. package/src/Main/index.js +0 -2
  464. package/src/MainNav/MainNav.js +0 -31
  465. package/src/MainNav/MainNav.stories.mdx +0 -197
  466. package/src/MainNav/MainNavContext.js +0 -5
  467. package/src/MainNav/NavBrand.js +0 -76
  468. package/src/MainNav/NavCondense.js +0 -44
  469. package/src/MainNav/NavLink.js +0 -143
  470. package/src/MainNav/NavSection.js +0 -53
  471. package/src/MainNav/NavSections.js +0 -20
  472. package/src/MainNav/NavUser.js +0 -53
  473. package/src/MainNav/__tests__/MainNav.e2e.js +0 -23
  474. package/src/MainNav/index.js +0 -7
  475. package/src/MainNav/strapi-img.png +0 -0
  476. package/src/ModalLayout/ModalBody.js +0 -12
  477. package/src/ModalLayout/ModalContext.js +0 -4
  478. package/src/ModalLayout/ModalFooter.js +0 -37
  479. package/src/ModalLayout/ModalHeader.js +0 -35
  480. package/src/ModalLayout/ModalLayout.js +0 -58
  481. package/src/ModalLayout/ModalLayout.stories.mdx +0 -100
  482. package/src/ModalLayout/__tests__/ModalLayout.e2e.js +0 -19
  483. package/src/ModalLayout/__tests__/ModalLayout.spec.js +0 -596
  484. package/src/ModalLayout/index.js +0 -4
  485. package/src/NumberInput/NumberInput.js +0 -253
  486. package/src/NumberInput/NumberInput.stories.mdx +0 -319
  487. package/src/NumberInput/__tests__/NumberInput.e2e.js +0 -194
  488. package/src/NumberInput/index.js +0 -1
  489. package/src/Pagination/Pagination.js +0 -37
  490. package/src/Pagination/Pagination.stories.mdx +0 -97
  491. package/src/Pagination/PaginationContext.js +0 -4
  492. package/src/Pagination/__tests__/Pagination.e2e.js +0 -23
  493. package/src/Pagination/assets/next.svg +0 -3
  494. package/src/Pagination/assets/previous.svg +0 -3
  495. package/src/Pagination/components.js +0 -147
  496. package/src/Pagination/index.js +0 -2
  497. package/src/Popover/Popover.js +0 -167
  498. package/src/Popover/Popover.stories.mdx +0 -167
  499. package/src/Popover/__tests__/Popover.e2e.js +0 -48
  500. package/src/Popover/__tests__/Popover.spec.js +0 -153
  501. package/src/Popover/index.js +0 -1
  502. package/src/Portal/Portal.js +0 -25
  503. package/src/Portal/Portal.stories.mdx +0 -33
  504. package/src/Portal/__tests__/Portal.e2e.js +0 -23
  505. package/src/Portal/index.js +0 -1
  506. package/src/ProgressBar/ProgressBar.js +0 -57
  507. package/src/ProgressBar/ProgressBar.stories.mdx +0 -47
  508. package/src/ProgressBar/__tests__/ProgressBar.e2e.js +0 -41
  509. package/src/ProgressBar/index.js +0 -1
  510. package/src/Radio/Radio.js +0 -25
  511. package/src/Radio/Radio.stories.mdx +0 -66
  512. package/src/Radio/__tests__/Radio.e2e.js +0 -66
  513. package/src/Radio/__tests__/Radio.spec.js +0 -56
  514. package/src/Radio/index.js +0 -2
  515. package/src/RawTable/RawCell.js +0 -182
  516. package/src/RawTable/RawTable.js +0 -123
  517. package/src/RawTable/RawTable.stories.mdx +0 -258
  518. package/src/RawTable/RawTableContext.js +0 -10
  519. package/src/RawTable/RawTbody.js +0 -18
  520. package/src/RawTable/RawThead.js +0 -15
  521. package/src/RawTable/RawTr.js +0 -20
  522. package/src/RawTable/__tests__/RawTable.e2e.js +0 -344
  523. package/src/RawTable/focusFocusable.js +0 -7
  524. package/src/RawTable/index.js +0 -5
  525. package/src/Searchbar/SearchForm.js +0 -3
  526. package/src/Searchbar/Searchbar.js +0 -103
  527. package/src/Searchbar/Searchbar.stories.mdx +0 -115
  528. package/src/Searchbar/__tests__/Searchbar.e2e.js +0 -52
  529. package/src/Searchbar/index.js +0 -2
  530. package/src/Select/MultiSelectNested.js +0 -31
  531. package/src/Select/OptGroup.js +0 -27
  532. package/src/Select/Option.js +0 -123
  533. package/src/Select/Select.js +0 -318
  534. package/src/Select/Select.stories.mdx +0 -362
  535. package/src/Select/SelectButton.js +0 -77
  536. package/src/Select/SelectList.js +0 -113
  537. package/src/Select/SelectTags.js +0 -50
  538. package/src/Select/__tests__/Select.e2e.js +0 -238
  539. package/src/Select/__tests__/Select.spec.js +0 -1020
  540. package/src/Select/components.js +0 -51
  541. package/src/Select/constants.js +0 -6
  542. package/src/Select/hooks/useButtonRef.js +0 -31
  543. package/src/Select/hooks/useListRef.js +0 -35
  544. package/src/Select/index.js +0 -5
  545. package/src/Select/utils.js +0 -27
  546. package/src/SimpleMenu/SimpleMenu.js +0 -252
  547. package/src/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  548. package/src/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -98
  549. package/src/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  550. package/src/SimpleMenu/index.js +0 -1
  551. package/src/SimpleMenu/utils.js +0 -12
  552. package/src/Stack/Stack.js +0 -75
  553. package/src/Stack/Stack.stories.mdx +0 -66
  554. package/src/Stack/__tests__/Stack.e2e.js +0 -43
  555. package/src/Stack/index.js +0 -1
  556. package/src/Status/Status.js +0 -76
  557. package/src/Status/Status.stories.mdx +0 -80
  558. package/src/Status/__tests__/Status.e2e.js +0 -23
  559. package/src/Status/__tests__/Status.spec.js +0 -48
  560. package/src/Status/index.js +0 -1
  561. package/src/SubNav/SubNav.js +0 -25
  562. package/src/SubNav/SubNav.stories.mdx +0 -234
  563. package/src/SubNav/SubNavHeader.js +0 -122
  564. package/src/SubNav/SubNavLink.js +0 -92
  565. package/src/SubNav/SubNavLinkSection.js +0 -75
  566. package/src/SubNav/SubNavSection.js +0 -75
  567. package/src/SubNav/SubNavSectionLabel.js +0 -67
  568. package/src/SubNav/SubNavSections.js +0 -20
  569. package/src/SubNav/__tests__/SubNav.e2e.js +0 -23
  570. package/src/SubNav/index.js +0 -6
  571. package/src/Switch/Switch.js +0 -97
  572. package/src/Switch/Switch.stories.mdx +0 -76
  573. package/src/Switch/__tests__/Switch.e2e.js +0 -33
  574. package/src/Switch/index.js +0 -1
  575. package/src/Table/Cell.js +0 -49
  576. package/src/Table/TFooter.js +0 -58
  577. package/src/Table/Table.js +0 -96
  578. package/src/Table/Table.stories.mdx +0 -330
  579. package/src/Table/Tbody.js +0 -13
  580. package/src/Table/Thead.js +0 -11
  581. package/src/Table/Tr.js +0 -28
  582. package/src/Table/__tests__/Table.e2e.js +0 -41
  583. package/src/Table/index.js +0 -6
  584. package/src/Tabs/TabGroup.js +0 -46
  585. package/src/Tabs/TabPanels.js +0 -32
  586. package/src/Tabs/Tabs.js +0 -227
  587. package/src/Tabs/Tabs.stories.mdx +0 -211
  588. package/src/Tabs/TabsContext.js +0 -5
  589. package/src/Tabs/__tests__/Tabs.e2e.js +0 -253
  590. package/src/Tabs/components.js +0 -66
  591. package/src/Tabs/index.js +0 -3
  592. package/src/Tabs/useTabsFocus.js +0 -28
  593. package/src/Tag/Tag.js +0 -72
  594. package/src/Tag/Tag.stories.mdx +0 -47
  595. package/src/Tag/__tests__/Tag.e2e.js +0 -37
  596. package/src/Tag/index.js +0 -1
  597. package/src/TextButton/TextButton.js +0 -102
  598. package/src/TextButton/TextButton.stories.mdx +0 -71
  599. package/src/TextButton/__tests__/TextButton.e2e.js +0 -23
  600. package/src/TextButton/index.js +0 -1
  601. package/src/TextInput/TextInput.js +0 -67
  602. package/src/TextInput/TextInput.stories.mdx +0 -228
  603. package/src/TextInput/__tests__/TextInput.e2e.js +0 -73
  604. package/src/TextInput/index.js +0 -1
  605. package/src/Textarea/Textarea.js +0 -74
  606. package/src/Textarea/Textarea.stories.mdx +0 -105
  607. package/src/Textarea/TextareaInput.js +0 -77
  608. package/src/Textarea/__tests__/Textarea.e2e.js +0 -37
  609. package/src/Textarea/index.js +0 -1
  610. package/src/ThemeProvider/ThemeProvider.js +0 -193
  611. package/src/ThemeProvider/hooks.js +0 -5
  612. package/src/ThemeProvider/index.js +0 -2
  613. package/src/TimePicker/TimePicker.js +0 -128
  614. package/src/TimePicker/TimePicker.stories.mdx +0 -171
  615. package/src/TimePicker/__tests__/TimePicker.e2e.js +0 -37
  616. package/src/TimePicker/__tests__/TimePicker.spec.js +0 -2099
  617. package/src/TimePicker/index.js +0 -1
  618. package/src/ToggleCheckbox/ToggleCheckbox.js +0 -169
  619. package/src/ToggleCheckbox/ToggleCheckbox.stories.mdx +0 -96
  620. package/src/ToggleCheckbox/__tests__/ToggleCheckbox.e2e.js +0 -59
  621. package/src/ToggleCheckbox/index.js +0 -1
  622. package/src/ToggleInput/ToggleInput.js +0 -89
  623. package/src/ToggleInput/ToggleInput.stories.mdx +0 -171
  624. package/src/ToggleInput/__tests__/ToggleInput.e2e.js +0 -109
  625. package/src/ToggleInput/index.js +0 -1
  626. package/src/Tooltip/Tooltip.js +0 -72
  627. package/src/Tooltip/Tooltip.stories.mdx +0 -127
  628. package/src/Tooltip/__tests__/Tooltip.e2e.js +0 -33
  629. package/src/Tooltip/__tests__/Tooltip.spec.js +0 -306
  630. package/src/Tooltip/hooks/useTooltipHandlers.js +0 -39
  631. package/src/Tooltip/hooks/useTooltipLayout.js +0 -21
  632. package/src/Tooltip/index.js +0 -1
  633. package/src/Tooltip/utils/__tests__/positionTooltip.spec.js +0 -114
  634. package/src/Tooltip/utils/positionTooltip.js +0 -83
  635. package/src/Typography/Typography.js +0 -24
  636. package/src/Typography/Typography.stories.mdx +0 -86
  637. package/src/Typography/TypographyProps.js +0 -30
  638. package/src/Typography/__tests__/Typography.e2e.js +0 -25
  639. package/src/Typography/__tests__/Typography.spec.js +0 -32
  640. package/src/Typography/__tests__/__snapshots__/Typography.spec.js.snap +0 -103
  641. package/src/Typography/constants.js +0 -9
  642. package/src/Typography/index.js +0 -1
  643. package/src/Typography/utils.js +0 -69
  644. package/src/VisuallyHidden/VisuallyHidden.js +0 -12
  645. package/src/VisuallyHidden/index.js +0 -1
  646. package/src/helpers/__tests__/useId.spec.js +0 -39
  647. package/src/helpers/escapeSelector.js +0 -1
  648. package/src/helpers/genId.js +0 -2
  649. package/src/helpers/getDefaultLocale.js +0 -33
  650. package/src/helpers/getFocusableNodes.js +0 -35
  651. package/src/helpers/handleResponsiveValues.js +0 -34
  652. package/src/helpers/keyboardKeys.js +0 -17
  653. package/src/helpers/setOpacity.js +0 -4
  654. package/src/helpers/setTabIndexOnFirstItem.js +0 -7
  655. package/src/helpers/useElementOnScreen.js +0 -27
  656. package/src/helpers/useId.js +0 -8
  657. package/src/helpers/useIntersection.js +0 -31
  658. package/src/helpers/useLockScroll.js +0 -14
  659. package/src/helpers/usePrevious.js +0 -9
  660. package/src/helpers/useResizeObserver.js +0 -22
  661. package/src/index.js +0 -65
  662. package/src/themes/ColorButton.js +0 -24
  663. package/src/themes/Theme.stories.mdx +0 -227
  664. package/src/themes/__tests__/extendTheme.spec.js +0 -119
  665. package/src/themes/colors.js +0 -46
  666. package/src/themes/common-theme.js +0 -19
  667. package/src/themes/darkTheme/dark-colors.js +0 -49
  668. package/src/themes/darkTheme/dark-shadows.js +0 -10
  669. package/src/themes/darkTheme/index.js +0 -9
  670. package/src/themes/extendTheme.js +0 -60
  671. package/src/themes/index.js +0 -4
  672. package/src/themes/lightTheme/index.js +0 -9
  673. package/src/themes/lightTheme/light-colors.js +0 -49
  674. package/src/themes/lightTheme/light-shadows.js +0 -10
  675. package/src/themes/sizes.js +0 -10
  676. package/src/themes/utils.js +0 -50
  677. package/src/v2/Breadcrumbs/Breadcrumbs.js +0 -45
  678. package/src/v2/Breadcrumbs/Breadcrumbs.stories.mdx +0 -129
  679. package/src/v2/Breadcrumbs/Crumb.js +0 -30
  680. package/src/v2/Breadcrumbs/CrumbLink.js +0 -33
  681. package/src/v2/Breadcrumbs/CrumbSimpleMenu.js +0 -30
  682. package/src/v2/Breadcrumbs/Divider.js +0 -16
  683. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -47
  684. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.spec.js +0 -47
  685. package/src/v2/Breadcrumbs/index.js +0 -4
  686. package/src/v2/Link/Link.js +0 -79
  687. package/src/v2/Link/Link.stories.mdx +0 -113
  688. package/src/v2/Link/__tests__/Link.e2e.js +0 -23
  689. package/src/v2/Link/index.js +0 -1
  690. package/src/v2/LinkButton/LinkButton.js +0 -105
  691. package/src/v2/LinkButton/LinkButton.stories.mdx +0 -153
  692. package/src/v2/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  693. package/src/v2/LinkButton/index.js +0 -1
  694. package/src/v2/MainNav/MainNav.js +0 -31
  695. package/src/v2/MainNav/MainNav.stories.mdx +0 -197
  696. package/src/v2/MainNav/MainNavContext.js +0 -5
  697. package/src/v2/MainNav/NavBrand.js +0 -79
  698. package/src/v2/MainNav/NavCondense.js +0 -44
  699. package/src/v2/MainNav/NavLink.js +0 -143
  700. package/src/v2/MainNav/NavSection.js +0 -53
  701. package/src/v2/MainNav/NavSections.js +0 -20
  702. package/src/v2/MainNav/NavUser.js +0 -53
  703. package/src/v2/MainNav/__tests__/MainNav.e2e.js +0 -23
  704. package/src/v2/MainNav/index.js +0 -7
  705. package/src/v2/MainNav/strapi-img.png +0 -0
  706. package/src/v2/Pagination/Pagination.js +0 -37
  707. package/src/v2/Pagination/Pagination.stories.mdx +0 -97
  708. package/src/v2/Pagination/PaginationContext.js +0 -4
  709. package/src/v2/Pagination/__tests__/Pagination.e2e.js +0 -23
  710. package/src/v2/Pagination/assets/next.svg +0 -3
  711. package/src/v2/Pagination/assets/previous.svg +0 -3
  712. package/src/v2/Pagination/components.js +0 -136
  713. package/src/v2/Pagination/index.js +0 -2
  714. package/src/v2/SimpleMenu/SimpleMenu.js +0 -252
  715. package/src/v2/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  716. package/src/v2/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -100
  717. package/src/v2/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  718. package/src/v2/SimpleMenu/index.js +0 -1
  719. package/src/v2/SimpleMenu/utils.js +0 -12
  720. package/src/v2/SubNav/SubNav.js +0 -25
  721. package/src/v2/SubNav/SubNav.stories.mdx +0 -234
  722. package/src/v2/SubNav/SubNavHeader.js +0 -122
  723. package/src/v2/SubNav/SubNavLink.js +0 -95
  724. package/src/v2/SubNav/SubNavLinkSection.js +0 -75
  725. package/src/v2/SubNav/SubNavSection.js +0 -75
  726. package/src/v2/SubNav/SubNavSectionLabel.js +0 -67
  727. package/src/v2/SubNav/SubNavSections.js +0 -20
  728. package/src/v2/SubNav/__tests__/SubNav.e2e.js +0 -23
  729. package/src/v2/SubNav/index.js +0 -6
  730. package/src/v2/index.js +0 -7
  731. package/test-bundler.js +0 -35
  732. package/tests/check-exports.spec.js +0 -36
  733. package/webpack.config.js +0 -84
@@ -1,234 +0,0 @@
1
- <!--- SubNav.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 Apps from '@strapi/icons/Apps';
7
- import Plus from '@strapi/icons/Plus';
8
- import ExclamationMarkCircle from '@strapi/icons/ExclamationMarkCircle';
9
- import { SubNav } from './SubNav';
10
- import { SubNavHeader } from './SubNavHeader';
11
- import { SubNavSection } from './SubNavSection';
12
- import { SubNavSections } from './SubNavSections';
13
- import { SubNavLink } from './SubNavLink';
14
- import { SubNavLinkSection } from './SubNavLinkSection';
15
- import { Box } from '../Box';
16
- import { Flex } from '../Flex';
17
- import { TextButton } from '../TextButton';
18
-
19
- <Meta title="Design System/Components/SubNav" component={SubNav} />
20
-
21
- # SubNav
22
-
23
- The Sub Navigation is available and displayed on predefined sections of the admin panel to access advanced options (i.e. Content Manager, Content-types Builder and Settings). Thanks to it the users can easily navigation from an entry or a page to another. The Sub Navigation cannot be collapsed.
24
-
25
- **Best practices**
26
-
27
- - It is not possible to have more than 2 navigation bars next to each others.
28
- - Each page has its own icon taken from the iconography library.
29
- - Do not use icons for headers.
30
- - Use sentence case for page names and all caps for header labels.
31
- - Each plugin should have its own new category and its own header.
32
-
33
- ## Usage
34
-
35
- The Sub Navigation cannot be collapsed. A notification system can appear in the Sub Navigation, especially in the Settings section for the Application page.
36
-
37
- A Text Button component can be found at the bottom of a pages gathering in the Sub Navigation.
38
-
39
- ## Hierarchy
40
-
41
- Related pages are gathered under specific headers within the Sub Navigation. These headers are helpful to understand the section hierarchy. Moreover, each page gets its very own icon to make it distinctive.
42
-
43
- [View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/SubNav)
44
-
45
- ## Imports
46
-
47
- ```js
48
- import {
49
- SubNav,
50
- SubNavHeader,
51
- SubNavSection,
52
- SubNavSections,
53
- SubNavLink,
54
- SubNavLinkSection,
55
- } from '@strapi/design-system/SubNav';
56
- ```
57
-
58
- ## Usage
59
-
60
- <Canvas>
61
- <Story name="base">
62
- {() => {
63
- const [search, setSearch] = useState('');
64
- const links = [
65
- {
66
- id: 1,
67
- label: 'Addresses',
68
- icon: <ExclamationMarkCircle />,
69
- to: '/address',
70
- },
71
- {
72
- id: 2,
73
- label: 'Categories',
74
- to: '/category',
75
- },
76
- {
77
- id: 3,
78
- label: 'Cities',
79
- icon: <Apps />,
80
- to: '/city',
81
- active: true,
82
- },
83
- {
84
- id: 4,
85
- label: 'Countries',
86
- to: '/country',
87
- },
88
- ];
89
- return (
90
- <Flex>
91
- <Box padding={10} style={{ height: '100vh' }} background="neutral200">
92
- <SubNav ariaLabel="Builder sub nav">
93
- <SubNavHeader
94
- searchable
95
- value={search}
96
- onClear={() => setSearch('')}
97
- onChange={(e) => setSearch(e.target.value)}
98
- label="Content-Type Builder"
99
- searchLabel="Search..."
100
- />
101
- <SubNavSections>
102
- <SubNavSection label="Collection Type" collapsable badgeLabel={links.length.toString()}>
103
- {links.map((link) => (
104
- <SubNavLink to={link.to} active={link.active} key={link.id}>
105
- {link.label}
106
- </SubNavLink>
107
- ))}
108
- </SubNavSection>
109
- <Box paddingLeft={7} paddingBottom={3}>
110
- <TextButton startIcon={<Plus />}>Click on me</TextButton>
111
- </Box>
112
- <SubNavSection label="Single Type" collapsable badgeLabel={links.length.toString()}>
113
- <SubNavLinkSection label="Default">
114
- {links.map((link) => (
115
- <SubNavLink to={link.to} isSubSectionChild key={link.id}>
116
- {link.label}
117
- </SubNavLink>
118
- ))}
119
- </SubNavLinkSection>
120
- </SubNavSection>
121
- <Box paddingLeft={7}>
122
- <TextButton startIcon={<Plus />}>Click on me</TextButton>
123
- </Box>
124
- </SubNavSections>
125
- </SubNav>
126
- </Box>
127
- <Box padding={10} style={{ height: '100vh' }} background="neutral200">
128
- <SubNav ariaLabel="Settings sub nav">
129
- <SubNavHeader label="Settings" />
130
- <SubNavSections>
131
- <SubNavLink to="/blabla" withBullet icon={<Apps />} className="active">
132
- Application
133
- </SubNavLink>
134
- <SubNavSection label="Global Settings">
135
- {links.map(
136
- (link) =>
137
- link.icon && (
138
- <SubNavLink to={link.to} active={link.active} icon={link.icon} key={link.id}>
139
- {link.label}
140
- </SubNavLink>
141
- ),
142
- )}
143
- </SubNavSection>
144
- <SubNavSection label="Permissions">
145
- {links.map(
146
- (link) =>
147
- link.icon && (
148
- <SubNavLink to={link.to} icon={link.icon} key={link.id}>
149
- {link.label}
150
- </SubNavLink>
151
- ),
152
- )}
153
- </SubNavSection>
154
- </SubNavSections>
155
- </SubNav>
156
- </Box>
157
- <Box padding={10} style={{ height: '100vh' }} background="neutral200">
158
- <SubNav ariaLabel="Mixed sub nav">
159
- <SubNavHeader label="Mixed" />
160
- <SubNavSections>
161
- <SubNavLink to="/blabla" withBullet icon={<Apps />}>
162
- Application
163
- </SubNavLink>
164
- <SubNavSection label="Global Settings">
165
- <SubNavLinkSection label="Sub section">
166
- {links.map((link) => (
167
- <SubNavLink to={link.to} active={link.active} icon={link.icon} isSubSectionChild key={link.id}>
168
- {link.label}
169
- </SubNavLink>
170
- ))}
171
- </SubNavLinkSection>
172
- </SubNavSection>
173
- <SubNavSection label="Permissions">
174
- {links.map((link) => (
175
- <SubNavLink to={link.to} icon={link.icon} key={link.id}>
176
- {link.label}
177
- </SubNavLink>
178
- ))}
179
- </SubNavSection>
180
- </SubNavSections>
181
- </SubNav>
182
- </Box>
183
- </Flex>
184
- );
185
- }}
186
- </Story>
187
- </Canvas>
188
-
189
- ### Usage with other routing libraries
190
-
191
- To use the Strapi design system SubNavLink component with a routing library (e.g. react-router-dom), you'll need to pass the react-router-dom `NavLink` component to the `as` prop in order to replace the default HTML anchor `<a />`.
192
- You'll now be able to pass all `NavLink` props.
193
-
194
- ```jsx
195
- import { SubNavLink } from '@strapi/design-system/SubNavLink';
196
- import { NavLink } from 'react-router-dom';
197
-
198
- <SubNavLink as={NavLink} to="/home">
199
- Home
200
- </SubNavLink>;
201
- ```
202
-
203
- #### (⚠️ Only for Strapi Design System v1.0.0) NextJS usage
204
-
205
- For NextJS, you'll need to wrap the `NavLink` with the `NextLink` component
206
-
207
- ```jsx
208
- import { SubNavLink } from '@strapi/design-system/SubNavLink';
209
- import NextLink from 'next/link';
210
-
211
- <NextLink href="/home" passHref>
212
- <SubNavLink>Home</SubNavLink>
213
- </NextLink>;
214
- ```
215
-
216
- ## SubNav Props
217
-
218
- <ArgsTable of={SubNav} />
219
-
220
- ## SubNavHeader Props
221
-
222
- <ArgsTable of={SubNavHeader} />
223
-
224
- ## SubNavSection Props
225
-
226
- <ArgsTable of={SubNavSection} />
227
-
228
- ## SubNavLinkSection Props
229
-
230
- <ArgsTable of={SubNavLinkSection} />
231
-
232
- ## SubNavLink Props
233
-
234
- <ArgsTable of={SubNavLink} />
@@ -1,122 +0,0 @@
1
- import React, { useState, useRef, useEffect } from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import Search from '@strapi/icons/Search';
5
- import { Flex } from '../Flex';
6
- import { Typography } from '../Typography';
7
- import { IconButton } from '../IconButton';
8
- import { Box } from '../Box';
9
- import { Divider } from '../Divider';
10
- import { Searchbar, SearchForm } from '../Searchbar';
11
- import { useId } from '../helpers/useId';
12
- import { usePrevious } from '../helpers/usePrevious';
13
- import { KeyboardKeys } from '../helpers/keyboardKeys';
14
-
15
- const CustomDivider = styled(Divider)`
16
- width: ${24 / 16}rem;
17
- background-color: ${({ theme }) => theme.colors.neutral200};
18
- `;
19
-
20
- export const SubNavHeader = ({ as, label, searchLabel, searchable, onChange, value, onClear, onSubmit, id }) => {
21
- const [isSearchOpen, setSearchOpen] = useState(false);
22
- const previousSearchOpenValue = usePrevious(isSearchOpen);
23
- const clearButtonId = useId('subnav-searchbar-clear', id);
24
- const searchRef = useRef();
25
- const searchButtonRef = useRef();
26
-
27
- useEffect(() => {
28
- if (isSearchOpen && searchRef.current) {
29
- searchRef.current.focus();
30
- }
31
- if (previousSearchOpenValue && !isSearchOpen && searchButtonRef.current) {
32
- searchButtonRef.current.focus();
33
- }
34
- }, [isSearchOpen]);
35
-
36
- const toggleSearch = () => {
37
- setSearchOpen((isOpen) => !isOpen);
38
- };
39
-
40
- const handleClear = (e) => {
41
- onClear(e);
42
- searchRef.current.focus();
43
- };
44
-
45
- const handleBlur = (e) => {
46
- if (e.relatedTarget?.id !== clearButtonId) {
47
- setSearchOpen(false);
48
- }
49
- };
50
-
51
- const handleKeyDown = (e) => {
52
- if (e.key === KeyboardKeys.ESCAPE) {
53
- setSearchOpen(false);
54
- }
55
- };
56
-
57
- if (isSearchOpen) {
58
- return (
59
- <Box paddingLeft={4} paddingTop={5} paddingBottom={2} paddingRight={4}>
60
- <SearchForm>
61
- <Searchbar
62
- name="searchbar"
63
- value={value}
64
- onChange={onChange}
65
- placeholder="e.g: strapi-plugin-abcd"
66
- onKeyDown={handleKeyDown}
67
- ref={searchRef}
68
- onBlur={handleBlur}
69
- onClear={handleClear}
70
- onSubmit={onSubmit}
71
- clearLabel="Clear"
72
- size="S"
73
- >
74
- {searchLabel}
75
- </Searchbar>
76
- </SearchForm>
77
- <Box paddingLeft={2} paddingTop={4}>
78
- <CustomDivider />
79
- </Box>
80
- </Box>
81
- );
82
- }
83
-
84
- return (
85
- <Box paddingLeft={6} paddingTop={6} paddingBottom={2} paddingRight={4}>
86
- <Flex justifyContent="space-between" alignItems="flex-start">
87
- <Typography variant="beta" as={as}>
88
- {label}
89
- </Typography>
90
- {searchable && (
91
- <IconButton ref={searchButtonRef} onClick={toggleSearch} label={searchLabel} icon={<Search />} />
92
- )}
93
- </Flex>
94
- <Box paddingTop={4}>
95
- <CustomDivider />
96
- </Box>
97
- </Box>
98
- );
99
- };
100
-
101
- SubNavHeader.defaultProps = {
102
- as: 'h2',
103
- searchable: false,
104
- onChange: () => {},
105
- onClear: () => {},
106
- onSubmit: () => {},
107
- value: '',
108
- searchLabel: '',
109
- id: undefined,
110
- };
111
-
112
- SubNavHeader.propTypes = {
113
- as: PropTypes.string,
114
- id: PropTypes.string,
115
- label: PropTypes.string.isRequired,
116
- onChange: PropTypes.func,
117
- onClear: PropTypes.func,
118
- onSubmit: PropTypes.func,
119
- searchLabel: PropTypes.string,
120
- searchable: PropTypes.bool,
121
- value: PropTypes.string,
122
- };
@@ -1,92 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import Dot from '@strapi/icons/Dot';
5
- import { NavLink } from 'react-router-dom';
6
- import { Box } from '../Box';
7
- import { Typography } from '../Typography';
8
- import { Flex } from '../Flex';
9
-
10
- const SubNavLinkWrapper = styled(Box)`
11
- display: flex;
12
- align-items: center;
13
- justify-content: space-between;
14
- text-decoration: none;
15
- color: ${({ theme }) => theme.colors.neutral800};
16
- svg > * {
17
- fill: ${({ theme }) => theme.colors.neutral600};
18
- }
19
-
20
- &.active {
21
- ${({ theme }) => {
22
- return `
23
- background-color: ${theme.colors.primary100};
24
- border-right: 2px solid ${theme.colors.primary600};
25
- svg > * {
26
- fill: ${theme.colors.primary700};
27
- }
28
- ${Typography} {
29
- color: ${theme.colors.primary700};
30
- font-weight: 500;
31
- }
32
- `;
33
- }}
34
- }
35
-
36
- &:focus-visible {
37
- outline-offset: -2px;
38
- }
39
- `;
40
- const CustomBullet = styled(Dot)`
41
- width: ${12 / 16}rem;
42
- height: ${4 / 16}rem;
43
- * {
44
- fill: ${({ theme, $active }) => ($active ? theme.colors.primary600 : theme.colors.neutral600)};
45
- }
46
- `;
47
- const IconWrapper = styled.div`
48
- svg {
49
- height: ${12 / 16}rem;
50
- width: ${12 / 16}rem;
51
- }
52
- `;
53
-
54
- export const SubNavLink = ({ children, icon, withBullet, isSubSectionChild, ...props }) => {
55
- return (
56
- <SubNavLinkWrapper
57
- as={NavLink}
58
- icon={icon}
59
- background="neutral100"
60
- paddingLeft={isSubSectionChild ? 9 : 7}
61
- paddingBottom={2}
62
- paddingTop={2}
63
- {...props}
64
- >
65
- <Flex>
66
- {icon ? <IconWrapper>{icon}</IconWrapper> : <CustomBullet />}
67
- <Box paddingLeft={2}>
68
- <Typography as="span">{children}</Typography>
69
- </Box>
70
- </Flex>
71
- {withBullet && (
72
- <Box as={Flex} paddingRight={4}>
73
- <CustomBullet $active={true} />
74
- </Box>
75
- )}
76
- </SubNavLinkWrapper>
77
- );
78
- };
79
-
80
- SubNavLink.displayName = 'SubNavLink';
81
- SubNavLink.defaultProps = {
82
- icon: null,
83
- isSubSectionChild: false,
84
- withBullet: false,
85
- };
86
- SubNavLink.propTypes = {
87
- children: PropTypes.node,
88
- icon: PropTypes.element,
89
- isSubSectionChild: PropTypes.bool,
90
- link: PropTypes.element,
91
- withBullet: PropTypes.bool,
92
- };
@@ -1,75 +0,0 @@
1
- import React, { Children, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import CarretDown from '@strapi/icons/CarretDown';
5
- import { Box } from '../Box';
6
- import { Flex } from '../Flex';
7
- import { Typography } from '../Typography';
8
- import { useId } from '../helpers/useId';
9
-
10
- const SubNavLinkSectionWrapper = styled(Box)`
11
- svg {
12
- height: ${4 / 16}rem;
13
- path {
14
- fill: ${({ theme }) => theme.colors.neutral700};
15
- }
16
- }
17
- `;
18
- const SubNavLinkSectionButton = styled.button`
19
- border: none;
20
- padding: 0;
21
- background: transparent;
22
- display: flex;
23
- align-items: center;
24
- `;
25
- const DropDownIconWrapper = styled.div`
26
- display: flex;
27
- align-items: center;
28
- width: ${12 / 16}rem;
29
- transform: rotateX(${({ rotated }) => (rotated ? '0deg' : '180deg')});
30
- `;
31
-
32
- export const SubNavLinkSection = ({ label, children, id }) => {
33
- const [isOpen, setOpenLinks] = useState(true);
34
- const listId = useId('subnav-list', id);
35
-
36
- const handleClick = () => {
37
- setOpenLinks((prev) => !prev);
38
- };
39
-
40
- return (
41
- <Box>
42
- <SubNavLinkSectionWrapper paddingLeft={7} paddingTop={2} paddingBottom={2} paddingRight={4}>
43
- <Flex justifyContent="space-between">
44
- <SubNavLinkSectionButton onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>
45
- <DropDownIconWrapper rotated={isOpen}>
46
- <CarretDown aria-hidden />
47
- </DropDownIconWrapper>
48
- <Box paddingLeft={2}>
49
- <Typography as="span" fontWeight="semiBold" textColor="neutral800">
50
- {label}
51
- </Typography>
52
- </Box>
53
- </SubNavLinkSectionButton>
54
- </Flex>
55
- </SubNavLinkSectionWrapper>
56
- {isOpen && (
57
- <ul id={listId}>
58
- {Children.map(children, (child, index) => {
59
- return <li key={index}>{child}</li>;
60
- })}
61
- </ul>
62
- )}
63
- </Box>
64
- );
65
- };
66
-
67
- SubNavLinkSection.defaultProps = {
68
- id: undefined,
69
- };
70
-
71
- SubNavLinkSection.propTypes = {
72
- children: PropTypes.node,
73
- id: PropTypes.string,
74
- label: PropTypes.string.isRequired,
75
- };
@@ -1,75 +0,0 @@
1
- import React, { Children, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { Box } from '../Box';
5
- import { Badge } from '../Badge';
6
- import { SubNavSectionLabel } from './SubNavSectionLabel';
7
- import { useId } from '../helpers/useId';
8
- import { Stack } from '../Stack';
9
-
10
- const SubNavSectionWrapper = styled(Box)`
11
- svg {
12
- height: ${4 / 16}rem;
13
- path {
14
- fill: ${({ theme }) => theme.colors.neutral500};
15
- }
16
- }
17
- `;
18
-
19
- export const SubNavSection = ({ collapsable, label, badgeLabel, children, id }) => {
20
- const [isOpen, setOpenLinks] = useState(true);
21
- const listId = useId('subnav-list', id);
22
-
23
- const handleClick = () => {
24
- setOpenLinks((prev) => !prev);
25
- };
26
-
27
- return (
28
- <Stack spacing={1}>
29
- <SubNavSectionWrapper paddingLeft={6} paddingTop={1} paddingBottom={1} paddingRight={4}>
30
- <Box position="relative" paddingRight={badgeLabel ? 6 : 0}>
31
- <SubNavSectionLabel
32
- onClick={handleClick}
33
- ariaExpanded={isOpen}
34
- ariaControls={listId}
35
- collapsable={collapsable}
36
- label={label}
37
- />
38
- {badgeLabel && (
39
- <Badge
40
- backgroundColor="neutral150"
41
- textColor="neutral600"
42
- position="absolute"
43
- right={0}
44
- top="50%"
45
- transform="translateY(-50%)"
46
- >
47
- {badgeLabel}
48
- </Badge>
49
- )}
50
- </Box>
51
- </SubNavSectionWrapper>
52
- {(!collapsable || isOpen) && (
53
- <ol id={listId}>
54
- {Children.map(children, (child, index) => {
55
- return <li key={index}>{child}</li>;
56
- })}
57
- </ol>
58
- )}
59
- </Stack>
60
- );
61
- };
62
-
63
- SubNavSection.defaultProps = {
64
- badgeLabel: null,
65
- collapsable: false,
66
- id: undefined,
67
- };
68
-
69
- SubNavSection.propTypes = {
70
- badgeLabel: PropTypes.string,
71
- children: PropTypes.node,
72
- collapsable: PropTypes.bool,
73
- id: PropTypes.string,
74
- label: PropTypes.string.isRequired,
75
- };
@@ -1,67 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import CarretDown from '@strapi/icons/CarretDown';
5
- import { Typography } from '../Typography';
6
- import { Box } from '../Box';
7
- import { Flex } from '../Flex';
8
-
9
- const SubNavSectionLabelWrapper = styled(Flex)`
10
- border: none;
11
- padding: 0;
12
- background: transparent;
13
- `;
14
- const DropDownIconWrapper = styled.div`
15
- display: flex;
16
- align-items: center;
17
- transform: rotateX(${({ rotated }) => (rotated ? '0deg' : '180deg')});
18
- `;
19
-
20
- export const SubNavSectionLabel = ({ collapsable, label, onClick, ariaExpanded, ariaControls }) => {
21
- if (collapsable) {
22
- return (
23
- <SubNavSectionLabelWrapper
24
- as="button"
25
- onClick={onClick}
26
- aria-expanded={ariaExpanded}
27
- aria-controls={ariaControls}
28
- textAlign="left"
29
- >
30
- <Box paddingRight={1}>
31
- <Typography variant="sigma" textColor="neutral600">
32
- {label}
33
- </Typography>
34
- </Box>
35
- {collapsable && (
36
- <DropDownIconWrapper rotated={ariaExpanded}>
37
- <CarretDown aria-hidden />
38
- </DropDownIconWrapper>
39
- )}
40
- </SubNavSectionLabelWrapper>
41
- );
42
- }
43
-
44
- return (
45
- <SubNavSectionLabelWrapper>
46
- <Box paddingRight={1}>
47
- <Typography variant="sigma" textColor="neutral600">
48
- {label}
49
- </Typography>
50
- </Box>
51
- </SubNavSectionLabelWrapper>
52
- );
53
- };
54
-
55
- SubNavSectionLabel.defaultProps = {
56
- ariaControls: null,
57
- ariaExpanded: null,
58
- collapsable: false,
59
- onClick: () => {},
60
- };
61
- SubNavSectionLabel.propTypes = {
62
- ariaControls: PropTypes.string,
63
- ariaExpanded: PropTypes.bool,
64
- collapsable: PropTypes.bool,
65
- label: PropTypes.string.isRequired,
66
- onClick: PropTypes.func,
67
- };
@@ -1,20 +0,0 @@
1
- import React, { Children } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Stack } from '../Stack';
4
- import { Box } from '../Box';
5
-
6
- export const SubNavSections = ({ children, ...props }) => {
7
- return (
8
- <Box paddingTop={2} paddingBottom={4}>
9
- <Stack as="ol" spacing={2} {...props}>
10
- {Children.map(children, (child, index) => {
11
- return <li key={index}>{child}</li>;
12
- })}
13
- </Stack>
14
- </Box>
15
- );
16
- };
17
-
18
- SubNavSections.propTypes = {
19
- children: PropTypes.node.isRequired,
20
- };