@sproutsocial/racine 12.19.0 → 12.21.0

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 (626) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +46 -44
  3. package/__flow__/Avatar/index.js +26 -26
  4. package/__flow__/Avatar/index.stories.js +8 -8
  5. package/__flow__/Avatar/index.test.js +13 -13
  6. package/__flow__/Badge/constants.js +14 -14
  7. package/__flow__/Badge/index.js +18 -18
  8. package/__flow__/Badge/index.stories.js +8 -8
  9. package/__flow__/Badge/index.test.js +43 -43
  10. package/__flow__/Badge/styles.js +13 -9
  11. package/__flow__/Banner/index.js +21 -21
  12. package/__flow__/Banner/index.stories.js +56 -68
  13. package/__flow__/Banner/index.test.js +32 -34
  14. package/__flow__/Banner/styles.js +4 -4
  15. package/__flow__/Box/index.js +4 -4
  16. package/__flow__/Box/index.stories.js +58 -51
  17. package/__flow__/Box/index.test.js +7 -7
  18. package/__flow__/Box/styles.js +6 -6
  19. package/__flow__/Breadcrumb/index.js +9 -13
  20. package/__flow__/Breadcrumb/index.stories.js +14 -14
  21. package/__flow__/Breadcrumb/index.test.js +20 -20
  22. package/__flow__/Breadcrumb/styles.js +5 -5
  23. package/__flow__/Button/index.js +23 -23
  24. package/__flow__/Button/index.stories.js +34 -34
  25. package/__flow__/Button/styles.js +11 -11
  26. package/__flow__/Card/index.js +7 -7
  27. package/__flow__/Card/index.stories.js +14 -14
  28. package/__flow__/Card/styles.js +7 -7
  29. package/__flow__/CharacterCounter/index.js +7 -7
  30. package/__flow__/CharacterCounter/index.stories.js +25 -26
  31. package/__flow__/CharacterCounter/index.test.js +11 -11
  32. package/__flow__/CharacterCounter/styles.js +3 -3
  33. package/__flow__/ChartLegend/index.js +7 -7
  34. package/__flow__/ChartLegend/index.stories.js +22 -22
  35. package/__flow__/ChartLegend/index.test.js +27 -27
  36. package/__flow__/ChartLegend/styles.js +7 -7
  37. package/__flow__/Checkbox/index.js +10 -10
  38. package/__flow__/Checkbox/index.stories.js +24 -24
  39. package/__flow__/Checkbox/index.test.js +25 -25
  40. package/__flow__/Checkbox/styles.js +27 -28
  41. package/__flow__/Collapsible/index.js +15 -15
  42. package/__flow__/Collapsible/index.stories.js +13 -13
  43. package/__flow__/Collapsible/index.test.js +27 -27
  44. package/__flow__/Collapsible/styles.js +5 -5
  45. package/__flow__/DatePicker/DateRangePicker.js +5 -8
  46. package/__flow__/DatePicker/DateRangePicker.stories.js +19 -19
  47. package/__flow__/DatePicker/DateRangePicker.test.js +21 -21
  48. package/__flow__/DatePicker/SingleDatePicker.js +6 -9
  49. package/__flow__/DatePicker/SingleDatePicker.stories.js +10 -10
  50. package/__flow__/DatePicker/SingleDatePicker.test.js +21 -23
  51. package/__flow__/DatePicker/StatefulDateRangePicker.js +6 -6
  52. package/__flow__/DatePicker/StatefulSingleDatePicker.js +3 -3
  53. package/__flow__/DatePicker/common.js +13 -13
  54. package/__flow__/DatePicker/index.js +3 -3
  55. package/__flow__/DatePicker/styles.js +42 -42
  56. package/__flow__/Drawer/SlideTransition.js +10 -10
  57. package/__flow__/Drawer/index.js +29 -29
  58. package/__flow__/Drawer/index.stories.js +58 -141
  59. package/__flow__/Drawer/index.test.js +28 -28
  60. package/__flow__/Drawer/styles.js +4 -4
  61. package/__flow__/EmptyState/index.js +5 -5
  62. package/__flow__/EmptyState/index.stories.js +10 -10
  63. package/__flow__/EmptyState/index.test.js +27 -27
  64. package/__flow__/EnumIllustrationNames.js +1 -1
  65. package/__flow__/Fieldset/index.js +14 -14
  66. package/__flow__/Fieldset/index.stories.js +19 -20
  67. package/__flow__/Fieldset/index.test.js +14 -14
  68. package/__flow__/Fieldset/styles.js +5 -5
  69. package/__flow__/FormField/index.js +14 -14
  70. package/__flow__/FormField/index.stories.js +31 -21
  71. package/__flow__/FormField/index.test.js +19 -19
  72. package/__flow__/Icon/deprecatedIcons.js +36 -36
  73. package/__flow__/Icon/index.js +17 -17
  74. package/__flow__/Icon/index.stories.js +62 -29
  75. package/__flow__/Icon/index.test.js +15 -15
  76. package/__flow__/Icon/styles.js +12 -23
  77. package/__flow__/IllustrationViewBoxes.js +1 -1
  78. package/__flow__/Image/index.js +6 -7
  79. package/__flow__/Image/index.stories.js +5 -5
  80. package/__flow__/Image/index.test.js +24 -24
  81. package/__flow__/Image/styles.js +6 -5
  82. package/__flow__/Indicator/index.js +7 -7
  83. package/__flow__/Indicator/index.stories.js +8 -14
  84. package/__flow__/Indicator/index.test.js +6 -6
  85. package/__flow__/Indicator/styles.js +6 -6
  86. package/__flow__/Input/index.js +37 -37
  87. package/__flow__/Input/index.stories.js +96 -189
  88. package/__flow__/Input/index.test.js +117 -117
  89. package/__flow__/Input/styles.js +13 -13
  90. package/__flow__/KeyboardKey/index.js +5 -5
  91. package/__flow__/KeyboardKey/index.stories.js +9 -12
  92. package/__flow__/KeyboardKey/index.test.js +7 -7
  93. package/__flow__/KeyboardKey/styles.js +4 -4
  94. package/__flow__/Label/index.js +6 -6
  95. package/__flow__/Label/index.stories.js +5 -7
  96. package/__flow__/Label/index.test.js +8 -8
  97. package/__flow__/Link/constants.js +4 -4
  98. package/__flow__/Link/index.js +11 -11
  99. package/__flow__/Link/index.stories.js +61 -102
  100. package/__flow__/Link/index.test.js +40 -40
  101. package/__flow__/Link/styles.js +6 -6
  102. package/__flow__/Listbox/index.js +16 -16
  103. package/__flow__/Listbox/index.stories.js +35 -35
  104. package/__flow__/Listbox/index.test.js +63 -65
  105. package/__flow__/Loader/index.js +12 -12
  106. package/__flow__/Loader/index.stories.js +10 -10
  107. package/__flow__/Loader/index.test.js +17 -17
  108. package/__flow__/Loader/styles.js +9 -13
  109. package/__flow__/LoaderButton/index.js +36 -18
  110. package/__flow__/LoaderButton/index.stories.js +35 -7
  111. package/__flow__/LoaderButton/index.test.js +15 -15
  112. package/__flow__/Menu/__snapshots__/index.test.js.snap +0 -9
  113. package/__flow__/Menu/constants.js +8 -8
  114. package/__flow__/Menu/descendants.js +89 -80
  115. package/__flow__/Menu/hooks.js +22 -22
  116. package/__flow__/Menu/index.flow.js +13 -13
  117. package/__flow__/Menu/index.js +56 -60
  118. package/__flow__/Menu/index.stories.js +19 -19
  119. package/__flow__/Menu/index.test.js +22 -22
  120. package/__flow__/Menu/names.js +4945 -4945
  121. package/__flow__/Menu/styles.js +5 -5
  122. package/__flow__/Message/index.js +33 -33
  123. package/__flow__/Message/index.stories.js +18 -13
  124. package/__flow__/Message/index.test.js +6 -6
  125. package/__flow__/Message/styles.js +15 -15
  126. package/__flow__/Modal/index.js +19 -19
  127. package/__flow__/Modal/index.stories.js +43 -43
  128. package/__flow__/Modal/index.test.js +29 -29
  129. package/__flow__/Modal/styles.js +27 -32
  130. package/__flow__/Numeral/index.js +22 -22
  131. package/__flow__/Numeral/index.stories.js +74 -74
  132. package/__flow__/Numeral/styles.js +3 -3
  133. package/__flow__/Numeral/tests/A11y.test.js +7 -7
  134. package/__flow__/Numeral/tests/abbreviate.test.js +40 -40
  135. package/__flow__/Numeral/tests/currency.test.js +24 -24
  136. package/__flow__/Numeral/tests/defaults.test.js +20 -20
  137. package/__flow__/Numeral/tests/invalid.test.js +9 -9
  138. package/__flow__/Numeral/tests/locale.test.js +38 -38
  139. package/__flow__/Numeral/tests/precision.test.js +76 -76
  140. package/__flow__/Numeral/tests/testNumeral.js +11 -11
  141. package/__flow__/Numeral/tests/zero.test.js +8 -8
  142. package/__flow__/OverflowList/index.flow.js +2 -2
  143. package/__flow__/OverflowList/index.js +12 -12
  144. package/__flow__/OverflowList/index.stories.js +10 -10
  145. package/__flow__/OverflowList/index.test.js +25 -25
  146. package/__flow__/OverflowList/styles.js +5 -5
  147. package/__flow__/PartnerLogo/TypePartnerNames.js +37 -37
  148. package/__flow__/PartnerLogo/index.js +21 -27
  149. package/__flow__/PartnerLogo/index.stories.js +52 -52
  150. package/__flow__/PartnerLogo/styles.js +12 -24
  151. package/__flow__/Popout/index.js +66 -67
  152. package/__flow__/Popout/index.stories.js +101 -82
  153. package/__flow__/Popout/index.test.js +43 -43
  154. package/__flow__/Popout/styles.js +4 -5
  155. package/__flow__/Portal/index.js +9 -9
  156. package/__flow__/Portal/index.stories.js +12 -12
  157. package/__flow__/Radio/index.js +4 -4
  158. package/__flow__/Radio/index.stories.js +11 -11
  159. package/__flow__/Radio/index.test.js +12 -12
  160. package/__flow__/Radio/styles.js +15 -16
  161. package/__flow__/SegmentedControl/index.js +7 -7
  162. package/__flow__/SegmentedControl/index.stories.js +7 -7
  163. package/__flow__/SegmentedControl/index.test.js +29 -29
  164. package/__flow__/SegmentedControl/styles.js +10 -9
  165. package/__flow__/Select/index.js +10 -10
  166. package/__flow__/Select/index.stories.js +33 -69
  167. package/__flow__/Select/index.test.js +14 -14
  168. package/__flow__/Select/styles.js +16 -16
  169. package/__flow__/Skeleton/index.js +4 -4
  170. package/__flow__/Skeleton/index.stories.js +5 -5
  171. package/__flow__/SpotIllustration/illustrationNames.js +118 -117
  172. package/__flow__/SpotIllustration/index.js +15 -11
  173. package/__flow__/SpotIllustration/index.stories.js +18 -18
  174. package/__flow__/SpotIllustration/spotIllustrations/molecule.svg +14 -0
  175. package/__flow__/Stack/index.js +43 -33
  176. package/__flow__/Stack/index.stories.js +41 -91
  177. package/__flow__/Stack/index.test.js +16 -7
  178. package/__flow__/Switch/index.js +8 -8
  179. package/__flow__/Switch/index.stories.js +5 -5
  180. package/__flow__/Switch/index.test.js +25 -29
  181. package/__flow__/Switch/styles.js +13 -9
  182. package/__flow__/Table/index.js +17 -17
  183. package/__flow__/Table/index.stories.js +99 -99
  184. package/__flow__/Table/index.test.js +32 -32
  185. package/__flow__/Table/styles.js +4 -4
  186. package/__flow__/TableCell/index.js +8 -7
  187. package/__flow__/TableCell/index.stories.js +20 -23
  188. package/__flow__/TableCell/index.test.js +11 -11
  189. package/__flow__/TableCell/styles.js +4 -5
  190. package/__flow__/TableHeaderCell/index.js +14 -14
  191. package/__flow__/TableHeaderCell/index.stories.js +35 -30
  192. package/__flow__/TableHeaderCell/index.test.js +11 -11
  193. package/__flow__/TableHeaderCell/styles.js +4 -4
  194. package/__flow__/TableRowAccordion/index.js +8 -8
  195. package/__flow__/TableRowAccordion/index.stories.js +36 -36
  196. package/__flow__/TableRowAccordion/index.test.js +28 -30
  197. package/__flow__/TableRowAccordion/styles.js +11 -7
  198. package/__flow__/Tabs/index.js +11 -11
  199. package/__flow__/Tabs/index.stories.js +28 -54
  200. package/__flow__/Tabs/index.test.js +54 -54
  201. package/__flow__/Tabs/styles.js +6 -7
  202. package/__flow__/Text/index.js +14 -14
  203. package/__flow__/Text/index.stories.js +84 -86
  204. package/__flow__/Text/index.test.js +29 -33
  205. package/__flow__/Text/styles.js +4 -4
  206. package/__flow__/Textarea/index.js +5 -5
  207. package/__flow__/Textarea/index.stories.js +54 -93
  208. package/__flow__/Textarea/index.test.js +30 -30
  209. package/__flow__/Textarea/styles.js +6 -6
  210. package/__flow__/ThemeProvider/index.js +4 -4
  211. package/__flow__/Toast/index.js +23 -23
  212. package/__flow__/Toast/index.stories.js +21 -21
  213. package/__flow__/Toast/styles.js +6 -6
  214. package/__flow__/ToggleHint/index.js +8 -8
  215. package/__flow__/ToggleHint/index.test.js +8 -8
  216. package/__flow__/ToggleHint/styles.js +8 -8
  217. package/__flow__/Token/index.js +10 -10
  218. package/__flow__/Token/index.stories.js +49 -54
  219. package/__flow__/Token/index.test.js +28 -28
  220. package/__flow__/Token/styles.js +11 -11
  221. package/__flow__/TokenInput/index.flow.js +1 -1
  222. package/__flow__/TokenInput/index.js +39 -39
  223. package/__flow__/TokenInput/index.stories.js +121 -128
  224. package/__flow__/TokenInput/styles.js +5 -5
  225. package/__flow__/TokenInput/tests/default/clicking.test.js +13 -13
  226. package/__flow__/TokenInput/tests/default/deleting.test.js +39 -39
  227. package/__flow__/TokenInput/tests/default/focusing.test.js +18 -18
  228. package/__flow__/TokenInput/tests/default/inputting.test.js +23 -23
  229. package/__flow__/TokenInput/tests/default/pasting.test.js +52 -52
  230. package/__flow__/TokenInput/tests/default/rendering.test.js +54 -54
  231. package/__flow__/TokenInput/util.js +4 -4
  232. package/__flow__/Tooltip/index.js +21 -21
  233. package/__flow__/Tooltip/index.stories.js +18 -18
  234. package/__flow__/Tooltip/index.test.js +54 -54
  235. package/__flow__/Tooltip/styles.js +4 -5
  236. package/__flow__/VisuallyHidden/index.js +3 -3
  237. package/__flow__/building-stories.stories.mdx +121 -0
  238. package/__flow__/dataviz/dataviz.stories.js +4 -4
  239. package/__flow__/dataviz/index.js +3 -3
  240. package/__flow__/index.js +72 -72
  241. package/__flow__/overview.stories.js +60 -0
  242. package/__flow__/setupTests.js +5 -5
  243. package/__flow__/systemProps/background.js +3 -3
  244. package/__flow__/systemProps/border.js +3 -3
  245. package/__flow__/systemProps/color.js +3 -3
  246. package/__flow__/systemProps/custom.js +3 -3
  247. package/__flow__/systemProps/flexbox.js +3 -3
  248. package/__flow__/systemProps/grid.js +3 -3
  249. package/__flow__/systemProps/index.js +14 -14
  250. package/__flow__/systemProps/layout.js +3 -3
  251. package/__flow__/systemProps/position.js +3 -3
  252. package/__flow__/systemProps/shadow.js +3 -3
  253. package/__flow__/systemProps/space.js +3 -7
  254. package/__flow__/systemProps/systemProps.js +14 -14
  255. package/__flow__/systemProps/tests/background.test.js +17 -17
  256. package/__flow__/systemProps/tests/border.test.js +61 -61
  257. package/__flow__/systemProps/tests/color.test.js +15 -15
  258. package/__flow__/systemProps/tests/custom.test.js +12 -12
  259. package/__flow__/systemProps/tests/flexbox.test.js +33 -33
  260. package/__flow__/systemProps/tests/grid.test.js +31 -31
  261. package/__flow__/systemProps/tests/layout.test.js +29 -29
  262. package/__flow__/systemProps/tests/position.test.js +19 -19
  263. package/__flow__/systemProps/tests/shadow.test.js +11 -11
  264. package/__flow__/systemProps/tests/space.test.js +11 -11
  265. package/__flow__/systemProps/tests/types.flow.js +18 -18
  266. package/__flow__/systemProps/tests/typography.test.js +21 -21
  267. package/__flow__/systemProps/tests/variant.test.js +9 -9
  268. package/__flow__/systemProps/types.flow.js +2 -2
  269. package/__flow__/systemProps/typography.js +4 -4
  270. package/__flow__/systemProps/variant.js +5 -5
  271. package/__flow__/themes/dark/dataviz-palette.js +21 -21
  272. package/__flow__/themes/dark/decorative-palettes.js +1 -1
  273. package/__flow__/themes/dark/theme.js +18 -18
  274. package/__flow__/themes/extendedThemes/README.md +1 -1
  275. package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +16 -4
  276. package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
  277. package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +16 -4
  278. package/__flow__/themes/light/dataviz-palette.js +21 -21
  279. package/__flow__/themes/light/decorative-palettes.js +1 -1
  280. package/__flow__/themes/light/literal-colors.js +133 -133
  281. package/__flow__/themes/light/theme.js +53 -53
  282. package/__flow__/types/system-props.flow.js +5 -5
  283. package/__flow__/types/theme.colors.flow.js +2 -2
  284. package/__flow__/types/theme.flow.js +5 -5
  285. package/__flow__/utils/a11yTest.js +1 -1
  286. package/__flow__/utils/chartColors.js +1 -1
  287. package/__flow__/utils/constants.js +1 -1
  288. package/__flow__/utils/dataQaLabelQueries.js +2 -2
  289. package/__flow__/utils/hooks.js +17 -17
  290. package/__flow__/utils/index.js +4 -4
  291. package/__flow__/utils/innerText.js +9 -9
  292. package/__flow__/utils/mixins.js +6 -6
  293. package/__flow__/utils/react-testing-library.js +6 -6
  294. package/__flow__/utils/responsiveProps/index.js +3 -3
  295. package/__flow__/utils/responsiveProps/index.test.js +8 -8
  296. package/__flow__/utils/system-props.js +3 -3
  297. package/__flow__/utils/useInteractiveColor.js +5 -5
  298. package/__flow__/writing-good-stories.stories.mdx +3 -0
  299. package/bin/racine-codemod.js +12 -12
  300. package/codemods/__tests__/migrate-2.x-to-3.x.test.js +2 -2
  301. package/codemods/migrate-2.x-to-3.x.js +29 -30
  302. package/commonjs/Avatar/index.js +33 -53
  303. package/commonjs/Badge/constants.js +18 -15
  304. package/commonjs/Badge/index.js +14 -28
  305. package/commonjs/Badge/styles.js +3 -9
  306. package/commonjs/Banner/index.js +16 -37
  307. package/commonjs/Banner/styles.js +0 -5
  308. package/commonjs/Box/index.js +2 -9
  309. package/commonjs/Box/styles.js +0 -4
  310. package/commonjs/Breadcrumb/index.js +13 -29
  311. package/commonjs/Breadcrumb/styles.js +1 -4
  312. package/commonjs/Button/index.js +29 -43
  313. package/commonjs/Button/styles.js +6 -15
  314. package/commonjs/Card/index.js +16 -26
  315. package/commonjs/Card/styles.js +1 -5
  316. package/commonjs/CharacterCounter/index.js +6 -23
  317. package/commonjs/CharacterCounter/styles.js +0 -5
  318. package/commonjs/ChartLegend/index.js +5 -20
  319. package/commonjs/ChartLegend/styles.js +2 -11
  320. package/commonjs/Checkbox/index.js +30 -53
  321. package/commonjs/Checkbox/styles.js +14 -35
  322. package/commonjs/Collapsible/index.js +31 -54
  323. package/commonjs/Collapsible/styles.js +3 -6
  324. package/commonjs/DatePicker/DateRangePicker.js +4 -17
  325. package/commonjs/DatePicker/SingleDatePicker.js +3 -17
  326. package/commonjs/DatePicker/StatefulDateRangePicker.js +16 -31
  327. package/commonjs/DatePicker/StatefulSingleDatePicker.js +7 -20
  328. package/commonjs/DatePicker/common.js +8 -22
  329. package/commonjs/DatePicker/index.js +0 -5
  330. package/commonjs/DatePicker/styles.js +8 -25
  331. package/commonjs/Drawer/SlideTransition.js +8 -18
  332. package/commonjs/Drawer/index.js +51 -90
  333. package/commonjs/Drawer/styles.js +0 -8
  334. package/commonjs/EmptyState/index.js +8 -20
  335. package/commonjs/Fieldset/index.js +15 -32
  336. package/commonjs/Fieldset/styles.js +2 -7
  337. package/commonjs/FormField/index.js +19 -36
  338. package/commonjs/Icon/deprecatedIcons.js +36 -36
  339. package/commonjs/Icon/index.js +19 -37
  340. package/commonjs/Icon/styles.js +8 -19
  341. package/commonjs/IllustrationViewBoxes.js +1 -0
  342. package/commonjs/Image/index.js +13 -41
  343. package/commonjs/Image/styles.js +1 -7
  344. package/commonjs/Indicator/index.js +8 -26
  345. package/commonjs/Indicator/styles.js +1 -7
  346. package/commonjs/Input/index.js +80 -119
  347. package/commonjs/Input/styles.js +9 -19
  348. package/commonjs/KeyboardKey/index.js +3 -20
  349. package/commonjs/KeyboardKey/styles.js +0 -4
  350. package/commonjs/Label/index.js +7 -27
  351. package/commonjs/Link/constants.js +3 -4
  352. package/commonjs/Link/index.js +16 -28
  353. package/commonjs/Link/styles.js +1 -8
  354. package/commonjs/Listbox/index.js +15 -36
  355. package/commonjs/Loader/index.js +15 -31
  356. package/commonjs/Loader/styles.js +2 -13
  357. package/commonjs/LoaderButton/index.js +37 -39
  358. package/commonjs/Menu/constants.js +9 -8
  359. package/commonjs/Menu/descendants.js +70 -105
  360. package/commonjs/Menu/hooks.js +23 -41
  361. package/commonjs/Menu/index.flow.js +0 -7
  362. package/commonjs/Menu/index.js +94 -164
  363. package/commonjs/Menu/names.js +1 -1
  364. package/commonjs/Menu/styles.js +0 -6
  365. package/commonjs/Message/index.js +37 -70
  366. package/commonjs/Message/styles.js +9 -24
  367. package/commonjs/Modal/index.js +31 -54
  368. package/commonjs/Modal/styles.js +17 -36
  369. package/commonjs/Numeral/index.js +39 -67
  370. package/commonjs/Numeral/styles.js +0 -3
  371. package/commonjs/Numeral/tests/testNumeral.js +13 -31
  372. package/commonjs/OverflowList/index.flow.js +0 -2
  373. package/commonjs/OverflowList/index.js +27 -41
  374. package/commonjs/OverflowList/styles.js +0 -7
  375. package/commonjs/PartnerLogo/index.js +22 -37
  376. package/commonjs/PartnerLogo/styles.js +7 -17
  377. package/commonjs/Popout/index.js +95 -127
  378. package/commonjs/Popout/styles.js +0 -5
  379. package/commonjs/Portal/index.js +8 -31
  380. package/commonjs/Radio/index.js +18 -42
  381. package/commonjs/Radio/styles.js +9 -21
  382. package/commonjs/SegmentedControl/index.js +17 -37
  383. package/commonjs/SegmentedControl/styles.js +2 -12
  384. package/commonjs/Select/index.js +24 -47
  385. package/commonjs/Select/styles.js +12 -24
  386. package/commonjs/Skeleton/index.js +0 -5
  387. package/commonjs/SpotIllustration/illustrationNames.js +1 -1
  388. package/commonjs/SpotIllustration/index.js +5 -11
  389. package/commonjs/Stack/index.js +27 -42
  390. package/commonjs/Switch/index.js +17 -42
  391. package/commonjs/Switch/styles.js +3 -11
  392. package/commonjs/Table/index.js +26 -50
  393. package/commonjs/Table/styles.js +0 -4
  394. package/commonjs/TableCell/index.js +12 -30
  395. package/commonjs/TableCell/styles.js +0 -5
  396. package/commonjs/TableHeaderCell/index.js +27 -56
  397. package/commonjs/TableHeaderCell/styles.js +0 -6
  398. package/commonjs/TableRowAccordion/index.js +12 -37
  399. package/commonjs/TableRowAccordion/styles.js +2 -9
  400. package/commonjs/Tabs/index.js +16 -66
  401. package/commonjs/Tabs/styles.js +2 -11
  402. package/commonjs/Text/index.js +12 -25
  403. package/commonjs/Text/styles.js +1 -6
  404. package/commonjs/Textarea/index.js +31 -55
  405. package/commonjs/Textarea/styles.js +2 -9
  406. package/commonjs/ThemeProvider/index.js +1 -10
  407. package/commonjs/Toast/index.js +19 -42
  408. package/commonjs/Toast/styles.js +1 -7
  409. package/commonjs/ToggleHint/index.js +15 -39
  410. package/commonjs/ToggleHint/styles.js +2 -9
  411. package/commonjs/Token/index.js +15 -29
  412. package/commonjs/Token/styles.js +5 -12
  413. package/commonjs/TokenInput/index.js +70 -122
  414. package/commonjs/TokenInput/styles.js +1 -7
  415. package/commonjs/TokenInput/util.js +2 -7
  416. package/commonjs/Tooltip/index.js +40 -63
  417. package/commonjs/Tooltip/styles.js +1 -5
  418. package/commonjs/VisuallyHidden/index.js +0 -4
  419. package/commonjs/dataviz/index.js +0 -4
  420. package/commonjs/index.js +0 -129
  421. package/commonjs/systemProps/background.js +0 -1
  422. package/commonjs/systemProps/border.js +0 -1
  423. package/commonjs/systemProps/color.js +0 -1
  424. package/commonjs/systemProps/custom.js +0 -1
  425. package/commonjs/systemProps/flexbox.js +0 -1
  426. package/commonjs/systemProps/grid.js +0 -1
  427. package/commonjs/systemProps/index.js +0 -28
  428. package/commonjs/systemProps/layout.js +0 -1
  429. package/commonjs/systemProps/position.js +0 -1
  430. package/commonjs/systemProps/shadow.js +0 -1
  431. package/commonjs/systemProps/space.js +1 -2
  432. package/commonjs/systemProps/systemProps.js +0 -13
  433. package/commonjs/systemProps/tests/types.flow.js +25 -22
  434. package/commonjs/systemProps/typography.js +0 -1
  435. package/commonjs/systemProps/variant.js +2 -3
  436. package/commonjs/themes/dark/dataviz-palette.js +20 -22
  437. package/commonjs/themes/dark/decorative-palettes.js +0 -2
  438. package/commonjs/themes/dark/theme.js +15 -29
  439. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +14 -9
  440. package/commonjs/themes/extendedThemes/sproutTheme/index.js +0 -5
  441. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +14 -9
  442. package/commonjs/themes/light/dataviz-palette.js +20 -22
  443. package/commonjs/themes/light/decorative-palettes.js +0 -2
  444. package/commonjs/themes/light/literal-colors.js +132 -134
  445. package/commonjs/themes/light/theme.js +45 -61
  446. package/commonjs/types/system-props.flow.js +1 -1
  447. package/commonjs/types/theme.colors.flow.js +0 -2
  448. package/commonjs/types/theme.flow.js +0 -1
  449. package/commonjs/utils/a11yTest.js +3 -10
  450. package/commonjs/utils/chartColors.js +0 -1
  451. package/commonjs/utils/constants.js +1 -1
  452. package/commonjs/utils/dataQaLabelQueries.js +12 -21
  453. package/commonjs/utils/hooks.js +39 -70
  454. package/commonjs/utils/index.js +2 -9
  455. package/commonjs/utils/innerText.js +10 -14
  456. package/commonjs/utils/mixins.js +2 -7
  457. package/commonjs/utils/react-testing-library.js +4 -26
  458. package/commonjs/utils/responsiveProps/index.js +1 -11
  459. package/commonjs/utils/system-props.js +2 -5
  460. package/commonjs/utils/useInteractiveColor.js +6 -8
  461. package/dist/illustration.svg +1 -1
  462. package/dist/illustrationList.js +1 -1
  463. package/dist/themes/dark/theme.scss +2 -2
  464. package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +26 -2
  465. package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +26 -2
  466. package/dist/themes/light/theme.scss +2 -2
  467. package/lib/Avatar/index.js +40 -47
  468. package/lib/Badge/constants.js +19 -15
  469. package/lib/Badge/index.js +18 -25
  470. package/lib/Badge/styles.js +8 -6
  471. package/lib/Banner/index.js +20 -32
  472. package/lib/Banner/styles.js +3 -2
  473. package/lib/Box/index.js +4 -5
  474. package/lib/Box/styles.js +3 -2
  475. package/lib/Breadcrumb/index.js +19 -27
  476. package/lib/Breadcrumb/styles.js +3 -2
  477. package/lib/Button/index.js +31 -38
  478. package/lib/Button/styles.js +14 -11
  479. package/lib/Card/index.js +18 -24
  480. package/lib/Card/styles.js +5 -4
  481. package/lib/CharacterCounter/index.js +8 -20
  482. package/lib/CharacterCounter/styles.js +3 -2
  483. package/lib/ChartLegend/index.js +9 -17
  484. package/lib/ChartLegend/styles.js +5 -4
  485. package/lib/Checkbox/index.js +32 -51
  486. package/lib/Checkbox/styles.js +21 -26
  487. package/lib/Collapsible/index.js +36 -51
  488. package/lib/Collapsible/styles.js +6 -5
  489. package/lib/DatePicker/DateRangePicker.js +8 -14
  490. package/lib/DatePicker/SingleDatePicker.js +7 -13
  491. package/lib/DatePicker/StatefulDateRangePicker.js +19 -26
  492. package/lib/DatePicker/StatefulSingleDatePicker.js +9 -15
  493. package/lib/DatePicker/common.js +14 -13
  494. package/lib/DatePicker/index.js +2 -2
  495. package/lib/DatePicker/styles.js +12 -22
  496. package/lib/Drawer/SlideTransition.js +11 -14
  497. package/lib/Drawer/index.js +64 -88
  498. package/lib/Drawer/styles.js +4 -3
  499. package/lib/EmptyState/index.js +11 -17
  500. package/lib/Fieldset/index.js +19 -29
  501. package/lib/Fieldset/styles.js +5 -4
  502. package/lib/FormField/index.js +27 -33
  503. package/lib/Icon/deprecatedIcons.js +36 -36
  504. package/lib/Icon/index.js +25 -34
  505. package/lib/Icon/styles.js +12 -16
  506. package/lib/IllustrationViewBoxes.js +1 -0
  507. package/lib/Image/index.js +15 -38
  508. package/lib/Image/styles.js +4 -4
  509. package/lib/Indicator/index.js +11 -23
  510. package/lib/Indicator/styles.js +5 -5
  511. package/lib/Input/index.js +87 -115
  512. package/lib/Input/styles.js +13 -15
  513. package/lib/KeyboardKey/index.js +6 -17
  514. package/lib/KeyboardKey/styles.js +3 -2
  515. package/lib/Label/index.js +10 -24
  516. package/lib/Link/constants.js +5 -4
  517. package/lib/Link/index.js +18 -25
  518. package/lib/Link/styles.js +6 -5
  519. package/lib/Listbox/index.js +21 -29
  520. package/lib/Loader/index.js +17 -29
  521. package/lib/Loader/styles.js +6 -8
  522. package/lib/LoaderButton/index.js +45 -34
  523. package/lib/Menu/constants.js +10 -8
  524. package/lib/Menu/descendants.js +73 -94
  525. package/lib/Menu/hooks.js +28 -39
  526. package/lib/Menu/index.flow.js +6 -5
  527. package/lib/Menu/index.js +113 -150
  528. package/lib/Menu/names.js +1 -1
  529. package/lib/Menu/styles.js +4 -3
  530. package/lib/Message/index.js +42 -66
  531. package/lib/Message/styles.js +15 -23
  532. package/lib/Modal/index.js +38 -51
  533. package/lib/Modal/styles.js +23 -32
  534. package/lib/Numeral/index.js +45 -64
  535. package/lib/Numeral/styles.js +3 -2
  536. package/lib/Numeral/tests/testNumeral.js +17 -27
  537. package/lib/OverflowList/index.flow.js +2 -1
  538. package/lib/OverflowList/index.js +31 -38
  539. package/lib/OverflowList/styles.js +5 -4
  540. package/lib/PartnerLogo/index.js +26 -35
  541. package/lib/PartnerLogo/styles.js +11 -14
  542. package/lib/Popout/index.js +105 -121
  543. package/lib/Popout/styles.js +3 -3
  544. package/lib/Portal/index.js +11 -29
  545. package/lib/Radio/index.js +20 -40
  546. package/lib/Radio/styles.js +14 -14
  547. package/lib/SegmentedControl/index.js +21 -34
  548. package/lib/SegmentedControl/styles.js +7 -9
  549. package/lib/Select/index.js +27 -44
  550. package/lib/Select/styles.js +16 -20
  551. package/lib/Skeleton/index.js +7 -4
  552. package/lib/SpotIllustration/illustrationNames.js +2 -1
  553. package/lib/SpotIllustration/index.js +9 -10
  554. package/lib/Stack/index.js +31 -39
  555. package/lib/Switch/index.js +21 -39
  556. package/lib/Switch/styles.js +8 -7
  557. package/lib/Table/index.js +30 -40
  558. package/lib/Table/styles.js +3 -2
  559. package/lib/TableCell/index.js +14 -27
  560. package/lib/TableCell/styles.js +3 -3
  561. package/lib/TableHeaderCell/index.js +30 -52
  562. package/lib/TableHeaderCell/styles.js +3 -2
  563. package/lib/TableRowAccordion/index.js +16 -34
  564. package/lib/TableRowAccordion/styles.js +5 -3
  565. package/lib/Tabs/index.js +18 -63
  566. package/lib/Tabs/styles.js +6 -6
  567. package/lib/Text/index.js +15 -21
  568. package/lib/Text/styles.js +4 -3
  569. package/lib/Textarea/index.js +33 -53
  570. package/lib/Textarea/styles.js +6 -5
  571. package/lib/ThemeProvider/index.js +4 -7
  572. package/lib/Toast/index.js +26 -37
  573. package/lib/Toast/styles.js +5 -4
  574. package/lib/ToggleHint/index.js +18 -36
  575. package/lib/ToggleHint/styles.js +6 -5
  576. package/lib/Token/index.js +20 -26
  577. package/lib/Token/styles.js +10 -9
  578. package/lib/TokenInput/index.js +78 -118
  579. package/lib/TokenInput/styles.js +5 -4
  580. package/lib/TokenInput/util.js +5 -3
  581. package/lib/Tooltip/index.js +45 -60
  582. package/lib/Tooltip/styles.js +4 -4
  583. package/lib/VisuallyHidden/index.js +3 -2
  584. package/lib/dataviz/index.js +4 -3
  585. package/lib/index.js +66 -64
  586. package/lib/systemProps/background.js +3 -1
  587. package/lib/systemProps/border.js +3 -1
  588. package/lib/systemProps/color.js +3 -1
  589. package/lib/systemProps/custom.js +3 -1
  590. package/lib/systemProps/flexbox.js +3 -1
  591. package/lib/systemProps/grid.js +3 -1
  592. package/lib/systemProps/index.js +16 -14
  593. package/lib/systemProps/layout.js +3 -1
  594. package/lib/systemProps/position.js +3 -1
  595. package/lib/systemProps/shadow.js +3 -1
  596. package/lib/systemProps/space.js +2 -1
  597. package/lib/systemProps/systemProps.js +14 -13
  598. package/lib/systemProps/tests/types.flow.js +27 -22
  599. package/lib/systemProps/typography.js +3 -1
  600. package/lib/systemProps/variant.js +4 -3
  601. package/lib/themes/dark/dataviz-palette.js +23 -21
  602. package/lib/themes/dark/decorative-palettes.js +3 -1
  603. package/lib/themes/dark/theme.js +22 -25
  604. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +16 -7
  605. package/lib/themes/extendedThemes/sproutTheme/index.js +3 -2
  606. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +16 -7
  607. package/lib/themes/light/dataviz-palette.js +23 -21
  608. package/lib/themes/light/decorative-palettes.js +3 -1
  609. package/lib/themes/light/literal-colors.js +135 -133
  610. package/lib/themes/light/theme.js +56 -57
  611. package/lib/types/system-props.flow.js +1 -1
  612. package/lib/types/theme.colors.flow.js +4 -2
  613. package/lib/types/theme.flow.js +3 -2
  614. package/lib/utils/a11yTest.js +5 -8
  615. package/lib/utils/chartColors.js +3 -1
  616. package/lib/utils/constants.js +3 -1
  617. package/lib/utils/dataQaLabelQueries.js +13 -21
  618. package/lib/utils/hooks.js +41 -64
  619. package/lib/utils/index.js +2 -5
  620. package/lib/utils/innerText.js +12 -14
  621. package/lib/utils/mixins.js +6 -5
  622. package/lib/utils/react-testing-library.js +10 -20
  623. package/lib/utils/responsiveProps/index.js +3 -8
  624. package/lib/utils/system-props.js +4 -3
  625. package/lib/utils/useInteractiveColor.js +10 -9
  626. package/package.json +6 -13
