reshaped 3.6.0-canary.1 → 3.6.0-canary.3

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 (168) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.js +9 -9
  4. package/dist/components/Accordion/AccordionControlled.js +4 -4
  5. package/dist/components/Accordion/tests/Accordion.stories.d.ts +6 -6
  6. package/dist/components/Accordion/tests/Accordion.stories.js +1 -1
  7. package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +1 -1
  8. package/dist/components/ActionBar/tests/ActionBar.test.stories.js +1 -1
  9. package/dist/components/Actionable/tests/Actionable.stories.d.ts +1 -1
  10. package/dist/components/Actionable/tests/Actionable.stories.js +1 -1
  11. package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +2 -2
  12. package/dist/components/Actionable/tests/Actionable.test.stories.js +1 -1
  13. package/dist/components/Alert/tests/Alert.test.stories.d.ts +1 -1
  14. package/dist/components/Alert/tests/Alert.test.stories.js +1 -1
  15. package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +2 -2
  16. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +8 -7
  17. package/dist/components/Avatar/tests/Avatar.stories.d.ts +2 -2
  18. package/dist/components/Avatar/tests/Avatar.stories.js +1 -1
  19. package/dist/components/Badge/tests/Badge.stories.d.ts +2 -2
  20. package/dist/components/Badge/tests/Badge.stories.js +1 -1
  21. package/dist/components/Badge/tests/Badge.test.stories.d.ts +2 -2
  22. package/dist/components/Badge/tests/Badge.test.stories.js +1 -1
  23. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +2 -2
  24. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +1 -1
  25. package/dist/components/Button/tests/Button.test.stories.d.ts +2 -2
  26. package/dist/components/Button/tests/Button.test.stories.js +1 -1
  27. package/dist/components/Calendar/tests/Calendar.stories.d.ts +2 -2
  28. package/dist/components/Calendar/tests/Calendar.stories.js +1 -1
  29. package/dist/components/Card/tests/Card.test.stories.d.ts +2 -2
  30. package/dist/components/Card/tests/Card.test.stories.js +1 -1
  31. package/dist/components/Carousel/tests/Carousel.stories.d.ts +2 -2
  32. package/dist/components/Carousel/tests/Carousel.stories.js +1 -1
  33. package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +2 -2
  34. package/dist/components/Checkbox/tests/Checkbox.test.stories.js +1 -1
  35. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +2 -2
  36. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +1 -1
  37. package/dist/components/Container/tests/Container.test.stories.d.ts +1 -1
  38. package/dist/components/Container/tests/Container.test.stories.js +1 -1
  39. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +2 -2
  40. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +1 -1
  41. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +1 -1
  42. package/dist/components/Dismissible/tests/Dismissible.stories.js +1 -1
  43. package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +2 -2
  44. package/dist/components/Dismissible/tests/Dismissible.test.stories.js +1 -1
  45. package/dist/components/Divider/tests/Divider.test.stories.d.ts +1 -1
  46. package/dist/components/Divider/tests/Divider.test.stories.js +1 -1
  47. package/dist/components/DropdownMenu/DropdownMenu.js +13 -2
  48. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +2 -2
  49. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +1 -1
  50. package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +2 -2
  51. package/dist/components/FileUpload/tests/FileUpload.test.stories.js +1 -1
  52. package/dist/components/Flyout/Flyout.types.d.ts +4 -3
  53. package/dist/components/Flyout/FlyoutContent.js +8 -8
  54. package/dist/components/Flyout/FlyoutControlled.js +4 -1
  55. package/dist/components/Flyout/tests/Flyout.stories.d.ts +6 -2
  56. package/dist/components/Flyout/tests/Flyout.stories.js +24 -5
  57. package/dist/components/Flyout/useFlyout.js +13 -9
  58. package/dist/components/Flyout/utilities/flyout.js +4 -4
  59. package/dist/components/FormControl/tests/FormControl.stories.d.ts +1 -1
  60. package/dist/components/FormControl/tests/FormControl.stories.js +1 -1
  61. package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +1 -1
  62. package/dist/components/FormControl/tests/FormControl.test.stories.js +1 -1
  63. package/dist/components/Grid/tests/Grid.test.stories.d.ts +1 -1
  64. package/dist/components/Grid/tests/Grid.test.stories.js +1 -1
  65. package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +1 -1
  66. package/dist/components/Hidden/tests/Hidden.test.stories.js +1 -1
  67. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +1 -1
  68. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +1 -1
  69. package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +1 -1
  70. package/dist/components/Hotkey/tests/Hotkey.test.stories.js +1 -1
  71. package/dist/components/Icon/tests/Icon.test.stories.d.ts +1 -1
  72. package/dist/components/Icon/tests/Icon.test.stories.js +1 -1
  73. package/dist/components/Image/tests/Image.stories.d.ts +2 -2
  74. package/dist/components/Image/tests/Image.stories.js +1 -1
  75. package/dist/components/Link/tests/Link.test.stories.d.ts +2 -2
  76. package/dist/components/Link/tests/Link.test.stories.js +1 -1
  77. package/dist/components/Loader/tests/Loader.test.stories.d.ts +1 -1
  78. package/dist/components/Loader/tests/Loader.test.stories.js +1 -1
  79. package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +2 -2
  80. package/dist/components/MenuItem/tests/MenuItem.test.stories.js +1 -1
  81. package/dist/components/Modal/Modal.js +2 -2
  82. package/dist/components/Modal/Modal.module.css +1 -1
  83. package/dist/components/Modal/tests/Modal.test.stories.d.ts +2 -2
  84. package/dist/components/Modal/tests/Modal.test.stories.js +1 -1
  85. package/dist/components/NumberField/tests/NumberField.stories.d.ts +2 -2
  86. package/dist/components/NumberField/tests/NumberField.stories.js +1 -1
  87. package/dist/components/Overlay/Overlay.js +2 -2
  88. package/dist/components/Overlay/Overlay.module.css +1 -1
  89. package/dist/components/Overlay/Overlay.types.d.ts +1 -0
  90. package/dist/components/Overlay/tests/Overlay.stories.d.ts +1 -1
  91. package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
  92. package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +2 -2
  93. package/dist/components/Overlay/tests/Overlay.test.stories.js +1 -1
  94. package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +2 -2
  95. package/dist/components/Pagination/tests/Pagination.test.stories.js +1 -1
  96. package/dist/components/PinField/tests/PinField.test.stories.d.ts +2 -2
  97. package/dist/components/PinField/tests/PinField.test.stories.js +1 -1
  98. package/dist/components/Popover/tests/Popover.stories.d.ts +6 -2
  99. package/dist/components/Popover/tests/Popover.stories.js +44 -1
  100. package/dist/components/Progress/tests/Progress.test.stories.d.ts +1 -1
  101. package/dist/components/Progress/tests/Progress.test.stories.js +1 -1
  102. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +1 -1
  103. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +1 -1
  104. package/dist/components/Radio/tests/Radio.test.stories.d.ts +2 -2
  105. package/dist/components/Radio/tests/Radio.test.stories.js +1 -1
  106. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +2 -2
  107. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +1 -1
  108. package/dist/components/Reshaped/tests/Reshaped.stories.d.ts +1 -1
  109. package/dist/components/Reshaped/tests/Reshaped.stories.js +1 -1
  110. package/dist/components/Resizable/tests/Resizable.test.stories.d.ts +1 -1
  111. package/dist/components/Resizable/tests/Resizable.test.stories.js +1 -1
  112. package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +1 -1
  113. package/dist/components/Scrim/tests/Scrim.test.stories.js +1 -1
  114. package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +2 -2
  115. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +1 -1
  116. package/dist/components/Select/tests/Select.test.stories.d.ts +2 -2
  117. package/dist/components/Select/tests/Select.test.stories.js +1 -1
  118. package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +1 -1
  119. package/dist/components/Skeleton/tests/Skeleton.test.stories.js +1 -1
  120. package/dist/components/Slider/tests/Slider.stories.d.ts +2 -2
  121. package/dist/components/Slider/tests/Slider.stories.js +1 -1
  122. package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +1 -1
  123. package/dist/components/Stepper/tests/Stepper.test.stories.js +1 -1
  124. package/dist/components/Switch/tests/Switch.test.stories.d.ts +2 -2
  125. package/dist/components/Switch/tests/Switch.test.stories.js +1 -1
  126. package/dist/components/Table/tests/Table.test.stories.d.ts +1 -1
  127. package/dist/components/Table/tests/Table.test.stories.js +1 -1
  128. package/dist/components/Tabs/tests/Tabs.test.stories.d.ts +2 -2
  129. package/dist/components/Tabs/tests/Tabs.test.stories.js +1 -1
  130. package/dist/components/Text/tests/Text.test.stories.d.ts +1 -1
  131. package/dist/components/Text/tests/Text.test.stories.js +1 -1
  132. package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +2 -2
  133. package/dist/components/TextArea/tests/TextArea.test.stories.js +1 -1
  134. package/dist/components/TextField/tests/TextField.test.stories.d.ts +2 -2
  135. package/dist/components/TextField/tests/TextField.test.stories.js +1 -1
  136. package/dist/components/Theme/tests/Theme.test.stories.d.ts +1 -1
  137. package/dist/components/Theme/tests/Theme.test.stories.js +1 -1
  138. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +1 -1
  139. package/dist/components/Timeline/tests/Timeline.test.stories.js +1 -1
  140. package/dist/components/Toast/tests/Toast.test.stories.d.ts +1 -1
  141. package/dist/components/Toast/tests/Toast.test.stories.js +1 -1
  142. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +2 -2
  143. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +1 -1
  144. package/dist/components/View/tests/View.test.stories.d.ts +1 -1
  145. package/dist/components/View/tests/View.test.stories.js +1 -1
  146. package/dist/hooks/tests/useDrag.stories.d.ts +2 -2
  147. package/dist/hooks/tests/useDrag.stories.js +1 -1
  148. package/dist/hooks/tests/useElementId.stories.d.ts +1 -1
  149. package/dist/hooks/tests/useElementId.stories.js +1 -1
  150. package/dist/hooks/tests/useHandlerRef.stories.d.ts +2 -2
  151. package/dist/hooks/tests/useHandlerRef.stories.js +1 -1
  152. package/dist/hooks/tests/useHotkeys.stories.d.ts +2 -2
  153. package/dist/hooks/tests/useHotkeys.stories.js +1 -1
  154. package/dist/hooks/tests/useKeyboardMode.stories.d.ts +1 -1
  155. package/dist/hooks/tests/useKeyboardMode.stories.js +1 -1
  156. package/dist/hooks/tests/useOnClickOutside.stories.d.ts +2 -2
  157. package/dist/hooks/tests/useOnClickOutside.stories.js +1 -1
  158. package/dist/hooks/tests/useRTL.stories.d.ts +1 -1
  159. package/dist/hooks/tests/useRTL.stories.js +1 -1
  160. package/dist/hooks/tests/useScrollLock.stories.d.ts +1 -1
  161. package/dist/hooks/tests/useScrollLock.stories.js +1 -1
  162. package/dist/hooks/tests/useToggle.stories.d.ts +1 -1
  163. package/dist/hooks/tests/useToggle.stories.js +1 -1
  164. package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +1 -1
  165. package/dist/utilities/a11y/tests/TrapFocus.stories.js +1 -1
  166. package/dist/utilities/dom/find.d.ts +1 -1
  167. package/dist/utilities/dom/find.js +2 -2
  168. package/package.json +19 -23
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { createRoot } from "react-dom/client";
3
- import { userEvent, waitFor, within, expect, fn } from "@storybook/test";
3
+ import { userEvent, waitFor, within, expect, fn } from "storybook/test";
4
4
  import { Example } from "../../../utilities/storybook/index.js";
