reshaped 3.2.7 → 3.3.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 (151) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +2 -0
  4. package/dist/bundle.js +11 -11
  5. package/dist/cjs/themes/_generator/definitions/figma.js +1 -0
  6. package/dist/cjs/themes/_generator/definitions/reshaped.js +5 -4
  7. package/dist/cjs/themes/_generator/tokens/duration/duration.types.d.ts +1 -1
  8. package/dist/cjs/themes/_generator/transform.js +17 -7
  9. package/dist/cjs/themes/_generator/utilities/generateColors.js +6 -6
  10. package/dist/cjs/themes/_generator/utilities/resolveTokenReference.js +1 -1
  11. package/dist/cjs/themes/figma/theme.css +1 -1
  12. package/dist/cjs/themes/reshaped/theme.css +1 -1
  13. package/dist/cjs/themes/slate/theme.css +1 -1
  14. package/dist/components/Alert/tests/Alert.stories.d.ts +5 -4
  15. package/dist/components/Alert/tests/Alert.stories.js +3 -2
  16. package/dist/components/Autocomplete/Autocomplete.js +3 -3
  17. package/dist/components/Autocomplete/Autocomplete.types.d.ts +8 -9
  18. package/dist/components/Badge/Badge.module.css +1 -1
  19. package/dist/components/Button/Button.module.css +1 -1
  20. package/dist/components/Card/Card.js +1 -1
  21. package/dist/components/ContextMenu/ContextMenu.d.ts +10 -0
  22. package/dist/components/ContextMenu/ContextMenu.js +37 -0
  23. package/dist/components/ContextMenu/ContextMenu.module.css +1 -0
  24. package/dist/components/ContextMenu/ContextMenu.types.d.ts +2 -0
  25. package/dist/components/ContextMenu/ContextMenu.types.js +1 -0
  26. package/dist/components/ContextMenu/index.d.ts +2 -0
  27. package/dist/components/ContextMenu/index.js +1 -0
  28. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +18 -0
  29. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +27 -0
  30. package/dist/components/DropdownMenu/DropdownMenu.d.ts +1 -2
  31. package/dist/components/DropdownMenu/DropdownMenu.js +2 -2
  32. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +4 -4
  33. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +1 -1
  34. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +8 -0
  35. package/dist/components/FormControl/FormControl.context.d.ts +86 -86
  36. package/dist/components/Grid/Grid.js +5 -1
  37. package/dist/components/Hotkey/Hotkey.module.css +1 -1
  38. package/dist/components/Modal/Modal.js +1 -1
  39. package/dist/components/Modal/Modal.module.css +1 -1
  40. package/dist/components/Popover/Popover.js +1 -1
  41. package/dist/components/Popover/Popover.types.d.ts +1 -1
  42. package/dist/components/Resizable/Resizable.js +2 -2
  43. package/dist/components/Resizable/Resizable.module.css +1 -1
  44. package/dist/components/Resizable/Resizable.types.d.ts +3 -1
  45. package/dist/components/Resizable/tests/Resizable.stories.js +34 -1
  46. package/dist/components/ScrollArea/ScrollArea.js +9 -9
  47. package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
  48. package/dist/components/ScrollArea/ScrollArea.types.d.ts +1 -4
  49. package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +6 -4
  50. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +28 -2
  51. package/dist/components/Table/Table.module.css +1 -1
  52. package/dist/components/Tabs/Tabs.module.css +1 -1
  53. package/dist/components/Tabs/Tabs.types.d.ts +2 -0
  54. package/dist/components/Tabs/TabsContext.d.ts +2 -2
  55. package/dist/components/Tabs/TabsPanel.js +3 -3
  56. package/dist/components/Text/Text.js +2 -1
  57. package/dist/components/TextField/TextField.js +4 -4
  58. package/dist/components/TextField/TextField.module.css +1 -1
  59. package/dist/components/TextField/TextField.types.d.ts +1 -0
  60. package/dist/components/Toast/Toast.js +3 -2
  61. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  62. package/dist/components/Tooltip/Tooltip.js +4 -4
  63. package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
  64. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +1 -1
  65. package/dist/components/View/View.js +8 -3
  66. package/dist/components/View/View.module.css +1 -1
  67. package/dist/components/View/View.types.d.ts +5 -5
  68. package/dist/components/View/tests/View.stories.js +6 -0
  69. package/dist/components/_private/Flyout/Flyout.module.css +1 -1
  70. package/dist/components/_private/Flyout/Flyout.types.d.ts +2 -1
  71. package/dist/components/_private/Flyout/FlyoutContent.js +6 -4
  72. package/dist/components/_private/Flyout/FlyoutControlled.js +12 -9
  73. package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +1 -0
  74. package/dist/components/_private/Flyout/tests/Flyout.stories.js +16 -1
  75. package/dist/components/_private/Flyout/useFlyout.d.ts +6 -11
  76. package/dist/components/_private/Flyout/useFlyout.js +19 -30
  77. package/dist/components/_private/Flyout/utilities/isFullyVisible.d.ts +6 -0
  78. package/dist/components/_private/Flyout/utilities/isFullyVisible.js +16 -0
  79. package/dist/components/_private/Portal/Portal.js +5 -2
  80. package/dist/hooks/_private/useOnClickOutside.d.ts +1 -1
  81. package/dist/hooks/_private/useOnClickOutside.js +8 -5
  82. package/dist/hooks/_private/useSingletonKeyboardMode.js +4 -0
  83. package/dist/index.d.ts +2 -0
  84. package/dist/index.js +1 -0
  85. package/dist/styles/align/align.css +1 -0
  86. package/dist/styles/align/index.d.ts +2 -1
  87. package/dist/styles/align/index.js +3 -3
  88. package/dist/styles/aspectRatio/aspectRatio.css +1 -0
  89. package/dist/styles/aspectRatio/index.d.ts +2 -1
  90. package/dist/styles/aspectRatio/index.js +2 -2
  91. package/dist/styles/bleed/bleed.module.css +1 -1
  92. package/dist/styles/bleed/index.js +2 -5
  93. package/dist/styles/height/height.module.css +1 -1
  94. package/dist/styles/height/index.js +2 -2
  95. package/dist/styles/inset/index.d.ts +2 -1
  96. package/dist/styles/inset/index.js +4 -7
  97. package/dist/styles/inset/inset.css +1 -0
  98. package/dist/styles/justify/index.d.ts +2 -1
  99. package/dist/styles/justify/index.js +3 -3
  100. package/dist/styles/justify/justify.css +1 -0
  101. package/dist/styles/maxHeight/index.js +2 -2
  102. package/dist/styles/maxHeight/maxHeight.module.css +1 -1
  103. package/dist/styles/maxWidth/index.js +2 -2
  104. package/dist/styles/maxWidth/maxWidth.module.css +1 -1
  105. package/dist/styles/minHeight/index.js +2 -2
  106. package/dist/styles/minHeight/minHeight.module.css +1 -1
  107. package/dist/styles/minWidth/index.js +2 -2
  108. package/dist/styles/minWidth/minWidth.module.css +1 -1
  109. package/dist/styles/padding/index.d.ts +2 -1
  110. package/dist/styles/padding/index.js +2 -2
  111. package/dist/styles/padding/padding.css +1 -0
  112. package/dist/styles/position/index.d.ts +2 -1
  113. package/dist/styles/position/index.js +4 -4
  114. package/dist/styles/position/position.css +1 -0
  115. package/dist/styles/textAlign/index.d.ts +2 -1
  116. package/dist/styles/textAlign/index.js +3 -3
  117. package/dist/styles/textAlign/textAlign.css +1 -0
  118. package/dist/styles/types.d.ts +5 -0
  119. package/dist/styles/width/index.js +2 -2
  120. package/dist/styles/width/width.module.css +1 -1
  121. package/dist/themes/_generator/definitions/figma.js +1 -0
  122. package/dist/themes/_generator/definitions/reshaped.js +5 -4
  123. package/dist/themes/_generator/tests/themes.stories.d.ts +4 -3
  124. package/dist/themes/_generator/tests/themes.stories.js +3 -2
  125. package/dist/themes/_generator/tokens/duration/duration.types.d.ts +1 -1
  126. package/dist/themes/_generator/utilities/generateColors.js +6 -6
  127. package/dist/themes/_generator/utilities/resolveTokenReference.js +1 -1
  128. package/dist/themes/figma/theme.css +1 -1
  129. package/dist/themes/reshaped/theme.css +1 -1
  130. package/dist/themes/slate/theme.css +1 -1
  131. package/dist/types/global.d.ts +4 -0
  132. package/dist/utilities/a11y/TrapFocus.js +1 -0
  133. package/dist/utilities/a11y/focus.d.ts +1 -1
  134. package/dist/utilities/a11y/focus.js +4 -1
  135. package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +6 -0
  136. package/dist/utilities/a11y/tests/TrapFocus.stories.js +59 -0
  137. package/dist/utilities/dom/find.d.ts +9 -0
  138. package/dist/utilities/dom/find.js +26 -0
  139. package/dist/utilities/dom/flyout.d.ts +2 -1
  140. package/dist/utilities/dom/flyout.js +13 -18
  141. package/dist/utilities/dom/index.d.ts +2 -2
  142. package/dist/utilities/dom/index.js +2 -2
  143. package/dist/utilities/scroll/lock.js +6 -2
  144. package/package.json +32 -32
  145. package/dist/styles/align/align.module.css +0 -1
  146. package/dist/styles/aspectRatio/aspectRatio.module.css +0 -1
  147. package/dist/styles/inset/inset.module.css +0 -1
  148. package/dist/styles/justify/justify.module.css +0 -1
  149. package/dist/styles/padding/padding.module.css +0 -1
  150. package/dist/styles/position/position.module.css +0 -1
  151. package/dist/styles/textAlign/textAlign.module.css +0 -1
