reshaped 3.8.0-canary.2 → 3.8.0-canary.20

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 (303) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.d.ts +2 -1
  3. package/dist/bundle.js +11 -11
  4. package/dist/components/Accordion/AccordionControlled.js +1 -0
  5. package/dist/components/Actionable/Actionable.js +17 -3
  6. package/dist/components/Actionable/Actionable.module.css +1 -1
  7. package/dist/components/Actionable/Actionable.types.d.ts +15 -3
  8. package/dist/components/Actionable/tests/Actionable.stories.d.ts +13 -1
  9. package/dist/components/Actionable/tests/Actionable.stories.js +127 -7
  10. package/dist/components/Alert/tests/Alert.stories.d.ts +6 -5
  11. package/dist/components/Alert/tests/Alert.stories.js +15 -2
  12. package/dist/components/Autocomplete/Autocomplete.js +2 -2
  13. package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -1
  14. package/dist/components/Badge/Badge.module.css +1 -1
  15. package/dist/components/Badge/tests/Badge.stories.d.ts +5 -0
  16. package/dist/components/Badge/tests/Badge.stories.js +34 -0
  17. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
  18. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +8 -4
  19. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +57 -1
  20. package/dist/components/Button/Button.js +2 -2
  21. package/dist/components/Button/Button.module.css +1 -1
  22. package/dist/components/Button/Button.types.d.ts +1 -1
  23. package/dist/components/Button/tests/Button.stories.d.ts +54 -12
  24. package/dist/components/Button/tests/Button.stories.js +725 -588
  25. package/dist/components/Calendar/CalendarMonth.js +1 -0
  26. package/dist/components/Card/Card.d.ts +1 -1
  27. package/dist/components/Card/Card.module.css +1 -1
  28. package/dist/components/Card/tests/Card.stories.d.ts +29 -7
  29. package/dist/components/Card/tests/Card.stories.js +110 -65
  30. package/dist/components/Carousel/Carousel.js +1 -0
  31. package/dist/components/Carousel/Carousel.module.css +1 -1
  32. package/dist/components/Checkbox/Checkbox.module.css +1 -1
  33. package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +20 -4
  34. package/dist/components/Checkbox/tests/Checkbox.stories.js +150 -79
  35. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +9 -2
  36. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.js +67 -35
  37. package/dist/components/Container/tests/Container.stories.d.ts +2 -0
  38. package/dist/components/Container/tests/Container.stories.js +14 -0
  39. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +10 -1
  40. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +57 -13
  41. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +5 -0
  42. package/dist/components/Dismissible/tests/Dismissible.stories.js +30 -1
  43. package/dist/components/Divider/tests/Divider.stories.d.ts +8 -3
  44. package/dist/components/Divider/tests/Divider.stories.js +71 -41
  45. package/dist/components/DropdownMenu/DropdownMenu.js +4 -4
  46. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +2 -2
  47. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +35 -6
  48. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +222 -115
  49. package/dist/components/FileUpload/FileUpload.module.css +1 -1
  50. package/dist/components/Flyout/Flyout.module.css +1 -1
  51. package/dist/components/Flyout/Flyout.types.d.ts +7 -7
  52. package/dist/components/Flyout/FlyoutContent.js +4 -1
  53. package/dist/components/Flyout/FlyoutControlled.js +10 -3
  54. package/dist/components/Flyout/index.d.ts +1 -1
  55. package/dist/components/Flyout/tests/Flyout.stories.d.ts +8 -0
  56. package/dist/components/Flyout/tests/Flyout.stories.js +81 -33
  57. package/dist/components/Flyout/useFlyout.d.ts +1 -7
  58. package/dist/components/Flyout/useFlyout.js +5 -1
  59. package/dist/components/Flyout/utilities/calculatePosition.d.ts +3 -2
  60. package/dist/components/Flyout/utilities/calculatePosition.js +47 -22
  61. package/dist/components/Flyout/utilities/flyout.js +3 -2
  62. package/dist/components/Flyout/utilities/getPositionFallbacks.js +3 -3
  63. package/dist/components/Flyout/utilities/isFullyVisible.d.ts +0 -2
  64. package/dist/components/Flyout/utilities/isFullyVisible.js +5 -7
  65. package/dist/components/FormControl/FormControl.context.d.ts +1 -1
  66. package/dist/components/FormControl/tests/FormControl.stories.d.ts +2 -0
  67. package/dist/components/FormControl/tests/FormControl.stories.js +35 -0
  68. package/dist/components/Hidden/tests/Hidden.stories.d.ts +2 -0
  69. package/dist/components/Hidden/tests/Hidden.stories.js +9 -0
  70. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +2 -0
  71. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +9 -0
  72. package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +2 -0
  73. package/dist/components/Hotkey/tests/Hotkey.stories.js +15 -0
  74. package/dist/components/Icon/Icon.js +2 -2
  75. package/dist/components/Icon/Icon.types.d.ts +1 -1
  76. package/dist/components/Icon/tests/Icon.stories.d.ts +3 -0
  77. package/dist/components/Icon/tests/Icon.stories.js +29 -1
  78. package/dist/components/Link/Link.d.ts +1 -1
  79. package/dist/components/Link/Link.js +2 -2
  80. package/dist/components/Link/Link.types.d.ts +1 -1
  81. package/dist/components/Link/tests/Link.stories.d.ts +29 -6
  82. package/dist/components/Link/tests/Link.stories.js +141 -58
  83. package/dist/components/Loader/tests/Loader.stories.d.ts +11 -2
  84. package/dist/components/Loader/tests/Loader.stories.js +52 -25
  85. package/dist/components/MenuItem/MenuItem.js +2 -2
  86. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  87. package/dist/components/MenuItem/MenuItem.types.d.ts +1 -1
  88. package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +37 -7
  89. package/dist/components/MenuItem/tests/MenuItem.stories.js +218 -112
  90. package/dist/components/Modal/Modal.js +1 -1
  91. package/dist/components/Modal/Modal.module.css +1 -1
  92. package/dist/components/Modal/tests/Modal.stories.d.ts +49 -10
  93. package/dist/components/Modal/tests/Modal.stories.js +350 -210
  94. package/dist/components/Overlay/Overlay.js +2 -1
  95. package/dist/components/Overlay/tests/Overlay.stories.d.ts +15 -1
  96. package/dist/components/Overlay/tests/Overlay.stories.js +135 -1
  97. package/dist/components/Pagination/tests/Pagination.stories.d.ts +14 -1
  98. package/dist/components/Pagination/tests/Pagination.stories.js +93 -15
  99. package/dist/components/PinField/tests/PinField.stories.d.ts +1 -1
  100. package/dist/components/PinField/tests/PinField.stories.js +1 -1
  101. package/dist/components/Popover/Popover.js +2 -2
  102. package/dist/components/Popover/Popover.module.css +1 -1
  103. package/dist/components/Popover/Popover.types.d.ts +3 -1
  104. package/dist/components/Progress/tests/Progress.stories.d.ts +19 -4
  105. package/dist/components/Progress/tests/Progress.stories.js +85 -49
  106. package/dist/components/Radio/Radio.module.css +1 -1
  107. package/dist/components/Radio/tests/Radio.stories.d.ts +25 -4
  108. package/dist/components/Radio/tests/Radio.stories.js +147 -65
  109. package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +9 -2
  110. package/dist/components/RadioGroup/tests/RadioGroup.stories.js +64 -38
  111. package/dist/components/Reshaped/Reshaped.css +1 -1
  112. package/dist/components/Scrim/tests/Scrim.stories.d.ts +10 -2
  113. package/dist/components/Scrim/tests/Scrim.stories.js +51 -31
  114. package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
  115. package/dist/components/Select/Select.d.ts +8 -1
  116. package/dist/components/Select/Select.js +22 -48
  117. package/dist/components/Select/Select.module.css +1 -1
  118. package/dist/components/Select/Select.types.d.ts +83 -38
  119. package/dist/components/Select/SelectCustom.d.ts +3 -0
  120. package/dist/components/Select/SelectCustom.js +12 -0
  121. package/dist/components/Select/SelectCustomControlled.d.ts +4 -0
  122. package/dist/components/Select/SelectCustomControlled.js +105 -0
  123. package/dist/components/Select/SelectCustomUncontrolled.d.ts +4 -0
  124. package/dist/components/Select/SelectCustomUncontrolled.js +18 -0
  125. package/dist/components/Select/SelectEndContent.d.ts +3 -0
  126. package/dist/components/Select/SelectEndContent.js +12 -0
  127. package/dist/components/Select/SelectNative.d.ts +4 -0
  128. package/dist/components/Select/SelectNative.js +29 -0
  129. package/dist/components/Select/SelectOption.d.ts +4 -0
  130. package/dist/components/Select/SelectOption.js +13 -0
  131. package/dist/components/Select/SelectOptionGroup.d.ts +4 -0
  132. package/dist/components/Select/SelectOptionGroup.js +9 -0
  133. package/dist/components/Select/SelectRoot.d.ts +4 -0
  134. package/dist/components/Select/SelectRoot.js +21 -0
  135. package/dist/components/Select/SelectStartContent.d.ts +3 -0
  136. package/dist/components/Select/SelectStartContent.js +20 -0
  137. package/dist/components/Select/SelectTrigger.d.ts +4 -0
  138. package/dist/components/Select/SelectTrigger.js +16 -0
  139. package/dist/components/Select/tests/Select.stories.d.ts +38 -10
  140. package/dist/components/Select/tests/Select.stories.js +504 -175
  141. package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +10 -2
  142. package/dist/components/Skeleton/tests/Skeleton.stories.js +46 -28
  143. package/dist/components/Slider/Slider.module.css +1 -1
  144. package/dist/components/Stepper/Stepper.js +2 -2
  145. package/dist/components/Stepper/Stepper.types.d.ts +2 -0
  146. package/dist/components/Stepper/tests/Stepper.stories.d.ts +18 -3
  147. package/dist/components/Stepper/tests/Stepper.stories.js +99 -47
  148. package/dist/components/Switch/Switch.module.css +1 -1
  149. package/dist/components/Switch/tests/Switch.stories.d.ts +10 -2
  150. package/dist/components/Switch/tests/Switch.stories.js +77 -23
  151. package/dist/components/Switch/tests/Switch.test.stories.d.ts +0 -10
  152. package/dist/components/Switch/tests/Switch.test.stories.js +0 -68
  153. package/dist/components/Table/Table.js +5 -3
  154. package/dist/components/Table/Table.module.css +1 -1
  155. package/dist/components/Table/tests/Table.stories.d.ts +25 -5
  156. package/dist/components/Table/tests/Table.stories.js +274 -177
  157. package/dist/components/Tabs/Tabs.module.css +1 -1
  158. package/dist/components/Tabs/TabsControlled.js +1 -0
  159. package/dist/components/Tabs/TabsList.js +3 -20
  160. package/dist/components/Text/Text.module.css +1 -1
  161. package/dist/components/TextArea/TextArea.module.css +1 -1
  162. package/dist/components/TextArea/tests/TextArea.stories.d.ts +41 -9
  163. package/dist/components/TextArea/tests/TextArea.stories.js +179 -93
  164. package/dist/components/TextField/TextField.js +11 -3
  165. package/dist/components/TextField/TextField.module.css +1 -1
  166. package/dist/components/TextField/TextField.types.d.ts +5 -1
  167. package/dist/components/TextField/tests/TextField.stories.d.ts +41 -11
  168. package/dist/components/TextField/tests/TextField.stories.js +209 -129
  169. package/dist/components/Theme/Theme.module.css +1 -1
  170. package/dist/components/Timeline/Timeline.js +2 -2
  171. package/dist/components/Timeline/tests/Timeline.stories.d.ts +10 -2
  172. package/dist/components/Timeline/tests/Timeline.stories.js +69 -45
  173. package/dist/components/Toast/ToastContainer.js +1 -0
  174. package/dist/components/Toast/ToastRegion.js +1 -0
  175. package/dist/components/Toast/tests/Toast.stories.d.ts +32 -8
  176. package/dist/components/Toast/tests/Toast.stories.js +111 -37
  177. package/dist/components/ToggleButton/ToggleButton.types.d.ts +5 -1
  178. package/dist/components/ToggleButton/ToggleButtonControlled.js +9 -2
  179. package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +4 -0
  180. package/dist/components/ToggleButton/tests/ToggleButton.stories.js +10 -0
  181. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.types.d.ts +10 -0
  182. package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +6 -41
  183. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +1 -0
  184. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +17 -0
  185. package/dist/components/Tooltip/Tooltip.js +1 -1
  186. package/dist/components/Tooltip/Tooltip.types.d.ts +2 -2
  187. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +18 -4
  188. package/dist/components/Tooltip/tests/Tooltip.stories.js +139 -107
  189. package/dist/components/View/View.js +11 -4
  190. package/dist/components/View/View.types.d.ts +1 -1
  191. package/dist/components/View/tests/View.stories.d.ts +4 -0
  192. package/dist/components/View/tests/View.stories.js +39 -0
  193. package/dist/components/_private/Expandable/Expandable.js +3 -1
  194. package/dist/components/_private/Portal/Portal.js +4 -1
  195. package/dist/hooks/_private/useIsDismissible.d.ts +1 -0
  196. package/dist/hooks/_private/useIsDismissible.js +6 -6
  197. package/dist/hooks/_private/usePrevious.js +1 -0
  198. package/dist/hooks/tests/useDrag.stories.js +1 -1
  199. package/dist/{components/Toast/tests/Toast.test.stories.d.ts → hooks/tests/useKeyboardArrowNavigation.stories.d.ts} +4 -5
  200. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +128 -0
  201. package/dist/hooks/useKeyboardArrowNavigation.d.ts +9 -0
  202. package/dist/hooks/useKeyboardArrowNavigation.js +62 -0
  203. package/dist/hooks/useOnClickOutside.js +0 -2
  204. package/dist/hooks/useScrollLock.js +5 -3
  205. package/dist/index.d.ts +2 -1
  206. package/dist/index.js +1 -0
  207. package/dist/styles/resolvers/align/align.css +1 -1
  208. package/dist/styles/resolvers/aspectRatio/aspectRatio.css +1 -1
  209. package/dist/styles/resolvers/bleed/bleed.module.css +1 -1
  210. package/dist/styles/resolvers/justify/justify.css +1 -1
  211. package/dist/styles/resolvers/maxHeight/maxHeight.module.css +1 -1
  212. package/dist/styles/resolvers/maxWidth/maxWidth.module.css +1 -1
  213. package/dist/styles/resolvers/minHeight/minHeight.module.css +1 -1
  214. package/dist/styles/resolvers/minWidth/minWidth.module.css +1 -1
  215. package/dist/styles/resolvers/position/position.css +1 -1
  216. package/dist/styles/resolvers/textAlign/textAlign.css +1 -1
  217. package/dist/styles/resolvers/width/width.module.css +1 -1
  218. package/dist/utilities/a11y/focus.d.ts +21 -4
  219. package/dist/utilities/a11y/focus.js +4 -3
  220. package/dist/utilities/scroll/disable.js +2 -2
  221. package/dist/utilities/scroll/index.d.ts +1 -1
  222. package/dist/utilities/scroll/index.js +1 -1
  223. package/dist/utilities/scroll/lock.d.ts +1 -2
  224. package/dist/utilities/scroll/lock.js +16 -15
  225. package/dist/utilities/scroll/lockSafari.js +1 -0
  226. package/package.json +195 -201
  227. package/CHANGELOG-extra.md +0 -3
  228. package/CHANGELOG.md +0 -57
  229. package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +0 -32
  230. package/dist/components/Actionable/tests/Actionable.test.stories.js +0 -130
  231. package/dist/components/Alert/tests/Alert.test.stories.d.ts +0 -15
  232. package/dist/components/Alert/tests/Alert.test.stories.js +0 -26
  233. package/dist/components/Badge/tests/Badge.test.stories.d.ts +0 -20
  234. package/dist/components/Badge/tests/Badge.test.stories.js +0 -46
  235. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +0 -23
  236. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +0 -76
  237. package/dist/components/Button/tests/Button.test.stories.d.ts +0 -27
  238. package/dist/components/Button/tests/Button.test.stories.js +0 -112
  239. package/dist/components/Card/tests/Card.test.stories.d.ts +0 -35
  240. package/dist/components/Card/tests/Card.test.stories.js +0 -54
  241. package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +0 -25
  242. package/dist/components/Checkbox/tests/Checkbox.test.stories.js +0 -104
  243. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +0 -22
  244. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +0 -78
  245. package/dist/components/Container/tests/Container.test.stories.d.ts +0 -15
  246. package/dist/components/Container/tests/Container.test.stories.js +0 -26
  247. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +0 -25
  248. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +0 -53
  249. package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +0 -19
  250. package/dist/components/Dismissible/tests/Dismissible.test.stories.js +0 -42
  251. package/dist/components/Divider/tests/Divider.test.stories.d.ts +0 -18
  252. package/dist/components/Divider/tests/Divider.test.stories.js +0 -47
  253. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +0 -36
  254. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +0 -117
  255. package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +0 -20
  256. package/dist/components/FormControl/tests/FormControl.test.stories.js +0 -49
  257. package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +0 -15
  258. package/dist/components/Hidden/tests/Hidden.test.stories.js +0 -20
  259. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +0 -15
  260. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +0 -20
  261. package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +0 -15
  262. package/dist/components/Hotkey/tests/Hotkey.test.stories.js +0 -26
  263. package/dist/components/Icon/tests/Icon.test.stories.d.ts +0 -16
  264. package/dist/components/Icon/tests/Icon.test.stories.js +0 -35
  265. package/dist/components/Link/tests/Link.test.stories.d.ts +0 -29
  266. package/dist/components/Link/tests/Link.test.stories.js +0 -87
  267. package/dist/components/Loader/tests/Loader.test.stories.d.ts +0 -16
  268. package/dist/components/Loader/tests/Loader.test.stories.js +0 -32
  269. package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +0 -26
  270. package/dist/components/MenuItem/tests/MenuItem.test.stories.js +0 -100
  271. package/dist/components/Modal/tests/Modal.test.stories.d.ts +0 -31
  272. package/dist/components/Modal/tests/Modal.test.stories.js +0 -149
  273. package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +0 -28
  274. package/dist/components/Overlay/tests/Overlay.test.stories.js +0 -148
  275. package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +0 -23
  276. package/dist/components/Pagination/tests/Pagination.test.stories.js +0 -86
  277. package/dist/components/Progress/tests/Progress.test.stories.d.ts +0 -16
  278. package/dist/components/Progress/tests/Progress.test.stories.js +0 -35
  279. package/dist/components/Radio/tests/Radio.test.stories.d.ts +0 -30
  280. package/dist/components/Radio/tests/Radio.test.stories.js +0 -118
  281. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +0 -22
  282. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +0 -78
  283. package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +0 -15
  284. package/dist/components/Scrim/tests/Scrim.test.stories.js +0 -25
  285. package/dist/components/Select/tests/Select.test.stories.d.ts +0 -27
  286. package/dist/components/Select/tests/Select.test.stories.js +0 -132
  287. package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +0 -15
  288. package/dist/components/Skeleton/tests/Skeleton.test.stories.js +0 -23
  289. package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +0 -20
  290. package/dist/components/Stepper/tests/Stepper.test.stories.js +0 -28
  291. package/dist/components/Table/tests/Table.test.stories.d.ts +0 -24
  292. package/dist/components/Table/tests/Table.test.stories.js +0 -93
  293. package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +0 -28
  294. package/dist/components/TextArea/tests/TextArea.test.stories.js +0 -99
  295. package/dist/components/TextField/tests/TextField.test.stories.d.ts +0 -28
  296. package/dist/components/TextField/tests/TextField.test.stories.js +0 -99
  297. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +0 -17
  298. package/dist/components/Timeline/tests/Timeline.test.stories.js +0 -32
  299. package/dist/components/Toast/tests/Toast.test.stories.js +0 -101
  300. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +0 -19
  301. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +0 -40
  302. package/dist/components/View/tests/View.test.stories.d.ts +0 -24
  303. package/dist/components/View/tests/View.test.stories.js +0 -50