5
5
  import Reshaped from "../../Reshaped/index.js";
6
6
  import View from "../../View/index.js";
@@ -11,6 +11,7 @@ import TextField from "../../TextField/index.js";
11
11
  import Select from "../../Select/index.js";
12
12
  import Switch from "../../Switch/index.js";
13
13
  import { sleep } from "../../../utilities/helpers.js";
14
+ import Modal from "../../Modal/index.js";
14
15
  export default { title: "Utility components/Flyout" };
15
16
  const Content = (props) => (<div style={{
16
17
  background: "var(--rs-color-background-elevation-overlay)",
@@ -174,6 +175,9 @@ export const modes = {
174
175
  <Demo position="bottom-start" trapFocusMode="content-menu" text="content-menu">
175
176
  {modeContent}
176
177
  </Demo>
178
+ <Demo position="bottom-start" trapFocusMode={false} text="false">
179
+ {modeContent}
180
+ </Demo>
177
181
  </View>
178
182
  </Example.Item>
179
183
 
@@ -420,7 +424,7 @@ export const testShadowDom = {
420
424
  export const testInsideFixed = {
421
425
  name: "test: inside position fixed",
422
426
  render: () => (<React.Fragment>
423
- <View position="fixed" insetBottom={2} insetStart={2} insetEnd={2} backgroundColor="elevation-overlay" borderColor="neutral-faded" borderRadius="small" padding={4} zIndex={10} attributes={{ "data-testid": "container" }}>
427
+ <View position="fixed" insetBottom={2} insetStart={2} insetEnd={2} backgroundColor="elevation-overlay" borderColor="neutral-faded" borderRadius="small" padding={4} zIndex={10} attributes={{ "data-testid": "container" }} height={20}>
424
428
  <Demo defaultActive position="top-start"/>
425
429
  </View>
426
430
  <View paddingTop={18} gap={4}>
@@ -455,15 +459,30 @@ export const testInsideScrollable = {
455
459
  name: "test: inside scrollable",
456
460
  render: () => {
457
461
  const containerRef = React.useRef(null);
458
- return (<View padding={50}>
462
+ return (<View padding={20}>
459
463
  <View height={30} overflow="auto" backgroundColor="neutral-faded" borderRadius="small">
460
- <View height={50} attributes={{ ref: containerRef }} padding={4} paddingBottom={30}>
461
- <Demo position="start"/>
464
+ <View height={50} attributes={{ ref: containerRef }} padding={20} paddingBottom={30}>
465
+ <Demo position="bottom"/>
462
466
  </View>
463
467
  </View>
464
468
  </View>);
465
469
  },
466
470
  };
471
+ export const testInsideModal = {
472
+ name: "test: inside modal",
473
+ render: () => {
474
+ return (<Modal active position="end">
475
+ <View gap={4} align="start">
476
+ <Modal.Title>Title</Modal.Title>
477
+ <Demo position="bottom-start"/>
478
+ <View height={300} width={25} backgroundColor="neutral-faded"/>
479
+ <Demo position="start"/>
480
+ <View height={300} width={25} backgroundColor="neutral-faded"/>
481
+ <Demo position="bottom-start"/>
482
+ </View>
483
+ </Modal>);
484
+ },
485
+ };
467
486
  export const testDynamicBounds = {
468
487
  name: "test: auto position update",
469
488
  render: () => {
@@ -39,7 +39,7 @@ const flyoutReducer = (state, action) => {
39
39
  const useFlyout = (args) => {
40
40
  const { triggerElRef, flyoutElRef, triggerBounds, contentGap, contentShift, ...options } = args;
41
41
  const { position: defaultPosition = "bottom", fallbackPositions, width, container } = options;
42
- const lastUsedFallbackRef = React.useRef(defaultPosition);
42
+ const lastUsedPositionRef = React.useRef(defaultPosition);
43
43
  // Memo the array internally to avoid new arrays triggering useCallback
44
44
  const cachedFallbackPositions = React.useMemo(() => fallbackPositions,
45
45
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -62,28 +62,32 @@ const useFlyout = (args) => {
62
62
  const remove = React.useCallback(() => {
63
63
  dispatch({ type: "remove" });
64
64
  }, []);
65
- const handleFallback = React.useCallback((position) => {
66
- lastUsedFallbackRef.current = position;
65
+ const handlePosition = React.useCallback((position) => {
66
+ lastUsedPositionRef.current = position;
67
67
  }, []);
68
68
  const updatePosition = React.useCallback((options) => {
69
69
  if (!flyoutElRef.current)
70
70
  return;
71
+ const changePositon = options?.fallback !== false;
71
72
  const nextFlyoutData = flyout({
72
73
  triggerEl: triggerElRef.current,
73
74
  flyoutEl: flyoutElRef.current,
74
75
  triggerBounds,
75
76
  width,
76
- position: defaultPosition,
77
- fallbackPositions: cachedFallbackPositions,
78
- lastUsedFallback: lastUsedFallbackRef.current,
79
- onFallback: handleFallback,
77
+ position: changePositon ? defaultPosition : lastUsedPositionRef.current,
78
+ fallbackPositions: changePositon ? cachedFallbackPositions : [],
79
+ lastUsedPosition: lastUsedPositionRef.current,
80
+ onPositionChoose: handlePosition,
80
81
  rtl: isRTL,
81
82
  container,
82
83
  contentGap,
83
84
  contentShift,
84
85
  });
85
86
  if (nextFlyoutData) {
86
- dispatch({ type: "position", payload: { ...nextFlyoutData, sync: options?.sync } });
87
+ dispatch({
88
+ type: "position",
89
+ payload: { ...nextFlyoutData, sync: options?.sync },
90
+ });
87
91
  }
88
92
  }, [
89
93
  container,
@@ -96,7 +100,7 @@ const useFlyout = (args) => {
96
100
  width,
97
101
  contentGap,
98
102
  contentShift,
99
- handleFallback,
103
+ handlePosition,
100
104
  ]);
101
105
  React.useEffect(() => {
102
106
  if (state.status === "rendered")
@@ -7,7 +7,7 @@ import { resetStyles } from "../Flyout.constants.js";
7
7
  * Set position of the target element to fit on the screen
8
8
  */
9
9
  const flyout = (args) => {
10
- const { triggerEl, flyoutEl, triggerBounds: passedTriggerBounds, contentShift = 0, contentGap = 0, position, fallbackPositions, width, container: passedContainer, lastUsedFallback, onFallback, rtl, } = args;
10
+ const { triggerEl, flyoutEl, triggerBounds: passedTriggerBounds, contentShift = 0, contentGap = 0, position, fallbackPositions, width, container: passedContainer, lastUsedPosition, onPositionChoose, rtl, } = args;
11
11
  const targetClone = flyoutEl.cloneNode(true);
12
12
  const baseUnit = getComputedStyle(flyoutEl).getPropertyValue("--rs-unit-x1");
13
13
  const unitModifier = baseUnit ? parseInt(baseUnit) : 4;
@@ -63,10 +63,10 @@ const flyout = (args) => {
63
63
  container,
64
64
  });
65
65
  const validPosition = visible || fallbackPositions?.length === 0;
66
- // Saving first try in case non of the options work
67
- if (validPosition || lastUsedFallback === currentPosition) {
66
+ // Saving first try in case none of the options work
67
+ if (validPosition || lastUsedPosition === currentPosition) {
68
68
  calculated = tested;
69
- onFallback(currentPosition);
69
+ onPositionChoose(currentPosition);
70
70
  }
71
71
  return validPosition;
72
72
  });
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").FormControlProps> & {
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import { Example } from "../../../utilities/storybook/index.js";
3
3
  import FormControl from "../index.js";
4
4
  import TextField from "../../TextField/index.js";
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").FormControlProps> & {
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import FormControl from "../index.js";
3
3
  import Radio from "../../Radio/index.js";
4
4
  import RadioGroup from "../../RadioGroup/index.js";
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: {
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Grid from "../index.js";
3
3
  export default {
4
4
  title: "Utility components/Grid/tests",
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").HiddenProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Hidden from "../index.js";
3
3
  export default {
4
4
  title: "Utility components/Hidden/tests",
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").HiddenVisuallyProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import HiddenVisually from "../index.js";
3
3
  export default {
4
4
  title: "Utility components/HiddenVisually/tests",
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("..").HotkeyProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Hotkey from "../Hotkey.js";
3
3
  export default {
4
4
  title: "Components/Hotkey/tests",
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").IconProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Icon from "../index.js";
3
3
  import IconZap from "../../../icons/Zap.js";
4
4
  export default {
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn, Mock } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn, Mock } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").FC<import("..").ImageProps>;
@@ -1,4 +1,4 @@
1
- import { expect, fn, waitFor } from "@storybook/test";
1
+ import { expect, fn, waitFor } from "storybook/test";
2
2
  import { Example } from "../../../utilities/storybook/index.js";
3
3
  import View from "../../View/index.js";
4
4
  import Icon from "../../Icon/index.js";
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "type" | "onClick" | "href" | "stopPropagation"> & {
@@ -1,4 +1,4 @@
1
- import { userEvent, expect, fn } from "@storybook/test";
1
+ import { userEvent, expect, fn } from "storybook/test";
2
2
  import Link from "../index.js";
3
3
  export default {
4
4
  title: "Components/Link/tests",
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").LoaderProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Loader from "../index.js";
3
3
  export default {
4
4
  title: "Components/Loader/tests",
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("../MenuItem.types").Export;
@@ -1,4 +1,4 @@
1
- import { userEvent, expect, fn } from "@storybook/test";
1
+ import { userEvent, expect, fn } from "storybook/test";
2
2
  import MenuItem from "../index.js";
3
3
  export default {
4
4
  title: "Components/MenuItem/tests",
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React from "react";
4
- import { classNames, responsiveVariables, responsiveClassNames } from "../../utilities/props.js";
4
+ import { classNames, responsiveVariables, responsiveClassNames, responsivePropDependency, } from "../../utilities/props.js";
5
5
  import { enableUserSelect, disableUserSelect } from "../../utilities/dom/index.js";
6
6
  import { enableScroll, disableScroll } from "../../utilities/scroll/index.js";
7
7
  import useResponsiveClientValue from "../../hooks/useResponsiveClientValue.js";
@@ -168,7 +168,7 @@ const Modal = (props) => {
168
168
  setHideProgress(progress / 2);
169
169
  dragDistanceRef.current = dragDistance;
170
170
  }, [dragDistance, clientPosition, rootRef]);
171
- return (_jsx(Overlay, { onClose: onClose, onOpen: onOpen, onAfterClose: onAfterClose, onAfterOpen: onAfterOpen, disableCloseOnClick: disableCloseOnOutsideClick, active: active, transparent: transparentOverlay || hideProgress, blurred: blurredOverlay, className: overlayClassName, containerRef: containerRef, attributes: {
171
+ return (_jsx(Overlay, { onClose: onClose, onOpen: onOpen, onAfterClose: onAfterClose, onAfterOpen: onAfterOpen, disableCloseOnClick: disableCloseOnOutsideClick, active: active, transparent: transparentOverlay || hideProgress, blurred: blurredOverlay, overflow: responsivePropDependency(position, (p) => (p === "center" ? "auto" : "hidden")), className: overlayClassName, containerRef: containerRef, attributes: {
172
172
  onTouchStart: handleDragStart,
173
173
  }, children: ({ active }) => {
174
174
  const rootClassNames = classNames(s.root, className, active && s["--active"], dragging && s["--dragging"], overflow && s[`--overflow-${overflow}`], containerRef && s["--contained"], responsiveClassNames(s, "--position", position));
@@ -1 +1 @@
1
- .root{--rs-modal-container-width:100vw;--rs-modal-position:fixed;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);transition:var(--rs-easing-accelerate) var(--rs-duration-fast);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-focus-shadow);outline:none}.root.--contained{--rs-modal-position:absolute;--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
1
+ .root{--rs-modal-container-width:100vw;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);transition:var(--rs-easing-accelerate) var(--rs-duration-fast);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-focus-shadow);outline:none}.root.--contained{--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:absolute;transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:absolute;transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:absolute;transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { StoryObj } from "@storybook/react";
3
- import { fn } from "@storybook/test";
2
+ import { StoryObj } from "@storybook/react-vite";
3
+ import { fn } from "storybook/test";
4
4
  declare const _default: {
5
5
  title: string;
6
6
  component: React.FC<import("./..").ModalProps> & {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { within, expect, fn, userEvent, waitFor } from "@storybook/test";
2
+ import { within, expect, fn, userEvent, waitFor } from "storybook/test";
3
3
  import Button from "../../Button/index.js";
4
4
  import Modal from "../index.js";
5
5
  import useToggle from "../../../hooks/useToggle.js";
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { Mock } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { Mock } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").FC<import("./..").NumberFieldProps>;
@@ -1,4 +1,4 @@
1
- import { expect, fn, userEvent } from "@storybook/test";
1
+ import { expect, fn, userEvent } from "storybook/test";
2
2
  import FormControl from "../../FormControl/index.js";
3
3
  import NumberField from "../index.js";
4
4
  import { Example } from "../../../utilities/storybook/index.js";
@@ -13,7 +13,7 @@ import Portal from "../_private/Portal/index.js";
13
13
  import s from "./Overlay.module.css";
14
14
  import useHandlerRef from "../../hooks/useHandlerRef.js";
15
15
  const Overlay = (props) => {
16
- const { active, children, transparent, blurred, onClose, onOpen, onAfterClose, onAfterOpen, disableCloseOnClick, containerRef, className, attributes, } = props;
16
+ const { active, children, transparent, blurred, overflow, onClose, onOpen, onAfterClose, onAfterOpen, disableCloseOnClick, containerRef, className, attributes, } = props;
17
17
  // Selectors wrapped with refs to simplify working with useEffect dependency array
18
18
  const onCloseRef = useHandlerRef(onClose);
19
19
  const onOpenRef = useHandlerRef(onOpen);
@@ -33,7 +33,7 @@ const Overlay = (props) => {
33
33
  const { active: visible, activate: show, deactivate: hide } = useToggle(active || false);
34
34
  // Check that when close was triggered there were no other overlays / flyouts rendered above it
35
35
  const isDismissible = useIsDismissible({ active, contentRef, blocking: true });
36
- const rootClassNames = classNames(s.root, visible && s["--visible"], isTransparent && s["--click-through"], blurred && s["--blurred"], animated && s["--animated"], containerRef && s["--contained"], className);
36
+ const rootClassNames = classNames(s.root, visible && s["--visible"], isTransparent && s["--click-through"], blurred && s["--blurred"], animated && s["--animated"], containerRef && s["--contained"], overflow === "auto" && s["--overflow-auto"], className);
37
37
  const isInsideContent = (el) => {
38
38
  if (!contentRef.current)
39
39
  return;
@@ -1 +1 @@
1
- .root{--rs-overlay-offset-y:0px;--rs-overlay-offset-x:0px;overflow:auto;overflow-x:clip;position:fixed;-webkit-overflow-scrolling:touch;background-color:rgba(var(--rs-color-rgb-black),0);color:var(--rs-color-white);cursor:default!important;left:var(--rs-overlay-offset-x);opacity:0;outline:none;top:var(--rs-overlay-offset-y);z-index:var(--rs-z-index-overlay)}.root,.wrapper{height:100%;width:100%}.wrapper{display:table}.inner{display:table-cell;text-align:center}.content,.inner{vertical-align:middle}.content{display:inline-block;text-align:initial}.root.--visible{background-color:rgba(var(--rs-color-rgb-black),var(--rs-overlay-opacity));opacity:1}.root.--click-through{color:inherit;pointer-events:none}.root.--blurred{backdrop-filter:blur(3px);height:calc(100% + 2px);left:calc(var(--rs-overlay-offset-x) - 1px);top:calc(var(--rs-overlay-offset-y) - 1px);width:calc(100% + 2px)}.root.--click-through .content,.root.--click-through>:not(.wrapper){pointer-events:all}.root.--contained{position:absolute}.root.--animated{transition:var(--rs-duration-medium) var(--rs-easing-accelerate);transition-property:background-color,opacity}.root.--animated.--visible{transition-timing-function:var(--rs-easing-decelerate)}
1
+ .root{--rs-overlay-offset-y:0px;--rs-overlay-offset-x:0px;overflow-x:clip;position:fixed;-webkit-overflow-scrolling:touch;background-color:rgba(var(--rs-color-rgb-black),0);color:var(--rs-color-white);cursor:default!important;left:var(--rs-overlay-offset-x);opacity:0;outline:none;top:var(--rs-overlay-offset-y);z-index:var(--rs-z-index-overlay)}.root,.wrapper{height:100%;width:100%}.wrapper{display:table}.inner{display:table-cell;text-align:center}.content,.inner{vertical-align:middle}.content{display:inline-block;text-align:initial}.root.--visible{background-color:rgba(var(--rs-color-rgb-black),var(--rs-overlay-opacity));opacity:1}.root.--click-through{color:inherit;pointer-events:none}.root.--blurred{backdrop-filter:blur(3px);height:calc(100% + 2px);left:calc(var(--rs-overlay-offset-x) - 1px);top:calc(var(--rs-overlay-offset-y) - 1px);width:calc(100% + 2px)}.root.--click-through .content,.root.--click-through>:not(.wrapper){pointer-events:all}.root.--contained{position:absolute}.root.--animated{transition:var(--rs-duration-medium) var(--rs-easing-accelerate);transition-property:background-color,opacity}.root.--animated.--visible{transition-timing-function:var(--rs-easing-decelerate)}.root.--overflow-auto{overflow:auto}
@@ -4,6 +4,7 @@ export type CloseReason = "overlay-click" | "escape-key";
4
4
  export type Props = {
5
5
  transparent?: boolean | number;
6
6
  blurred?: boolean;
7
+ overflow?: "auto" | "hidden";
7
8
  children?: React.ReactNode | ((props: {
8
9
  active: boolean;
9
10
  }) => React.ReactNode);
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").OverlayProps>;
@@ -1,4 +1,4 @@
1
- import { userEvent } from "@storybook/test";
1
+ import { userEvent } from "storybook/test";
2
2
  import { Example } from "../../../utilities/storybook/index.js";
3
3
  import Overlay from "../index.js";
4
4
  import Button from "../../Button/index.js";
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { StoryObj } from "@storybook/react";
3
- import { fn } from "@storybook/test";
2
+ import { StoryObj } from "@storybook/react-vite";
3
+ import { fn } from "storybook/test";
4
4
  declare const _default: {
5
5
  title: string;
6
6
  component: React.FC<import("./..").OverlayProps>;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { within, expect, fn, userEvent, waitFor } from "@storybook/test";
2
+ import { within, expect, fn, userEvent, waitFor } from "storybook/test";
3
3
  import Button from "../../Button/index.js";
4
4
  import Overlay from "../index.js";
5
5
  import useToggle from "../../../hooks/useToggle.js";
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").FC<import("./..").PaginationProps>;
@@ -1,4 +1,4 @@
1
- import { expect, within, fn, userEvent } from "@storybook/test";
1
+ import { expect, within, fn, userEvent } from "storybook/test";
2
2
  import Pagination from "../index.js";
3
3
  export default {
4
4
  title: "Components/Pagination/tests",
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").FC<import("./..").PinFieldProps>;
@@ -1,4 +1,4 @@
1
- import { expect, fn, userEvent, waitFor } from "@storybook/test";
1
+ import { expect, fn, userEvent, waitFor } from "storybook/test";
2
2
  import FormControl from "../../FormControl/index.js";
3
3
  import PinField from "../index.js";
4
4
  export default {
@@ -1,5 +1,5 @@
1
- import { StoryObj } from "@storybook/react";
2
- import { fn } from "@storybook/test";
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: import("react").FC<import("./..").PopoverProps> & {
@@ -58,3 +58,7 @@ export declare const variant: {
58
58
  name: string;
59
59
  render: () => import("react").JSX.Element;
60
60
  };
61
+ export declare const teslContentEditable: {
62
+ name: string;
63
+ render: () => import("react").JSX.Element;
64
+ };
@@ -1,10 +1,13 @@
1
- import { expect, fn, userEvent, within, waitFor } from "@storybook/test";
1
+ import { useState } from "react";
2
+ import { expect, fn, userEvent, within, waitFor } from "storybook/test";
2
3
  import { Example } from "../../../utilities/storybook/index.js";
3
4
  import { sleep } from "../../../utilities/helpers.js";
4
5
  import View from "../../View/index.js";
5
6
  import Popover from "../index.js";
6
7
  import Tooltip from "../../Tooltip/index.js";
7
8
  import Button from "../../Button/index.js";
9
+ import MenuItem from "../../MenuItem/index.js";
10
+ import ScrollArea from "../../ScrollArea/index.js";
8
11
  export default {
9
12
  title: "Components/Popover",
10
13
  component: Popover,
@@ -256,3 +259,43 @@ export const variant = {
256
259
  </Example.Item>
257
260
  </Example>),
258
261
  };
262
+ export const teslContentEditable = {
263
+ name: "test: contenteditable",
264
+ render: () => {
265
+ const [active, setActive] = useState(false);
266
+ return (<Popover>
267
+ <Popover.Trigger>
268
+ {(attributes) => <Button attributes={attributes}>Open</Button>}
269
+ </Popover.Trigger>
270
+ <Popover.Content>
271
+ <View gap={4}>
272
+ <View.Item>
273
+ <Button onClick={() => { }}>Hello</Button>
274
+ </View.Item>
275
+
276
+ <ScrollArea height="100px">
277
+ <div style={{ height: "200px" }} contentEditable tabIndex={0} onInput={(e) => {
278
+ setActive(e.currentTarget.innerText.startsWith("@"));
279
+ }} onKeyDown={(e) => {
280
+ console.log(e.key);
281
+ if (e.key === "Enter" && active) {
282
+ e.preventDefault();
283
+ e.currentTarget.innerText = "@hello";
284
+ setActive(false);
285
+ }
286
+ }}/>
287
+ </ScrollArea>
288
+
289
+ <Popover active={active} onClose={() => setActive(false)} originCoordinates={{ x: 300, y: 300 }} trapFocusMode="selection-menu">
290
+ <Popover.Content>
291
+ <View gap={4}>
292
+ <MenuItem onClick={() => { }}>Action</MenuItem>
293
+ <MenuItem onClick={() => { }}>Close</MenuItem>
294
+ </View>
295
+ </Popover.Content>
296
+ </Popover>
297
+ </View>
298
+ </Popover.Content>
299
+ </Popover>);
300
+ },
301
+ };
@@ -1,4 +1,4 @@
1
- import { StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react-vite";
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<import("./..").ProgressProps>;
@@ -1,4 +1,4 @@
1
- import { expect } from "@storybook/test";
1
+ import { expect } from "storybook/test";
2
2
  import Progress from "../index.js";
3
3
  export default {
4
4
  title: "Components/Progress/tests",