@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
@@ -1,144 +1,163 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.FormSelect = void 0;
5
- var _react = _interopRequireWildcard(require("react"));
6
- var _propTypes = _interopRequireDefault(require("prop-types"));
7
- var _Label = require("../Form/Label");
8
- var _FormSelectArrow = require("./FormSelectArrow");
9
- var _FormSelectContent = require("./FormSelectContent");
10
- var _Input = require("../Form/Input.styles");
11
- var _Form = require("../Form");
12
- var _jsxRuntime = require("theme-ui/jsx-runtime");
13
- var _excluded = ["isInline", "placeholder", "forLabel", "options", "required", "label", "getOptionLabel", "getOptionValue", "onChange", "hasError", "errorMessage"],
14
- _excluded2 = ["options"];
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
19
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /** @jsxImportSource theme-ui */ /**
20
- * External dependencies
21
- */ /**
22
- * Internal dependencies
23
- */
24
- var MAX_SUGGESTED_OPTIONS = 15;
25
- var isDev = process.env.NODE_ENV !== 'production';
26
- var defaultStyles = _extends({}, _Input.baseControlStyle, {
27
- paddingLeft: 3,
28
- paddingRight: 40,
29
- // 40px for the icon
30
- py: 0,
31
- appearance: 'none',
32
- minHeight: '36px',
33
- lineHeight: '36px'
34
- });
35
- var renderOption = function renderOption(label, value) {
36
- return (0, _jsxRuntime.jsx)("option", {
37
- value: value,
38
- children: label
39
- }, value);
1
+ /** @jsxImportSource theme-ui */
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import React, { useCallback, useMemo } from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { Label } from '../Form/Label';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { FormSelectArrow } from './FormSelectArrow';
14
+ import { FormSelectContent } from './FormSelectContent';
15
+ import { baseControlStyle } from '../Form/Input.styles';
16
+ import { Validation } from '../Form';
17
+
18
+ const MAX_SUGGESTED_OPTIONS = 15;
19
+ const isDev = process.env.NODE_ENV !== 'production';
20
+
21
+ const defaultStyles = {
22
+ ...baseControlStyle,
23
+ paddingLeft: 3,
24
+ paddingRight: 40, // 40px for the icon
25
+ py: 0,
26
+ appearance: 'none',
27
+ minHeight: '36px',
28
+ lineHeight: '36px',
40
29
  };
41
- var renderGroup = function renderGroup(groupLabel, groupOptions) {
42
- return (0, _jsxRuntime.jsx)("optgroup", {
43
- label: groupLabel,
44
- children: groupOptions.map(function (_ref) {
45
- var label = _ref.label,
46
- value = _ref.value;
47
- return renderOption(label, value);
48
- })
49
- }, groupLabel);
30
+
31
+ const renderOption = ( label, value ) => {
32
+ return (
33
+ <option key={ value } value={ value }>
34
+ { label }
35
+ </option>
36
+ );
50
37
  };
51
- var FormSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, forwardRef) {
52
- var isInline = _ref2.isInline,
53
- placeholder = _ref2.placeholder,
54
- _ref2$forLabel = _ref2.forLabel,
55
- forLabel = _ref2$forLabel === void 0 ? 'vip-form-select' : _ref2$forLabel,
56
- options = _ref2.options,
57
- required = _ref2.required,
58
- label = _ref2.label,
59
- getOptionLabel = _ref2.getOptionLabel,
60
- getOptionValue = _ref2.getOptionValue,
61
- onChange = _ref2.onChange,
62
- hasError = _ref2.hasError,
63
- errorMessage = _ref2.errorMessage,
64
- props = _objectWithoutPropertiesLoose(_ref2, _excluded);
65
- if (isDev && options.length > MAX_SUGGESTED_OPTIONS) {
66
- // eslint-disable-next-line no-console
67
- console.info('For 16 or more items, consider using another component with a typeahead capability.');
68
- }
69
- var getAllOptions = (0, _react.useMemo)(function () {
70
- return [].concat(options.filter(function (option) {
71
- return !option.options;
72
- }), options.filter(function (option) {
73
- return option.options;
74
- }).map(function (option) {
75
- return option.options;
76
- })).reduce(function (a, b) {
77
- return a.concat(b);
78
- }, []);
79
- }, [options]);
80
- var optionLabel = (0, _react.useCallback)(function (option) {
81
- return getOptionLabel ? getOptionLabel(option) : option.label;
82
- }, [getOptionLabel]);
83
- var optionValue = (0, _react.useCallback)(function (option) {
84
- return getOptionValue ? getOptionValue(option) : option.value;
85
- }, [getOptionValue]);
86
- var getOptionByValue = (0, _react.useCallback)(function (value) {
87
- return getAllOptions.find(function (option) {
88
- return "" + optionValue(option) === "" + value;
89
- });
90
- }, [getAllOptions, optionValue]);
91
- var onValueChange = (0, _react.useCallback)(function (event) {
92
- return onChange ? onChange(getOptionByValue(event.target.value), event) : getOptionByValue(event.target.value);
93
- }, [onChange, getOptionByValue]);
94
- var SelectLabel = function SelectLabel() {
95
- return (0, _jsxRuntime.jsx)(_Label.Label, {
96
- required: required,
97
- htmlFor: forLabel,
98
- children: label
99
- });
100
- };
101
- var inlineLabel = !!(isInline && label);
102
- return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
103
- children: [label && !isInline && (0, _jsxRuntime.jsx)(SelectLabel, {}), (0, _jsxRuntime.jsxs)(_FormSelectContent.FormSelectContent, {
104
- isInline: inlineLabel,
105
- label: inlineLabel ? (0, _jsxRuntime.jsx)(SelectLabel, {}) : null,
106
- children: [(0, _jsxRuntime.jsxs)("select", _extends({
107
- onChange: onValueChange,
108
- ref: forwardRef,
109
- sx: defaultStyles,
110
- required: required,
111
- "aria-required": required,
112
- "aria-describedby": hasError ? "describe-" + forLabel + "-validation" : undefined,
113
- id: forLabel
114
- }, props, {
115
- children: [placeholder && (0, _jsxRuntime.jsx)("option", {
116
- children: placeholder
117
- }), options.map(function (_ref3) {
118
- var groupOptions = _ref3.options,
119
- option = _objectWithoutPropertiesLoose(_ref3, _excluded2);
120
- return groupOptions ? renderGroup(optionLabel(option), groupOptions) : renderOption(optionLabel(option), optionValue(option));
121
- })]
122
- })), (0, _jsxRuntime.jsx)(_FormSelectArrow.FormSelectArrow, {})]
123
- }), hasError && errorMessage && (0, _jsxRuntime.jsx)(_Form.Validation, {
124
- isValid: false,
125
- describedId: forLabel,
126
- children: errorMessage
127
- })]
128
- });
129
- });
130
- exports.FormSelect = FormSelect;
38
+
39
+ const renderGroup = ( groupLabel, groupOptions ) => {
40
+ return (
41
+ <optgroup key={ groupLabel } label={ groupLabel }>
42
+ { groupOptions.map( ( { label, value } ) => renderOption( label, value ) ) }
43
+ </optgroup>
44
+ );
45
+ };
46
+
47
+ const FormSelect = React.forwardRef(
48
+ (
49
+ {
50
+ isInline,
51
+ placeholder,
52
+ forLabel = 'vip-form-select',
53
+ options,
54
+ required,
55
+ label,
56
+ getOptionLabel,
57
+ getOptionValue,
58
+ onChange,
59
+ hasError,
60
+ errorMessage,
61
+ ...props
62
+ },
63
+ forwardRef
64
+ ) => {
65
+ if ( isDev && options.length > MAX_SUGGESTED_OPTIONS ) {
66
+ // eslint-disable-next-line no-console
67
+ console.info(
68
+ 'For 16 or more items, consider using another component with a typeahead capability.'
69
+ );
70
+ }
71
+
72
+ const getAllOptions = useMemo(
73
+ () =>
74
+ [
75
+ ...options.filter( option => ! option.options ),
76
+ ...options.filter( option => option.options ).map( option => option.options ),
77
+ ].reduce( ( a, b ) => a.concat( b ), [] ),
78
+ [ options ]
79
+ );
80
+
81
+ const optionLabel = useCallback(
82
+ option => ( getOptionLabel ? getOptionLabel( option ) : option.label ),
83
+ [ getOptionLabel ]
84
+ );
85
+
86
+ const optionValue = useCallback(
87
+ option => ( getOptionValue ? getOptionValue( option ) : option.value ),
88
+ [ getOptionValue ]
89
+ );
90
+
91
+ const getOptionByValue = useCallback(
92
+ value => getAllOptions.find( option => `${ optionValue( option ) }` === `${ value }` ),
93
+ [ getAllOptions, optionValue ]
94
+ );
95
+
96
+ const onValueChange = useCallback(
97
+ event =>
98
+ onChange
99
+ ? onChange( getOptionByValue( event.target.value ), event )
100
+ : getOptionByValue( event.target.value ),
101
+ [ onChange, getOptionByValue ]
102
+ );
103
+
104
+ const SelectLabel = () => (
105
+ <Label required={ required } htmlFor={ forLabel }>
106
+ { label }
107
+ </Label>
108
+ );
109
+
110
+ const inlineLabel = !! ( isInline && label );
111
+
112
+ return (
113
+ <>
114
+ { label && ! isInline && <SelectLabel /> }
115
+
116
+ <FormSelectContent isInline={ inlineLabel } label={ inlineLabel ? <SelectLabel /> : null }>
117
+ <select
118
+ onChange={ onValueChange }
119
+ ref={ forwardRef }
120
+ sx={ defaultStyles }
121
+ required={ required }
122
+ aria-required={ required }
123
+ aria-describedby={ hasError ? `describe-${ forLabel }-validation` : undefined }
124
+ id={ forLabel }
125
+ { ...props }
126
+ >
127
+ { placeholder && <option>{ placeholder }</option> }
128
+ { options.map( ( { options: groupOptions, ...option } ) =>
129
+ groupOptions
130
+ ? renderGroup( optionLabel( option ), groupOptions )
131
+ : renderOption( optionLabel( option ), optionValue( option ) )
132
+ ) }
133
+ </select>
134
+ <FormSelectArrow />
135
+ </FormSelectContent>
136
+
137
+ { hasError && errorMessage && (
138
+ <Validation isValid={ false } describedId={ forLabel }>
139
+ { errorMessage }
140
+ </Validation>
141
+ ) }
142
+ </>
143
+ );
144
+ }
145
+ );
146
+
131
147
  FormSelect.propTypes = {
132
- errorMessage: _propTypes["default"].string,
133
- forLabel: _propTypes["default"].string,
134
- getOptionLabel: _propTypes["default"].func,
135
- getOptionValue: _propTypes["default"].func,
136
- hasError: _propTypes["default"].bool,
137
- isInline: _propTypes["default"].bool,
138
- label: _propTypes["default"].string,
139
- onChange: _propTypes["default"].func,
140
- options: _propTypes["default"].array,
141
- placeholder: _propTypes["default"].string,
142
- required: _propTypes["default"].bool
148
+ errorMessage: PropTypes.string,
149
+ forLabel: PropTypes.string,
150
+ getOptionLabel: PropTypes.func,
151
+ getOptionValue: PropTypes.func,
152
+ hasError: PropTypes.bool,
153
+ isInline: PropTypes.bool,
154
+ label: PropTypes.string,
155
+ onChange: PropTypes.func,
156
+ options: PropTypes.array,
157
+ placeholder: PropTypes.string,
158
+ required: PropTypes.bool,
143
159
  };
