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.
- package/CHANGELOG.md +8 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.js +9 -9
- package/dist/components/Accordion/AccordionControlled.js +4 -4
- package/dist/components/Accordion/tests/Accordion.stories.d.ts +6 -6
- package/dist/components/Accordion/tests/Accordion.stories.js +1 -1
- package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +1 -1
- package/dist/components/ActionBar/tests/ActionBar.test.stories.js +1 -1
- package/dist/components/Actionable/tests/Actionable.stories.d.ts +1 -1
- package/dist/components/Actionable/tests/Actionable.stories.js +1 -1
- package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +2 -2
- package/dist/components/Actionable/tests/Actionable.test.stories.js +1 -1
- package/dist/components/Alert/tests/Alert.test.stories.d.ts +1 -1
- package/dist/components/Alert/tests/Alert.test.stories.js +1 -1
- package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +2 -2
- package/dist/components/Autocomplete/tests/Autocomplete.stories.js +8 -7
- package/dist/components/Avatar/tests/Avatar.stories.d.ts +2 -2
- package/dist/components/Avatar/tests/Avatar.stories.js +1 -1
- package/dist/components/Badge/tests/Badge.stories.d.ts +2 -2
- package/dist/components/Badge/tests/Badge.stories.js +1 -1
- package/dist/components/Badge/tests/Badge.test.stories.d.ts +2 -2
- package/dist/components/Badge/tests/Badge.test.stories.js +1 -1
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +2 -2
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +1 -1
- package/dist/components/Button/tests/Button.test.stories.d.ts +2 -2
- package/dist/components/Button/tests/Button.test.stories.js +1 -1
- package/dist/components/Calendar/tests/Calendar.stories.d.ts +2 -2
- package/dist/components/Calendar/tests/Calendar.stories.js +1 -1
- package/dist/components/Card/tests/Card.test.stories.d.ts +2 -2
- package/dist/components/Card/tests/Card.test.stories.js +1 -1
- package/dist/components/Carousel/tests/Carousel.stories.d.ts +2 -2
- package/dist/components/Carousel/tests/Carousel.stories.js +1 -1
- package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +2 -2
- package/dist/components/Checkbox/tests/Checkbox.test.stories.js +1 -1
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +2 -2
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +1 -1
- package/dist/components/Container/tests/Container.test.stories.d.ts +1 -1
- package/dist/components/Container/tests/Container.test.stories.js +1 -1
- package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +2 -2
- package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +1 -1
- package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +1 -1
- package/dist/components/Dismissible/tests/Dismissible.stories.js +1 -1
- package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +2 -2
- package/dist/components/Dismissible/tests/Dismissible.test.stories.js +1 -1
- package/dist/components/Divider/tests/Divider.test.stories.d.ts +1 -1
- package/dist/components/Divider/tests/Divider.test.stories.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +13 -2
- package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +2 -2
- package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +1 -1
- package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +2 -2
- package/dist/components/FileUpload/tests/FileUpload.test.stories.js +1 -1
- package/dist/components/Flyout/Flyout.types.d.ts +4 -3
- package/dist/components/Flyout/FlyoutContent.js +8 -8
- package/dist/components/Flyout/FlyoutControlled.js +4 -1
- package/dist/components/Flyout/tests/Flyout.stories.d.ts +6 -2
- package/dist/components/Flyout/tests/Flyout.stories.js +24 -5
- package/dist/components/Flyout/useFlyout.js +13 -9
- package/dist/components/Flyout/utilities/flyout.js +4 -4
- package/dist/components/FormControl/tests/FormControl.stories.d.ts +1 -1
- package/dist/components/FormControl/tests/FormControl.stories.js +1 -1
- package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +1 -1
- package/dist/components/FormControl/tests/FormControl.test.stories.js +1 -1
- package/dist/components/Grid/tests/Grid.test.stories.d.ts +1 -1
- package/dist/components/Grid/tests/Grid.test.stories.js +1 -1
- package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +1 -1
- package/dist/components/Hidden/tests/Hidden.test.stories.js +1 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +1 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +1 -1
- package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +1 -1
- package/dist/components/Hotkey/tests/Hotkey.test.stories.js +1 -1
- package/dist/components/Icon/tests/Icon.test.stories.d.ts +1 -1
- package/dist/components/Icon/tests/Icon.test.stories.js +1 -1
- package/dist/components/Image/tests/Image.stories.d.ts +2 -2
- package/dist/components/Image/tests/Image.stories.js +1 -1
- package/dist/components/Link/tests/Link.test.stories.d.ts +2 -2
- package/dist/components/Link/tests/Link.test.stories.js +1 -1
- package/dist/components/Loader/tests/Loader.test.stories.d.ts +1 -1
- package/dist/components/Loader/tests/Loader.test.stories.js +1 -1
- package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +2 -2
- package/dist/components/MenuItem/tests/MenuItem.test.stories.js +1 -1
- package/dist/components/Modal/Modal.js +2 -2
- package/dist/components/Modal/Modal.module.css +1 -1
- package/dist/components/Modal/tests/Modal.test.stories.d.ts +2 -2
- package/dist/components/Modal/tests/Modal.test.stories.js +1 -1
- package/dist/components/NumberField/tests/NumberField.stories.d.ts +2 -2
- package/dist/components/NumberField/tests/NumberField.stories.js +1 -1
- package/dist/components/Overlay/Overlay.js +2 -2
- package/dist/components/Overlay/Overlay.module.css +1 -1
- package/dist/components/Overlay/Overlay.types.d.ts +1 -0
- package/dist/components/Overlay/tests/Overlay.stories.d.ts +1 -1
- package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
- package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +2 -2
- package/dist/components/Overlay/tests/Overlay.test.stories.js +1 -1
- package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +2 -2
- package/dist/components/Pagination/tests/Pagination.test.stories.js +1 -1
- package/dist/components/PinField/tests/PinField.test.stories.d.ts +2 -2
- package/dist/components/PinField/tests/PinField.test.stories.js +1 -1
- package/dist/components/Popover/tests/Popover.stories.d.ts +6 -2
- package/dist/components/Popover/tests/Popover.stories.js +44 -1
- package/dist/components/Progress/tests/Progress.test.stories.d.ts +1 -1
- package/dist/components/Progress/tests/Progress.test.stories.js +1 -1
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +1 -1
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +1 -1
- package/dist/components/Radio/tests/Radio.test.stories.d.ts +2 -2
- package/dist/components/Radio/tests/Radio.test.stories.js +1 -1
- package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +2 -2
- package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +1 -1
- package/dist/components/Reshaped/tests/Reshaped.stories.d.ts +1 -1
- package/dist/components/Reshaped/tests/Reshaped.stories.js +1 -1
- package/dist/components/Resizable/tests/Resizable.test.stories.d.ts +1 -1
- package/dist/components/Resizable/tests/Resizable.test.stories.js +1 -1
- package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +1 -1
- package/dist/components/Scrim/tests/Scrim.test.stories.js +1 -1
- package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +2 -2
- package/dist/components/ScrollArea/tests/ScrollArea.stories.js +1 -1
- package/dist/components/Select/tests/Select.test.stories.d.ts +2 -2
- package/dist/components/Select/tests/Select.test.stories.js +1 -1
- package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +1 -1
- package/dist/components/Skeleton/tests/Skeleton.test.stories.js +1 -1
- package/dist/components/Slider/tests/Slider.stories.d.ts +2 -2
- package/dist/components/Slider/tests/Slider.stories.js +1 -1
- package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +1 -1
- package/dist/components/Stepper/tests/Stepper.test.stories.js +1 -1
- package/dist/components/Switch/tests/Switch.test.stories.d.ts +2 -2
- package/dist/components/Switch/tests/Switch.test.stories.js +1 -1
- package/dist/components/Table/tests/Table.test.stories.d.ts +1 -1
- package/dist/components/Table/tests/Table.test.stories.js +1 -1
- package/dist/components/Tabs/tests/Tabs.test.stories.d.ts +2 -2
- package/dist/components/Tabs/tests/Tabs.test.stories.js +1 -1
- package/dist/components/Text/tests/Text.test.stories.d.ts +1 -1
- package/dist/components/Text/tests/Text.test.stories.js +1 -1
- package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +2 -2
- package/dist/components/TextArea/tests/TextArea.test.stories.js +1 -1
- package/dist/components/TextField/tests/TextField.test.stories.d.ts +2 -2
- package/dist/components/TextField/tests/TextField.test.stories.js +1 -1
- package/dist/components/Theme/tests/Theme.test.stories.d.ts +1 -1
- package/dist/components/Theme/tests/Theme.test.stories.js +1 -1
- package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +1 -1
- package/dist/components/Timeline/tests/Timeline.test.stories.js +1 -1
- package/dist/components/Toast/tests/Toast.test.stories.d.ts +1 -1
- package/dist/components/Toast/tests/Toast.test.stories.js +1 -1
- package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +2 -2
- package/dist/components/Tooltip/tests/Tooltip.test.stories.js +1 -1
- package/dist/components/View/tests/View.test.stories.d.ts +1 -1
- package/dist/components/View/tests/View.test.stories.js +1 -1
- package/dist/hooks/tests/useDrag.stories.d.ts +2 -2
- package/dist/hooks/tests/useDrag.stories.js +1 -1
- package/dist/hooks/tests/useElementId.stories.d.ts +1 -1
- package/dist/hooks/tests/useElementId.stories.js +1 -1
- package/dist/hooks/tests/useHandlerRef.stories.d.ts +2 -2
- package/dist/hooks/tests/useHandlerRef.stories.js +1 -1
- package/dist/hooks/tests/useHotkeys.stories.d.ts +2 -2
- package/dist/hooks/tests/useHotkeys.stories.js +1 -1
- package/dist/hooks/tests/useKeyboardMode.stories.d.ts +1 -1
- package/dist/hooks/tests/useKeyboardMode.stories.js +1 -1
- package/dist/hooks/tests/useOnClickOutside.stories.d.ts +2 -2
- package/dist/hooks/tests/useOnClickOutside.stories.js +1 -1
- package/dist/hooks/tests/useRTL.stories.d.ts +1 -1
- package/dist/hooks/tests/useRTL.stories.js +1 -1
- package/dist/hooks/tests/useScrollLock.stories.d.ts +1 -1
- package/dist/hooks/tests/useScrollLock.stories.js +1 -1
- package/dist/hooks/tests/useToggle.stories.d.ts +1 -1
- package/dist/hooks/tests/useToggle.stories.js +1 -1
- package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +1 -1
- package/dist/utilities/a11y/tests/TrapFocus.stories.js +1 -1
- package/dist/utilities/dom/find.d.ts +1 -1
- package/dist/utilities/dom/find.js +2 -2
- 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 "
|
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={
|
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={
|
461
|
-
<Demo position="
|
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
|
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
|
66
|
-
|
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
|
-
|
79
|
-
|
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({
|
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
|
-
|
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,
|
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
|
67
|
-
if (validPosition ||
|
66
|
+
// Saving first try in case none of the options work
|
67
|
+
if (validPosition || lastUsedPosition === currentPosition) {
|
68
68
|
calculated = tested;
|
69
|
-
|
69
|
+
onPositionChoose(currentPosition);
|
70
70
|
}
|
71
71
|
return validPosition;
|
72
72
|
});
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { StoryObj } from "@storybook/react";
|
2
|
-
import { fn, Mock } from "
|
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,5 +1,5 @@
|
|
1
|
-
import { StoryObj } from "@storybook/react";
|
2
|
-
import { fn } from "
|
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,5 +1,5 @@
|
|
1
|
-
import { StoryObj } from "@storybook/react";
|
2
|
-
import { fn } from "
|
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,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 "
|
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 "
|
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 "
|
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 "
|
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
|
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}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import { StoryObj } from "@storybook/react";
|
3
|
-
import { fn } from "
|
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 "
|
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 "
|
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,5 +1,5 @@
|
|
1
|
-
import { StoryObj } from "@storybook/react";
|
2
|
-
import { fn } from "
|
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,5 +1,5 @@
|
|
1
|
-
import { StoryObj } from "@storybook/react";
|
2
|
-
import { fn } from "
|
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 {
|
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
|
+
};
|