reshaped 3.1.5 → 3.1.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.
Files changed (125) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +2 -0
  4. package/dist/bundle.js +10 -11
  5. package/dist/cjs/themes/_generator/definitions/reshaped.js +1 -1
  6. package/dist/cjs/themes/reshaped/theme.css +1 -1
  7. package/dist/components/Actionable/Actionable.d.ts +1 -1
  8. package/dist/components/Actionable/Actionable.js +2 -2
  9. package/dist/components/Actionable/Actionable.module.css +1 -1
  10. package/dist/components/Actionable/Actionable.types.d.ts +1 -0
  11. package/dist/components/Autocomplete/Autocomplete.js +12 -6
  12. package/dist/components/Button/Button.js +1 -1
  13. package/dist/components/Button/Button.module.css +1 -1
  14. package/dist/components/Card/Card.d.ts +1 -1
  15. package/dist/components/Card/Card.module.css +1 -1
  16. package/dist/components/Card/tests/Card.stories.d.ts +1 -1
  17. package/dist/components/Checkbox/Checkbox.module.css +1 -1
  18. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  19. package/dist/components/FormControl/FormControl.context.d.ts +2 -1
  20. package/dist/components/Grid/Grid.d.ts +6 -0
  21. package/dist/components/Grid/Grid.js +46 -0
  22. package/dist/components/Grid/Grid.module.css +1 -0
  23. package/dist/components/Grid/Grid.types.d.ts +31 -0
  24. package/dist/components/Grid/Grid.types.js +1 -0
  25. package/dist/components/Grid/index.d.ts +2 -0
  26. package/dist/components/Grid/index.js +1 -0
  27. package/dist/components/Grid/tests/Grid.stories.d.ts +18 -0
  28. package/dist/components/Grid/tests/Grid.stories.js +170 -0
  29. package/dist/components/Icon/Icon.module.css +1 -1
  30. package/dist/components/Link/Link.d.ts +1 -1
  31. package/dist/components/Loader/Loader.module.css +1 -1
  32. package/dist/components/Loader/Loader.types.d.ts +1 -1
  33. package/dist/components/Loader/tests/Loader.stories.js +5 -3
  34. package/dist/components/Modal/Modal.js +1 -1
  35. package/dist/components/Modal/Modal.module.css +1 -1
  36. package/dist/components/Overlay/Overlay.js +1 -1
  37. package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
  38. package/dist/components/Popover/Popover.js +2 -4
  39. package/dist/components/Popover/Popover.types.d.ts +1 -1
  40. package/dist/components/Radio/Radio.module.css +1 -1
  41. package/dist/components/Resizable/Resizable.module.css +1 -1
  42. package/dist/components/ScrollArea/ScrollArea.js +1 -1
  43. package/dist/components/Select/Select.js +1 -1
  44. package/dist/components/Slider/Slider.module.css +1 -1
  45. package/dist/components/Slider/SliderControlled.js +2 -1
  46. package/dist/components/Switch/Switch.module.css +1 -1
  47. package/dist/components/Tabs/Tabs.d.ts +1 -1
  48. package/dist/components/Tabs/Tabs.module.css +1 -1
  49. package/dist/components/Tabs/TabsItem.d.ts +1 -1
  50. package/dist/components/Tabs/TabsItem.js +2 -3
  51. package/dist/components/Tabs/TabsList.js +1 -1
  52. package/dist/components/Tabs/tests/Tabs.stories.d.ts +15 -13
  53. package/dist/components/Tabs/tests/Tabs.stories.js +71 -8
  54. package/dist/components/Toast/ToastContainer.js +1 -2
  55. package/dist/components/Toast/ToastRegion.js +1 -1
  56. package/dist/components/Tooltip/Tooltip.js +1 -1
  57. package/dist/components/View/View.js +7 -3
  58. package/dist/components/View/View.module.css +1 -1
  59. package/dist/components/View/View.types.d.ts +2 -2
  60. package/dist/components/_private/Expandable/Expandable.js +9 -5
  61. package/dist/components/_private/Flyout/Flyout.module.css +1 -1
  62. package/dist/components/_private/Flyout/Flyout.types.d.ts +12 -3
  63. package/dist/components/_private/Flyout/FlyoutContent.js +1 -1
  64. package/dist/components/_private/Flyout/FlyoutControlled.js +34 -20
  65. package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +1 -0
  66. package/dist/components/_private/Flyout/tests/Flyout.stories.js +28 -18
  67. package/dist/components/_private/Flyout/useFlyout.d.ts +2 -1
  68. package/dist/components/_private/Flyout/useFlyout.js +46 -57
  69. package/dist/components/_private/Flyout/utilities/calculatePosition.js +16 -11
  70. package/dist/components/_private/Flyout/utilities/cooldown.d.ts +1 -1
  71. package/dist/components/_private/Flyout/utilities/cooldown.js +17 -5
  72. package/dist/components/_private/Flyout/utilities/getPositionFallbacks.d.ts +3 -0
  73. package/dist/components/_private/Flyout/utilities/getPositionFallbacks.js +39 -0
  74. package/dist/config/tailwind.d.ts +1 -1
  75. package/dist/hooks/_private/useOnClickOutside.js +3 -2
  76. package/dist/hooks/_private/useSingletonHotkeys.js +15 -12
  77. package/dist/hooks/_private/useSingletonKeyboardMode.js +1 -1
  78. package/dist/hooks/tests/useHotkeys.stories.js +3 -0
  79. package/dist/hooks/useDrag.js +2 -1
  80. package/dist/hooks/useScrollLock.js +12 -39
  81. package/dist/index.d.ts +2 -0
  82. package/dist/index.js +1 -0
  83. package/dist/styles/align/align.module.css +1 -0
  84. package/dist/styles/align/index.d.ts +3 -0
  85. package/dist/styles/align/index.js +10 -0
  86. package/dist/styles/justify/index.d.ts +3 -0
  87. package/dist/styles/justify/index.js +10 -0
  88. package/dist/styles/justify/justify.module.css +1 -0
  89. package/dist/styles/types.d.ts +2 -0
  90. package/dist/tests/ShadowDOM.stories.d.ts +6 -0
  91. package/dist/tests/ShadowDOM.stories.js +110 -0
  92. package/dist/themes/_generator/definitions/reshaped.js +1 -1
  93. package/dist/themes/_generator/tests/themes.stories.js +1 -1
  94. package/dist/themes/reshaped/theme.css +1 -1
  95. package/dist/utilities/a11y/TrapFocus.d.ts +1 -1
  96. package/dist/utilities/a11y/TrapFocus.js +14 -5
  97. package/dist/utilities/a11y/focus.d.ts +1 -1
  98. package/dist/utilities/a11y/focus.js +10 -5
  99. package/dist/utilities/a11y/index.d.ts +4 -0
  100. package/dist/utilities/a11y/index.js +3 -0
  101. package/dist/utilities/dom/flyout.d.ts +1 -0
  102. package/dist/utilities/dom/flyout.js +19 -0
  103. package/dist/utilities/dom/index.d.ts +3 -0
  104. package/dist/utilities/dom/index.js +3 -0
  105. package/dist/utilities/dom/shadowDom.d.ts +1 -0
  106. package/dist/utilities/dom/shadowDom.js +4 -0
  107. package/dist/utilities/dom/userSelect.d.ts +2 -0
  108. package/dist/utilities/dom/userSelect.js +6 -0
  109. package/dist/utilities/platform.d.ts +1 -0
  110. package/dist/utilities/platform.js +15 -0
  111. package/dist/utilities/scroll/disable.d.ts +7 -0
  112. package/dist/utilities/scroll/disable.js +13 -0
  113. package/dist/utilities/scroll/helpers.d.ts +1 -0
  114. package/dist/utilities/scroll/helpers.js +17 -0
  115. package/dist/utilities/scroll/index.d.ts +2 -0
  116. package/dist/utilities/scroll/index.js +2 -0
  117. package/dist/utilities/scroll/lock.d.ts +2 -0
  118. package/dist/utilities/scroll/lock.js +24 -0
  119. package/dist/utilities/scroll/lockSafari.d.ts +2 -0
  120. package/dist/utilities/scroll/lockSafari.js +31 -0
  121. package/dist/utilities/scroll/lockStandard.d.ts +2 -0
  122. package/dist/utilities/scroll/lockStandard.js +19 -0
  123. package/package.json +31 -29
  124. package/dist/utilities/dom.d.ts +0 -5
  125. package/dist/utilities/dom.js +0 -27
