reshaped 3.7.0-canary.8 → 3.7.0

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 (217) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +1 -2
  4. package/dist/bundle.js +11 -11
  5. package/dist/cjs/themes/_generator/tokens/color/utilities/generateColors.js +1 -1
  6. package/dist/cjs/themes/_generator/tokens/css.js +2 -2
  7. package/dist/cjs/themes/figma/theme.css +1 -1
  8. package/dist/cjs/themes/fragments/twitter/theme.css +1 -1
  9. package/dist/cjs/themes/reshaped/theme.css +1 -1
  10. package/dist/cjs/themes/slate/theme.css +1 -1
  11. package/dist/components/Accordion/Accordion.types.d.ts +2 -0
  12. package/dist/components/ActionBar/ActionBar.js +12 -4
  13. package/dist/components/ActionBar/ActionBar.module.css +1 -1
  14. package/dist/components/ActionBar/ActionBar.types.d.ts +4 -1
  15. package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +19 -1
  16. package/dist/components/ActionBar/tests/ActionBar.stories.js +161 -3
  17. package/dist/components/Actionable/Actionable.js +3 -3
  18. package/dist/components/Actionable/Actionable.module.css +1 -1
  19. package/dist/components/Actionable/Actionable.types.d.ts +1 -0
  20. package/dist/components/Autocomplete/Autocomplete.js +68 -23
  21. package/dist/components/Autocomplete/Autocomplete.types.d.ts +3 -0
  22. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +8 -8
  23. package/dist/components/Avatar/Avatar.js +4 -4
  24. package/dist/components/Badge/Badge.js +3 -3
  25. package/dist/components/Badge/Badge.module.css +1 -1
  26. package/dist/components/Badge/Badge.types.d.ts +4 -4
  27. package/dist/components/Badge/tests/Badge.stories.js +11 -0
  28. package/dist/components/Button/Button.module.css +1 -1
  29. package/dist/components/Calendar/Calendar.types.d.ts +1 -0
  30. package/dist/components/Calendar/Calendar.utils.d.ts +11 -0
  31. package/dist/components/Calendar/Calendar.utils.js +25 -0
  32. package/dist/components/Calendar/CalendarDate.js +6 -2
  33. package/dist/components/Calendar/CalendarMonth.js +9 -23
  34. package/dist/components/Calendar/tests/Calendar.stories.js +9 -2
  35. package/dist/components/Card/Card.d.ts +1 -1
  36. package/dist/components/Card/Card.js +9 -12
  37. package/dist/components/Card/Card.module.css +1 -1
  38. package/dist/components/Card/tests/Card.stories.d.ts +1 -1
  39. package/dist/components/Card/tests/Card.test.stories.d.ts +1 -1
  40. package/dist/components/Carousel/Carousel.js +3 -1
  41. package/dist/components/Carousel/Carousel.types.d.ts +1 -0
  42. package/dist/components/Carousel/CarouselControl.d.ts +1 -2
  43. package/dist/components/Carousel/CarouselControl.js +8 -7
  44. package/dist/components/Checkbox/Checkbox.module.css +1 -1
  45. package/dist/components/DropdownMenu/DropdownMenu.js +9 -6
  46. package/dist/components/FileUpload/FileUpload.js +5 -3
  47. package/dist/components/FileUpload/FileUpload.module.css +1 -1
  48. package/dist/components/FileUpload/FileUpload.types.d.ts +5 -1
  49. package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +18 -2
  50. package/dist/components/FileUpload/tests/FileUpload.stories.js +102 -23
  51. package/dist/components/Flyout/Flyout.module.css +1 -1
  52. package/dist/components/Flyout/Flyout.types.d.ts +2 -1
  53. package/dist/components/Flyout/FlyoutContent.js +3 -3
  54. package/dist/components/Flyout/FlyoutControlled.js +7 -4
  55. package/dist/components/Flyout/FlyoutTrigger.js +4 -3
  56. package/dist/components/FormControl/FormControl.module.css +1 -1
  57. package/dist/components/FormControl/tests/FormControl.stories.d.ts +4 -0
  58. package/dist/components/FormControl/tests/FormControl.stories.js +18 -0
  59. package/dist/components/Grid/Grid.js +5 -11
  60. package/dist/components/Grid/Grid.types.d.ts +2 -0
  61. package/dist/components/Grid/tests/Grid.stories.js +12 -1
  62. package/dist/components/HiddenVisually/HiddenVisually.module.css +1 -1
  63. package/dist/components/Icon/Icon.js +4 -4
  64. package/dist/components/Image/Image.js +4 -15
  65. package/dist/components/MenuItem/MenuItem.js +2 -2
  66. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  67. package/dist/components/MenuItem/MenuItem.types.d.ts +1 -0
  68. package/dist/components/Modal/Modal.js +4 -4
  69. package/dist/components/Modal/Modal.module.css +1 -1
  70. package/dist/components/Modal/tests/Modal.test.stories.js +2 -2
  71. package/dist/components/Overlay/Overlay.js +1 -2
  72. package/dist/components/Overlay/tests/Overlay.test.stories.js +4 -2
  73. package/dist/components/PinField/PinField.module.css +1 -1
  74. package/dist/components/Popover/Popover.js +5 -5
  75. package/dist/components/Popover/Popover.module.css +1 -1
  76. package/dist/components/Popover/Popover.types.d.ts +1 -1
  77. package/dist/components/Popover/tests/Popover.stories.d.ts +7 -2
  78. package/dist/components/Popover/tests/Popover.stories.js +59 -20
  79. package/dist/components/ProgressIndicator/ProgressIndicator.module.css +1 -1
  80. package/dist/components/Reshaped/Reshaped.css +1 -1
  81. package/dist/components/Resizable/Resizable.module.css +1 -1
  82. package/dist/components/ScrollArea/ScrollArea.js +5 -7
  83. package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
  84. package/dist/components/Select/Select.module.css +1 -1
  85. package/dist/components/Slider/Slider.module.css +1 -1
  86. package/dist/components/Switch/Switch.js +1 -1
  87. package/dist/components/Switch/Switch.module.css +1 -1
  88. package/dist/components/Table/Table.js +4 -7
  89. package/dist/components/Tabs/TabsItem.js +2 -1
  90. package/dist/components/Tabs/TabsList.js +2 -2
  91. package/dist/components/Text/Text.js +4 -4
  92. package/dist/components/TextArea/TextArea.module.css +1 -1
  93. package/dist/components/TextField/TextField.module.css +1 -1
  94. package/dist/components/TextField/tests/TextField.stories.js +3 -1
  95. package/dist/components/Theme/Theme.js +7 -2
  96. package/dist/components/Theme/Theme.types.d.ts +12 -13
  97. package/dist/components/Theme/index.d.ts +1 -1
  98. package/dist/components/Theme/tests/{Theme.test.stories.d.ts → Theme.stories.d.ts} +1 -0
  99. package/dist/components/Theme/tests/{Theme.test.stories.js → Theme.stories.js} +39 -1
  100. package/dist/components/Theme/useTheme.d.ts +6 -6
  101. package/dist/components/View/View.js +43 -60
  102. package/dist/components/View/View.module.css +1 -1
  103. package/dist/components/View/View.types.d.ts +7 -0
  104. package/dist/components/View/tests/View.stories.d.ts +4 -0
  105. package/dist/components/View/tests/View.stories.js +65 -1
  106. package/dist/components/_private/Portal/Portal.js +9 -1
  107. package/dist/config/tailwind.d.ts +1 -1
  108. package/dist/hooks/_private/useIsDismissible.d.ts +0 -1
  109. package/dist/hooks/_private/useIsDismissible.js +15 -8
  110. package/dist/index.d.ts +1 -2
  111. package/dist/styles/mixin.d.ts +6 -0
  112. package/dist/styles/mixin.js +71 -0
  113. package/dist/styles/resolvers/align/align.css +1 -0
  114. package/dist/styles/resolvers/align/index.d.ts +4 -0
  115. package/dist/styles/resolvers/align/index.js +10 -0
  116. package/dist/styles/resolvers/aspectRatio/aspectRatio.css +1 -0
  117. package/dist/styles/resolvers/aspectRatio/index.d.ts +4 -0
  118. package/dist/styles/resolvers/aspectRatio/index.js +10 -0
  119. package/dist/styles/resolvers/bleed/bleed.module.css +1 -0
  120. package/dist/styles/resolvers/bleed/index.d.ts +3 -0
  121. package/dist/styles/{bleed → resolvers/bleed}/index.js +4 -4
  122. package/dist/styles/resolvers/border/border.module.css +1 -0
  123. package/dist/styles/resolvers/border/borderWidth.css +1 -0
  124. package/dist/styles/resolvers/border/index.d.ts +11 -0
  125. package/dist/styles/resolvers/border/index.js +74 -0
  126. package/dist/styles/resolvers/height/index.d.ts +3 -0
  127. package/dist/styles/{height → resolvers/height}/index.js +4 -4
  128. package/dist/styles/resolvers/inset/index.d.ts +10 -0
  129. package/dist/styles/resolvers/inset/index.js +38 -0
  130. package/dist/styles/resolvers/inset/inset.css +1 -0
  131. package/dist/styles/resolvers/justify/index.d.ts +4 -0
  132. package/dist/styles/resolvers/justify/index.js +10 -0
  133. package/dist/styles/resolvers/justify/justify.css +1 -0
  134. package/dist/styles/resolvers/margin/index.d.ts +10 -0
  135. package/dist/styles/resolvers/margin/index.js +38 -0
  136. package/dist/styles/resolvers/margin/margin.css +1 -0
  137. package/dist/styles/resolvers/maxHeight/index.d.ts +3 -0
  138. package/dist/styles/{maxHeight → resolvers/maxHeight}/index.js +4 -4
  139. package/dist/styles/resolvers/maxHeight/maxHeight.module.css +1 -0
  140. package/dist/styles/resolvers/maxWidth/index.d.ts +3 -0
  141. package/dist/styles/{maxWidth → resolvers/maxWidth}/index.js +4 -4
  142. package/dist/styles/resolvers/maxWidth/maxWidth.module.css +1 -0
  143. package/dist/styles/resolvers/minHeight/index.d.ts +3 -0
  144. package/dist/styles/{minHeight → resolvers/minHeight}/index.js +4 -4
  145. package/dist/styles/resolvers/minHeight/minHeight.module.css +1 -0
  146. package/dist/styles/resolvers/minWidth/index.d.ts +3 -0
  147. package/dist/styles/{minWidth → resolvers/minWidth}/index.js +4 -4
  148. package/dist/styles/resolvers/minWidth/minWidth.module.css +1 -0
  149. package/dist/styles/resolvers/padding/index.d.ts +10 -0
  150. package/dist/styles/resolvers/padding/index.js +38 -0
  151. package/dist/styles/resolvers/padding/padding.css +1 -0
  152. package/dist/styles/resolvers/position/index.d.ts +4 -0
  153. package/dist/styles/resolvers/position/index.js +9 -0
  154. package/dist/styles/resolvers/position/position.css +1 -0
  155. package/dist/styles/resolvers/radius/index.d.ts +3 -0
  156. package/dist/styles/resolvers/radius/index.js +10 -0
  157. package/dist/styles/resolvers/textAlign/index.d.ts +4 -0
  158. package/dist/styles/resolvers/textAlign/index.js +10 -0
  159. package/dist/styles/resolvers/textAlign/textAlign.css +1 -0
  160. package/dist/styles/resolvers/width/index.d.ts +3 -0
  161. package/dist/styles/{width → resolvers/width}/index.js +4 -4
  162. package/dist/styles/resolvers/width/width.module.css +1 -0
  163. package/dist/styles/types.d.ts +63 -16
  164. package/dist/themes/_generator/tokens/color/utilities/generateColors.js +1 -1
  165. package/dist/themes/_generator/tokens/css.js +2 -2
  166. package/dist/themes/figma/theme.css +1 -1
  167. package/dist/themes/fragments/twitter/theme.css +1 -1
  168. package/dist/themes/reshaped/theme.css +1 -1
  169. package/dist/themes/slate/theme.css +1 -1
  170. package/dist/types/global.d.ts +5 -0
  171. package/dist/utilities/a11y/tests/TrapFocus.stories.js +4 -4
  172. package/package.json +24 -24
  173. package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +0 -15
  174. package/dist/components/ActionBar/tests/ActionBar.test.stories.js +0 -26
  175. package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +0 -21
  176. package/dist/components/FileUpload/tests/FileUpload.test.stories.js +0 -52
  177. package/dist/styles/align/align.css +0 -1
  178. package/dist/styles/align/index.d.ts +0 -4
  179. package/dist/styles/align/index.js +0 -10
  180. package/dist/styles/aspectRatio/aspectRatio.css +0 -1
  181. package/dist/styles/aspectRatio/index.d.ts +0 -4
  182. package/dist/styles/aspectRatio/index.js +0 -9
  183. package/dist/styles/bleed/bleed.module.css +0 -1
  184. package/dist/styles/bleed/index.d.ts +0 -3
  185. package/dist/styles/border/border.module.css +0 -1
  186. package/dist/styles/border/index.d.ts +0 -3
  187. package/dist/styles/border/index.js +0 -10
  188. package/dist/styles/height/index.d.ts +0 -3
  189. package/dist/styles/inset/index.d.ts +0 -5
  190. package/dist/styles/inset/index.js +0 -11
  191. package/dist/styles/inset/inset.css +0 -1
  192. package/dist/styles/justify/index.d.ts +0 -4
  193. package/dist/styles/justify/index.js +0 -10
  194. package/dist/styles/justify/justify.css +0 -1
  195. package/dist/styles/maxHeight/index.d.ts +0 -3
  196. package/dist/styles/maxHeight/maxHeight.module.css +0 -1
  197. package/dist/styles/maxWidth/index.d.ts +0 -3
  198. package/dist/styles/maxWidth/maxWidth.module.css +0 -1
  199. package/dist/styles/minHeight/index.d.ts +0 -3
  200. package/dist/styles/minHeight/minHeight.module.css +0 -1
  201. package/dist/styles/minWidth/index.d.ts +0 -3
  202. package/dist/styles/minWidth/minWidth.module.css +0 -1
  203. package/dist/styles/padding/index.d.ts +0 -4
  204. package/dist/styles/padding/index.js +0 -9
  205. package/dist/styles/padding/padding.css +0 -1
  206. package/dist/styles/position/index.d.ts +0 -4
  207. package/dist/styles/position/index.js +0 -9
  208. package/dist/styles/position/position.css +0 -1
  209. package/dist/styles/radius/index.d.ts +0 -3
  210. package/dist/styles/radius/index.js +0 -10
  211. package/dist/styles/textAlign/index.d.ts +0 -4
  212. package/dist/styles/textAlign/index.js +0 -10
  213. package/dist/styles/textAlign/textAlign.css +0 -1
  214. package/dist/styles/width/index.d.ts +0 -3
  215. package/dist/styles/width/width.module.css +0 -1
  216. /package/dist/styles/{height → resolvers/height}/height.module.css +0 -0
  217. /package/dist/styles/{radius → resolvers/radius}/radius.module.css +0 -0