@@ -0,0 +1,27 @@
1
+ import { Example } from "../../../utilities/storybook/index.js";
2
+ import ContextMenu from "../index.js";
3
+ import View from "../../View/index.js";
4
+ import ScrollArea from "../../ScrollArea/index.js";
5
+ export default {
6
+ title: "Components/ContextMenu",
7
+ component: ContextMenu,
8
+ parameters: {
9
+ iframe: {
10
+ url: "https://reshaped.so/docs/components/context-menu",
11
+ },
12
+ },
13
+ };
14
+ export const base = () => (<Example>
15
+ <Example.Item title="base">
16
+ <ScrollArea height="200px">
17
+ <ContextMenu>
18
+ <View height="400px" backgroundColor="neutral-faded" borderRadius="medium"/>
19
+
20
+ <ContextMenu.Content>
21
+ <ContextMenu.Item>Item 1</ContextMenu.Item>
22
+ <ContextMenu.Item>Item 2</ContextMenu.Item>
23
+ </ContextMenu.Content>
24
+ </ContextMenu>
25
+ </ScrollArea>
26
+ </Example.Item>
27
+ </Example>);
@@ -1,4 +1,3 @@
1
- import { type MenuItemProps } from "../MenuItem";
2
1
  import type * as T from "./DropdownMenu.types";