144
- FormSelect.displayName = 'FormSelect';
160
+
161
+ FormSelect.displayName = 'FormSelect';
162
+
163
+ export { FormSelect };
@@ -0,0 +1,137 @@
1
+ declare namespace _default {
2
+ let title: string;
3
+ namespace argTypes {
4
+ namespace placeholder {
5
+ namespace type {
6
+ let name: string;
7
+ let required: boolean;
8
+ }
9
+ namespace control {
10
+ let type_1: string;
11
+ export { type_1 as type };
12
+ }
13
+ }
14
+ namespace label {
15
+ export namespace type_2 {
16
+ let name_1: string;
17
+ export { name_1 as name };
18
+ let required_1: boolean;
19
+ export { required_1 as required };
20
+ }
21
+ export { type_2 as type };
22
+ export namespace control_1 {
23
+ let type_3: string;
24
+ export { type_3 as type };
25
+ }
26
+ export { control_1 as control };
27
+ }
28
+ }
29
+ }
30
+ export default _default;
31
+ export function Default({ label, width, onChange, ...rest }: {
32
+ [x: string]: any;
33
+ label?: string | undefined;
34
+ width?: number | undefined;
35
+ onChange: any;
36
+ }): import("react").JSX.Element;
37
+ export namespace Default {
38
+ namespace args {
39
+ let placeholder_1: string;
40
+ export { placeholder_1 as placeholder };
41
+ let required_2: boolean;
42
+ export { required_2 as required };
43
+ export { options };
44
+ }
45
+ }
46
+ export function WithErrors({ label, width, onChange, ...rest }: {
47
+ [x: string]: any;
48
+ label?: string | undefined;
49
+ width?: number | undefined;
50
+ onChange: any;
51
+ }): import("react").JSX.Element;
52
+ export namespace WithErrors {
53
+ export namespace args_1 {
54
+ let placeholder_2: string;
55
+ export { placeholder_2 as placeholder };
56
+ let required_3: boolean;
57
+ export { required_3 as required };
58
+ export let hasError: boolean;
59
+ export let errorMessage: string;
60
+ export { options };
61
+ }
62
+ export { args_1 as args };
63
+ }
64
+ export function WithGroup({ label, width, onChange, ...rest }: {
65
+ [x: string]: any;
66
+ label?: string | undefined;
67
+ width?: number | undefined;
68
+ onChange: any;
69
+ }): import("react").JSX.Element;
70
+ export namespace WithGroup {
71
+ export namespace args_2 {
72
+ let label_1: string;
73
+ export { label_1 as label };
74
+ let options_1: ({
75
+ value: string;
76
+ label: string;
77
+ } | {
78
+ label: string;
79
+ options: {
80
+ value: string;
81
+ label: string;
82
+ }[];
83
+ })[];
84
+ export { options_1 as options };
85
+ }
86
+ export { args_2 as args };
87
+ }
88
+ export function IsInline({ label, width, onChange, ...rest }: {
89
+ [x: string]: any;
90
+ label?: string | undefined;
91
+ width?: number | undefined;
92
+ onChange: any;
93
+ }): import("react").JSX.Element;
94
+ export namespace IsInline {
95
+ export namespace args_3 {
96
+ let label_2: string;
97
+ export { label_2 as label };
98
+ export let isInline: boolean;
99
+ export let width: string;
100
+ export { groupedOptions as options };
101
+ }
102
+ export { args_3 as args };
103
+ }
104
+ export function WithOptionLabelAndValue({ label, width, onChange, ...rest }: {
105
+ [x: string]: any;
106
+ label?: string | undefined;
107
+ width?: number | undefined;
108
+ onChange: any;
109
+ }): import("react").JSX.Element;
110
+ export namespace WithOptionLabelAndValue {
111
+ export namespace args_4 {
112
+ let label_3: string;
113
+ export { label_3 as label };
114
+ let width_1: string;
115
+ export { width_1 as width };
116
+ let options_2: {
117
+ name: string;
118
+ id: string;
119
+ }[];
120
+ export { options_2 as options };
121
+ export function getOptionLabel(option: any): any;
122
+ export function getOptionValue(option: any): any;
123
+ }
124
+ export { args_4 as args };
125
+ }
126
+ export function WithOnChange(): import("react").JSX.Element;
127
+ declare const options: {
128
+ value: string;
129
+ label: string;
130
+ }[];
131
+ declare const groupedOptions: {
132
+ label: string;
133
+ options: {
134
+ value: string;
135
+ label: string;
136
+ }[];
137
+ }[];
@@ -0,0 +1,138 @@
1
+ /** @jsxImportSource theme-ui */
2
+
3
+ /**
4
+ * Internal dependencies
5
+ */
6
+ import { useCallback, useState } from 'react';
7
+ import * as Form from '.';
8
+ import { Link } from '../Link';
9
+
10
+ export default {
11
+ title: 'Form/Select',
12
+ argTypes: {
13
+ placeholder: {
14
+ type: { name: 'string', required: false },
15
+ control: { type: 'text' },
16
+ },
17
+ label: {
18
+ type: { name: 'string', required: false },
19
+ control: { type: 'text' },
20
+ },
21
+ },
22
+ };
23
+
24
+ const options = [
25
+ { value: 'chocolate', label: 'Chocolate' },
26
+ { value: 'strawberry', label: 'Strawberry Chocolate Vanilla Chocolate Vanilla' },
27
+ { value: 'vanilla', label: 'Vanilla' },
28
+ ];
29
+
30
+ const groupedOptions = [
31
+ {
32
+ label: 'Group name',
33
+ options,
34
+ },
35
+ {
36
+ label: 'Another Group name',
37
+ options,
38
+ },
39
+ ];
40
+
41
+ // eslint-disable-next-line react/prop-types
42
+ const DefaultComponent = ( { label = 'Label', width = 250, onChange, ...rest } ) => (
43
+ <>
44
+ <p>
45
+ This is a simple wrapper at the top of a browser default select component. This component
46
+ should be used for situations where you have up to <strong>15 options</strong>. If you need to
47
+ use a auto-complete, searchable solution, please use another component with a typeahead
48
+ capability.
49
+ </p>
50
+
51
+ <p>
52
+ This component was heavily inspired by the{ ' ' }
53
+ <Link
54
+ href="https://designsystem.digital.gov/components/select/"
55
+ target="_blank"
56
+ rel="noreferrer"
57
+ >
58
+ { ' ' }
59
+ U.S. Web Design System (USWDS) Select component
60
+ </Link>
61
+ .
62
+ </p>
63
+ <Form.Root>
64
+ <div sx={ { width } }>
65
+ <Form.Select forLabel="form-select" label={ label } onChange={ onChange } { ...rest } />
66
+ </div>
67
+ </Form.Root>
68
+ </>
69
+ );
70
+
71
+ export const Default = DefaultComponent.bind( {} );
72
+ Default.args = {
73
+ placeholder: '- Select -',
74
+ required: true,
75
+ options,
76
+ };
77
+
78
+ export const WithErrors = DefaultComponent.bind( {} );
79
+ WithErrors.args = {
80
+ placeholder: '- Select -',
81
+ required: true,
82
+ hasError: true,
83
+ errorMessage: 'This is an error message',
84
+ options,
85
+ };
86
+
87
+ export const WithGroup = DefaultComponent.bind( {} );
88
+
89
+ WithGroup.args = {
90
+ label: 'Group Label',
91
+ options: [ ...options, ...groupedOptions ],
92
+ };
93
+
94
+ export const IsInline = DefaultComponent.bind( {} );
95
+
96
+ IsInline.args = {
97
+ label: 'Inline Select',
98
+ isInline: true,
99
+ width: '100%',
100
+ options: groupedOptions,
101
+ };
102
+
103
+ export const WithOptionLabelAndValue = DefaultComponent.bind( {} );
104
+
105
+ WithOptionLabelAndValue.args = {
106
+ label: 'Select with getOptionLabel / getOptionValue',
107
+ width: '100%',
108
+ options: options.map( ( { label, value } ) => ( {
109
+ name: label,
110
+ id: value,
111
+ } ) ),
112
+ getOptionLabel: option => option.name,
113
+ getOptionValue: option => option.id,
114
+ };
115
+
116
+ export const WithOnChange = () => {
117
+ const [ option, setOption ] = useState( null );
118
+
119
+ const onChange = useCallback( ( val, event ) =>
120
+ setOption( { obj: val, eventValue: event.target.value } )
121
+ );
122
+
123
+ const args = {
124
+ label: 'Select with onChange',
125
+ placeholder: '- Select -',
126
+ width: '100%',
127
+ onChange,
128
+ options: [ ...options, ...groupedOptions ],
129
+ };
130
+
131
+ return (
132
+ <>
133
+ <DefaultComponent onChange={ onChange } { ...args } />
134
+ { option && <p>Object to JSON: { JSON.stringify( option.obj ) }</p> }
135
+ { option && <p>Original Event Value: { option.eventValue }</p> }
136
+ </>
137
+ );
138
+ };
@@ -0,0 +1 @@
1
+ export {};