@@ -1,6 +1,9 @@
1
+ import React from "react";
1
2
  import { Example } from "../../../utilities/storybook/index.js";
2
3
  import Tabs from "../index.js";
3
4
  import View from "../../View/index.js";
5
+ import Text from "../../Text/index.js";
6
+ import ScrollArea from "../../ScrollArea/index.js";
4
7
  import IconZap from "../../../icons/Zap.js";
5
8
  export default {
6
9
  title: "Components/Tabs",
@@ -126,15 +129,17 @@ export const direction = () => (<Example>
126
129
  export const composition = () => (<Example>
127
130
  <Example.Item title="switching panels">
128
131
  <Tabs>
129
- <Tabs.List>
130
- <Tabs.Item value="0">Item 1</Tabs.Item>
131
- <Tabs.Item value="1">Long item 2</Tabs.Item>
132
- <Tabs.Item value="2">Very long item 3</Tabs.Item>
133
- </Tabs.List>
132
+ <View gap={4}>
133
+ <Tabs.List>
134
+ <Tabs.Item value="0">Item 1</Tabs.Item>
135
+ <Tabs.Item value="1">Long item 2</Tabs.Item>
136
+ <Tabs.Item value="2">Very long item 3</Tabs.Item>
137
+ </Tabs.List>
134
138
 
135
- <Tabs.Panel value="0">Tab 1</Tabs.Panel>
136
- <Tabs.Panel value="1">Tab 2</Tabs.Panel>
137
- <Tabs.Panel value="2">Tab 3</Tabs.Panel>
139
+ <Tabs.Panel value="0">Tab 1</Tabs.Panel>
140
+ <Tabs.Panel value="1">Tab 2</Tabs.Panel>
141
+ <Tabs.Panel value="2">Tab 3</Tabs.Panel>
142
+ </View>
138
143
  </Tabs>
139
144
  </Example.Item>
140
145
  </Example>);
@@ -273,3 +278,61 @@ export const edgeCases = () => (<Example>
273
278
  </Tabs>
274
279
  </Example.Item>
275
280
  </Example>);
281
+ export const edgeCaseDom = () => {
282
+ const [activeItem, setActiveItem] = React.useState("1");
283
+ const sectionsRef = React.useRef(null);
284
+ return (<Example>
285
+ <Example.Item title="active item changes on scroll">
286
+ <View justify="center" align="center" padding={10}>
287
+ <View width={60} gap={2}>
288
+ <Tabs value={activeItem} onChange={(args) => setActiveItem(args.value)}>
289
+ <Tabs.List>
290
+ <Tabs.Item value="1">Item 1</Tabs.Item>
291
+ <Tabs.Item value="2">Item 2</Tabs.Item>
292
+ <Tabs.Item value="3">Item 3</Tabs.Item>
293
+ <Tabs.Item value="4">Item 4</Tabs.Item>
294
+ </Tabs.List>
295
+ </Tabs>
296
+
297
+ <ScrollArea attributes={{ ref: sectionsRef }} height={70} onScroll={(args) => {
298
+ setActiveItem(Math.min(4, Math.floor(args.y * 10) + 1).toString());
299
+ }}>
300
+ <View gap={4}>
301
+ <View gap={2}>
302
+ <Text>Section 1</Text>
303
+
304
+ <View gap={1} direction="row">
305
+ {[...Array(4)].map((i) => (<View grow height="100px" backgroundColor="neutral-faded" key={i}/>))}
306
+ </View>
307
+ </View>
308
+
309
+ <View gap={2}>
310
+ <Text>Section 2</Text>
311
+
312
+ <View gap={1} direction="row">
313
+ {[...Array(4)].map((i) => (<View grow height="100px" backgroundColor="neutral-faded"/>))}
314
+ </View>
315
+ </View>
316
+
317
+ <View gap={2}>
318
+ <Text>Section 3</Text>
319
+
320
+ <View gap={1} direction="row">
321
+ {[...Array(4)].map((i) => (<View grow height="100px" backgroundColor="neutral-faded"/>))}
322
+ </View>
323
+ </View>
324
+
325
+ <View gap={2}>
326
+ <Text>Section 4</Text>
327
+
328
+ <View gap={1} direction="row">
329
+ {[...Array(4)].map((i) => (<View grow height="100px" backgroundColor="neutral-faded"/>))}
330
+ </View>
331
+ </View>
332
+ </View>
333
+ </ScrollArea>
334
+ </View>
335
+ </View>
336
+ </Example.Item>
337
+ </Example>);
338
+ };
@@ -3,8 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React from "react";
4
4
  import { classNames } from "../../utilities/helpers.js";
5
5
  import { onNextFrame } from "../../utilities/animation.js";
6
- import { checkKeyboardMode } from "../../utilities/a11y/keyboardMode.js";
7
- import TrapFocus from "../../utilities/a11y/TrapFocus.js";
6
+ import { checkKeyboardMode, TrapFocus } from "../../utilities/a11y/index.js";
8
7
  import Toast from "./Toast.js";
9
8
  import ToastContext from "./Toast.context.js";
10
9
  import { timeouts } from "./Toast.constants.js";
@@ -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/focus.js";
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), ...responsiveClassNames(s, "--align", align), ...responsiveClassNames(s, "--justify", justify),
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<"center" | "start" | "end" | "stretch" | "baseline">;
14
- justify?: G.Responsive<"center" | "start" | "end" | "space-between">;
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
- targetHeight = rootEl.clientHeight;
33
- rootEl.style.height = "0";
31
+ requestAnimationFrame(() => {
32
+ const targetHeight = rootEl.clientHeight;
33
+ rootEl.style.height = "0";
34
+ setAnimatedHeight(targetHeight);
35
+ });
34
36
  }
