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
@@ -12,30 +12,30 @@ export default {
12
12
  export const size = () => {
13
13
  return (<Example>
14
14
  <Example.Item title="size: medium">
15
- <Loader size="medium"/>
15
+ <Loader size="medium" ariaLabel="Loading"/>
16
16
  </Example.Item>
17
17
  <Example.Item title="size: small">
18
- <Loader size="small"/>
18
+ <Loader size="small" ariaLabel="Loading"/>
19
19
  </Example.Item>
20
20
  <Example.Item title="size: large">
21
- <Loader size="large"/>
21
+ <Loader size="large" ariaLabel="Loading"/>
22
22
  </Example.Item>
23
23
  <Example.Item title={["responsive size", "[s] small", "[m+] medium"]}>
24
- <Loader size={{ s: "small", m: "medium" }}/>
24
+ <Loader size={{ s: "small", m: "medium" }} ariaLabel="Loading"/>
25
25
  </Example.Item>
26
26
  </Example>);
27
27
  };
28
28
  export const color = () => (<Example>
29
29
  <Example.Item title="color: primary">
30
- <Loader />
30
+ <Loader ariaLabel="Loading"/>
31
31
  </Example.Item>
32
32
  <Example.Item title="color: critical">
33
- <Loader color="critical"/>
33
+ <Loader color="critical" ariaLabel="Loading"/>
34
34
  </Example.Item>
35
35
  <Example.Item title="color: positive">
36
- <Loader color="positive"/>
36
+ <Loader color="positive" ariaLabel="Loading"/>
37
37
  </Example.Item>
38
38
  <Example.Item title="color: inherit">
39
- <Loader color="inherit"/>
39
+ <Loader color="inherit" ariaLabel="Loading"/>
40
40
  </Example.Item>
41
41
  </Example>);
@@ -0,0 +1,16 @@
1
+ import { StoryObj } from "@storybook/react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: (props: import("./..").LoaderProps) => 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 ariaLabel: StoryObj;
16
+ export declare const className: StoryObj;
@@ -0,0 +1,32 @@
1
+ import { expect } from "@storybook/test";
2
+ import Loader from "../index.js";
3
+ export default {
4
+ title: "Components/Loader/tests",
5
+ component: Loader,
6
+ parameters: {
7
+ iframe: {
8
+ url: "https://reshaped.so/docs/components/loader",
9
+ },
10
+ chromatic: { disableSnapshot: true },
11
+ },
12
+ };
13
+ export const ariaLabel = {
14
+ name: "ariaLabel",
15
+ render: () => <Loader ariaLabel="Loading" attributes={{ "data-testid": "root" }}/>,
16
+ play: async ({ canvas }) => {
17
+ const root = canvas.getByTestId("root");
18
+ expect(root).toHaveAttribute("aria-live", "assertive");
19
+ expect(root).toHaveAttribute("aria-label", "Loading");
20
+ },
21
+ };
22
+ export const className = {
23
+ name: "className, attributes",
24
+ render: () => (<div data-testid="root">
25
+ <Loader className="test-classname" attributes={{ id: "test-id" }} ariaLabel="Loading"/>
26
+ </div>),
27
+ play: async ({ canvas }) => {
28
+ const root = canvas.getByTestId("root").firstChild;
29
+ expect(root).toHaveClass("test-classname");
30
+ expect(root).toHaveAttribute("id", "test-id");
31
+ },
32
+ };
@@ -0,0 +1,26 @@
1
+ import { StoryObj } from "@storybook/react";
2
+ import { fn } from "@storybook/test";
3
+ declare const _default: {
4
+ title: string;
5
+ component: import("../MenuItem.types").Export;
6
+ parameters: {
7
+ iframe: {
8
+ url: string;
9
+ };
10
+ chromatic: {
11
+ disableSnapshot: boolean;
12
+ };
13
+ };
14
+ };
15
+ export default _default;
16
+ export declare const children: StoryObj;
17
+ export declare const href: StoryObj;
18
+ export declare const onClick: StoryObj<{
19
+ handleClick: ReturnType<typeof fn>;
20
+ }>;
21
+ export declare const hrefOnClick: StoryObj<{
22
+ handleClick: ReturnType<typeof fn>;
23
+ }>;
24
+ export declare const disabled: StoryObj;
25
+ export declare const className: StoryObj;
26
+ export declare const alignerClassName: StoryObj;
@@ -0,0 +1,100 @@
1
+ import { userEvent, expect, fn } from "@storybook/test";
2
+ import MenuItem from "../index.js";
3
+ export default {
4
+ title: "Components/MenuItem/tests",
5
+ component: MenuItem,
6
+ parameters: {
7
+ iframe: {
8
+ url: "https://reshaped.so/docs/components/menu-item",
9
+ },
10
+ chromatic: { disableSnapshot: true },
11
+ },
12
+ };
13
+ export const children = {
14
+ name: "children",
15
+ render: () => <MenuItem>Trigger</MenuItem>,
16
+ play: async ({ canvas }) => {
17
+ const el = canvas.getByText("Trigger");
18
+ expect(el).toBeInTheDocument();
19
+ expect(el.tagName).toBe("DIV");
20
+ },
21
+ };
22
+ export const href = {
23
+ name: "href",
24
+ render: () => <MenuItem href="https://reshaped.so">Trigger</MenuItem>,
25
+ play: async ({ canvas }) => {
26
+ const el = canvas.getByRole("link");
27
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
28
+ },
29
+ };
30
+ export const onClick = {
31
+ name: "onClick",
32
+ args: {
33
+ handleClick: fn(),
34
+ },
35
+ render: (args) => <MenuItem onClick={args.handleClick}>Trigger</MenuItem>,
36
+ play: async ({ canvas, args }) => {
37
+ const { handleClick } = args;
38
+ const el = canvas.getAllByRole("button")[0];
39
+ await userEvent.click(el);
40
+ expect(el).toHaveAttribute("type", "button");
41
+ expect(handleClick).toHaveBeenCalledTimes(1);
42
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
43
+ },
44
+ };
45
+ export const hrefOnClick = {
46
+ name: "href + onClick",
47
+ args: {
48
+ handleClick: fn(),
49
+ },
50
+ render: (args) => (<MenuItem onClick={(e) => {
51
+ e.preventDefault();
52
+ args.handleClick(e);
53
+ }} href="https://reshaped.so">
54
+ Trigger
55
+ </MenuItem>),
56
+ play: async ({ canvas, args }) => {
57
+ const { handleClick } = args;
58
+ const el = canvas.getByRole("link");
59
+ await userEvent.click(el);
60
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
61
+ expect(handleClick).toHaveBeenCalledTimes(1);
62
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
63
+ },
64
+ };
65
+ export const disabled = {
66
+ name: "disabled",
67
+ render: () => (<MenuItem disabled onClick={() => { }}>
68
+ Trigger
69
+ </MenuItem>),
70
+ play: async ({ canvas }) => {
71
+ const el = canvas.getAllByRole("button")[0];
72
+ expect(el).toBeDisabled();
73
+ },
74
+ };
75
+ export const className = {
76
+ name: "className, attributes",
77
+ render: () => (<div data-testid="root">
78
+ <MenuItem className="test-classname" attributes={{ id: "test-id" }}>
79
+ Trigger
80
+ </MenuItem>
81
+ </div>),
82
+ play: async ({ canvas }) => {
83
+ const root = canvas.getByTestId("root").firstChild;
84
+ expect(root).toHaveClass("test-classname");
85
+ expect(root).toHaveAttribute("id", "test-id");
86
+ },
87
+ };
88
+ export const alignerClassName = {
89
+ name: "aligner, className, attributes",
90
+ render: () => (<div data-testid="root">
91
+ <MenuItem.Aligner className="test-classname" attributes={{ id: "test-id" }}>
92
+ <MenuItem>Trigger</MenuItem>
93
+ </MenuItem.Aligner>
94
+ </div>),
95
+ play: async ({ canvas }) => {
96
+ const root = canvas.getByTestId("root").firstChild;
97
+ expect(root).toHaveClass("test-classname");
98
+ expect(root).toHaveAttribute("id", "test-id");
99
+ },
100
+ };
@@ -32,6 +32,6 @@ export type Props = {
32
32
  className?: G.ClassName;
33
33
  overlayClassName?: G.ClassName;
34
34
  attributes?: G.Attributes<"div"> & {
35
- ref?: React.RefObject<HTMLDivElement>;
35
+ ref?: React.RefObject<HTMLDivElement | null>;
36
36
  };
37
37
  } & Pick<OverlayProps, "onOpen" | "onAfterOpen" | "onAfterClose" | "active" | "containerRef">;
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ import { StoryObj } from "@storybook/react";
3
+ import { fn } from "@storybook/test";
4
+ declare const _default: {
5
+ title: string;
6
+ component: {
7
+ (props: import("./..").ModalProps): React.JSX.Element;
8
+ Title: (props: import("../Modal.types").TitleProps) => React.JSX.Element;
9
+ Subtitle: (props: import("../Modal.types").SubtitleProps) => React.JSX.Element;
10
+ };
11
+ parameters: {
12
+ iframe: {
13
+ url: string;
14
+ };
15
+ chromatic: {
16
+ disableSnapshot: boolean;
17
+ };
18
+ };
19
+ };
20
+ export default _default;
21
+ export declare const renderProps: StoryObj;
22
+ export declare const handlers: StoryObj<{
23
+ handleOpen: ReturnType<typeof fn>;
24
+ handleAfterOpen: ReturnType<typeof fn>;
25
+ handleClose: ReturnType<typeof fn>;
26
+ handleAfterClose: ReturnType<typeof fn>;
27
+ }>;
28
+ export declare const disableCloseOnClick: StoryObj<{
29
+ handleClose: ReturnType<typeof fn>;
30
+ }>;
31
+ export declare const containerRef: StoryObj;
32
+ export declare const className: StoryObj;
@@ -0,0 +1,149 @@
1
+ import React from "react";
2
+ import { within, expect, fn, userEvent, waitFor } from "@storybook/test";
3
+ import Button from "../../Button/index.js";
4
+ import Modal from "../index.js";
5
+ import useToggle from "../../../hooks/useToggle.js";
6
+ import { sleep } from "../../../utilities/helpers.js";
7
+ export default {
8
+ title: "Components/Modal/tests",
9
+ component: Modal,
10
+ parameters: {
11
+ iframe: {
12
+ url: "https://reshaped.so/docs/components/modal",
13
+ },
14
+ chromatic: { disableSnapshot: true },
15
+ },
16
+ };
17
+ export const renderProps = {
18
+ name: "children, render props",
19
+ render: () => (<Modal active className="test-classname" attributes={{ "data-testid": "test-id" }}>
20
+ <Modal.Title>Title</Modal.Title>
21
+ Content
22
+ </Modal>),
23
+ play: async ({ canvasElement }) => {
24
+ const canvas = within(canvasElement.ownerDocument.body);
25
+ const root = canvas.getByText("Content");
26
+ expect(root).toBeInTheDocument();
27
+ },
28
+ };
29
+ export const handlers = {
30
+ name: "onOpen, onClose, onAfterOpen, onAfterClose",
31
+ args: {
32
+ handleOpen: fn(),
33
+ handleClose: fn(),
34
+ handleAfterClose: fn(),
35
+ handleAfterOpen: fn(),
36
+ },
37
+ render: (args) => {
38
+ const overlayToggle = useToggle();
39
+ return (<>
40
+ <Button onClick={overlayToggle.toggle}>Open overlay</Button>
41
+ <Modal active={overlayToggle.active} onClose={(closeArgs) => {
42
+ overlayToggle.deactivate();
43
+ args.handleClose(closeArgs);
44
+ }} onOpen={args.handleOpen} onAfterOpen={args.handleAfterOpen} onAfterClose={args.handleAfterClose}>
45
+ <Modal.Title>Title</Modal.Title>
46
+ Content
47
+ </Modal>
48
+ </>);
49
+ },
50
+ play: async ({ canvasElement, args }) => {
51
+ const canvas = within(canvasElement.ownerDocument.body);
52
+ const trigger = canvas.getAllByRole("button")[0];
53
+ let overlay;
54
+ await userEvent.click(trigger);
55
+ overlay = canvas.getByText("Content");
56
+ await waitFor(() => {
57
+ expect(args.handleOpen).toHaveBeenCalledTimes(1);
58
+ expect(args.handleOpen).toHaveBeenCalledWith();
59
+ });
60
+ // Wait for transition
61
+ await waitFor(() => {
62
+ expect(args.handleAfterOpen).toHaveBeenCalledTimes(1);
63
+ expect(args.handleAfterOpen).toHaveBeenCalledWith();
64
+ });
65
+ // Close by changing the state after the trigger click
66
+ await userEvent.click(trigger);
67
+ // Wait for transition
68
+ await waitFor(() => {
69
+ // Changing state doesn't trigger onClose
70
+ expect(args.handleClose).toHaveBeenCalledTimes(0);
71
+ expect(args.handleAfterClose).toHaveBeenCalledTimes(1);
72
+ expect(args.handleAfterClose).toHaveBeenCalledWith();
73
+ });
74
+ // Open
75
+ await userEvent.click(trigger);
76
+ await sleep(100);
77
+ overlay = canvas.getAllByRole("button", { hidden: true }).at(-1);
78
+ // Close by clicking on the overlay
79
+ await userEvent.click(overlay);
80
+ await waitFor(() => {
81
+ expect(args.handleClose).toHaveBeenCalledTimes(1);
82
+ expect(args.handleClose).toHaveBeenCalledWith({ reason: "overlay-click" });
83
+ expect(args.handleAfterClose).toHaveBeenCalledTimes(2);
84
+ expect(args.handleAfterClose).toHaveBeenCalledWith();
85
+ });
86
+ // Open
87
+ await userEvent.click(trigger);
88
+ await sleep(100);
89
+ // Close by pressing Escape
90
+ await userEvent.keyboard("{Escape/}");
91
+ await waitFor(() => {
92
+ expect(args.handleClose).toHaveBeenCalledTimes(2);
93
+ expect(args.handleClose).toHaveBeenCalledWith({ reason: "escape-key" });
94
+ expect(args.handleAfterClose).toHaveBeenCalledTimes(3);
95
+ expect(args.handleAfterClose).toHaveBeenCalledWith();
96
+ });
97
+ },
98
+ };
99
+ export const disableCloseOnClick = {
100
+ name: "disableCloseOnOutsideClick",
101
+ args: {
102
+ handleClose: fn(),
103
+ },
104
+ render: (args) => (<Modal active disableCloseOnOutsideClick onClose={(closeArgs) => {
105
+ args.handleClose(closeArgs);
106
+ }}>
107
+ <Modal.Title>Title</Modal.Title>
108
+ Content
109
+ </Modal>),
110
+ play: async ({ canvasElement, args }) => {
111
+ const canvas = within(canvasElement.ownerDocument.body);
112
+ const overlay = canvas.getByText("Content");
113
+ await userEvent.click(overlay);
114
+ expect(args.handleClose).toHaveBeenCalledTimes(0);
115
+ await userEvent.keyboard("{Escape/}");
116
+ expect(args.handleClose).toHaveBeenCalledTimes(1);
117
+ },
118
+ };
119
+ export const containerRef = {
120
+ name: "containerRef",
121
+ render: () => {
122
+ const containerRef = React.useRef(null);
123
+ return (<>
124
+ <div ref={containerRef} data-testid="test-id" style={{ height: 200 }}/>
125
+ <Modal active containerRef={containerRef}>
126
+ <Modal.Title>Title</Modal.Title>
127
+ Content
128
+ </Modal>
129
+ </>);
130
+ },
131
+ play: ({ canvasElement }) => {
132
+ const canvas = within(canvasElement.ownerDocument.body);
133
+ const container = canvas.getByTestId("test-id");
134
+ const overlay = canvas.getByText("Content");
135
+ expect(container).toContainElement(overlay);
136
+ },
137
+ };
138
+ export const className = {
139
+ name: "className, attributes",
140
+ render: () => (<Modal active className="test-classname" attributes={{ "data-testid": "test-id" }}>
141
+ <Modal.Title>Title</Modal.Title>
142
+ Content
143
+ </Modal>),
144
+ play: async ({ canvasElement }) => {
145
+ const canvas = within(canvasElement.ownerDocument.body);
146
+ const root = canvas.getByTestId("test-id");
147
+ expect(root).toHaveClass("test-classname");
148
+ },
149
+ };
@@ -15,7 +15,7 @@ export type Props = {
15
15
  onOpen?: () => void;
16
16
  onAfterOpen?: () => void;
17
17
  disableCloseOnClick?: boolean;
18
- containerRef?: React.RefObject<HTMLElement>;
18
+ containerRef?: React.RefObject<HTMLElement | null>;
19
19
  className?: G.ClassName;
20
20
  attributes?: G.Attributes<"div">;
21
21
  };
@@ -1,3 +1,4 @@
1
+ import { StoryObj } from "@storybook/react";
1
2
  declare const _default: {
2
3
  title: string;
3
4
  component: (props: import("./..").OverlayProps) => import("react").JSX.Element | null;
@@ -8,5 +9,6 @@ declare const _default: {
8
9
  };
9
10
  };
10
11
  export default _default;
11
- export declare const base: () => import("react").JSX.Element;
12
- export declare const shadowDom: () => import("react").JSX.Element;
12
+ export declare const base: StoryObj;
13
+ export declare const transparent: StoryObj;
14
+ export declare const blurred: StoryObj;
@@ -1,8 +1,7 @@
1
- import { createRoot } from "react-dom/client";
1
+ import { userEvent } from "@storybook/test";
2
2
  import { Example } from "../../../utilities/storybook/index.js";
3
3
  import Overlay from "../index.js";
4
4
  import Button from "../../Button/index.js";
5
- import Reshaped from "../../Reshaped/index.js";
6
5
  import useToggle from "../../../hooks/useToggle.js";
7
6
  export default {
8
7
  title: "Utilities/Overlay",
@@ -13,56 +12,57 @@ export default {
13
12
  },
14
13
  },
15
14
  };
