@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,134 +1,132 @@
1
1
  // @flow
2
- import React from "react";
3
- import { boolean, number, text } from "@storybook/addon-knobs";
2
+ import React from 'react';
4
3
 
5
- import Text from "./";
4
+ import Text, {type TypeProps} from './';
6
5
 
7
6
  export default {
8
- title: "Text",
7
+ title: 'Components/Text',
8
+ component: Text,
9
+ argTypes: {
10
+ fontWeight: {
11
+ options: ['normal', 'bold'],
12
+ control: {type: 'select'},
13
+ },
14
+ truncated: {
15
+ control: 'boolean',
16
+ },
17
+ },
18
+ args: {
19
+ children: 'Some default content here.',
20
+ isItalicized: false,
21
+ fontWeight: undefined,
22
+ truncated: undefined,
23
+ },
9
24
  };
10
25
 
11
- export const defaultStory = () => (
12
- <Text>{text("children", "Some default content here.")}</Text>
13
- );
26
+ export const defaultStory = (args: TypeProps) => <Text {...args} />;
14
27
 
15
28
  defaultStory.story = {
16
- name: "Default",
29
+ name: 'Default',
17
30
  };
18
31
 
19
- export const bold = () => (
20
- <Text fontWeight={text("fontWeight", "bold")}>
21
- {text("children", "Some default content here.")}
22
- </Text>
23
- );
32
+ export const headline = (args: TypeProps) => <Text.Headline {...args} />;
24
33
 