35
- if (!active) {
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:2;--rs-flyout-origin-x:50%;--rs-flyout-origin-y:50%;position:absolute}.inner{opacity:0;transform:scale(.8) 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
+ .content{--rs-flyout-gap:0;--rs-flyout-origin-x:50%;--rs-flyout-origin-y:50%;position:absolute}.inner{opacity:0;transform:scale(.8) 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/types";
3
+ import type { TrapMode } from "../../../utilities/a11y";
4
4
  /**
5
5
  * Utility
6
6
  */
7
- export type Position = "bottom" | "bottom-start" | "bottom-end" | "top" | "top-start" | "top-end" | "start" | "start-top" | "start-bottom" | "end" | "end-top" | "end-bottom";
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
- forcePosition?: boolean;
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/TrapFocus.js";
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
- forcePosition,
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(triggerType !== "hover" && status !== "idle", flyoutElRef, triggerElRef);
66
+ const isDismissible = useIsDismissible(triggerType !== "hover" && isRendered, 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 && status === "idle";
76
+ const canOpen = !lockedRef.current && !isRendered;
75
77
  if (!canOpen)
76
78
  return;
77
79
  onOpenRef.current?.();
78
- }, [status, onOpenRef]);
80
+ }, [isRendered, onOpenRef]);
79
81
  const handleClose = React.useCallback((options) => {
80
82
  const isLocked = triggerType === "click" && !isDismissible();
81
- const canClose = !isLocked && (status !== "idle" || disabled);
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
- }, [status, isDismissible, triggerType, onCloseRef, disabled, parentFlyoutContext]);
89
+ }, [isRendered, isDismissible, triggerType, onCloseRef, disabled, parentFlyoutContext]);
88
90
  /**
89
91
  * Trigger event handlers
90
92
  */
