@automattic/vip-design-system 1.2.0 → 1.2.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 (455) hide show
  1. package/.storybook/decorators/withBoundingBox.tsx +11 -0
  2. package/.storybook/decorators/{withThemeProvider.jsx → withThemeProvider.tsx} +1 -5
  3. package/.storybook/{preview.js → preview.tsx} +12 -3
  4. package/build/declaration.d.js +1 -0
  5. package/build/system/Accordion/Accordion.d.ts +41 -0
  6. package/build/system/Accordion/Accordion.js +10 -35
  7. package/build/system/Accordion/Accordion.stories.d.ts +13 -0
  8. package/build/system/Accordion/Accordion.stories.js +4 -7
  9. package/build/system/Accordion/Accordion.test.d.ts +2 -0
  10. package/build/system/Accordion/Accordion.test.js +5 -7
  11. package/build/system/Accordion/index.d.ts +5 -0
  12. package/build/system/Avatar/Avatar.d.ts +13 -0
  13. package/build/system/Avatar/Avatar.js +7 -20
  14. package/build/system/Avatar/Avatar.stories.d.ts +16 -0
  15. package/build/system/Avatar/Avatar.stories.js +5 -7
  16. package/build/system/Avatar/Avatar.test.d.ts +1 -0
  17. package/build/system/Avatar/Avatar.test.js +5 -7
  18. package/build/system/Avatar/index.d.ts +4 -0
  19. package/build/system/Avatar/index.js +1 -0
  20. package/build/system/Badge/Badge.d.ts +6 -0
  21. package/build/system/Badge/Badge.js +6 -15
  22. package/build/system/Badge/Badge.stories.d.ts +18 -0
  23. package/build/system/Badge/Badge.stories.js +70 -71
  24. package/build/system/Badge/Badge.test.d.ts +1 -0
  25. package/build/system/Badge/Badge.test.js +6 -8
  26. package/build/system/Badge/index.d.ts +4 -0
  27. package/build/system/Badge/index.js +1 -0
  28. package/build/system/Box/Box.d.ts +3 -0
  29. package/build/system/{Form/Label.stories.js → Box/Box.js} +15 -31
  30. package/build/system/Box/Box.stories.d.ts +16 -0
  31. package/build/system/Box/Box.stories.js +21 -0
  32. package/build/system/Box/index.d.ts +2 -0
  33. package/build/system/Box/index.js +5 -4
  34. package/build/system/Button/Button.d.ts +12 -0
  35. package/build/system/Button/Button.js +10 -18
  36. package/build/system/Button/Button.stories.d.ts +30 -0
  37. package/build/system/Button/Button.stories.js +10 -20
  38. package/build/system/Button/Button.test.d.ts +1 -0
  39. package/build/system/Button/Button.test.js +45 -74
  40. package/build/system/Button/ButtonSubmit.d.ts +2 -0
  41. package/build/system/Button/ButtonSubmit.js +60 -70
  42. package/build/system/Button/ButtonSubmit.stories.d.ts +38 -0
  43. package/build/system/Button/ButtonSubmit.stories.jsx +40 -0
  44. package/build/system/Button/ButtonSubmit.test.d.ts +1 -0
  45. package/build/system/Button/ButtonSubmit.test.js +32 -60
  46. package/build/system/Button/index.d.ts +3 -0
  47. package/build/system/Button/index.js +7 -6
  48. package/build/system/Button/variants.d.ts +2 -0
  49. package/build/system/Button/variants.js +1 -6
  50. package/build/system/Card/Card.d.ts +9 -0
  51. package/build/system/Card/Card.js +2 -10
  52. package/build/system/Card/Card.stories.d.ts +7 -0
  53. package/build/system/Card/Card.stories.js +4 -6
  54. package/build/system/Card/Card.test.d.ts +1 -0
  55. package/build/system/Card/Card.test.js +5 -7
  56. package/build/system/Card/index.d.ts +4 -0
  57. package/build/system/Card/index.js +1 -0
  58. package/build/system/Code/Code.d.ts +15 -0
  59. package/build/system/Code/Code.js +14 -21
  60. package/build/system/Code/Code.stories.d.ts +18 -0
  61. package/build/system/Code/Code.stories.js +31 -23
  62. package/build/system/Code/Code.test.d.ts +1 -0
  63. package/build/system/Code/Code.test.js +10 -11
  64. package/build/system/Code/index.d.ts +4 -0
  65. package/build/system/Code/index.js +1 -0
  66. package/build/system/ConfirmationDialog/ConfirmationDialog.d.ts +35 -0
  67. package/build/system/ConfirmationDialog/ConfirmationDialog.js +68 -94
  68. package/build/system/ConfirmationDialog/ConfirmationDialog.stories.d.ts +7 -0
  69. package/build/system/ConfirmationDialog/ConfirmationDialog.stories.jsx +29 -0
  70. package/build/system/ConfirmationDialog/index.d.ts +3 -0
  71. package/build/system/ConfirmationDialog/index.js +5 -5
  72. package/build/system/Dialog/Dialog.d.ts +18 -0
  73. package/build/system/Dialog/Dialog.js +81 -94
  74. package/build/system/Dialog/Dialog.stories.d.ts +7 -0
  75. package/build/system/Dialog/Dialog.stories.jsx +60 -0
  76. package/build/system/Dialog/DialogButton.d.ts +16 -0
  77. package/build/system/Dialog/DialogButton.js +51 -66
  78. package/build/system/Dialog/DialogContent.d.ts +18 -0
  79. package/build/system/Dialog/DialogContent.js +142 -137
  80. package/build/system/Dialog/DialogDivider.d.ts +5 -0
  81. package/build/system/Dialog/DialogDivider.js +5 -16
  82. package/build/system/Dialog/DialogMenu.d.ts +5 -0
  83. package/build/system/Dialog/DialogMenu.js +5 -18
  84. package/build/system/Dialog/DialogMenuItem.d.ts +13 -0
  85. package/build/system/Dialog/DialogMenuItem.js +64 -71
  86. package/build/system/Dialog/DialogTrigger.d.ts +1 -0
  87. package/build/system/Dialog/DialogTrigger.js +10 -16
  88. package/build/system/Dialog/index.d.ts +8 -0
  89. package/build/system/Dialog/index.js +19 -16
  90. package/build/system/Dropdown/Dropdown.d.ts +37 -0
  91. package/build/system/Dropdown/Dropdown.js +96 -93
  92. package/build/system/Dropdown/Dropdown.stories.d.ts +34 -0
  93. package/build/system/Dropdown/Dropdown.stories.jsx +170 -0
  94. package/build/system/Dropdown/Dropdown.test.d.ts +1 -0
  95. package/build/system/Dropdown/Dropdown.test.js +30 -52
  96. package/build/system/Dropdown/DropdownContent.d.ts +11 -0
  97. package/build/system/Dropdown/DropdownContent.js +40 -49
  98. package/build/system/Dropdown/DropdownItem.d.ts +32 -0
  99. package/build/system/Dropdown/DropdownItem.js +91 -95
  100. package/build/system/Dropdown/DropdownLabel.d.ts +8 -0
  101. package/build/system/Dropdown/DropdownLabel.js +24 -33
  102. package/build/system/Dropdown/DropdownSeparator.d.ts +7 -0
  103. package/build/system/Dropdown/DropdownSeparator.js +23 -32
  104. package/build/system/Dropdown/index.d.ts +40 -0
  105. package/build/system/Dropdown/index.js +49 -37
  106. package/build/system/Flex/Flex.d.ts +2 -0
  107. package/build/system/Flex/Flex.js +6 -8
  108. package/build/system/Flex/Flex.stories.d.ts +7 -0
  109. package/build/system/Flex/Flex.stories.js +3 -5
  110. package/build/system/Flex/index.d.ts +4 -0
  111. package/build/system/Flex/index.js +1 -0
  112. package/build/system/Form/Checkbox.d.ts +10 -0
  113. package/build/system/Form/Checkbox.js +61 -62
  114. package/build/system/Form/Checkbox.stories.d.ts +7 -0
  115. package/build/system/Form/Checkbox.stories.jsx +54 -0
  116. package/build/system/Form/Input.d.ts +2 -0
  117. package/build/system/Form/Input.js +70 -69
  118. package/build/system/Form/Input.stories.d.ts +5 -0
  119. package/build/system/Form/Input.stories.jsx +38 -0
  120. package/build/system/Form/Input.styles.d.ts +32 -0
  121. package/build/system/Form/Input.styles.js +29 -40
  122. package/build/system/Form/InputWithCopyButton.d.ts +2 -0
  123. package/build/system/Form/InputWithCopyButton.js +109 -105
  124. package/build/system/Form/InputWithCopyButton.stories.d.ts +5 -0
  125. package/build/system/Form/InputWithCopyButton.stories.jsx +30 -0
  126. package/build/system/Form/Label.d.ts +9 -0
  127. package/build/system/Form/Label.js +41 -47
  128. package/build/system/Form/Label.stories.d.ts +6 -0
  129. package/build/system/Form/Label.stories.jsx +36 -0
  130. package/build/system/Form/Radio.d.ts +2 -0
  131. package/build/system/Form/Radio.js +185 -169
  132. package/build/system/Form/Radio.stories.d.ts +7 -0
  133. package/build/system/Form/Radio.stories.jsx +100 -0
  134. package/build/system/Form/RadioBoxGroup.d.ts +2 -0
  135. package/build/system/Form/RadioBoxGroup.js +193 -187
  136. package/build/system/Form/RadioBoxGroup.stories.d.ts +8 -0
  137. package/build/system/Form/RadioBoxGroup.stories.jsx +60 -0
  138. package/build/system/Form/RequiredLabel.d.ts +5 -0
  139. package/build/system/Form/RequiredLabel.js +7 -17
  140. package/build/system/Form/Textarea.d.ts +2 -0
  141. package/build/system/Form/Textarea.js +18 -20
  142. package/build/system/Form/Textarea.stories.d.ts +34 -0
  143. package/build/system/Form/Textarea.stories.jsx +40 -0
  144. package/build/system/Form/Toggle.d.ts +2 -0
  145. package/build/system/Form/Toggle.js +67 -81
  146. package/build/system/Form/Toggle.stories.d.ts +19 -0
  147. package/build/system/Form/Toggle.stories.jsx +96 -0
  148. package/build/system/Form/Toggle.test.d.ts +1 -0
  149. package/build/system/Form/Toggle.test.js +21 -39
  150. package/build/system/Form/ToggleRow.d.ts +22 -0
  151. package/build/system/Form/ToggleRow.js +66 -95
  152. package/build/system/Form/Validation.d.ts +14 -0
  153. package/build/system/Form/Validation.js +33 -42
  154. package/build/system/Form/index.d.ts +11 -0
  155. package/build/system/Form/index.js +25 -22
  156. package/build/system/Grid/Grid.d.ts +6 -0
  157. package/build/system/Grid/Grid.js +4 -5
  158. package/build/system/Grid/Grid.stories.d.ts +7 -0
  159. package/build/system/Grid/Grid.stories.js +3 -5
  160. package/build/system/Grid/index.d.ts +4 -0
  161. package/build/system/Grid/index.js +1 -0
  162. package/build/system/Heading/Heading.d.ts +6 -0
  163. package/build/system/Heading/Heading.js +33 -0
  164. package/build/system/Heading/Heading.stories.d.ts +7 -0
  165. package/build/system/Heading/Heading.stories.js +33 -0
  166. package/build/system/Heading/index.d.ts +2 -0
  167. package/build/system/Heading/index.js +5 -4
  168. package/build/system/Link/Link.d.ts +6 -0
  169. package/build/system/Link/Link.js +5 -12
  170. package/build/system/Link/Link.stories.d.ts +16 -0
  171. package/build/system/Link/Link.stories.js +12 -13
  172. package/build/system/Link/index.d.ts +4 -0
  173. package/build/system/Link/index.js +1 -0
  174. package/build/system/NewConfirmationDialog/NewConfirmationDialog.d.ts +23 -0
  175. package/build/system/NewConfirmationDialog/NewConfirmationDialog.js +86 -99
  176. package/build/system/NewConfirmationDialog/NewConfirmationDialog.stories.d.ts +8 -0
  177. package/build/system/NewConfirmationDialog/NewConfirmationDialog.stories.jsx +34 -0
  178. package/build/system/NewConfirmationDialog/NewConfirmationDialog.test.d.ts +1 -0
  179. package/build/system/NewConfirmationDialog/NewConfirmationDialog.test.js +43 -66
  180. package/build/system/NewConfirmationDialog/index.d.ts +2 -0
  181. package/build/system/NewConfirmationDialog/index.js +5 -4
  182. package/build/system/NewDialog/DialogClose.d.ts +6 -0
  183. package/build/system/NewDialog/DialogClose.js +50 -69
  184. package/build/system/NewDialog/DialogClose.test.d.ts +1 -0
  185. package/build/system/NewDialog/DialogClose.test.js +29 -46
  186. package/build/system/NewDialog/DialogContent.d.ts +18 -0
  187. package/build/system/NewDialog/DialogContent.js +14 -21
  188. package/build/system/NewDialog/DialogDescription.d.ts +5 -0
  189. package/build/system/NewDialog/DialogDescription.js +31 -38
  190. package/build/system/NewDialog/DialogDescription.test.d.ts +1 -0
  191. package/build/system/NewDialog/DialogDescription.test.js +44 -67
  192. package/build/system/NewDialog/DialogOverlay.d.ts +2 -0
  193. package/build/system/NewDialog/DialogOverlay.js +28 -32
  194. package/build/system/NewDialog/DialogOverlay.test.d.ts +1 -0
  195. package/build/system/NewDialog/DialogOverlay.test.js +26 -42
  196. package/build/system/NewDialog/DialogTitle.d.ts +11 -0
  197. package/build/system/NewDialog/DialogTitle.js +19 -34
  198. package/build/system/NewDialog/DialogTitle.test.d.ts +1 -0
  199. package/build/system/NewDialog/DialogTitle.test.js +44 -67
  200. package/build/system/NewDialog/NewDialog.d.ts +29 -0
  201. package/build/system/NewDialog/NewDialog.js +74 -89
  202. package/build/system/NewDialog/NewDialog.stories.d.ts +38 -0
  203. package/build/system/NewDialog/NewDialog.stories.jsx +192 -0
  204. package/build/system/NewDialog/index.d.ts +31 -0
  205. package/build/system/NewDialog/index.js +9 -13
  206. package/build/system/NewForm/Fieldset.d.ts +2 -0
  207. package/build/system/NewForm/Fieldset.js +38 -43
  208. package/build/system/NewForm/Form.d.ts +2 -0
  209. package/build/system/NewForm/Form.js +21 -28
  210. package/build/system/NewForm/FormAutocomplete.d.ts +2 -0
  211. package/build/system/NewForm/FormAutocomplete.js +386 -381
  212. package/build/system/NewForm/FormAutocomplete.stories.d.ts +156 -0
  213. package/build/system/NewForm/FormAutocomplete.stories.jsx +159 -0
  214. package/build/system/NewForm/FormAutocomplete.test.d.ts +1 -0
  215. package/build/system/NewForm/FormAutocomplete.test.js +40 -73
  216. package/build/system/NewForm/FormAutocompleteMultiselect.d.ts +2 -0
  217. package/build/system/NewForm/FormAutocompleteMultiselect.js +456 -468
  218. package/build/system/NewForm/FormAutocompleteMultiselect.stories.d.ts +45 -0
  219. package/build/system/NewForm/FormAutocompleteMultiselect.stories.jsx +162 -0
  220. package/build/system/NewForm/FormAutocompleteMultiselect.test.d.ts +1 -0
  221. package/build/system/NewForm/FormAutocompleteMultiselect.test.js +37 -73
  222. package/build/system/NewForm/FormSelect.d.ts +2 -0
  223. package/build/system/NewForm/FormSelect.js +159 -140
  224. package/build/system/NewForm/FormSelect.stories.d.ts +137 -0
  225. package/build/system/NewForm/FormSelect.stories.jsx +138 -0
  226. package/build/system/NewForm/FormSelect.test.d.ts +1 -0
  227. package/build/system/NewForm/FormSelect.test.js +131 -227
  228. package/build/system/NewForm/FormSelectArrow.d.ts +2 -0
  229. package/build/system/NewForm/FormSelectArrow.js +35 -35
  230. package/build/system/NewForm/FormSelectContent.d.ts +2 -0
  231. package/build/system/NewForm/FormSelectContent.js +27 -34
  232. package/build/system/NewForm/FormSelectInline.d.ts +30 -0
  233. package/build/system/NewForm/FormSelectInline.js +41 -38
  234. package/build/system/NewForm/FormSelectLoading.d.ts +2 -0
  235. package/build/system/NewForm/FormSelectLoading.js +36 -45
  236. package/build/system/NewForm/FormSelectSearch.d.ts +2 -0
  237. package/build/system/NewForm/FormSelectSearch.js +23 -25
  238. package/build/system/NewForm/Legend.d.ts +2 -0
  239. package/build/system/NewForm/Legend.js +32 -37
  240. package/build/system/NewForm/index.d.ts +12 -0
  241. package/build/system/NewForm/index.js +30 -30
  242. package/build/system/Notice/Notice.d.ts +18 -0
  243. package/build/system/Notice/Notice.js +41 -55
  244. package/build/system/Notice/Notice.stories.d.ts +13 -0
  245. package/build/system/Notice/Notice.stories.js +3 -5
  246. package/build/system/Notice/index.d.ts +5 -0
  247. package/build/system/OptionRow/OptionRow.d.ts +2 -0
  248. package/build/system/OptionRow/OptionRow.js +146 -159
  249. package/build/system/OptionRow/OptionRow.stories.d.ts +8 -0
  250. package/build/system/OptionRow/OptionRow.stories.jsx +53 -0
  251. package/build/system/OptionRow/OptionRow.test.d.ts +1 -0
  252. package/build/system/OptionRow/OptionRow.test.js +38 -67
  253. package/build/system/OptionRow/index.d.ts +2 -0
  254. package/build/system/OptionRow/index.js +5 -4
  255. package/build/system/Progress/Progress.d.ts +2 -0
  256. package/build/system/Progress/Progress.js +69 -84
  257. package/build/system/Progress/Progress.stories.d.ts +8 -0
  258. package/build/system/Progress/Progress.stories.jsx +25 -0
  259. package/build/system/Progress/index.d.ts +2 -0
  260. package/build/system/Progress/index.js +5 -4
  261. package/build/system/ScreenReaderText/ScreenReader.test.d.ts +1 -0
  262. package/build/system/ScreenReaderText/ScreenReader.test.js +21 -25
  263. package/build/system/ScreenReaderText/ScreenReaderText.d.ts +14 -0
  264. package/build/system/ScreenReaderText/ScreenReaderText.js +13 -21
  265. package/build/system/ScreenReaderText/index.d.ts +3 -0
  266. package/build/system/ScreenReaderText/index.js +6 -8
  267. package/build/system/Spinner/Spinner.d.ts +9 -0
  268. package/build/system/Spinner/Spinner.js +12 -19
  269. package/build/system/Spinner/Spinner.stories.d.ts +7 -0
  270. package/build/system/Spinner/Spinner.stories.js +3 -5
  271. package/build/system/Spinner/Spinner.test.d.ts +1 -0
  272. package/build/system/Spinner/Spinner.test.js +59 -0
  273. package/build/system/Spinner/index.d.ts +1 -0
  274. package/build/system/Spinner/index.js +1 -0
  275. package/build/system/Table/Table.d.ts +14 -0
  276. package/build/system/Table/Table.js +7 -21
  277. package/build/system/Table/Table.stories.d.ts +9 -0
  278. package/build/system/Table/Table.stories.js +5 -12
  279. package/build/system/Table/TableCell.d.ts +15 -0
  280. package/build/system/Table/TableCell.js +13 -18
  281. package/build/system/Table/TableRow.d.ts +14 -0
  282. package/build/system/Table/TableRow.js +19 -24
  283. package/build/system/Table/index.d.ts +6 -0
  284. package/build/system/Table/index.js +1 -0
  285. package/build/system/Tabs/Tabs.d.ts +5 -0
  286. package/build/system/Tabs/Tabs.js +40 -38
  287. package/build/system/Tabs/Tabs.stories.d.ts +9 -0
  288. package/build/system/Tabs/Tabs.stories.jsx +69 -0
  289. package/build/system/Tabs/TabsContent.d.ts +16 -0
  290. package/build/system/Tabs/TabsContent.js +23 -30
  291. package/build/system/Tabs/TabsList.d.ts +15 -0
  292. package/build/system/Tabs/TabsList.js +24 -32
  293. package/build/system/Tabs/TabsTrigger.d.ts +2 -0
  294. package/build/system/Tabs/TabsTrigger.js +58 -66
  295. package/build/system/Tabs/index.d.ts +5 -0
  296. package/build/system/Tabs/index.js +8 -10
  297. package/build/system/Text/Text.d.ts +2 -0
  298. package/build/system/Text/Text.js +5 -13
  299. package/build/system/Text/Text.stories.d.ts +8 -0
  300. package/build/system/Text/Text.stories.js +4 -5
  301. package/build/system/Text/index.d.ts +4 -0
  302. package/build/system/Text/index.js +1 -0
  303. package/build/system/Tooltip/Tooltip.css +96 -0
  304. package/build/system/Tooltip/Tooltip.d.ts +15 -0
  305. package/build/system/Tooltip/Tooltip.js +23 -93
  306. package/build/system/Tooltip/Tooltip.stories.d.ts +15 -0
  307. package/build/system/Tooltip/Tooltip.stories.js +83 -21
  308. package/build/system/Tooltip/index.d.ts +5 -0
  309. package/build/system/Wizard/Wizard.d.ts +2 -0
  310. package/build/system/Wizard/Wizard.js +94 -103
  311. package/build/system/Wizard/Wizard.stories.d.ts +9 -0
  312. package/build/system/Wizard/Wizard.stories.jsx +145 -0
  313. package/build/system/Wizard/WizardStep.d.ts +2 -0
  314. package/build/system/Wizard/WizardStep.js +188 -198
  315. package/build/system/Wizard/WizardStepHorizontal.d.ts +2 -0
  316. package/build/system/Wizard/WizardStepHorizontal.js +43 -55
  317. package/build/system/Wizard/index.d.ts +4 -0
  318. package/build/system/Wizard/index.js +7 -8
  319. package/build/system/index.d.ts +51 -0
  320. package/build/system/index.js +104 -86
  321. package/build/system/theme/colors.d.ts +2 -0
  322. package/build/system/theme/colors.js +7 -12
  323. package/build/system/theme/getColor.d.ts +8 -0
  324. package/build/system/theme/getColor.js +47 -46
  325. package/build/system/theme/index.d.ts +322 -0
  326. package/build/system/theme/index.js +494 -396
  327. package/build/system/theme/textStyles.d.ts +71 -0
  328. package/build/system/theme/textStyles.js +45 -50
  329. package/build/system/utils/random.d.ts +1 -0
  330. package/build/system/utils/random.js +3 -7
  331. package/package.json +31 -37
  332. package/src/declaration.d.ts +1 -0
  333. package/src/system/Accordion/{Accordion.test.js → Accordion.test.tsx} +2 -2
  334. package/src/system/Accordion/{Accordion.js → Accordion.tsx} +87 -80
  335. package/src/system/Avatar/Avatar.stories.tsx +18 -0
  336. package/src/system/Avatar/{Avatar.test.js → Avatar.test.tsx} +2 -2
  337. package/src/system/Avatar/{Avatar.js → Avatar.tsx} +17 -19
  338. package/src/system/Avatar/index.ts +4 -0
  339. package/src/system/Badge/Badge.stories.tsx +57 -0
  340. package/src/system/Badge/{Badge.test.js → Badge.test.tsx} +3 -3
  341. package/src/system/Badge/{Badge.js → Badge.tsx} +10 -15
  342. package/src/system/Badge/index.ts +4 -0
  343. package/src/system/Box/Box.stories.tsx +13 -1
  344. package/src/system/Box/Box.tsx +4 -8
  345. package/src/system/Button/Button.stories.tsx +110 -0
  346. package/src/system/Button/Button.tsx +67 -0
  347. package/src/system/Card/{Card.stories.jsx → Card.stories.tsx} +1 -1
  348. package/src/system/Card/{Card.test.js → Card.test.tsx} +2 -2
  349. package/src/system/Card/Card.tsx +40 -0
  350. package/src/system/Card/index.ts +4 -0
  351. package/src/system/Code/Code.stories.tsx +44 -0
  352. package/src/system/Code/{Code.test.js → Code.test.tsx} +6 -4
  353. package/src/system/Code/{Code.js → Code.tsx} +27 -22
  354. package/src/system/Code/index.ts +4 -0
  355. package/src/system/Flex/Flex.tsx +11 -0
  356. package/src/system/Flex/index.ts +4 -0
  357. package/src/system/Grid/Grid.tsx +11 -0
  358. package/src/system/Grid/index.ts +4 -0
  359. package/src/system/Heading/Heading.tsx +8 -17
  360. package/src/system/Link/Link.stories.tsx +23 -0
  361. package/src/system/Link/Link.tsx +43 -0
  362. package/src/system/Link/index.ts +4 -0
  363. package/src/system/NewForm/FormAutocomplete.js +2 -2
  364. package/src/system/Notice/Notice.tsx +129 -0
  365. package/src/system/OptionRow/OptionRow.test.js +1 -1
  366. package/src/system/ScreenReaderText/ScreenReaderText.tsx +40 -0
  367. package/src/system/Spinner/Spinner.test.tsx +30 -0
  368. package/src/system/Spinner/Spinner.tsx +34 -0
  369. package/src/system/Spinner/index.ts +1 -0
  370. package/src/system/Table/{Table.stories.jsx → Table.stories.tsx} +6 -6
  371. package/src/system/Table/{Table.js → Table.tsx} +14 -18
  372. package/src/system/Table/{TableCell.js → TableCell.tsx} +14 -12
  373. package/src/system/Table/TableRow.tsx +63 -0
  374. package/src/system/Table/index.ts +6 -0
  375. package/src/system/Text/{Text.stories.jsx → Text.stories.tsx} +1 -0
  376. package/src/system/Text/Text.tsx +25 -0
  377. package/src/system/Text/index.ts +4 -0
  378. package/src/system/Tooltip/Tooltip.css +96 -0
  379. package/src/system/Tooltip/Tooltip.stories.tsx +133 -0
  380. package/src/system/Tooltip/Tooltip.tsx +39 -0
  381. package/src/system/index.js +1 -2
  382. package/src/system/theme/index.js +21 -1
  383. package/test/fileMock.ts +1 -0
  384. package/test/setupAfterEnv.ts +5 -0
  385. package/tsconfig.definition.json +12 -0
  386. package/.storybook/decorators/withBoundingBox.jsx +0 -22
  387. package/build/system/Box/Box.stories.tsx +0 -11
  388. package/build/system/Box/Box.tsx +0 -22
  389. package/build/system/Button/ButtonSubmit.stories.js +0 -58
  390. package/build/system/ConfirmationDialog/ConfirmationDialog.stories.js +0 -42
  391. package/build/system/Dialog/Dialog.stories.js +0 -70
  392. package/build/system/Dropdown/Dropdown.stories.js +0 -197
  393. package/build/system/Form/Checkbox.stories.js +0 -73
  394. package/build/system/Form/Input.stories.js +0 -51
  395. package/build/system/Form/InputWithCopyButton.stories.js +0 -39
  396. package/build/system/Form/Radio.stories.js +0 -115
  397. package/build/system/Form/RadioBoxGroup.stories.js +0 -62
  398. package/build/system/Form/Textarea.stories.js +0 -59
  399. package/build/system/Form/Toggle.stories.js +0 -104
  400. package/build/system/Heading/Heading.stories.tsx +0 -19
  401. package/build/system/Heading/Heading.tsx +0 -38
  402. package/build/system/NewConfirmationDialog/NewConfirmationDialog.stories.js +0 -46
  403. package/build/system/NewDialog/NewDialog.stories.js +0 -247
  404. package/build/system/NewForm/FormAutocomplete.stories.js +0 -220
  405. package/build/system/NewForm/FormAutocompleteMultiselect.stories.js +0 -231
  406. package/build/system/NewForm/FormSelect.stories.js +0 -171
  407. package/build/system/Notification/Notification.js +0 -97
  408. package/build/system/Notification/Notification.stories.js +0 -29
  409. package/build/system/Notification/index.js +0 -5
  410. package/build/system/OptionRow/OptionRow.stories.js +0 -64
  411. package/build/system/Progress/Progress.stories.js +0 -36
  412. package/build/system/Tabs/Tabs.stories.js +0 -113
  413. package/build/system/Wizard/Wizard.stories.js +0 -182
  414. package/src/system/Avatar/Avatar.stories.jsx +0 -11
  415. package/src/system/Avatar/index.js +0 -6
  416. package/src/system/Badge/Badge.stories.jsx +0 -43
  417. package/src/system/Badge/index.js +0 -6
  418. package/src/system/Button/Button.js +0 -63
  419. package/src/system/Button/Button.stories.jsx +0 -87
  420. package/src/system/Card/Card.js +0 -39
  421. package/src/system/Card/index.js +0 -6
  422. package/src/system/Code/Code.stories.jsx +0 -37
  423. package/src/system/Code/index.js +0 -6
  424. package/src/system/Flex/Flex.js +0 -15
  425. package/src/system/Flex/index.js +0 -6
  426. package/src/system/Grid/Grid.js +0 -16
  427. package/src/system/Grid/index.js +0 -6
  428. package/src/system/Link/Link.js +0 -42
  429. package/src/system/Link/Link.stories.jsx +0 -15
  430. package/src/system/Link/index.js +0 -6
  431. package/src/system/Notice/Notice.js +0 -136
  432. package/src/system/Notification/Notification.js +0 -66
  433. package/src/system/Notification/Notification.stories.jsx +0 -16
  434. package/src/system/Notification/index.js +0 -6
  435. package/src/system/ScreenReaderText/ScreenReaderText.js +0 -39
  436. package/src/system/Spinner/Spinner.js +0 -34
  437. package/src/system/Spinner/index.js +0 -6
  438. package/src/system/Table/TableRow.js +0 -50
  439. package/src/system/Table/index.js +0 -8
  440. package/src/system/Text/Text.js +0 -33
  441. package/src/system/Text/index.js +0 -6
  442. package/src/system/Tooltip/Tooltip.js +0 -79
  443. package/src/system/Tooltip/Tooltip.stories.jsx +0 -22
  444. package/test/fileMock.js +0 -1
  445. package/test/setupAfterEnv.js +0 -13
  446. package/test/setupTests.js +0 -4
  447. /package/.storybook/decorators/{withColorMode.jsx → withColorMode.tsx} +0 -0
  448. /package/src/system/Accordion/{Accordion.stories.jsx → Accordion.stories.tsx} +0 -0
  449. /package/src/system/Accordion/{index.js → index.ts} +0 -0
  450. /package/src/system/Flex/{Flex.stories.jsx → Flex.stories.tsx} +0 -0
  451. /package/src/system/Grid/{Grid.stories.jsx → Grid.stories.tsx} +0 -0
  452. /package/src/system/Notice/{Notice.stories.jsx → Notice.stories.tsx} +0 -0
  453. /package/src/system/Notice/{index.js → index.ts} +0 -0
  454. /package/src/system/Spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
  455. /package/src/system/Tooltip/{index.js → index.ts} +0 -0