@@ -4,6 +4,7 @@ import Text from "../../Text/index.js";
4
4
  import MenuItem from "../index.js";
5
5
  import IconZap from "../../../icons/Zap.js";
6
6
  import Hotkey from "../../Hotkey/index.js";
7
+ import { expect, fn, userEvent } from "storybook/test";
7
8
  export default {
8
9
  title: "Components/MenuItem",
9
10
  component: MenuItem,
@@ -13,118 +14,223 @@ export default {
13
14
  },
14
15
  },
15
16
  };
16
- export const size = () => (<Example>
17
- <Example.Item title="size: small">
18
- <MenuItem size="small" icon={IconZap} onClick={() => { }} endSlot={<Hotkey>⌘K</Hotkey>}>
19
- Menu item
20
- </MenuItem>
21
- </Example.Item>
22
- <Example.Item title="size: medium">
23
- <MenuItem icon={IconZap} onClick={() => { }}>
24
- Menu item
25
- </MenuItem>
26
- </Example.Item>
27
- <Example.Item title="size: large">
28
- <MenuItem size="large" icon={IconZap} onClick={() => { }}>
29
- Menu item
30
- </MenuItem>
31
- </Example.Item>
32
- <Example.Item title={["responsive size", "[s] small", "[m] medium", "[l+] large"]}>
33
- <MenuItem size={{ s: "small", m: "medium", l: "large" }} icon={IconZap} onClick={() => { }}>
34
- Menu item
35
- </MenuItem>
36
- </Example.Item>
37
- </Example>);
38
- export const color = () => (<Example>
39
- <Example.Item title="color: neutral">
40
- <MenuItem color="neutral" icon={IconZap}>
41
- Menu item
42
- </MenuItem>
43
- </Example.Item>
44
- <Example.Item title="color: primary">
45
- <MenuItem color="primary" icon={IconZap}>
46
- Menu item
47
- </MenuItem>
48
- </Example.Item>
49
- <Example.Item title="color: critical">
50
- <MenuItem color="critical" icon={IconZap}>
51
- Menu item
52
- </MenuItem>
53
- </Example.Item>
54
- </Example>);
55
- export const selected = () => (<Example>
56
- <Example.Item title="selected, color: neutral">
57
- <MenuItem color="neutral" selected icon={IconZap}>
58
- Menu item
59
- </MenuItem>
60
- </Example.Item>
61
- <Example.Item title="selected, color: primary">
62
- <MenuItem color="primary" selected icon={IconZap}>
63
- Menu item
64
- </MenuItem>
65
- </Example.Item>
66
- <Example.Item title="selected, color: critical">
67
- <MenuItem color="critical" selected icon={IconZap}>
68
- Menu item
69
- </MenuItem>
70
- </Example.Item>
71
- </Example>);
72
- export const disabled = () => (<Example>
73
- <Example.Item title="disabled">
74
- <MenuItem disabled icon={IconZap}>
75
- Menu item
76
- </MenuItem>
77
- </Example.Item>
78
- </Example>);
79
- export const roundedCorners = () => (<Example>
80
- <Example.Item title="roundedCorners">
81
- <MenuItem roundedCorners selected icon={IconZap}>
82
- Menu item
83
- </MenuItem>
84
- </Example.Item>
17
+ export const size = {
18
+ name: "size",
19
+ render: () => (<Example>
20
+ <Example.Item title="size: small">
21
+ <MenuItem size="small" icon={IconZap} onClick={() => { }} endSlot={<Hotkey>⌘K</Hotkey>}>
22
+ Menu item
23
+ </MenuItem>
24
+ </Example.Item>
25
+ <Example.Item title="size: medium">
26
+ <MenuItem icon={IconZap} onClick={() => { }}>
27
+ Menu item
28
+ </MenuItem>
29
+ </Example.Item>
30
+ <Example.Item title="size: large">
31
+ <MenuItem size="large" icon={IconZap} onClick={() => { }}>
32
+ Menu item
33
+ </MenuItem>
34
+ </Example.Item>
35
+ <Example.Item title={["responsive size", "[s] small", "[m] medium", "[l+] large"]}>
36
+ <MenuItem size={{ s: "small", m: "medium", l: "large" }} icon={IconZap} onClick={() => { }}>
37
+ Menu item
38
+ </MenuItem>
39
+ </Example.Item>
40
+ </Example>),
41
+ };
42
+ export const color = {
43
+ name: "color",
44
+ render: () => (<Example>
45
+ <Example.Item title="color: neutral">
46
+ <MenuItem color="neutral" icon={IconZap}>
47
+ Menu item
48
+ </MenuItem>
49
+ </Example.Item>
50
+ <Example.Item title="color: primary">
51
+ <MenuItem color="primary" icon={IconZap}>
52
+ Menu item
53
+ </MenuItem>
54
+ </Example.Item>
55
+ <Example.Item title="color: critical">
56
+ <MenuItem color="critical" icon={IconZap}>
57
+ Menu item
58
+ </MenuItem>
59
+ </Example.Item>
60
+ </Example>),
61
+ };
62
+ export const selected = {
63
+ name: "selected",
64
+ render: () => (<Example>
65
+ <Example.Item title="selected, color: neutral">
66
+ <MenuItem color="neutral" selected icon={IconZap}>
67
+ Menu item
68
+ </MenuItem>
69
+ </Example.Item>
70
+ <Example.Item title="selected, color: primary">
71
+ <MenuItem color="primary" selected icon={IconZap}>
72
+ Menu item
73
+ </MenuItem>
74
+ </Example.Item>
75
+ <Example.Item title="selected, color: critical">
76
+ <MenuItem color="critical" selected icon={IconZap}>
77
+ Menu item
78
+ </MenuItem>
79
+ </Example.Item>
80
+ </Example>),
81
+ };
82
+ export const roundedCorners = {
83
+ name: "roundedCorners",
84
+ render: () => (<Example>
85
+ <Example.Item title="roundedCorners">
86
+ <MenuItem roundedCorners selected icon={IconZap}>
87
+ Menu item
88
+ </MenuItem>
89
+ </Example.Item>
85
90
 
86
- <Example.Item title={["responsive roundedCorners", "[s]: false", "[m+]: true"]}>
87
- <MenuItem roundedCorners={{ s: false, m: true }} selected icon={IconZap}>
88
- Menu item
89
- </MenuItem>
90
- </Example.Item>
91
- </Example>);
92
- export const slots = () => (<Example>
93
- <Example.Item title="startSlot, endSlot, selected">
94
- <MenuItem startSlot={<Placeholder h={20}/>} endSlot={<Placeholder h={20}/>} selected>
95
- Menu item
96
- </MenuItem>
97
- </Example.Item>
98
- </Example>);
99
- export const aligner = () => (<Example>
100
- <Example.Item title="size: small">
101
- <View gap={2}>
102
- <Text variant="title-6">Heading</Text>
103
- <MenuItem.Aligner>
104
- <MenuItem size="small" selected onClick={() => { }}>
105
- Menu item
106
- </MenuItem>
107
- </MenuItem.Aligner>
108
- </View>
109
- </Example.Item>
91
+ <Example.Item title={["responsive roundedCorners", "[s]: false", "[m+]: true"]}>
92
+ <MenuItem roundedCorners={{ s: false, m: true }} selected icon={IconZap}>
93
+ Menu item
94
+ </MenuItem>
95
+ </Example.Item>
96
+ </Example>),
97
+ };
98
+ export const slots = {
99
+ name: "startSlot, endSlot",
100
+ render: () => (<Example>
101
+ <Example.Item title="startSlot, endSlot, selected">
102
+ <MenuItem startSlot={<Placeholder h={20}/>} endSlot={<Placeholder h={20}/>} selected>
103
+ Menu item
104
+ </MenuItem>
105
+ </Example.Item>
106
+ </Example>),
107
+ };
108
+ export const aligner = {
109
+ name: "aligner",
110
+ render: () => (<Example>
111
+ <Example.Item title="size: small">
112
+ <View gap={2}>
113
+ <Text variant="title-6">Heading</Text>
114
+ <MenuItem.Aligner>
115
+ <MenuItem size="small" selected onClick={() => { }}>
116
+ Menu item
117
+ </MenuItem>
118
+ </MenuItem.Aligner>
119
+ </View>
120
+ </Example.Item>
110
121
 
111
- <Example.Item title="size: medium">
112
- <View gap={2}>
113
- <Text variant="title-6">Heading</Text>
114
- <MenuItem.Aligner>
115
- <MenuItem selected>Menu item</MenuItem>
116
- </MenuItem.Aligner>
117
- </View>
118
- </Example.Item>
122
+ <Example.Item title="size: medium">
123
+ <View gap={2}>
124
+ <Text variant="title-6">Heading</Text>
125
+ <MenuItem.Aligner>
126
+ <MenuItem selected>Menu item</MenuItem>
127
+ </MenuItem.Aligner>
128
+ </View>
129
+ </Example.Item>
119
130
 
120
- <Example.Item title="size: large">
121
- <View gap={2}>
122
- <Text variant="title-6">Heading</Text>
123
- <MenuItem.Aligner>
124
- <MenuItem size="large" selected>
125
- Menu item
126
- </MenuItem>
127
- </MenuItem.Aligner>
128
- </View>
129
- </Example.Item>
130
- </Example>);
131
+ <Example.Item title="size: large">
132
+ <View gap={2}>
133
+ <Text variant="title-6">Heading</Text>
134
+ <MenuItem.Aligner>
135
+ <MenuItem size="large" selected>
136
+ Menu item
137
+ </MenuItem>
138
+ </MenuItem.Aligner>
139
+ </View>
140
+ </Example.Item>
141
+ </Example>),
142
+ };
143
+ export const href = {
144
+ name: "href",
145
+ render: () => <MenuItem href="https://reshaped.so">Trigger</MenuItem>,
146
+ play: async ({ canvas }) => {
147
+ const el = canvas.getByRole("link");
148
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
149
+ },
150
+ };
151
+ export const onClick = {
152
+ name: "onClick",
153
+ args: {
154
+ handleClick: fn(),
155
+ },
156
+ render: (args) => <MenuItem onClick={args.handleClick}>Trigger</MenuItem>,
157
+ play: async ({ canvas, args }) => {
158
+ const { handleClick } = args;
159
+ const el = canvas.getAllByRole("button")[0];
160
+ await userEvent.click(el);
161
+ expect(el).toHaveAttribute("type", "button");
162
+ expect(handleClick).toHaveBeenCalledTimes(1);
163
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
164
+ },
165
+ };
166
+ export const hrefOnClick = {
167
+ name: "href + onClick",
168
+ args: {
169
+ handleClick: fn(),
170
+ },
171
+ render: (args) => (<MenuItem onClick={(e) => {
172
+ e.preventDefault();
173
+ args.handleClick(e);
174
+ }} href="https://reshaped.so">
175
+ Trigger
176
+ </MenuItem>),
177
+ play: async ({ canvas, args }) => {
178
+ const { handleClick } = args;
179
+ const el = canvas.getByRole("link");
180
+ await userEvent.click(el);
181
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
182
+ expect(handleClick).toHaveBeenCalledTimes(1);
183
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
184
+ },
185
+ };
186
+ export const disabled = {
187
+ name: "disabled",
188
+ render: () => (<MenuItem disabled onClick={() => { }}>
189
+ Trigger
190
+ </MenuItem>),
191
+ play: async ({ canvas }) => {
192
+ const el = canvas.getAllByRole("button")[0];
193
+ expect(el).toBeDisabled();
194
+ },
195
+ };
196
+ export const as = {
197
+ name: "as, render",
198
+ render: () => (<Example>
199
+ <Example.Item title="render, disabled">
200
+ <MenuItem disabled onClick={() => { }} render={(props) => <section {...props}/>} attributes={{ "data-testid": "render-el" }}>
201
+ Trigger
202
+ </MenuItem>
203
+ </Example.Item>
204
+ </Example>),
205
+ play: ({ canvas }) => {
206
+ const renderEl = canvas.getByTestId("render-el");
207
+ expect(renderEl.tagName).toBe("SECTION");
208
+ expect(renderEl).toHaveAttribute("aria-disabled", "true");
209
+ },
210
+ };
211
+ export const className = {
212
+ name: "className, attributes",
213
+ render: () => (<div data-testid="root">
214
+ <MenuItem className="test-classname" attributes={{ id: "test-id" }}>
215
+ Trigger
216
+ </MenuItem>
217
+ </div>),
218
+ play: async ({ canvas }) => {
219
+ const root = canvas.getByTestId("root").firstChild;
220
+ expect(root).toHaveClass("test-classname");
221
+ expect(root).toHaveAttribute("id", "test-id");
222
+ },
223
+ };
224
+ export const alignerClassName = {
225
+ name: "aligner, className, attributes",
226
+ render: () => (<div data-testid="root">
227
+ <MenuItem.Aligner className="test-classname" attributes={{ id: "test-id" }}>
228
+ <MenuItem>Trigger</MenuItem>
229
+ </MenuItem.Aligner>
230
+ </div>),
231
+ play: async ({ canvas }) => {
232
+ const root = canvas.getByTestId("root").firstChild;
233
+ expect(root).toHaveClass("test-classname");
234
+ expect(root).toHaveAttribute("id", "test-id");
235
+ },
236
+ };
@@ -87,7 +87,7 @@ const Modal = (props) => {
87
87
  return;
88
88
  currentEl = currentEl ? currentEl.parentElement : null;
89
89
  }
