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
@@ -6,6 +6,8 @@ import Image from "../../Image/index.js";
6
6
  import Text from "../../Text/index.js";
7
7
  import Dismissible from "../../Dismissible/index.js";
8
8
  import IconZap from "../../../icons/Zap.js";
9
+ import { expect, userEvent, waitFor, within } from "storybook/test";
10
+ import { sleep } from "../../../utilities/helpers.js";
9
11
  export default {
10
12
  title: "Components/Toast",
11
13
  parameters: {
@@ -14,27 +16,6 @@ export default {
14
16
  },
15
17
  },
16
18
  };
17
- const Base = () => {
18
- const toast = useToast();
19
- return (<Button onClick={() => {
20
- const id = toast.show({
21
- icon: IconZap,
22
- title: "Hey!",
23
- text: "Event completed",
24
- actionsSlot: [
25
- <Button onClick={() => toast.hide(id)}>Undo</Button>,
26
- <Button onClick={() => toast.hide(id)}>Show</Button>,
27
- ],
28
- });
29
- }}>
30
- Show toast
31
- </Button>);
32
- };
33
- export const base = () => (<Example>
34
- <Example.Item title="title, children, icon, actions">
35
- <Base />
36
- </Example.Item>
37
- </Example>);
38
19
  const Size = () => {
39
20
  const toast = useToast();
40
21
  const props = {
@@ -67,7 +48,7 @@ const Size = () => {
67
48
  </Example.Item>
68
49
  </Example>);
69
50
  };
70
- export const size = () => <Size />;
51
+ export const size = { name: "size", render: () => <Size /> };
71
52
  const Position = () => {
72
53
  const toast = useToast();
73
54
  return (<Example>
@@ -134,7 +115,7 @@ const Position = () => {
134
115
  </Example.Item>
135
116
  </Example>);
136
117
  };
137
- export const position = () => <Position />;
118
+ export const position = { name: "position", render: () => <Position /> };
138
119
  const Color = () => {
139
120
  const toast = useToast();
140
121
  return (<Example>
@@ -236,7 +217,7 @@ const Color = () => {
236
217
  </Example.Item>
237
218
  </Example>);
238
219
  };
239
- export const color = () => <Color />;
220
+ export const color = { name: "color", render: () => <Color /> };
240
221
  const Timeout = () => {
241
222
  const toast = useToast();
242
223
  return (<Example>
@@ -272,7 +253,7 @@ const Timeout = () => {
272
253
  </Example.Item>
273
254
  </Example>);
274
255
  };
275
- export const timeout = () => <Timeout />;
256
+ export const timeout = { name: "timeout", render: () => <Timeout /> };
276
257
  const Expanded = () => {
277
258
  const toast = useToast();
278
259
  return (<Example>
@@ -288,7 +269,7 @@ const Expanded = () => {
288
269
  </Example.Item>
289
270
  </Example>);
290
271
  };
291
- export const regionOptions = () => <Expanded />;
272
+ export const regionOptions = { name: "expanded", render: () => <Expanded /> };
292
273
  const Slots = () => {
293
274
  const toast = useToast();
294
275
  return (<Example>
@@ -323,7 +304,97 @@ const Slots = () => {
323
304
  </Example.Item>
324
305
  </Example>);
325
306
  };
326
- export const slots = () => <Slots />;
307
+ export const slots = { name: "slots", render: () => <Slots /> };
308
+ export const base = {
309
+ name: "base",
310
+ render: () => {
311
+ const toast = useToast();
312
+ return (<Button onClick={() => {
313
+ const id = toast.show({
314
+ title: "Title",
315
+ text: "Text",
316
+ children: "Children",
317
+ startSlot: "Slot",
318
+ actionsSlot: (<Button attributes={{ "data-testid": "trigger-id" }} onClick={() => toast.hide(id)}>
319
+ Trigger
320
+ </Button>),
321
+ });
322
+ }}>
323
+ Show toast
324
+ </Button>);
325
+ },
326
+ play: async ({ canvasElement }) => {
327
+ const canvas = within(canvasElement.ownerDocument.body);
328
+ const button = canvas.getAllByRole("button")[0];
329
+ await userEvent.click(button);
330
+ const title = canvas.getByText("Title");
331
+ const text = canvas.getByText("Text");
332
+ const children = canvas.getByText("Children");
333
+ const slot = canvas.getByText("Slot");
334
+ const action = canvas.getByTestId("trigger-id");
335
+ expect(title).toBeInTheDocument();
336
+ expect(text).toBeInTheDocument();
337
+ expect(children).toBeInTheDocument();
338
+ expect(slot).toBeInTheDocument();
339
+ expect(action).toBeInTheDocument();
340
+ await userEvent.click(action);
341
+ await sleep(600);
342
+ await waitFor(() => {
343
+ expect(title).not.toBeInTheDocument();
344
+ });
345
+ },
346
+ };
347
+ const NestedDemo = () => {
348
+ const toast = useToast();
349
+ return (<Button onClick={() => {
350
+ toast.show({
351
+ text: "Content",
352
+ });
353
+ }}>
354
+ Show toast
355
+ </Button>);
356
+ };
357
+ export const nested = {
358
+ name: "ToastProvider",
359
+ render: () => {
360
+ return (<div data-testid="test-container-id">
361
+ <ToastProvider>
362
+ <NestedDemo />
363
+ </ToastProvider>
364
+ </div>);
365
+ },
366
+ play: async ({ canvasElement }) => {
367
+ const canvas = within(canvasElement.ownerDocument.body);
368
+ const button = canvas.getAllByRole("button")[0];
369
+ await userEvent.click(button);
370
+ const container = canvas.getByTestId("test-container-id");
371
+ const toast = within(container).getByText("Content");
372
+ expect(toast).toBeInTheDocument();
373
+ },
374
+ };
375
+ export const className = {
376
+ name: "className, attributes",
377
+ render: () => {
378
+ const toast = useToast();
379
+ return (<Button onClick={() => {
380
+ const id = toast.show({
381
+ text: "Content",
382
+ attributes: { "data-testid": "test-id" },
383
+ className: "test-classname",
384
+ });
385
+ }}>
386
+ Show toast
387
+ </Button>);
388
+ },
389
+ play: async ({ canvasElement }) => {
390
+ const canvas = within(canvasElement.ownerDocument.body);
391
+ const button = canvas.getAllByRole("button")[0];
392
+ await userEvent.click(button);
393
+ const toast = canvas.getByTestId("test-id");
394
+ expect(toast).toBeInTheDocument();
395
+ expect(toast).toHaveClass("test-classname");
396
+ },
397
+ };
327
398
  const Multiline = () => {
328
399
  const toast = useToast();
329
400
  return (<Button onClick={() => {
@@ -346,13 +417,16 @@ const Nested = () => {
346
417
  </Button>
347
418
  </View>);
348
419
  };
349
- export const edgeCases = () => (<Example>
350
- <Example.Item title="Multiline, should support dynamic height">
351
- <Multiline />
352
- </Example.Item>
353
- <Example.Item title="Nested ToastProvider">
354
- <ToastProvider>
355
- <Nested />
356
- </ToastProvider>
357
- </Example.Item>
358
- </Example>);
420
+ export const edgeCases = {
421
+ name: "test: edge cases",
422
+ render: () => (<Example>
423
+ <Example.Item title="Multiline, should support dynamic height">
424
+ <Multiline />
425
+ </Example.Item>
426
+ <Example.Item title="Nested ToastProvider">
427
+ <ToastProvider>
428
+ <Nested />
429
+ </ToastProvider>
430
+ </Example.Item>
431
+ </Example>),
432
+ };
@@ -1,9 +1,13 @@
1
1
  import type { ButtonProps } from "../Button";
2
- type BaseProps = Omit<ButtonProps, "variant" | "higlighted"> & {
2
+ type BaseProps = Omit<ButtonProps, "variant" | "highlighted"> & {
3
3
  /** Component render variant
4
4
  * @default "outline"
5
5
  */
6
6
  variant?: ButtonProps["variant"];
7
+ /** Component color scheme when selected
8
+ * @default "neutral"
9
+ */
10
+ selectedColor?: ButtonProps["color"];
7
11
  /** Value of the toggle button, enables controlled mode for the ToggleButtonGroup */
8
12
  value?: string;
9
13
  /** Callback when the toggle button value changes */
@@ -3,9 +3,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import Button from "../Button/index.js";
4
4
  import { useToggleButtonGroup } from "../ToggleButtonGroup/index.js";
5
5
  const ToggleButtonControlled = (props) => {
6
- const { variant = "outline", value, onChange, onClick, ...buttonProps } = props;
6
+ const { variant = "outline", selectedColor, value, onChange, onClick, color: buttonColor, ...buttonProps } = props;
7
7
  const toggleButtonGroup = useToggleButtonGroup();
8
8
  const checked = (value ? toggleButtonGroup?.value?.includes(value) : undefined) ?? props.checked;
9
+ const color = (checked && (selectedColor || toggleButtonGroup?.selectedColor)) ||
10
+ buttonColor ||
11
+ toggleButtonGroup?.color;
9
12
  const handleClick = (event) => {
10
13
  const changeArgs = { checked: !checked, value: value ?? "", event };
11
14
  onClick?.(event);
@@ -16,7 +19,11 @@ const ToggleButtonControlled = (props) => {
16
19
  onChange?.(changeArgs);
17
20
  }
18
21
  };
19
- return (_jsx(Button, { ...buttonProps, variant: variant, onClick: handleClick, highlighted: checked, attributes: { ...buttonProps.attributes, "aria-pressed": checked } }));
22
+ return (_jsx(Button, { ...buttonProps, color: color, variant: variant, onClick: handleClick, highlighted: checked, attributes: {
23
+ ...buttonProps.attributes,
24
+ "aria-pressed": checked,
25
+ tabIndex: toggleButtonGroup?.value?.length ? (checked ? 0 : -1) : undefined,
26
+ } }));
20
27
  };
21
28
  ToggleButtonControlled.displayName = "ToggleButtonControlled";
22
29
  export default ToggleButtonControlled;
@@ -14,6 +14,10 @@ export declare const variant: {
14
14
  name: string;
15
15
  render: () => import("react").JSX.Element;
16
16
  };
17
+ export declare const selectedColor: {
18
+ name: string;
19
+ render: () => import("react").JSX.Element;
20
+ };
17
21
  export declare const onChange: StoryObj<{
18
22
  handleUncontrolledChange: Mock;
19
23
  handleControlledChange: Mock;
@@ -21,6 +21,16 @@ export const variant = {
21
21
  </Example.Item>
22
22
  </Example>),
23
23
  };
24
+ export const selectedColor = {
25
+ name: "selectedColor",
26
+ render: () => (<Example>
27
+ <Example.Item title="selectedColor: primary">
28
+ <ToggleButton selectedColor="primary" defaultChecked>
29
+ Button
30
+ </ToggleButton>
31
+ </Example.Item>
32
+ </Example>),
33
+ };
24
34
  export const onChange = {
25
35
  name: "checked, defaultChecked, onChange",
26
36
  args: {
@@ -6,6 +6,14 @@ type BaseProps = {
6
6
  * @default "single"
7
7
  */
8
8
  selectionMode?: "single" | "multiple";
9
+ /** Component color scheme applied to each button
10
+ * @default "neutral"
11
+ */
12
+ color?: ToggleButtonProps["color"];
13
+ /** Component color scheme for the selected button
14
+ * @default "neutral"
15
+ */
16
+ selectedColor?: ToggleButtonProps["selectedColor"];
9
17
  /** Callback when the toggle button group value changes */
10
18
  onChange?: (args: {
11
19
  value: string[];
@@ -27,6 +35,8 @@ export type UncontrolledProps = BaseProps & {
27
35
  export type Props = ControlledProps | UncontrolledProps;
28
36
  export type Context = {
29
37
  onChange: ToggleButtonProps["onChange"];
38
+ selectedColor?: ToggleButtonProps["selectedColor"];
39
+ color?: ToggleButtonProps["color"];
30
40
  value?: string[];
31
41
  };
32
42
  export {};
@@ -2,33 +2,11 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React from "react";
4
4
  import Button from "../Button/index.js";
5
- import useHotkeys from "../../hooks/useHotkeys.js";
6
5
  import Context from "./ToggleButtonGroup.context.js";
7
- import { focusFirstElement, focusLastElement, focusNextElement, focusPreviousElement, } from "../../utilities/a11y/index.js";
8
- import ToggleButton from "../ToggleButton/index.js";
9
- const ToggleButtonGroupItem = (props) => {
10
- const { focusable, onFocus, ...buttonProps } = props;
11
- return (_jsx(ToggleButton, { ...buttonProps, attributes: {
12
- ...buttonProps.attributes,
13
- tabIndex: focusable ? 0 : -1,
14
- onFocus,
15
- } }));
16
- };
6
+ import useKeyboardArrowNavigation from "../../hooks/useKeyboardArrowNavigation.js";
17
7
  const ToggleButtonGroupControlled = (props) => {
18
- const { onChange, value, selectionMode = "single", children, ...buttonGroupProps } = props;
19
- const focusableIndexRef = React.useRef(0);
20
- let toggleButtonIndex = 0;
21
- const renderedChildren = React.Children.map(children, (child) => {
22
- if (!React.isValidElement(child) || child.type !== ToggleButton || !child.props) {
23
- return child;
24
- }
25
- const boundIndex = toggleButtonIndex;
26
- toggleButtonIndex += 1;
27
- const focusable = focusableIndexRef.current === boundIndex;
28
- return (_jsx(ToggleButtonGroupItem, { ...child.props, focusable: focusable, onFocus: () => {
29
- focusableIndexRef.current = boundIndex;
30
- } }));
31
- });
8
+ const { onChange, value, selectionMode = "single", children, color, selectedColor, ...buttonGroupProps } = props;
9
+ const rootRef = React.useRef(null);
32
10
  const handleChange = (args) => {
33
11
  const { event, value: itemValue, checked } = args;
34
12
  if (!itemValue)
@@ -45,23 +23,10 @@ const ToggleButtonGroupControlled = (props) => {
45
23
  if (onChange)
46
24
  onChange({ value: nextValue, event });
47
25
  };
48
- const { ref: hotkeysRef } = useHotkeys({
49
- "ArrowLeft, ArrowUp": () => {
50
- focusPreviousElement(hotkeysRef.current);
51
- },
52
- "ArrowRight, ArrowDown": () => {
53
- focusNextElement(hotkeysRef.current);
54
- },
55
- Home: () => {
56
- focusFirstElement(hotkeysRef.current);
57
- },
58
- End: () => {
59
- focusLastElement(hotkeysRef.current);
60
- },
61
- }, [], {
62
- preventDefault: true,
26
+ useKeyboardArrowNavigation({
27
+ ref: rootRef,
63
28
  });
64
- return (_jsx(Context.Provider, { value: { onChange: handleChange, value }, children: _jsx(Button.Group, { ...buttonGroupProps, attributes: { ref: hotkeysRef, ...buttonGroupProps?.attributes }, children: renderedChildren }) }));
29
+ return (_jsx(Context.Provider, { value: { onChange: handleChange, value, selectedColor, color }, children: _jsx(Button.Group, { ...buttonGroupProps, attributes: { ref: rootRef, ...buttonGroupProps?.attributes }, children: children }) }));
65
30
  };
66
31
  ToggleButtonGroupControlled.displayName = "ToggleButtonGroupControlled";
67
32
  export default ToggleButtonGroupControlled;
@@ -19,4 +19,5 @@ export declare const multiple: StoryObj<{
19
19
  handleUncontrolledChange: Mock;
20
20
  handleControlledChange: Mock;
21
21
  }>;
22
+ export declare const selectedColor: StoryObj;
22
23
  export declare const className: StoryObj;
@@ -113,6 +113,23 @@ export const multiple = {
113
113
  });
114
114
  },
115
115
  };
116
+ export const selectedColor = {
117
+ name: "color,selectedColor",
118
+ render: () => (<Example>
119
+ <Example.Item title="selectedColor: primary">
120
+ <ToggleButtonGroup selectedColor="primary" defaultValue={["2"]}>
121
+ <ToggleButton value="1">Button</ToggleButton>
122
+ <ToggleButton value="2">Button</ToggleButton>
123
+ </ToggleButtonGroup>
124
+ </Example.Item>
125
+ <Example.Item title="color: primary, selectedColor: critical">
126
+ <ToggleButtonGroup color="primary" selectedColor="critical" defaultValue={["2"]}>
127
+ <ToggleButton value="1">Button</ToggleButton>
128
+ <ToggleButton value="2">Button</ToggleButton>
129
+ </ToggleButtonGroup>
130
+ </Example.Item>
131
+ </Example>),
132
+ };
116
133
  export const className = {
117
134
  name: "className, attributes",
118
135
  render: () => (<div data-testid="root">
@@ -7,7 +7,7 @@ import s from "./Tooltip.module.css";
7
7
  const Tooltip = (props) => {
8
8
  const { text, children, position = "bottom", color = "inverted", ...flyoutProps } = props;
9
9
  if (!text)
10
- return children({});
10
+ return children({ ref: null });
11
11
  return (_jsxs(Flyout, { ...flyoutProps, position: position, triggerType: "hover", groupTimeouts: true, children: [_jsx(Flyout.Trigger, { children: children }), _jsx(Flyout.Content, { children: _jsx(Theme, { colorMode: color, children: _jsx(Text, { variant: "caption-1", className: s.root, children: text }) }) })] }));
12
12
  };
13
13
  Tooltip.displayName = "Tooltip";
@@ -1,8 +1,8 @@
1
1
  import React from "react";
2
- import type { FlyoutProps, FlyoutTriggerProps } from "../Flyout";
2
+ import type { FlyoutProps, FlyoutTriggerAttributes } from "../Flyout";
3
3
  export type Props = Pick<FlyoutProps, "id" | "position" | "onOpen" | "onClose" | "active" | "disabled" | "disableContentHover" | "containerRef" | "contentGap" | "contentShift" | "originCoordinates" | "contentAttributes" | "contentClassName"> & {
4
4
  /** Node for inserting children */
5
- children: (attributes: Parameters<FlyoutTriggerProps["children"]>[0] | {}) => React.ReactNode;
5
+ children: (attributes: FlyoutTriggerAttributes) => React.ReactNode;
6
6
  /** Text content for the tooltip */
7
7
  text?: React.ReactNode;
8
8
  /** Color of the tooltip
@@ -1,3 +1,5 @@
1
+ import { fn } from "storybook/test";
2
+ import { StoryObj } from "@storybook/react-vite";
1
3
  declare const _default: {
2
4
  title: string;
3
5
  component: import("react").FC<import("./..").TooltipProps>;
@@ -8,7 +10,19 @@ declare const _default: {
8
10
  };
9
11
  };
10
12
  export default _default;
11
- export declare const position: () => import("react").JSX.Element;
12
- export declare const color: () => import("react").JSX.Element;
13
- export declare const controlled: () => import("react").JSX.Element;
14
- export declare const edgeCases: () => import("react").JSX.Element;
13
+ export declare const position: {
14
+ name: string;
15
+ render: () => import("react").JSX.Element;
16
+ };
17
+ export declare const color: {
18
+ name: string;
19
+ render: () => import("react").JSX.Element;
20
+ };
21
+ export declare const defaultActive: StoryObj<{
22
+ handleOpen: ReturnType<typeof fn>;
23
+ handleClose: ReturnType<typeof fn>;
24
+ }>;
25
+ export declare const edgeCases: {
26
+ name: string;
27
+ render: () => import("react").JSX.Element;
28
+ };