@@ -0,0 +1,71 @@
1
+ export namespace textStyles {
2
+ namespace h1 {
3
+ let fontSize: number;
4
+ let marginBottom: number;
5
+ let letterSpacing: string;
6
+ let fontWeight: string;
7
+ let fontFamily: string;
8
+ let color: string;
9
+ }
10
+ namespace h2 {
11
+ let fontSize_1: number;
12
+ export { fontSize_1 as fontSize };
13
+ let marginBottom_1: number;
14
+ export { marginBottom_1 as marginBottom };
15
+ let letterSpacing_1: string;
16
+ export { letterSpacing_1 as letterSpacing };
17
+ let fontWeight_1: number;
18
+ export { fontWeight_1 as fontWeight };
19
+ let color_1: string;
20
+ export { color_1 as color };
21
+ }
22
+ namespace h3 {
23
+ let fontSize_2: number;
24
+ export { fontSize_2 as fontSize };
25
+ let marginBottom_2: number;
26
+ export { marginBottom_2 as marginBottom };
27
+ let letterSpacing_2: string;
28
+ export { letterSpacing_2 as letterSpacing };
29
+ export let lineHeight: number;
30
+ let fontWeight_2: string;
31
+ export { fontWeight_2 as fontWeight };
32
+ let color_2: string;
33
+ export { color_2 as color };
34
+ }
35
+ namespace h4 {
36
+ let fontSize_3: number;
37
+ export { fontSize_3 as fontSize };
38
+ let marginBottom_3: number;
39
+ export { marginBottom_3 as marginBottom };
40
+ let lineHeight_1: number;
41
+ export { lineHeight_1 as lineHeight };
42
+ let fontWeight_3: string;
43
+ export { fontWeight_3 as fontWeight };
44
+ let color_3: string;
45
+ export { color_3 as color };
46
+ }
47
+ namespace h5 {
48
+ let fontSize_4: number;
49
+ export { fontSize_4 as fontSize };
50
+ let marginBottom_4: number;
51
+ export { marginBottom_4 as marginBottom };
52
+ let lineHeight_2: number;
53
+ export { lineHeight_2 as lineHeight };
54
+ let fontWeight_4: string;
55
+ export { fontWeight_4 as fontWeight };
56
+ let color_4: string;
57
+ export { color_4 as color };
58
+ }
59
+ namespace caps {
60
+ let fontSize_5: number;
61
+ export { fontSize_5 as fontSize };
62
+ let marginBottom_5: number;
63
+ export { marginBottom_5 as marginBottom };
64
+ let color_5: string;
65
+ export { color_5 as color };
66
+ let fontWeight_5: string;
67
+ export { fontWeight_5 as fontWeight };
68
+ let letterSpacing_3: string;
69
+ export { letterSpacing_3 as letterSpacing };
70
+ }
71
+ }
@@ -1,51 +1,46 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.textStyles = void 0;
5
- var textStyles = {
6
- h1: {
7
- fontSize: 5,
8
- marginBottom: 3,
9
- letterSpacing: '-.02em',
10
- fontWeight: 'body',
11
- fontFamily: 'serif',
12
- color: 'heading'
13
- },
14
- h2: {
15
- fontSize: 4,
16
- marginBottom: 2,
17
- letterSpacing: '-.005em',
18
- fontWeight: 400,
19
- color: 'heading'
20
- },
21
- h3: {
22
- fontSize: 3,
23
- marginBottom: 3,
24
- letterSpacing: '-.005em',
25
- lineHeight: 1.4,
26
- fontWeight: 'heading',
27
- color: 'heading'
28
- },
29
- h4: {
30
- fontSize: 2,
31
- marginBottom: 1,
32
- lineHeight: 1.5,
33
- fontWeight: 'heading',
34
- color: 'heading'
35
- },
36
- h5: {
37
- fontSize: 1,
38
- marginBottom: 1,
39
- lineHeight: 1.5,
40
- fontWeight: 'heading',
41
- color: 'heading'
42
- },
43
- caps: {
44
- fontSize: 1,
45
- marginBottom: 2,
46
- color: 'muted',
47
- fontWeight: 'bold',
48
- letterSpacing: '.05em'
49
- }
1
+ export const textStyles = {
2
+ h1: {
3
+ fontSize: 5,
4
+ marginBottom: 3,
5
+ letterSpacing: '-.02em',
6
+ fontWeight: 'body',
7
+ fontFamily: 'serif',
8
+ color: 'heading',
9
+ },
10
+ h2: {
11
+ fontSize: 4,
12
+ marginBottom: 2,
13
+ letterSpacing: '-.005em',
14
+ fontWeight: 400,
15
+ color: 'heading',
16
+ },
17
+ h3: {
18
+ fontSize: 3,
19
+ marginBottom: 3,
20
+ letterSpacing: '-.005em',
21
+ lineHeight: 1.4,
22
+ fontWeight: 'heading',
23
+ color: 'heading',
24
+ },
25
+ h4: {
26
+ fontSize: 2,
27
+ marginBottom: 1,
28
+ lineHeight: 1.5,
29
+ fontWeight: 'heading',
30
+ color: 'heading',
31
+ },
32
+ h5: {
33
+ fontSize: 1,
34
+ marginBottom: 1,
35
+ lineHeight: 1.5,
36
+ fontWeight: 'heading',
37
+ color: 'heading',
38
+ },
39
+ caps: {
40
+ fontSize: 1,
41
+ marginBottom: 2,
42
+ color: 'muted',
43
+ fontWeight: 'bold',
44
+ letterSpacing: '.05em',
45
+ },
50
46
  };
51
- exports.textStyles = textStyles;
@@ -0,0 +1 @@
1
+ export function generateId(): string;
@@ -1,7 +1,3 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.generateId = generateId;
5
- function generateId() {
6
- return Math.random().toString(36).substring(2, 15);
7
- }
1
+ export function generateId() {
2
+ return Math.random().toString( 36 ).substring( 2, 15 );
3
+ }
package/package.json CHANGED
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "@automattic/vip-design-system",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "main": "build/system/index.js",
5
5
  "scripts": {
6
6
  "build-storybook": "storybook build",
7
7
  "cmd:format": "prettier '**/*.(js|json|jsx|md|mdx|ts|tsx|yml|yaml)'",
8
8
  "cmd:lint": "eslint --ext 'js,jsx,ts,tsx' --max-warnings 0",
9
9
  "prepare": "npm run build",
10
- "build": "npm run theme-update && cross-env NODE_ENV=production babel src --out-dir build --copy-files && npm run theme-builder-copy",
10
+ "build": "npm run theme-update && npm run build:app && npm run build:types && npm run theme-builder-copy",
11
+ "build:app": "cross-env NODE_ENV=production babel src --copy-files --delete-dir-on-start --extensions '.ts,.tsx' --out-dir build",
12
+ "build:types": "tsc -p tsconfig.definition.json --emitDeclarationOnly --noEmit false",
11
13
  "check-types": "tsc",
12
14
  "format": "npm run cmd:format -- --write",
13
15
  "format:check": "npm run cmd:format -- --check",
14
- "jest": "NODE_ENV=test jest --detectOpenHandles --env=jsdom",
16
+ "jest": "NODE_ENV=test jest --env=jsdom",
15
17
  "jest:coverage": "npm run jest && open-cli ./coverage/index.html",
16
18
  "jest:watch": "npm run jest --watch",
17
19
  "theme-builder-copy": "npm run theme-builder-copy-light && npm run theme-builder-copy-dark",
@@ -58,59 +60,51 @@
58
60
  "<rootDir>/src",
59
61
  "<rootDir>/test"
60
62
  ],
61
- "setupFiles": [
62
- "<rootDir>/test/setupTests.js"
63
- ],
64
63
  "setupFilesAfterEnv": [
65
- "<rootDir>/test/setupAfterEnv.js"
66
- ],
67
- "transformIgnorePatterns": [
68
- "\\.stories.jsx$"
64
+ "<rootDir>/test/setupAfterEnv.ts"
69
65
  ],
70
66
  "transform": {
71
67
  "\\.[jt]sx?$": "babel-jest"
72
68
  },
73
69
  "moduleNameMapper": {
74
- "\\.(css|less)$": "<rootDir>/test/fileMock.js"
70
+ "\\.(css|less)$": "<rootDir>/test/fileMock.ts"
75
71
  }
76
72
  },
