@sproutsocial/racine 12.20.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 (621) hide show
  1. package/CHANGELOG.md +20 -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 +30 -30
  75. package/__flow__/Icon/index.test.js +15 -15
  76. package/__flow__/Icon/styles.js +12 -12
  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 +25 -25
  110. package/__flow__/LoaderButton/index.stories.js +7 -7
  111. package/__flow__/LoaderButton/index.test.js +15 -15
  112. package/__flow__/Menu/constants.js +8 -8
  113. package/__flow__/Menu/descendants.js +89 -80
  114. package/__flow__/Menu/hooks.js +22 -22
  115. package/__flow__/Menu/index.flow.js +13 -13
  116. package/__flow__/Menu/index.js +56 -60
  117. package/__flow__/Menu/index.stories.js +19 -19
  118. package/__flow__/Menu/index.test.js +22 -22
  119. package/__flow__/Menu/names.js +4945 -4945
  120. package/__flow__/Menu/styles.js +5 -5
  121. package/__flow__/Message/index.js +33 -33
  122. package/__flow__/Message/index.stories.js +18 -13
  123. package/__flow__/Message/index.test.js +6 -6
  124. package/__flow__/Message/styles.js +15 -15
  125. package/__flow__/Modal/index.js +19 -19
  126. package/__flow__/Modal/index.stories.js +43 -43
  127. package/__flow__/Modal/index.test.js +29 -29
  128. package/__flow__/Modal/styles.js +27 -32
  129. package/__flow__/Numeral/index.js +22 -22
  130. package/__flow__/Numeral/index.stories.js +74 -74
  131. package/__flow__/Numeral/styles.js +3 -3
  132. package/__flow__/Numeral/tests/A11y.test.js +7 -7
  133. package/__flow__/Numeral/tests/abbreviate.test.js +40 -40
  134. package/__flow__/Numeral/tests/currency.test.js +24 -24
  135. package/__flow__/Numeral/tests/defaults.test.js +20 -20
  136. package/__flow__/Numeral/tests/invalid.test.js +9 -9
  137. package/__flow__/Numeral/tests/locale.test.js +38 -38
  138. package/__flow__/Numeral/tests/precision.test.js +76 -76
  139. package/__flow__/Numeral/tests/testNumeral.js +11 -11
  140. package/__flow__/Numeral/tests/zero.test.js +8 -8
  141. package/__flow__/OverflowList/index.flow.js +2 -2
  142. package/__flow__/OverflowList/index.js +12 -12
  143. package/__flow__/OverflowList/index.stories.js +10 -10
  144. package/__flow__/OverflowList/index.test.js +25 -25
  145. package/__flow__/OverflowList/styles.js +5 -5
  146. package/__flow__/PartnerLogo/TypePartnerNames.js +37 -37
  147. package/__flow__/PartnerLogo/index.js +20 -20
  148. package/__flow__/PartnerLogo/index.stories.js +52 -52
  149. package/__flow__/PartnerLogo/styles.js +12 -12
  150. package/__flow__/Popout/index.js +66 -67
  151. package/__flow__/Popout/index.stories.js +101 -82
  152. package/__flow__/Popout/index.test.js +43 -43
  153. package/__flow__/Popout/styles.js +4 -5
  154. package/__flow__/Portal/index.js +9 -9
  155. package/__flow__/Portal/index.stories.js +12 -12
  156. package/__flow__/Radio/index.js +4 -4
  157. package/__flow__/Radio/index.stories.js +11 -11
  158. package/__flow__/Radio/index.test.js +12 -12
  159. package/__flow__/Radio/styles.js +15 -16
  160. package/__flow__/SegmentedControl/index.js +7 -7
  161. package/__flow__/SegmentedControl/index.stories.js +7 -7
  162. package/__flow__/SegmentedControl/index.test.js +29 -29
  163. package/__flow__/SegmentedControl/styles.js +10 -9
  164. package/__flow__/Select/index.js +10 -10
  165. package/__flow__/Select/index.stories.js +33 -69
  166. package/__flow__/Select/index.test.js +14 -14
  167. package/__flow__/Select/styles.js +16 -16
  168. package/__flow__/Skeleton/index.js +4 -4
  169. package/__flow__/Skeleton/index.stories.js +5 -5
  170. package/__flow__/SpotIllustration/illustrationNames.js +118 -117
  171. package/__flow__/SpotIllustration/index.js +15 -11
  172. package/__flow__/SpotIllustration/index.stories.js +18 -18
  173. package/__flow__/SpotIllustration/spotIllustrations/molecule.svg +14 -0
  174. package/__flow__/Stack/index.js +43 -33
  175. package/__flow__/Stack/index.stories.js +41 -91
  176. package/__flow__/Stack/index.test.js +16 -7
  177. package/__flow__/Switch/index.js +8 -8
  178. package/__flow__/Switch/index.stories.js +5 -5
  179. package/__flow__/Switch/index.test.js +25 -29
  180. package/__flow__/Switch/styles.js +13 -9
  181. package/__flow__/Table/index.js +17 -17
  182. package/__flow__/Table/index.stories.js +99 -99
  183. package/__flow__/Table/index.test.js +32 -32
  184. package/__flow__/Table/styles.js +4 -4
  185. package/__flow__/TableCell/index.js +8 -7
  186. package/__flow__/TableCell/index.stories.js +20 -23
  187. package/__flow__/TableCell/index.test.js +11 -11
  188. package/__flow__/TableCell/styles.js +4 -5
  189. package/__flow__/TableHeaderCell/index.js +14 -14
  190. package/__flow__/TableHeaderCell/index.stories.js +35 -30
  191. package/__flow__/TableHeaderCell/index.test.js +11 -11
  192. package/__flow__/TableHeaderCell/styles.js +4 -4
  193. package/__flow__/TableRowAccordion/index.js +8 -8
  194. package/__flow__/TableRowAccordion/index.stories.js +36 -36
  195. package/__flow__/TableRowAccordion/index.test.js +28 -30
  196. package/__flow__/TableRowAccordion/styles.js +11 -7
  197. package/__flow__/Tabs/index.js +11 -11
  198. package/__flow__/Tabs/index.stories.js +28 -54
  199. package/__flow__/Tabs/index.test.js +54 -54
  200. package/__flow__/Tabs/styles.js +6 -7
  201. package/__flow__/Text/index.js +14 -14
  202. package/__flow__/Text/index.stories.js +84 -86
  203. package/__flow__/Text/index.test.js +29 -33
  204. package/__flow__/Text/styles.js +4 -4
  205. package/__flow__/Textarea/index.js +5 -5
  206. package/__flow__/Textarea/index.stories.js +54 -93
  207. package/__flow__/Textarea/index.test.js +30 -30
  208. package/__flow__/Textarea/styles.js +6 -6
  209. package/__flow__/ThemeProvider/index.js +4 -4
  210. package/__flow__/Toast/index.js +23 -23
  211. package/__flow__/Toast/index.stories.js +21 -21
  212. package/__flow__/Toast/styles.js +6 -6
  213. package/__flow__/ToggleHint/index.js +8 -8
  214. package/__flow__/ToggleHint/index.test.js +8 -8
  215. package/__flow__/ToggleHint/styles.js +8 -8
  216. package/__flow__/Token/index.js +10 -10
  217. package/__flow__/Token/index.stories.js +49 -54
  218. package/__flow__/Token/index.test.js +28 -28
  219. package/__flow__/Token/styles.js +11 -11
  220. package/__flow__/TokenInput/index.flow.js +1 -1
  221. package/__flow__/TokenInput/index.js +39 -39
  222. package/__flow__/TokenInput/index.stories.js +121 -128
  223. package/__flow__/TokenInput/styles.js +5 -5
  224. package/__flow__/TokenInput/tests/default/clicking.test.js +13 -13
  225. package/__flow__/TokenInput/tests/default/deleting.test.js +39 -39
  226. package/__flow__/TokenInput/tests/default/focusing.test.js +18 -18
  227. package/__flow__/TokenInput/tests/default/inputting.test.js +23 -23
  228. package/__flow__/TokenInput/tests/default/pasting.test.js +52 -52
  229. package/__flow__/TokenInput/tests/default/rendering.test.js +54 -54
  230. package/__flow__/TokenInput/util.js +4 -4
  231. package/__flow__/Tooltip/index.js +21 -21
  232. package/__flow__/Tooltip/index.stories.js +18 -18
  233. package/__flow__/Tooltip/index.test.js +54 -54
  234. package/__flow__/Tooltip/styles.js +4 -5
  235. package/__flow__/VisuallyHidden/index.js +3 -3
  236. package/__flow__/building-stories.stories.mdx +121 -0
  237. package/__flow__/dataviz/dataviz.stories.js +4 -4
  238. package/__flow__/dataviz/index.js +3 -3
  239. package/__flow__/index.js +72 -72
  240. package/__flow__/overview.stories.js +60 -0
  241. package/__flow__/setupTests.js +5 -5
  242. package/__flow__/systemProps/background.js +3 -3
  243. package/__flow__/systemProps/border.js +3 -3
  244. package/__flow__/systemProps/color.js +3 -3
  245. package/__flow__/systemProps/custom.js +3 -3
  246. package/__flow__/systemProps/flexbox.js +3 -3
  247. package/__flow__/systemProps/grid.js +3 -3
  248. package/__flow__/systemProps/index.js +14 -14
  249. package/__flow__/systemProps/layout.js +3 -3
  250. package/__flow__/systemProps/position.js +3 -3
  251. package/__flow__/systemProps/shadow.js +3 -3
  252. package/__flow__/systemProps/space.js +3 -7
  253. package/__flow__/systemProps/systemProps.js +14 -14
  254. package/__flow__/systemProps/tests/background.test.js +17 -17
  255. package/__flow__/systemProps/tests/border.test.js +61 -61
  256. package/__flow__/systemProps/tests/color.test.js +15 -15
  257. package/__flow__/systemProps/tests/custom.test.js +12 -12
  258. package/__flow__/systemProps/tests/flexbox.test.js +33 -33
  259. package/__flow__/systemProps/tests/grid.test.js +31 -31
  260. package/__flow__/systemProps/tests/layout.test.js +29 -29
  261. package/__flow__/systemProps/tests/position.test.js +19 -19
  262. package/__flow__/systemProps/tests/shadow.test.js +11 -11
  263. package/__flow__/systemProps/tests/space.test.js +11 -11
  264. package/__flow__/systemProps/tests/types.flow.js +18 -18
  265. package/__flow__/systemProps/tests/typography.test.js +21 -21
  266. package/__flow__/systemProps/tests/variant.test.js +9 -9
  267. package/__flow__/systemProps/types.flow.js +2 -2
  268. package/__flow__/systemProps/typography.js +4 -4
  269. package/__flow__/systemProps/variant.js +5 -5
  270. package/__flow__/themes/dark/dataviz-palette.js +21 -21
  271. package/__flow__/themes/dark/decorative-palettes.js +1 -1
  272. package/__flow__/themes/dark/theme.js +16 -16
  273. package/__flow__/themes/extendedThemes/README.md +1 -1
  274. package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +4 -4
  275. package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
  276. package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +4 -4
  277. package/__flow__/themes/light/dataviz-palette.js +21 -21
  278. package/__flow__/themes/light/decorative-palettes.js +1 -1
  279. package/__flow__/themes/light/literal-colors.js +133 -133
  280. package/__flow__/themes/light/theme.js +51 -51
  281. package/__flow__/types/system-props.flow.js +5 -5
  282. package/__flow__/types/theme.colors.flow.js +2 -2
  283. package/__flow__/types/theme.flow.js +5 -5
  284. package/__flow__/utils/a11yTest.js +1 -1
  285. package/__flow__/utils/chartColors.js +1 -1
  286. package/__flow__/utils/constants.js +1 -1
  287. package/__flow__/utils/dataQaLabelQueries.js +2 -2
  288. package/__flow__/utils/hooks.js +17 -17
  289. package/__flow__/utils/index.js +4 -4
  290. package/__flow__/utils/innerText.js +9 -9
  291. package/__flow__/utils/mixins.js +6 -6
  292. package/__flow__/utils/react-testing-library.js +6 -6
  293. package/__flow__/utils/responsiveProps/index.js +3 -3
  294. package/__flow__/utils/responsiveProps/index.test.js +8 -8
  295. package/__flow__/utils/system-props.js +3 -3
  296. package/__flow__/utils/useInteractiveColor.js +5 -5
  297. package/__flow__/writing-good-stories.stories.mdx +3 -0
  298. package/bin/racine-codemod.js +12 -12
  299. package/codemods/__tests__/migrate-2.x-to-3.x.test.js +2 -2
  300. package/codemods/migrate-2.x-to-3.x.js +29 -30
  301. package/commonjs/Avatar/index.js +33 -53
  302. package/commonjs/Badge/constants.js +18 -15
  303. package/commonjs/Badge/index.js +14 -28
  304. package/commonjs/Badge/styles.js +3 -9
  305. package/commonjs/Banner/index.js +16 -37
  306. package/commonjs/Banner/styles.js +0 -5
  307. package/commonjs/Box/index.js +2 -9
  308. package/commonjs/Box/styles.js +0 -4
  309. package/commonjs/Breadcrumb/index.js +13 -29
  310. package/commonjs/Breadcrumb/styles.js +1 -4
  311. package/commonjs/Button/index.js +29 -43
  312. package/commonjs/Button/styles.js +6 -15
  313. package/commonjs/Card/index.js +16 -26
  314. package/commonjs/Card/styles.js +1 -5
  315. package/commonjs/CharacterCounter/index.js +6 -23
  316. package/commonjs/CharacterCounter/styles.js +0 -5
  317. package/commonjs/ChartLegend/index.js +5 -20
  318. package/commonjs/ChartLegend/styles.js +2 -11
  319. package/commonjs/Checkbox/index.js +30 -53
  320. package/commonjs/Checkbox/styles.js +14 -35
  321. package/commonjs/Collapsible/index.js +31 -54
  322. package/commonjs/Collapsible/styles.js +3 -6
  323. package/commonjs/DatePicker/DateRangePicker.js +4 -17
  324. package/commonjs/DatePicker/SingleDatePicker.js +3 -17
  325. package/commonjs/DatePicker/StatefulDateRangePicker.js +16 -31
  326. package/commonjs/DatePicker/StatefulSingleDatePicker.js +7 -20
  327. package/commonjs/DatePicker/common.js +8 -22
  328. package/commonjs/DatePicker/index.js +0 -5
  329. package/commonjs/DatePicker/styles.js +8 -25
  330. package/commonjs/Drawer/SlideTransition.js +8 -18
  331. package/commonjs/Drawer/index.js +51 -90
  332. package/commonjs/Drawer/styles.js +0 -8
  333. package/commonjs/EmptyState/index.js +8 -20
  334. package/commonjs/Fieldset/index.js +15 -32
  335. package/commonjs/Fieldset/styles.js +2 -7
  336. package/commonjs/FormField/index.js +19 -36
  337. package/commonjs/Icon/deprecatedIcons.js +36 -36
  338. package/commonjs/Icon/index.js +19 -37
  339. package/commonjs/Icon/styles.js +7 -16
  340. package/commonjs/IllustrationViewBoxes.js +1 -0
  341. package/commonjs/Image/index.js +13 -41
  342. package/commonjs/Image/styles.js +1 -7
  343. package/commonjs/Indicator/index.js +8 -26
  344. package/commonjs/Indicator/styles.js +1 -7
  345. package/commonjs/Input/index.js +80 -119
  346. package/commonjs/Input/styles.js +9 -19
  347. package/commonjs/KeyboardKey/index.js +3 -20
  348. package/commonjs/KeyboardKey/styles.js +0 -4
  349. package/commonjs/Label/index.js +7 -27
  350. package/commonjs/Link/constants.js +3 -4
  351. package/commonjs/Link/index.js +16 -28
  352. package/commonjs/Link/styles.js +1 -8
  353. package/commonjs/Listbox/index.js +15 -36
  354. package/commonjs/Loader/index.js +15 -31
  355. package/commonjs/Loader/styles.js +2 -13
  356. package/commonjs/LoaderButton/index.js +26 -55
  357. package/commonjs/Menu/constants.js +9 -8
  358. package/commonjs/Menu/descendants.js +70 -105
  359. package/commonjs/Menu/hooks.js +23 -41
  360. package/commonjs/Menu/index.flow.js +0 -7
  361. package/commonjs/Menu/index.js +94 -164
  362. package/commonjs/Menu/names.js +1 -1
  363. package/commonjs/Menu/styles.js +0 -6
  364. package/commonjs/Message/index.js +37 -70
  365. package/commonjs/Message/styles.js +9 -24
  366. package/commonjs/Modal/index.js +31 -54
  367. package/commonjs/Modal/styles.js +17 -36
  368. package/commonjs/Numeral/index.js +39 -67
  369. package/commonjs/Numeral/styles.js +0 -3
  370. package/commonjs/Numeral/tests/testNumeral.js +13 -31
  371. package/commonjs/OverflowList/index.flow.js +0 -2
  372. package/commonjs/OverflowList/index.js +27 -41
  373. package/commonjs/OverflowList/styles.js +0 -7
  374. package/commonjs/PartnerLogo/index.js +19 -33
  375. package/commonjs/PartnerLogo/styles.js +7 -15
  376. package/commonjs/Popout/index.js +95 -127
  377. package/commonjs/Popout/styles.js +0 -5
  378. package/commonjs/Portal/index.js +8 -31
  379. package/commonjs/Radio/index.js +18 -42
  380. package/commonjs/Radio/styles.js +9 -21
  381. package/commonjs/SegmentedControl/index.js +17 -37
  382. package/commonjs/SegmentedControl/styles.js +2 -12
  383. package/commonjs/Select/index.js +24 -47
  384. package/commonjs/Select/styles.js +12 -24
  385. package/commonjs/Skeleton/index.js +0 -5
  386. package/commonjs/SpotIllustration/illustrationNames.js +1 -1
  387. package/commonjs/SpotIllustration/index.js +5 -11
  388. package/commonjs/Stack/index.js +27 -42
  389. package/commonjs/Switch/index.js +17 -42
  390. package/commonjs/Switch/styles.js +3 -11
  391. package/commonjs/Table/index.js +26 -50
  392. package/commonjs/Table/styles.js +0 -4
  393. package/commonjs/TableCell/index.js +12 -30
  394. package/commonjs/TableCell/styles.js +0 -5
  395. package/commonjs/TableHeaderCell/index.js +27 -56
  396. package/commonjs/TableHeaderCell/styles.js +0 -6
  397. package/commonjs/TableRowAccordion/index.js +12 -37
  398. package/commonjs/TableRowAccordion/styles.js +2 -9
  399. package/commonjs/Tabs/index.js +16 -66
  400. package/commonjs/Tabs/styles.js +2 -11
  401. package/commonjs/Text/index.js +12 -25
  402. package/commonjs/Text/styles.js +1 -6
  403. package/commonjs/Textarea/index.js +31 -55
  404. package/commonjs/Textarea/styles.js +2 -9
  405. package/commonjs/ThemeProvider/index.js +1 -10
  406. package/commonjs/Toast/index.js +19 -42
  407. package/commonjs/Toast/styles.js +1 -7
  408. package/commonjs/ToggleHint/index.js +15 -39
  409. package/commonjs/ToggleHint/styles.js +2 -9
  410. package/commonjs/Token/index.js +15 -29
  411. package/commonjs/Token/styles.js +5 -12
  412. package/commonjs/TokenInput/index.js +70 -122
  413. package/commonjs/TokenInput/styles.js +1 -7
  414. package/commonjs/TokenInput/util.js +2 -7
  415. package/commonjs/Tooltip/index.js +40 -63
  416. package/commonjs/Tooltip/styles.js +1 -5
  417. package/commonjs/VisuallyHidden/index.js +0 -4
  418. package/commonjs/dataviz/index.js +0 -4
  419. package/commonjs/index.js +0 -129
  420. package/commonjs/systemProps/background.js +0 -1
  421. package/commonjs/systemProps/border.js +0 -1
  422. package/commonjs/systemProps/color.js +0 -1
  423. package/commonjs/systemProps/custom.js +0 -1
  424. package/commonjs/systemProps/flexbox.js +0 -1
  425. package/commonjs/systemProps/grid.js +0 -1
  426. package/commonjs/systemProps/index.js +0 -28
  427. package/commonjs/systemProps/layout.js +0 -1
  428. package/commonjs/systemProps/position.js +0 -1
  429. package/commonjs/systemProps/shadow.js +0 -1
  430. package/commonjs/systemProps/space.js +1 -2
  431. package/commonjs/systemProps/systemProps.js +0 -13
  432. package/commonjs/systemProps/tests/types.flow.js +25 -22
  433. package/commonjs/systemProps/typography.js +0 -1
  434. package/commonjs/systemProps/variant.js +2 -3
  435. package/commonjs/themes/dark/dataviz-palette.js +20 -22
  436. package/commonjs/themes/dark/decorative-palettes.js +0 -2
  437. package/commonjs/themes/dark/theme.js +13 -27
  438. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +2 -9
  439. package/commonjs/themes/extendedThemes/sproutTheme/index.js +0 -5
  440. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +2 -9
  441. package/commonjs/themes/light/dataviz-palette.js +20 -22
  442. package/commonjs/themes/light/decorative-palettes.js +0 -2
  443. package/commonjs/themes/light/literal-colors.js +132 -134
  444. package/commonjs/themes/light/theme.js +43 -59
  445. package/commonjs/types/system-props.flow.js +1 -1
  446. package/commonjs/types/theme.colors.flow.js +0 -2
  447. package/commonjs/types/theme.flow.js +0 -1
  448. package/commonjs/utils/a11yTest.js +3 -10
  449. package/commonjs/utils/chartColors.js +0 -1
  450. package/commonjs/utils/constants.js +1 -1
  451. package/commonjs/utils/dataQaLabelQueries.js +12 -21
  452. package/commonjs/utils/hooks.js +39 -70
  453. package/commonjs/utils/index.js +2 -9
  454. package/commonjs/utils/innerText.js +10 -14
  455. package/commonjs/utils/mixins.js +2 -7
  456. package/commonjs/utils/react-testing-library.js +4 -26
  457. package/commonjs/utils/responsiveProps/index.js +1 -11
  458. package/commonjs/utils/system-props.js +2 -5
  459. package/commonjs/utils/useInteractiveColor.js +6 -8
  460. package/dist/illustration.svg +1 -1
  461. package/dist/illustrationList.js +1 -1
  462. package/lib/Avatar/index.js +40 -47
  463. package/lib/Badge/constants.js +19 -15
  464. package/lib/Badge/index.js +18 -25
  465. package/lib/Badge/styles.js +8 -6
  466. package/lib/Banner/index.js +20 -32
  467. package/lib/Banner/styles.js +3 -2
  468. package/lib/Box/index.js +4 -5
  469. package/lib/Box/styles.js +3 -2
  470. package/lib/Breadcrumb/index.js +19 -27
  471. package/lib/Breadcrumb/styles.js +3 -2
  472. package/lib/Button/index.js +31 -38
  473. package/lib/Button/styles.js +14 -11
  474. package/lib/Card/index.js +18 -24
  475. package/lib/Card/styles.js +5 -4
  476. package/lib/CharacterCounter/index.js +8 -20
  477. package/lib/CharacterCounter/styles.js +3 -2
  478. package/lib/ChartLegend/index.js +9 -17
  479. package/lib/ChartLegend/styles.js +5 -4
  480. package/lib/Checkbox/index.js +32 -51
  481. package/lib/Checkbox/styles.js +21 -26
  482. package/lib/Collapsible/index.js +36 -51
  483. package/lib/Collapsible/styles.js +6 -5
  484. package/lib/DatePicker/DateRangePicker.js +8 -14
  485. package/lib/DatePicker/SingleDatePicker.js +7 -13
  486. package/lib/DatePicker/StatefulDateRangePicker.js +19 -26
  487. package/lib/DatePicker/StatefulSingleDatePicker.js +9 -15
  488. package/lib/DatePicker/common.js +14 -13
  489. package/lib/DatePicker/index.js +2 -2
  490. package/lib/DatePicker/styles.js +12 -22
  491. package/lib/Drawer/SlideTransition.js +11 -14
  492. package/lib/Drawer/index.js +64 -88
  493. package/lib/Drawer/styles.js +4 -3
  494. package/lib/EmptyState/index.js +11 -17
  495. package/lib/Fieldset/index.js +19 -29
  496. package/lib/Fieldset/styles.js +5 -4
  497. package/lib/FormField/index.js +27 -33
  498. package/lib/Icon/deprecatedIcons.js +36 -36
  499. package/lib/Icon/index.js +25 -34
  500. package/lib/Icon/styles.js +11 -13
  501. package/lib/IllustrationViewBoxes.js +1 -0
  502. package/lib/Image/index.js +15 -38
  503. package/lib/Image/styles.js +4 -4
  504. package/lib/Indicator/index.js +11 -23
  505. package/lib/Indicator/styles.js +5 -5
  506. package/lib/Input/index.js +87 -115
  507. package/lib/Input/styles.js +13 -15
  508. package/lib/KeyboardKey/index.js +6 -17
  509. package/lib/KeyboardKey/styles.js +3 -2
  510. package/lib/Label/index.js +10 -24
  511. package/lib/Link/constants.js +5 -4
  512. package/lib/Link/index.js +18 -25
  513. package/lib/Link/styles.js +6 -5
  514. package/lib/Listbox/index.js +21 -29
  515. package/lib/Loader/index.js +17 -29
  516. package/lib/Loader/styles.js +6 -8
  517. package/lib/LoaderButton/index.js +34 -51
  518. package/lib/Menu/constants.js +10 -8
  519. package/lib/Menu/descendants.js +73 -94
  520. package/lib/Menu/hooks.js +28 -39
  521. package/lib/Menu/index.flow.js +6 -5
  522. package/lib/Menu/index.js +113 -150
  523. package/lib/Menu/names.js +1 -1
  524. package/lib/Menu/styles.js +4 -3
  525. package/lib/Message/index.js +42 -66
  526. package/lib/Message/styles.js +15 -23
  527. package/lib/Modal/index.js +38 -51
  528. package/lib/Modal/styles.js +23 -32
  529. package/lib/Numeral/index.js +45 -64
  530. package/lib/Numeral/styles.js +3 -2
  531. package/lib/Numeral/tests/testNumeral.js +17 -27
  532. package/lib/OverflowList/index.flow.js +2 -1
  533. package/lib/OverflowList/index.js +31 -38
  534. package/lib/OverflowList/styles.js +5 -4
  535. package/lib/PartnerLogo/index.js +23 -31
  536. package/lib/PartnerLogo/styles.js +11 -12
  537. package/lib/Popout/index.js +105 -121
  538. package/lib/Popout/styles.js +3 -3
  539. package/lib/Portal/index.js +11 -29
  540. package/lib/Radio/index.js +20 -40
  541. package/lib/Radio/styles.js +14 -14
  542. package/lib/SegmentedControl/index.js +21 -34
  543. package/lib/SegmentedControl/styles.js +7 -9
  544. package/lib/Select/index.js +27 -44
  545. package/lib/Select/styles.js +16 -20
  546. package/lib/Skeleton/index.js +7 -4
  547. package/lib/SpotIllustration/illustrationNames.js +2 -1
  548. package/lib/SpotIllustration/index.js +9 -10
  549. package/lib/Stack/index.js +31 -39
  550. package/lib/Switch/index.js +21 -39
  551. package/lib/Switch/styles.js +8 -7
  552. package/lib/Table/index.js +30 -40
  553. package/lib/Table/styles.js +3 -2
  554. package/lib/TableCell/index.js +14 -27
  555. package/lib/TableCell/styles.js +3 -3
  556. package/lib/TableHeaderCell/index.js +30 -52
  557. package/lib/TableHeaderCell/styles.js +3 -2
  558. package/lib/TableRowAccordion/index.js +16 -34
  559. package/lib/TableRowAccordion/styles.js +5 -3
  560. package/lib/Tabs/index.js +18 -63
  561. package/lib/Tabs/styles.js +6 -6
  562. package/lib/Text/index.js +15 -21
  563. package/lib/Text/styles.js +4 -3
  564. package/lib/Textarea/index.js +33 -53
  565. package/lib/Textarea/styles.js +6 -5
  566. package/lib/ThemeProvider/index.js +4 -7
  567. package/lib/Toast/index.js +26 -37
  568. package/lib/Toast/styles.js +5 -4
  569. package/lib/ToggleHint/index.js +18 -36
  570. package/lib/ToggleHint/styles.js +6 -5
  571. package/lib/Token/index.js +20 -26
  572. package/lib/Token/styles.js +10 -9
  573. package/lib/TokenInput/index.js +78 -118
  574. package/lib/TokenInput/styles.js +5 -4
  575. package/lib/TokenInput/util.js +5 -3
  576. package/lib/Tooltip/index.js +45 -60
  577. package/lib/Tooltip/styles.js +4 -4
  578. package/lib/VisuallyHidden/index.js +3 -2
  579. package/lib/dataviz/index.js +4 -3
  580. package/lib/index.js +66 -64
  581. package/lib/systemProps/background.js +3 -1
  582. package/lib/systemProps/border.js +3 -1
  583. package/lib/systemProps/color.js +3 -1
  584. package/lib/systemProps/custom.js +3 -1
  585. package/lib/systemProps/flexbox.js +3 -1
  586. package/lib/systemProps/grid.js +3 -1
  587. package/lib/systemProps/index.js +16 -14
  588. package/lib/systemProps/layout.js +3 -1
  589. package/lib/systemProps/position.js +3 -1
  590. package/lib/systemProps/shadow.js +3 -1
  591. package/lib/systemProps/space.js +2 -1
  592. package/lib/systemProps/systemProps.js +14 -13
  593. package/lib/systemProps/tests/types.flow.js +27 -22
  594. package/lib/systemProps/typography.js +3 -1
  595. package/lib/systemProps/variant.js +4 -3
  596. package/lib/themes/dark/dataviz-palette.js +23 -21
  597. package/lib/themes/dark/decorative-palettes.js +3 -1
  598. package/lib/themes/dark/theme.js +20 -23
  599. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +4 -7
  600. package/lib/themes/extendedThemes/sproutTheme/index.js +3 -2
  601. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +4 -7
  602. package/lib/themes/light/dataviz-palette.js +23 -21
  603. package/lib/themes/light/decorative-palettes.js +3 -1
  604. package/lib/themes/light/literal-colors.js +135 -133
  605. package/lib/themes/light/theme.js +54 -55
  606. package/lib/types/system-props.flow.js +1 -1
  607. package/lib/types/theme.colors.flow.js +4 -2
  608. package/lib/types/theme.flow.js +3 -2
  609. package/lib/utils/a11yTest.js +5 -8
  610. package/lib/utils/chartColors.js +3 -1
  611. package/lib/utils/constants.js +3 -1
  612. package/lib/utils/dataQaLabelQueries.js +13 -21
  613. package/lib/utils/hooks.js +41 -64
  614. package/lib/utils/index.js +2 -5
  615. package/lib/utils/innerText.js +12 -14
  616. package/lib/utils/mixins.js +6 -5
  617. package/lib/utils/react-testing-library.js +10 -20
  618. package/lib/utils/responsiveProps/index.js +3 -8
  619. package/lib/utils/system-props.js +4 -3
  620. package/lib/utils/useInteractiveColor.js +10 -9
  621. package/package.json +6 -13
