reshaped 3.9.1-canary.2 → 3.10.0-canary.10

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 (230) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.d.ts +5 -12
  3. package/dist/bundle.js +2 -2
  4. package/dist/cli/theming/tailwind.js +1 -0
  5. package/dist/components/Accordion/Accordion.types.d.ts +3 -2
  6. package/dist/components/Accordion/AccordionControlled.js +1 -2
  7. package/dist/components/Accordion/AccordionTrigger.js +1 -1
  8. package/dist/components/ActionBar/ActionBar.js +2 -1
  9. package/dist/components/ActionBar/ActionBar.types.d.ts +3 -2
  10. package/dist/components/Actionable/Actionable.d.ts +2 -2
  11. package/dist/components/Actionable/Actionable.js +1 -1
  12. package/dist/components/Actionable/Actionable.types.d.ts +1 -1
  13. package/dist/components/Actionable/index.d.ts +1 -1
  14. package/dist/components/Alert/Alert.types.d.ts +3 -2
  15. package/dist/components/Autocomplete/Autocomplete.js +3 -5
  16. package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -1
  17. package/dist/components/Avatar/Avatar.js +2 -1
  18. package/dist/components/Avatar/Avatar.types.d.ts +5 -4
  19. package/dist/components/Badge/Badge.js +6 -5
  20. package/dist/components/Badge/Badge.module.css +1 -1
  21. package/dist/components/Badge/Badge.types.d.ts +4 -4
  22. package/dist/components/Badge/BadgeContainer.js +1 -1
  23. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -1
  24. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +3 -3
  25. package/dist/components/Button/Button.js +2 -1
  26. package/dist/components/Button/Button.types.d.ts +3 -2
  27. package/dist/components/Button/ButtonGroup.js +1 -1
  28. package/dist/components/Calendar/CalendarDate.js +1 -1
  29. package/dist/components/Calendar/useCalendarKeyboardNavigation.js +1 -1
  30. package/dist/components/Card/Card.d.ts +6 -14
  31. package/dist/components/Card/Card.js +1 -1
  32. package/dist/components/Card/Card.types.d.ts +4 -3
  33. package/dist/components/Carousel/Carousel.js +3 -4
  34. package/dist/components/Carousel/Carousel.types.d.ts +3 -2
  35. package/dist/components/Carousel/CarouselControl.js +1 -2
  36. package/dist/components/Checkbox/Checkbox.js +2 -2
  37. package/dist/components/Checkbox/Checkbox.types.d.ts +4 -3
  38. package/dist/components/Container/Container.js +1 -1
  39. package/dist/components/Container/Container.types.d.ts +3 -2
  40. package/dist/components/ContextMenu/ContextMenu.js +1 -2
  41. package/dist/components/Dismissible/Dismissible.js +1 -1
  42. package/dist/components/Dismissible/Dismissible.types.d.ts +3 -3
  43. package/dist/components/Divider/Divider.js +2 -1
  44. package/dist/components/Divider/Divider.types.d.ts +3 -2
  45. package/dist/components/DropdownMenu/DropdownMenu.js +1 -3
  46. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  47. package/dist/components/FileUpload/FileUpload.js +1 -2
  48. package/dist/components/FileUpload/FileUpload.types.d.ts +4 -3
  49. package/dist/components/Flyout/Flyout.module.css +1 -1
  50. package/dist/components/Flyout/Flyout.types.d.ts +9 -7
  51. package/dist/components/Flyout/FlyoutContent.js +4 -13
  52. package/dist/components/Flyout/FlyoutControlled.js +4 -6
  53. package/dist/components/Flyout/useFlyout.d.ts +2 -2
  54. package/dist/components/Flyout/useFlyout.js +5 -5
  55. package/dist/components/Flyout/utilities/safeArea.d.ts +2 -2
  56. package/dist/components/Flyout/utilities/safeArea.js +0 -14
  57. package/dist/components/Grid/Grid.js +2 -1
  58. package/dist/components/Grid/Grid.types.d.ts +5 -4
  59. package/dist/components/Hidden/Hidden.js +2 -1
  60. package/dist/components/HiddenInput/HiddenInput.js +1 -1
  61. package/dist/components/HiddenInput/HiddenInput.types.d.ts +3 -2
  62. package/dist/components/Hotkey/Hotkey.js +1 -1
  63. package/dist/components/Hotkey/Hotkey.types.d.ts +3 -3
  64. package/dist/components/Icon/Icon.js +1 -1
  65. package/dist/components/Icon/Icon.types.d.ts +3 -2
  66. package/dist/components/Image/Image.js +1 -1
  67. package/dist/components/Image/Image.types.d.ts +5 -4
  68. package/dist/components/Link/Link.js +1 -1
  69. package/dist/components/Loader/Loader.js +2 -1
  70. package/dist/components/Loader/Loader.types.d.ts +3 -2
  71. package/dist/components/MenuItem/MenuItem.js +2 -1
  72. package/dist/components/MenuItem/MenuItem.types.d.ts +3 -2
  73. package/dist/components/Modal/Modal.js +7 -6
  74. package/dist/components/Modal/Modal.types.d.ts +5 -4
  75. package/dist/components/NumberField/NumberFieldControlled.js +1 -2
  76. package/dist/components/Overlay/Overlay.js +7 -12
  77. package/dist/components/Overlay/Overlay.types.d.ts +5 -3
  78. package/dist/components/Pagination/Pagination.types.d.ts +3 -3
  79. package/dist/components/PinField/PinField.types.d.ts +4 -3
  80. package/dist/components/PinField/PinFieldControlled.js +1 -1
  81. package/dist/components/Popover/Popover.js +1 -1
  82. package/dist/components/Popover/Popover.types.d.ts +1 -1
  83. package/dist/components/Progress/Progress.js +1 -1
  84. package/dist/components/Progress/Progress.types.d.ts +3 -3
  85. package/dist/components/ProgressIndicator/ProgressIndicator.js +1 -1
  86. package/dist/components/ProgressIndicator/ProgressIndicator.types.d.ts +3 -3
  87. package/dist/components/Radio/Radio.js +2 -1
  88. package/dist/components/Radio/Radio.types.d.ts +4 -3
  89. package/dist/components/RadioGroup/RadioGroup.types.d.ts +3 -2
  90. package/dist/components/Reshaped/Reshaped.js +4 -11
  91. package/dist/components/Reshaped/Reshaped.types.d.ts +3 -2
  92. package/dist/components/Resizable/Resizable.js +1 -1
  93. package/dist/components/Resizable/ResizableHandle.js +1 -1
  94. package/dist/components/Scrim/Scrim.js +1 -1
  95. package/dist/components/Scrim/Scrim.types.d.ts +4 -4
  96. package/dist/components/ScrollArea/ScrollArea.js +2 -4
  97. package/dist/components/ScrollArea/ScrollArea.types.d.ts +5 -3
  98. package/dist/components/Select/Select.types.d.ts +5 -4
  99. package/dist/components/Select/SelectNative.js +1 -1
  100. package/dist/components/Select/SelectRoot.js +2 -1
  101. package/dist/components/Skeleton/Skeleton.js +1 -1
  102. package/dist/components/Skeleton/Skeleton.types.d.ts +3 -3
  103. package/dist/components/Slider/Slider.types.d.ts +3 -3
  104. package/dist/components/Slider/Slider.utilities.d.ts +7 -0
  105. package/dist/components/Slider/Slider.utilities.js +11 -0
  106. package/dist/components/Slider/SliderControlled.js +15 -8
  107. package/dist/components/Slider/SliderThumb.js +1 -1
  108. package/dist/components/Stepper/Stepper.types.d.ts +5 -4
  109. package/dist/components/Switch/Switch.js +2 -1
  110. package/dist/components/Switch/Switch.types.d.ts +4 -3
  111. package/dist/components/Table/Table.js +2 -1
  112. package/dist/components/Table/Table.types.d.ts +12 -12
  113. package/dist/components/Tabs/Tabs.types.d.ts +6 -6
  114. package/dist/components/Tabs/TabsItem.js +2 -3
  115. package/dist/components/Tabs/TabsList.js +1 -4
  116. package/dist/components/Tabs/TabsPanel.js +2 -2
  117. package/dist/components/Text/Text.js +2 -1
  118. package/dist/components/Text/Text.types.d.ts +3 -2
  119. package/dist/components/TextArea/TextArea.js +2 -1
  120. package/dist/components/TextArea/TextArea.types.d.ts +5 -4
  121. package/dist/components/TextField/TextField.js +2 -1
  122. package/dist/components/TextField/TextField.types.d.ts +4 -3
  123. package/dist/components/Theme/GlobalColorMode.js +1 -1
  124. package/dist/components/Theme/Theme.js +1 -2
  125. package/dist/components/Theme/Theme.types.d.ts +2 -1
  126. package/dist/components/Timeline/Timeline.js +1 -1
  127. package/dist/components/Timeline/Timeline.types.d.ts +5 -5
  128. package/dist/components/Toast/Toast.types.d.ts +3 -3
  129. package/dist/components/Toast/ToastContainer.js +2 -2
  130. package/dist/components/Toast/ToastRegion.js +2 -2
  131. package/dist/components/ToggleButton/ToggleButtonUncontrolled.js +1 -1
  132. package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +1 -1
  133. package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
  134. package/dist/components/View/View.js +2 -1
  135. package/dist/components/View/View.types.d.ts +5 -4
  136. package/dist/components/_private/Aligner/Aligner.js +1 -1
  137. package/dist/components/_private/Aligner/Aligner.types.d.ts +3 -3
  138. package/dist/components/_private/Expandable/Expandable.js +2 -2
  139. package/dist/components/_private/Expandable/Expandable.types.d.ts +2 -2
  140. package/dist/components/_private/Portal/Portal.js +1 -2
  141. package/dist/hooks/_private/useDrag.js +2 -4
  142. package/dist/hooks/_private/useFadeSide.js +2 -3
  143. package/dist/hooks/_private/useSingletonViewport.d.ts +10 -0
  144. package/dist/hooks/_private/useSingletonViewport.js +52 -0
  145. package/dist/hooks/useResponsiveClientValue.js +15 -53
  146. package/dist/hooks/useViewport.d.ts +2 -0
  147. package/dist/hooks/useViewport.js +6 -0
  148. package/dist/index.d.ts +5 -12
  149. package/dist/index.js +3 -11
  150. package/dist/styles/mixin.d.ts +2 -2
  151. package/dist/styles/types.d.ts +2 -1
  152. package/dist/tests/ThemesPlayground.js +1 -1
  153. package/dist/themes/figma/tailwind.css +1 -1
  154. package/dist/themes/fragments/twitter/tailwind.css +1 -1
  155. package/dist/themes/reshaped/tailwind.css +1 -1
  156. package/dist/themes/slate/tailwind.css +1 -1
  157. package/dist/types/global.d.ts +0 -15
  158. package/dist/utilities/helpers.d.ts +0 -1
  159. package/dist/utilities/helpers.js +0 -14
  160. package/dist/utilities/props.d.ts +2 -5
  161. package/dist/utilities/props.js +0 -18
  162. package/package.json +4 -4
  163. package/dist/core/Actionable/Actionable.d.ts +0 -4
  164. package/dist/core/Actionable/Actionable.js +0 -73
  165. package/dist/core/Actionable/Actionable.types.d.ts +0 -34
  166. package/dist/core/Actionable/Actionable.types.js +0 -1
  167. package/dist/core/Actionable/index.d.ts +0 -2
  168. package/dist/core/Actionable/index.js +0 -1
  169. package/dist/hooks/_private/useSingletonEnvironment.d.ts +0 -9
  170. package/dist/hooks/_private/useSingletonEnvironment.js +0 -33
  171. package/dist/hooks/_private/useSingletonHotkeys.d.ts +0 -35
  172. package/dist/hooks/_private/useSingletonHotkeys.js +0 -191
  173. package/dist/hooks/_private/useSingletonKeyboardMode.d.ts +0 -13
  174. package/dist/hooks/_private/useSingletonKeyboardMode.js +0 -58
  175. package/dist/hooks/useHandlerRef.d.ts +0 -8
  176. package/dist/hooks/useHandlerRef.js +0 -16
  177. package/dist/hooks/useHotkeys.d.ts +0 -11
  178. package/dist/hooks/useHotkeys.js +0 -27
  179. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
  180. package/dist/hooks/useIsomorphicLayoutEffect.js +0 -4
  181. package/dist/hooks/useKeyboardArrowNavigation.d.ts +0 -9
  182. package/dist/hooks/useKeyboardArrowNavigation.js +0 -62
  183. package/dist/hooks/useKeyboardMode.d.ts +0 -7
  184. package/dist/hooks/useKeyboardMode.js +0 -13
  185. package/dist/hooks/useOnClickOutside.d.ts +0 -5
  186. package/dist/hooks/useOnClickOutside.js +0 -63
  187. package/dist/hooks/useRTL.d.ts +0 -2
  188. package/dist/hooks/useRTL.js +0 -7
  189. package/dist/hooks/useScrollLock.d.ts +0 -10
  190. package/dist/hooks/useScrollLock.js +0 -25
  191. package/dist/hooks/useToggle.d.ts +0 -7
  192. package/dist/hooks/useToggle.js +0 -19
  193. package/dist/utilities/Chain.d.ts +0 -20
  194. package/dist/utilities/Chain.js +0 -60
  195. package/dist/utilities/a11y/TrapFocus.d.ts +0 -28
  196. package/dist/utilities/a11y/TrapFocus.js +0 -162
  197. package/dist/utilities/a11y/TrapScreenReader.d.ts +0 -15
  198. package/dist/utilities/a11y/TrapScreenReader.js +0 -42
  199. package/dist/utilities/a11y/focus.d.ts +0 -38
  200. package/dist/utilities/a11y/focus.js +0 -101
  201. package/dist/utilities/a11y/index.d.ts +0 -4
  202. package/dist/utilities/a11y/index.js +0 -3
  203. package/dist/utilities/a11y/keyboardMode.d.ts +0 -3
  204. package/dist/utilities/a11y/keyboardMode.js +0 -10
  205. package/dist/utilities/a11y/types.d.ts +0 -24
  206. package/dist/utilities/a11y/types.js +0 -1
  207. package/dist/utilities/css.d.ts +0 -7
  208. package/dist/utilities/css.js +0 -18
  209. package/dist/utilities/dom/event.d.ts +0 -7
  210. package/dist/utilities/dom/event.js +0 -11
  211. package/dist/utilities/dom/find.d.ts +0 -10
  212. package/dist/utilities/dom/find.js +0 -37
  213. package/dist/utilities/dom/index.d.ts +0 -3
  214. package/dist/utilities/dom/index.js +0 -3
  215. package/dist/utilities/dom/shadowDom.d.ts +0 -1
  216. package/dist/utilities/dom/shadowDom.js +0 -4
  217. package/dist/utilities/platform.d.ts +0 -1
  218. package/dist/utilities/platform.js +0 -16
  219. package/dist/utilities/scroll/disable.d.ts +0 -7
  220. package/dist/utilities/scroll/disable.js +0 -15
  221. package/dist/utilities/scroll/helpers.d.ts +0 -1
  222. package/dist/utilities/scroll/helpers.js +0 -17
  223. package/dist/utilities/scroll/index.d.ts +0 -2
  224. package/dist/utilities/scroll/index.js +0 -2
  225. package/dist/utilities/scroll/lock.d.ts +0 -5
  226. package/dist/utilities/scroll/lock.js +0 -32
  227. package/dist/utilities/scroll/lockSafari.d.ts +0 -2
  228. package/dist/utilities/scroll/lockSafari.js +0 -20
  229. package/dist/utilities/scroll/lockStandard.d.ts +0 -4
  230. package/dist/utilities/scroll/lockStandard.js +0 -15
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type React from "react";
2
3
  import type * as G from "../../types/global";