@@ -5,8 +5,9 @@ import View from "../../View/index.js";
5
5
  import MenuItem from "../../MenuItem/index.js";
6
6
  import Theme, { useTheme } from "../index.js";
7
7
  import { Example } from "../../../utilities/storybook/index.js";
8
+ import Popover from "../../Popover/index.js";
8
9
  export default {
9
- title: "Utility components/Theme/tests",
10
+ title: "Utility components/Theme",
10
11
  component: Theme,
11
12
  parameters: {
12
13
  iframe: {
@@ -15,6 +16,43 @@ export default {
15
16
  chromatic: { disableSnapshot: true },
16
17
  },
17
18
  };
19
+ export const scoped = {
20
+ name: "scoped",
21
+ render: () => (<Example>
22
+ <Example.Item title="scoped, single">
23
+ <Theme name="reshaped">
24
+ <Card attributes={{ "data-testid": "test-id" }}>
25
+ <Button color="primary">Action</Button>
26
+ </Card>
27
+ </Theme>
28
+ </Example.Item>
29
+
30
+ <Example.Item title="scoped, multiple">
31
+ <Theme name={["reshaped", "figma"]}>
32
+ <Card attributes={{ "data-testid": "test-id-multi" }}>
33
+ <View direction="row" gap={4}>
34
+ <Button color="primary">Action</Button>
35
+
36
+ <Popover>
37
+ <Popover.Trigger>
38
+ {(attributes) => <Button attributes={attributes}>Popover</Button>}
39
+ </Popover.Trigger>
40
+ <Popover.Content>Content</Popover.Content>
41
+ </Popover>
42
+ </View>
43
+ </Card>
44
+ </Theme>
45
+ </Example.Item>
46
+ </Example>),
47
+ play: ({ canvas }) => {
48
+ const root = canvas.getByTestId("test-id").parentNode;
49
+ const rootMultiple = canvas.getByTestId("test-id-multi").parentNode;
50
+ expect(root).toHaveAttribute("data-rs-theme", "reshaped");
51
+ expect(root).toHaveAttribute("data-rs-color-mode", "dark");
52
+ expect(rootMultiple).toHaveAttribute("data-rs-theme", " reshaped figma ");
53
+ expect(root).toHaveAttribute("data-rs-color-mode", "dark");
54
+ },
55
+ };
18
56
  export const light = {
19
57
  name: "light",
20
58
  render: () => (<Theme name="reshaped" colorMode="light">
@@ -1,10 +1,10 @@
1
1
  export declare const useGlobalColorMode: () => import("./Theme.types").GlobalColorModeContextData;
2
2
  export declare const useTheme: () => {
3
- theme: string;
4
- setTheme: (theme: string) => void;
5
- rootTheme: string;
6
- setRootTheme: (theme: string) => void;
7
- colorMode: import("./Theme.types").ColorMode;
8
- setColorMode: (mode: import("./Theme.types").ColorMode) => void;
3
+ theme: import("../../types/global").Theme;
4
+ setTheme: (theme: import("../../types/global").Theme) => void;
5
+ rootTheme: import("../../types/global").Theme;
6
+ setRootTheme: (theme: import("../../types/global").Theme) => void;
7
+ colorMode: import("../..").ColorMode;
8
+ setColorMode: (mode: import("../..").ColorMode) => void;
9
9
  invertColorMode: () => void;
10
10
  };
@@ -5,21 +5,7 @@ import { classNames, responsiveClassNames, responsiveVariables } from "../../uti
5
5
  import Divider from "../Divider/index.js";
6
6
  import Hidden from "../Hidden/index.js";
7
7
  import s from "./View.module.css";
8
- import getRadiusStyles from "../../styles/radius/index.js";
9
- import getBleedStyles from "../../styles/bleed/index.js";
10
- import getWidthStyles from "../../styles/width/index.js";
11
- import getHeightStyles from "../../styles/height/index.js";
12
- import getMaxWidthStyles from "../../styles/maxWidth/index.js";
13
- import getMaxHeightStyles from "../../styles/maxHeight/index.js";
14
- import getMinWidthStyles from "../../styles/minWidth/index.js";
15
- import getMinHeightStyles from "../../styles/minHeight/index.js";
16
- import getPositionStyles from "../../styles/position/index.js";
17
- import getInsetStyles from "../../styles/inset/index.js";
18
- import getAspectRatioStyles from "../../styles/aspectRatio/index.js";
19
- import getBorderStyles from "../../styles/border/index.js";
20
- import getTextAlignStyles from "../../styles/textAlign/index.js";
21
- import getAlignStyles from "../../styles/align/index.js";
22
- import getJustifyStyles from "../../styles/justify/index.js";
8
+ import { resolveMixin } from "../../styles/mixin.js";
23
9
  const ViewItem = (props) => {
24
10
  const { columns, grow, shrink, gapBefore,
25
11
  // Using any here to let TS save on type resolving, otherwise TS throws an error due to the type complexity
@@ -41,7 +27,7 @@ const View = (props) => {
41
27
  /**
42
28
  * Style props
43
29
  * */
44
- animated, backgroundColor, borderColor, borderRadius, shadow, textAlign, overflow, position, inset, insetTop, insetBottom, insetStart, insetEnd, zIndex,
30
+ animated, backgroundColor, borderColor, borderTop, borderBottom, borderStart, borderEnd, borderInline, borderBlock, borderRadius, shadow, textAlign, overflow, position, inset, insetTop, insetBottom, insetStart, insetEnd, zIndex,
45
31
  /**
46
32
  * Item prop
47
33
  */
@@ -49,27 +35,47 @@ const View = (props) => {
49
35
  // Using any here to let TS save on type resolving, otherwise TS throws an error due to the type complexity
50
36
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
37
  as: TagName = "div", children, divided, className, attributes, } = props;
38
+ const border = props.border ??
39
+ (borderColor
40
+ ? !borderTop && !borderBottom && !borderStart && !borderEnd && !borderInline && !borderBlock
41
+ : undefined);
52
42
  let isFlex = !!align || !!justify || !!gap || !!props.direction;
53
43
  const direction = props.direction || (isFlex ? "column" : undefined);
54
- const radiusStyles = getRadiusStyles(borderRadius);
55
- const bleedStyles = getBleedStyles(bleed);
56
- const widthStyles = getWidthStyles(width);
57
- const heightStyles = getHeightStyles(height);
58
- const maxWidthStyles = getMaxWidthStyles(maxWidth);
59
- const maxHeightStyles = getMaxHeightStyles(maxHeight);
60
- const minWidthStyles = getMinWidthStyles(minWidth);
61
- const minHeightStyles = getMinHeightStyles(minHeight);
62
- const positionStyles = getPositionStyles(position);
63
- const insetStyles = getInsetStyles(inset);
64
- const insetTopStyles = getInsetStyles(insetTop, "top");
65
- const insetBottomStyles = getInsetStyles(insetBottom, "bottom");
66
- const insetStartStyles = getInsetStyles(insetStart, "start");
67
- const insetEndStyles = getInsetStyles(insetEnd, "end");
68
- const aspectRatioStyles = getAspectRatioStyles(aspectRatio);
69
- const borderStyles = getBorderStyles(borderColor);
70
- const textAlignStyles = getTextAlignStyles(textAlign);
71
- const alignStyles = getAlignStyles(align);
72
- const justifyStyles = getJustifyStyles(justify);
44
+ const mixinStyles = resolveMixin({
45
+ align,
46
+ inset,
47
+ insetTop,
48
+ insetBottom,
49
+ insetStart,
50
+ insetEnd,
51
+ bleed,
52
+ width,
53
+ height,
54
+ maxWidth,
55
+ maxHeight,
56
+ minWidth,
57
+ minHeight,
58
+ position,
59
+ aspectRatio,
60
+ textAlign,
61
+ justify,
62
+ padding,
63
+ paddingInline,
64
+ paddingBlock,
65
+ paddingBottom,
66
+ paddingEnd,
67
+ paddingStart,
68
+ paddingTop,
69
+ borderColor,
70
+ border,
71
+ borderTop,
72
+ borderBottom,
73
+ borderStart,
74
+ borderEnd,
75
+ borderInline,
76
+ borderBlock,
77
+ radius: borderRadius,
78
+ });
73
79
  let renderedItemIndex = 0;
74
80
  // If wrap is not defined, it can be set based on item grow and split usage
75
81
  let nowrap;
@@ -147,8 +153,7 @@ const View = (props) => {
147
153
  return renderItem({ child, index: usedIndex });
148
154
  });
149
155
  // Classnames and attributes are written here so we can assign nowrap to the root element based on the children
150
- const rootClassNames = classNames(s.root, className, radiusStyles?.classNames, bleedStyles?.classNames, widthStyles?.classNames, heightStyles?.classNames, maxWidthStyles?.classNames, maxHeightStyles?.classNames, minWidthStyles?.classNames, minHeightStyles?.classNames, borderStyles?.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) &&
151
- s["--padding"], (isFlex || nowrap) && s["--flex"], ...responsiveClassNames(s, "--direction", direction),
156
+ const rootClassNames = classNames(s.root, className, mixinStyles.classNames, backgroundColor && s[`--bg-${backgroundColor}`], shadow && s[`--shadow-${shadow}`], overflow && s[`--overflow-${overflow}`], animated && s["--animated"], divided && s["--divided"], (isFlex || nowrap) && s["--flex"], ...responsiveClassNames(s, "--direction", direction),
152
157
  // Wrap and nowrap are separate here because inverting any of them could result into a false value which will be ignored by classNames
153
158
  ...responsiveClassNames(s, "--nowrap", nowrap || wrap === false), ...responsiveClassNames(s, "--wrap", wrap),
154
159
  // Item classnames
@@ -156,29 +161,7 @@ const View = (props) => {
156
161
  const rootVariables = {
157
162
  ...attributes?.style,
158
163
  ...responsiveVariables("--rs-view-gap", gap),
159
- ...responsiveVariables("--rs-view-p-vertical", paddingBlock || padding),
160
- ...responsiveVariables("--rs-view-p-horizontal", paddingInline || padding),
161
- ...responsiveVariables("--rs-view-p-bottom", paddingBottom),
162
- ...responsiveVariables("--rs-view-p-top", paddingTop),
163
- ...responsiveVariables("--rs-view-p-start", paddingStart),
164
- ...responsiveVariables("--rs-view-p-end", paddingEnd),
165
- ...bleedStyles?.variables,
166
- ...widthStyles?.variables,
167
- ...heightStyles?.variables,
168
- ...aspectRatioStyles?.variables,
169
- ...maxWidthStyles?.variables,
170
- ...maxHeightStyles?.variables,
171
- ...minWidthStyles?.variables,
172
- ...minHeightStyles?.variables,
173
- ...insetStyles?.variables,
174
- ...insetTopStyles?.variables,
175
- ...insetBottomStyles?.variables,
176
- ...insetStartStyles?.variables,
177
- ...insetEndStyles?.variables,
178
- ...alignStyles?.variables,
179
- ...justifyStyles?.variables,
180
- ...positionStyles?.variables,
181
- ...textAlignStyles?.variables,
164
+ ...mixinStyles.variables,
182
165
  ...(zIndex ? { "--rs-view-z": zIndex } : {}),
183
166
  };
184
167
  return (_jsx(TagName, { ...attributes, className: rootClassNames, style: rootVariables, children: formattedChildren }));
@@ -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);position:relative;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));--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)}.root[style*="--rs-view-p-top"]{padding-top:calc(var(--rs-unit-x1) * var(--rs-view-p-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)}.root[style*="--rs-view-p-bottom"]{padding-bottom:calc(var(--rs-unit-x1) * var(--rs-view-p-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)}.root[style*="--rs-view-p-start"]{padding-inline-start:calc(var(--rs-unit-x1) * var(--rs-view-p-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)}.root[style*="--rs-view-p-end"]{padding-inline-end:calc(var(--rs-unit-x1) * var(--rs-view-p-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)}.--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;min-width:0}.item--grow,.item--shrink{flex-shrink:1}.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}}.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 ){.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-m);--rs-view-p-horizontal:var(--rs-view-p-horizontal-m)}.root[style*="--rs-view-p-top"]{--rs-view-p-top:var(--rs-view-p-top-m)}.root[style*="--rs-view-p-bottom"]{--rs-view-p-bottom:var(--rs-view-p-bottom-m)}.root[style*="--rs-view-p-start"]{--rs-view-p-start:var(--rs-view-p-start-m)}.root[style*="--rs-view-p-end"]{--rs-view-p-end:var(--rs-view-p-end-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}.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 ){.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-l);--rs-view-p-horizontal:var(--rs-view-p-horizontal-l)}.root[style*="--rs-view-p-top"]{--rs-view-p-top:var(--rs-view-p-top-l)}.root[style*="--rs-view-p-bottom"]{--rs-view-p-bottom:var(--rs-view-p-bottom-l)}.root[style*="--rs-view-p-start"]{--rs-view-p-start:var(--rs-view-p-start-l)}.root[style*="--rs-view-p-end"]{--rs-view-p-end:var(--rs-view-p-end-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}.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 ){.--padding{--rs-view-p-vertical:var(--rs-view-p-vertical-xl);--rs-view-p-horizontal:var(--rs-view-p-horizontal-xl)}.root[style*="--rs-view-p-top"]{--rs-view-p-top:var(--rs-view-p-top-xl)}.root[style*="--rs-view-p-bottom"]{--rs-view-p-bottom:var(--rs-view-p-bottom-xl)}.root[style*="--rs-view-p-start"]{--rs-view-p-start:var(--rs-view-p-start-xl)}.root[style*="--rs-view-p-end"]{--rs-view-p-end:var(--rs-view-p-end-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}.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));gap:var(--rs-view-gap-value);position:relative;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)}.--animated{transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:background-color,color,border-color,box-shadow}.--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;min-width:0}.item--grow,.item--shrink{flex-shrink:1}.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}}.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}.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}.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}.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)}}
@@ -30,6 +30,13 @@ export type Props<TagName extends keyof React.JSX.IntrinsicElements = "div"> = {
30
30
  textAlign?: G.Responsive<TStyles.TextAlign>;
31
31
  backgroundColor?: "neutral" | "neutral-faded" | "critical" | "critical-faded" | "positive" | "warning" | "warning-faded" | "positive-faded" | "primary" | "primary-faded" | "elevation-base" | "elevation-raised" | "elevation-overlay" | "page" | "page-faded" | "disabled" | "disabled-faded" | "brand" | "white" | "black";
32
32
  borderColor?: G.Responsive<TStyles.BorderColor>;
33
+ border?: G.Responsive<TStyles.Border>;
34
+ borderTop?: G.Responsive<TStyles.Border>;
35
+ borderBottom?: G.Responsive<TStyles.Border>;
36
+ borderStart?: G.Responsive<TStyles.Border>;
37
+ borderEnd?: G.Responsive<TStyles.Border>;
38
+ borderInline?: G.Responsive<TStyles.Border>;
39
+ borderBlock?: G.Responsive<TStyles.Border>;
33
40
  borderRadius?: G.Responsive<TStyles.Radius>;
34
41
  position?: G.Responsive<TStyles.Position>;
35
42
  inset?: G.Responsive<TStyles.Inset>;
@@ -73,6 +73,10 @@ export declare const background: {
73
73
  name: string;
74
74
  render: () => React.JSX.Element;
75
75
  };
76
+ export declare const borderColor: {
77
+ name: string;
78
+ render: () => React.JSX.Element;
79
+ };
76
80
  export declare const border: {
77
81
  name: string;
78
82
  render: () => React.JSX.Element;
@@ -548,7 +548,7 @@ export const background = {
548
548
  </Example.Item>
549
549
  </Example>),
550
550
  };
551
- export const border = {
551
+ export const borderColor = {
552
552
  name: "borderColor",
553
553
  render: () => (<Example>
554
554
  <Example.Item title="border: neutral">
@@ -624,6 +624,70 @@ export const border = {
624
624
  </Example.Item>
625
625
  </Example>),
626
626
  };
627
+ export const border = {
628
+ name: "border",
629
+ render: () => (<Example>
630
+ <Example.Item title="border: true">
631
+ <View border borderColor="neutral" padding={4}>
632
+ Content
633
+ </View>
634
+ </Example.Item>
635
+
636
+ <Example.Item title="borderTop: true">
637
+ <View borderTop borderColor="neutral" padding={4}>
638
+ Content
639
+ </View>
640
+ </Example.Item>
641
+
642
+ <Example.Item title="borderBottom: true">
643
+ <View borderBottom borderColor="neutral" padding={4}>
644
+ Content
645
+ </View>
646
+ </Example.Item>
647
+
648
+ <Example.Item title="borderStart: true">
649
+ <View borderStart borderColor="neutral" padding={4}>
650
+ Content
651
+ </View>
652
+ </Example.Item>
653
+
654
+ <Example.Item title="borderEnd: true">
655
+ <View borderEnd borderColor="neutral" padding={4}>
656
+ Content
657
+ </View>
658
+ </Example.Item>
659
+
660
+ <Example.Item title="borderInline: true">
661
+ <View borderInline borderColor="neutral" padding={4}>
662
+ Content
663
+ </View>
664
+ </Example.Item>
665
+
666
+ <Example.Item title="borderBlock: true">
667
+ <View borderBlock borderColor="neutral" padding={4}>
668
+ Content
669
+ </View>
670
+ </Example.Item>
671
+
672
+ <Example.Item title="borderTop: true, borderStart: true, ">
673
+ <View borderColor="neutral" borderTop borderStart padding={4}>
674
+ Content
675
+ </View>
676
+ </Example.Item>
677
+
678
+ <Example.Item title={[
679
+ "responsive",
680
+ "[s] borderTop: true, borderStart: true",
681
+ "[m+] borderBottom: true, borderEnd: true",
682
+ ]}>
683
+ <View borderColor="neutral" borderTop={{ s: true, m: false }} borderStart={{ s: true, m: false }} borderBottom={{ s: false, m: true }} borderEnd={{ s: false, m: true }} padding={4}>
684
+ Content
685
+ </View>
686
+ </Example.Item>
687
+
688
+ <div style={{ height: 100 }}/>
689
+ </Example>),
690
+ };
627
691
  export const radius = {
628
692
  name: "borderRadius",
629
693
  render: () => (<Example>
@@ -4,6 +4,8 @@ import React from "react";
4
4
  import ReactDOM from "react-dom";
5
5
  import Theme from "../../Theme/index.js";
6
6
  import s from "./Portal.module.css";
7
+ import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.js";
8
+ import useToggle from "../../../hooks/useToggle.js";
7
9
  const PortalScopeContext = React.createContext({});
8
10
  export const usePortalScope = () => {
9
11
  return React.useContext(PortalScopeContext);
@@ -14,6 +16,7 @@ export const usePortalScope = () => {
14
16
  */
15
17
  const Portal = (props) => {
16
18
  const { children, targetRef } = props;
19
+ const mountedToggle = useToggle();
17
20
  const rootRef = React.useRef(null);
18
21
  const rootNode = rootRef.current?.getRootNode();
19
22
  const isShadowDom = rootNode instanceof ShadowRoot;
@@ -28,10 +31,15 @@ const Portal = (props) => {
28
31
  const portal = usePortalScope();
29
32
  const nextScopeRef = targetRef || portal.scopeRef;
30
33
  const targetEl = nextScopeRef?.current || defaultTargetEl;
34
+ useIsomorphicLayoutEffect(() => {
35
+ mountedToggle.activate();
36
+ return () => mountedToggle.deactivate();
37
+ }, []);
31
38
  /* Preserve the current theme when rendered in body */
32
39
  return [
33
40
  ReactDOM.createPortal(_jsx(Theme, { children: children }), targetEl),
34
- _jsx("div", { ref: rootRef, className: s.root }, "root"),
41
+ // Make sure this element doesn't affect components using :last-child when their children use portals
42
+ !mountedToggle.active && _jsx("div", { ref: rootRef, className: s.root }, "root"),
35
43
  ];
36
44
  };
37
45
  function PortalScope(props) {
@@ -1,2 +1,2 @@
1
1
  import type { ThemeDefinition } from "../themes/_generator/tokens/types";
2
- export declare const getTheme: (theme?: ThemeDefinition) => Record<"backgroundColor" | "borderColor" | "borderRadius" | "spacing" | "boxShadow" | "textColor" | "colors" | "screens", Record<string, string>>;
2
+ export declare const getTheme: (theme?: ThemeDefinition) => Record<"borderColor" | "backgroundColor" | "borderRadius" | "spacing" | "boxShadow" | "textColor" | "colors" | "screens", Record<string, string>>;
@@ -8,6 +8,5 @@ declare const useIsDismissible: (args: {
8
8
  active?: boolean;
9
9
  contentRef: Ref;
10
10
  triggerRef?: Ref;
11
- blocking?: boolean;
12
11
  }) => () => boolean;
13
12
  export default useIsDismissible;
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from "react";
6
6
  import useElementId from "../useElementId.js";
7
+ import { onNextFrame } from "../../utilities/animation.js";
7
8
  let queue = {};
8
9
  let latestId = null;
9
10
  const removeFromQueue = (id) => {
@@ -22,19 +23,25 @@ const addToQueue = (id, contentRef, triggerRef) => {
22
23
  latestId = id;
23
24
  };
24
25
  const useIsDismissible = (args) => {
25
- const { active, contentRef, triggerRef, blocking } = args;
26
+ const { active, contentRef, triggerRef } = args;
26
27
  const id = useElementId();
27
- const isDismissible = React.useCallback(() => {
28
- if (!blocking)
29
- return true;
30
- return active ? latestId === id : true;
31
- }, [id, active, blocking]);
32
28
  React.useEffect(() => {
33
29
  if (!active)
34
30
  return;
35
- addToQueue(id, contentRef, triggerRef);
31
+ onNextFrame(() => addToQueue(id, contentRef, triggerRef));
36
32
  return () => removeFromQueue(id);
37
33
  }, [active, id, contentRef, triggerRef]);
38
- return isDismissible;
34
+ return React.useCallback(() => {
35
+ if (!active)
36
+ return true;
37
+ const latest = latestId ? queue[latestId] : undefined;
38
+ const latestTrigger = latest?.triggerRef?.current;
39
+ const prev = latest?.parentId ? queue[latest.parentId] : undefined;
40
+ const prevContent = prev?.contentRef.current;
41
+ // Don't block independently rendered components that are not nested in each other
42
+ if (!prevContent || !latestTrigger || !prevContent.contains(latestTrigger))
43
+ return true;
44
+ return latestId === id;
45
+ }, [id, active]);
39
46
  };
40
47
  export default useIsDismissible;
package/dist/index.d.ts CHANGED
@@ -131,7 +131,6 @@ export type { ViewProps, ViewItemProps } from "./components/View";
131
131
  */
132
132
  export { useFormControl } from "./components/FormControl";
133
133
  export { default as Theme, useTheme, type ThemeProps } from "./components/Theme";
134
- export type { ColorMode } from "./components/Theme";
135
134
  export { default as useHandlerRef } from "./hooks/useHandlerRef";
136
135
  export { default as useHotkeys } from "./hooks/useHotkeys";
137
136
  export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect";
@@ -150,7 +149,7 @@ export { TrapFocus } from "./utilities/a11y";
150
149
  * Types
151
150
  */
152
151
  export type { ReshapedConfig } from "./types/config";
153
- export type { Responsive, Attributes } from "./types/global";
152
+ export type { Responsive, Attributes, ColorMode } from "./types/global";
154
153
  /**
155
154
  * Dev utilities
156
155
  */
@@ -0,0 +1,6 @@
1
+ import type { Mixin } from "./types";
2
+ import type * as G from "../types/global";
3
+ export declare const resolveMixin: (mixin: Mixin) => {
4
+ variables: React.CSSProperties;
5
+ classNames: G.ClassName[];
6
+ };
@@ -0,0 +1,71 @@
1
+ import align from "./resolvers/align/index.js";
2
+ import aspectRatio from "./resolvers/aspectRatio/index.js";
3
+ import bleed from "./resolvers/bleed/index.js";
4
+ import border, { borderColor, borderTop, borderBottom, borderStart, borderEnd, borderInline, borderBlock, } from "./resolvers/border/index.js";
5
+ import height from "./resolvers/height/index.js";
6
+ import inset, { insetTop, insetBottom, insetStart, insetEnd, insetInline, insetBlock, } from "./resolvers/inset/index.js";
7
+ import justify from "./resolvers/justify/index.js";
8
+ import maxHeight from "./resolvers/maxHeight/index.js";
9
+ import maxWidth from "./resolvers/maxWidth/index.js";
10
+ import minHeight from "./resolvers/minHeight/index.js";
11
+ import minWidth from "./resolvers/minWidth/index.js";
12
+ import position from "./resolvers/position/index.js";
13
+ import radius from "./resolvers/radius/index.js";
14
+ import textAlign from "./resolvers/textAlign/index.js";
15
+ import width from "./resolvers/width/index.js";
16
+ import padding, { paddingTop, paddingBottom, paddingStart, paddingEnd, paddingInline, paddingBlock, } from "./resolvers/padding/index.js";
17
+ const mixinMap = {
18
+ align,
19
+ aspectRatio,
20
+ bleed,
21
+ border,
22
+ borderTop,
23
+ borderBottom,
24
+ borderStart,
25
+ borderEnd,
26
+ borderInline,
27
+ borderBlock,
28
+ borderColor,
29
+ height,
30
+ padding,
31
+ paddingTop,
32
+ paddingBottom,
33
+ paddingStart,
34
+ paddingEnd,
35
+ paddingInline,
36
+ paddingBlock,
37
+ inset,
38
+ insetTop,
39
+ insetBottom,
40
+ insetStart,
41
+ insetEnd,
42
+ insetInline,
43
+ insetBlock,
44
+ justify,
45
+ maxHeight,
46
+ maxWidth,
47
+ minHeight,
48
+ minWidth,
49
+ position,
50
+ radius,
51
+ textAlign,
52
+ width,
53
+ };
54
+ export const resolveMixin = (mixin) => {
55
+ const output = {
56
+ variables: {},
57
+ classNames: [],
58
+ };
59
+ const entries = Object.entries(mixin);
60
+ entries.forEach(([key, value]) => {
61
+ const mixin = mixinMap[key];
62
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
63
+ // @ts-ignore - too complex to resolve inference without manual typing every method
64
+ const result = mixin(value);
65
+ if (result.variables)
66
+ output.variables = { ...output.variables, ...result.variables };
67
+ if (result.classNames)
68
+ output.classNames.push(result.classNames);
69
+ });
70
+ return output;
71
+ };
@@ -0,0 +1 @@
1
+ [style*="--rs-align-s:"]{align-items:var(--rs-align)!important;--rs-align-s: ;--rs-align-m:var(--rs-align-s);--rs-align-l:var(--rs-align-m);--rs-align-xl:var(--rs-align-l);--rs-align:var(--rs-align-s)}@media (--rs-viewport-m ){[style*="--rs-align-s:"]{--rs-align:var(--rs-align-m)}}@media (--rs-viewport-l ){[style*="--rs-align-s:"]{--rs-align:var(--rs-align-l)}}@media (--rs-viewport-xl ){[style*="--rs-align-s:"]{--rs-align:var(--rs-align-xl)}}
@@ -0,0 +1,4 @@
1
+ import * as T from "../../types";
2
+ import "./align.css";
3
+ declare const align: T.StyleResolver<T.Align>;
4
+ export default align;
@@ -0,0 +1,10 @@
1
+ import { responsiveVariables } from "../../../utilities/props.js";
2
+ import "./align.css";
3
+ const align = (value) => {
4
+ if (!value)
5
+ return {};
6
+ return {
7
+ variables: responsiveVariables("--rs-align", value),
8
+ };
9
+ };
10
+ export default align;
@@ -0,0 +1 @@
1
+ [style*="--rs-ratio-s:"]{--rs-ratio-s:0;--rs-ratio-m:var(--rs-ratio-s);--rs-ratio-l:var(--rs-ratio-m);--rs-ratio-xl:var(--rs-ratio-l);--rs-ratio:var(--rs-ratio-s)}[style*="--rs-ratio-s:"]:empty,[style*="--rs-ratio-s:"]:not(:empty)>*{aspect-ratio:var(--rs-ratio)}[style*="--rs-ratio-s:"]>img{object-fit:cover}@media (--rs-viewport-m ){[style*="--rs-ratio-s:"]{--rs-ratio:var(--rs-ratio-m)}}@media (--rs-viewport-l ){[style*="--rs-ratio-s:"]{--rs-ratio:var(--rs-ratio-l)}}@media (--rs-viewport-xl ){[style*="--rs-ratio-s:"]{--rs-ratio:var(--rs-ratio-xl)}}
@@ -0,0 +1,4 @@
1
+ import * as T from "../../types";
2
+ import "./aspectRatio.css";
3
+ declare const aspectRatio: T.StyleResolver<T.AspectRatio>;
4
+ export default aspectRatio;