@@ -118,24 +120,28 @@ const FlyoutRoot = (props) => {
118
120
  hoverTriggeredWithTouchEventRef.current = false;
119
121
  }
120
122
  else {
121
- timerRef.current = setTimeout(handleOpen, cooldown.timer || isSubmenu ? timeouts.mouseEnterShort : timeouts.mouseEnter);
122
- if (!isSubmenu && triggerType === "hover")
123
+ if (groupTimeouts)
123
124
  cooldown.warm();
125
+ timerRef.current = setTimeout(() => {
126
+ handleOpen();
127
+ }, groupTimeouts && cooldown.status === "warming"
128
+ ? timeouts.mouseEnter
129
+ : timeouts.mouseEnterShort);
124
130
  }
125
- }, [clearTimer, timerRef, handleOpen, isSubmenu, triggerType]);
131
+ }, [clearTimer, timerRef, handleOpen, groupTimeouts]);
126
132
  const handleMouseLeave = React.useCallback(() => {
127
133
  cooldown.cool();
128
134
  clearTimer();
129
135
  timerRef.current = setTimeout(() => handleClose(), timeouts.mouseLeave);
130
136
  }, [clearTimer, timerRef, handleClose]);
131
137
  const handleTriggerClick = React.useCallback(() => {
132
- if (status === "idle") {
138
+ if (!isRendered) {
133
139
  handleOpen();
134
140
  }
135
141
  else {
136
142
  handleClose();
137
143
  }
138
- }, [status, handleOpen, handleClose]);
144
+ }, [isRendered, handleOpen, handleClose]);
139
145
  const handleTriggerMouseDown = React.useCallback(() => {
140
146
  const rect = triggerElRef.current?.getBoundingClientRect();
141
147
  triggerBoundsRef.current = rect;
@@ -153,6 +159,11 @@ const FlyoutRoot = (props) => {
153
159
  if (flyoutElRef.current !== e.currentTarget || e.propertyName !== "transform")
154
160
  return;
155
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;
156
167
  }, [resolvedActive]);
157
168
  const handleTransitionEnd = React.useCallback((e) => {
158
169
  if (flyoutElRef.current !== e.currentTarget || e.propertyName !== "transform")
@@ -180,14 +191,14 @@ const FlyoutRoot = (props) => {
180
191
  if (checkTransitions() &&
181
192
  !disableHideAnimation &&
182
193
  transitionStartedRef.current &&
183
- (cooldown.status !== "warm" || triggerType !== "hover")) {
194
+ (cooldown.status === "cooling" || !groupTimeouts)) {
184
195
  hide();
185
196
  }
186
197
  else {
187
198
  // In case transitions are disabled globally - remove from the DOM immediately
188
199
  remove();
189
200
  }
190
- }, [resolvedActive, render, hide, remove, disableHideAnimation, disabled]);
201
+ }, [resolvedActive, render, hide, remove, disableHideAnimation, disabled, groupTimeouts]);
191
202
  React.useEffect(() => {
192
203
  // Wait after positioning before show is triggered to animate flyout from the right side
193
204
  if (status === "positioned")
@@ -210,6 +221,7 @@ const FlyoutRoot = (props) => {
210
221
  trapFocusRef.current = new TrapFocus(flyoutElRef.current);
211
222
  trapFocusRef.current.trap({
212
223
  mode: trapFocusMode,
224
+ initialFocusEl: initialFocusRef?.current,
213
225
  includeTrigger: triggerType === "hover" && trapFocusMode !== "dialog" && !isSubmenu,
214
226
  onNavigateOutside: () => {
215
227
  handleClose();
@@ -219,7 +231,7 @@ const FlyoutRoot = (props) => {
219
231
  React.useEffect(() => {
220
232
  if (!disableHideAnimation && status !== "hidden")
221
233
  return;
222
- if (disableHideAnimation && status !== "idle")
234
+ if (disableHideAnimation && isRendered)
223
235
  return;
224
236
  if (trapFocusRef.current?.trapped) {
225
237
  /* Locking the popover to not open it again on trigger focus */
@@ -232,7 +244,7 @@ const FlyoutRoot = (props) => {
232
244
  trapFocusRef.current.release({ withoutFocusReturn: !shouldReturnFocusRef.current });
233
245
  shouldReturnFocusRef.current = true;
234
246
  }
235
- }, [status, triggerType, disableHideAnimation]);
247
+ }, [status, isRendered, triggerType, disableHideAnimation]);
236
248
  /**
237
249
  * Release focus trapping on unmount
238
250
  */
@@ -243,12 +255,14 @@ const FlyoutRoot = (props) => {
243
255
  * Update position on resize or RTL
244
256
  */
245
257
  React.useEffect(() => {
258
+ if (!isRendered)
259
+ return;
246
260
  const resizeObserver = new ResizeObserver(() => updatePosition({ sync: true }));
247
261
  resizeObserver.observe(document.body);
248
262
  if (triggerElRef.current)
249
263
  resizeObserver.observe(triggerElRef.current);
250
264
  return () => resizeObserver.disconnect();
251
- }, [updatePosition, triggerElRef]);
265
+ }, [updatePosition, triggerElRef, isRendered]);
252
266
  React.useEffect(() => {
253
267
  updatePosition();
254
268
  }, [isRTL, updatePosition]);
@@ -7,6 +7,7 @@ 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
9
  export declare const disableFlags: () => React.JSX.Element;
10
+ export declare const initialFocus: () => React.JSX.Element;
10
11
  export declare const customPortalTarget: () => React.JSX.Element;
11
12
  export declare const testWidthOverflowOnMobile: () => React.JSX.Element;
12
13
  export declare const testInsideFixed: () => React.JSX.Element;