90
- // Prevent the drag handling when browser tab swiping is triggering
90
+ // Prevent the drag handling when browser is trying to navigate to a previous page
91
91
  if (clientPosition === "start" && e.targetTouches[0].clientX < DRAG_EDGE_BOUNDARY)
92
92
  return;
93
93
  disableUserSelect();
@@ -1 +1 @@
1
- .root{--rs-modal-container-width:100vw;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);outline:none;transition:var(--rs-easing-accelerate) var(--rs-duration-fast);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-focus-shadow)}.root.--contained{--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
1
+ .root{--rs-modal-container-width:100vw;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);outline:none;transition:var(--rs-easing-accelerate) var(--rs-duration-fast);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-shadow-focus)}.root.--contained{--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
2
  import { type ModalProps } from "./..";
3
+ import { StoryObj } from "@storybook/react-vite";
4
+ import { fn } from "storybook/test";
3
5
  declare const _default: {
4
6
  title: string;
5
7
  component: React.FC<ModalProps> & {
@@ -13,13 +15,50 @@ declare const _default: {
13
15
  };
14
16
  };
15
17
  export default _default;
16
- export declare const position: () => React.JSX.Element;
17
- export declare const size: () => React.JSX.Element;
18
- export declare const padding: () => React.JSX.Element;
19
- export declare const overflow: () => React.JSX.Element;
20
- export declare const composition: () => React.JSX.Element;
21
- export declare const overlay: () => React.JSX.Element;
22
- export declare const flags: () => React.JSX.Element;
23
- export declare const containerRef: () => React.JSX.Element;
24
- export declare const edgeCases: () => React.JSX.Element;
25
- export declare const trapFocusEdgeCases: () => React.JSX.Element;
18
+ export declare const position: {
19
+ name: string;
20
+ render: () => React.JSX.Element;
21
+ };
22
+ export declare const size: {
23
+ name: string;
24
+ render: () => React.JSX.Element;
25
+ };
26
+ export declare const padding: {
27
+ name: string;
28
+ render: () => React.JSX.Element;
29
+ };
30
+ export declare const overflow: {
31
+ name: string;
32
+ render: () => React.JSX.Element;
33
+ };
34
+ export declare const composition: {
35
+ name: string;
36
+ render: () => React.JSX.Element;
37
+ };
38
+ export declare const overlay: {
39
+ name: string;
40
+ render: () => React.JSX.Element;
41
+ };
42
+ export declare const flags: StoryObj<{
43
+ handleClose: ReturnType<typeof fn>;
44
+ }>;
45
+ export declare const containerRef: {
46
+ name: string;
47
+ render: () => React.JSX.Element;
48
+ };
49
+ export declare const renderProps: StoryObj;
50
+ export declare const handlers: StoryObj<{
51
+ handleOpen: ReturnType<typeof fn>;
52
+ handleAfterOpen: ReturnType<typeof fn>;
53
+ handleClose: ReturnType<typeof fn>;
54
+ handleAfterClose: ReturnType<typeof fn>;
55
+ }>;
56
+ export declare const className: StoryObj;
57
+ export declare const edgeCases: {
58
+ name: string;
59
+ render: () => React.JSX.Element;
60
+ };
61
+ export declare const trapFocusEdgeCases: {
62
+ name: string;
63
+ render: () => React.JSX.Element;
64
+ };