@@ -1,16 +1,34 @@
1
1
  // @flow
2
- import React, { useState, type Node as ReactNode } from "react";
3
- import Popout, { placements, type TypeFocusLockProps } from "./index";
4
- import Box from "../Box";
5
- import Button from "../Button";
6
- import Input from "../Input";
7
- import Icon from "../Icon";
8
- import { select, object as knobsObject } from "@storybook/addon-knobs";
9
- import Modal from "../Modal";
10
- import Drawer from "../Drawer";
11
- import Loader from "../Loader";
12
-
13
- const Wrapper = ({ children }: { children: ReactNode }) => (
2
+ import React, {useState, type Node as ReactNode} from 'react';
3
+ import Popout, {type TypeProps, placements} from './index';
4
+ import Box from '../Box';
5
+ import Button from '../Button';
6
+ import Input from '../Input';
7
+ import Icon from '../Icon';
8
+ import Modal from '../Modal';
9
+ import Drawer from '../Drawer';
10
+ import Loader from '../Loader';
11
+
12
+ export default {
13
+ title: 'Components/Popout',
14
+ component: Popout,
15
+ argTypes: {
16
+ isOpen: {control: 'boolean'},
17
+ placement: {
18
+ /* $FlowIssue Storybook needs an array here */
19
+ options: Object.keys(placements),
20
+ control: 'select',
21
+ },
22
+ focusLockProps: {control: 'object'},
23
+ },
24
+ args: {
25
+ isOpen: false,
26
+ placement: placements.auto,
27
+ focusLockProps: {returnFocus: false},
28
+ },
29
+ };
30
+
31
+ const Wrapper = ({children}: {children: ReactNode}) => (
14
32
  <Box
15
33
  width="100%"
16
34
  p={600}
@@ -23,15 +41,17 @@ const Wrapper = ({ children }: { children: ReactNode }) => (
23
41
  </Box>
24
42
  );
25
43
 
26
- const Content = ({ ...rest }) => (
44
+ const Content = ({...rest}) => (
27
45
  <Popout.Content {...rest}>I am the popped out content!</Popout.Content>
28
46
  );
29
47
 
30
- const FullyControlled = ({
31
- placement = select("placement", placements),
32
- defaultIsOpen = false,
33
- }) => {
34
- const [isOpen, setIsOpen] = useState(defaultIsOpen);
48
+ type TypeFullyControlled = {
49
+ children?: ReactNode,
50
+ ...TypeProps,
51
+ };
52
+
53
+ const FullyControlled = (args: TypeFullyControlled) => {
54
+ const [isOpen, setIsOpen] = useState(args.isOpen);
35
55
 
36
56
  const isOpenCallback = (isOpen, event) => {
37
57
  event && event.stopPropagation && event.stopPropagation();
@@ -43,7 +63,7 @@ const FullyControlled = ({
43
63
  content={<Content />}
44
64
  isOpen={isOpen}
45
65
  setIsOpen={isOpenCallback}
46
- placement={placement}
66
+ placement={args.placement}
47
67
  >
48
68
  <Button appearance="primary" onClick={() => setIsOpen(!isOpen)}>
49
69
  show popout
@@ -52,25 +72,21 @@ const FullyControlled = ({
52
72
  );
53
73
  };
54
74
 
55
- export default {
56
- title: "Popout",
57
- };
58
-
59
- export const fullyControlled = () => (
75
+ export const fullyControlled = (args: TypeFullyControlled) => (
60
76
  <Wrapper>
61
- <FullyControlled />
77
+ <FullyControlled {...args} />
62
78
  </Wrapper>
63
79
  );
64
80
 
65
81
  fullyControlled.story = {
66
- name: "Fully Controlled",
82
+ name: 'Fully Controlled',
67
83
  };
68
84
 
69
- export const renderProp = () => {
85
+ export const renderProp = (args: TypeProps) => {
70
86
  return (
71
87
  <Wrapper>
72
- <Popout content={<Content />} placement={select("placement", placements)}>
73
- {({ toggle, ref, ariaProps }) => (
88
+ <Popout content={<Content />} placement={args.placement}>
89
+ {({toggle, ref, ariaProps}) => (
74
90
  <Button
75
91
  appearance="primary"
76
92
  innerRef={ref}
@@ -86,13 +102,13 @@ export const renderProp = () => {
86
102
  };
87
103
 
88
104
  renderProp.story = {
89
- name: "Render Prop",
105
+ name: 'Render Prop',
90
106
  };
91
107
 
92
- export const magicButton = () => {
108
+ export const magicButton = (args: TypeProps) => {
93
109
  return (
94
110
  <Wrapper>
95
- <Popout content={<Content />} placement={select("placement", placements)}>
111
+ <Popout content={<Content />} placement={args.placement}>
96
112
  <Button appearance="primary">show popout</Button>
97
113
  </Popout>
98
114
  </Wrapper>
@@ -100,14 +116,14 @@ export const magicButton = () => {
100
116
  };
101
117
 
102
118
  magicButton.story = {
103
- name: "Magic Button",
119
+ name: 'Magic Button',
104
120
  };
105
121
 
106
- export const passACloseCallbackToThePopoutContent = () => {
122
+ export const passACloseCallbackToThePopoutContent = (args: TypeProps) => {
107
123
  return (
108
124
  <Wrapper>
109
125
  <Popout
110
- content={({ hide }) => (
126
+ content={({hide}) => (
111
127
  <Popout.Content>
112
128
  <Box mb={350}>some text.</Box>
113
129
  <Button appearance="primary" onClick={hide}>
@@ -115,7 +131,7 @@ export const passACloseCallbackToThePopoutContent = () => {
115
131
  </Button>
116
132
  </Popout.Content>
117
133
  )}
118
- placement={select("placement", placements)}
134
+ placement={args.placement}
119
135
  >
120
136
  <Button appearance="primary">show popout</Button>
121
137
  </Popout>
@@ -124,10 +140,10 @@ export const passACloseCallbackToThePopoutContent = () => {
124
140
  };
125
141
 
126
142
  passACloseCallbackToThePopoutContent.story = {
127
- name: "Pass a close callback to the popout content",
143
+ name: 'Pass a close callback to the popout content',
128
144
  };
129
145
 
130
- export const overflowScrollCollisionDetection = () => {
146
+ export const overflowScrollCollisionDetection = (args: TypeProps) => {
131
147
  return (
132
148
  <Box overflow="auto" height="400px" width="800px" bg="neutral.400">
133
149
  <Box
@@ -136,10 +152,7 @@ export const overflowScrollCollisionDetection = () => {
136
152
  alignItems="center"
137
153
  display="flex"
138
154
  >
139
- <Popout
140
- content={<Content />}
141
- placement={select("placement", placements)}
142
- >
155
+ <Popout content={<Content />} placement={args.placement}>
143
156
  <Button appearance="primary">show popout</Button>
144
157
  </Popout>
145
158
  </Box>
@@ -148,19 +161,19 @@ export const overflowScrollCollisionDetection = () => {
148
161
  };
149
162
 
150
163
  overflowScrollCollisionDetection.story = {
151
- name: "Overflow, scroll, collision detection",
164
+ name: 'Overflow, scroll, collision detection',
152
165
  };
153
166
 
154
- export const attachedToFormFullWidth = () => {
167
+ export const attachedToFormFullWidth = (args: TypeProps) => {
155
168
  return (
156
169
  <Box>
157
170
  <Popout
158
171
  content={<Content m={0} width="100%" />}
159
- placement={select("placement", placements)}
172
+ placement={args.placement}
160
173
  fullWidth={true}
161
174
  focusOnContent={false}
162
175
  >
163
- {({ show, hide, ref, ariaProps }) => (
176
+ {({show, hide, ref, ariaProps}) => (
164
177
  <Input
165
178
  id="popout-input"
166
179
  name="popout-input"
@@ -181,10 +194,10 @@ export const attachedToFormFullWidth = () => {
181
194
  };
182
195
 
183
196
  attachedToFormFullWidth.story = {
184
- name: "Attached to form, full width",
197
+ name: 'Attached to form, full width',
185
198
  };
186
199
 
187
- export const withinAModal = () => {
200
+ export const withinAModal = (args: TypeProps) => {
188
201
  return (
189
202
  <Modal
190
203
  appElementSelector="#root"
@@ -202,7 +215,7 @@ export const withinAModal = () => {
202
215
  >
203
216
  <Box>
204
217
  <Popout
205
- content={({ hide }) => (
218
+ content={({hide}) => (
206
219
  <Popout.Content>
207
220
  <Box mb={350}>some text.</Box>
208
221
  <Button appearance="primary" onClick={hide}>
@@ -210,7 +223,7 @@ export const withinAModal = () => {
210
223
  </Button>
211
224
  </Popout.Content>
212
225
  )}
213
- placement={select("placement", placements)}
226
+ placement={args.placement}
214
227
  >
215
228
  <Button appearance="primary">show popout</Button>
216
229
  </Popout>
@@ -221,10 +234,10 @@ export const withinAModal = () => {
221
234
  };
222
235
 
223
236
  withinAModal.story = {
224
- name: "Within a modal",
237
+ name: 'Within a modal',
225
238
  };
226
239
 
227
- export const withinADrawer = () => {
240
+ export const withinADrawer = (args: TypeProps) => {
228
241
  return (
229
242
  <Drawer
230
243
  id="popout-drawer"
@@ -241,7 +254,7 @@ export const withinADrawer = () => {
241
254
  <Box>
242
255
  <Popout
243
256
  appendToBody={false}
244
- content={({ hide }) => (
257
+ content={({hide}) => (
245
258
  <Popout.Content>
246
259
  <Box mb={350}>some text.</Box>
247
260
  <Button appearance="primary" onClick={hide}>
@@ -249,7 +262,7 @@ export const withinADrawer = () => {
249
262
  </Button>
250
263
  </Popout.Content>
251
264
  )}
252
- placement={select("placement", placements, "bottom")}
265
+ placement={args.placement}
253
266
  >
254
267
  <Button appearance="primary">show popout</Button>
255
268
  </Popout>
@@ -259,11 +272,15 @@ export const withinADrawer = () => {
259
272
  );
260
273
  };
261
274
 
275
+ withinADrawer.args = {
276
+ placement: 'bottom',
277
+ };
278
+
262
279
  withinADrawer.story = {
263
- name: "Within a drawer",
280
+ name: 'Within a drawer',
264
281
  };
265
282
 
266
- export const bringFocusWithin = () => (
283
+ export const bringFocusWithin = (args: TypeProps) => (
267
284
  <Box
268
285
  width="100%"
269
286
  display="flex"
@@ -280,7 +297,7 @@ export const bringFocusWithin = () => (
280
297
  <Input id="popout" name="popout" autoFocus />
281
298
  </Popout.Content>
282
299
  }
283
- placement={select("placement", placements)}
300
+ placement={args.placement}
284
301
  >
285
302
  <Button appearance="primary">show popout</Button>
286
303
  </Popout>
@@ -289,22 +306,22 @@ export const bringFocusWithin = () => (
289
306
  );
290
307
 
291
308
  bringFocusWithin.story = {
292
- name: "Bring focus within",
309
+ name: 'Bring focus within',
293
310
  };
294
311
 
295
- export const withIcon = () => (
312
+ export const withIcon = (args: TypeProps) => (
296
313
  <Wrapper>
297
- <Popout content={<Content />} placement={select("placement", placements)}>
314
+ <Popout content={<Content />} placement={args.placement}>
298
315
  <Icon name="globe" size="jumbo" />
299
316
  </Popout>
300
317
  </Wrapper>
301
318
  );
302
319
 
303
320
  withIcon.story = {
304
- name: "With icon",
321
+ name: 'With icon',
305
322
  };
306
323
 
307
- export const onOpenAndOnCloseCallbacks = () => (
324
+ export const onOpenAndOnCloseCallbacks = (args: TypeProps) => (
308
325
  <Box width="100%" display="flex" alignItems="center" justifyContent="center">
309
326
  <Box>
310
327
  <Popout
@@ -313,9 +330,9 @@ export const onOpenAndOnCloseCallbacks = () => (
313
330
  <Box>should fire alerts on open and close</Box>
314
331
  </Popout.Content>
315
332
  }
316
- placement={select("placement", placements)}
317
- onOpen={() => alert("opened!")}
318
- onClose={() => alert("closed!")}
333
+ placement={args.placement}
334
+ onOpen={() => alert('opened!')}
335
+ onClose={() => alert('closed!')}
319
336
  >
320
337
  <Button appearance="primary">show popout</Button>
321
338
  </Popout>
@@ -324,10 +341,10 @@ export const onOpenAndOnCloseCallbacks = () => (
324
341
  );
325
342
 
326
343
  onOpenAndOnCloseCallbacks.story = {
327
- name: "onOpen and onClose callbacks",
344
+ name: 'onOpen and onClose callbacks',
328
345
  };
329
346
 
330
- export const WithDynamicContent = () => {
347
+ export const WithDynamicContent = (args: TypeProps) => {
331
348
  const [loading, setLoading] = useState(true);
332
349
  const [showMoreContent, setShowMoreContent] = useState(false);
333
350
 
@@ -340,7 +357,7 @@ export const WithDynamicContent = () => {
340
357
  >
341
358
  <Box pt="90vh">
342
359
  <Popout
343
- placement={select("placement", placements)}
360
+ placement={args.placement}
344
361
  content={
345
362
  <Popout.Content>
346
363
  {loading ? (
@@ -374,23 +391,28 @@ export const WithDynamicContent = () => {
374
391
  );
375
392
  };
376
393
 
377
- export const isOpenTrue = () => {
394
+ export const isOpenTrue = (args: TypeFullyControlled) => {
378
395
  return (
379
396
  <Wrapper>
380
- <FullyControlled defaultIsOpen={true} />
397
+ <FullyControlled {...args} />
381
398
  </Wrapper>
382
399
  );
383
400
  };
401
+
402
+ isOpenTrue.args = {
403
+ isOpen: true,
404
+ };
405
+
384
406
  isOpenTrue.story = {
385
- name: "isOpen = true",
407
+ name: 'isOpen = true',
386
408
  };
387
409
 
388
- export const MemoryLeakTest = () => {
410
+ export const MemoryLeakTest = (args: TypeFullyControlled) => {
389
411
  const [shouldRender, setShouldRender] = useState(true);
390
412
 
391
413
  return (
392
414
  <Wrapper>
393
- {shouldRender && <FullyControlled />}
415
+ {shouldRender && <FullyControlled {...args} />}
394
416
  <Button
395
417
  onClick={() => {
396
418
  setShouldRender(!shouldRender);
@@ -401,15 +423,12 @@ export const MemoryLeakTest = () => {
401
423
  </Wrapper>
402
424
  );
403
425
  };
426
+
404
427
  MemoryLeakTest.story = {
405
- name: "Memory Leak Test",
428
+ name: 'Memory Leak Test',
406
429
  };
407
430
 
408
- export const FocusLockProps = ({
409
- focusLockProps = knobsObject("focusLockProps", { returnFocus: false }),
410
- }: {
411
- focusLockProps?: TypeFocusLockProps,
412
- }) => {
431
+ export const FocusLockProps = (args: TypeProps) => {
413
432
  const [isOpen, setIsOpen] = useState(false);
414
433
 
415
434
  const isOpenCallback = (isOpen, event) => {
@@ -424,7 +443,7 @@ export const FocusLockProps = ({
424
443
  isOpen={isOpen}
425
444
  setIsOpen={isOpenCallback}
426
445
  placement="auto"
427
- focusLockProps={focusLockProps}
446
+ focusLockProps={args.focusLockProps}
428
447
  >
429
448
  <input
430
449
  type="search"
@@ -436,7 +455,7 @@ export const FocusLockProps = ({
436
455
  );
437
456
  };
438
457
  FocusLockProps.story = {
439
- name: "FocusLock props",
458
+ name: 'FocusLock props',
440
459
  };
441
460
 
442
461
  export const withoutContent = () => (
@@ -448,5 +467,5 @@ export const withoutContent = () => (
448
467
  );
449
468
 
450
469
  withIcon.story = {
451
- name: "Without content",
470
+ name: 'Without content',
452
471
  };
@@ -1,27 +1,27 @@
1
1
  // @flow
2
- import React from "react";
3
- import Component from "@reach/component-component";
4
- import { render, wait, fireEvent } from "../utils/react-testing-library";
5
- import "jest-styled-components";
6
- import Popout from "./";
2
+ import React from 'react';
3
+ import Component from '@reach/component-component';
4
+ import {render, wait, fireEvent} from '../utils/react-testing-library';
5
+ import 'jest-styled-components';
6
+ import Popout from './';
7
7
 
8
- import Button from "../Button";
9
- jest.mock("../Portal", () => ({ children }) => <div>{children}</div>);
8
+ import Button from '../Button';
9
+ jest.mock('../Portal', () => ({children}) => <div>{children}</div>);
10
10
 
11
11
  if (global.document) {
12
12
  (global: any).document.createRange = () => ({
13
13
  setStart: () => {},
14
14
  setEnd: () => {},
15
15
  commonAncestorContainer: {
16
- nodeName: "BODY",
16
+ nodeName: 'BODY',
17
17
  ownerDocument: document,
18
18
  },
19
19
  });
20
20
  }
21
21
 
22
- describe("Popout", () => {
23
- xit("should render properly", async () => {
24
- const { runA11yCheck, container, getByText } = render(
22
+ describe('Popout', () => {
23
+ xit('should render properly', async () => {
24
+ const {runA11yCheck, container, getByText} = render(
25
25
  <Popout
26
26
  content={<div>popout content</div>}
27
27
  placement="top"
@@ -31,7 +31,7 @@ describe("Popout", () => {
31
31
  </Popout>
32
32
  );
33
33
 
34
- fireEvent.click(getByText("show popout"));
34
+ fireEvent.click(getByText('show popout'));
35
35
 
36
36
  await runA11yCheck();
37
37
  return wait(() => {
@@ -39,18 +39,18 @@ describe("Popout", () => {
39
39
  });
40
40
  });
41
41
 
42
- describe("controlled", () => {
43
- it("should work being fully controlled", async () => {
44
- const { queryByText, getByText } = render(
45
- <Component initialState={{ isOpen: false }}>
46
- {({ state, setState }) => (
42
+ describe('controlled', () => {
43
+ it('should work being fully controlled', async () => {
44
+ const {queryByText, getByText} = render(
45
+ <Component initialState={{isOpen: false}}>
46
+ {({state, setState}) => (
47
47
  <Popout
48
48
  isOpen={state.isOpen}
49
- setIsOpen={(isOpen) => setState({ isOpen })}
49
+ setIsOpen={(isOpen) => setState({isOpen})}
50
50
  content={<div>popout content</div>}
51
51
  >
52
52
  <Button
53
- onClick={() => setState({ isOpen: !state.isOpen })}
53
+ onClick={() => setState({isOpen: !state.isOpen})}
54
54
  appearance="primary"
55
55
  >
56
56
  show popout
@@ -60,30 +60,30 @@ describe("Popout", () => {
60
60
  </Component>
61
61
  );
62
62
 
63
- expect(queryByText("popout content")).not.toBeInTheDocument();
63
+ expect(queryByText('popout content')).not.toBeInTheDocument();
64
64
 
65
- fireEvent.click(getByText("show popout"));
65
+ fireEvent.click(getByText('show popout'));
66
66
 
67
- expect(queryByText("popout content")).toBeInTheDocument();
67
+ expect(queryByText('popout content')).toBeInTheDocument();
68
68
 
69
- fireEvent.click(getByText("show popout"));
69
+ fireEvent.click(getByText('show popout'));
70
70
 
71
71
  await wait(() => {
72
- expect(queryByText("popout content")).not.toBeInTheDocument();
72
+ expect(queryByText('popout content')).not.toBeInTheDocument();
73
73
  });
74
74
  });
75
75
 
76
- it("should close on outside click", async () => {
77
- const { baseElement, queryByText } = render(
78
- <Component initialState={{ isOpen: true }}>
79
- {({ state, setState }) => (
76
+ it('should close on outside click', async () => {
77
+ const {baseElement, queryByText} = render(
78
+ <Component initialState={{isOpen: true}}>
79
+ {({state, setState}) => (
80
80
  <Popout
81
81
  isOpen={state.isOpen}
82
- setIsOpen={(isOpen) => setState({ isOpen })}
82
+ setIsOpen={(isOpen) => setState({isOpen})}
83
83
  content={<div>popout content</div>}
84
84
  >
85
85
  <Button
86
- onClick={() => setState({ isOpen: !state.isOpen })}
86
+ onClick={() => setState({isOpen: !state.isOpen})}
87
87
  appearance="primary"
88
88
  >
89
89
  show popout
@@ -93,26 +93,26 @@ describe("Popout", () => {
93
93
  </Component>
94
94
  );
95
95
 
96
- expect(queryByText("popout content")).toBeInTheDocument();
96
+ expect(queryByText('popout content')).toBeInTheDocument();
97
97
 
98
98
  fireEvent.click(baseElement);
99
99
 
100
100
  await wait(() => {
101
- expect(queryByText("popout content")).not.toBeInTheDocument();
101
+ expect(queryByText('popout content')).not.toBeInTheDocument();
102
102
  });
103
103
  });
104
104
 
105
- it("should apply aria roles to target", async () => {
106
- const { getByText } = render(
107
- <Component initialState={{ isOpen: true }}>
108
- {({ state, setState }) => (
105
+ it('should apply aria roles to target', async () => {
106
+ const {getByText} = render(
107
+ <Component initialState={{isOpen: true}}>
108
+ {({state, setState}) => (
109
109
  <Popout
110
110
  isOpen={state.isOpen}
111
111
  setIsOpen={(isOpen) => setState(isOpen)}
112
112
  content={<div>popout content</div>}
113
113
  >
114
114
  <Button
115
- onClick={() => setState({ isOpen: !state.isOpen })}
115
+ onClick={() => setState({isOpen: !state.isOpen})}
116
116
  appearance="primary"
117
117
  >
118
118
  show popout
@@ -122,17 +122,17 @@ describe("Popout", () => {
122
122
  </Component>
123
123
  );
124
124
 
125
- const button = getByText("show popout");
125
+ const button = getByText('show popout');
126
126
 
127
- expect(button).toHaveAttribute("aria-expanded", "true");
128
- expect(button).toHaveAttribute("aria-haspopup", "true");
127
+ expect(button).toHaveAttribute('aria-expanded', 'true');
128
+ expect(button).toHaveAttribute('aria-haspopup', 'true');
129
129
 
130
130
  fireEvent.click(button);
131
131
 
132
- expect(button).toHaveAttribute("aria-expanded", "false");
132
+ expect(button).toHaveAttribute('aria-expanded', 'false');
133
133
  });
134
134
 
135
- it("should only trigger onClose/onOpen events on isShown updated", async () => {
135
+ it('should only trigger onClose/onOpen events on isShown updated', async () => {
136
136
  const initialOnOpen = jest.fn();
137
137
  const updatedOnOpen = jest.fn();
138
138
  const initialOnClose = jest.fn();
@@ -156,7 +156,7 @@ describe("Popout", () => {
156
156
  </Popout>
157
157
  );
158
158
 
159
- const { rerender } = render(PopoutComponent(state));
159
+ const {rerender} = render(PopoutComponent(state));
160
160
 
161
161
  state.isOpen = true;
162
162
  rerender(PopoutComponent(state));
@@ -1,11 +1,10 @@
1
1
  //@flow
2
- import styled, { type StyledComponent } from "styled-components";
3
- import { COMMON, LAYOUT } from "../utils/system-props";
2
+ import styled, {type StyledComponent} from 'styled-components';
3
+ import {COMMON, LAYOUT} from '../utils/system-props';
4
4
 
5
- import type { TypeTheme } from "../types/theme.flow";
5
+ import type {TypeTheme} from '../types/theme.flow';
6
6
 
7
- // eslint-disable-next-line prettier/prettier
8
- export const TargetWrapper: StyledComponent<{ ... }, TypeTheme, *> = styled.div`
7
+ export const TargetWrapper: StyledComponent<{...}, TypeTheme, *> = styled.div`
9
8
  display: inline-block;
10
9
  ${COMMON}
11
10
  ${LAYOUT}
@@ -1,7 +1,7 @@
1
1
  // @flow strict-local
2
- import * as React from "react";
3
- import { createPortal } from "react-dom";
4
- import { canUseDOM } from "../utils";
2
+ import * as React from 'react';
3
+ import {createPortal} from 'react-dom';
4
+ import {canUseDOM} from '../utils';
5
5
 
6
6
  type TypeProps = {
7
7
  as: string,
@@ -15,27 +15,27 @@ export default class Portal extends React.Component<TypeProps> {
15
15
  el: ?HTMLElement = null;
16
16
 
17
17
  static defaultProps = {
18
- as: "div",
19
- id: "",
18
+ as: 'div',
19
+ id: '',
20
20
  };
21
21
 
22
22
  constructor(props: TypeProps) {
23
23
  super(props);
24
24
 
25
25
  if (canUseDOM()) {
26
- const { as, el, id } = props;
26
+ const {as, el, id} = props;
27
27
  if (el) {
28
28
  this.el = el;
29
29
  } else {
30
30
  this.el = document.createElement(as);
31
- this.el.setAttribute("data-racine-portal", id);
31
+ this.el.setAttribute('data-racine-portal', id);
32
32
  }
33
33
  }
34
34
  }
35
35
 
36
36
  componentDidMount() {
37
37
  if (canUseDOM() && this.el) {
38
- const { container = document.body } = this.props;
38
+ const {container = document.body} = this.props;
39
39
  if (container) {
40
40
  // for flow
41
41
  container.appendChild(this.el);
@@ -45,7 +45,7 @@ export default class Portal extends React.Component<TypeProps> {
45
45
 
46
46
  componentWillUnmount() {
47
47
  if (canUseDOM() && this.el) {
48
- const { container = document.body } = this.props;
48
+ const {container = document.body} = this.props;
49
49
  if (container) {
50
50
  // for flow
51
51
  container.removeChild(this.el);