25
- bold.story = {
26
- name: "Bold",
34
+ headline.args = {
35
+ as: 'h1',
27
36
  };
28
37
 
29
- export const italicized = () => (
30
- <Text isItalicized={boolean("isItalicized", true)}>
31
- {text("children", "Some default content here.")}
32
- </Text>
33
- );
34
-
35
- italicized.story = {
36
- name: "Italicized",
38
+ headline.story = {
39
+ name: 'Headline',
37
40
  };
38
41
 
39
- export const headline = () => (
40
- <Text.Headline as={text("as", "h1")}>
41
- {text("children", "Some default content here.")}
42
- </Text.Headline>
43
- );
42
+ export const subheadline = (args: TypeProps) => <Text.SubHeadline {...args} />;
44
43
 
45
- headline.story = {
46
- name: "Headline",
44
+ subheadline.args = {
45
+ as: 'h2',
47
46
  };
48
47
 
49
- export const subheadline = () => (
50
- <Text.SubHeadline as={text("as", "h2")}>
51
- {text("children", "Some default content here.")}
52
- </Text.SubHeadline>
53
- );
54
-
55
48
  subheadline.story = {
56
- name: "Subheadline",
49
+ name: 'Subheadline',
57
50
  };
58
51
 
59
- export const smallSubheadline = () => (
60
- <Text.SmallSubHeadline as={text("as", "h3")}>
61
- {text("children", "Some default content here.")}
62
- </Text.SmallSubHeadline>
52
+ export const smallSubheadline = (args: TypeProps) => (
53
+ <Text.SmallSubHeadline {...args} />
63
54
  );
64
55
 
56
+ smallSubheadline.args = {
57
+ as: 'h3',
58
+ };
59
+
65
60
  smallSubheadline.story = {
66
- name: "Small subheadline",
61
+ name: 'Small subheadline',
67
62
  };
68
63
 
69
- export const bodyCopy = () => (
70
- <Text.BodyCopy as={text("as", "p")}>
71
- {text("children", "Some default content here.")}
72
- </Text.BodyCopy>
73
- );
64
+ export const bodyCopy = (args: TypeProps) => <Text.BodyCopy {...args} />;
65
+
66
+ bodyCopy.args = {
67
+ as: 'p',
68
+ };
74
69
 
75
70
  bodyCopy.story = {
76
- name: "Body copy",
71
+ name: 'Body copy',
77
72
  };
78
73
 
79
- export const smallBodyCopy = () => (
80
- <Text.SmallBodyCopy as={text("as", "p")}>
81
- {text("children", "Some default content here.")}
82
- </Text.SmallBodyCopy>
74
+ export const smallBodyCopy = (args: TypeProps) => (
75
+ <Text.SmallBodyCopy {...args} />
83
76
  );
84
77
 
78
+ smallBodyCopy.args = {
79
+ as: 'p',
80
+ };
81
+
85
82
  smallBodyCopy.story = {
86
- name: "Small body copy",
83
+ name: 'Small body copy',
87
84
  };
88
85
 
89
- export const customSize = () => (
90
- <Text as={text("as", "span")} fontSize={number("fontSize", 1000)}>
91
- {text("children", "")}
92
- Custom sized text!
93
- </Text>
94
- );
86
+ export const customSize = (args: TypeProps) => <Text {...args} />;
87
+
88
+ customSize.args = {
89
+ children: 'Custom sized text!',
90
+ as: 'span',
91
+ fontSize: 1000,
92
+ };
95
93
 
96
94
  customSize.story = {
97
- name: "Custom size",
95
+ name: 'Custom size',
98
96
  };
99
97
 
100
- export const noWordBreak = () => (
101
- <Text>
102
- {text("children", "")}
103
- "Wordsdonotbreak...SupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidocious
104
- </Text>
105
- );
98
+ const longText =
99
+ 'SupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidocious';
100
+
101
+ export const noWordBreak = (args: TypeProps) => <Text {...args} />;
102
+
103
+ noWordBreak.args = {
104
+ children: longText,
105
+ };
106
106
 
107
107
  noWordBreak.story = {
108
- name: "No word break",
108
+ name: 'No word break',
109
109
  };
110
110
 
111
- export const wordBreak = () => (
112
- <Text breakWord={text("overflow", "breakWord")}>
113
- "Wordsdonotbreak...SupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidociousSupercalifragilisticexpialidocious
114
- </Text>
115
- );
111
+ export const wordBreak = (args: TypeProps) => <Text {...args} />;
112
+
113
+ wordBreak.args = {
114
+ children: longText,
115
+ breakWord: 'breakWord',
116
+ };
116
117
 
117
118
  wordBreak.story = {
118
- name: "Word break",
119
- };
120
-
121
- export const truncated = () => (
122
- <Text
123
- fontSize={number("fontSize", 700)}
124
- truncated={boolean("isTruncated", true)}
125
- >
126
- Supercalifragilisticexpialidocious Supercalifragilisticexpialidocious
127
- Supercalifragilisticexpialidocious Supercalifragilisticexpialidocious
128
- Supercalifragilisticexpialidocious Supercalifragilisticexpialidocious
129
- </Text>
130
- );
119
+ name: 'Word break',
120
+ };
121
+
122
+ export const truncated = (args: TypeProps) => <Text {...args} />;
123
+
124
+ truncated.args = {
125
+ children: longText,
126
+ fontSize: 700,
127
+ truncated: true,
128
+ };
131
129
 
132
130
  truncated.story = {
133
- name: "Truncated",
131
+ name: 'Truncated',
134
132
  };
@@ -1,53 +1,49 @@
1
1
  // @flow
2
- import React from "react";
3
- import { render } from "../utils/react-testing-library";
4
- import "jest-styled-components";
5
- import Text from "./";
2
+ import React from 'react';
3
+ import {render} from '../utils/react-testing-library';
4
+ import 'jest-styled-components';
5
+ import Text from './';
6
6
 
7
- describe("Text", () => {
8
- it("does not set word break or truncated styles by default", () => {
9
- const { getByDataQaLabel } = render(<Text children="Default" />);
10
- const component = getByDataQaLabel({ text: "Default" });
11
- expect(component).not.toHaveStyleRule("word-break", "break-word");
12
- expect(component).not.toHaveStyleRule("text-overflow", "ellipsis");
7
+ describe('Text', () => {
8
+ it('does not set word break or truncated styles by default', () => {
9
+ const {getByDataQaLabel} = render(<Text children="Default" />);
10
+ const component = getByDataQaLabel({text: 'Default'});
11
+ expect(component).not.toHaveStyleRule('word-break', 'break-word');
12
+ expect(component).not.toHaveStyleRule('text-overflow', 'ellipsis');
13
13
  });
14
14
 
15
- it("sets word break styles when breakWord is true", () => {
16
- const { getByDataQaLabel } = render(
17
- <Text breakWord children="Word Break" />
18
- );
19
- const component = getByDataQaLabel({ text: "Word Break" });
20
- expect(component).toHaveStyleRule("word-break", "break-word");
15
+ it('sets word break styles when breakWord is true', () => {
16
+ const {getByDataQaLabel} = render(<Text breakWord children="Word Break" />);
17
+ const component = getByDataQaLabel({text: 'Word Break'});
18
+ expect(component).toHaveStyleRule('word-break', 'break-word');
21
19
  });
22
20
 
23
- it("sets truncated styles when truncated is true", () => {
24
- const { getByDataQaLabel } = render(
25
- <Text truncated children="Truncated" />
26
- );
27
- const component = getByDataQaLabel({ text: "Truncated" });
28
- expect(component).toHaveStyleRule("text-overflow", "ellipsis");
21
+ it('sets truncated styles when truncated is true', () => {
22
+ const {getByDataQaLabel} = render(<Text truncated children="Truncated" />);
23
+ const component = getByDataQaLabel({text: 'Truncated'});
24
+ expect(component).toHaveStyleRule('text-overflow', 'ellipsis');
29
25
  });
30
26
 
31
- it("is italic when isItalicized is true", () => {
32
- const { getByDataQaLabel } = render(
27
+ it('is italic when isItalicized is true', () => {
28
+ const {getByDataQaLabel} = render(
33
29
  <Text isItalicized children="Italicized" />
34
30
  );
35
- const component = getByDataQaLabel({ text: "Italicized" });
36
- expect(component).toHaveStyleRule("font-style", "italic");
31
+ const component = getByDataQaLabel({text: 'Italicized'});
32
+ expect(component).toHaveStyleRule('font-style', 'italic');
37
33
  });
38
34
 
39
- it("outputs the correct string/content", () => {
40
- const { getByText } = render(
35
+ it('outputs the correct string/content', () => {
36
+ const {getByText} = render(
41
37
  <Text children="Supercalifragilisticexpialidocious" />
42
38
  );
43
- expect(getByText("Supercalifragilisticexpialidocious")).toBeTruthy();
39
+ expect(getByText('Supercalifragilisticexpialidocious')).toBeTruthy();
44
40
  });
45
41
 
46
- it("displays a custom size if using fontSize", () => {
47
- const { getByText } = render(
42
+ it('displays a custom size if using fontSize', () => {
43
+ const {getByText} = render(
48
44
  <Text children="Custom sized text!" fontSize={1000} />
49
45
  );
50
- const component = getByText("Custom sized text!");
51
- expect(component).toHaveStyleRule("font-size", "76px");
46
+ const component = getByText('Custom sized text!');
47
+ expect(component).toHaveStyleRule('font-size', '76px');
52
48
  });
53
49
  });
@@ -1,15 +1,15 @@
1
1
  //@flow
2
- import styled, { css, type StyledComponent } from "styled-components";
3
- import { COMMON, LAYOUT, TYPOGRAPHY } from "../utils/system-props";
2
+ import styled, {css, type StyledComponent} from 'styled-components';
3
+ import {COMMON, LAYOUT, TYPOGRAPHY} 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
7
  const Container: StyledComponent<any, TypeTheme, *> = styled.span`
8
8
  margin: 0;
9
9
  padding-left: 0;
10
10
  padding-right: 0;
11
11
  font-family: ${(props) => props.theme.fontFamily};
12
- font-style: ${(props) => props.isItalicized && "italic"};
12
+ font-style: ${(props) => props.isItalicized && 'italic'};
13
13
 
14
14
  ${(props) =>
15
15
  props.truncated &&
@@ -1,8 +1,8 @@
1
1
  // @flow
2
- import * as React from "react";
3
- import Container, { Accessory } from "./styles";
2
+ import * as React from 'react';
3
+ import Container, {Accessory} from './styles';
4
4
 
5
- type TypeProps = {
5
+ export type TypeProps = {
6
6
  /** ID of the form element, should match the "for" value of the associated label */
7
7
  id: string,
8
8
  name: string,
@@ -40,7 +40,7 @@ type TypeProps = {
40
40
  /** Props to spread onto the underlying textarea element */
41
41
  inputProps?: any,
42
42
  /** Used to get a reference to the underlying element */
43
- innerRef?: React.Ref<"textarea">,
43
+ innerRef?: React.Ref<'textarea'>,
44
44
  onBlur?: (e: SyntheticFocusEvent<HTMLInputElement>) => void,
45
45
  onChange?: (e: SyntheticInputEvent<HTMLInputElement>) => void,
46
46
  onFocus?: (e: SyntheticFocusEvent<HTMLInputElement>) => void,
@@ -151,7 +151,7 @@ export default class Textarea extends React.Component<TypeProps> {
151
151
  onBlur={this.handleBlur}
152
152
  onFocus={this.handleFocus}
153
153
  ref={innerRef}
154
- data-qa-textarea-input={""}
154
+ data-qa-textarea-input={''}
155
155
  data-qa-input={name}
156
156
  {...inputProps}
157
157
  />
@@ -1,129 +1,90 @@
1
1
  // @flow
2
- import React from "react";
3
- import { boolean, text } from "@storybook/addon-knobs";
2
+ import React from 'react';
4
3
 
5
- import Textarea from "./";
6
- import Icon from "../Icon";
4
+ import Textarea, {type TypeProps} from './';
5
+ import Icon from '../Icon';
7
6
 
8
7
  export default {
9
- title: "Textarea",
8
+ title: 'Components/Form Elements/Textarea',
9
+ component: Textarea,
10
+ argTypes: {
11
+ isInvalid: {
12
+ control: 'boolean',
13
+ },
14
+ disabled: {
15
+ control: 'boolean',
16
+ },
17
+ readOnly: {
18
+ control: 'boolean',
19
+ },
20
+ },
21
+ args: {
22
+ id: 'textarea',
23
+ value: '',
24
+ name: 'basic-textarea',
25
+ placeholder: 'Enter your resume...',
26
+ ariaLabel: 'Descriptive label',
27
+ isInvalid: undefined,
28
+ disabled: undefined,
29
+ readOnly: undefined,
30
+ },
10
31
  };
11
32
 
12
- export const defaultStory = () => (
13
- <Textarea
14
- id="textarea"
15
- value={text("value", "")}
16
- name={text("name", "basic-textarea")}
17
- placeholder={text("placeholder", "Enter your resume...")}
18
- ariaLabel={text("ariaLabel", "Descriptive label")}
19
- />
20
- );
33
+ export const defaultStory = (args: TypeProps) => <Textarea {...args} />;
21
34
 
22
35
  defaultStory.story = {
23
- name: "Default",
36
+ name: 'Default',
24
37
  };
25
38
 
26
- export const invalid = () => (
27
- <Textarea
28
- id="textarea"
29
- isInvalid={boolean("isInvalid", true)}
30
- value={text("value", "")}
31
- name={text("name", "basic-textarea")}
32
- placeholder={text("placeholder", "Enter your resume...")}
33
- ariaLabel={text("ariaLabel", "Descriptive label")}
34
- />
35
- );
39
+ export const readOnly = (args: TypeProps) => <Textarea {...args} />;
36
40
 
37
- invalid.story = {
38
- name: "Invalid",
41
+ readOnly.args = {
42
+ value: 'This is a read only textarea',
43
+ readOnly: true,
39
44
  };
40
45
 
41
- export const disabled = () => (
42
- <Textarea
43
- id="textarea"
44
- disabled={boolean("disabled", true)}
45
- value={text("value", "")}
46
- name={text("name", "basic-textarea")}
47
- placeholder={text("placeholder", "Enter your resume...")}
48
- ariaLabel={text("ariaLabel", "Descriptive label")}
49
- />
50
- );
51
-
52
- disabled.story = {
53
- name: "Disabled",
54
- };
55
-
56
- export const readOnly = () => (
57
- <Textarea
58
- id="textarea"
59
- readOnly={boolean("readOnly", true)}
60
- value={text("value", "")}
61
- name={text("name", "basic-textarea")}
62
- placeholder={text("placeholder", "Enter your resume...")}
63
- ariaLabel={text("ariaLabel", "Descriptive label")}
64
- />
65
- );
66
-
67
46
  readOnly.story = {
68
- name: "Read Only",
47
+ name: 'Read Only',
69
48
  };
70
49
 
71
- export const leftIcon = () => (
72
- <Textarea
73
- id="textarea"
74
- value={text("value", "")}
75
- name={text("name", "basic-textarea")}
76
- placeholder={text("placeholder", "Enter your resume...")}
77
- ariaLabel={text("ariaLabel", "Descriptive label")}
78
- elemBefore={<Icon name="search" />}
79
- />
50
+ export const leftIcon = (args: TypeProps) => (
51
+ <Textarea elemBefore={<Icon name="search" />} {...args} />
80
52
  );
81
53
 
82
54
  leftIcon.story = {
83
- name: "Left icon",
55
+ name: 'Left icon',
84
56
  };
85
57
 
86
- export const rightIcon = () => (
87
- <Textarea
88
- id="textarea"
89
- value={text("value", "")}
90
- name={text("name", "basic-textarea")}
91
- placeholder={text("placeholder", "Enter your resume...")}
92
- ariaLabel={text("ariaLabel", "Descriptive label")}
93
- elemAfter={<Icon name="search" />}
94
- />
58
+ export const rightIcon = (args: TypeProps) => (
59
+ <Textarea elemAfter={<Icon name="search" />} {...args} />
95
60
  );
96
61
 
97
62
  rightIcon.story = {
98
- name: "Right icon",
63
+ name: 'Right icon',
99
64
  };
100
65
 
101
- export const autofocus = () => (
102
- <Textarea
103
- id="textarea"
104
- autoFocus
105
- value={text("value", "")}
106
- name={text("name", "basic-textarea")}
107
- placeholder={text("placeholder", "Enter your resume...")}
108
- ariaLabel={text("ariaLabel", "Descriptive label")}
109
- />
110
- );
66
+ export const autofocus = (args: TypeProps) => <Textarea autoFocus {...args} />;
111
67
 
112
68
  autofocus.story = {
113
- name: "Autofocus",
69
+ name: 'Autofocus',
114
70
  };
115
71
 
116
- export const maxLength = () => (
72
+ export const maxLength = (args: TypeProps) => (
117
73
  <Textarea
118
- id="textarea"
119
- autoFocus
120
- name={text("name", "basic-textarea")}
121
- placeholder={text("placeholder", "Max Length is 10")}
122
- maxLength={10}
123
- ariaLabel={text("ariaLabel", "Descriptive label")}
74
+ // we have to omit value here for uncontrolled to demo without state
75
+ id={args.id}
76
+ name={args.name}
77
+ placeholder={args.placeholder}
78
+ maxLength={args.maxLength}
79
+ ariaLabel={args.ariaLabel}
124
80
  />
125
81
  );
126
82
 
83
+ maxLength.args = {
84
+ placeholder: 'Max length is 10 characters',
85
+ maxLength: 10,
86
+ };
87
+
127
88
  maxLength.story = {
128
- name: "Max Length",
89
+ name: 'Max Length',
129
90
  };
@@ -1,18 +1,18 @@
1
1
  // @flow
2
- import React from "react";
3
- import "jest-styled-components";
4
- import { render, fireEvent } from "../utils/react-testing-library";
5
- import Textarea from "./";
6
- import Text from "../Text";
2
+ import React from 'react';
3
+ import 'jest-styled-components';
4
+ import {render, fireEvent} from '../utils/react-testing-library';
5
+ import Textarea from './';
6
+ import Text from '../Text';
7
7
 
8
- describe("Textarea", () => {
9
- it("should render statuses properly", () => {
10
- const { getByDataQaLabel } = render(<Textarea id="text" name="text" />);
11
- expect(getByDataQaLabel({ textarea: "text" })).toBeTruthy();
8
+ describe('Textarea', () => {
9
+ it('should render statuses properly', () => {
10
+ const {getByDataQaLabel} = render(<Textarea id="text" name="text" />);
11
+ expect(getByDataQaLabel({textarea: 'text'})).toBeTruthy();
12
12
  });
13
13
 
14
- it("should render before and after element", () => {
15
- const { getByText } = render(
14
+ it('should render before and after element', () => {
15
+ const {getByText} = render(
16
16
  <Textarea
17
17
  elemAfter={<Text>After</Text>}
18
18
  elemBefore={<Text>Before</Text>}
@@ -20,14 +20,14 @@ describe("Textarea", () => {
20
20
  name="text"
21
21
  />
22
22
  );
23
- expect(getByText("Before")).toBeTruthy();
24
- expect(getByText("After")).toBeTruthy();
23
+ expect(getByText('Before')).toBeTruthy();
24
+ expect(getByText('After')).toBeTruthy();
25
25
  });
26
26
 
27
- it("should notify on changes", () => {
27
+ it('should notify on changes', () => {
28
28
  const mockOnChange = jest.fn();
29
29
  const mockEventHandler = jest.fn();
30
- const { getByDataQaLabel } = render(
30
+ const {getByDataQaLabel} = render(
31
31
  <Textarea
32
32
  id="name"
33
33
  name="name"
@@ -39,14 +39,14 @@ describe("Textarea", () => {
39
39
  value="User"
40
40
  />
41
41
  );
42
- const textarea = getByDataQaLabel({ input: "name" });
42
+ const textarea = getByDataQaLabel({input: 'name'});
43
43
  expect(textarea).toBeTruthy();
44
- fireEvent.change(textarea, { target: { value: "updated" } });
44
+ fireEvent.change(textarea, {target: {value: 'updated'}});
45
45
  expect(mockOnChange).toHaveBeenCalled();
46
46
 
47
47
  // Ensure that the event handlers aren't getting attached to the root level
48
48
  // element (only the actual textarea itself)
49
- const textareaContainer = getByDataQaLabel({ textarea: "name" });
49
+ const textareaContainer = getByDataQaLabel({textarea: 'name'});
50
50
  expect(textareaContainer).toBeTruthy();
51
51
  fireEvent.change(textareaContainer);
52
52
  expect(mockOnChange.mock.calls.length).toEqual(1);
@@ -57,28 +57,28 @@ describe("Textarea", () => {
57
57
  expect(mockEventHandler.mock.calls.length).toEqual(0);
58
58
  });
59
59
 
60
- describe("readOnly prop", () => {
61
- it.each([true, "foobar", 1])(
62
- "should correctly add the readonly prop for truthy values: %p",
60
+ describe('readOnly prop', () => {
61
+ it.each([true, 'foobar', 1])(
62
+ 'should correctly add the readonly prop for truthy values: %p',
63
63
  (truthyValue) => {
64
- const { getByDataQaLabel } = render(
64
+ const {getByDataQaLabel} = render(
65
65
  <Textarea id="name" name="name" readOnly={truthyValue} />
66
66
  );
67
- expect(getByDataQaLabel({ input: "name" })).toHaveAttribute(
68
- "readonly",
69
- ""
67
+ expect(getByDataQaLabel({input: 'name'})).toHaveAttribute(
68
+ 'readonly',
69
+ ''
70
70
  );
71
71
  }
72
72
  );
73
73
 
74
- it.each([false, null, undefined, 0, ""])(
75
- "should correctly leave off readonly prop for falsey values: %p",
74
+ it.each([false, null, undefined, 0, ''])(
75
+ 'should correctly leave off readonly prop for falsey values: %p',
76
76
  (truthyValue) => {
77
- const { getByDataQaLabel } = render(
77
+ const {getByDataQaLabel} = render(
78
78
  <Textarea id="name" name="name" readOnly={truthyValue} />
79
79
  );
80
- expect(getByDataQaLabel({ input: "name" })).not.toHaveAttribute(
81
- "readonly"
80
+ expect(getByDataQaLabel({input: 'name'})).not.toHaveAttribute(
81
+ 'readonly'
82
82
  );
83
83
  }
84
84
  );