@@ -1,16 +1,16 @@
1
1
  // @flow
2
- import { createContext, useContext, useEffect } from "react";
3
- import scrollIntoViewIfNeeded from "scroll-into-view-if-needed";
4
- import { MENU_ROLES } from "./constants";
2
+ import {createContext, useContext, useEffect} from 'react';
3
+ import scrollIntoViewIfNeeded from 'scroll-into-view-if-needed';
4
+ import {MENU_ROLES} from './constants';
5
5
  import {
6
6
  createDescendantContext,
7
7
  useDescendantKeyDown,
8
8
  usePrevious,
9
9
  wrapEvent,
10
- } from "./descendants";
10
+ } from './descendants';
11
11
 
12
- import type { TypeDescendant } from "./descendants";
13
- import type { TypeMenuButtonContext, TypeMenuContext } from "./index.flow";
12
+ import type {TypeDescendant} from './descendants';
13
+ import type {TypeMenuButtonContext, TypeMenuContext} from './index.flow';
14
14
 
15
15
  export const MenuContext = createContext<TypeMenuContext>({
16
16
  role: MENU_ROLES.MENU,
@@ -22,7 +22,7 @@ export const MenuContext = createContext<TypeMenuContext>({
22
22
  onChange: undefined,
23
23
  state: {
24
24
  selectionIndex: 0,
25
- filterQuery: "",
25
+ filterQuery: '',
26
26
  filteredItems: null,
27
27
  isFilterInputFocused: false,
28
28
  },
@@ -46,7 +46,7 @@ export type TypeMenuDescendantProps = {|
46
46
  export const MenuDescendantContext = createDescendantContext<
47
47
  HTMLElement,
48
48
  TypeMenuDescendantProps
49
- >("MenuDescendantContext");
49
+ >('MenuDescendantContext');
50
50
 
51
51
  /**
52
52
  * When a user's typed input matches the string displayed in a menu item, it is
@@ -55,7 +55,7 @@ export const MenuDescendantContext = createDescendantContext<
55
55
  */
56
56
  function filterItemsFromTypeahead(
57
57
  items: TypeDescendant<HTMLElement, TypeMenuDescendantProps>[],
58
- string: string = ""
58
+ string: string = ''
59
59
  ) {
60
60
  if (!string) {
61
61
  return null;
@@ -63,11 +63,11 @@ function filterItemsFromTypeahead(
63
63
 
64
64
  return items
65
65
  .filter(
66
- ({ value, label }) =>
66
+ ({value, label}) =>
67
67
  value?.toLowerCase().includes(string.toLocaleLowerCase()) ||
68
68
  label?.toLowerCase().includes(string.toLocaleLowerCase())
69
69
  )
70
- .map(({ index }) => index);
70
+ .map(({index}) => index);
71
71
  }
72
72
 
73
73
  export function useMenuKeyDown() {
@@ -76,10 +76,10 @@ export function useMenuKeyDown() {
76
76
  selectCallbacks,
77
77
  setState,
78
78
  multiselect,
79
- state: { filterQuery, selectionIndex, filteredItems, isFilterInputFocused },
79
+ state: {filterQuery, selectionIndex, filteredItems, isFilterInputFocused},
80
80
  } = useContext(MenuContext);
81
- const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);
82
- const { descendants: items } = useContext(MenuDescendantContext);
81
+ const {closePopout, closeOnItemClick} = useContext(MenuButtonContext);
82
+ const {descendants: items} = useContext(MenuDescendantContext);
83
83
 
84
84
  const shouldClosePopout = closeOnItemClick && !multiselect;
85
85
  const prevMenuItemsLength = usePrevious(items.length);
@@ -132,25 +132,25 @@ export function useMenuKeyDown() {
132
132
  selectionIndex: newFilteredItems[0],
133
133
  });
134
134
  } else if (!filterQuery && filteredItems !== null) {
135
- setState({ filteredItems: null });
135
+ setState({filteredItems: null});
136
136
  }
137
137
  }, [filterQuery, items, setState, filteredItems]);
138
138
 
139
- const index = items.findIndex(({ index }) => index === selectionIndex);
139
+ const index = items.findIndex(({index}) => index === selectionIndex);
140
140
 
141
141
  return {
142
142
  activeDescendent: items[selectionIndex],
143
143
  handleKeyDown: wrapEvent<SyntheticKeyboardEvent<>>(
144
144
  function (event) {
145
- const { key } = event;
145
+ const {key} = event;
146
146
  switch (key) {
147
- case " ":
147
+ case ' ':
148
148
  if (isFilterInputFocused) {
149
149
  return;
150
150
  }
151
151
  // falls through
152
152
  // eslint-disable-next-line no-fallthrough
153
- case "Enter":
153
+ case 'Enter':
154
154
  const selected = items[selectionIndex];
155
155
 
156
156
  if (selected) {
@@ -168,8 +168,8 @@ export function useMenuKeyDown() {
168
168
 
169
169
  useDescendantKeyDown(MenuDescendantContext, {
170
170
  currentIndex: index,
171
- orientation: "vertical",
172
- key: "option",
171
+ orientation: 'vertical',
172
+ key: 'option',
173
173
  rotate: true,
174
174
  filter: (option) =>
175
175
  !option.disabled &&
@@ -177,7 +177,7 @@ export function useMenuKeyDown() {
177
177
  // $FlowIssue
178
178
  callback(item: TypeDescendant<HTMLElement, TypeMenuDescendantProps>) {
179
179
  item.element && scrollIntoViewIfNeeded(item.element);
180
- setState({ selectionIndex: item.index });
180
+ setState({selectionIndex: item.index});
181
181
  },
182
182
  })
183
183
  ),
@@ -1,9 +1,9 @@
1
1
  // @flow
2
- import * as React from "react";
3
- import Box from "../Box";
4
- import Button from "../Button";
5
- import Popout, { type EnumPlacements } from "../Popout";
6
- import { MENU_ITEM_ROLES, MENU_ROLES } from "./constants";
2
+ import * as React from 'react';
3
+ import Box from '../Box';
4
+ import Button from '../Button';
5
+ import Popout, {type EnumPlacements} from '../Popout';
6
+ import {MENU_ITEM_ROLES, MENU_ROLES} from './constants';
7
7
 
8
8
  export type TypeMenuRoles = $Values<typeof MENU_ROLES>;
9
9
  export type TypeMenuItemRoles = $Values<typeof MENU_ITEM_ROLES>;
@@ -43,7 +43,7 @@ export type TypeMenuProps = {
43
43
 
44
44
  export type TypeListboxProps = {
45
45
  ...TypeMenuProps,
46
- role?: "listbox",
46
+ role?: 'listbox',
47
47
  };
48
48
 
49
49
  export type TypeMenuItemProps = {
@@ -62,7 +62,7 @@ export type TypeMenuItemProps = {
62
62
  elemAfter?: React.Node,
63
63
  elemBefore?: React.Node,
64
64
  as?: string,
65
- "data-qa-menu-item"?: string,
65
+ 'data-qa-menu-item'?: string,
66
66
  alignItems?: string,
67
67
  };
68
68
 
@@ -72,7 +72,7 @@ export type TypeMenuGroupProps = {
72
72
  title?: React.Node,
73
73
  titleAs?: string,
74
74
  /** Use the flush appearance if you're using the menu outside of a popout */
75
- appearance?: "default" | "flush",
75
+ appearance?: 'default' | 'flush',
76
76
  disabled?: boolean,
77
77
  };
78
78
 
@@ -85,8 +85,8 @@ export type TypeMenuButtonProps = {
85
85
  ...$Exact<React.ElementConfig<typeof Button>>,
86
86
  ...TypeMenuButtonContext,
87
87
  id?: string,
88
- "aria-labelledby"?: string,
89
- "aria-label"?: string,
88
+ 'aria-labelledby'?: string,
89
+ 'aria-label'?: string,
90
90
  content: React.Node,
91
91
  popoutProps?: $Shape<React.ElementConfig<typeof Popout>>,
92
92
  placement?: EnumPlacements,
@@ -95,9 +95,9 @@ export type TypeMenuButtonProps = {
95
95
  export type TypeListboxButtonProps = {
96
96
  ...$Exact<React.ElementConfig<typeof Button>>,
97
97
  ...TypeMenuButtonContext,
98
- size?: "large" | "default" | "small",
98
+ size?: 'large' | 'default' | 'small',
99
99
  content: React.Node,
100
100
  popoutProps?: $Shape<React.ElementConfig<typeof Popout>>,
101
- "aria-label"?: string,
102
- "aria-labelledby"?: string,
101
+ 'aria-label'?: string,
102
+ 'aria-labelledby'?: string,
103
103
  };
@@ -1,6 +1,6 @@
1
1
  // @flow
2
- import * as React from "react";
3
- import styled from "styled-components";
2
+ import * as React from 'react';
3
+ import styled from 'styled-components';
4
4
  import {
5
5
  useCallback,
6
6
  useContext,
@@ -8,21 +8,21 @@ import {
8
8
  useMemo,
9
9
  useRef,
10
10
  useState,
11
- } from "react";
12
- import uniqueId from "lodash.uniqueid";
13
- import { MenuItemContainer, MenuItemsContainer } from "./styles";
14
- import { MENU_ITEM_ROLES, MENU_ROLES } from "./constants";
15
-
16
- import Box from "../Box";
17
- import Button from "../Button";
18
- import Checkbox from "../Checkbox";
19
- import Icon from "../Icon";
20
- import Input from "../Input";
21
- import Popout from "../Popout";
22
- import Radio from "../Radio";
23
- import Text from "../Text";
24
- import { disabled } from "../utils/mixins";
25
- import innerText from "../utils/innerText";
11
+ } from 'react';
12
+ import uniqueId from 'lodash.uniqueid';
13
+ import {MenuItemContainer, MenuItemsContainer} from './styles';
14
+ import {MENU_ITEM_ROLES, MENU_ROLES} from './constants';
15
+
16
+ import Box from '../Box';
17
+ import Button from '../Button';
18
+ import Checkbox from '../Checkbox';
19
+ import Icon from '../Icon';
20
+ import Input from '../Input';
21
+ import Popout from '../Popout';
22
+ import Radio from '../Radio';
23
+ import Text from '../Text';
24
+ import {disabled} from '../utils/mixins';
25
+ import innerText from '../utils/innerText';
26
26
 
27
27
  import type {
28
28
  TypeMenuButtonProps,
@@ -31,20 +31,16 @@ import type {
31
31
  TypeMenuItemRoles,
32
32
  TypeMenuProps,
33
33
  TypeMenuRoles,
34
- } from "./index.flow";
35
- import { useTextContent } from "../utils/hooks";
36
- import {
37
- DescendantProvider,
38
- useDescendant,
39
- useDescendants,
40
- } from "./descendants";
41
- import type { TypeMenuDescendantProps } from "./hooks";
34
+ } from './index.flow';
35
+ import {useTextContent} from '../utils/hooks';
36
+ import {DescendantProvider, useDescendant, useDescendants} from './descendants';
37
+ import type {TypeMenuDescendantProps} from './hooks';
42
38
  import {
43
39
  MenuButtonContext,
44
40
  MenuContext,
45
41
  MenuDescendantContext,
46
42
  useMenuKeyDown,
47
- } from "./hooks";
43
+ } from './hooks';
48
44
 
49
45
  const noop = () => {};
50
46
 
@@ -63,7 +59,7 @@ const getMenuItemRole = (menuRole: ?TypeMenuRoles): TypeMenuItemRoles => {
63
59
  function isValueSelected(menuValue, value) {
64
60
  if (!menuValue) return false;
65
61
 
66
- if (typeof menuValue === "string") {
62
+ if (typeof menuValue === 'string') {
67
63
  return Boolean(menuValue && value && menuValue === value);
68
64
  } else if (Array.isArray(menuValue)) {
69
65
  return menuValue.includes(value);
@@ -97,13 +93,13 @@ export const MenuItem = ({
97
93
  selectCallbacks,
98
94
  menuRef,
99
95
  } = useContext(MenuContext);
100
- const { selectionIndex, filteredItems } = menuState;
101
- const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);
96
+ const {selectionIndex, filteredItems} = menuState;
97
+ const {closePopout, closeOnItemClick} = useContext(MenuButtonContext);
102
98
  const isSelected = selected || isValueSelected(value, valueProp);
103
99
  const shouldClosePopout = closeOnItemClick && !multiselect;
104
100
  const itemRole = roleProp || getMenuItemRole(menuRole);
105
- const id = useMemo(() => idProp || uniqueId("MenuItem-"), [idProp]);
106
- const textContent = useTextContent("");
101
+ const id = useMemo(() => idProp || uniqueId('MenuItem-'), [idProp]);
102
+ const textContent = useTextContent('');
107
103
  const label = labelProp || textContent.current;
108
104
  const ref = useRef<HTMLDivElement | null>(null);
109
105
  const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(
@@ -143,7 +139,7 @@ export const MenuItem = ({
143
139
  */
144
140
  useEffect(() => {
145
141
  if (isCheckboxOrRadio && ref.current) {
146
- const input = ref.current.querySelector("input");
142
+ const input = ref.current.querySelector('input');
147
143
  if (input) {
148
144
  input.tabIndex = -1;
149
145
  }
@@ -223,7 +219,7 @@ export const MenuItem = ({
223
219
  aria-label={labelProp}
224
220
  value={valueProp}
225
221
  data-value={valueProp}
226
- forwardedAs={as || "li"}
222
+ forwardedAs={as || 'li'}
227
223
  aria-checked={isCheckboxOrRadio ? isSelected : undefined}
228
224
  aria-selected={
229
225
  itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined
@@ -243,14 +239,14 @@ export const MenuItem = ({
243
239
  <div
244
240
  ref={ref}
245
241
  style={{
246
- display: "flex",
247
- alignItems: props.alignItems || "center",
248
- justifyContent: "space-between",
242
+ display: 'flex',
243
+ alignItems: props.alignItems || 'center',
244
+ justifyContent: 'space-between',
249
245
  }}
250
246
  >
251
247
  {before}
252
248
  <div
253
- style={{ flexGrow: 1, wordBreak: "break-word", minWidth: 0 }}
249
+ style={{flexGrow: 1, wordBreak: 'break-word', minWidth: 0}}
254
250
  ref={textContent}
255
251
  >
256
252
  {children}
@@ -284,7 +280,7 @@ export const MenuGroup = ({
284
280
  mt="-1px"
285
281
  >
286
282
  <Text
287
- forwardedAs={titleAs || "div"}
283
+ forwardedAs={titleAs || 'div'}
288
284
  fontSize={200}
289
285
  fontWeight={600}
290
286
  mt={350}
@@ -312,12 +308,12 @@ export const MenuDivider = (props: any) => (
312
308
  );
313
309
 
314
310
  const MenuFilterInput = (props: React$ElementConfig<typeof Input>) => {
315
- const { onChange, onFocus, onBlur } = props;
316
- const { state, setState } = useContext(MenuContext);
311
+ const {onChange, onFocus, onBlur} = props;
312
+ const {state, setState} = useContext(MenuContext);
317
313
  const handleOnChange = useCallback(
318
314
  (event, value) => {
319
315
  onChange && onChange(event, value);
320
- setState({ filterQuery: value });
316
+ setState({filterQuery: value});
321
317
  },
322
318
  [setState, onChange]
323
319
  );
@@ -325,7 +321,7 @@ const MenuFilterInput = (props: React$ElementConfig<typeof Input>) => {
325
321
  const handleOnFocus = useCallback(
326
322
  (event) => {
327
323
  onFocus && onFocus(event);
328
- setState({ isFilterInputFocused: true });
324
+ setState({isFilterInputFocused: true});
329
325
  },
330
326
  [setState, onFocus]
331
327
  );
@@ -333,7 +329,7 @@ const MenuFilterInput = (props: React$ElementConfig<typeof Input>) => {
333
329
  const handleOnBlur = useCallback(
334
330
  (event) => {
335
331
  onBlur && onBlur(event);
336
- setState({ isFilterInputFocused: false });
332
+ setState({isFilterInputFocused: false});
337
333
  },
338
334
  [setState, onBlur]
339
335
  );
@@ -356,7 +352,7 @@ const MenuItems = ({
356
352
  innerRef,
357
353
  ...props
358
354
  }: TypeMenuProps) => {
359
- const { handleKeyDown, activeDescendent } = useMenuKeyDown();
355
+ const {handleKeyDown, activeDescendent} = useMenuKeyDown();
360
356
 
361
357
  return (
362
358
  <MenuItemsContainer
@@ -392,7 +388,7 @@ export const Menu = ({
392
388
  >();
393
389
  const [state, setState] = useState({
394
390
  selectionIndex: 0,
395
- filterQuery: "",
391
+ filterQuery: '',
396
392
  filteredItems: null,
397
393
  isFilterInputFocused: false,
398
394
  });
@@ -400,7 +396,7 @@ export const Menu = ({
400
396
  const menuRef = useRef(null);
401
397
  const setContextState = useCallback(
402
398
  (newState) => {
403
- setState({ ...state, ...newState });
399
+ setState({...state, ...newState});
404
400
  },
405
401
  [state]
406
402
  );
@@ -445,12 +441,12 @@ Menu.Radio = MenuRadio;
445
441
  Menu.Divider = MenuDivider;
446
442
  Menu.FilterInput = MenuFilterInput;
447
443
 
448
- Menu.Group.displayName = "Menu.Group";
449
- Menu.Item.displayName = "Menu.Item";
450
- Menu.Checkbox.displayName = "Menu.Checkbox";
451
- Menu.Radio.displayName = "Menu.Radio";
452
- Menu.Divider.displayName = "Menu.Divider";
453
- Menu.FilterInput.displayName = "Menu.FilterInput";
444
+ Menu.Group.displayName = 'Menu.Group';
445
+ Menu.Item.displayName = 'Menu.Item';
446
+ Menu.Checkbox.displayName = 'Menu.Checkbox';
447
+ Menu.Radio.displayName = 'Menu.Radio';
448
+ Menu.Divider.displayName = 'Menu.Divider';
449
+ Menu.FilterInput.displayName = 'Menu.FilterInput';
454
450
 
455
451
  const CustomPopoutContent = styled(Popout.Content)`
456
452
  padding: 0;
@@ -464,23 +460,23 @@ export const MenuButton = ({
464
460
  children,
465
461
  onClick,
466
462
  closeOnItemClick = true,
467
- id = uniqueId("MenuButton-"),
468
- placement = "bottom",
463
+ id = uniqueId('MenuButton-'),
464
+ placement = 'bottom',
469
465
  ...props
470
466
  }: TypeMenuButtonProps) => {
471
467
  const [isOpen, setIsOpen] = useState(false);
472
468
 
473
469
  const closePopout = useCallback(() => setIsOpen(false), [setIsOpen]);
474
470
 
475
- const ariaLabelledBy = props["aria-labelledby"]
476
- ? `${props["aria-labelledby"]} ${id}`
471
+ const ariaLabelledBy = props['aria-labelledby']
472
+ ? `${props['aria-labelledby']} ${id}`
477
473
  : undefined;
478
- const ariaLabel = props["aria-label"]
479
- ? `${props["aria-label"]} ${innerText(children)}`
474
+ const ariaLabel = props['aria-label']
475
+ ? `${props['aria-label']} ${innerText(children)}`
480
476
  : undefined;
481
477
 
482
478
  return (
483
- <MenuButtonContext.Provider value={{ closePopout, closeOnItemClick }}>
479
+ <MenuButtonContext.Provider value={{closePopout, closeOnItemClick}}>
484
480
  <Popout
485
481
  isOpen={isOpen}
486
482
  setIsOpen={setIsOpen}
@@ -497,7 +493,7 @@ export const MenuButton = ({
497
493
  aria-label={ariaLabel?.trim()}
498
494
  active={isOpen}
499
495
  onKeyDown={(e) => {
500
- if (e.key === "ArrowUp" || e.key === "ArrowDown") {
496
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
501
497
  onClick && onClick(e);
502
498
  setIsOpen(true);
503
499
  }
@@ -1,19 +1,19 @@
1
1
  // @flow
2
- import React, { useContext } from "react";
3
- import Menu, { MenuButton, MenuCheckbox } from "./index";
4
- import type { TypeMenuProps } from "./index.flow";
5
- import { MenuButtonContext } from "./hooks";
6
- import OverflowList from "../OverflowList";
7
- import Icon from "../Icon";
8
- import { names } from "./names";
9
- import Text from "../Text";
10
- import Box from "../Box";
2
+ import React, {useContext} from 'react';
3
+ import Menu, {MenuButton, MenuCheckbox} from './index';
4
+ import type {TypeMenuProps} from './index.flow';
5
+ import {MenuButtonContext} from './hooks';
6
+ import OverflowList from '../OverflowList';
7
+ import Icon from '../Icon';
8
+ import {names} from './names';
9
+ import Text from '../Text';
10
+ import Box from '../Box';
11
11
 
12
- const fruit = ["Apple", "Banana", "Blueberry", "Orange"];
13
- const maybeFruit = ["Tomato", "Cucumber", "Squash"];
12
+ const fruit = ['Apple', 'Banana', 'Blueberry', 'Orange'];
13
+ const maybeFruit = ['Tomato', 'Cucumber', 'Squash'];
14
14
 
15
15
  export default {
16
- title: "Menu",
16
+ title: 'Components/Menu',
17
17
  };
18
18
 
19
19
  const BaseContents = () => (
@@ -95,7 +95,7 @@ const VirtualizedMenu = (props: TypeMenuProps) => {
95
95
  export const defaultStory = () => <BaseMenu />;
96
96
 
97
97
  defaultStory.story = {
98
- name: "Default",
98
+ name: 'Default',
99
99
  };
100
100
 
101
101
  export const Popout = () => (
@@ -131,8 +131,8 @@ export const PropGetters = () => {
131
131
  height="400px"
132
132
  width="auto"
133
133
  items={names}
134
- getItemProps={({ item }) => ({ key: item, item })}
135
- ItemComponent={({ item }) => (
134
+ getItemProps={({item}) => ({key: item, item})}
135
+ ItemComponent={({item}) => (
136
136
  <Menu.Item onClick={() => alert(item)}>{item}</Menu.Item>
137
137
  )}
138
138
  />
@@ -151,7 +151,7 @@ export const PropGetters = () => {
151
151
  };
152
152
 
153
153
  const CloseOnClick = () => {
154
- const { closePopout } = useContext(MenuButtonContext);
154
+ const {closePopout} = useContext(MenuButtonContext);
155
155
  return (
156
156
  <Menu.Item
157
157
  onClick={() => {
@@ -220,15 +220,15 @@ export const MenuWithIcons = (props: TypeMenuProps) => {
220
220
  backgroundColor="container.background.base"
221
221
  >
222
222
  <Menu {...props}>
223
- <Menu.Item key="positive" onClick={() => alert("positive")}>
223
+ <Menu.Item key="positive" onClick={() => alert('positive')}>
224
224
  <Icon name="flat-positive-sentiment" mr={200} color="icon.info" />
225
225
  Positive
226
226
  </Menu.Item>
227
- <Menu.Item key="negative" onClick={() => alert("negative")}>
227
+ <Menu.Item key="negative" onClick={() => alert('negative')}>
228
228
  <Icon name="flat-negative-sentiment" mr={200} color="icon.error" />
229
229
  Negative
230
230
  </Menu.Item>
231
- <Menu.Item key="neutral" onClick={() => alert("neutral")}>
231
+ <Menu.Item key="neutral" onClick={() => alert('neutral')}>
232
232
  <Icon name="flat-neutral-sentiment" mr={200} />
233
233
  Neutral
234
234
  </Menu.Item>
@@ -1,19 +1,19 @@
1
1
  // @flow
2
- import React from "react";
2
+ import React from 'react';
3
3
  import {
4
4
  render,
5
5
  cleanup,
6
6
  fireEvent,
7
7
  waitForElementToBeRemoved,
8
- } from "../utils/react-testing-library";
9
- import Icon from "../Icon";
8
+ } from '../utils/react-testing-library';
9
+ import Icon from '../Icon';
10
10
 
11
- import Menu, { MenuButton } from "./index";
12
- import type { TypeMenuProps } from "./index.flow";
13
- import { MENU_ITEM_ROLES } from "./constants";
11
+ import Menu, {MenuButton} from './index';
12
+ import type {TypeMenuProps} from './index.flow';
13
+ import {MENU_ITEM_ROLES} from './constants';
14
14
 
15
- const fruit = ["Apple", "Banana", "Orange"];
16
- const maybeFruit = ["Tomato", "Cucumber", "Squash"];
15
+ const fruit = ['Apple', 'Banana', 'Orange'];
16
+ const maybeFruit = ['Tomato', 'Cucumber', 'Squash'];
17
17
  const mockOnClick = jest.fn();
18
18
 
19
19
  export const AsMenu = (props: TypeMenuProps) => {
@@ -49,39 +49,39 @@ export const AsMenuButton = () => {
49
49
  );
50
50
  };
51
51
 
52
- describe("Menu", () => {
52
+ describe('Menu', () => {
53
53
  afterEach(() => {
54
54
  mockOnClick.mockClear();
55
55
  cleanup();
56
56
  });
57
57
 
58
- describe("AsMenu", () => {
59
- it("should render items with menuitem role", () => {
60
- const { queryByRole, queryByDataQaLabel } = render(<AsMenu />);
58
+ describe('AsMenu', () => {
59
+ it('should render items with menuitem role', () => {
60
+ const {queryByRole, queryByDataQaLabel} = render(<AsMenu />);
61
61
  const firstItem = queryByRole(MENU_ITEM_ROLES.MENUITEM, {
62
62
  name: fruit[0],
63
63
  });
64
64
 
65
65
  expect(firstItem).toBeInTheDocument();
66
- expect(queryByDataQaLabel({ "menu-item": fruit[0] })).toBeInTheDocument();
66
+ expect(queryByDataQaLabel({'menu-item': fruit[0]})).toBeInTheDocument();
67
67
  fireEvent.click(firstItem);
68
68
  expect(mockOnClick).toHaveBeenCalled();
69
69
  });
70
70
  });
71
71
 
72
- describe("AsMenuButton", () => {
73
- it("should match snapshot", () => {
72
+ describe('AsMenuButton', () => {
73
+ it('should match snapshot', () => {
74
74
  expect(render(<AsMenuButton />).baseElement).toMatchSnapshot();
75
75
  });
76
76
 
77
- it("should open the menu on click", async () => {
78
- const { queryByLabelText, queryByRole } = render(<AsMenuButton />);
79
- const menuButton = queryByLabelText("Open Menu");
77
+ it('should open the menu on click', async () => {
78
+ const {queryByLabelText, queryByRole} = render(<AsMenuButton />);
79
+ const menuButton = queryByLabelText('Open Menu');
80
80
 
81
81
  expect(menuButton).toBeInTheDocument();
82
- const item = queryByRole(MENU_ITEM_ROLES.MENUITEM, { name: fruit[0] });
82
+ const item = queryByRole(MENU_ITEM_ROLES.MENUITEM, {name: fruit[0]});
83
83
  expect(item).not.toBeInTheDocument();
84
- expect(menuButton).toHaveAttribute("aria-haspopup", "true");
84
+ expect(menuButton).toHaveAttribute('aria-haspopup', 'true');
85
85
 
86
86
  // Clicking button opens popout and focuses first item
87
87
  fireEvent.click(menuButton);
@@ -89,14 +89,14 @@ describe("Menu", () => {
89
89
  name: fruit[0],
90
90
  });
91
91
  expect(firstItem).toBeInTheDocument();
92
- expect(queryByRole("menu")).toBe(document.activeElement);
92
+ expect(queryByRole('menu')).toBe(document.activeElement);
93
93
 
94
94
  // Clicking calls onClick and closes popout
95
95
  fireEvent.click(firstItem);
96
96
  expect(mockOnClick).toHaveBeenCalled();
97
97
 
98
98
  await waitForElementToBeRemoved(() =>
99
- queryByRole(MENU_ITEM_ROLES.MENUITEM, { name: fruit[0] })
99
+ queryByRole(MENU_ITEM_ROLES.MENUITEM, {name: fruit[0]})
100
100
  );
101
101
  });
102
102
  });