reshaped 3.8.0-canary.1 → 3.8.0-canary.10

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 +83 -18
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +1 -1
  4. package/dist/bundle.js +11 -11
  5. package/dist/components/Accordion/AccordionControlled.js +1 -0
  6. package/dist/components/Actionable/Actionable.js +17 -3
  7. package/dist/components/Actionable/Actionable.module.css +1 -1
  8. package/dist/components/Actionable/Actionable.types.d.ts +15 -3
  9. package/dist/components/Actionable/tests/Actionable.stories.d.ts +13 -1
  10. package/dist/components/Actionable/tests/Actionable.stories.js +127 -7
  11. package/dist/components/Alert/tests/Alert.stories.d.ts +6 -5
  12. package/dist/components/Alert/tests/Alert.stories.js +15 -2
  13. package/dist/components/Autocomplete/Autocomplete.js +2 -2
  14. package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -1
  15. package/dist/components/Badge/Badge.module.css +1 -1
  16. package/dist/components/Badge/tests/Badge.stories.d.ts +5 -0
  17. package/dist/components/Badge/tests/Badge.stories.js +34 -0
  18. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
  19. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +8 -4
  20. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +57 -1
  21. package/dist/components/Button/Button.js +2 -2
  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/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +0 -15
  50. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +0 -106
  51. package/dist/components/FileUpload/FileUpload.module.css +1 -1
  52. package/dist/components/Flyout/Flyout.module.css +1 -1
  53. package/dist/components/Flyout/Flyout.types.d.ts +7 -7
  54. package/dist/components/Flyout/FlyoutContent.js +4 -1
  55. package/dist/components/Flyout/FlyoutControlled.js +10 -3
  56. package/dist/components/Flyout/index.d.ts +1 -1
  57. package/dist/components/Flyout/tests/Flyout.stories.d.ts +8 -0
  58. package/dist/components/Flyout/tests/Flyout.stories.js +81 -33
  59. package/dist/components/Flyout/useFlyout.d.ts +1 -7
  60. package/dist/components/Flyout/useFlyout.js +5 -1
  61. package/dist/components/Flyout/utilities/calculatePosition.d.ts +3 -2
  62. package/dist/components/Flyout/utilities/calculatePosition.js +47 -22
  63. package/dist/components/Flyout/utilities/flyout.js +3 -2
  64. package/dist/components/Flyout/utilities/getPositionFallbacks.js +3 -3
  65. package/dist/components/Flyout/utilities/isFullyVisible.d.ts +0 -2
  66. package/dist/components/Flyout/utilities/isFullyVisible.js +5 -7
  67. package/dist/components/FormControl/FormControl.context.d.ts +1 -1
  68. package/dist/components/FormControl/tests/FormControl.stories.d.ts +2 -0
  69. package/dist/components/FormControl/tests/FormControl.stories.js +35 -0
  70. package/dist/components/Hidden/tests/Hidden.stories.d.ts +2 -0
  71. package/dist/components/Hidden/tests/Hidden.stories.js +9 -0
  72. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +2 -0
  73. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +9 -0
  74. package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +2 -0
  75. package/dist/components/Hotkey/tests/Hotkey.stories.js +15 -0
  76. package/dist/components/Icon/Icon.js +2 -2
  77. package/dist/components/Icon/Icon.types.d.ts +1 -1
  78. package/dist/components/Icon/tests/Icon.stories.d.ts +3 -0
  79. package/dist/components/Icon/tests/Icon.stories.js +29 -1
  80. package/dist/components/Link/Link.d.ts +1 -1
  81. package/dist/components/Link/Link.js +2 -2
  82. package/dist/components/Link/Link.types.d.ts +1 -1
  83. package/dist/components/Link/tests/Link.stories.d.ts +29 -6
  84. package/dist/components/Link/tests/Link.stories.js +141 -58
  85. package/dist/components/Link/tests/Link.test.stories.d.ts +1 -13
  86. package/dist/components/Link/tests/Link.test.stories.js +0 -76
  87. package/dist/components/Loader/tests/Loader.stories.d.ts +11 -2
  88. package/dist/components/Loader/tests/Loader.stories.js +52 -25
  89. package/dist/components/Loader/tests/Loader.test.stories.d.ts +0 -3
  90. package/dist/components/Loader/tests/Loader.test.stories.js +0 -21
  91. package/dist/components/MenuItem/MenuItem.js +2 -2
  92. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  93. package/dist/components/MenuItem/MenuItem.types.d.ts +1 -1
  94. package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +37 -7
  95. package/dist/components/MenuItem/tests/MenuItem.stories.js +218 -112
  96. package/dist/components/Modal/Modal.js +1 -1
  97. package/dist/components/Modal/Modal.module.css +1 -1
  98. package/dist/components/Modal/tests/Modal.stories.d.ts +53 -10
  99. package/dist/components/Modal/tests/Modal.stories.js +367 -210
  100. package/dist/components/Overlay/Overlay.js +2 -1
  101. package/dist/components/Overlay/tests/Overlay.stories.d.ts +15 -1
  102. package/dist/components/Overlay/tests/Overlay.stories.js +135 -1
  103. package/dist/components/Pagination/tests/Pagination.stories.d.ts +14 -1
  104. package/dist/components/Pagination/tests/Pagination.stories.js +93 -15
  105. package/dist/components/PinField/tests/PinField.stories.d.ts +1 -1
  106. package/dist/components/PinField/tests/PinField.stories.js +1 -1
  107. package/dist/components/Popover/Popover.js +2 -2
  108. package/dist/components/Popover/Popover.module.css +1 -1
  109. package/dist/components/Popover/Popover.types.d.ts +3 -1
  110. package/dist/components/Progress/tests/Progress.stories.d.ts +19 -4
  111. package/dist/components/Progress/tests/Progress.stories.js +85 -49
  112. package/dist/components/Radio/Radio.module.css +1 -1
  113. package/dist/components/Radio/tests/Radio.stories.d.ts +25 -4
  114. package/dist/components/Radio/tests/Radio.stories.js +147 -65
  115. package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +9 -2
  116. package/dist/components/RadioGroup/tests/RadioGroup.stories.js +64 -38
  117. package/dist/components/Reshaped/Reshaped.css +1 -1
  118. package/dist/components/Scrim/tests/Scrim.stories.d.ts +10 -2
  119. package/dist/components/Scrim/tests/Scrim.stories.js +51 -31
  120. package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
  121. package/dist/components/Select/Select.d.ts +8 -1
  122. package/dist/components/Select/Select.js +22 -48
  123. package/dist/components/Select/Select.module.css +1 -1
  124. package/dist/components/Select/Select.types.d.ts +83 -38
  125. package/dist/components/Select/SelectCustom.d.ts +3 -0
  126. package/dist/components/Select/SelectCustom.js +12 -0
  127. package/dist/components/Select/SelectCustomControlled.d.ts +4 -0
  128. package/dist/components/Select/SelectCustomControlled.js +105 -0
  129. package/dist/components/Select/SelectCustomUncontrolled.d.ts +4 -0
  130. package/dist/components/Select/SelectCustomUncontrolled.js +18 -0
  131. package/dist/components/Select/SelectEndContent.d.ts +3 -0
  132. package/dist/components/Select/SelectEndContent.js +12 -0
  133. package/dist/components/Select/SelectNative.d.ts +4 -0
  134. package/dist/components/Select/SelectNative.js +29 -0
  135. package/dist/components/Select/SelectOption.d.ts +4 -0
  136. package/dist/components/Select/SelectOption.js +13 -0
  137. package/dist/components/Select/SelectOptionGroup.d.ts +4 -0
  138. package/dist/components/Select/SelectOptionGroup.js +9 -0
  139. package/dist/components/Select/SelectRoot.d.ts +4 -0
  140. package/dist/components/Select/SelectRoot.js +21 -0
  141. package/dist/components/Select/SelectStartContent.d.ts +3 -0
  142. package/dist/components/Select/SelectStartContent.js +20 -0
  143. package/dist/components/Select/SelectTrigger.d.ts +4 -0
  144. package/dist/components/Select/SelectTrigger.js +16 -0
  145. package/dist/components/Select/tests/Select.stories.d.ts +38 -10
  146. package/dist/components/Select/tests/Select.stories.js +504 -175
  147. package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +10 -2
  148. package/dist/components/Skeleton/tests/Skeleton.stories.js +46 -28
  149. package/dist/components/Slider/Slider.module.css +1 -1
  150. package/dist/components/Stepper/Stepper.js +2 -2
  151. package/dist/components/Stepper/Stepper.types.d.ts +2 -0
  152. package/dist/components/Stepper/tests/Stepper.stories.d.ts +18 -3
  153. package/dist/components/Stepper/tests/Stepper.stories.js +99 -47
  154. package/dist/components/Switch/Switch.module.css +1 -1
  155. package/dist/components/Switch/tests/Switch.stories.d.ts +10 -2
  156. package/dist/components/Switch/tests/Switch.stories.js +77 -23
  157. package/dist/components/Switch/tests/Switch.test.stories.d.ts +0 -10
  158. package/dist/components/Switch/tests/Switch.test.stories.js +0 -68
  159. package/dist/components/Table/Table.js +5 -3
  160. package/dist/components/Table/Table.module.css +1 -1
  161. package/dist/components/Table/tests/Table.stories.d.ts +25 -5
  162. package/dist/components/Table/tests/Table.stories.js +274 -177
  163. package/dist/components/Table/tests/Table.test.stories.d.ts +0 -5
  164. package/dist/components/Table/tests/Table.test.stories.js +0 -82
  165. package/dist/components/Tabs/Tabs.module.css +1 -1
  166. package/dist/components/Tabs/TabsControlled.js +1 -0
  167. package/dist/components/TextArea/TextArea.module.css +1 -1
  168. package/dist/components/TextArea/tests/TextArea.stories.d.ts +41 -9
  169. package/dist/components/TextArea/tests/TextArea.stories.js +179 -93
  170. package/dist/components/TextField/TextField.js +1 -1
  171. package/dist/components/TextField/TextField.module.css +1 -1
  172. package/dist/components/TextField/tests/TextField.stories.d.ts +41 -11
  173. package/dist/components/TextField/tests/TextField.stories.js +206 -132
  174. package/dist/components/TextField/tests/TextField.test.stories.d.ts +0 -13
  175. package/dist/components/TextField/tests/TextField.test.stories.js +0 -88
  176. package/dist/components/Theme/Theme.module.css +1 -1
  177. package/dist/components/Timeline/Timeline.js +2 -2
  178. package/dist/components/Timeline/tests/Timeline.stories.d.ts +10 -2
  179. package/dist/components/Timeline/tests/Timeline.stories.js +69 -45
  180. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +0 -2
  181. package/dist/components/Timeline/tests/Timeline.test.stories.js +0 -21
  182. package/dist/components/Toast/ToastContainer.js +1 -0
  183. package/dist/components/Toast/ToastRegion.js +1 -0
  184. package/dist/components/Toast/tests/Toast.stories.d.ts +32 -8
  185. package/dist/components/Toast/tests/Toast.stories.js +111 -37
  186. package/dist/components/ToggleButton/ToggleButton.types.d.ts +1 -1
  187. package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +1 -0
  188. package/dist/components/Tooltip/Tooltip.js +1 -1
  189. package/dist/components/Tooltip/Tooltip.types.d.ts +2 -2
  190. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +18 -4
  191. package/dist/components/Tooltip/tests/Tooltip.stories.js +139 -107
  192. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +0 -6
  193. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +0 -29
  194. package/dist/components/View/View.js +11 -4
  195. package/dist/components/View/tests/View.stories.d.ts +4 -0
  196. package/dist/components/View/tests/View.stories.js +39 -0
  197. package/dist/components/_private/Expandable/Expandable.js +3 -1
  198. package/dist/components/_private/Portal/Portal.js +4 -1
  199. package/dist/hooks/_private/useIsDismissible.d.ts +1 -0
  200. package/dist/hooks/_private/useIsDismissible.js +6 -6
  201. package/dist/hooks/_private/usePrevious.js +1 -0
  202. package/dist/hooks/tests/useDrag.stories.js +1 -1
  203. package/dist/hooks/useScrollLock.js +5 -3
  204. package/dist/index.d.ts +1 -1
  205. package/dist/styles/resolvers/align/align.css +1 -1
  206. package/dist/styles/resolvers/aspectRatio/aspectRatio.css +1 -1
  207. package/dist/styles/resolvers/bleed/bleed.module.css +1 -1
  208. package/dist/styles/resolvers/justify/justify.css +1 -1
  209. package/dist/styles/resolvers/maxHeight/maxHeight.module.css +1 -1
  210. package/dist/styles/resolvers/maxWidth/maxWidth.module.css +1 -1
  211. package/dist/styles/resolvers/minHeight/minHeight.module.css +1 -1
  212. package/dist/styles/resolvers/minWidth/minWidth.module.css +1 -1
  213. package/dist/styles/resolvers/position/position.css +1 -1
  214. package/dist/styles/resolvers/textAlign/textAlign.css +1 -1
  215. package/dist/styles/resolvers/width/width.module.css +1 -1
  216. package/dist/utilities/scroll/disable.js +2 -2
  217. package/dist/utilities/scroll/index.d.ts +1 -1
  218. package/dist/utilities/scroll/index.js +1 -1
  219. package/dist/utilities/scroll/lock.d.ts +1 -2
  220. package/dist/utilities/scroll/lock.js +16 -15
  221. package/dist/utilities/scroll/lockSafari.js +1 -0
  222. package/package.json +23 -23
  223. package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +0 -32
  224. package/dist/components/Actionable/tests/Actionable.test.stories.js +0 -130
  225. package/dist/components/Alert/tests/Alert.test.stories.d.ts +0 -15
  226. package/dist/components/Alert/tests/Alert.test.stories.js +0 -26
  227. package/dist/components/Badge/tests/Badge.test.stories.d.ts +0 -20
  228. package/dist/components/Badge/tests/Badge.test.stories.js +0 -46
  229. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +0 -23
  230. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +0 -76
  231. package/dist/components/Button/tests/Button.test.stories.d.ts +0 -27
  232. package/dist/components/Button/tests/Button.test.stories.js +0 -112
  233. package/dist/components/Card/tests/Card.test.stories.d.ts +0 -35
  234. package/dist/components/Card/tests/Card.test.stories.js +0 -54
  235. package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +0 -25
  236. package/dist/components/Checkbox/tests/Checkbox.test.stories.js +0 -104
  237. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +0 -22
  238. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +0 -78
  239. package/dist/components/Container/tests/Container.test.stories.d.ts +0 -15
  240. package/dist/components/Container/tests/Container.test.stories.js +0 -26
  241. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +0 -25
  242. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +0 -53
  243. package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +0 -19
  244. package/dist/components/Dismissible/tests/Dismissible.test.stories.js +0 -42
  245. package/dist/components/Divider/tests/Divider.test.stories.d.ts +0 -18
  246. package/dist/components/Divider/tests/Divider.test.stories.js +0 -47
  247. package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +0 -20
  248. package/dist/components/FormControl/tests/FormControl.test.stories.js +0 -49
  249. package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +0 -15
  250. package/dist/components/Hidden/tests/Hidden.test.stories.js +0 -20
  251. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +0 -15
  252. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +0 -20
  253. package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +0 -15
  254. package/dist/components/Hotkey/tests/Hotkey.test.stories.js +0 -26
  255. package/dist/components/Icon/tests/Icon.test.stories.d.ts +0 -16
  256. package/dist/components/Icon/tests/Icon.test.stories.js +0 -35
  257. package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +0 -26
  258. package/dist/components/MenuItem/tests/MenuItem.test.stories.js +0 -100
  259. package/dist/components/Modal/tests/Modal.test.stories.d.ts +0 -31
  260. package/dist/components/Modal/tests/Modal.test.stories.js +0 -149
  261. package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +0 -28
  262. package/dist/components/Overlay/tests/Overlay.test.stories.js +0 -148
  263. package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +0 -23
  264. package/dist/components/Pagination/tests/Pagination.test.stories.js +0 -86
  265. package/dist/components/Progress/tests/Progress.test.stories.d.ts +0 -16
  266. package/dist/components/Progress/tests/Progress.test.stories.js +0 -35
  267. package/dist/components/Radio/tests/Radio.test.stories.d.ts +0 -30
  268. package/dist/components/Radio/tests/Radio.test.stories.js +0 -118
  269. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +0 -22
  270. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +0 -78
  271. package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +0 -15
  272. package/dist/components/Scrim/tests/Scrim.test.stories.js +0 -25
  273. package/dist/components/Select/tests/Select.test.stories.d.ts +0 -27
  274. package/dist/components/Select/tests/Select.test.stories.js +0 -132
  275. package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +0 -15
  276. package/dist/components/Skeleton/tests/Skeleton.test.stories.js +0 -23
  277. package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +0 -20
  278. package/dist/components/Stepper/tests/Stepper.test.stories.js +0 -28
  279. package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +0 -28
  280. package/dist/components/TextArea/tests/TextArea.test.stories.js +0 -99
  281. package/dist/components/Toast/tests/Toast.test.stories.d.ts +0 -16
  282. package/dist/components/Toast/tests/Toast.test.stories.js +0 -101
  283. package/dist/components/View/tests/View.test.stories.d.ts +0 -24
  284. package/dist/components/View/tests/View.test.stories.js +0 -50
