reshaped 3.3.10 → 3.3.12

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 (284) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.js +10 -10
  4. package/dist/cjs/themes/_generator/utilities/generateColors.d.ts +1 -1
  5. package/dist/cjs/themes/_generator/utilities/generateColors.js +3 -2
  6. package/dist/cjs/themes/_generator/utilities/tests/color.test.js +32 -31
  7. package/dist/cjs/themes/slate/theme.css +1 -1
  8. package/dist/components/Accordion/tests/Accordion.stories.d.ts +30 -8
  9. package/dist/components/Accordion/tests/Accordion.stories.js +172 -119
  10. package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +12 -3
  11. package/dist/components/ActionBar/tests/ActionBar.stories.js +51 -36
  12. package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +15 -0
  13. package/dist/components/ActionBar/tests/ActionBar.test.stories.js +26 -0
  14. package/dist/components/Actionable/Actionable.js +1 -1
  15. package/dist/components/Actionable/Actionable.types.d.ts +3 -3
  16. package/dist/components/Actionable/tests/Actionable.stories.d.ts +19 -5
  17. package/dist/components/Actionable/tests/Actionable.stories.js +88 -63
  18. package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +32 -0
  19. package/dist/components/Actionable/tests/Actionable.test.stories.js +130 -0
  20. package/dist/components/Alert/Alert.js +1 -1
  21. package/dist/components/Alert/tests/Alert.stories.d.ts +12 -3
  22. package/dist/components/Alert/tests/Alert.stories.js +51 -86
  23. package/dist/components/Alert/tests/Alert.test.stories.d.ts +15 -0
  24. package/dist/components/Alert/tests/Alert.test.stories.js +26 -0
  25. package/dist/components/Autocomplete/Autocomplete.js +9 -2
  26. package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +6 -2
  27. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +94 -111
  28. package/dist/components/Autocomplete/tests/Autocomplete.test.stories.d.ts +23 -0
  29. package/dist/components/Autocomplete/tests/Autocomplete.test.stories.js +86 -0
  30. package/dist/components/Avatar/Avatar.js +1 -1
  31. package/dist/components/Avatar/tests/Avatar.stories.d.ts +14 -4
  32. package/dist/components/Avatar/tests/Avatar.stories.js +94 -80
  33. package/dist/components/Avatar/tests/Avatar.test.stories.d.ts +17 -0
  34. package/dist/components/Avatar/tests/Avatar.test.stories.js +39 -0
  35. package/dist/components/Badge/tests/Badge.stories.d.ts +33 -8
  36. package/dist/components/Badge/tests/Badge.stories.js +238 -212
  37. package/dist/components/Badge/tests/Badge.test.stories.d.ts +20 -0
  38. package/dist/components/Badge/tests/Badge.test.stories.js +44 -0
  39. package/dist/components/Breadcrumbs/Breadcrumbs.js +2 -2
  40. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +1 -0
  41. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +24 -5
  42. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +114 -95
  43. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +23 -0
  44. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +76 -0
  45. package/dist/components/Button/Button.js +5 -2
  46. package/dist/components/Button/Button.module.css +1 -1
  47. package/dist/components/Button/Button.types.d.ts +1 -0
  48. package/dist/components/Button/tests/Button.stories.d.ts +2 -2
  49. package/dist/components/Button/tests/Button.stories.js +77 -74
  50. package/dist/components/Button/tests/Button.test.stories.d.ts +27 -0
  51. package/dist/components/Button/tests/Button.test.stories.js +112 -0
  52. package/dist/components/Calendar/tests/Calendar.test.stories.d.ts +26 -0
  53. package/dist/components/Calendar/tests/Calendar.test.stories.js +161 -0
  54. package/dist/components/Card/Card.d.ts +3 -3
  55. package/dist/components/Card/Card.types.d.ts +1 -1
  56. package/dist/components/Card/tests/Card.stories.d.ts +3 -4
  57. package/dist/components/Card/tests/Card.stories.js +0 -11
  58. package/dist/components/Card/tests/Card.test.stories.d.ts +35 -0
  59. package/dist/components/Card/tests/Card.test.stories.js +54 -0
  60. package/dist/components/Carousel/Carousel.types.d.ts +1 -1
  61. package/dist/components/Carousel/CarouselControl.js +1 -1
  62. package/dist/components/Carousel/tests/Carousel.stories.d.ts +3 -0
  63. package/dist/components/Carousel/tests/Carousel.stories.js +5 -1
  64. package/dist/components/Carousel/tests/Carousel.test.stories.d.ts +17 -0
  65. package/dist/components/Carousel/tests/Carousel.test.stories.js +52 -0
  66. package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +25 -0
  67. package/dist/components/Checkbox/tests/Checkbox.test.stories.js +104 -0
  68. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +22 -0
  69. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +78 -0
  70. package/dist/components/Container/Container.module.css +1 -1
  71. package/dist/components/Container/tests/Container.stories.d.ts +12 -3
  72. package/dist/components/Container/tests/Container.stories.js +50 -31
  73. package/dist/components/Container/tests/Container.test.stories.d.ts +15 -0
  74. package/dist/components/Container/tests/Container.test.stories.js +26 -0
  75. package/dist/components/ContextMenu/ContextMenu.js +13 -9
  76. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +2 -3
  77. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +26 -0
  78. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +53 -0
  79. package/dist/components/Dismissible/Dismissible.js +1 -1
  80. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +10 -3
  81. package/dist/components/Dismissible/tests/Dismissible.stories.js +51 -34
  82. package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +19 -0
  83. package/dist/components/Dismissible/tests/Dismissible.test.stories.js +42 -0
  84. package/dist/components/Divider/tests/Divider.test.stories.d.ts +18 -0
  85. package/dist/components/Divider/tests/Divider.test.stories.js +47 -0
  86. package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
  87. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +37 -0
  88. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +117 -0
  89. package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +22 -0
  90. package/dist/components/FileUpload/tests/FileUpload.test.stories.js +52 -0
  91. package/dist/components/FormControl/FormControl.context.d.ts +12 -0
  92. package/dist/components/FormControl/FormControlCaption.js +1 -1
  93. package/dist/components/FormControl/FormControlLabel.js +1 -1
  94. package/dist/components/FormControl/tests/FormControl.stories.d.ts +11 -5
  95. package/dist/components/FormControl/tests/FormControl.stories.js +78 -73
  96. package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +20 -0
  97. package/dist/components/FormControl/tests/FormControl.test.stories.js +49 -0
  98. package/dist/components/Grid/Grid.d.ts +2 -2
  99. package/dist/components/Grid/Grid.types.d.ts +3 -2
  100. package/dist/components/Grid/tests/Grid.stories.d.ts +22 -7
  101. package/dist/components/Grid/tests/Grid.stories.js +164 -149
  102. package/dist/components/Grid/tests/Grid.test.stories.d.ts +19 -0
  103. package/dist/components/Grid/tests/Grid.test.stories.js +42 -0
  104. package/dist/components/Hidden/Hidden.types.d.ts +1 -1
  105. package/dist/components/Hidden/tests/Hidden.stories.d.ts +4 -1
  106. package/dist/components/Hidden/tests/Hidden.stories.js +28 -25
  107. package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +15 -0
  108. package/dist/components/Hidden/tests/Hidden.test.stories.js +20 -0
  109. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +4 -1
  110. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +8 -5
  111. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +15 -0
  112. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +20 -0
  113. package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +15 -0
  114. package/dist/components/Hotkey/tests/Hotkey.test.stories.js +26 -0
  115. package/dist/components/Icon/tests/Icon.stories.d.ts +12 -3
  116. package/dist/components/Icon/tests/Icon.stories.js +69 -60
  117. package/dist/components/Icon/tests/Icon.test.stories.d.ts +16 -0
  118. package/dist/components/Icon/tests/Icon.test.stories.js +35 -0
  119. package/dist/components/Image/tests/Image.stories.d.ts +24 -5
  120. package/dist/components/Image/tests/Image.stories.js +95 -75
  121. package/dist/components/Image/tests/Image.test.stories.d.ts +25 -0
  122. package/dist/components/Image/tests/Image.test.stories.js +80 -0
  123. package/dist/components/Link/tests/Link.test.stories.d.ts +29 -0
  124. package/dist/components/Link/tests/Link.test.stories.js +87 -0
  125. package/dist/components/Loader/Loader.js +1 -1
  126. package/dist/components/Loader/Loader.types.d.ts +1 -0
  127. package/dist/components/Loader/tests/Loader.stories.js +8 -8
  128. package/dist/components/Loader/tests/Loader.test.stories.d.ts +16 -0
  129. package/dist/components/Loader/tests/Loader.test.stories.js +32 -0
  130. package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +26 -0
  131. package/dist/components/MenuItem/tests/MenuItem.test.stories.js +100 -0
  132. package/dist/components/Modal/Modal.types.d.ts +1 -1
  133. package/dist/components/Modal/tests/Modal.test.stories.d.ts +32 -0
  134. package/dist/components/Modal/tests/Modal.test.stories.js +149 -0
  135. package/dist/components/Overlay/Overlay.types.d.ts +1 -1
  136. package/dist/components/Overlay/tests/Overlay.stories.d.ts +4 -2
  137. package/dist/components/Overlay/tests/Overlay.stories.js +53 -53
  138. package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +28 -0
  139. package/dist/components/Overlay/tests/Overlay.test.stories.js +146 -0
  140. package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +23 -0
  141. package/dist/components/Pagination/tests/Pagination.test.stories.js +86 -0
  142. package/dist/components/PinField/tests/PinField.stories.d.ts +0 -1
  143. package/dist/components/PinField/tests/PinField.stories.js +10 -19
  144. package/dist/components/PinField/tests/PinField.test.stories.d.ts +29 -0
  145. package/dist/components/PinField/tests/PinField.test.stories.js +177 -0
  146. package/dist/components/Popover/tests/Popover.test.stories.d.ts +40 -0
  147. package/dist/components/Popover/tests/Popover.test.stories.js +167 -0
  148. package/dist/components/Progress/Progress.js +2 -2
  149. package/dist/components/Progress/Progress.types.d.ts +1 -0
  150. package/dist/components/Progress/tests/Progress.stories.js +10 -10
  151. package/dist/components/Progress/tests/Progress.test.stories.d.ts +16 -0
  152. package/dist/components/Progress/tests/Progress.test.stories.js +35 -0
  153. package/dist/components/Radio/tests/Radio.test.stories.d.ts +30 -0
  154. package/dist/components/Radio/tests/Radio.test.stories.js +118 -0
  155. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +22 -0
  156. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +78 -0
  157. package/dist/components/Reshaped/tests/Reshaped.stories.d.ts +33 -0
  158. package/dist/components/Reshaped/tests/Reshaped.stories.js +88 -0
  159. package/dist/components/Resizable/Resizable.js +4 -1
  160. package/dist/components/Resizable/Resizable.types.d.ts +2 -2
  161. package/dist/components/Resizable/tests/Resizable.stories.d.ts +3 -0
  162. package/dist/components/Resizable/tests/Resizable.stories.js +4 -0
  163. package/dist/components/Resizable/tests/Resizable.test.stories.d.ts +19 -0
  164. package/dist/components/Resizable/tests/Resizable.test.stories.js +25 -0
  165. package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +15 -0
  166. package/dist/components/Scrim/tests/Scrim.test.stories.js +25 -0
  167. package/dist/components/ScrollArea/ScrollArea.js +1 -1
  168. package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
  169. package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +17 -4
  170. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +114 -139
  171. package/dist/components/ScrollArea/tests/ScrollArea.test.stories.d.ts +23 -0
  172. package/dist/components/ScrollArea/tests/ScrollArea.test.stories.js +66 -0
  173. package/dist/components/Select/tests/Select.stories.d.ts +1 -1
  174. package/dist/components/Select/tests/Select.stories.js +5 -12
  175. package/dist/components/Select/tests/Select.test.stories.d.ts +27 -0
  176. package/dist/components/Select/tests/Select.test.stories.js +132 -0
  177. package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +15 -0
  178. package/dist/components/Skeleton/tests/Skeleton.test.stories.js +23 -0
  179. package/dist/components/Slider/Slider.types.d.ts +1 -1
  180. package/dist/components/Slider/tests/Slider.stories.d.ts +0 -1
  181. package/dist/components/Slider/tests/Slider.stories.js +8 -9
  182. package/dist/components/Slider/tests/Slider.test.stories.d.ts +38 -0
  183. package/dist/components/Slider/tests/Slider.test.stories.js +150 -0
  184. package/dist/components/Stepper/Stepper.js +1 -1
  185. package/dist/components/Stepper/tests/Stepper.stories.js +0 -3
  186. package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +18 -0
  187. package/dist/components/Stepper/tests/Stepper.test.stories.js +28 -0
  188. package/dist/components/Switch/tests/Switch.test.stories.d.ts +23 -0
  189. package/dist/components/Switch/tests/Switch.test.stories.js +79 -0
  190. package/dist/components/Table/tests/Table.test.stories.d.ts +25 -0
  191. package/dist/components/Table/tests/Table.test.stories.js +93 -0
  192. package/dist/components/Tabs/Tabs.types.d.ts +3 -3
  193. package/dist/components/Tabs/TabsContext.d.ts +3 -3
  194. package/dist/components/Tabs/TabsItem.js +1 -1
  195. package/dist/components/Tabs/tests/Tabs.stories.js +4 -4
  196. package/dist/components/Tabs/tests/Tabs.test.stories.d.ts +28 -0
  197. package/dist/components/Tabs/tests/Tabs.test.stories.js +128 -0
  198. package/dist/components/Text/Text.d.ts +1 -1
  199. package/dist/components/Text/Text.types.d.ts +1 -1
  200. package/dist/components/Text/tests/Text.stories.d.ts +29 -8
  201. package/dist/components/Text/tests/Text.stories.js +148 -125
  202. package/dist/components/Text/tests/Text.test.stories.d.ts +18 -0
  203. package/dist/components/Text/tests/Text.test.stories.js +49 -0
  204. package/dist/components/TextArea/TextArea.module.css +1 -1
  205. package/dist/components/TextArea/tests/TextArea.stories.js +1 -1
  206. package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +29 -0
  207. package/dist/components/TextArea/tests/TextArea.test.stories.js +99 -0
  208. package/dist/components/TextField/TextField.js +3 -1
  209. package/dist/components/TextField/tests/TextField.stories.js +1 -1
  210. package/dist/components/TextField/tests/TextField.test.stories.d.ts +29 -0
  211. package/dist/components/TextField/tests/TextField.test.stories.js +99 -0
  212. package/dist/components/Theme/Theme.types.d.ts +2 -2
  213. package/dist/components/Theme/tests/Theme.test.stories.d.ts +24 -0
  214. package/dist/components/Theme/tests/Theme.test.stories.js +133 -0
  215. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +18 -0
  216. package/dist/components/Timeline/tests/Timeline.test.stories.js +32 -0
  217. package/dist/components/Toast/ToastContainer.js +1 -1
  218. package/dist/components/Toast/tests/Toast.test.stories.d.ts +16 -0
  219. package/dist/components/Toast/tests/Toast.test.stories.js +101 -0
  220. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  221. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +1 -1
  222. package/dist/components/Tooltip/tests/Tooltip.stories.js +0 -14
  223. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +19 -0
  224. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +40 -0
  225. package/dist/components/View/View.d.ts +2 -2
  226. package/dist/components/View/View.js +4 -4
  227. package/dist/components/View/View.types.d.ts +2 -2
  228. package/dist/components/View/tests/View.stories.d.ts +114 -30
  229. package/dist/components/View/tests/View.stories.js +1092 -1012
  230. package/dist/components/View/tests/View.test.stories.d.ts +20 -0
  231. package/dist/components/View/tests/View.test.stories.js +50 -0
  232. package/dist/components/_private/Flyout/Flyout.types.d.ts +6 -6
  233. package/dist/components/_private/Flyout/FlyoutContent.js +1 -1
  234. package/dist/components/_private/Flyout/FlyoutControlled.js +5 -3
  235. package/dist/components/_private/Flyout/tests/Flyout.stories.js +5 -5
  236. package/dist/components/_private/Flyout/tests/Flyout.test.stories.d.ts +28 -0
  237. package/dist/components/_private/Flyout/tests/Flyout.test.stories.js +205 -0
  238. package/dist/components/_private/Flyout/useFlyout.d.ts +3 -3
  239. package/dist/components/_private/Portal/Portal.types.d.ts +3 -3
  240. package/dist/components/_private/Portal/tests/Portal.stories.js +1 -1
  241. package/dist/hooks/_private/useIsDismissible.d.ts +1 -1
  242. package/dist/hooks/_private/useOnClickOutside.d.ts +1 -1
  243. package/dist/hooks/_private/useSingletonHotkeys.d.ts +3 -3
  244. package/dist/hooks/_private/useSingletonHotkeys.js +1 -1
  245. package/dist/hooks/tests/useDrag.stories.js +1 -0
  246. package/dist/hooks/tests/useDrag.test.stories.d.ts +26 -0
  247. package/dist/hooks/tests/useDrag.test.stories.js +120 -0
  248. package/dist/hooks/tests/useElementId.stories.d.ts +6 -0
  249. package/dist/hooks/tests/useElementId.stories.js +19 -0
  250. package/dist/hooks/tests/useHotkeys.test.stories.d.ts +39 -0
  251. package/dist/hooks/tests/useHotkeys.test.stories.js +119 -0
  252. package/dist/hooks/tests/useRTL.stories.d.ts +6 -0
  253. package/dist/hooks/tests/useRTL.stories.js +25 -0
  254. package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +9 -1
  255. package/dist/hooks/tests/useResponsiveClientValue.stories.js +22 -9
  256. package/dist/hooks/tests/useScrollLock.stories.d.ts +6 -0
  257. package/dist/hooks/tests/useScrollLock.stories.js +22 -0
  258. package/dist/hooks/tests/useToggle.stories.d.ts +8 -0
  259. package/dist/hooks/tests/useToggle.stories.js +54 -0
  260. package/dist/hooks/useDrag.d.ts +3 -3
  261. package/dist/hooks/useHotkeys.d.ts +2 -2
  262. package/dist/hooks/useHotkeys.js +3 -1
  263. package/dist/hooks/useScrollLock.d.ts +2 -1
  264. package/dist/hooks/useScrollLock.js +7 -3
  265. package/dist/tests/ShadowDOM.stories.js +1 -1
  266. package/dist/themes/_generator/tests/themes.stories.d.ts +3 -0
  267. package/dist/themes/_generator/tests/themes.stories.js +7 -11
  268. package/dist/themes/_generator/utilities/generateColors.d.ts +1 -1
  269. package/dist/themes/_generator/utilities/generateColors.js +3 -2
  270. package/dist/themes/slate/theme.css +1 -1
  271. package/dist/types/global.d.ts +1 -1
  272. package/dist/utilities/helpers.d.ts +1 -0
  273. package/dist/utilities/helpers.js +3 -0
  274. package/dist/utilities/scroll/lock.d.ts +1 -0
  275. package/dist/utilities/scroll/lock.js +3 -3
  276. package/dist/utilities/scroll/lockSafari.d.ts +1 -1
  277. package/dist/utilities/scroll/lockSafari.js +4 -5
  278. package/dist/utilities/scroll/lockStandard.d.ts +4 -1
  279. package/dist/utilities/scroll/lockStandard.js +7 -2
  280. package/dist/utilities/storybook/Example.js +1 -2
  281. package/package.json +22 -21
  282. package/dist/components/Theme/tests/Theme.stories.d.ts +0 -13
  283. package/dist/components/Theme/tests/Theme.stories.js +0 -80
  284. package/dist/utilities/storybook/Example.module.css +0 -1