77
73
  "devDependencies": {
78
- "@automattic/eslint-plugin-wpvip": "0.5.8",
79
- "@axe-core/react": "4.4.3",
80
- "@babel/cli": "7.22.9",
81
- "@babel/core": "7.22.9",
82
- "@babel/preset-env": "7.22.9",
83
- "@babel/preset-react": "7.22.5",
84
- "@babel/preset-typescript": "7.22.15",
85
- "@babel/runtime": "7.22.6",
74
+ "@automattic/eslint-plugin-wpvip": "0.6.0",
75
+ "@axe-core/react": "4.7.3",
76
+ "@babel/cli": "7.23.0",
77
+ "@babel/core": "7.23.0",
78
+ "@babel/preset-env": "7.22.20",
79
+ "@babel/preset-react": "7.22.15",
80
+ "@babel/preset-typescript": "7.23.0",
81
+ "@babel/runtime": "7.23.1",
86
82
  "@emotion/react": "11.11.1",
87
83
  "@radix-ui/react-icons": "^1.1.1",
88
- "@storybook/addon-a11y": "7.2.1",
89
- "@storybook/addon-actions": "7.2.1",
90
- "@storybook/addon-controls": "7.2.1",
91
- "@storybook/addon-essentials": "7.2.1",
92
- "@storybook/addon-links": "7.2.1",
93
- "@storybook/addon-storysource": "7.2.1",
94
- "@storybook/react": "7.2.1",
95
- "@storybook/react-webpack5": "7.2.1",
96
- "@testing-library/dom": "^8.11.1",
97
- "@testing-library/jest-dom": "^5.15.0",
84
+ "@storybook/addon-a11y": "7.4.5",
85
+ "@storybook/addon-essentials": "7.4.5",
86
+ "@storybook/addon-links": "7.4.5",
87
+ "@storybook/addon-storysource": "7.4.5",
88
+ "@storybook/react": "7.4.5",
89
+ "@storybook/react-webpack5": "7.4.5",
90
+ "@testing-library/dom": "9.3.3",
91
+ "@testing-library/jest-dom": "6.1.3",
98
92
  "@testing-library/react": "14.0.0",
99
93
  "@tsconfig/node18": "18.2.2",
100
- "@types/react": "18.2.17",
94
+ "@types/jest": "29.5.5",
95
+ "@types/jest-axe": "3.5.6",
96
+ "@types/react": "18.2.22",
101
97
  "@types/react-dom": "18.2.7",
102
98
  "cross-env": "7.0.3",
103
- "eslint": "8.46.0",
104
- "eslint-plugin-storybook": "^0.6.13",
105
- "jest": "29.6.2",
99
+ "eslint": "8.50.0",
100
+ "eslint-plugin-storybook": "0.6.14",
101
+ "jest": "29.7.0",
106
102
  "jest-axe": "8.0.0",
107
- "jest-environment-jsdom": "29.6.2",
108
- "open-cli": "^7.0.1",
103
+ "jest-environment-jsdom": "29.7.0",
109
104
  "prettier": "npm:wp-prettier@2.8.5",
110
105
  "react": "18.2.0",
111
106
  "react-dom": "18.2.0",
112
- "react-refresh": "^0.9.0",
113
- "storybook": "7.2.1",
107
+ "storybook": "7.4.5",
114
108
  "theme-ui": "0.16.0",
115
109
  "token-transformer": "^0.0.29",
116
110
  "typescript": "5.2.2"
@@ -0,0 +1 @@
1
+ declare module '*.css';
@@ -41,7 +41,7 @@ describe( '<Accordion />', () => {
41
41
  expect( screen.queryByText( 'content two' ) ).toBeNull();
42
42
 
43
43
  // Check for accessibility issues
44
- await expect( await axe( container ) ).toHaveNoViolations();
44
+ expect( await axe( container ) ).toHaveNoViolations();
45
45
  } );
46
46
 
47
47
  it( 'should open the content when clicking on its trigger', async () => {
@@ -56,6 +56,6 @@ describe( '<Accordion />', () => {
56
56
  expect( screen.queryByText( 'content two' ) ).toBeInTheDocument();
57
57
 
58
58
  // Check for accessibility issues
59
- await expect( await axe( container ) ).toHaveNoViolations();
59
+ expect( await axe( container ) ).toHaveNoViolations();
60
60
  } );
61
61
  } );
@@ -3,17 +3,18 @@
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import React from 'react';
7
- import PropTypes from 'prop-types';
6
+ import React, { ReactNode } from 'react';
8
7
  import { MdChevronRight } from 'react-icons/md';
9
8
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
10
9
  import { keyframes } from '@emotion/react';
11
- import classNames from 'classnames';
10
+ import classNames, { Argument } from 'classnames';
12
11
 
13
12
  /**
14
13
  * Internal dependencies
15
14
  */
16
15
  import { Heading } from '../Heading';
16
+ import { Theme, ThemeUIStyleObject } from 'theme-ui';
17
+ import { HeadingProps } from '../Heading/Heading';
17
18
 
18
19
  const slideDown = keyframes( {
19
20
  from: { height: 0 },
@@ -25,7 +26,36 @@ const slideUp = keyframes( {
25
26
  to: { height: 0 },
26
27
  } );
27
28
 
28
- export const Item = ( { children, ...props } ) => (
29
+ // temporary solution while we converte the theme to TS
30
+ interface AccordionTheme extends Theme {
31
+ outline?: Record< string, string >;
32
+ }
33
+ interface AccordionItemProps {
34
+ children: ReactNode;
35
+ value: string;
36
+ }
37
+ interface TriggerProps {
38
+ children: ReactNode;
39
+ headingVariant?: HeadingProps[ 'variant' ];
40
+ sx?: ThemeUIStyleObject;
41
+ }
42
+ interface TriggerWithIconProps {
43
+ children: ReactNode;
44
+ icon: ReactNode;
45
+ }
46
+
47
+ interface ContentProps {
48
+ children: ReactNode;
49
+ sx?: ThemeUIStyleObject;
50
+ }
51
+ interface RootProps {
52
+ caption?: string;
53
+ children?: ReactNode;
54
+ className?: Argument;
55
+ sx?: ThemeUIStyleObject;
56
+ defaultValue?: string;
57
+ }
58
+ export const Item = ( { children, ...props }: AccordionItemProps ) => (
29
59
  <AccordionPrimitive.Item
30
60
  { ...props }
31
61
  sx={ {
@@ -43,7 +73,7 @@ export const Item = ( { children, ...props } ) => (
43
73
  borderBottomLeftRadius: 4,
44
74
  borderBottomRightRadius: 4,
45
75
  },
46
- '&:focus-within': theme => theme.outline,
76
+ '&:focus-within': ( theme: AccordionTheme ) => theme.outline,
47
77
  } }
48
78
  >
49
79
  { children }
@@ -52,11 +82,7 @@ export const Item = ( { children, ...props } ) => (
52
82
 
53
83
  Item.displayName = 'Accordion.Item';
54
84
 
55
- Item.propTypes = {
56
- children: PropTypes.node.isRequired,
57
- };
58
-
59
- export const Trigger = React.forwardRef(
85
+ export const Trigger = React.forwardRef< HTMLButtonElement, TriggerProps >(
60
86
  ( { children, headingVariant = 'h3', sx = {}, ...props }, forwardedRef ) => (
61
87
  <Heading
62
88
  sx={ {
@@ -115,85 +141,66 @@ export const Trigger = React.forwardRef(
115
141
 
116
142
  Trigger.displayName = 'Accordion.Trigger';
117
143
 
118
- Trigger.propTypes = {
119
- children: PropTypes.node.isRequired,
120
- headingVariant: PropTypes.string,
121
- sx: PropTypes.object,
122
- };
123
-
124
- export const TriggerWithIcon = React.forwardRef( ( { children, icon, ...props }, forwardedRef ) => (
125
- <Trigger { ...props } ref={ forwardedRef }>
126
- <span sx={ { color: 'icon.primary', fontSize: 3 } }>{ icon }</span>
127
- <div sx={ { color: 'accordion.trigger.text', flexGrow: 1, textAlign: 'left', ml: 3 } }>
128
- { children }
129
- </div>
130
- </Trigger>
131
- ) );
144
+ export const TriggerWithIcon = React.forwardRef< HTMLButtonElement, TriggerWithIconProps >(
145
+ ( { children, icon, ...props }, forwardedRef ) => (
146
+ <Trigger { ...props } ref={ forwardedRef }>
147
+ <span sx={ { color: 'icon.primary', fontSize: 3 } }>{ icon }</span>
148
+ <div sx={ { color: 'accordion.trigger.text', flexGrow: 1, textAlign: 'left', ml: 3 } }>
149
+ { children }
150
+ </div>
151
+ </Trigger>
152
+ )
153
+ );
132
154
 
133
155
  TriggerWithIcon.displayName = 'Accordion.TriggerWithIcon';
134
156
 
135
- TriggerWithIcon.propTypes = {
136
- children: PropTypes.node.isRequired,
137
- icon: PropTypes.node.isRequired,
138
- };
157
+ export const Content = React.forwardRef< HTMLDivElement, ContentProps >(
158
+ ( { children, sx = {}, ...props }, forwardedRef ) => {
159
+ return (
160
+ <AccordionPrimitive.Content
161
+ sx={ {
162
+ backgroundColor: 'accordion.content.background',
163
+ color: 'accordion.content.text',
164
+ fontSize: 2,
165
+ overflow: 'hidden',
166
+ px: 3,
167
+ py: 2,
168
+
169
+ '&[data-state="open"]': {
170
+ animation: `${ slideDown } 300ms cubic-bezier(0.87, 0, 0.13, 1)`,
171
+ },
172
+ '&[data-state="closed"]': {
173
+ animation: `${ slideUp } 300ms cubic-bezier(0.87, 0, 0.13, 1)`,
174
+ },
175
+ ...sx,
176
+ } }
177
+ { ...props }
178
+ ref={ forwardedRef }
179
+ >
180
+ { children }
181
+ </AccordionPrimitive.Content>
182
+ );
183
+ }
184
+ );
185
+
186
+ Content.displayName = 'Accordion.Content';
139
187
 
140
- export const Content = React.forwardRef( ( { children, sx = {}, ...props }, forwardedRef ) => {
141
- return (
142
- <AccordionPrimitive.Content
188
+ export const Root = React.forwardRef< HTMLDivElement, RootProps >(
189
+ ( { sx = {}, children, className, ...props }, forwardRef ) => (
190
+ <AccordionPrimitive.Root
191
+ className={ classNames( 'vip-accordion-component', className ) }
192
+ collapsible
193
+ type="single"
194
+ ref={ forwardRef }
143
195
  sx={ {
144
- backgroundColor: 'accordion.content.background',
145
- color: 'accordion.content.text',
146
- fontSize: 2,
147
- overflow: 'hidden',
148
- px: 3,
149
- py: 2,
150
-
151
- '&[data-state="open"]': {
152
- animation: `${ slideDown } 300ms cubic-bezier(0.87, 0, 0.13, 1)`,
153
- },
154
- '&[data-state="closed"]': {
155
- animation: `${ slideUp } 300ms cubic-bezier(0.87, 0, 0.13, 1)`,
156
- },
196
+ borderRadius: 6,
157
197
  ...sx,
158
198
  } }
159
199
  { ...props }
160
- ref={ forwardedRef }
161
200
  >
162
201
  { children }
163
- </AccordionPrimitive.Content>
164
- );
165
- } );
166
-
167
- Content.displayName = 'Accordion.Content';
168
-
169
- Content.propTypes = {
170
- children: PropTypes.node.isRequired,
171
- sx: PropTypes.object,
172
- };
173
-
174
- const Root = React.forwardRef( ( { sx = {}, children, className, ...props }, forwardRef ) => (
175
- <AccordionPrimitive.Root
176
- className={ classNames( 'vip-accordion-component', className ) }
177
- collapsible
178
- ref={ forwardRef }
179
- sx={ {
180
- borderRadius: 6,
181
- ...sx,
182
- } }
183
- { ...props }
184
- >
185
- { children }
186
- </AccordionPrimitive.Root>
187
- ) );
202
+ </AccordionPrimitive.Root>
203
+ )
204
+ );
188
205
 
189
206
  Root.displayName = 'Accordion';
190
-
191
- Root.propTypes = {
192
- children: PropTypes.node,
193
- className: PropTypes.any,
194
- defaultValue: PropTypes.any,
195
- sx: PropTypes.object,
196
- type: PropTypes.oneOf( [ 'single', 'multiple' ] ),
197
- };
198
-
199
- export { Root };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { StoryObj } from '@storybook/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { Avatar } from '..';
10
+
11
+ export default {
12
+ title: 'Avatar',
13
+ component: Avatar,
14
+ };
15
+
16
+ type Story = StoryObj< typeof Avatar >;
17
+
18
+ export const Default: Story = {};
@@ -16,7 +16,7 @@ describe( '<Avatar />', () => {
16
16
  expect( screen.getByText( 'J' ) ).toBeInTheDocument();
17
17
 
18
18
  // Check for accessibility issues
19
- await expect( await axe( container ) ).toHaveNoViolations();
19
+ expect( await axe( container ) ).toHaveNoViolations();
20
20
  } );
21
21
 
22
22
  it( 'renders the Avatar with image', async () => {
@@ -25,6 +25,6 @@ describe( '<Avatar />', () => {
25
25
  expect( screen.getByAltText( 'Avatar image from John Doe' ) ).toBeInTheDocument();
26
26
 
27
27
  // Check for accessibility issues
28
- await expect( await axe( container ) ).toHaveNoViolations();
28
+ expect( await axe( container ) ).toHaveNoViolations();
29
29
  } );
30
30
  } );
@@ -1,22 +1,29 @@
1
- /** @jsxImportSource theme-ui */
2
-
3
1
  /**
4
2
  * External dependencies
5
3
  */
6
- import React from 'react';
7
- import PropTypes from 'prop-types';
8
- import { Image } from 'theme-ui';
9
- import classNames from 'classnames';
4
+ import { forwardRef, Ref } from 'react';
5
+ import { Image, ImageProps } from 'theme-ui';
6
+ import classNames, { Argument } from 'classnames';
10
7
 
11
8
  /**
12
9
  * Internal dependencies
13
10
  */
14
11
  import { Box, Text } from '..';
15
12
 
16
- const Avatar = React.forwardRef(
13
+ export interface AvatarProps {
14
+ isVIP?: boolean;
15
+ size?: number;
16
+ src?: string;
17
+ name?: string;
18
+ className?: Argument;
19
+ }
20
+
21
+ type AvatarImageProps = AvatarProps & ImageProps;
22
+
23
+ export const Avatar = forwardRef< HTMLElement, AvatarImageProps >(
17
24
  (
18
- { isVIP = false, name = null, size = 32, src = null, className = null, ...props },
19
- forwardRef
25
+ { isVIP = false, name, size = 32, src, className, ...props }: AvatarImageProps,
26
+ ref: Ref< HTMLElement >
20
27
  ) => (
21
28
  <Box
22
29
  sx={ {
@@ -36,7 +43,7 @@ const Avatar = React.forwardRef(
36
43
  } }
37
44
  className={ classNames( 'vip-avatar-component', className ) }
38
45
  aria-hidden="true"
39
- ref={ forwardRef }
46
+ ref={ ref }
40
47
  { ...props }
41
48
  >
42
49
  { src ? (
@@ -68,12 +75,3 @@ const Avatar = React.forwardRef(
68
75
  );
69
76
 
70
77
  Avatar.displayName = 'Avatar';
71
- Avatar.propTypes = {
72
- isVIP: PropTypes.bool,
73
- size: PropTypes.number,
74
- src: PropTypes.string,
75
- name: PropTypes.string,
76
- className: PropTypes.any,
77
- };
78
-
79
- export { Avatar };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ export { Avatar } from './Avatar';