@@ -4,6 +4,7 @@ import Icon from "../index.js";
4
4
  import Text from "../../Text/index.js";
5
5
  import IconZap from "../../../icons/Zap.js";
6
6
  import IconMic from "../../../icons/Mic.js";
7
+ import { expect } from "storybook/test";
7
8
  export default {
8
9
  title: "Utility components/Icon",
9
10
  component: Icon,
@@ -69,7 +70,7 @@ export const color = {
69
70
  </Example>),
70
71
  };
71
72
  export const autoWidth = {
72
- name: "autoWidth",
73
+ name: "autoWidth, blank",
73
74
  render: () => (<Example>
74
75
  <Example.Item title="square boundaries">
75
76
  <div style={{ background: "var(--rs-color-background-neutral)", display: "inline-block" }}>
@@ -81,5 +82,32 @@ export const autoWidth = {
81
82
  <Icon svg={IconMic} size={10} autoWidth/>
82
83
  </div>
83
84
  </Example.Item>
85
+ <Example.Item title="blank">
86
+ <div style={{ background: "var(--rs-color-background-neutral)", display: "inline-block" }}>
87
+ <Icon svg={null} size={10}/>
88
+ </div>
89
+ </Example.Item>
84
90
  </Example>),
85
91
  };
92
+ export const className = {
93
+ name: "className, attributes",
94
+ render: () => (<div data-testid="root">
95
+ <Icon svg={IconZap} className="test-classname" attributes={{ id: "test-id" }}/>
96
+ </div>),
97
+ play: async ({ canvas }) => {
98
+ const root = canvas.getByTestId("root").firstChild;
99
+ expect(root).toHaveClass("test-classname");
100
+ expect(root).toHaveAttribute("id", "test-id");
101
+ },
102
+ };
103
+ export const render = {
104
+ name: "test: hidden from sr",
105
+ render: () => (<div data-testid="root">
106
+ <Icon svg={IconZap}/>
107
+ </div>),
108
+ play: ({ canvas }) => {
109
+ const root = canvas.getByTestId("root").firstChild;
110
+ expect(root).toBeInTheDocument();
111
+ expect(root).toHaveAttribute("aria-hidden");
112
+ },
113
+ };
@@ -1,5 +1,5 @@
1
1
  import { type ActionableRef } from "../Actionable";
2
- declare const Link: import("react").ForwardRefExoticComponent<Pick<import("../Actionable").ActionableProps, "disabled" | "children" | "className" | "attributes" | "type" | "href" | "onClick" | "stopPropagation"> & {
2
+ declare const Link: import("react").ForwardRefExoticComponent<Pick<import("../Actionable").ActionableProps, "disabled" | "children" | "className" | "attributes" | "render" | "type" | "href" | "onClick" | "stopPropagation"> & {
3
3
  icon?: import("../Icon").IconProps["svg"];
4
4
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
5
5
  variant?: "plain" | "underline";
@@ -5,9 +5,9 @@ import Actionable from "../Actionable/index.js";
5
5
  import Icon from "../Icon/index.js";
6
6
  import s from "./Link.module.css";
7
7
  const Link = forwardRef((props, ref) => {
8
- const { icon, disabled, href, color = "primary", variant = "underline", className, children, attributes, type, onClick, stopPropagation, } = props;
8
+ const { icon, disabled, href, color = "primary", variant = "underline", className, children, attributes, type, onClick, stopPropagation, render, } = props;
9
9
  const rootClassNames = classNames(s.root, className, disabled && s["--disabled"], variant && s[`--variant-${variant}`], color && s[`--color-${color}`], icon && s["--with-icon"]);
10
- return (_jsxs(Actionable, { href: href, disabled: disabled, className: rootClassNames, attributes: attributes, type: type, onClick: onClick, ref: ref, stopPropagation: stopPropagation, children: [icon && _jsx(Icon, { svg: icon }), children] }));
10
+ return (_jsxs(Actionable, { href: href, disabled: disabled, className: rootClassNames, attributes: attributes, type: type, onClick: onClick, ref: ref, stopPropagation: stopPropagation, render: render, children: [icon && _jsx(Icon, { svg: icon }), children] }));
11
11
  });
12
12
  Link.displayName = "Link";
13
13
  export default Link;
@@ -1,6 +1,6 @@
1
1
  import type { ActionableProps } from "../Actionable";
2
2
  import type { IconProps } from "../Icon";
3
- export type Props = Pick<ActionableProps, "attributes" | "className" | "disabled" | "children" | "href" | "onClick" | "type" | "stopPropagation"> & {
3
+ export type Props = Pick<ActionableProps, "attributes" | "className" | "disabled" | "children" | "href" | "onClick" | "type" | "stopPropagation" | "render"> & {
4
4
  /** Icon at the start position */
5
5
  icon?: IconProps["svg"];
6
6
  /** Link color, based on the color tokens
@@ -1,6 +1,8 @@
1
+ import { fn } from "storybook/test";
2
+ import { StoryObj } from "@storybook/react-vite";
1
3
  declare const _default: {
2
4
  title: string;
3
- component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "type" | "onClick" | "href" | "stopPropagation"> & {
5
+ component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "render" | "type" | "onClick" | "href" | "stopPropagation"> & {
4
6
  icon?: import("../../Icon").IconProps["svg"];
5
7
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
6
8
  variant?: "plain" | "underline";
@@ -12,8 +14,29 @@ declare const _default: {
12
14
  };
13
15
  };
14
16
  export default _default;
15
- export declare const variant: () => import("react").JSX.Element;
16
- export declare const color: () => import("react").JSX.Element;
17
- export declare const disabled: () => import("react").JSX.Element;
18
- export declare const withIcon: () => import("react").JSX.Element;
19
- export declare const testMultilineInText: () => import("react").JSX.Element;
17
+ export declare const variant: {
18
+ name: string;
19
+ render: () => import("react").JSX.Element;
20
+ };
21
+ export declare const color: {
22
+ name: string;
23
+ render: () => import("react").JSX.Element;
24
+ };
25
+ export declare const icon: {
26
+ name: string;
27
+ render: () => import("react").JSX.Element;
28
+ };
29
+ export declare const href: StoryObj;
30
+ export declare const onClick: StoryObj<{
31
+ handleClick: ReturnType<typeof fn>;
32
+ }>;
33
+ export declare const hrefOnClick: StoryObj<{
34
+ handleClick: ReturnType<typeof fn>;
35
+ }>;
36
+ export declare const disabled: StoryObj;
37
+ export declare const render: StoryObj;
38
+ export declare const className: StoryObj;
39
+ export declare const testMultilineInText: {
40
+ name: string;
41
+ render: () => import("react").JSX.Element;
42
+ };
@@ -2,6 +2,7 @@ import { Example } from "../../../utilities/storybook/index.js";
2
2
  import Link from "../index.js";
3
3
  import Text from "../../Text/index.js";
4
4
  import IconZap from "../../../icons/Zap.js";
5
+ import { expect, fn, userEvent } from "storybook/test";
5
6
  export default {
6
7
  title: "Components/Link",
7
8
  component: Link,
@@ -11,62 +12,144 @@ export default {
11
12
  },
12
13
  },
13
14
  };
14
- export const variant = () => (<Example>
15
- <Example.Item title="variant: underline">
16
- <Link href="http://reshaped.so" attributes={{ target: "_blank" }}>
17
- Reshaped
18
- </Link>
19
- </Example.Item>
20
- <Example.Item title="variant: plain">
21
- <Link onClick={() => { }} variant="plain">
22
- Link
23
- </Link>
24
- </Example.Item>
25
- </Example>);
26
- export const color = () => (<Example>
27
- <Example.Item title="color: primary">
28
- <Link color="primary">Link</Link>
29
- </Example.Item>
30
- <Example.Item title="color: critical">
31
- <Link color="critical">Link</Link>
32
- </Example.Item>
33
- <Example.Item title="color: positive">
34
- <Link color="positive">Link</Link>
35
- </Example.Item>
36
- <Example.Item title="color: warning">
37
- <Link color="warning">Link</Link>
38
- </Example.Item>
39
- <Example.Item title="color: inherit">
40
- <Link color="inherit">Link</Link>
41
- </Example.Item>
42
- </Example>);
43
- export const disabled = () => (<Example>
44
- <Example.Item title="disabled">
45
- <Link disabled>Link</Link>
46
- </Example.Item>
47
- </Example>);
48
- export const withIcon = () => (<Example>
49
- <Example.Item title="icon, variant: underline">
50
- <Link icon={IconZap}>Link</Link>
51
- </Example.Item>
52
- <Example.Item title="icon, variant: plain">
53
- <Link icon={IconZap} variant="plain">
54
- Link
55
- </Link>
56
- </Example.Item>
57
- <Example.Item title={["icon, variant: underline", "should inherit display-1 size from the parent"]}>
58
- <Text variant="title-3">
59
- <Link icon={IconZap} variant="underline">
60
- Instant delivery
15
+ export const variant = {
16
+ name: "variant",
17
+ render: () => (<Example>
18
+ <Example.Item title="variant: underline">
19
+ <Link href="http://reshaped.so" attributes={{ target: "_blank" }}>
20
+ Reshaped
21
+ </Link>
22
+ </Example.Item>
23
+ <Example.Item title="variant: plain">
24
+ <Link onClick={() => { }} variant="plain">
25
+ Link
26
+ </Link>
27
+ </Example.Item>
28
+ </Example>),
29
+ };
30
+ export const color = {
31
+ name: "color",
32
+ render: () => (<Example>
33
+ <Example.Item title="color: primary">
34
+ <Link color="primary">Link</Link>
35
+ </Example.Item>
36
+ <Example.Item title="color: critical">
37
+ <Link color="critical">Link</Link>
38
+ </Example.Item>
39
+ <Example.Item title="color: positive">
40
+ <Link color="positive">Link</Link>
41
+ </Example.Item>
42
+ <Example.Item title="color: warning">
43
+ <Link color="warning">Link</Link>
44
+ </Example.Item>
45
+ <Example.Item title="color: inherit">
46
+ <Link color="inherit">Link</Link>
47
+ </Example.Item>
48
+ </Example>),
49
+ };
50
+ export const icon = {
51
+ name: "icon",
52
+ render: () => (<Example>
53
+ <Example.Item title="icon, variant: underline">
54
+ <Link icon={IconZap}>Link</Link>
55
+ </Example.Item>
56
+ <Example.Item title="icon, variant: plain">
57
+ <Link icon={IconZap} variant="plain">
58
+ Link
61
59
  </Link>
62
- </Text>
63
- </Example.Item>
64
- </Example>);
65
- export const testMultilineInText = () => (<Example>
66
- <Example.Item title="should wrap inside the text">
67
- <div>
68
- Someone asked me to write this text that is boring to ready for everyone and to add&nbsp;
69
- <Link href="/">this very very long link</Link> to it.
70
- </div>
71
- </Example.Item>
72
- </Example>);
60
+ </Example.Item>
61
+ <Example.Item title={["icon, variant: underline", "should inherit display-1 size from the parent"]}>
62
+ <Text variant="title-3">
63
+ <Link icon={IconZap} variant="underline">
64
+ Instant delivery
65
+ </Link>
66
+ </Text>
67
+ </Example.Item>
68
+ </Example>),
69
+ };
70
+ export const href = {
71
+ name: "href",
72
+ render: () => <Link href="https://reshaped.so">Trigger</Link>,
73
+ play: async ({ canvas }) => {
74
+ const el = canvas.getByRole("link");
75
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
76
+ },
77
+ };
78
+ export const onClick = {
79
+ name: "onClick",
80
+ args: {
81
+ handleClick: fn(),
82
+ },
83
+ render: (args) => <Link onClick={args.handleClick}>Trigger</Link>,
84
+ play: async ({ canvas, args }) => {
85
+ const { handleClick } = args;
86
+ const el = canvas.getAllByRole("button")[0];
87
+ await userEvent.click(el);
88
+ expect(el).toHaveAttribute("type", "button");
89
+ expect(handleClick).toHaveBeenCalledTimes(1);
90
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
91
+ },
92
+ };
93
+ export const hrefOnClick = {
94
+ name: "href + onClick",
95
+ args: {
96
+ handleClick: fn(),
97
+ },
98
+ render: (args) => (<Link onClick={(e) => {
99
+ e.preventDefault();
100
+ args.handleClick(e);
101
+ }} href="https://reshaped.so">
102
+ Trigger
103
+ </Link>),
104
+ play: async ({ canvas, args }) => {
105
+ const { handleClick } = args;
106
+ const el = canvas.getByRole("link");
107
+ await userEvent.click(el);
108
+ expect(el).toHaveAttribute("href", "https://reshaped.so");
109
+ expect(handleClick).toHaveBeenCalledTimes(1);
110
+ expect(handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: el }));
111
+ },
112
+ };
113
+ export const disabled = {
114
+ name: "disabled",
115
+ render: () => (<Link disabled onClick={() => { }}>
116
+ Trigger
117
+ </Link>),
118
+ play: async ({ canvas }) => {
119
+ const el = canvas.getAllByRole("button")[0];
120
+ expect(el).toBeDisabled();
121
+ },
122
+ };
123
+ export const render = {
124
+ name: "render",
125
+ render: () => <Link render={(props) => <section {...props}/>}>Trigger</Link>,
126
+ play: async ({ canvas }) => {
127
+ const el = canvas.getByText("Trigger");
128
+ expect(el).toBeInTheDocument();
129
+ expect(el.tagName).toBe("SECTION");
130
+ },
131
+ };
132
+ export const className = {
133
+ name: "className, attributes",
134
+ render: () => (<div data-testid="root">
135
+ <Link className="test-classname" attributes={{ id: "test-id" }}>
136
+ Trigger
137
+ </Link>
138
+ </div>),
139
+ play: async ({ canvas }) => {
140
+ const root = canvas.getByTestId("root").firstChild;
141
+ expect(root).toHaveClass("test-classname");
142
+ expect(root).toHaveAttribute("id", "test-id");
143
+ },
144
+ };
145
+ export const testMultilineInText = {
146
+ name: "test: multiline",
147
+ render: () => (<Example>
148
+ <Example.Item title="should wrap inside the text">
149
+ <div>
150
+ Someone asked me to write this text that is boring to ready for everyone and to add&nbsp;
151
+ <Link href="/">this very very long link</Link> to it.
152
+ </div>
153
+ </Example.Item>
154
+ </Example>),
155
+ };
@@ -1,8 +1,6 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- import { fn } from "storybook/test";
3
1
  declare const _default: {
4
2
  title: string;
5
- component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "type" | "onClick" | "href" | "stopPropagation"> & {
3
+ component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "render" | "type" | "onClick" | "href" | "stopPropagation"> & {
6
4
  icon?: import("../../Icon").IconProps["svg"];
7
5
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
8
6
  variant?: "plain" | "underline";
@@ -17,13 +15,3 @@ declare const _default: {
17
15
  };
18
16
  };
19
17
  export default _default;
20
- export declare const children: StoryObj;
21
- export declare const href: StoryObj;
22
- export declare const onClick: StoryObj<{
23
- handleClick: ReturnType<typeof fn>;
24
- }>;
25
- export declare const hrefOnClick: StoryObj<{
26
- handleClick: ReturnType<typeof fn>;
27
- }>;
28
- export declare const disabled: StoryObj;
29
- export declare const className: StoryObj;
@@ -1,4 +1,3 @@
1
- import { userEvent, expect, fn } from "storybook/test";
2
1
  import Link from "../index.js";
3
2
  export default {
4
3
  title: "Components/Link/tests",
@@ -10,78 +9,3 @@ export default {
10
9
  chromatic: { disableSnapshot: true },
11
10
  },
12
11
  };
13
- export const children = {
14
- name: "children",
15
- render: () => <Link>Trigger</Link>,
16
- play: async ({ canvas }) => {
17
- const el = canvas.getByText("Trigger");
18
- expect(el).toBeInTheDocument();
19
- expect(el.tagName).toBe("SPAN");
20
- },
21
- };
22
- export const href = {
23
- name: "href",
24
- render: () => <Link href="https://reshaped.so">Trigger</Link>,
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) => <Link onClick={args.handleClick}>Trigger</Link>,
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) => (<Link onClick={(e) => {
51
- e.preventDefault();
52
- args.handleClick(e);
53
- }} href="https://reshaped.so">
54
- Trigger
55
- </Link>),
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: () => (<Link disabled onClick={() => { }}>
68
- Trigger
69
- </Link>),
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
- <Link className="test-classname" attributes={{ id: "test-id" }}>
79
- Trigger
80
- </Link>
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
- };
@@ -1,3 +1,4 @@
1
+ import { StoryObj } from "@storybook/react-vite";
1
2
  declare const _default: {
2
3
  title: string;
3
4
  component: import("react").FC<import("./..").LoaderProps>;
@@ -8,5 +9,13 @@ declare const _default: {
8
9
  };
9
10
  };
10
11
  export default _default;
11
- export declare const size: () => import("react").JSX.Element;
12
- export declare const color: () => import("react").JSX.Element;
12
+ export declare const size: {
13
+ name: string;
14
+ render: () => import("react").JSX.Element;
15
+ };
16
+ export declare const color: {
17
+ name: string;
18
+ render: () => import("react").JSX.Element;
19
+ };
20
+ export declare const ariaLabel: StoryObj;
21
+ export declare const className: StoryObj;
@@ -1,5 +1,6 @@
1
1
  import { Example } from "../../../utilities/storybook/index.js";
2
2
  import Loader from "../index.js";
3
+ import { expect } from "storybook/test";
3
4
  export default {
4
5
  title: "Components/Loader",
5
6
  component: Loader,
@@ -9,33 +10,59 @@ export default {
9
10
  },
10
11
  },
11
12
  };
12
- export const size = () => {
13
- return (<Example>
14
- <Example.Item title="size: medium">
15
- <Loader size="medium" ariaLabel="Loading"/>
13
+ export const size = {
14
+ name: "size",
15
+ render: () => {
16
+ return (<Example>
17
+ <Example.Item title="size: medium">
18
+ <Loader size="medium" ariaLabel="Loading"/>
19
+ </Example.Item>
20
+ <Example.Item title="size: small">
21
+ <Loader size="small" ariaLabel="Loading"/>
22
+ </Example.Item>
23
+ <Example.Item title="size: large">
24
+ <Loader size="large" ariaLabel="Loading"/>
25
+ </Example.Item>
26
+ <Example.Item title={["responsive size", "[s] small", "[m+] medium"]}>
27
+ <Loader size={{ s: "small", m: "medium" }} ariaLabel="Loading"/>
28
+ </Example.Item>
29
+ </Example>);
30
+ },
31
+ };
32
+ export const color = {
33
+ name: "color",
34
+ render: () => (<Example>
35
+ <Example.Item title="color: primary">
36
+ <Loader ariaLabel="Loading"/>
16
37
  </Example.Item>
17
- <Example.Item title="size: small">
18
- <Loader size="small" ariaLabel="Loading"/>
38
+ <Example.Item title="color: critical">
39
+ <Loader color="critical" ariaLabel="Loading"/>
19
40
  </Example.Item>
20
- <Example.Item title="size: large">
21
- <Loader size="large" ariaLabel="Loading"/>
41
+ <Example.Item title="color: positive">
42
+ <Loader color="positive" ariaLabel="Loading"/>
22
43
  </Example.Item>
23
- <Example.Item title={["responsive size", "[s] small", "[m+] medium"]}>
24
- <Loader size={{ s: "small", m: "medium" }} ariaLabel="Loading"/>
44
+ <Example.Item title="color: inherit">
45
+ <Loader color="inherit" ariaLabel="Loading"/>
25
46
  </Example.Item>
26
- </Example>);
47
+ </Example>),
48
+ };
49
+ export const ariaLabel = {
50
+ name: "ariaLabel",
51
+ render: () => <Loader ariaLabel="Loading" attributes={{ "data-testid": "root" }}/>,
52
+ play: async ({ canvas }) => {
53
+ const root = canvas.getByTestId("root");
54
+ expect(root).toHaveAttribute("aria-live", "assertive");
55
+ expect(root).toHaveAttribute("aria-label", "Loading");
56
+ },
57
+ };
58
+ export const className = {
59
+ name: "className, attributes",
60
+ render: () => (<div data-testid="root">
61
+ <Loader className="test-classname" attributes={{ id: "test-id" }} ariaLabel="Loading"/>
62
+ </div>),
63
+ play: async ({ canvas }) => {
64
+ const root = canvas.getByTestId("root").firstChild;
65
+ expect(root).toHaveClass("test-classname");
66
+ expect(root).toHaveAttribute("id", "test-id");
67
+ },
27
68
  };
28
- export const color = () => (<Example>
29
- <Example.Item title="color: primary">
30
- <Loader ariaLabel="Loading"/>
31
- </Example.Item>
32
- <Example.Item title="color: critical">
33
- <Loader color="critical" ariaLabel="Loading"/>
34
- </Example.Item>
35
- <Example.Item title="color: positive">
36
- <Loader color="positive" ariaLabel="Loading"/>
37
- </Example.Item>
38
- <Example.Item title="color: inherit">
39
- <Loader color="inherit" ariaLabel="Loading"/>
40
- </Example.Item>
41
- </Example>);
@@ -1,4 +1,3 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
1
  declare const _default: {
3
2
  title: string;
4
3
  component: import("react").FC<import("./..").LoaderProps>;
@@ -12,5 +11,3 @@ declare const _default: {
12
11
  };
13
12
  };
14
13
  export default _default;
15
- export declare const ariaLabel: StoryObj;
16
- export declare const className: StoryObj;
@@ -1,4 +1,3 @@
1
- import { expect } from "storybook/test";
2
1
  import Loader from "../index.js";
3
2
  export default {
4
3
  title: "Components/Loader/tests",
@@ -10,23 +9,3 @@ export default {
10
9
  chromatic: { disableSnapshot: true },
11
10
  },
12
11
  };
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
- };
@@ -7,11 +7,11 @@ import View from "../View/index.js";
7
7
  import MenuItemAligner from "./MenuItemAligner.js";
8
8
  import s from "./MenuItem.module.css";
9
9
  const MenuItem = forwardRef((props, ref) => {
10
- const { icon, startSlot, endSlot, children, color = "primary", selected, highlighted, disabled, onClick, href, size = "medium", roundedCorners, stopPropagation, as, className, attributes, } = props;
10
+ const { icon, startSlot, endSlot, children, color = "primary", selected, highlighted, disabled, onClick, href, size = "medium", roundedCorners, stopPropagation, as, render, className, attributes, } = props;
11
11
  const rootClassNames = classNames(s.root, className, responsiveClassNames(s, "--size", size), responsiveClassNames(s, "--rounded-corners", roundedCorners), color && s[`--color-${color}`], selected && s["--selected"], disabled && s["--disabled"], highlighted && s["--highlighted"]);
12
12
  const gapSize = responsivePropDependency(size, (size) => (size === "large" ? 3 : 2));
13
13
  const iconSize = responsivePropDependency(size, (size) => (size === "large" ? 5 : 4));
14
- return (_jsx(Actionable, { disabled: disabled, className: rootClassNames, attributes: { ...attributes, "data-rs-aligner-target": true }, onClick: onClick, href: href, ref: ref, as: as, stopPropagation: stopPropagation, children: _jsxs(View, { direction: "row", gap: gapSize, align: "center", children: [icon && _jsx(Icon, { svg: icon, className: s.icon, size: iconSize }), !icon && startSlot, children && (_jsx(View.Item, { grow: true, className: s.content, children: children })), endSlot] }) }));
14
+ return (_jsx(Actionable, { disabled: disabled, className: rootClassNames, attributes: { ...attributes, "data-rs-aligner-target": true }, onClick: onClick, href: href, ref: ref, as: as, stopPropagation: stopPropagation, render: render, children: _jsxs(View, { direction: "row", gap: gapSize, align: "center", children: [icon && _jsx(Icon, { svg: icon, className: s.icon, size: iconSize }), !icon && startSlot, children && (_jsx(View.Item, { grow: true, className: s.content, children: children })), endSlot] }) }));
15
15
  });
16
16
  MenuItem.Aligner = MenuItemAligner;
17
17
  MenuItem.displayName = "MenuItem";
@@ -1 +1 @@
1
- .root,button.root{background-color:var(--rs-menu-item-bg-color);color:var(--rs-menu-item-color);display:block;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-medium);padding:var(--rs-p-v) var(--rs-p-h);transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:background-color,transform,box-shadow}.icon{color:var(--rs-menu-item-icon-color,inherit)}.content,.icon{transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:color}.--rounded-corners{border-radius:var(--rs-menu-item-radius)}.--size-small{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium,.--size-small{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--color-neutral{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-neutral.--highlighted,.--color-neutral.--selected,.--color-neutral[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}@media (hover:hover) and (pointer:fine){.--color-neutral:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}}.--color-critical{--rs-menu-item-color:var(--rs-color-foreground-critical)}.--color-critical.--highlighted,.--color-critical.--selected,.--color-critical[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-critical),12%)}@media (hover:hover) and (pointer:fine){.--color-critical:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-critical),12%)}}.--color-primary{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-primary.--highlighted,.--color-primary[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}@media (hover:hover) and (pointer:fine){.--color-primary:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}}.--color-primary.--selected,.--color-primary.--selected:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-primary),12%);--rs-menu-item-color:var(--rs-color-foreground-primary);--rs-menu-item-icon-color:var(--rs-color-foreground-primary)}.--selected,.--selected:hover{cursor:default}.--disabled,.--disabled:hover{--rs-menu-item-color:var(--rs-color-foreground-disabled);--rs-menu-item-bg-color:none;--rs-menu-item-icon-color:var(--rs-color-foreground-disabled)}button.root{width:100%}.aligner button.root{box-sizing:initial}@media (--rs-viewport-m ){.--rounded-corners-true--m{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--m{border-radius:0}.--size-small--m{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--m,.--size-small--m{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--m{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--m{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--rounded-corners-true--l{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--l{border-radius:0}.--size-small--l{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--l,.--size-small--l{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--l{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--l{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--rounded-corners-true--xl{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--xl{border-radius:0}.--size-small--xl{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--xl,.--size-small--xl{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--xl{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--xl{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}
1
+ .root,button.root{background-color:var(--rs-menu-item-bg-color);color:var(--rs-menu-item-color);display:block;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-medium);padding:var(--rs-p-v) var(--rs-p-h);transition:background-color var(--rs-duration-fast) var(--rs-easing-standard)}.root[role=option],button.root[role=option]{transition:none}[data-rs-keyboard] .root[role=option]:focus,[data-rs-keyboard] button.root[role=option]:focus{background-color:rgba(var(--rs-color-rgb-background-neutral),32%);box-shadow:none}.icon{color:var(--rs-menu-item-icon-color,inherit)}.content,.icon{transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:color}.--rounded-corners{border-radius:var(--rs-menu-item-radius)}.--size-small{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium,.--size-small{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--color-neutral{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-neutral.--highlighted,.--color-neutral.--selected,.--color-neutral[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}@media (hover:hover) and (pointer:fine){.--color-neutral:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}}.--color-critical{--rs-menu-item-color:var(--rs-color-foreground-critical)}.--color-critical.--highlighted,.--color-critical.--selected,.--color-critical[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-critical),12%)}@media (hover:hover) and (pointer:fine){.--color-critical:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-critical),12%)}}.--color-primary{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-primary.--highlighted,.--color-primary[data-rs-focus]{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}@media (hover:hover) and (pointer:fine){.--color-primary:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-neutral),32%)}}.--color-primary.--selected,.--color-primary.--selected:hover{--rs-menu-item-bg-color:rgba(var(--rs-color-rgb-background-primary),12%);--rs-menu-item-color:var(--rs-color-foreground-primary);--rs-menu-item-icon-color:var(--rs-color-foreground-primary)}.--selected,.--selected:hover{cursor:default}.--disabled,.--disabled:hover{--rs-menu-item-color:var(--rs-color-foreground-disabled);--rs-menu-item-bg-color:none;--rs-menu-item-icon-color:var(--rs-color-foreground-disabled)}button.root{width:100%}.aligner button.root{box-sizing:initial}@media (--rs-viewport-m ){.--rounded-corners-true--m{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--m{border-radius:0}.--size-small--m{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--m,.--size-small--m{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--m{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--m{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--rounded-corners-true--l{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--l{border-radius:0}.--size-small--l{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--l,.--size-small--l{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--l{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--l{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--rounded-corners-true--xl{border-radius:var(--rs-menu-item-radius)}.--rounded-corners-false--xl{border-radius:0}.--size-small--xl{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small)}.--size-medium--xl,.--size-small--xl{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-medium--xl{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-small)}.--size-large--xl{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}