3
4
  export type Props = {
@@ -12,9 +13,9 @@ export type Props = {
12
13
  /** Gap between items (default: 3) */
13
14
  gap?: G.Responsive<number>;
14
15
  /** Additional classname for the root element */
15
- className?: G.ClassName;
16
+ className?: ClassName;
16
17
  /** Additional attributes for the root element */
17
- attributes?: G.Attributes<"div">;
18
+ attributes?: Attributes<"div">;
18
19
  };
19
20
  export type ItemProps = {
20
21
  /** Id of the item, used for selecting the active item */
@@ -28,9 +29,9 @@ export type ItemProps = {
28
29
  /** Node for inserting children */
29
30
  children?: React.ReactNode;
30
31
  /** Additional classname for the root element */
31
- className?: G.ClassName;
32
+ className?: ClassName;
32
33
  /** Additional attributes for the root element */
33
- attributes?: G.Attributes<"div">;
34
+ attributes?: Attributes<"div">;
34
35
  };
35
36
  export type ItemPrivateProps = ItemProps & {
36
37
  labelDisplay: Props["labelDisplay"];
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
3
4
  import { useFormControl } from "../FormControl/index.js";
4
5
  import Text from "../Text/index.js";
5
6
  import useElementId from "../../hooks/useElementId.js";
6
- import { classNames, responsiveClassNames, responsivePropDependency } from "../../utilities/props.js";
7
+ import { responsiveClassNames, responsivePropDependency } from "../../utilities/props.js";
7
8
  import s from "./Switch.module.css";
8
9
  const Switch = (props) => {
9
10
  const { children, name, checked, size = "medium", reversed, defaultChecked, onChange, onFocus, onBlur, className, attributes, } = props;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import type { Attributes, ClassName } from "@reshaped/headless";
2
3
  import type * as G from "../../types/global";
3
4
  type BaseProps = {
4
5
  /** Node for inserting children */
@@ -20,11 +21,11 @@ type BaseProps = {
20
21
  /** Callback when the switch is blurred */
21
22
  onBlur?: (e: React.FocusEvent) => void;
22
23
  /** Additional classname for the root element */
23
- className?: G.ClassName;
24
+ className?: ClassName;
24
25
  /** Additional attributes for the root element */
25
- attributes?: G.Attributes<"label">;
26
+ attributes?: Attributes<"label">;
26
27
  /** Additional attributes for the input element */
27
- inputAttributes?: G.Attributes<"input">;
28
+ inputAttributes?: Attributes<"input">;
28
29
  };
29
30
  export type ControlledProps = BaseProps & {
30
31
  /** Default value of the switch, enables uncontrolled mode */
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
3
4
  import React, { isValidElement } from "react";
4
5
  import useFadeSide from "../../hooks/_private/useFadeSide.js";
5
6
  import { resolveMixin } from "../../styles/mixin.js";
6
- import { classNames, responsiveVariables } from "../../utilities/props.js";
7
+ import { responsiveVariables } from "../../utilities/props.js";
7
8
  import s from "./Table.module.css";
8
9
  const TableCellPrivate = (props) => {
9
10
  const { minWidth, rowSpan, colSpan, align, verticalAlign, tagName: TagName, padding, paddingInline, paddingBlock, children, className, attributes, } = props;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type * as G from "../../types/global";
2
+ import type { Attributes, ClassName } from "@reshaped/headless";
3
3
  export type Props = {
4
4
  /** Add border around the table */
5
5
  border?: boolean;
@@ -8,9 +8,9 @@ export type Props = {
8
8
  /** Node for inserting children */
9
9
  children: React.ReactNode;
10
10
  /** Additional classname for the root element */
11
- className?: G.ClassName;
11
+ className?: ClassName;
12
12
  /** Additional attributes for the root element */
13
- attributes?: G.Attributes<"div">;
13
+ attributes?: Attributes<"div">;
14
14
  };
15
15
  export type RowProps = {
16
16
  /** Indicate that the row is selected */
@@ -20,9 +20,9 @@ export type RowProps = {
20
20
  /** Node for inserting children */
21
21
  children: React.ReactNode;
22
22
  /** Additional classname for the row element */
23
- className?: G.ClassName;
23
+ className?: ClassName;
24
24
  /** Additional attributes for the row element */
25
- attributes?: G.Attributes<"tr">;
25
+ attributes?: Attributes<"tr">;
26
26
  };
27
27
  export type CellProps = {
28
28
  /** Align the cell content */
@@ -46,29 +46,29 @@ export type CellProps = {
46
46
  /** Node for inserting children */
47
47
  children?: React.ReactNode;
48
48
  /** Additional classname for the cell element */
49
- className?: G.ClassName;
49
+ className?: ClassName;
50
50
  /** Additional attributes for the cell element */
51
- attributes?: G.Attributes<"td">;
51
+ attributes?: Attributes<"td">;
52
52
  };
53
53
  export type HeadingProps = CellProps & {
54
54
  /** Additional attributes for the heading element */
55
- attributes?: G.Attributes<"th">;
55
+ attributes?: Attributes<"th">;
56
56
  };
57
57
  export type BodyProps = {
58
58
  /** Node for inserting children */
59
59
  children: React.ReactNode;
60
60
  /** Additional classname for the body element */
61
- className?: G.ClassName;
61
+ className?: ClassName;
62
62
  /** Additional attributes for the body element */
63
- attributes?: G.Attributes<"tbody">;
63
+ attributes?: Attributes<"tbody">;
64
64
  };
65
65
  export type HeadProps = {
66
66
  /** Node for inserting children */
67
67
  children: React.ReactNode;
68
68
  /** Additional classname for the head element */
69
- className?: G.ClassName;
69
+ className?: ClassName;
70
70
  /** Additional attributes for the head element */
71
- attributes?: G.Attributes<"thead">;
71
+ attributes?: Attributes<"thead">;
72
72
  };
73
73
  export type PrivateCellProps = CellProps & {
74
74
  tagName: "td" | "th";
@@ -1,6 +1,6 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { IconProps } from "../Icon";
2
3
  import type React from "react";
3
- import type * as G from "../../types/global";
4
4
  export type SelectionState = {
5
5
  left: number;
6
6
  top: number;
@@ -20,15 +20,15 @@ export type ItemProps = {
20
20
  /** Disable the item user interaction */
21
21
  disabled?: boolean;
22
22
  /** Additional attributes for the item element */
23
- attributes?: G.Attributes<"div">;
23
+ attributes?: Attributes<"div">;
24
24
  };
25
25
  export type ListProps = {
26
26
  /** Node for inserting children */
27
27
  children?: React.ReactNode;
28
28
  /** Additional classname for the list element */
29
- className?: G.ClassName;
29
+ className?: ClassName;
30
30
  /** Additional attributes for the list element */
31
- attributes?: G.Attributes<"div">;
31
+ attributes?: Attributes<"div">;
32
32
  };
33
33
  export type PanelProps = {
34
34
  /** Value of the panel used for the active panel selection */
@@ -36,9 +36,9 @@ export type PanelProps = {
36
36
  /** Node for inserting children */
37
37
  children?: React.ReactNode;
38
38
  /** Additional classname for the panel element */
39
- className?: G.ClassName;
39
+ className?: ClassName;
40
40
  /** Additional attributes for the panel element */
41
- attributes?: G.Attributes<"div">;
41
+ attributes?: Attributes<"div">;
42
42
  };
43
43
  export type BaseProps = {
44
44
  /** Node for inserting children */
@@ -1,13 +1,12 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { classNames, useIsomorphicLayoutEffect } from "@reshaped/headless";
4
+ import { findParent } from "@reshaped/headless/internal";
3
5
  import React from "react";
4
6
  import Actionable from "../Actionable/index.js";
5
7
  import HiddenInput from "../HiddenInput/index.js";
6
8
  import Icon from "../Icon/index.js";
7
9
  import Text from "../Text/index.js";
8
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
9
- import { findParent } from "../../utilities/dom/index.js";
10
- import { classNames } from "../../utilities/props.js";
11
10
  import s from "./Tabs.module.css";
12
11
  import { useTabs } from "./TabsContext.js";
13
12
  const TabsItem = React.forwardRef((props, ref) => {
@@ -1,15 +1,12 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { classNames, useIsomorphicLayoutEffect, useRTL, useKeyboardArrowNavigation, } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import Actionable from "../Actionable/index.js";
5
6
  import Icon from "../Icon/index.js";
6
7
  import useFadeSide from "../../hooks/_private/useFadeSide.js";
7
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
8
- import useKeyboardArrowNavigation from "../../hooks/useKeyboardArrowNavigation.js";
9
- import useRTL from "../../hooks/useRTL.js";
10
8
  import IconChevronLeft from "../../icons/ChevronLeft.js";
11
9
  import IconChevronRight from "../../icons/ChevronRight.js";
12
- import { classNames } from "../../utilities/props.js";
13
10
  import s from "./Tabs.module.css";
14
11
  import { useTabs } from "./TabsContext.js";
15
12
  import TabsItem from "./TabsItem.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
4
+ import { getFocusableElements } from "@reshaped/headless/internal";
3
5
  import React from "react";
4
- import { getFocusableElements } from "../../utilities/a11y/index.js";
5
- import { classNames } from "../../utilities/props.js";
6
6
  import s from "./Tabs.module.css";
7
7
  import { useTabs } from "./TabsContext.js";
8
8
  const TabsPanel = (props) => {
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classNames } from "@reshaped/headless";
2
3
  import { resolveMixin } from "../../styles/mixin.js";
3
- import { classNames, responsiveClassNames } from "../../utilities/props.js";
4
+ import { responsiveClassNames } from "../../utilities/props.js";
4
5
  import s from "./Text.module.css";
5
6
  const tagMap = {
6
7
  "title-1": "h1",
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type React from "react";
2
3
  import type * as G from "../../types/global";
3
4
  export type Variant = "title-1" | "title-2" | "title-3" | "title-4" | "title-5" | "title-6" | "featured-1" | "featured-2" | "featured-3" | "body-1" | "body-2" | "body-3" | "caption-1" | "caption-2";
@@ -23,9 +24,9 @@ export type Props<TagName extends keyof React.JSX.IntrinsicElements | void = voi
23
24
  /** Node for inserting children */
24
25
  children?: React.ReactNode;
25
26
  /** Additional classname for the root element */
26
- className?: G.ClassName;
27
+ className?: ClassName;
27
28
  /** Additional attributes for the root element */
28
- attributes?: G.Attributes<TagName>;
29
+ attributes?: Attributes<TagName>;
29
30
  /** Render as a different html tag */
30
31
  as?: TagName extends keyof React.JSX.IntrinsicElements ? TagName : keyof React.JSX.IntrinsicElements;
31
32
  };
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import { useFormControl } from "../FormControl/index.js";
5
6
  import useElementId from "../../hooks/useElementId.js";
6
- import { classNames, responsiveClassNames } from "../../utilities/props.js";
7
+ import { responsiveClassNames } from "../../utilities/props.js";
7
8
  import s from "./TextArea.module.css";
8
9
  const TextArea = (props) => {
9
10
  const { onChange, onFocus, onBlur, name, value, defaultValue, placeholder, size = "medium", variant = "outline", resize, className, attributes, } = props;
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { type FormControlProps } from "../FormControl";
2
+ import type { Attributes, ClassName } from "@reshaped/headless";
3
+ import type { FormControlProps } from "../FormControl";
3
4
  import type * as G from "../../types/global";
4
5
  type Size = G.Responsive<"medium" | "large" | "xlarge">;
5
6
  type BaseProps = {
@@ -26,11 +27,11 @@ type BaseProps = {
26
27
  /** Callback when the text area is blurred */
27
28
  onBlur?: (e: React.FocusEvent<HTMLTextAreaElement>) => void;
28
29
  /** Additional classname for the root element */
29
- className?: G.ClassName;
30
+ className?: ClassName;
30
31
  /** Additional attributes for the root element */
31
- attributes?: G.Attributes<"div">;
32
+ attributes?: Attributes<"div">;
32
33
  /** Additional attributes for the input element */
33
- inputAttributes?: G.Attributes<"textarea">;
34
+ inputAttributes?: Attributes<"textarea">;
34
35
  /** Enable or disable the text area resizing, supports auto-sizing */
35
36
  resize?: "none" | "auto";
36
37
  } & Pick<FormControlProps, "hasError">;
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import { useFormControl } from "../FormControl/index.js";
5
6
  import Icon from "../Icon/index.js";
6
7
  import useElementId from "../../hooks/useElementId.js";
7
- import { classNames, responsiveClassNames, responsivePropDependency } from "../../utilities/props.js";
8
+ import { responsiveClassNames, responsivePropDependency } from "../../utilities/props.js";
8
9
  import s from "./TextField.module.css";
9
10
  const TextFieldSlot = (props) => {
10
11
  const { slot, icon, size, affix, position, id } = props;
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { FormControlProps } from "../FormControl";
2
3
  import type { IconProps } from "../Icon";
3
4
  import type React from "react";
@@ -49,11 +50,11 @@ export type BaseProps = {
49
50
  /** Callback when the text field is blurred */
50
51
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
51
52
  /** Additional classname for the root element */
52
- className?: G.ClassName;
53
+ className?: ClassName;
53
54
  /** Additional attributes for the root element */
54
- attributes?: G.Attributes<"div">;
55
+ attributes?: Attributes<"div">;
55
56
  /** Additional attributes for the input element */
56
- inputAttributes?: G.Attributes<"input">;
57
+ inputAttributes?: Attributes<"input">;
57
58
  } & Pick<FormControlProps, "hasError">;
58
59
  export type ControlledProps = BaseProps & {
59
60
  /** Value of the text field, enables controlled mode */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useIsomorphicLayoutEffect } from "@reshaped/headless";
3
4
  import React from "react";
4
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
5
5
  import { enableTransitions, disableTransitions, onNextFrame } from "../../utilities/animation.js";
6
6
  import { GlobalColorModeContext } from "./Theme.context.js";
7
7
  import { getRootThemeEl } from "./Theme.utilities.js";
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames, useIsomorphicLayoutEffect } from "@reshaped/headless";
3
4
  import React from "react";
4
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
5
- import { classNames } from "../../utilities/props.js";
6
5
  import { ThemeContext } from "./Theme.context.js";
7
6
  import s from "./Theme.module.css";
8
7
  import { getRootThemeEl } from "./Theme.utilities.js";
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import * as G from "../../types/global";
3
+ import type { ClassName } from "@reshaped/headless";
3
4
  export type GlobalColorModeContextData = {
4
5
  mode: G.ColorMode;
5
6
  setMode: (mode: G.ColorMode) => void;
@@ -20,7 +21,7 @@ export type Props = {
20
21
  /** Color mode to use */
21
22
  colorMode?: G.ColorMode | "inverted";
22
23
  /** Additional classname for the root element */
23
- className?: G.ClassName;
24
+ className?: ClassName;
24
25
  /** Node for inserting children */
25
26
  children?: React.ReactNode;
26
27
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames } from "@reshaped/headless";
2
3
  import React, { isValidElement } from "react";
3
4
  import View from "../View/index.js";
4
- import { classNames } from "../../utilities/props.js";
5
5
  import s from "./Timeline.module.css";
6
6
  export const TimelineItem = (props) => {
7
7
  const { children, markerSlot, className, attributes } = props;
@@ -1,12 +1,12 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type React from "react";
2
- import type * as G from "../../types/global";
3
3
  export type Props = {
4
4
  /** Node for inserting children */
5
5
  children?: React.ReactNode;
6
6
  /** Additional classname for the root element */
7
- className?: G.ClassName;
7
+ className?: ClassName;
8
8
  /** Additional attributes for the root element */
9
- attributes?: G.Attributes<"ul">;
9
+ attributes?: Attributes<"ul">;
10
10
  };
11
11
  export type ItemProps = {
12
12
  /** Node for rendering custom item markers */
@@ -14,7 +14,7 @@ export type ItemProps = {
14
14
  /** Node for inserting children */
15
15
  children?: React.ReactNode;
16
16
  /** Additional classname for the item element */
17
- className?: G.ClassName;
17
+ className?: ClassName;
18
18
  /** Additional attributes for the item element */
19
- attributes?: G.Attributes<"li">;
19
+ attributes?: Attributes<"li">;
20
20
  };
@@ -1,6 +1,6 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { IconProps } from "../Icon";
2
3
  import type React from "react";
3
- import type * as G from "../../types/global";
4
4
  export type Status = "entering" | "entered" | "exited";
5
5
  export type TimeoutAlias = "short" | "long";
6
6
  export type Timeout = TimeoutAlias | number;
@@ -27,9 +27,9 @@ export type Props = {
27
27
  */
28
28
  color?: "neutral" | "primary" | "critical" | "positive" | "warning" | "inverted";
29
29
  /** Additional classname for the root element */
30
- className?: G.ClassName;
30
+ className?: ClassName;
31
31
  /** Additional attributes for the root element */
32
- attributes?: G.Attributes<"div">;
32
+ attributes?: Attributes<"div">;
33
33
  };
34
34
  export type ProviderProps = {
35
35
  /** Node for inserting children */
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { TrapFocus, classNames } from "@reshaped/headless";
4
+ import { checkKeyboardMode } from "@reshaped/headless/internal";
3
5
  import React from "react";
4
- import { checkKeyboardMode, TrapFocus } from "../../utilities/a11y/index.js";
5
6
  import { onNextFrame } from "../../utilities/animation.js";
6
- import { classNames } from "../../utilities/props.js";
7
7
  import Toast from "./Toast.js";
8
8
  import { timeouts } from "./Toast.constants.js";
9
9
  import ToastContext from "./Toast.context.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
4
+ import { focusableSelector } from "@reshaped/headless/internal";
3
5
  import React from "react";
4
- import { focusableSelector } from "../../utilities/a11y/index.js";
5
- import { classNames } from "../../utilities/props.js";
6
6
  import ToastContext from "./Toast.context.js";
7
7
  import s from "./Toast.module.css";
8
8
  import ToastContainer from "./ToastContainer.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import useToggle from "../../hooks/useToggle.js";
3
+ import { useToggle } from "@reshaped/headless";
4
4
  import ToggleButtonControlled from "./ToggleButtonControlled.js";
5
5
  const ToggleButtonUncontrolled = (props) => {
6
6
  const { defaultChecked, onChange, ...buttonProps } = props;
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useKeyboardArrowNavigation } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import Button from "../Button/index.js";
5
- import useKeyboardArrowNavigation from "../../hooks/useKeyboardArrowNavigation.js";
6
6
  import Context from "./ToggleButtonGroup.context.js";
7
7
  const ToggleButtonGroupControlled = (props) => {
8
8
  const { onChange, value, selectionMode = "single", children, color, selectedColor, ...buttonGroupProps } = props;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import type { FlyoutProps, FlyoutTriggerAttributes } from "../Flyout";
3
- export type Props = Pick<FlyoutProps, "id" | "position" | "onOpen" | "onClose" | "active" | "disabled" | "disableContentHover" | "containerRef" | "positionRef" | "contentGap" | "contentShift" | "contentMaxWidth" | "originCoordinates" | "contentAttributes" | "contentClassName" | "instanceRef"> & {
3
+ export type Props = Pick<FlyoutProps, "id" | "position" | "onOpen" | "onClose" | "active" | "disabled" | "disableContentHover" | "containerRef" | "positionRef" | "contentGap" | "contentShift" | "contentMaxWidth" | "contentZIndex" | "originCoordinates" | "contentAttributes" | "contentClassName" | "instanceRef"> & {
4
4
  /** Node for inserting children */
5
5
  children: (attributes: FlyoutTriggerAttributes) => React.ReactNode;
6
6
  /** Text content for the tooltip */
@@ -1,10 +1,11 @@
1
1
  import { createElement as _createElement } from "react";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/headless";
3
4
  import React, { isValidElement } from "react";
4
5
  import Divider from "../Divider/index.js";
5
6
  import Hidden from "../Hidden/index.js";
6
7
  import { resolveMixin } from "../../styles/mixin.js";
7
- import { classNames, responsiveClassNames, responsiveVariables } from "../../utilities/props.js";
8
+ import { responsiveClassNames, responsiveVariables } from "../../utilities/props.js";
8
9
  import s from "./View.module.css";
9
10
  export const ViewItem = (props) => {
10
11
  const { columns, grow, shrink, gapBefore,
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type React from "react";
2
3
  import type * as TStyles from "../../styles/types";
3
4
  import type * as G from "../../types/global";
@@ -93,9 +94,9 @@ export type Props<TagName extends keyof React.JSX.IntrinsicElements | void = voi
93
94
  /** Add transition for the properties */
94
95
  animated?: boolean;
95
96
  /** Additional classname for the root element */
96
- className?: G.ClassName;
97
+ className?: ClassName;
97
98
  /** Additional attributes for the root element */
98
- attributes?: G.Attributes<TagName>;
99
+ attributes?: Attributes<TagName>;
99
100
  } & Pick<ItemProps, "grow" | "shrink">;
100
101
  export type ItemProps<TagName extends keyof React.JSX.IntrinsicElements | void = void> = {
101
102
  /** Flex order of the item inside the parent */
@@ -111,9 +112,9 @@ export type ItemProps<TagName extends keyof React.JSX.IntrinsicElements | void =
111
112
  /** Render as a different element */
112
113
  as?: TagName extends keyof React.JSX.IntrinsicElements ? TagName : keyof React.JSX.IntrinsicElements;
113
114
  /** Additional attributes for the root element */
114
- attributes?: G.Attributes<TagName>;
115
+ attributes?: Attributes<TagName>;
115
116
  /** Additional classname for the root element */
116
- className?: G.ClassName;
117
+ className?: ClassName;
117
118
  /** Node for inserting the item content */
118
119
  children?: React.ReactNode;
119
120
  };
@@ -7,7 +7,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
7
7
  * It relies on using a data-rs-aligner-target attribute in other components and works based
8
8
  * on the --rs-p, --rs-p-v and --rs-p-h css variables
9
9
  */
10
- import { classNames } from "../../../utilities/props.js";
10
+ import { classNames } from "@reshaped/headless";
11
11
  import s from "./Aligner.module.css";
12
12
  const Aligner = (props) => {
13
13
  const { side: passedSide = "all", children, className, attributes } = props;
@@ -1,4 +1,4 @@
1
- import type * as G from "../../../types/global";
1
+ import type { ClassName, Attributes } from "@reshaped/headless";
2
2
  type Side = "start" | "end" | "top" | "bottom" | "inline" | "block" | "all";
3
3
  export type Props = {
4
4
  /** Node for inserting children components */
@@ -8,8 +8,8 @@ export type Props = {
8
8
  */
9
9
  side?: Side | Side[];
10
10
  /** Additional classname for the root element */
11
- className?: G.ClassName;
11
+ className?: ClassName;
12
12
  /** Additional attributes for the root element */
13
- attributes?: G.Attributes<"div">;
13
+ attributes?: Attributes<"div">;
14
14
  };
15
15
  export {};
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useIsomorphicLayoutEffect } from "@reshaped/headless";
4
+ import { classNames } from "@reshaped/headless";
3
5
  import React from "react";
4
- import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.js";
5
6
  import { onNextFrame } from "../../../utilities/animation.js";
6
- import { classNames } from "../../../utilities/props.js";
7
7
  import s from "./Expandable.module.css";
8
8
  const Expandable = (props) => {
9
9
  const { children, active, attributes } = props;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import * as G from "../../../types/global";
2
+ import type { Attributes } from "@reshaped/headless";
3
3
  export type ContentProps = {
4
4
  active?: boolean;
5
5
  children?: React.ReactNode;
6
- attributes?: G.Attributes<"div">;
6
+ attributes?: Attributes<"div">;
7
7
  };
@@ -1,10 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useIsomorphicLayoutEffect, useToggle } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import ReactDOM from "react-dom";
5
6
  import Theme from "../../Theme/index.js";
6
- import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.js";
7
- import useToggle from "../../../hooks/useToggle.js";
8
7
  import s from "./Portal.module.css";
9
8
  const PortalScopeContext = React.createContext({});
10
9
  export const usePortalScope = () => {
@@ -1,10 +1,8 @@
1
1
  "use client";
2
+ import { useHotkeys, useHandlerRef, useToggle } from "@reshaped/headless";
3
+ import { disableScroll, enableScroll } from "@reshaped/headless/internal";
2
4
  import React from "react";
3
5
  import * as keys from "../../constants/keys.js";
4
- import useHandlerRef from "../useHandlerRef.js";
5
- import useHotkeys from "../useHotkeys.js";
6
- import useToggle from "../useToggle.js";
7
- import { disableScroll, enableScroll } from "../../utilities/scroll/index.js";
8
6
  const useDrag = (cb, options) => {
9
7
  const { disabled, containerRef: passedContainerRef, orientation = "all" } = options || {};
10
8
  const cbRef = useHandlerRef(cb);
@@ -1,8 +1,7 @@
1
1
  "use client";
2
+ import { useIsomorphicLayoutEffect, useRTL } from "@reshaped/headless";
3
+ import { rafThrottle } from "@reshaped/headless/internal";
2
4
  import React from "react";
3
- import useIsomorphicLayoutEffect from "../useIsomorphicLayoutEffect.js";
4
- import useRTL from "../useRTL.js";
5
- import { rafThrottle } from "../../utilities/helpers.js";
6
5
  const useFadeSide = (scrollableRef, options = {}) => {
7
6
  const { disabled } = options;
8
7
  const [rtl] = useRTL();
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type * as G from "../../types/global";
3
+ export declare const SingletonViewportProvider: React.FC<{
4
+ children: React.ReactNode;
5
+ defaultViewport?: G.Viewport;
6
+ }>;
7
+ declare const useSingletonViewport: () => {
8
+ viewport: G.Viewport;
9
+ };
10
+ export default useSingletonViewport;