3
2
  declare const DropdownMenu: {
4
3
  (props: T.Props): import("react/jsx-runtime").JSX.Element;
@@ -6,7 +5,7 @@ declare const DropdownMenu: {
6
5
  Trigger: (props: import("../_private/Flyout").FlyoutTriggerProps) => import("react/jsx-runtime").JSX.Element;
7
6
  Content: (props: T.ContentProps) => import("react/jsx-runtime").JSX.Element;
8
7
  Section: (props: T.SectionProps) => import("react/jsx-runtime").JSX.Element;
9
- Item: (props: Omit<MenuItemProps, "roundedCorners">) => import("react/jsx-runtime").JSX.Element;
8
+ Item: (props: T.ItemProps) => import("react/jsx-runtime").JSX.Element;
10
9
  SubMenu: (props: T.SubMenuProps) => import("react/jsx-runtime").JSX.Element;
11
10
  SubTrigger: (props: T.SubTriggerProps) => import("react/jsx-runtime").JSX.Element;
12
11
  };
@@ -64,8 +64,8 @@ const DropdownMenuSubTriggerItem = (props) => {
64
64
  return (_jsx(DropdownMenuItem, { ...menuItemProps, attributes: { ...attributes, ref: ref }, endSlot: _jsx(Icon, { autoWidth: true, svg: IconChevronRight, className: s.arrow }), children: children }));
65
65
  };
66
66
  const DropdownMenuSubTrigger = (props) => {
67
- const { children } = props;
68
- return (_jsx(DropdownMenu.Trigger, { children: (attributes) => (_jsx(DropdownMenuSubTriggerItem, { attributes: attributes, children: children })) }));
67
+ const { attributes, ...menuItemProps } = props;
68
+ return (_jsx(DropdownMenu.Trigger, { children: (triggerAttributes) => (_jsx(DropdownMenuSubTriggerItem, { ...menuItemProps, attributes: { ...attributes, ...triggerAttributes } })) }));
69
69
  };
70
70
  DropdownMenu.Dismissible = Popover.Dismissible;
71
71
  DropdownMenu.Trigger = Popover.Trigger;
@@ -1,17 +1,17 @@
1
1
  import type React from "react";
2
2
  import type { PopoverProps, PopoverInstance } from "../Popover";
3
+ import type { MenuItemProps } from "../MenuItem";
3
4
  import type { FlyoutContentProps } from "../_private/Flyout";
4
5
  export type Instance = PopoverInstance;
5
- export type Props = Pick<PopoverProps, "children" | "position" | "forcePosition" | "fallbackPositions" | "triggerType" | "contentGap" | "contentShift" | "onOpen" | "onClose" | "active" | "defaultActive" | "width" | "disableHideAnimation" | "disableCloseOnOutsideClick" | "instanceRef" | "containerRef"> & {
6
+ export type Props = Pick<PopoverProps, "children" | "position" | "forcePosition" | "fallbackPositions" | "triggerType" | "contentGap" | "contentShift" | "onOpen" | "onClose" | "active" | "defaultActive" | "width" | "disableHideAnimation" | "disableCloseOnOutsideClick" | "instanceRef" | "containerRef" | "originCoordinates"> & {
6
7
  trapFocusMode?: Extract<PopoverProps["trapFocusMode"], "action-menu" | "selection-menu">;
7
8
  };
8
9
  export type ContentProps = Pick<FlyoutContentProps, "attributes" | "children" | "className">;
10
+ export type ItemProps = Omit<MenuItemProps, "roundedCorners">;
9
11
  export type SectionProps = {
10
12
  children: React.ReactNode;
11
13
  };
12
14
  export type SubMenuProps = {
13
15
  children: React.ReactNode;
14
16
  };
15
- export type SubTriggerProps = {
16
- children: React.ReactNode;
17
- };
17
+ export type SubTriggerProps = Omit<MenuItemProps, "endSlot" | "roundedCorners">;
@@ -6,7 +6,7 @@ declare const _default: {
6
6
  Trigger: (props: import("../../_private/Flyout").FlyoutTriggerProps) => import("react").JSX.Element;
7
7
  Content: (props: import("../DropdownMenu.types").ContentProps) => import("react").JSX.Element;
8
8
  Section: (props: import("../DropdownMenu.types").SectionProps) => import("react").JSX.Element;
9
- Item: (props: Omit<import("../../MenuItem").MenuItemProps, "roundedCorners">) => import("react").JSX.Element;
9
+ Item: (props: import("../DropdownMenu.types").ItemProps) => import("react").JSX.Element;
10
10
  SubMenu: (props: import("../DropdownMenu.types").SubMenuProps) => import("react").JSX.Element;
11
11
  SubTrigger: (props: import("../DropdownMenu.types").SubTriggerProps) => import("react").JSX.Element;
12
12
  };
@@ -93,6 +93,14 @@ export const submenu = () => (<Example>
93
93
  <DropdownMenu.Item onClick={() => { }}>SubItem 2-2</DropdownMenu.Item>
94
94
  </DropdownMenu.Content>
95
95
  </DropdownMenu.SubMenu>
96
+
97
+ <DropdownMenu.SubMenu>
98
+ <DropdownMenu.SubTrigger disabled>Item 4, disabled</DropdownMenu.SubTrigger>
99
+ <DropdownMenu.Content>
100
+ <DropdownMenu.Item onClick={() => { }}>SubItem 3-1</DropdownMenu.Item>
101
+ <DropdownMenu.Item onClick={() => { }}>SubItem 3-2</DropdownMenu.Item>
102
+ </DropdownMenu.Content>
103
+ </DropdownMenu.SubMenu>
96
104
  </DropdownMenu.Content>
97
105
  </DropdownMenu>
98
106
  </Example.Item>
@@ -4,112 +4,112 @@ export declare const Provider: React.Provider<T.Context>;
4
4
  export declare const useFormControlPrivate: () => T.Context;
5
5
  export declare const useFormControl: () => {
6
6
  attributes: {
7
- defaultChecked?: boolean | undefined;
7
+ defaultChecked?: boolean | undefined | undefined;
8
8
  defaultValue?: string | number | readonly string[] | undefined;
9
- suppressContentEditableWarning?: boolean | undefined;
10
- suppressHydrationWarning?: boolean | undefined;
11
- accessKey?: string | undefined;
12
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
13
- autoFocus?: boolean | undefined;
14
- className?: string | undefined;
15
- contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
16
- contextMenu?: string | undefined;
17
- dir?: string | undefined;
9
+ suppressContentEditableWarning?: boolean | undefined | undefined;
10
+ suppressHydrationWarning?: boolean | undefined | undefined;
11
+ accessKey?: string | undefined | undefined;
12
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
13
+ autoFocus?: boolean | undefined | undefined;
14
+ className?: string | undefined | undefined;
15
+ contentEditable?: "inherit" | (boolean | "false" | "true") | "plaintext-only" | undefined;
16
+ contextMenu?: string | undefined | undefined;
17
+ dir?: string | undefined | undefined;
18
18
  draggable?: (boolean | "false" | "true") | undefined;
19
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
20
- hidden?: boolean | undefined;
21
- id?: string | undefined;
22
- lang?: string | undefined;
23
- nonce?: string | undefined;
24
- slot?: string | undefined;
19
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
20
+ hidden?: boolean | undefined | undefined;
21
+ id?: string | undefined | undefined;
22
+ lang?: string | undefined | undefined;
23
+ nonce?: string | undefined | undefined;
24
+ slot?: string | undefined | undefined;
25
25
  spellCheck?: (boolean | "false" | "true") | undefined;
26
26
  style?: React.CSSProperties | undefined;
27
- tabIndex?: number | undefined;
28
- title?: string | undefined;
29
- translate?: "yes" | "no" | undefined;
30
- radioGroup?: string | undefined;
27
+ tabIndex?: number | undefined | undefined;
28
+ title?: string | undefined | undefined;
29
+ translate?: "yes" | "no" | undefined | undefined;
30
+ radioGroup?: string | undefined | undefined;
31
31
  role?: React.AriaRole | undefined;
32
- about?: string | undefined;
33
- content?: string | undefined;
34
- datatype?: string | undefined;
32
+ about?: string | undefined | undefined;
33
+ content?: string | undefined | undefined;
34
+ datatype?: string | undefined | undefined;
35
35
  inlist?: any;
36
- prefix?: string | undefined;
37
- property?: string | undefined;
38
- rel?: string | undefined;
39
- resource?: string | undefined;
40
- rev?: string | undefined;
41
- typeof?: string | undefined;
42
- vocab?: string | undefined;
43
- autoCorrect?: string | undefined;
44
- autoSave?: string | undefined;
45
- color?: string | undefined;
46
- itemProp?: string | undefined;
47
- itemScope?: boolean | undefined;
48
- itemType?: string | undefined;
49
- itemID?: string | undefined;
50
- itemRef?: string | undefined;
51
- results?: number | undefined;
52
- security?: string | undefined;
53
- unselectable?: "on" | "off" | undefined;
54
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
55
- is?: string | undefined;
56
- "aria-activedescendant"?: string | undefined;
36
+ prefix?: string | undefined | undefined;
37
+ property?: string | undefined | undefined;
38
+ rel?: string | undefined | undefined;
39
+ resource?: string | undefined | undefined;
40
+ rev?: string | undefined | undefined;
41
+ typeof?: string | undefined | undefined;
42
+ vocab?: string | undefined | undefined;
43
+ autoCorrect?: string | undefined | undefined;
44
+ autoSave?: string | undefined | undefined;
45
+ color?: string | undefined | undefined;
46
+ itemProp?: string | undefined | undefined;
47
+ itemScope?: boolean | undefined | undefined;
48
+ itemType?: string | undefined | undefined;
49
+ itemID?: string | undefined | undefined;
50
+ itemRef?: string | undefined | undefined;
51
+ results?: number | undefined | undefined;
52
+ security?: string | undefined | undefined;
53
+ unselectable?: "on" | "off" | undefined | undefined;
54
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
55
+ is?: string | undefined | undefined;
56
+ "aria-activedescendant"?: string | undefined | undefined;
57
57
  "aria-atomic"?: (boolean | "false" | "true") | undefined;
58
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
59
- "aria-braillelabel"?: string | undefined;
60
- "aria-brailleroledescription"?: string | undefined;
58
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
59
+ "aria-braillelabel"?: string | undefined | undefined;
60
+ "aria-brailleroledescription"?: string | undefined | undefined;
61
61
  "aria-busy"?: (boolean | "false" | "true") | undefined;
62
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
63
- "aria-colcount"?: number | undefined;
64
- "aria-colindex"?: number | undefined;
65
- "aria-colindextext"?: string | undefined;
66
- "aria-colspan"?: number | undefined;
67
- "aria-controls"?: string | undefined;
68
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
69
- "aria-describedby"?: string | undefined;
70
- "aria-description"?: string | undefined;
71
- "aria-details"?: string | undefined;
62
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
63
+ "aria-colcount"?: number | undefined | undefined;
64
+ "aria-colindex"?: number | undefined | undefined;
65
+ "aria-colindextext"?: string | undefined | undefined;
66
+ "aria-colspan"?: number | undefined | undefined;
67
+ "aria-controls"?: string | undefined | undefined;
68
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
69
+ "aria-describedby"?: string | undefined | undefined;
70
+ "aria-description"?: string | undefined | undefined;
71
+ "aria-details"?: string | undefined | undefined;
72
72
  "aria-disabled"?: (boolean | "false" | "true") | undefined;
73
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
74
- "aria-errormessage"?: string | undefined;
73
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
74
+ "aria-errormessage"?: string | undefined | undefined;
75
75
  "aria-expanded"?: (boolean | "false" | "true") | undefined;
76
- "aria-flowto"?: string | undefined;
76
+ "aria-flowto"?: string | undefined | undefined;
77
77
  "aria-grabbed"?: (boolean | "false" | "true") | undefined;
78
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
78
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
79
79
  "aria-hidden"?: (boolean | "false" | "true") | undefined;
80
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
81
- "aria-keyshortcuts"?: string | undefined;
82
- "aria-label"?: string | undefined;
83
- "aria-labelledby"?: string | undefined;
84
- "aria-level"?: number | undefined;
85
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
80
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
81
+ "aria-keyshortcuts"?: string | undefined | undefined;
82
+ "aria-label"?: string | undefined | undefined;
83
+ "aria-labelledby"?: string | undefined | undefined;
84
+ "aria-level"?: number | undefined | undefined;
85
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
86
86
  "aria-modal"?: (boolean | "false" | "true") | undefined;
87
87
  "aria-multiline"?: (boolean | "false" | "true") | undefined;
88
88
  "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
89
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
90
- "aria-owns"?: string | undefined;
91
- "aria-placeholder"?: string | undefined;
92
- "aria-posinset"?: number | undefined;
93
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
89
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
90
+ "aria-owns"?: string | undefined | undefined;
91
+ "aria-placeholder"?: string | undefined | undefined;
92
+ "aria-posinset"?: number | undefined | undefined;
93
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
94
94
  "aria-readonly"?: (boolean | "false" | "true") | undefined;
95
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
95
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
96
96
  "aria-required"?: (boolean | "false" | "true") | undefined;
97
- "aria-roledescription"?: string | undefined;
98
- "aria-rowcount"?: number | undefined;
99
- "aria-rowindex"?: number | undefined;
100
- "aria-rowindextext"?: string | undefined;
101
- "aria-rowspan"?: number | undefined;
97
+ "aria-roledescription"?: string | undefined | undefined;
98
+ "aria-rowcount"?: number | undefined | undefined;
99
+ "aria-rowindex"?: number | undefined | undefined;
100
+ "aria-rowindextext"?: string | undefined | undefined;
101
+ "aria-rowspan"?: number | undefined | undefined;
102
102
  "aria-selected"?: (boolean | "false" | "true") | undefined;
103
- "aria-setsize"?: number | undefined;
104
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
105
- "aria-valuemax"?: number | undefined;
106
- "aria-valuemin"?: number | undefined;
107
- "aria-valuenow"?: number | undefined;
108
- "aria-valuetext"?: string | undefined;
109
- children?: React.ReactNode | undefined;
103
+ "aria-setsize"?: number | undefined | undefined;
104
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
105
+ "aria-valuemax"?: number | undefined | undefined;
106
+ "aria-valuemin"?: number | undefined | undefined;
107
+ "aria-valuenow"?: number | undefined | undefined;
108
+ "aria-valuetext"?: string | undefined | undefined;
109
+ children?: React.ReactNode;
110
110
  dangerouslySetInnerHTML?: {
111
111
  __html: string | TrustedHTML;
112
- } | undefined;
112
+ } | undefined | undefined;
113
113
  onCopy?: React.ClipboardEventHandler<HTMLElement> | undefined;
114
114
  onCopyCapture?: React.ClipboardEventHandler<HTMLElement> | undefined;
115
115
  onCut?: React.ClipboardEventHandler<HTMLElement> | undefined;
@@ -9,6 +9,7 @@ const GridItem = (props) => {
9
9
  const resolvedColSpan = responsivePropDependency(colSpan, (value) => value && `span ${value}`);
10
10
  const resolvedRowSpan = responsivePropDependency(rowSpan, (value) => value && `span ${value}`);
11
11
  const rootVariables = {
12
+ ...attributes?.style,
12
13
  ...responsiveVariables("--rs-grid-area", area),
13
14
  ...responsiveVariables("--rs-grid-col-end", resolvedColSpan),
14
15
  // both span and end use the same css variable but end has a higher prioerity
@@ -30,8 +31,9 @@ const Grid = (props) => {
30
31
  ? `"${value?.join('" "')}"
31
32
  `
32
33
  : undefined);
33
- const rootClassNames = classNames(s.root, alignStyles?.classNames, justifyStyles?.classNames, className);
34
+ const rootClassNames = classNames(s.root, className);
34
35
  const rootVariables = {
36
+ ...attributes?.style,
35
37
  ...responsiveVariables("--rs-grid-gap", gap),
36
38
  ...responsiveVariables("--rs-grid-rows", resolvedRows),
37
39
  ...responsiveVariables("--rs-grid-columns", resolvedColumns),
@@ -39,6 +41,8 @@ const Grid = (props) => {
39
41
  ...responsiveVariables("--rs-grid-auto-flow", autoFlow),
40
42
  ...responsiveVariables("--rs-grid-auto-columns", autoColumns),
41
43
  ...responsiveVariables("--rs-grid-auto-rows", autoRows),
44
+ ...alignStyles?.variables,
45
+ ...justifyStyles?.variables,
42
46
  };
43
47
  return (_jsx(TagName, { ...attributes, className: rootClassNames, style: rootVariables, children: children }));
44
48
  };
@@ -1 +1 @@
1
- .root{background:var(--rs-color-background-neutral-faded);border:1px solid var(--rs-color-background-neutral-faded);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);display:inline-flex;justify-content:center;min-width:calc(var(--rs-line-height-caption-1) + var(--rs-unit-x1) * 2);padding:calc(var(--rs-unit-x1) - 1px) calc(var(--rs-unit-x2) - 1px);transition:var(--rs-easing-standard) var(--rs-duration-fast);transition-property:color,background-color,border-color;vertical-align:top}.--active{background:var(--rs-color-background-neutral);border-color:var(--rs-color-background-neutral);color:var(--rs-color-on-background-neutral)}
1
+ .root{background:var(--rs-color-background-neutral-faded);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);display:inline-flex;justify-content:center;min-width:calc(var(--rs-line-height-caption-1) + var(--rs-unit-x1) * 2);padding:var(--rs-unit-x1) var(--rs-unit-x2);transition:var(--rs-easing-standard) var(--rs-duration-fast);transition-property:color,background-color,border-color;vertical-align:top}.--active{background:var(--rs-color-background-neutral);color:var(--rs-color-on-background-neutral)}
@@ -171,7 +171,7 @@ const Modal = (props) => {
171
171
  return (_jsx(Overlay, { onClose: onClose, onOpen: onOpen, onAfterClose: onAfterClose, onAfterOpen: onAfterOpen, disableCloseOnClick: disableCloseOnOutsideClick, active: active, transparent: transparentOverlay || hideProgress, blurred: blurredOverlay, className: overlayClassName, containerRef: containerRef, attributes: {
172
172
  onTouchStart: handleDragStart,
173
173
  }, children: ({ active }) => {
174
- const rootClassNames = classNames(s.root, className, paddingStyles?.classNames, active && s["--active"], dragging && s["--dragging"], overflow && s[`--overflow-${overflow}`], containerRef && s["--contained"], responsiveClassNames(s, "--position", position));
174
+ const rootClassNames = classNames(s.root, className, active && s["--active"], dragging && s["--dragging"], overflow && s[`--overflow-${overflow}`], containerRef && s["--contained"], responsiveClassNames(s, "--position", position));
175
175
  return (_jsx(Context.Provider, { value: value, children: _jsx("div", { ...attributes, style: {
176
176
  ...paddingStyles?.variables,
177
177
  ...responsiveVariables("--rs-modal-size", size),
@@ -1 +1 @@
1
- .root{--rs-modal-container-width:100vw;--rs-modal-position:fixed;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);transition:var(--rs-easing-accelerate) var(--rs-duration-medium);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-focus-shadow);outline:none}.root.--contained{--rs-modal-position:absolute;--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
1
+ .root{--rs-modal-container-width:100vw;--rs-modal-position:fixed;background:var(--rs-color-background-elevation-overlay);box-shadow:var(--rs-shadow-overlay);color:var(--rs-color-foreground-neutral);transition:var(--rs-easing-accelerate) var(--rs-duration-fast);transition-property:transform,opacity;will-change:transform}[data-rs-keyboard] .root:focus{box-shadow:var(--rs-focus-shadow);outline:none}.root.--contained{--rs-modal-position:absolute;--rs-modal-container-width:100%}.root{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);--rs-modal-size-m:var(--rs-modal-size-s);--rs-modal-size-l:var(--rs-modal-size-m);--rs-modal-size-xl:var(--rs-modal-size-l);--rs-modal-size:var(--rs-modal-size-s)}.--position-center{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center.--active,[dir=rtl] .--position-center.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom.--active,[dir=rtl] .--position-bottom.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start{transform:translate(100%)}.--position-start.--active,[dir=rtl] .--position-start.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end{transform:translate(-100%)}.--position-end.--active,[dir=rtl] .--position-end.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen.--active,[dir=rtl] .--position-full-screen.--active{opacity:1;transform:translate(0)!important}.--active,[dir=rtl] .--active{transition-timing-function:var(--rs-easing-decelerate)}.--dragging{transition:none}.--overflow-visible{overflow:visible}@media (--rs-viewport-m ){.root{--rs-modal-size:var(--rs-modal-size-m)}.--position-center--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--m.--active,[dir=rtl] .--position-center--m.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--m{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--m.--active,[dir=rtl] .--position-bottom--m.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--m{transform:translate(100%)}.--position-start--m.--active,[dir=rtl] .--position-start--m.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--m{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--m{transform:translate(-100%)}.--position-end--m.--active,[dir=rtl] .--position-end--m.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--m{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--m.--active,[dir=rtl] .--position-full-screen--m.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-l ){.root{--rs-modal-size:var(--rs-modal-size-l)}.--position-center--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--l.--active,[dir=rtl] .--position-center--l.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--l{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--l.--active,[dir=rtl] .--position-bottom--l.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--l{transform:translate(100%)}.--position-start--l.--active,[dir=rtl] .--position-start--l.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--l{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--l{transform:translate(-100%)}.--position-end--l.--active,[dir=rtl] .--position-end--l.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--l{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--l.--active,[dir=rtl] .--position-full-screen--l.--active{opacity:1;transform:translate(0)!important}}@media (--rs-viewport-xl ){.root{--rs-modal-size:var(--rs-modal-size-xl)}.--position-center--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:var(--rs-radius-large);height:auto;inset:0;margin:var(--rs-unit-x4);max-height:none;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x8));opacity:0;overflow:hidden;position:relative;transform:scale(.96);width:var(--rs-modal-size)}.--position-center--xl.--active,[dir=rtl] .--position-center--xl.--active{opacity:1;transform:translate(0) scale(1)!important}.--position-bottom--xl{--rs-modal-size-s:auto;border-radius:var(--rs-radius-large) var(--rs-radius-large) 0 0;height:var(--rs-modal-size);inset:0;inset-block-start:auto;margin:0;margin-top:var(--rs-unit-x4);max-height:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));max-width:100%;opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translateY(100%);width:100%}.--position-bottom--xl.--active,[dir=rtl] .--position-bottom--xl.--active{transform:translateY(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-start--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-end:auto;margin:0;margin-inline-end:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(-100%);width:var(--rs-modal-size)}[dir=rtl] .--position-start--xl{transform:translate(100%)}.--position-start--xl.--active,[dir=rtl] .--position-start--xl.--active{transform:translate(min(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-end--xl{--rs-modal-size-s:calc(var(--rs-unit-x1) * 100);border-radius:0;height:100%;inset:0;inset-inline-start:auto;margin:0;margin-inline-start:var(--rs-unit-x4);max-height:100%;max-width:calc(var(--rs-modal-container-width) - var(--rs-unit-x4));opacity:1;overflow:auto;position:var(--rs-modal-position);transform:translate(100%);width:var(--rs-modal-size)}[dir=rtl] .--position-end--xl{transform:translate(-100%)}.--position-end--xl.--active,[dir=rtl] .--position-end--xl.--active{transform:translate(max(var(--rs-modal-drag,0px),0px)) scale(1)!important}.--position-full-screen--xl{--rs-modal-size-s:100%;border-radius:0;height:100%;inset:0;inset-block-start:auto;margin:0;max-height:100%;max-width:var(--rs-modal-container-width);opacity:0;overflow:auto;position:var(--rs-modal-position);transform:translateY(var(--rs-unit-x4));width:100%}.--position-full-screen--xl.--active,[dir=rtl] .--position-full-screen--xl.--active{opacity:1;transform:translate(0)!important}}
@@ -9,7 +9,7 @@ const Popover = (props) => {
9
9
  const padding = props.padding ?? (variant === "headless" ? 0 : 4);
10
10
  const trapFocusMode = props.trapFocusMode || (triggerType === "hover" ? "content-menu" : undefined);
11
11
  const paddingStyles = getPaddingStyles(padding);
12
- const contentClassName = classNames(s.content, !!width && s["content--has-width"], variant && s[`content--variant-${variant}`], paddingStyles?.classNames);
12
+ const contentClassName = classNames(s.content, !!width && s["content--has-width"], variant && s[`content--variant-${variant}`]);
13
13
  return (_jsx(Flyout, { ...flyoutProps, position: position, trapFocusMode: trapFocusMode, triggerType: triggerType, width: width, contentClassName: contentClassName, contentAttributes: { style: { ...paddingStyles?.variables } } }));
14
14
  };
15
15
  const PopoverDismissible = (props) => {
@@ -1,7 +1,7 @@
1
1
  import type React from "react";
2
2
  import type { FlyoutProps, FlyoutInstance } from "../_private/Flyout";
3
3
  export type Instance = FlyoutInstance;
4
- export type Props = Pick<FlyoutProps, "id" | "position" | "forcePosition" | "fallbackPositions" | "onOpen" | "onClose" | "width" | "trapFocusMode" | "active" | "defaultActive" | "contentGap" | "contentShift" | "instanceRef" | "triggerType" | "disableHideAnimation" | "disableContentHover" | "disableCloseOnOutsideClick" | "containerRef" | "initialFocusRef"> & {
4
+ export type Props = Pick<FlyoutProps, "id" | "position" | "forcePosition" | "fallbackPositions" | "onOpen" | "onClose" | "width" | "trapFocusMode" | "active" | "defaultActive" | "contentGap" | "contentShift" | "instanceRef" | "triggerType" | "disableHideAnimation" | "disableContentHover" | "disableCloseOnOutsideClick" | "containerRef" | "initialFocusRef" | "originCoordinates"> & {
5
5
  children?: React.ReactNode;
6
6
  padding?: number;
7
7
  variant?: "elevated" | "headless";
@@ -42,8 +42,8 @@ const PrivateResizableItem = React.forwardRef((props, ref) => {
42
42
  }, children: children }));
43
43
  });
44
44
  const Resizable = (props) => {
45
- const { children, height, direction = "row", gap = 2, className, attributes } = props;
46
- const rootClassNames = classNames(s.root, s[`--direction-${direction}`], className);
45
+ const { children, variant = "borderless", height, direction = "row", gap = 2, className, attributes, } = props;
46
+ const rootClassNames = classNames(s.root, s[`--direction-${direction}`], variant && s[`--variant-${variant}`], className);
47
47
  const containerRef = React.useRef(null);
48
48
  const itemsRef = React.useRef([]);
49
49
  const horizontal = direction === "row";
@@ -1 +1 @@
1
- .item{--rs-resizable-default-size:none;--rs-resizable-min-size:0;--rs-resizable-max-size:100%;flex-grow:100;max-width:var(--rs-resizable-default-size);min-width:var(--rs-resizable-default-size);overflow:hidden}.handle{flex-shrink:0;position:relative}.handle:after,.handle:before{border-radius:999px;content:"";position:absolute}.handle:after{background:var(--rs-color-border-neutral);opacity:0;transition:opacity var(--rs-duration-fast) var(--rs-easing-standard)}.handle--dragging:after,.handle:hover:after,[data-rs-keyboard] .handle:focus:after{opacity:.6}body:has(.handle--dragging) .handle:not(.handle--dragging){opacity:0}body:has(.--direction-row>.handle--dragging){cursor:ew-resize}body:has(.--direction-column>.handle--dragging){cursor:ns-resize}.--direction-row>.handle{cursor:ew-resize}.--direction-row>.handle:after,.--direction-row>.handle:before{inset-block:0;inset-inline-start:50%;transform:translateX(-50%)}.--direction-row>.handle:before{width:var(--rs-unit-x4)}.--direction-row>.handle:after{width:var(--rs-unit-x1)}.--direction-row>.item[data-rs-resizable-item-mounted]{max-width:var(--rs-resizable-max-size);min-width:var(--rs-resizable-min-size)}.--direction-column>.handle{cursor:ns-resize}.--direction-column>.handle:after,.--direction-column>.handle:before{inset-block-start:50%;inset-inline:0;transform:translateY(-50%)}.--direction-column>.handle:before{height:var(--rs-unit-x4)}.--direction-column>.handle:after{height:var(--rs-unit-x1)}.--direction-column>.item[data-rs-resizable-item-mounted]{max-height:var(--rs-resizable-max-size);min-height:var(--rs-resizable-min-size)}
1
+ .item{--rs-resizable-default-size:none;--rs-resizable-min-size:0;--rs-resizable-max-size:100%;flex-grow:100;max-width:var(--rs-resizable-default-size);min-width:var(--rs-resizable-default-size);overflow:hidden}.handle{flex-shrink:0;position:relative}.handle:after,.handle:before{border-radius:999px;content:"";position:absolute}.handle:after{transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity,background-color}.--variant-bordered .handle:after{background:var(--rs-color-border-neutral-faded)}.--variant-bordered .handle--dragging:after,.--variant-bordered .handle:hover:after,.--variant-borderless .handle:after,[data-rs-keyboard] .--variant-bordered .handle:focus:after{background:var(--rs-color-border-neutral)}.--variant-borderless .handle:after{opacity:0}.--variant-borderless .handle--dragging:after,.--variant-borderless .handle:hover:after,[data-rs-keyboard] .--variant-borderless .handle:focus:after{opacity:.6}body:has(.handle--dragging) .--variant-borderless .handle:not(.handle--dragging){opacity:0}body:has(.handle--dragging) .--variant-bordered .handle:not(.handle--dragging):after{background:var(--rs-color-border-neutral-faded)}body:has(.--direction-row>.handle--dragging){cursor:ew-resize}body:has(.--direction-column>.handle--dragging){cursor:ns-resize}.--direction-row>.handle{cursor:ew-resize}.--direction-row>.handle:after,.--direction-row>.handle:before{inset-block:0;inset-inline-start:50%;transform:translateX(-50%)}.--direction-row>.handle:before{width:var(--rs-unit-x8)}.--variant-borderless.--direction-row>.handle:after{width:var(--rs-unit-x1)}.--variant-bordered.--direction-row>.handle:after{width:1px}.--direction-row>.item[data-rs-resizable-item-mounted]{max-width:var(--rs-resizable-max-size);min-width:var(--rs-resizable-min-size)}.--direction-column>.handle{cursor:ns-resize}.--direction-column>.handle:after,.--direction-column>.handle:before{inset-block-start:50%;inset-inline:0;transform:translateY(-50%)}.--direction-column>.handle:before{height:var(--rs-unit-x8)}.--variant-borderless.--direction-column>.handle:after{height:var(--rs-unit-x1)}.--variant-bordered.--direction-column>.handle:after{height:1px}.--direction-column>.item[data-rs-resizable-item-mounted]{max-height:var(--rs-resizable-max-size);min-height:var(--rs-resizable-min-size)}
@@ -1,7 +1,9 @@
1
1
  import type React from "react";
2
2
  import type { ViewProps } from "../View";
3
3
  import type { UseDragCallbackArgs } from "../../hooks/useDrag";
4
- export type Props = Pick<ViewProps, "children" | "className" | "attributes" | "height" | "direction" | "gap">;
4
+ export type Props = {
5
+ variant?: "bordered" | "borderless";
6
+ } & Pick<ViewProps, "children" | "className" | "attributes" | "height" | "direction" | "gap">;
5
7
  export type ItemProps = {
6
8
  children: React.ReactNode;
7
9
  minSize?: `${number}px`;
@@ -54,6 +54,39 @@ export const base = () => (<Example>
54
54
  </Resizable>
55
55
  </Resizable.Item>
56
56
  </Resizable>
57
- <div style={{ height: 2000 }}/>
58
57
  </Example.Item>
58
+
59
+ <Example.Item>
60
+ <Resizable height="300px" gap={0} variant="bordered">
61
+ <Resizable.Item minSize="100px" defaultSize="200px">
62
+ <View align="center" justify="center" height="100%">
63
+ Panel
64
+ </View>
65
+ </Resizable.Item>
66
+ <Resizable.Handle />
67
+ <Resizable.Item>
68
+ <View align="center" justify="center" height="100%">
69
+ Panel
70
+ </View>
71
+ </Resizable.Item>
72
+ <Resizable.Handle />
73
+ <Resizable.Item>
74
+ <Resizable height="100%" direction="column" variant="bordered" gap={0}>
75
+ <Resizable.Item minSize="50px" maxSize="100px">
76
+ <View align="center" justify="center" height="100%">
77
+ Panel
78
+ </View>
79
+ </Resizable.Item>
80
+ <Resizable.Handle />
81
+ <Resizable.Item>
82
+ <View align="center" justify="center" height="100%">
83
+ Panel
84
+ </View>
85
+ </Resizable.Item>
86
+ </Resizable>
87
+ </Resizable.Item>
88
+ </Resizable>
89
+ </Example.Item>
90
+
91
+ <div style={{ height: 2000 }}/>
59
92
  </Example>);
@@ -88,15 +88,15 @@ const ScrollArea = forwardRef((props, ref) => {
88
88
  });
89
89
  }, []);
90
90
  const handleScroll = (e) => {
91
- const scrollableEl = scrollableRef.current;
92
- if (!scrollableEl)
93
- return;
94
- const next = {
95
- x: e.currentTarget.scrollLeft / scrollableEl.scrollWidth,
96
- y: e.currentTarget.scrollTop / scrollableEl.scrollHeight,
97
- };
98
- setScrollPosition(next);
99
- onScroll?.(next);
91
+ const { scrollLeft, scrollTop, clientWidth, clientHeight, scrollWidth, scrollHeight } = e.currentTarget;
92
+ setScrollPosition({
93
+ x: scrollLeft / scrollWidth,
94
+ y: scrollTop / scrollHeight,
95
+ });
96
+ onScroll?.({
97
+ x: scrollWidth === clientWidth ? 0 : scrollLeft / (scrollWidth - clientWidth),
98
+ y: scrollHeight === clientHeight ? 0 : scrollTop / (scrollHeight - clientHeight),
99
+ });
100
100
  };
101
101
  const handleThumbYMove = (args) => {
102
102
  const scrollableEl = scrollableRef.current;
@@ -1 +1 @@
1
- .root{--rs-scroll-area-thumb-size:calc(var(--rs-unit-x1) * 1.5);--rs-scroll-area-thumb-offset:calc(var(--rs-unit-x1) / 2);overflow:hidden}.root,.scrollable{height:100%;position:relative}.scrollable{overflow:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollable::-webkit-scrollbar{display:none;height:0;width:0}.scrollbar{box-sizing:initial;padding:var(--rs-scroll-area-thumb-offset);position:absolute}.thumb{height:100%;position:relative;width:100%}.thumb:before{background:var(--rs-color-foreground-neutral);border-radius:999px;content:"";display:block;opacity:0;position:absolute;transition:opacity var(--rs-duration-fast) var(--rs-easing-standard)}.--scrollbar-y{inset-block:0;inset-inline-end:0;width:var(--rs-scroll-area-thumb-size)}.--scrollbar-y .thumb:before{height:calc(var(--rs-scroll-area-ratio) * 100%);inset-block-start:calc(var(--rs-scroll-area-position) * 100%);width:100%}.--scrollbar-x{height:var(--rs-scroll-area-thumb-size);inset-block-end:0;inset-inline:0}.--scrollbar-x .thumb:before{height:100%;inset-inline-start:calc(var(--rs-scroll-area-position) * 100%);width:calc(var(--rs-scroll-area-ratio) * 100%)}.--scrollbar-y:not(:last-child){inset-block-end:calc(var(--rs-scroll-area-thumb-size) + var(--rs-scroll-area-thumb-offset) * 2)}.--scrollbar-y~.--scrollbar-x{inset-inline-end:calc(var(--rs-scroll-area-thumb-size) + var(--rs-scroll-area-thumb-offset) * 2)}.--display-hover:hover .thumb:before,.--display-visible .thumb:before{opacity:.2}.--display-hover:hover .--scrollbar-dragging .thumb:before,.--scrollbar-dragging .thumb:before,.scrollbar:hover .thumb:before{opacity:.32}
1
+ .root{--rs-scroll-area-thumb-size:calc(var(--rs-unit-x1) * 1.5);--rs-scroll-area-thumb-offset:calc(var(--rs-unit-x1) / 2);height:100%}.root,.scrollable{overflow:auto;position:relative}.scrollable{display:inline-block;max-height:100%;scrollbar-width:none;vertical-align:top;width:100%;-webkit-overflow-scrolling:touch}.scrollable::-webkit-scrollbar{display:none;height:0;width:0}.scrollbar{box-sizing:initial;padding:var(--rs-scroll-area-thumb-offset);position:absolute}.thumb{height:100%;position:relative;width:100%}.thumb:before{background:var(--rs-color-foreground-neutral);border-radius:999px;content:"";display:block;opacity:0;position:absolute;transition:opacity var(--rs-duration-fast) var(--rs-easing-standard)}.--scrollbar-y{inset-block:0;inset-inline-end:0;width:var(--rs-scroll-area-thumb-size)}.--scrollbar-y .thumb:before{height:calc(var(--rs-scroll-area-ratio) * 100%);inset-block-start:calc(var(--rs-scroll-area-position) * 100%);width:100%}.--scrollbar-x{height:var(--rs-scroll-area-thumb-size);inset-block-end:0;inset-inline:0}.--scrollbar-x .thumb:before{height:100%;inset-inline-start:calc(var(--rs-scroll-area-position) * 100%);width:calc(var(--rs-scroll-area-ratio) * 100%)}.--scrollbar-y:not(:last-child){inset-block-end:calc(var(--rs-scroll-area-thumb-size) + var(--rs-scroll-area-thumb-offset) * 2)}.--scrollbar-y~.--scrollbar-x{inset-inline-end:calc(var(--rs-scroll-area-thumb-size) + var(--rs-scroll-area-thumb-offset) * 2)}.--display-hover:hover .thumb:before,.--display-visible .thumb:before{opacity:.2}.--display-hover:hover .--scrollbar-dragging .thumb:before,.--scrollbar-dragging .thumb:before,.scrollbar:hover .thumb:before{opacity:.32}
@@ -3,10 +3,7 @@ import type * as G from "../../types/global";
3
3
  export type Props = {
4
4
  children: React.ReactNode;
5
5
  scrollbarDisplay?: "visible" | "hover" | "hidden";
6
- onScroll?: (args: {
7
- x: number;
8
- y: number;
9
- }) => void;
6
+ onScroll?: (args: G.Coordinates) => void;
10
7
  height?: G.Responsive<string | number>;
11
8
  maxHeight?: G.Responsive<string | number>;
12
9
  className?: G.ClassName;
@@ -1,6 +1,7 @@
1
+ import React from "react";
1
2
  declare const _default: {
2
3
  title: string;
3
- component: import("react").ForwardRefExoticComponent<import("./..").ScrollAreaProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ component: React.ForwardRefExoticComponent<import("./..").ScrollAreaProps & React.RefAttributes<HTMLDivElement>>;
4
5
  parameters: {
5
6
  iframe: {
6
7
  url: string;
@@ -8,6 +9,7 @@ declare const _default: {
8
9
  };
9
10
  };
10
11
  export default _default;
11
- export declare const direction: () => import("react").JSX.Element;
12
- export declare const visibility: () => import("react").JSX.Element;
13
- export declare const ref: () => import("react").JSX.Element;
12
+ export declare const direction: () => React.JSX.Element;
13
+ export declare const visibility: () => React.JSX.Element;
14
+ export declare const ref: () => React.JSX.Element;
15
+ export declare const edgeCases: () => React.JSX.Element;