reshaped 3.2.0-canary.5 → 3.2.0-canary.7
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 +26 -1
- package/dist/bundle.css +1 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.js +16 -16
- package/dist/cjs/constants/breakpoints.d.ts +6 -0
- package/dist/cjs/constants/breakpoints.js +7 -0
- package/dist/cjs/themes/_generator/definitions/reshaped.js +8 -4
- package/dist/cjs/themes/_generator/tokens/viewport/viewport.transforms.js +10 -1
- package/dist/cjs/themes/figma/theme.css +1 -1
- package/dist/cjs/themes/reshaped/theme.css +1 -1
- package/dist/cjs/themes/slate/theme.css +1 -1
- package/dist/components/Actionable/Actionable.d.ts +1 -1
- package/dist/components/Actionable/Actionable.module.css +1 -1
- package/dist/components/Autocomplete/Autocomplete.js +2 -2
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.module.css +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.module.css +1 -1
- package/dist/components/Card/tests/Card.stories.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.module.css +1 -1
- package/dist/components/Divider/Divider.js +4 -3
- package/dist/components/Divider/Divider.module.css +1 -1
- package/dist/components/Divider/Divider.types.d.ts +3 -0
- package/dist/components/Divider/tests/Divider.stories.d.ts +1 -0
- package/dist/components/Divider/tests/Divider.stories.js +21 -0
- package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
- package/dist/components/FormControl/FormControl.context.d.ts +2 -1
- package/dist/components/Grid/Grid.d.ts +6 -0
- package/dist/components/Grid/Grid.js +46 -0
- package/dist/components/Grid/Grid.module.css +1 -0
- package/dist/components/Grid/Grid.types.d.ts +31 -0
- package/dist/components/Grid/Grid.types.js +1 -0
- package/dist/components/Grid/index.d.ts +2 -0
- package/dist/components/Grid/index.js +1 -0
- package/dist/components/Grid/tests/Grid.stories.d.ts +18 -0
- package/dist/components/Grid/tests/Grid.stories.js +170 -0
- package/dist/components/Icon/Icon.module.css +1 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/tests/Link.stories.d.ts +1 -1
- package/dist/components/Loader/Loader.module.css +1 -1
- package/dist/components/Loader/Loader.types.d.ts +1 -1
- package/dist/components/Loader/tests/Loader.stories.js +5 -3
- package/dist/components/Modal/Modal.js +7 -4
- package/dist/components/Modal/Modal.module.css +1 -1
- package/dist/components/Modal/Modal.types.d.ts +1 -1
- package/dist/components/Modal/tests/Modal.stories.d.ts +1 -0
- package/dist/components/Modal/tests/Modal.stories.js +28 -1
- package/dist/components/Overlay/Overlay.js +45 -27
- 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.js +1 -1
- package/dist/components/Popover/Popover.js +2 -4
- package/dist/components/Popover/Popover.types.d.ts +1 -1
- package/dist/components/Radio/Radio.module.css +1 -1
- package/dist/components/Resizable/Resizable.module.css +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +1 -1
- package/dist/components/Slider/Slider.module.css +1 -1
- package/dist/components/Slider/SliderControlled.js +2 -1
- package/dist/components/Switch/Switch.module.css +1 -1
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.module.css +1 -1
- package/dist/components/Tabs/TabsContext.d.ts +1 -1
- package/dist/components/Tabs/TabsItem.d.ts +1 -1
- package/dist/components/Tabs/TabsItem.js +2 -3
- package/dist/components/Tabs/TabsList.js +1 -1
- package/dist/components/Tabs/tests/Tabs.stories.d.ts +15 -13
- package/dist/components/Tabs/tests/Tabs.stories.js +71 -8
- package/dist/components/TextField/TextField.js +5 -1
- package/dist/components/TextField/TextField.module.css +1 -1
- package/dist/components/TextField/tests/TextField.stories.js +4 -0
- package/dist/components/Toast/ToastContainer.js +1 -2
- package/dist/components/Toast/ToastRegion.js +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/View/View.js +7 -3
- package/dist/components/View/View.module.css +1 -1
- package/dist/components/View/View.types.d.ts +2 -2
- package/dist/components/_private/Expandable/Expandable.js +9 -5
- package/dist/components/_private/Flyout/Flyout.module.css +1 -1
- package/dist/components/_private/Flyout/Flyout.types.d.ts +12 -3
- package/dist/components/_private/Flyout/FlyoutContent.js +1 -1
- package/dist/components/_private/Flyout/FlyoutControlled.js +34 -21
- package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +3 -1
- package/dist/components/_private/Flyout/tests/Flyout.stories.js +54 -32
- package/dist/components/_private/Flyout/useFlyout.d.ts +2 -1
- package/dist/components/_private/Flyout/useFlyout.js +45 -55
- package/dist/components/_private/Flyout/utilities/calculatePosition.js +16 -11
- package/dist/components/_private/Flyout/utilities/cooldown.d.ts +1 -1
- package/dist/components/_private/Flyout/utilities/cooldown.js +17 -5
- package/dist/components/_private/Flyout/utilities/getPositionFallbacks.d.ts +3 -0
- package/dist/components/_private/Flyout/utilities/getPositionFallbacks.js +39 -0
- package/dist/components/_private/Portal/Portal.js +3 -3
- package/dist/config/tailwind.d.ts +1 -1
- package/dist/constants/breakpoints.d.ts +6 -0
- package/dist/constants/breakpoints.js +5 -0
- package/dist/hooks/_private/useIsDismissible.js +7 -14
- package/dist/hooks/_private/useSingletonHotkeys.js +5 -3
- package/dist/hooks/_private/useSingletonKeyboardMode.js +1 -1
- package/dist/hooks/tests/useHotkeys.stories.js +3 -0
- package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +1 -2
- package/dist/hooks/tests/useResponsiveClientValue.stories.js +1 -2
- package/dist/hooks/useDrag.js +2 -1
- package/dist/hooks/useResponsiveClientValue.js +22 -11
- package/dist/hooks/useScrollLock.d.ts +4 -1
- package/dist/hooks/useScrollLock.js +14 -40
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/styles/align/align.module.css +1 -0
- package/dist/styles/align/index.d.ts +3 -0
- package/dist/styles/align/index.js +10 -0
- package/dist/styles/justify/index.d.ts +3 -0
- package/dist/styles/justify/index.js +10 -0
- package/dist/styles/justify/justify.module.css +1 -0
- package/dist/styles/types.d.ts +2 -0
- package/dist/themes/_generator/definitions/reshaped.js +5 -4
- package/dist/themes/_generator/tokens/viewport/viewport.transforms.js +10 -1
- package/dist/themes/figma/theme.css +1 -1
- package/dist/themes/reshaped/theme.css +1 -1
- package/dist/themes/slate/theme.css +1 -1
- package/dist/utilities/a11y/TrapFocus.d.ts +1 -1
- package/dist/utilities/a11y/TrapFocus.js +1 -1
- package/dist/utilities/a11y/focus.js +1 -1
- package/dist/utilities/a11y/index.d.ts +4 -0
- package/dist/utilities/a11y/index.js +3 -0
- package/dist/utilities/css.d.ts +7 -0
- package/dist/utilities/css.js +18 -0
- package/dist/utilities/dom/flyout.d.ts +1 -0
- package/dist/utilities/{dom.js → dom/flyout.js} +1 -19
- package/dist/utilities/dom/index.d.ts +3 -0
- package/dist/utilities/dom/index.js +3 -0
- package/dist/utilities/dom/shadowDom.d.ts +1 -0
- package/dist/utilities/dom/shadowDom.js +4 -0
- package/dist/utilities/dom/userSelect.d.ts +2 -0
- package/dist/utilities/dom/userSelect.js +6 -0
- package/dist/utilities/platform.d.ts +1 -0
- package/dist/utilities/platform.js +15 -0
- package/dist/utilities/scroll/disable.d.ts +7 -0
- package/dist/utilities/scroll/disable.js +13 -0
- package/dist/utilities/scroll/helpers.d.ts +1 -0
- package/dist/utilities/scroll/helpers.js +17 -0
- package/dist/utilities/scroll/index.d.ts +2 -0
- package/dist/utilities/scroll/index.js +2 -0
- package/dist/utilities/scroll/lock.d.ts +5 -0
- package/dist/utilities/scroll/lock.js +24 -0
- package/dist/utilities/scroll/lockSafari.d.ts +2 -0
- package/dist/utilities/scroll/lockSafari.js +21 -0
- package/dist/utilities/scroll/lockStandard.d.ts +2 -0
- package/dist/utilities/scroll/lockStandard.js +17 -0
- package/dist/utilities/storybook/Placeholder.d.ts +1 -0
- package/dist/utilities/storybook/Placeholder.js +2 -2
- package/package.json +47 -50
- package/dist/utilities/dom.d.ts +0 -6
@@ -2,7 +2,7 @@
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
3
3
|
import React from "react";
|
4
4
|
import { classNames } from "../../utilities/helpers.js";
|
5
|
-
import { focusableSelector } from "../../utilities/a11y/
|
5
|
+
import { focusableSelector } from "../../utilities/a11y/index.js";
|
6
6
|
import ToastContainer from "./ToastContainer.js";
|
7
7
|
import ToastContext from "./Toast.context.js";
|
8
8
|
import s from "./Toast.module.css";
|
@@ -8,6 +8,6 @@ const Tooltip = (props) => {
|
|
8
8
|
const { id, text, children, onOpen, onClose, position = "bottom", containerRef, active, disabled, disableContentHover, } = props;
|
9
9
|
if (!text)
|
10
10
|
return _jsx(_Fragment, { children: children({}) });
|
11
|
-
return (_jsxs(Flyout, { id: id, active: active, position: position, disabled: disabled, onOpen: onOpen, onClose: onClose, disableContentHover: disableContentHover, containerRef: containerRef, triggerType: "hover", children: [_jsx(Flyout.Trigger, { children: children }), _jsx(Flyout.Content, { children: _jsx(Theme, { colorMode: "inverted", children: _jsx(Text, { variant: "caption-1", className: s.root, children: text }) }) })] }));
|
11
|
+
return (_jsxs(Flyout, { id: id, active: active, position: position, disabled: disabled, onOpen: onOpen, onClose: onClose, disableContentHover: disableContentHover, containerRef: containerRef, triggerType: "hover", groupTimeouts: true, children: [_jsx(Flyout.Trigger, { children: children }), _jsx(Flyout.Content, { children: _jsx(Theme, { colorMode: "inverted", children: _jsx(Text, { variant: "caption-1", className: s.root, children: text }) }) })] }));
|
12
12
|
};
|
13
13
|
export default Tooltip;
|
@@ -18,6 +18,8 @@ import getInsetStyles from "../../styles/inset/index.js";
|
|
18
18
|
import getAspectRatioStyles from "../../styles/aspectRatio/index.js";
|
19
19
|
import getBorderStyles from "../../styles/border/index.js";
|
20
20
|
import getTextAlignStyles from "../../styles/textAlign/index.js";
|
21
|
+
import getAlignStyles from "../../styles/align/index.js";
|
22
|
+
import getJustifyStyles from "../../styles/justify/index.js";
|
21
23
|
const ViewItem = (props) => {
|
22
24
|
const { columns, grow, gapBefore, as: TagName = "div", order, children, className, attributes, } = props;
|
23
25
|
const itemClassNames = classNames(s.item, className, gapBefore === "auto" && s["item--gap-auto"], gapBefore !== undefined && s["item--gap-before"], columns && s["item--columns"], ...responsiveClassNames(s, "item--grow", grow), ...responsiveClassNames(s, "item--columns", columns));
|
@@ -65,6 +67,8 @@ const View = (props) => {
|
|
65
67
|
const aspectRatioStyles = getAspectRatioStyles(aspectRatio);
|
66
68
|
const borderStyles = getBorderStyles(borderColor);
|
67
69
|
const textAlignStyles = getTextAlignStyles(textAlign);
|
70
|
+
const alignStyles = getAlignStyles(align);
|
71
|
+
const justifyStyles = getJustifyStyles(justify);
|
68
72
|
let renderedItemIndex = 0;
|
69
73
|
// If wrap is not defined, it can be set based on item grow and split usage
|
70
74
|
let nowrap;
|
@@ -99,7 +103,7 @@ const View = (props) => {
|
|
99
103
|
className: classNames(className, child.props.className),
|
100
104
|
});
|
101
105
|
}
|
102
|
-
else if (className || !React.isValidElement(child)) {
|
106
|
+
else if (className || (!React.isValidElement(child) && React.Children.count(children) > 1)) {
|
103
107
|
itemElement = (_jsx("div", { className: className, children: child }, key));
|
104
108
|
}
|
105
109
|
else {
|
@@ -137,8 +141,8 @@ const View = (props) => {
|
|
137
141
|
return renderItem({ child, index: renderedIndex });
|
138
142
|
});
|
139
143
|
// Classnames and attributes are written here so we can assign nowrap to the root element based on the children
|
140
|
-
const rootClassNames = classNames(s.root, className, radiusStyles?.classNames, positionStyles?.classNames, bleedStyles?.classNames, widthStyles?.classNames, heightStyles?.classNames, aspectRatioStyles?.classNames, maxWidthStyles?.classNames, maxHeightStyles?.classNames, minWidthStyles?.classNames, minHeightStyles?.classNames, insetStyles?.classNames, insetTopStyles?.classNames, insetBottomStyles?.classNames, insetStartStyles?.classNames, insetEndStyles?.classNames, borderStyles?.classNames, textAlignStyles?.classNames, backgroundColor && s[`--bg-${backgroundColor}`], shadow && s[`--shadow-${shadow}`], overflow && s[`--overflow-${overflow}`], animated && s["--animated"], divided && s["--divided"], (padding !== undefined || paddingInline !== undefined || paddingBlock !== undefined) &&
|
141
|
-
s["--padding"], paddingBottom !== undefined && s["--padding-bottom"], paddingEnd !== undefined && s["--padding-end"], paddingStart !== undefined && s["--padding-start"], paddingTop !== undefined && s["--padding-top"], (isFlex || nowrap) && s["--flex"], ...responsiveClassNames(s, "--direction", direction),
|
144
|
+
const rootClassNames = classNames(s.root, className, radiusStyles?.classNames, positionStyles?.classNames, bleedStyles?.classNames, widthStyles?.classNames, heightStyles?.classNames, aspectRatioStyles?.classNames, maxWidthStyles?.classNames, maxHeightStyles?.classNames, minWidthStyles?.classNames, minHeightStyles?.classNames, insetStyles?.classNames, insetTopStyles?.classNames, insetBottomStyles?.classNames, insetStartStyles?.classNames, insetEndStyles?.classNames, borderStyles?.classNames, textAlignStyles?.classNames, justifyStyles?.classNames, alignStyles?.classNames, backgroundColor && s[`--bg-${backgroundColor}`], shadow && s[`--shadow-${shadow}`], overflow && s[`--overflow-${overflow}`], animated && s["--animated"], divided && s["--divided"], (padding !== undefined || paddingInline !== undefined || paddingBlock !== undefined) &&
|
145
|
+
s["--padding"], paddingBottom !== undefined && s["--padding-bottom"], paddingEnd !== undefined && s["--padding-end"], paddingStart !== undefined && s["--padding-start"], paddingTop !== undefined && s["--padding-top"], (isFlex || nowrap) && s["--flex"], ...responsiveClassNames(s, "--direction", direction),
|
142
146
|
// Wrap and nowrap are separate here because inverting any of them could result into a false value which will be ignored by classNames
|
143
147
|
...responsiveClassNames(s, "--nowrap", nowrap || wrap === false), ...responsiveClassNames(s, "--wrap", wrap),
|
144
148
|
// Item classnames
|
@@ -1 +1 @@
|
|
1
|
-
.root{--rs-view-gaps-count-multiplier:1;--rs-view-z:auto;--rs-view-gap-value:calc(var(--rs-view-gap) * var(--rs-unit-x1));--rs-view-border-width:0px;gap:var(--rs-view-gap-value);z-index:var(--rs-view-z)}.item{--rs-view-item-gap:calc(var(--rs-unit-x1) * var(--rs-view-item-gap-before) - var(--rs-view-gap-value));order:var(--rs-view-item-order)}.--padding{padding:calc(var(--rs-unit-x1) * var(--rs-view-p-vertical, var(--rs-view-p-top)) - var(--rs-view-border-width)) calc(var(--rs-unit-x1) * var(--rs-view-p-horizontal, var(--rs-view-p-start)) - var(--rs-view-border-width))}.--padding-top{padding-top:calc(var(--rs-unit-x1) * var(--rs-view-p-top))}.--padding-bottom{padding-bottom:calc(var(--rs-unit-x1) * var(--rs-view-p-bottom))}.--padding-start{padding-inline-start:calc(var(--rs-unit-x1) * var(--rs-view-p-start))}.--padding-end{padding-inline-end:calc(var(--rs-unit-x1) * var(--rs-view-p-end))}.--animated{transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:background-color,color,border-color,box-shadow}.--align-text-start{text-align:start}.--align-text-center{text-align:center}.--align-text-end{text-align:end}.--bg-neutral{background-color:var(--rs-color-background-neutral);color:var(--rs-color-on-background-neutral)}.--bg-positive{background-color:var(--rs-color-background-positive);color:var(--rs-color-on-background-positive)}.--bg-warning{background-color:var(--rs-color-background-warning);color:var(--rs-color-on-background-warning)}.--bg-critical{background-color:var(--rs-color-background-critical);color:var(--rs-color-on-background-critical)}.--bg-primary{background-color:var(--rs-color-background-primary);color:var(--rs-color-on-background-primary)}.--bg-neutral-faded{background-color:var(--rs-color-background-neutral-faded);color:var(--rs-color-foreground-neutral)}.--bg-positive-faded{background-color:var(--rs-color-background-positive-faded);color:var(--rs-color-foreground-neutral)}.--bg-warning-faded{background-color:var(--rs-color-background-warning-faded);color:var(--rs-color-foreground-neutral)}.--bg-critical-faded{background-color:var(--rs-color-background-critical-faded);color:var(--rs-color-foreground-neutral)}.--bg-primary-faded{background-color:var(--rs-color-background-primary-faded)}.--bg-page,.--bg-primary-faded{color:var(--rs-color-foreground-neutral)}.--bg-page{background-color:var(--rs-color-background-page)}.--bg-page-faded{background-color:var(--rs-color-background-page-faded)}.--bg-disabled,.--bg-page-faded{color:var(--rs-color-foreground-neutral)}.--bg-disabled{background-color:var(--rs-color-background-disabled)}.--bg-disabled-faded{background-color:var(--rs-color-background-disabled-faded);color:var(--rs-color-foreground-neutral)}.--bg-elevation-base{background-color:var(--rs-color-background-elevation-base);color:var(--rs-color-foreground-neutral)}.--bg-elevation-raised{background-color:var(--rs-color-background-elevation-raised);color:var(--rs-color-foreground-neutral)}.--bg-elevation-overlay{background-color:var(--rs-color-background-elevation-overlay);color:var(--rs-color-foreground-neutral)}.--bg-brand{background-color:var(--rs-color-brand);color:var(--rs-color-on-brand)}.--bg-white{background-color:var(--rs-color-white);color:var(--rs-color-black)}.--bg-black{background-color:var(--rs-color-black);color:var(--rs-color-white)}.--shadow-raised{box-shadow:var(--rs-shadow-raised)}.--shadow-overlay{box-shadow:var(--rs-shadow-overlay)}.--overflow-hidden{overflow:hidden}.--overflow-auto{overflow:auto}.--divided{--rs-view-gaps-count-multiplier:2}.--flex{display:flex;flex-direction:column;justify-content:flex-start}.--direction-column{flex-direction:column;flex-wrap:nowrap}.--direction-column>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column>.item--gap-auto{margin-top:auto}.--direction-column-reverse{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse>.item--gap-auto{margin-top:auto}.--direction-row{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row>.item--gap-auto{margin-inline-start:auto}.--direction-row>button{width:auto!important}.--direction-row-reverse{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse>button{width:auto!important}.--nowrap{flex-wrap:nowrap}.--nowrap>*{flex-shrink:0}.--wrap{flex-wrap:wrap}@media (--rs-viewport-m ){.--nowrap-false--m,.--wrap-true--m{flex-wrap:wrap}.--nowrap-true--m,.--wrap-false--m{flex-wrap:nowrap}}@media (--rs-viewport-l ){.--nowrap-false--l,.--wrap-true--l{flex-wrap:wrap}.--nowrap-true--l,.--wrap-false--l{flex-wrap:nowrap}}@media (--rs-viewport-xl ){.--nowrap-false--xl,.--wrap-true--xl{flex-wrap:wrap}.--nowrap-true--xl,.--wrap-false--xl{flex-wrap:nowrap}}.--align-start{align-items:flex-start!important}.--align-end{align-items:flex-end!important}.--align-center{align-items:center!important}.--align-stretch{align-items:stretch!important}.--align-baseline{align-items:baseline!important}.--justify-start{justify-content:flex-start}.--justify-end{justify-content:flex-end}.--justify-center{justify-content:center}.--justify-space-between{justify-content:space-between}.divider{align-self:stretch}.item--grow{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--columns{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-1{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-1,.item--columns-2{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-2{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3,.item--columns-4{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-4{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5,.item--columns-6{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-6{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7,.item--columns-8{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-8{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10,.item--columns-9{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-10{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11,.item--columns-12{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-12{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto{width:auto}@media (--rs-viewport-m ){.item--columns-1--m{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--m{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--m{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--m{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--m{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--m{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--m{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--m{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--m{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--m{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--m{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--m{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--m{width:auto}}@media (--rs-viewport-l ){.item--columns-1--l{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--l{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--l{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--l{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--l{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--l{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--l{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--l{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--l{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--l{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--l{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--l{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--l{width:auto}}@media (--rs-viewport-xl ){.item--columns-1--xl{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--xl{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--xl{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--xl{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--xl{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--xl{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--xl{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--xl{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--xl{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--xl{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--xl{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--xl{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--xl{width:auto}}.--padding{--rs-view-p-vertical-s:0;--rs-view-p-vertical-m:var(--rs-view-p-vertical-s);--rs-view-p-vertical-l:var(--rs-view-p-vertical-m);--rs-view-p-vertical-xl:var(--rs-view-p-vertical-l);--rs-view-p-vertical:var(--rs-view-p-vertical-s);--rs-view-p-horizontal-s:0;--rs-view-p-horizontal-m:var(--rs-view-p-horizontal-s);--rs-view-p-horizontal-l:var(--rs-view-p-horizontal-m);--rs-view-p-horizontal-xl:var(--rs-view-p-horizontal-l);--rs-view-p-horizontal:var(--rs-view-p-horizontal-s)}.--padding-top{--rs-view-p-top-s:0;--rs-view-p-top-m:var(--rs-view-p-top-s);--rs-view-p-top-l:var(--rs-view-p-top-m);--rs-view-p-top-xl:var(--rs-view-p-top-l);--rs-view-p-top:var(--rs-view-p-top-s)}.--padding-bottom{--rs-view-p-bottom-s:0;--rs-view-p-bottom-m:var(--rs-view-p-bottom-s);--rs-view-p-bottom-l:var(--rs-view-p-bottom-m);--rs-view-p-bottom-xl:var(--rs-view-p-bottom-l);--rs-view-p-bottom:var(--rs-view-p-bottom-s)}.--padding-start{--rs-view-p-start-s:0;--rs-view-p-start-m:var(--rs-view-p-start-s);--rs-view-p-start-l:var(--rs-view-p-start-m);--rs-view-p-start-xl:var(--rs-view-p-start-l);--rs-view-p-start:var(--rs-view-p-start-s)}.--padding-end{--rs-view-p-end-s:0;--rs-view-p-end-m:var(--rs-view-p-end-s);--rs-view-p-end-l:var(--rs-view-p-end-m);--rs-view-p-end-xl:var(--rs-view-p-end-l);--rs-view-p-end:var(--rs-view-p-end-s)}.root{--rs-view-gap-s:0;--rs-view-gap-m:var(--rs-view-gap-s);--rs-view-gap-l:var(--rs-view-gap-m);--rs-view-gap-xl:var(--rs-view-gap-l);--rs-view-gap:var(--rs-view-gap-s)}.root>.item{--rs-view-item-order-s:0;--rs-view-item-order-m:var(--rs-view-item-order-s);--rs-view-item-order-l:var(--rs-view-item-order-m);--rs-view-item-order-xl:var(--rs-view-item-order-l);--rs-view-item-order:var(--rs-view-item-order-s);--rs-view-item-gap-before-s:initial;--rs-view-item-gap-before-m:var(--rs-view-item-gap-before-s);--rs-view-item-gap-before-l:var(--rs-view-item-gap-before-m);--rs-view-item-gap-before-xl:var(--rs-view-item-gap-before-l);--rs-view-item-gap-before:var(--rs-view-item-gap-before-s)}@media (--rs-viewport-m ){.--direction-column--m{flex-direction:column;flex-wrap:nowrap}.--direction-column--m>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--m>.item--gap-auto{margin-top:auto}.--direction-column-reverse--m{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--m>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--m>.item--gap-auto{margin-top:auto}.--direction-row--m{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--m>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--m>.item--gap-auto{margin-inline-start:auto}.--direction-row--m>button{width:auto!important}.--direction-row-reverse--m{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--m>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--m>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--m>button{width:auto!important}.--align-start--m{align-items:flex-start!important}.--align-end--m{align-items:flex-end!important}.--align-center--m{align-items:center!important}.--align-stretch--m{align-items:stretch!important}.--align-baseline--m{align-items:baseline!important}.--justify-start--m{justify-content:flex-start}.--justify-end--m{justify-content:flex-end}.--justify-center--m{justify-content:center}.--justify-space-between--m{justify-content:space-between}.item--grow-true--m{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--m{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-m);--rs-view-p-horizontal:var(--rs-view-p-horizontal-m)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-m)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-m)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-m)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-m)}.root{--rs-view-gap:var(--rs-view-gap-m)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-m);--rs-view-item-gap-before:var(--rs-view-item-gap-before-m)}}@media (--rs-viewport-l ){.--direction-column--l{flex-direction:column;flex-wrap:nowrap}.--direction-column--l>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--l>.item--gap-auto{margin-top:auto}.--direction-column-reverse--l{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--l>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--l>.item--gap-auto{margin-top:auto}.--direction-row--l{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--l>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--l>.item--gap-auto{margin-inline-start:auto}.--direction-row--l>button{width:auto!important}.--direction-row-reverse--l{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--l>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--l>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--l>button{width:auto!important}.--align-start--l{align-items:flex-start!important}.--align-end--l{align-items:flex-end!important}.--align-center--l{align-items:center!important}.--align-stretch--l{align-items:stretch!important}.--align-baseline--l{align-items:baseline!important}.--justify-start--l{justify-content:flex-start}.--justify-end--l{justify-content:flex-end}.--justify-center--l{justify-content:center}.--justify-space-between--l{justify-content:space-between}.item--grow-true--l{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--l{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-l);--rs-view-p-horizontal:var(--rs-view-p-horizontal-l)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-l)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-l)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-l)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-l)}.root{--rs-view-gap:var(--rs-view-gap-l)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-l);--rs-view-item-gap-before:var(--rs-view-item-gap-before-l)}}@media (--rs-viewport-xl ){.--direction-column--xl{flex-direction:column;flex-wrap:nowrap}.--direction-column--xl>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--xl>.item--gap-auto{margin-top:auto}.--direction-column-reverse--xl{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--xl>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--xl>.item--gap-auto{margin-top:auto}.--direction-row--xl{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--xl>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--xl>.item--gap-auto{margin-inline-start:auto}.--direction-row--xl>button{width:auto!important}.--direction-row-reverse--xl{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--xl>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--xl>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--xl>button{width:auto!important}.--align-start--xl{align-items:flex-start!important}.--align-end--xl{align-items:flex-end!important}.--align-center--xl{align-items:center!important}.--align-stretch--xl{align-items:stretch!important}.--align-baseline--xl{align-items:baseline!important}.--justify-start--xl{justify-content:flex-start}.--justify-end--xl{justify-content:flex-end}.--justify-center--xl{justify-content:center}.--justify-space-between--xl{justify-content:space-between}.item--grow-true--xl{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--xl{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-xl);--rs-view-p-horizontal:var(--rs-view-p-horizontal-xl)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-xl)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-xl)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-xl)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-xl)}.root{--rs-view-gap:var(--rs-view-gap-xl)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-xl);--rs-view-item-gap-before:var(--rs-view-item-gap-before-xl)}}
|
1
|
+
.root{--rs-view-gaps-count-multiplier:1;--rs-view-z:auto;--rs-view-gap-value:calc(var(--rs-view-gap) * var(--rs-unit-x1));--rs-view-border-width:0px;gap:var(--rs-view-gap-value);z-index:var(--rs-view-z)}.item{--rs-view-item-gap:calc(var(--rs-unit-x1) * var(--rs-view-item-gap-before) - var(--rs-view-gap-value));order:var(--rs-view-item-order)}.--padding{padding:calc(var(--rs-unit-x1) * var(--rs-view-p-vertical, var(--rs-view-p-top)) - var(--rs-view-border-width)) calc(var(--rs-unit-x1) * var(--rs-view-p-horizontal, var(--rs-view-p-start)) - var(--rs-view-border-width))}.--padding-top{padding-top:calc(var(--rs-unit-x1) * var(--rs-view-p-top))}.--padding-bottom{padding-bottom:calc(var(--rs-unit-x1) * var(--rs-view-p-bottom))}.--padding-start{padding-inline-start:calc(var(--rs-unit-x1) * var(--rs-view-p-start))}.--padding-end{padding-inline-end:calc(var(--rs-unit-x1) * var(--rs-view-p-end))}.--animated{transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:background-color,color,border-color,box-shadow}.--align-text-start{text-align:start}.--align-text-center{text-align:center}.--align-text-end{text-align:end}.--bg-neutral{background-color:var(--rs-color-background-neutral);color:var(--rs-color-on-background-neutral)}.--bg-positive{background-color:var(--rs-color-background-positive);color:var(--rs-color-on-background-positive)}.--bg-warning{background-color:var(--rs-color-background-warning);color:var(--rs-color-on-background-warning)}.--bg-critical{background-color:var(--rs-color-background-critical);color:var(--rs-color-on-background-critical)}.--bg-primary{background-color:var(--rs-color-background-primary);color:var(--rs-color-on-background-primary)}.--bg-neutral-faded{background-color:var(--rs-color-background-neutral-faded);color:var(--rs-color-foreground-neutral)}.--bg-positive-faded{background-color:var(--rs-color-background-positive-faded);color:var(--rs-color-foreground-neutral)}.--bg-warning-faded{background-color:var(--rs-color-background-warning-faded);color:var(--rs-color-foreground-neutral)}.--bg-critical-faded{background-color:var(--rs-color-background-critical-faded);color:var(--rs-color-foreground-neutral)}.--bg-primary-faded{background-color:var(--rs-color-background-primary-faded)}.--bg-page,.--bg-primary-faded{color:var(--rs-color-foreground-neutral)}.--bg-page{background-color:var(--rs-color-background-page)}.--bg-page-faded{background-color:var(--rs-color-background-page-faded)}.--bg-disabled,.--bg-page-faded{color:var(--rs-color-foreground-neutral)}.--bg-disabled{background-color:var(--rs-color-background-disabled)}.--bg-disabled-faded{background-color:var(--rs-color-background-disabled-faded);color:var(--rs-color-foreground-neutral)}.--bg-elevation-base{background-color:var(--rs-color-background-elevation-base);color:var(--rs-color-foreground-neutral)}.--bg-elevation-raised{background-color:var(--rs-color-background-elevation-raised);color:var(--rs-color-foreground-neutral)}.--bg-elevation-overlay{background-color:var(--rs-color-background-elevation-overlay);color:var(--rs-color-foreground-neutral)}.--bg-brand{background-color:var(--rs-color-brand);color:var(--rs-color-on-brand)}.--bg-white{background-color:var(--rs-color-white);color:var(--rs-color-black)}.--bg-black{background-color:var(--rs-color-black);color:var(--rs-color-white)}.--shadow-raised{box-shadow:var(--rs-shadow-raised)}.--shadow-overlay{box-shadow:var(--rs-shadow-overlay)}.--overflow-hidden{overflow:hidden}.--overflow-auto{overflow:auto}.--divided{--rs-view-gaps-count-multiplier:2}.--flex{display:flex;flex-direction:column;justify-content:flex-start}.--direction-column{flex-direction:column;flex-wrap:nowrap}.--direction-column>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column>.item--gap-auto{margin-top:auto}.--direction-column-reverse{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse>.item--gap-auto{margin-top:auto}.--direction-row{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row>.item--gap-auto{margin-inline-start:auto}.--direction-row>button{width:auto!important}.--direction-row-reverse{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse>button{width:auto!important}.--nowrap{flex-wrap:nowrap}.--nowrap>*{flex-shrink:0}.--wrap{flex-wrap:wrap}@media (--rs-viewport-m ){.--nowrap-false--m,.--wrap-true--m{flex-wrap:wrap}.--nowrap-true--m,.--wrap-false--m{flex-wrap:nowrap}}@media (--rs-viewport-l ){.--nowrap-false--l,.--wrap-true--l{flex-wrap:wrap}.--nowrap-true--l,.--wrap-false--l{flex-wrap:nowrap}}@media (--rs-viewport-xl ){.--nowrap-false--xl,.--wrap-true--xl{flex-wrap:wrap}.--nowrap-true--xl,.--wrap-false--xl{flex-wrap:nowrap}}.divider{align-self:stretch}.item--grow{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--columns{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-1{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-1,.item--columns-2{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-2{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3,.item--columns-4{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-4{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5,.item--columns-6{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-6{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7,.item--columns-8{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-8{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10,.item--columns-9{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-10{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11,.item--columns-12{width:calc((100% - var(--rs-view-gap-value) * var(--rs-view-gaps-count)) / var(--rs-view-columns-count) - var(--rs-view-item-gap, 0px))}.item--columns-12{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto{width:auto}@media (--rs-viewport-m ){.item--columns-1--m{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--m{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--m{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--m{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--m{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--m{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--m{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--m{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--m{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--m{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--m{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--m{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--m{width:auto}}@media (--rs-viewport-l ){.item--columns-1--l{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--l{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--l{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--l{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--l{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--l{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--l{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--l{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--l{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--l{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--l{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--l{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--l{width:auto}}@media (--rs-viewport-xl ){.item--columns-1--xl{--rs-view-columns-count:calc(12 / 1);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-2--xl{--rs-view-columns-count:calc(12 / 2);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-3--xl{--rs-view-columns-count:calc(12 / 3);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-4--xl{--rs-view-columns-count:calc(12 / 4);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-5--xl{--rs-view-columns-count:calc(12 / 5);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-6--xl{--rs-view-columns-count:calc(12 / 6);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-7--xl{--rs-view-columns-count:calc(12 / 7);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-8--xl{--rs-view-columns-count:calc(12 / 8);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-9--xl{--rs-view-columns-count:calc(12 / 9);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-10--xl{--rs-view-columns-count:calc(12 / 10);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-11--xl{--rs-view-columns-count:calc(12 / 11);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-12--xl{--rs-view-columns-count:calc(12 / 12);--rs-view-gaps-count:calc((var(--rs-view-columns-count) - 1) * var(--rs-view-gaps-count-multiplier))}.item--columns-auto--xl{width:auto}}.--padding{--rs-view-p-vertical-s:0;--rs-view-p-vertical-m:var(--rs-view-p-vertical-s);--rs-view-p-vertical-l:var(--rs-view-p-vertical-m);--rs-view-p-vertical-xl:var(--rs-view-p-vertical-l);--rs-view-p-vertical:var(--rs-view-p-vertical-s);--rs-view-p-horizontal-s:0;--rs-view-p-horizontal-m:var(--rs-view-p-horizontal-s);--rs-view-p-horizontal-l:var(--rs-view-p-horizontal-m);--rs-view-p-horizontal-xl:var(--rs-view-p-horizontal-l);--rs-view-p-horizontal:var(--rs-view-p-horizontal-s)}.--padding-top{--rs-view-p-top-s:0;--rs-view-p-top-m:var(--rs-view-p-top-s);--rs-view-p-top-l:var(--rs-view-p-top-m);--rs-view-p-top-xl:var(--rs-view-p-top-l);--rs-view-p-top:var(--rs-view-p-top-s)}.--padding-bottom{--rs-view-p-bottom-s:0;--rs-view-p-bottom-m:var(--rs-view-p-bottom-s);--rs-view-p-bottom-l:var(--rs-view-p-bottom-m);--rs-view-p-bottom-xl:var(--rs-view-p-bottom-l);--rs-view-p-bottom:var(--rs-view-p-bottom-s)}.--padding-start{--rs-view-p-start-s:0;--rs-view-p-start-m:var(--rs-view-p-start-s);--rs-view-p-start-l:var(--rs-view-p-start-m);--rs-view-p-start-xl:var(--rs-view-p-start-l);--rs-view-p-start:var(--rs-view-p-start-s)}.--padding-end{--rs-view-p-end-s:0;--rs-view-p-end-m:var(--rs-view-p-end-s);--rs-view-p-end-l:var(--rs-view-p-end-m);--rs-view-p-end-xl:var(--rs-view-p-end-l);--rs-view-p-end:var(--rs-view-p-end-s)}.root{--rs-view-gap-s:0;--rs-view-gap-m:var(--rs-view-gap-s);--rs-view-gap-l:var(--rs-view-gap-m);--rs-view-gap-xl:var(--rs-view-gap-l);--rs-view-gap:var(--rs-view-gap-s)}.root>.item{--rs-view-item-order-s:0;--rs-view-item-order-m:var(--rs-view-item-order-s);--rs-view-item-order-l:var(--rs-view-item-order-m);--rs-view-item-order-xl:var(--rs-view-item-order-l);--rs-view-item-order:var(--rs-view-item-order-s);--rs-view-item-gap-before-s:initial;--rs-view-item-gap-before-m:var(--rs-view-item-gap-before-s);--rs-view-item-gap-before-l:var(--rs-view-item-gap-before-m);--rs-view-item-gap-before-xl:var(--rs-view-item-gap-before-l);--rs-view-item-gap-before:var(--rs-view-item-gap-before-s)}@media (--rs-viewport-m ){.--direction-column--m{flex-direction:column;flex-wrap:nowrap}.--direction-column--m>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--m>.item--gap-auto{margin-top:auto}.--direction-column-reverse--m{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--m>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--m>.item--gap-auto{margin-top:auto}.--direction-row--m{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--m>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--m>.item--gap-auto{margin-inline-start:auto}.--direction-row--m>button{width:auto!important}.--direction-row-reverse--m{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--m>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--m>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--m>button{width:auto!important}.item--grow-true--m{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--m{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-m);--rs-view-p-horizontal:var(--rs-view-p-horizontal-m)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-m)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-m)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-m)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-m)}.root{--rs-view-gap:var(--rs-view-gap-m)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-m);--rs-view-item-gap-before:var(--rs-view-item-gap-before-m)}}@media (--rs-viewport-l ){.--direction-column--l{flex-direction:column;flex-wrap:nowrap}.--direction-column--l>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--l>.item--gap-auto{margin-top:auto}.--direction-column-reverse--l{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--l>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--l>.item--gap-auto{margin-top:auto}.--direction-row--l{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--l>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--l>.item--gap-auto{margin-inline-start:auto}.--direction-row--l>button{width:auto!important}.--direction-row-reverse--l{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--l>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--l>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--l>button{width:auto!important}.item--grow-true--l{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--l{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-l);--rs-view-p-horizontal:var(--rs-view-p-horizontal-l)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-l)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-l)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-l)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-l)}.root{--rs-view-gap:var(--rs-view-gap-l)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-l);--rs-view-item-gap-before:var(--rs-view-item-gap-before-l)}}@media (--rs-viewport-xl ){.--direction-column--xl{flex-direction:column;flex-wrap:nowrap}.--direction-column--xl>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column--xl>.item--gap-auto{margin-top:auto}.--direction-column-reverse--xl{flex-direction:column-reverse;flex-wrap:nowrap}.--direction-column-reverse--xl>.item--gap-before{margin-top:var(--rs-view-item-gap)}.--direction-column-reverse--xl>.item--gap-auto{margin-top:auto}.--direction-row--xl{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.--direction-row--xl>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row--xl>.item--gap-auto{margin-inline-start:auto}.--direction-row--xl>button{width:auto!important}.--direction-row-reverse--xl{align-items:flex-start;flex-direction:row-reverse;flex-wrap:wrap}.--direction-row-reverse--xl>.item--gap-before{margin-inline-start:var(--rs-view-item-gap)}.--direction-row-reverse--xl>.item--gap-auto{margin-inline-start:auto}.--direction-row-reverse--xl>button{width:auto!important}.item--grow-true--xl{flex-basis:0;flex-grow:1;flex-shrink:1;min-width:0}.item--grow-false--xl{flex-basis:auto;flex-grow:0;flex-shrink:0;min-width:auto}.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-xl);--rs-view-p-horizontal:var(--rs-view-p-horizontal-xl)}.--padding-top{--rs-view-p-top:var(--rs-view-p-top-xl)}.--padding-bottom{--rs-view-p-bottom:var(--rs-view-p-bottom-xl)}.--padding-start{--rs-view-p-start:var(--rs-view-p-start-xl)}.--padding-end{--rs-view-p-end:var(--rs-view-p-end-xl)}.root{--rs-view-gap:var(--rs-view-gap-xl)}.root>.item{--rs-view-item-order:var(--rs-view-item-order-xl);--rs-view-item-gap-before:var(--rs-view-item-gap-before-xl)}}
|
@@ -10,8 +10,8 @@ export type Props<TagName extends keyof JSX.IntrinsicElements = "div"> = {
|
|
10
10
|
direction?: G.Responsive<Direction>;
|
11
11
|
gap?: G.Responsive<number>;
|
12
12
|
wrap?: G.Responsive<boolean>;
|
13
|
-
align?: G.Responsive<
|
14
|
-
justify?: G.Responsive<
|
13
|
+
align?: G.Responsive<TStyles.Align>;
|
14
|
+
justify?: G.Responsive<TStyles.Justify>;
|
15
15
|
height?: G.Responsive<string | number>;
|
16
16
|
width?: G.Responsive<string | number>;
|
17
17
|
aspectRatio?: G.Responsive<number>;
|
@@ -26,16 +26,20 @@ const Expandable = (props) => {
|
|
26
26
|
const rootEl = rootRef.current;
|
27
27
|
if (!rootEl || !mountedRef.current)
|
28
28
|
return;
|
29
|
-
let targetHeight = 0;
|
30
29
|
if (active) {
|
31
30
|
rootEl.style.height = "auto";
|
32
|
-
|
33
|
-
|
31
|
+
requestAnimationFrame(() => {
|
32
|
+
const targetHeight = rootEl.clientHeight;
|
33
|
+
rootEl.style.height = "0";
|
34
|
+
setAnimatedHeight(targetHeight);
|
35
|
+
});
|
34
36
|
}
|
35
|
-
|
37
|
+
else {
|
36
38
|
rootEl.style.height = `${rootEl.clientHeight}px`;
|
39
|
+
requestAnimationFrame(() => {
|
40
|
+
setAnimatedHeight(0);
|
41
|
+
});
|
37
42
|
}
|
38
|
-
setAnimatedHeight(targetHeight);
|
39
43
|
}, [active]);
|
40
44
|
return (_jsx("div", { ...attributes, className: contentClassNames, ref: rootRef, style: animatedHeight !== null
|
41
45
|
? { height: animatedHeight, overflow: animatedHeight === "auto" ? "visible" : undefined }
|
@@ -1 +1 @@
|
|
1
|
-
.content{--rs-flyout-gap:
|
1
|
+
.content{--rs-flyout-gap:0;--rs-flyout-origin-x:50%;--rs-flyout-origin-y:50%;position:absolute}.inner{opacity:0;transform:scale(.86) translateY(0);transform-origin:var(--rs-flyout-origin-x) var(--rs-flyout-origin-y);transition:1ms var(--rs-easing-accelerate)}.content.--width-trigger .inner{transform:scale(1) translateY(var(--rs-unit-x2))}.content.--position-top,.content.--position-top-end,.content.--position-top-start{--rs-flyout-origin-y:100%;padding-bottom:calc(var(--rs-unit-x1) * var(--rs-flyout-gap))}.content.--position-bottom,.content.--position-bottom-end,.content.--position-bottom-start{--rs-flyout-origin-y:0%;padding-top:calc(var(--rs-unit-x1) * var(--rs-flyout-gap))}.content.--position-bottom-start,.content.--position-top-start{--rs-flyout-origin-x:0%}.content.--position-bottom-end,.content.--position-top-end{--rs-flyout-origin-x:100%}.content.--position-start,.content.--position-start-bottom,.content.--position-start-top{--rs-flyout-origin-x:100%;padding-right:calc(var(--rs-unit-x1) * var(--rs-flyout-gap))}.content.--position-end,.content.--position-end-bottom,.content.--position-end-top{--rs-flyout-origin-x:0%;padding-left:calc(var(--rs-unit-x1) * var(--rs-flyout-gap))}.content.--position-end-top,.content.--position-start-top{--rs-flyout-origin-y:0%}.content.--position-end-bottom,.content.--position-start-bottom{--rs-flyout-origin-y:100%}.content.--visible .inner{opacity:1;transform:scale(1) translateY(0)}.content.--animated .inner{transition-duration:var(--rs-duration-fast);transition-property:opacity,transform}.content.--animated.--visible .inner{transition-timing-function:var(--rs-easing-decelerate)}.content.--hover-disabled{pointer-events:none}
|
@@ -1,17 +1,23 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import type * as G from "../../../types/global";
|
3
|
-
import type { TrapMode } from "../../../utilities/a11y
|
3
|
+
import type { TrapMode } from "../../../utilities/a11y";
|
4
4
|
/**
|
5
5
|
* Utility
|
6
6
|
*/
|
7
|
-
|
7
|
+
type XSide = "start" | "end";
|
8
|
+
type YSide = "top" | "bottom";
|
9
|
+
export type Side = XSide | YSide;
|
10
|
+
export type Position = `${YSide}` | `${YSide}-${XSide}` | `${XSide}` | `${XSide}-${YSide}`;
|
8
11
|
export type Width = "trigger" | string;
|
9
12
|
export type Options = {
|
10
13
|
width?: Width;
|
11
14
|
position: Position;
|
12
15
|
container?: HTMLElement | null;
|
13
16
|
rtl: boolean;
|
14
|
-
|
17
|
+
fallbackPositions?: Position[];
|
18
|
+
lastUsedFallback: Position;
|
19
|
+
onFallback: (position: Position) => void;
|
20
|
+
contentGap?: number;
|
15
21
|
};
|
16
22
|
export type Styles = React.CSSProperties;
|
17
23
|
export type State = {
|
@@ -64,8 +70,10 @@ export type TriggerAttributes = {
|
|
64
70
|
type BaseProps = {
|
65
71
|
id?: string;
|
66
72
|
triggerType?: "hover" | "click" | "focus";
|
73
|
+
groupTimeouts?: boolean;
|
67
74
|
position?: Position;
|
68
75
|
forcePosition?: boolean;
|
76
|
+
fallbackPositions?: Position[] | false;
|
69
77
|
trapFocusMode?: TrapMode;
|
70
78
|
disabled?: boolean;
|
71
79
|
disableHideAnimation?: boolean;
|
@@ -80,6 +88,7 @@ type BaseProps = {
|
|
80
88
|
contentAttributes?: G.Attributes<"div">;
|
81
89
|
instanceRef?: React.Ref<Instance>;
|
82
90
|
containerRef?: React.RefObject<HTMLElement>;
|
91
|
+
initialFocusRef?: React.RefObject<HTMLElement>;
|
83
92
|
};
|
84
93
|
export type DefaultProps = Required<{
|
85
94
|
position: BaseProps["position"];
|
@@ -4,7 +4,7 @@ import React from "react";
|
|
4
4
|
import { classNames } from "../../../utilities/helpers.js";
|
5
5
|
import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.js";
|
6
6
|
import Portal from "../Portal/index.js";
|
7
|
-
import { getClosestFlyoutTarget } from "../../../utilities/dom.js";
|
7
|
+
import { getClosestFlyoutTarget } from "../../../utilities/dom/index.js";
|
8
8
|
import cooldown from "./utilities/cooldown.js";
|
9
9
|
import { useFlyoutContext, ContentProvider } from "./Flyout.context.js";
|
10
10
|
import s from "./Flyout.module.css";
|
@@ -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 TrapFocus from "../../../utilities/a11y/
|
4
|
+
import { TrapFocus, checkKeyboardMode } from "../../../utilities/a11y/index.js";
|
5
5
|
import useIsDismissible from "../../../hooks/_private/useIsDismissible.js";
|
6
6
|
import useElementId from "../../../hooks/useElementId.js";
|
7
7
|
import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.js";
|
@@ -9,14 +9,14 @@ import useHotkeys from "../../../hooks/useHotkeys.js";
|
|
9
9
|
import useOnClickOutside from "../../../hooks/_private/useOnClickOutside.js";
|
10
10
|
import useRTL from "../../../hooks/useRTL.js";
|
11
11
|
import { checkTransitions, onNextFrame } from "../../../utilities/animation.js";
|
12
|
-
import { checkKeyboardMode } from "../../../utilities/a11y/keyboardMode.js";
|
13
12
|
import useFlyout from "./useFlyout.js";
|
14
13
|
import * as timeouts from "./Flyout.constants.js";
|
15
14
|
import cooldown from "./utilities/cooldown.js";
|
16
15
|
import { Provider, useFlyoutTriggerContext, useFlyoutContext, useFlyoutContentContext, } from "./Flyout.context.js";
|
17
16
|
import useHandlerRef from "../../../hooks/useHandlerRef.js";
|
18
17
|
const FlyoutRoot = (props) => {
|
19
|
-
const { triggerType = "click", onOpen, onClose, children, disabled, forcePosition, trapFocusMode, width, disableHideAnimation, disableContentHover, disableCloseOnOutsideClick, contentGap, contentClassName, contentAttributes, position: passedPosition, active: passedActive, id: passedId, instanceRef, containerRef, } = props;
|
18
|
+
const { triggerType = "click", groupTimeouts, onOpen, onClose, children, disabled, forcePosition, trapFocusMode, width, disableHideAnimation, disableContentHover, disableCloseOnOutsideClick, contentGap = 2, contentClassName, contentAttributes, position: passedPosition, active: passedActive, id: passedId, instanceRef, containerRef, initialFocusRef, } = props;
|
19
|
+
const fallbackPositions = props.fallbackPositions === false || forcePosition ? [] : props.fallbackPositions;
|
20
20
|
const onOpenRef = useHandlerRef(onOpen);
|
21
21
|
const onCloseRef = useHandlerRef(onClose);
|
22
22
|
const resolvedActive = disabled === true ? false : passedActive;
|
@@ -33,7 +33,7 @@ const FlyoutRoot = (props) => {
|
|
33
33
|
*/
|
34
34
|
const triggerElRef = (!parentFlyoutContentContext && parentFlyoutTriggerContext?.triggerElRef) ||
|
35
35
|
internalTriggerElRef;
|
36
|
-
const triggerBoundsRef = React.useRef();
|
36
|
+
const triggerBoundsRef = React.useRef(null);
|
37
37
|
const flyoutElRef = React.useRef(null);
|
38
38
|
const id = useElementId(passedId);
|
39
39
|
const timerRef = React.useRef();
|
@@ -57,11 +57,13 @@ const FlyoutRoot = (props) => {
|
|
57
57
|
position: passedPosition,
|
58
58
|
defaultActive: resolvedActive,
|
59
59
|
container: containerRef?.current,
|
60
|
-
|
60
|
+
fallbackPositions,
|
61
|
+
contentGap,
|
61
62
|
});
|
62
63
|
const { status, updatePosition, render, hide, remove, show } = flyout;
|
64
|
+
const isRendered = status !== "idle";
|
63
65
|
// Don't create dismissible queue for hover flyout because they close all together on mouseout
|
64
|
-
const isDismissible = useIsDismissible(
|
66
|
+
const isDismissible = useIsDismissible(isRendered && triggerType !== "hover", flyoutElRef, triggerElRef);
|
65
67
|
const clearTimer = React.useCallback(() => {
|
66
68
|
if (timerRef.current)
|
67
69
|
clearTimeout(timerRef.current);
|
@@ -71,20 +73,20 @@ const FlyoutRoot = (props) => {
|
|
71
73
|
* Called from the internal actions
|
72
74
|
*/
|
73
75
|
const handleOpen = React.useCallback(() => {
|
74
|
-
const canOpen = !lockedRef.current &&
|
76
|
+
const canOpen = !lockedRef.current && !isRendered;
|
75
77
|
if (!canOpen)
|
76
78
|
return;
|
77
79
|
onOpenRef.current?.();
|
78
|
-
}, [
|
80
|
+
}, [isRendered, onOpenRef]);
|
79
81
|
const handleClose = React.useCallback((options) => {
|
80
82
|
const isLocked = triggerType === "click" && !isDismissible();
|
81
|
-
const canClose = !isLocked && (
|
83
|
+
const canClose = !isLocked && (isRendered || disabled);
|
82
84
|
if (!canClose)
|
83
85
|
return;
|
84
86
|
onCloseRef.current?.();
|
85
87
|
if (options?.closeParents)
|
86
88
|
parentFlyoutContext?.handleClose?.();
|
87
|
-
}, [
|
89
|
+
}, [isRendered, isDismissible, triggerType, onCloseRef, disabled, parentFlyoutContext]);
|
88
90
|
/**
|
89
91
|
* Trigger event handlers
|
90
92
|
*/
|
@@ -113,30 +115,33 @@ const FlyoutRoot = (props) => {
|
|
113
115
|
}, [triggerType]);
|
114
116
|
const handleMouseEnter = React.useCallback(() => {
|
115
117
|
clearTimer();
|
116
|
-
console.log("enter");
|
117
118
|
if (hoverTriggeredWithTouchEventRef.current) {
|
118
119
|
handleOpen();
|
119
120
|
hoverTriggeredWithTouchEventRef.current = false;
|
120
121
|
}
|
121
122
|
else {
|
122
|
-
|
123
|
-
if (!isSubmenu && triggerType === "hover")
|
123
|
+
if (groupTimeouts)
|
124
124
|
cooldown.warm();
|
125
|
+
timerRef.current = setTimeout(() => {
|
126
|
+
handleOpen();
|
127
|
+
}, groupTimeouts && cooldown.status === "warming"
|
128
|
+
? timeouts.mouseEnter
|
129
|
+
: timeouts.mouseEnterShort);
|
125
130
|
}
|
126
|
-
}, [clearTimer, timerRef, handleOpen,
|
131
|
+
}, [clearTimer, timerRef, handleOpen, groupTimeouts]);
|
127
132
|
const handleMouseLeave = React.useCallback(() => {
|
128
133
|
cooldown.cool();
|
129
134
|
clearTimer();
|
130
135
|
timerRef.current = setTimeout(() => handleClose(), timeouts.mouseLeave);
|
131
136
|
}, [clearTimer, timerRef, handleClose]);
|
132
137
|
const handleTriggerClick = React.useCallback(() => {
|
133
|
-
if (
|
138
|
+
if (!isRendered) {
|
134
139
|
handleOpen();
|
135
140
|
}
|
136
141
|
else {
|
137
142
|
handleClose();
|
138
143
|
}
|
139
|
-
}, [
|
144
|
+
}, [isRendered, handleOpen, handleClose]);
|
140
145
|
const handleTriggerMouseDown = React.useCallback(() => {
|
141
146
|
const rect = triggerElRef.current?.getBoundingClientRect();
|
142
147
|
triggerBoundsRef.current = rect;
|
@@ -154,6 +159,11 @@ const FlyoutRoot = (props) => {
|
|
154
159
|
if (flyoutElRef.current !== e.currentTarget || e.propertyName !== "transform")
|
155
160
|
return;
|
156
161
|
transitionStartedRef.current = true;
|
162
|
+
/**
|
163
|
+
* After animation has started, we're sure about the correct bounds
|
164
|
+
* so drop the cache to make flyout work when trigger moves around
|
165
|
+
*/
|
166
|
+
triggerBoundsRef.current = null;
|
157
167
|
}, [resolvedActive]);
|
158
168
|
const handleTransitionEnd = React.useCallback((e) => {
|
159
169
|
if (flyoutElRef.current !== e.currentTarget || e.propertyName !== "transform")
|
@@ -181,14 +191,14 @@ const FlyoutRoot = (props) => {
|
|
181
191
|
if (checkTransitions() &&
|
182
192
|
!disableHideAnimation &&
|
183
193
|
transitionStartedRef.current &&
|
184
|
-
(cooldown.status
|
194
|
+
(cooldown.status === "cooling" || !groupTimeouts)) {
|
185
195
|
hide();
|
186
196
|
}
|
187
197
|
else {
|
188
198
|
// In case transitions are disabled globally - remove from the DOM immediately
|
189
199
|
remove();
|
190
200
|
}
|
191
|
-
}, [resolvedActive, render, hide, remove, disableHideAnimation, disabled]);
|
201
|
+
}, [resolvedActive, render, hide, remove, disableHideAnimation, disabled, groupTimeouts]);
|
192
202
|
React.useEffect(() => {
|
193
203
|
// Wait after positioning before show is triggered to animate flyout from the right side
|
194
204
|
if (status === "positioned")
|
@@ -211,6 +221,7 @@ const FlyoutRoot = (props) => {
|
|
211
221
|
trapFocusRef.current = new TrapFocus(flyoutElRef.current);
|
212
222
|
trapFocusRef.current.trap({
|
213
223
|
mode: trapFocusMode,
|
224
|
+
initialFocusEl: initialFocusRef?.current,
|
214
225
|
includeTrigger: triggerType === "hover" && trapFocusMode !== "dialog" && !isSubmenu,
|
215
226
|
onNavigateOutside: () => {
|
216
227
|
handleClose();
|
@@ -220,7 +231,7 @@ const FlyoutRoot = (props) => {
|
|
220
231
|
React.useEffect(() => {
|
221
232
|
if (!disableHideAnimation && status !== "hidden")
|
222
233
|
return;
|
223
|
-
if (disableHideAnimation &&
|
234
|
+
if (disableHideAnimation && isRendered)
|
224
235
|
return;
|
225
236
|
if (trapFocusRef.current?.trapped) {
|
226
237
|
/* Locking the popover to not open it again on trigger focus */
|
@@ -233,7 +244,7 @@ const FlyoutRoot = (props) => {
|
|
233
244
|
trapFocusRef.current.release({ withoutFocusReturn: !shouldReturnFocusRef.current });
|
234
245
|
shouldReturnFocusRef.current = true;
|
235
246
|
}
|
236
|
-
}, [status, triggerType, disableHideAnimation]);
|
247
|
+
}, [status, isRendered, triggerType, disableHideAnimation]);
|
237
248
|
/**
|
238
249
|
* Release focus trapping on unmount
|
239
250
|
*/
|
@@ -244,12 +255,14 @@ const FlyoutRoot = (props) => {
|
|
244
255
|
* Update position on resize or RTL
|
245
256
|
*/
|
246
257
|
React.useEffect(() => {
|
258
|
+
if (!isRendered)
|
259
|
+
return;
|
247
260
|
const resizeObserver = new ResizeObserver(() => updatePosition({ sync: true }));
|
248
261
|
resizeObserver.observe(document.body);
|
249
262
|
if (triggerElRef.current)
|
250
263
|
resizeObserver.observe(triggerElRef.current);
|
251
264
|
return () => resizeObserver.disconnect();
|
252
|
-
}, [updatePosition, triggerElRef]);
|
265
|
+
}, [updatePosition, triggerElRef, isRendered]);
|
253
266
|
React.useEffect(() => {
|
254
267
|
updatePosition();
|
255
268
|
}, [isRTL, updatePosition]);
|
@@ -6,10 +6,12 @@ export default _default;
|
|
6
6
|
export declare const positions: () => React.JSX.Element;
|
7
7
|
export declare const dynamicPosition: () => React.JSX.Element;
|
8
8
|
export declare const modes: () => React.JSX.Element;
|
9
|
+
export declare const widthTrigger: () => React.JSX.Element;
|
9
10
|
export declare const disableFlags: () => React.JSX.Element;
|
11
|
+
export declare const initialFocus: () => React.JSX.Element;
|
10
12
|
export declare const customPortalTarget: () => React.JSX.Element;
|
11
13
|
export declare const testWidthOverflowOnMobile: () => React.JSX.Element;
|
12
14
|
export declare const testInsideFixed: () => React.JSX.Element;
|
13
15
|
export declare const testDynamicBounds: () => React.JSX.Element;
|
14
|
-
export declare const
|
16
|
+
export declare const testDisableOutsideClick: () => React.JSX.Element;
|
15
17
|
export declare const scopedTheming: () => React.JSX.Element;
|
@@ -6,6 +6,8 @@ import View from "../../../View/index.js";
|
|
6
6
|
import Theme from "../../../Theme/index.js";
|
7
7
|
import Button from "../../../Button/index.js";
|
8
8
|
import Flyout from "../index.js";
|
9
|
+
import TextField from "../../../TextField/index.js";
|
10
|
+
import useToggle from "../../../../hooks/useToggle.js";
|
9
11
|
export default { title: "Utilities/Internal/Flyout" };
|
10
12
|
const Demo = (props) => {
|
11
13
|
const { position = "bottom-start", children, ...rest } = props;
|
@@ -17,7 +19,7 @@ const Demo = (props) => {
|
|
17
19
|
<div style={{
|
18
20
|
background: "var(--rs-color-background-elevation-overlay)",
|
19
21
|
padding: "var(--rs-unit-x4)",
|
20
|
-
height:
|
22
|
+
height: 150,
|
21
23
|
width: 160,
|
22
24
|
borderRadius: "var(--rs-radius-medium)",
|
23
25
|
border: "1px solid var(--rs-color-border-neutral-faded)",
|
@@ -105,6 +107,20 @@ export const modes = () => (<Example>
|
|
105
107
|
</Demo>
|
106
108
|
</Example.Item>
|
107
109
|
</Example>);
|
110
|
+
export const widthTrigger = () => (<Flyout triggerType="click" width="trigger" position="bottom">
|
111
|
+
<Flyout.Trigger>
|
112
|
+
{(attributes) => <button {...attributes}>Trigger with long text</button>}
|
113
|
+
</Flyout.Trigger>
|
114
|
+
<Flyout.Content>
|
115
|
+
<div style={{
|
116
|
+
background: "var(--rs-color-background-elevation-overlay)",
|
117
|
+
padding: "var(--rs-unit-x4)",
|
118
|
+
borderRadius: "var(--rs-radius-medium)",
|
119
|
+
border: "1px solid var(--rs-color-border-neutral-faded)",
|
120
|
+
boxSizing: "border-box",
|
121
|
+
}}></div>
|
122
|
+
</Flyout.Content>
|
123
|
+
</Flyout>);
|
108
124
|
export const disableFlags = () => (<Example>
|
109
125
|
<Example.Item title="disableContentHover">
|
110
126
|
<Demo triggerType="hover" disableContentHover>
|
@@ -120,6 +136,19 @@ export const disableFlags = () => (<Example>
|
|
120
136
|
<Demo disableHideAnimation>Content</Demo>
|
121
137
|
</Example.Item>
|
122
138
|
</Example>);
|
139
|
+
export const initialFocus = () => {
|
140
|
+
const initialFocusRef = React.useRef(null);
|
141
|
+
return (<Example>
|
142
|
+
<Example.Item title="focuses input on open">
|
143
|
+
<Demo initialFocusRef={initialFocusRef}>
|
144
|
+
<View gap={4}>
|
145
|
+
<Button onClick={() => { }}>Click me</Button>
|
146
|
+
<TextField name="foo" inputAttributes={{ ref: initialFocusRef }}/>
|
147
|
+
</View>
|
148
|
+
</Demo>
|
149
|
+
</Example.Item>
|
150
|
+
</Example>);
|
151
|
+
};
|
123
152
|
class CustomElement extends window.HTMLElement {
|
124
153
|
constructor() {
|
125
154
|
super();
|
@@ -199,36 +228,32 @@ export const testInsideFixed = () => (<Example>
|
|
199
228
|
</Example.Item>
|
200
229
|
</Example>);
|
201
230
|
export const testDynamicBounds = () => {
|
202
|
-
const [left, setLeft] = React.useState(
|
231
|
+
const [left, setLeft] = React.useState(50);
|
232
|
+
const [top, setTop] = React.useState(50);
|
203
233
|
const [size, setSize] = React.useState("medium");
|
204
234
|
const flyoutRef = React.useRef();
|
205
235
|
React.useEffect(() => {
|
206
236
|
flyoutRef.current?.updatePosition();
|
207
|
-
}, [left]);
|
237
|
+
}, [left, top]);
|
208
238
|
return (<View gap={4}>
|
209
239
|
<View direction="row" gap={2}>
|
240
|
+
<Button onClick={() => setLeft((prev) => prev - 10)}>Left</Button>
|
241
|
+
<Button onClick={() => setLeft((prev) => prev + 10)}>Right</Button>
|
242
|
+
<Button onClick={() => setTop((prev) => prev - 10)}>Up</Button>
|
243
|
+
<Button onClick={() => setTop((prev) => prev + 10)}>Down</Button>
|
210
244
|
<Button onClick={() => {
|
211
|
-
setLeft(
|
212
|
-
|
213
|
-
Left
|
214
|
-
</Button>
|
215
|
-
<Button onClick={() => {
|
216
|
-
setLeft("50%");
|
245
|
+
setLeft(50);
|
246
|
+
setTop(50);
|
217
247
|
}}>
|
218
248
|
Center
|
219
249
|
</Button>
|
220
|
-
<Button onClick={() => {
|
221
|
-
setLeft("70%");
|
222
|
-
}}>
|
223
|
-
Right
|
224
|
-
</Button>
|
225
250
|
<Button onClick={() => setSize("large")}>Large button</Button>
|
226
251
|
<Button onClick={() => setSize("medium")}>Small button</Button>
|
227
252
|
</View>
|
228
253
|
<View height={100}>
|
229
|
-
<Flyout position="bottom"
|
254
|
+
<Flyout position="bottom" instanceRef={flyoutRef} disableCloseOnOutsideClick fallbackPositions={["top", "bottom"]}>
|
230
255
|
<Flyout.Trigger>
|
231
|
-
{(attributes) => (<div style={{ position: "absolute", left
|
256
|
+
{(attributes) => (<div style={{ position: "absolute", left: `${left}%`, top: `${top}%` }}>
|
232
257
|
<Button color="primary" attributes={attributes} size={size}>
|
233
258
|
Open
|
234
259
|
</Button>
|
@@ -239,32 +264,29 @@ export const testDynamicBounds = () => {
|
|
239
264
|
background: "var(--rs-color-background-elevation-overlay)",
|
240
265
|
padding: "var(--rs-unit-x4)",
|
241
266
|
height: 100,
|
242
|
-
|
267
|
+
minWidth: 160,
|
243
268
|
borderRadius: "var(--rs-radius-medium)",
|
244
269
|
border: "1px solid var(--rs-color-border-neutral-faded)",
|
245
270
|
boxSizing: "border-box",
|
246
271
|
}}>
|
247
|
-
|
272
|
+
Content
|
248
273
|
</div>
|
249
274
|
</Flyout.Content>
|
250
275
|
</Flyout>
|
251
276
|
</View>
|
252
277
|
</View>);
|
253
278
|
};
|
254
|
-
export const
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
}}></div>
|
266
|
-
</Flyout.Content>
|
267
|
-
</Flyout>);
|
279
|
+
export const testDisableOutsideClick = () => {
|
280
|
+
const toggle = useToggle();
|
281
|
+
return (<Example>
|
282
|
+
<Example.Item title="opening second flyout shouldn't block the first one from closing">
|
283
|
+
<View direction="row" gap={4}>
|
284
|
+
<Demo disableCloseOnOutsideClick/>
|
285
|
+
<Demo />
|
286
|
+
</View>
|
287
|
+
</Example.Item>
|
288
|
+
</Example>);
|
289
|
+
};
|
268
290
|
export const scopedTheming = () => (<View gap={3} align="start">
|
269
291
|
<Button color="primary">Reshaped button</Button>
|
270
292
|
<Theme name="twitter">
|