16
- export const base = () => {
17
- const baseToggle = useToggle(false);
18
- const transparentToggle = useToggle(false);
19
- const blurredToggle = useToggle(false);
20
- return (<Example>
21
- <Example.Item title="locks scroll">
22
- <Button onClick={() => baseToggle.activate()}>Open overlay</Button>
23
- <Overlay active={baseToggle.active} onClose={() => baseToggle.deactivate()}>
24
- Overlay content
25
- </Overlay>
26
- </Example.Item>
27
-
28
- <Example.Item title="transparent, doesn't lock scroll">
29
- <Button onClick={() => transparentToggle.activate()}>Open overlay</Button>
30
- <Overlay active={transparentToggle.active} onClose={() => transparentToggle.deactivate()} transparent>
31
- Overlay content
32
- </Overlay>
33
- </Example.Item>
34
-
35
- <Example.Item title="blurred">
36
- <Button onClick={() => blurredToggle.activate()}>Open overlay</Button>
37
- <Overlay active={blurredToggle.active} onClose={() => blurredToggle.deactivate()} blurred>
38
- Overlay content
39
- </Overlay>
40
- </Example.Item>
41
-
42
- <div style={{ height: 1000 }}/>
43
- </Example>);
15
+ export const base = {
16
+ name: "base",
17
+ render: () => {
18
+ const overlayToggle = useToggle(false);
19
+ return (<Example>
20
+ <Example.Item title="base">
21
+ <Button onClick={overlayToggle.toggle}>Open overlay</Button>
22
+ <Overlay active={overlayToggle.active} onClose={overlayToggle.deactivate}>
23
+ Overlay content
24
+ </Overlay>
25
+ </Example.Item>
26
+ </Example>);
27
+ },
28
+ play: async ({ canvas }) => {
29
+ const trigger = canvas.getAllByRole("button")[0];
30
+ await userEvent.click(trigger);
31
+ },
44
32
  };
45
- class CustomElement extends window.HTMLElement {
46
- constructor() {
47
- super();
48
- this.attachShadow({ mode: "open" });
49
- if (!this.shadowRoot)
50
- return;
51
- const overlay = (<Reshaped>
52
- <Overlay active>Content</Overlay>
53
- </Reshaped>);
54
- const root = createRoot(this.shadowRoot);
55
- root.render(overlay);
56
- }
57
- }
58
- if (!window.customElements.get("custom-element")) {
59
- window.customElements.define("custom-element", CustomElement);
60
- }
61
- export const shadowDom = () => {
62
- return (<Example>
63
- <Example.Item>
64
- {/* @ts-ignore */}
65
- <custom-element />
66
- </Example.Item>
67
- </Example>);
33
+ export const transparent = {
34
+ name: "transparent",
35
+ render: () => {
36
+ const overlayToggle = useToggle(false);
37
+ return (<Example>
38
+ <Example.Item title="base">
39
+ <Button onClick={overlayToggle.toggle}>Open overlay</Button>
40
+ <Overlay active={overlayToggle.active} onClose={overlayToggle.deactivate} transparent>
41
+ Overlay content
42
+ </Overlay>
43
+ </Example.Item>
44
+ </Example>);
45
+ },
46
+ play: async ({ canvas }) => {
47
+ const trigger = canvas.getAllByRole("button")[0];
48
+ await userEvent.click(trigger);
49
+ },
50
+ };
51
+ export const blurred = {
52
+ name: "blurred",
53
+ render: () => {
54
+ const overlayToggle = useToggle(false);
55
+ return (<Example>
56
+ <Example.Item title="base">
57
+ <Button onClick={overlayToggle.toggle}>Open overlay</Button>
58
+ <Overlay active={overlayToggle.active} onClose={overlayToggle.deactivate} blurred>
59
+ Overlay content
60
+ </Overlay>
61
+ </Example.Item>
62
+ </Example>);
63
+ },
64
+ play: async ({ canvas }) => {
65
+ const trigger = canvas.getAllByRole("button")[0];
66
+ await userEvent.click(trigger);
67
+ },
68
68
  };
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { StoryObj } from "@storybook/react";
3
+ import { fn } from "@storybook/test";
4
+ declare const _default: {
5
+ title: string;
6
+ component: (props: import("./..").OverlayProps) => React.JSX.Element | null;
7
+ parameters: {
8
+ iframe: {
9
+ url: string;
10
+ };
11
+ chromatic: {
12
+ disableSnapshot: boolean;
13
+ };
14
+ };
15
+ };
16
+ export default _default;
17
+ export declare const renderProps: StoryObj;
18
+ export declare const handlers: StoryObj<{
19
+ handleOpen: ReturnType<typeof fn>;
20
+ handleAfterOpen: ReturnType<typeof fn>;
21
+ handleClose: ReturnType<typeof fn>;
22
+ handleAfterClose: ReturnType<typeof fn>;
23
+ }>;
24
+ export declare const disableCloseOnClick: StoryObj<{
25
+ handleClose: ReturnType<typeof fn>;
26
+ }>;
27
+ export declare const containerRef: StoryObj;
28
+ export declare const className: StoryObj;