@@ -9,129 +9,152 @@ export default {
9
9
  },
10
10
  },
11
11
  };
12
- export const variant = () => (<Example>
13
- <Example.Item title="variant: title-1">
14
- <Text variant="title-1">Title 1</Text>
15
- </Example.Item>
16
- <Example.Item title="variant: title-2">
17
- <Text variant="title-2">Title 2</Text>
18
- </Example.Item>
19
- <Example.Item title="variant: title-3">
20
- <Text variant="title-3">Title 3</Text>
21
- </Example.Item>
22
- <Example.Item title="variant: title-4">
23
- <Text variant="title-4">Title 4</Text>
24
- </Example.Item>
25
- <Example.Item title="variant: title-5">
26
- <Text variant="title-5">Title 5</Text>
27
- </Example.Item>
28
- <Example.Item title="variant: title-6">
29
- <Text variant="title-6">Title 6</Text>
30
- </Example.Item>
31
- <Example.Item title="variant: featured-1">
32
- <Text variant="featured-1">Featured 1</Text>
33
- </Example.Item>
34
- <Example.Item title="variant: featured-2">
35
- <Text variant="featured-2">Featured 2</Text>
36
- </Example.Item>
37
- <Example.Item title="variant: featured-3">
38
- <Text variant="featured-3">Featured 3</Text>
39
- </Example.Item>
40
- <Example.Item title="variant: body-1">
41
- <Text variant="body-1">Body 1</Text>
42
- </Example.Item>
43
- <Example.Item title="variant: body-2">
44
- <Text variant="body-2">Body 2</Text>
45
- </Example.Item>
46
- <Example.Item title="variant: body-3">
47
- <Text variant="body-3">Body 3</Text>
48
- </Example.Item>
49
- <Example.Item title="variant: caption-1">
50
- <Text variant="caption-1">Caption 1</Text>
51
- </Example.Item>
52
- <Example.Item title="variant: caption-2">
53
- <Text variant="caption-2">Caption 2</Text>
54
- </Example.Item>
55
- <Example.Item title={["responsive variant", "[s] body-3", "[m+] title-4"]}>
56
- <Text variant={{ s: "body-3", m: "title-4" }}>Responsive</Text>
57
- </Example.Item>
58
- </Example>);
59
- export const weight = () => (<Example>
60
- <Example.Item title="weight: regular">
61
- <Text weight="regular">Regular</Text>
62
- </Example.Item>
63
- <Example.Item title="weight: medium">
64
- <Text weight="medium">Medium</Text>
65
- </Example.Item>
66
- <Example.Item title="weight: bold">
67
- <Text weight="bold">Bold</Text>
68
- </Example.Item>
69
- <Example.Item title={["responsive", "[s] weight: regular", "[m+] bold"]}>
70
- <Text weight={{ s: "regular", m: "bold" }}>Responsive</Text>
71
- </Example.Item>
72
- </Example>);
73
- export const color = () => (<Example>
74
- <Example.Item title="color: inherit">
75
- <Text>Neutral</Text>
76
- </Example.Item>
77
- <Example.Item title="color: neutral-faded">
78
- <Text color="neutral-faded">Faded</Text>
79
- </Example.Item>
80
- <Example.Item title="color: positive">
81
- <Text color="positive">Positive</Text>
82
- </Example.Item>
83
- <Example.Item title="color: warning">
84
- <Text color="warning">Warning</Text>
85
- </Example.Item>
86
- <Example.Item title="color: critical">
87
- <Text color="critical">Critical</Text>
88
- </Example.Item>
89
- <Example.Item title="color: primary">
90
- <Text color="primary">Primary</Text>
91
- </Example.Item>
92
- <Example.Item title="color: disabled">
93
- <Text color="disabled">Disabled</Text>
94
- </Example.Item>
95
- </Example>);
96
- export const decoration = () => (<Example>
97
- <Example.Item title="decoration: line-through">
98
- <Text decoration="line-through">Line through</Text>
99
- </Example.Item>
100
- </Example>);
101
- export const wrap = () => (<Example>
102
- <Example.Item title="wrap: balance">
103
- <Text wrap="balance" variant="title-3">
104
- The design system you want to build
105
- </Text>
106
- </Example.Item>
107
- </Example>);
108
- export const maxLines = () => (<Example>
109
- <Example.Item title="maxLines: 2">
110
- <Text maxLines={2}>
111
- There are many variations of passages of Lorem Ipsum available, but the majority have
112
- suffered alteration in some form, by injected humour, or randomised words which don't look
113
- even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be
114
- sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum
115
- generators on the Internet tend to repeat predefined chunks as necessary, making this the
116
- first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined
117
- with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable.
118
- The generated Lorem Ipsum is therefore always free from repetition, injected humour, or
119
- non-characteristic words etc.
120
- </Text>
121
- </Example.Item>
122
- </Example>);
123
- export const align = () => (<Example>
124
- <Example.Item title="align: start">
125
- <Text align="start">Text content</Text>
126
- </Example.Item>
127
- <Example.Item title="align: center">
128
- <Text align="center">Text content</Text>
129
- </Example.Item>
130
- <Example.Item title="align: end">
131
- <Text align="end">Text content</Text>
132
- </Example.Item>
12
+ export const variant = {
13
+ name: "variant",
14
+ render: () => (<Example>
15
+ <Example.Item title="variant: title-1">
16
+ <Text variant="title-1">Title 1</Text>
17
+ </Example.Item>
18
+ <Example.Item title="variant: title-2">
19
+ <Text variant="title-2">Title 2</Text>
20
+ </Example.Item>
21
+ <Example.Item title="variant: title-3">
22
+ <Text variant="title-3">Title 3</Text>
23
+ </Example.Item>
24
+ <Example.Item title="variant: title-4">
25
+ <Text variant="title-4">Title 4</Text>
26
+ </Example.Item>
27
+ <Example.Item title="variant: title-5">
28
+ <Text variant="title-5">Title 5</Text>
29
+ </Example.Item>
30
+ <Example.Item title="variant: title-6">
31
+ <Text variant="title-6">Title 6</Text>
32
+ </Example.Item>
33
+ <Example.Item title="variant: featured-1">
34
+ <Text variant="featured-1">Featured 1</Text>
35
+ </Example.Item>
36
+ <Example.Item title="variant: featured-2">
37
+ <Text variant="featured-2">Featured 2</Text>
38
+ </Example.Item>
39
+ <Example.Item title="variant: featured-3">
40
+ <Text variant="featured-3">Featured 3</Text>
41
+ </Example.Item>
42
+ <Example.Item title="variant: body-1">
43
+ <Text variant="body-1">Body 1</Text>
44
+ </Example.Item>
45
+ <Example.Item title="variant: body-2">
46
+ <Text variant="body-2">Body 2</Text>
47
+ </Example.Item>
48
+ <Example.Item title="variant: body-3">
49
+ <Text variant="body-3">Body 3</Text>
50
+ </Example.Item>
51
+ <Example.Item title="variant: caption-1">
52
+ <Text variant="caption-1">Caption 1</Text>
53
+ </Example.Item>
54
+ <Example.Item title="variant: caption-2">
55
+ <Text variant="caption-2">Caption 2</Text>
56
+ </Example.Item>
57
+ <Example.Item title={["responsive variant", "[s] body-3", "[m+] title-4"]}>
58
+ <Text variant={{ s: "body-3", m: "title-4" }}>Responsive</Text>
59
+ </Example.Item>
60
+ </Example>),
61
+ };
62
+ export const weight = {
63
+ name: "weight",
64
+ render: () => (<Example>
65
+ <Example.Item title="weight: regular">
66
+ <Text weight="regular">Regular</Text>
67
+ </Example.Item>
68
+ <Example.Item title="weight: medium">
69
+ <Text weight="medium">Medium</Text>
70
+ </Example.Item>
71
+ <Example.Item title="weight: bold">
72
+ <Text weight="bold">Bold</Text>
73
+ </Example.Item>
74
+ <Example.Item title={["responsive", "[s] weight: regular", "[m+] bold"]}>
75
+ <Text weight={{ s: "regular", m: "bold" }}>Responsive</Text>
76
+ </Example.Item>
77
+ </Example>),
78
+ };
79
+ export const color = {
80
+ name: "color",
81
+ render: () => (<Example>
82
+ <Example.Item title="color: inherit">
83
+ <Text>Neutral</Text>
84
+ </Example.Item>
85
+ <Example.Item title="color: neutral-faded">
86
+ <Text color="neutral-faded">Faded</Text>
87
+ </Example.Item>
88
+ <Example.Item title="color: positive">
89
+ <Text color="positive">Positive</Text>
90
+ </Example.Item>
91
+ <Example.Item title="color: warning">
92
+ <Text color="warning">Warning</Text>
93
+ </Example.Item>
94
+ <Example.Item title="color: critical">
95
+ <Text color="critical">Critical</Text>
96
+ </Example.Item>
97
+ <Example.Item title="color: primary">
98
+ <Text color="primary">Primary</Text>
99
+ </Example.Item>
100
+ <Example.Item title="color: disabled">
101
+ <Text color="disabled" attributes={{ "aria-disabled": true }}>
102
+ Disabled
103
+ </Text>
104
+ </Example.Item>
105
+ </Example>),
106
+ };
107
+ export const decoration = {
108
+ name: "decoration",
109
+ render: () => (<Example>
110
+ <Example.Item title="decoration: line-through">
111
+ <Text decoration="line-through">Line through</Text>
112
+ </Example.Item>
113
+ </Example>),
114
+ };
115
+ export const wrap = {
116
+ name: "wrap",
117
+ render: () => (<Example>
118
+ <Example.Item title="wrap: balance">
119
+ <Text wrap="balance" variant="title-3">
120
+ The design system you want to build
121
+ </Text>
122
+ </Example.Item>
123
+ </Example>),
124
+ };
125
+ export const maxLines = {
126
+ name: "maxLines",
127
+ render: () => (<Example>
128
+ <Example.Item title="maxLines: 2">
129
+ <Text maxLines={2}>
130
+ There are many variations of passages of Lorem Ipsum available, but the majority have
131
+ suffered alteration in some form, by injected humour, or randomised words which don't look
132
+ even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be
133
+ sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum
134
+ generators on the Internet tend to repeat predefined chunks as necessary, making this the
135
+ first true generator on the Internet. It uses a dictionary of over 200 Latin words,
136
+ combined with a handful of model sentence structures, to generate Lorem Ipsum which looks
137
+ reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected
138
+ humour, or non-characteristic words etc.
139
+ </Text>
140
+ </Example.Item>
141
+ </Example>),
142
+ };
143
+ export const align = {
144
+ name: "align",
145
+ render: () => (<Example>
146
+ <Example.Item title="align: start">
147
+ <Text align="start">Text content</Text>
148
+ </Example.Item>
149
+ <Example.Item title="align: center">
150
+ <Text align="center">Text content</Text>
151
+ </Example.Item>
152
+ <Example.Item title="align: end">
153
+ <Text align="end">Text content</Text>
154
+ </Example.Item>
133
155
 
134
- <Example.Item title={["responsive alignment", "[s]: center", "[m+] start"]}>
135
- <Text align={{ s: "center", m: "start" }}>Text content</Text>
136
- </Example.Item>
137
- </Example>);
156
+ <Example.Item title={["responsive alignment", "[s]: center", "[m+] start"]}>
157
+ <Text align={{ s: "center", m: "start" }}>Text content</Text>
158
+ </Example.Item>
159
+ </Example>),
160
+ };
@@ -0,0 +1,18 @@
1
+ import { StoryObj } from "@storybook/react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: <As extends keyof React.JSX.IntrinsicElements>(props: import("./..").TextProps<As>) => import("react").JSX.Element;
5
+ parameters: {
6
+ iframe: {
7
+ url: string;
8
+ };
9
+ chromatic: {
10
+ disableSnapshot: boolean;
11
+ };
12
+ };
13
+ };
14
+ export default _default;
15
+ export declare const asProp: StoryObj;
16
+ export declare const headingAs: StoryObj;
17
+ export declare const headingAsResponsive: StoryObj;
18
+ export declare const className: StoryObj;
@@ -0,0 +1,49 @@
1
+ import { expect } from "@storybook/test";
2
+ import Text from "../index.js";
3
+ export default {
4
+ title: "Utilities/Text/tests",
5
+ component: Text,
6
+ parameters: {
7
+ iframe: {
8
+ url: "https://reshaped.so/docs/utilities/text",
9
+ },
10
+ chromatic: { disableSnapshot: true },
11
+ },
12
+ };
13
+ export const asProp = {
14
+ name: "as",
15
+ render: () => <Text as="h1">Content</Text>,
16
+ play: async ({ canvas }) => {
17
+ const el = canvas.getByRole("heading");
18
+ expect(el).toBeInTheDocument();
19
+ },
20
+ };
21
+ export const headingAs = {
22
+ name: "heading tag resolving",
23
+ render: () => <Text variant="title-3">Content</Text>,
24
+ play: async ({ canvas }) => {
25
+ const el = canvas.getByRole("heading");
26
+ expect(el.tagName).toBe("H3");
27
+ },
28
+ };
29
+ export const headingAsResponsive = {
30
+ name: "heading tag resolving, responsive",
31
+ render: () => <Text variant={{ s: "title-3", m: "title-4" }}>Content</Text>,
32
+ play: async ({ canvas }) => {
33
+ const el = canvas.getByRole("heading");
34
+ expect(el.tagName).toBe("H4");
35
+ },
36
+ };
37
+ export const className = {
38
+ name: "className, attributes",
39
+ render: () => (<div data-testid="root">
40
+ <Text className="test-classname" attributes={{ id: "test-id" }}>
41
+ Content
42
+ </Text>
43
+ </div>),
44
+ play: async ({ canvas }) => {
45
+ const root = canvas.getByTestId("root").firstChild;
46
+ expect(root).toHaveClass("test-classname");
47
+ expect(root).toHaveAttribute("id", "test-id");
48
+ },
49
+ };
@@ -1 +1 @@
1
- .root{display:grid;position:relative}.root:after{content:attr(data-rs-textarea-value) " ";visibility:hidden;white-space:pre-wrap}.input,.root:after{border:1px solid var(--rs-color-border-neutral);box-sizing:border-box;flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);grid-area:1/1/2/2;padding:calc(var(--rs-p) - 1px);width:100%;word-break:break-word}.input{background:var(--rs-color-background-elevation-base);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);outline:none;position:relative;z-index:1}.input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.input[disabled]{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled);color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded .input{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded .input:focus{border-color:var(--rs-color-border-primary)}.root.--variant-headless .input{background:transparent;border-color:transparent}.root.--variant-headless .input:focus,.root.--variant-headless.--status-error .input,.root.--variant-headless.--status-error .input:focus{border-color:transparent;box-shadow:none}.root.--status-error .input{border-color:var(--rs-color-border-critical)}.root.--status-error .input:active,.root.--status-error .input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root.--resize-auto .input,.root.--resize-none .input{resize:none}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}
1
+ .root{display:grid;position:relative}.root:after{content:attr(data-rs-textarea-value) " ";visibility:hidden;white-space:pre-wrap}.input,.root:after{border:1px solid var(--rs-color-border-neutral);box-sizing:border-box;flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);grid-area:1/1/2/2;padding:calc(var(--rs-p) - 1px);width:100%;word-break:break-all}.input{background:var(--rs-color-background-elevation-base);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);outline:none;position:relative;z-index:1}.input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.input[disabled]{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled);color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded .input{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded .input:focus{border-color:var(--rs-color-border-primary)}.root.--variant-headless .input{background:transparent;border-color:transparent}.root.--variant-headless .input:focus,.root.--variant-headless.--status-error .input,.root.--variant-headless.--status-error .input:focus{border-color:transparent;box-shadow:none}.root.--status-error .input{border-color:var(--rs-color-border-critical)}.root.--status-error .input:active,.root.--status-error .input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root.--resize-auto .input,.root.--resize-none .input{resize:none}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}
@@ -109,6 +109,6 @@ export const edgeCases = () => (<Example>
109
109
  <Example.Item title="long value without breaks">
110
110
  <TextArea name="hey" defaultValue={`<div style="position:relative;width:100%;padding-top:calc(150% + 72px)">
111
111
  <iframe src="nskjdfdsdkjfsjkdfhbsjlhdfbsjlhfbs;jhbsdljfhsbljhfsbljhfbsjlfdhbsljhfbsdljhfbsljhfbslufbhsdlfds" />
112
- </div>`} resize="auto"/>
112
+ </div>`} resize="auto" placeholder="Placeholder"/>
113
113
  </Example.Item>
114
114
  </Example>);
@@ -0,0 +1,29 @@
1
+ import { StoryObj } from "@storybook/react";
2
+ import { fn } from "@storybook/test";
3
+ declare const _default: {
4
+ title: string;
5
+ component: {
6
+ (props: import("./..").TextAreaProps): import("react").JSX.Element;
7
+ Aligner: (props: import("../../_private/Aligner").AlignerProps) => import("react").JSX.Element;
8
+ };
9
+ parameters: {
10
+ iframe: {
11
+ url: string;
12
+ };
13
+ chromatic: {
14
+ disableSnapshot: boolean;
15
+ };
16
+ };
17
+ };
18
+ export default _default;
19
+ export declare const render: StoryObj;
20
+ export declare const placeholder: StoryObj;
21
+ export declare const id: StoryObj;
22
+ export declare const disabled: StoryObj;
23
+ export declare const defaultValue: StoryObj<{
24
+ handleChange: ReturnType<typeof fn>;
25
+ }>;
26
+ export declare const value: StoryObj<{
27
+ handleChange: ReturnType<typeof fn>;
28
+ }>;
29
+ export declare const className: StoryObj;
@@ -0,0 +1,99 @@
1
+ import { expect, fn, userEvent } from "@storybook/test";
2
+ import TextArea from "../index.js";
3
+ export default {
4
+ title: "Components/TextArea/tests",
5
+ component: TextArea,
6
+ parameters: {
7
+ iframe: {
8
+ url: "https://reshaped.so/docs/components/text-area",
9
+ },
10
+ chromatic: { disableSnapshot: true },
11
+ },
12
+ };
13
+ export const render = {
14
+ name: "base",
15
+ render: () => <TextArea name="test-name" inputAttributes={{ "aria-label": "Label" }}/>,
16
+ play: async ({ canvas }) => {
17
+ const input = canvas.getByRole("textbox");
18
+ expect(input).toHaveAttribute("name", "test-name");
19
+ expect(input).toHaveAccessibleName("Label");
20
+ },
21
+ };
22
+ export const placeholder = {
23
+ name: "placeholder",
24
+ render: () => (<TextArea name="test-name" placeholder="Placeholder" inputAttributes={{ "aria-label": "Label" }}/>),
25
+ play: async ({ canvas }) => {
26
+ const input = canvas.getByRole("textbox");
27
+ expect(input).toHaveValue("");
28
+ expect(input).toHaveAttribute("placeholder", "Placeholder");
29
+ },
30
+ };
31
+ export const id = {
32
+ name: "id",
33
+ render: () => (<TextArea name="test-name" id="test-id" inputAttributes={{ "aria-label": "Label" }}/>),
34
+ play: async ({ canvas }) => {
35
+ const input = canvas.getByRole("textbox");
36
+ expect(input).toHaveAttribute("id", "test-id");
37
+ },
38
+ };
39
+ export const disabled = {
40
+ name: "disabled",
41
+ render: () => <TextArea name="test-name" disabled inputAttributes={{ "aria-label": "Label" }}/>,
42
+ play: async ({ canvas }) => {
43
+ const input = canvas.getByRole("textbox");
44
+ expect(input).toBeDisabled();
45
+ },
46
+ };
47
+ export const defaultValue = {
48
+ name: "defaultValue, uncontrolled",
49
+ args: {
50
+ handleChange: fn(),
51
+ },
52
+ render: (args) => (<TextArea name="test-name" defaultValue="value" onChange={args.handleChange} inputAttributes={{ "aria-label": "Label" }}/>),
53
+ play: async ({ canvas, args }) => {
54
+ const input = canvas.getByRole("textbox");
55
+ expect(input).toHaveValue("value");
56
+ input.focus();
57
+ await userEvent.keyboard("2");
58
+ expect(args.handleChange).toBeCalledTimes(1);
59
+ expect(args.handleChange).toHaveBeenCalledWith({
60
+ name: "test-name",
61
+ value: "2value",
62
+ event: expect.objectContaining({ target: input }),
63
+ });
64
+ expect(input).toHaveValue("2value");
65
+ },
66
+ };
67
+ export const value = {
68
+ name: "value, controlled",
69
+ args: {
70
+ handleChange: fn(),
71
+ },
72
+ render: (args) => (<TextArea name="test-name" value="value" onChange={args.handleChange} inputAttributes={{ "aria-label": "Label" }}/>),
73
+ play: async ({ canvas, args }) => {
74
+ const input = canvas.getByRole("textbox");
75
+ expect(input).toHaveValue("value");
76
+ input.focus();
77
+ await userEvent.keyboard("2");
78
+ expect(args.handleChange).toBeCalledTimes(1);
79
+ expect(args.handleChange).toHaveBeenCalledWith({
80
+ name: "test-name",
81
+ value: "2value",
82
+ event: expect.objectContaining({ target: input }),
83
+ });
84
+ expect(input).toHaveValue("value");
85
+ },
86
+ };
87
+ export const className = {
88
+ name: "className, attributes",
89
+ render: () => (<div data-testid="root">
90
+ <TextArea className="test-classname" attributes={{ id: "test-id" }} name="name" inputAttributes={{ id: "test-input-id", "aria-label": "Label" }}/>
91
+ </div>),
92
+ play: async ({ canvas }) => {
93
+ const root = canvas.getByTestId("root").firstChild;
94
+ const input = canvas.getByRole("textbox");
95
+ expect(root).toHaveClass("test-classname");
96
+ expect(root).toHaveAttribute("id", "test-id");
97
+ expect(input).toHaveAttribute("id", "test-input-id");
98
+ },
99
+ };
@@ -12,7 +12,9 @@ const TextFieldSlot = (props) => {
12
12
  if (!icon && !slot && !affix)
13
13
  return null;
14
14
  // In case fragment is used, map over its children instead
15
- const renderedSlot = React.isValidElement(slot) && slot.type === React.Fragment ? slot.props.children : slot;
15
+ const renderedSlot = React.isValidElement(slot) && slot.type === React.Fragment
16
+ ? slot.props.children
17
+ : slot;
16
18
  const slotNode = slot &&
17
19
  React.Children.map(renderedSlot, (child) => (_jsx("div", { className: classNames(s.slot, s[`slot--position-${position}`]), children: child }, "slot")));
18
20
  const iconNode = icon && (_jsx("label", { className: s.icon, htmlFor: id, children: _jsx(Icon, { size: responsivePropDependency(size, (size) => {
@@ -113,7 +113,7 @@ export const slots = () => (<Example>
113
113
  <TextField name="Name" placeholder="Enter your name" value="Reshaped" startSlot={<Placeholder h={20}/>}/>
114
114
  </Example.Item>
115
115
  <Example.Item title={["endSlot", "vertical and horizontal padding aligned"]}>
116
- <TextField name="Name" placeholder="Enter your name" value="Reshaped" endSlot={<Button icon={IconZap} size="small" onClick={() => { }}/>}/>
116
+ <TextField name="Name" placeholder="Enter your name" value="Reshaped" endSlot={<Button icon={IconZap} size="small" onClick={() => { }} attributes={{ "aria-label": "Action" }}/>}/>
117
117
  </Example.Item>
118
118
  <Example.Item title="multiline wrap">
119
119
  <TextField name="Name" placeholder="Enter your name" value="Reshaped" startSlot={[...Array(10).keys()].map((i) => (<Badge key={i}>Item {i + 1}</Badge>))} multiline/>
@@ -0,0 +1,29 @@
1
+ import { StoryObj } from "@storybook/react";
2
+ import { fn } from "@storybook/test";
3
+ declare const _default: {
4
+ title: string;
5
+ component: {
6
+ (props: import("./..").TextFieldProps): import("react").JSX.Element;
7
+ Aligner: (props: import("../../_private/Aligner").AlignerProps) => import("react").JSX.Element;
8
+ };
9
+ parameters: {
10
+ iframe: {
11
+ url: string;
12
+ };
13
+ chromatic: {
14
+ disableSnapshot: boolean;
15
+ };
16
+ };
17
+ };
18
+ export default _default;
19
+ export declare const render: StoryObj;
20
+ export declare const placeholder: StoryObj;
21
+ export declare const id: StoryObj;
22
+ export declare const disabled: StoryObj;
23
+ export declare const defaultValue: StoryObj<{
24
+ handleChange: ReturnType<typeof fn>;
25
+ }>;
26
+ export declare const value: StoryObj<{
27
+ handleChange: ReturnType<typeof fn>;
28
+ }>;
29
+ export declare const className: StoryObj;