reshaped 3.10.0-canary.6 → 3.10.0-canary.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/bundle.d.ts +4 -11
  2. package/dist/bundle.js +2 -2
  3. package/dist/components/Accordion/Accordion.types.d.ts +3 -2
  4. package/dist/components/Accordion/AccordionControlled.js +1 -2
  5. package/dist/components/Accordion/AccordionTrigger.js +1 -1
  6. package/dist/components/ActionBar/ActionBar.js +1 -1
  7. package/dist/components/ActionBar/ActionBar.types.d.ts +3 -2
  8. package/dist/components/Actionable/Actionable.d.ts +2 -2
  9. package/dist/components/Actionable/Actionable.js +1 -1
  10. package/dist/components/Actionable/Actionable.types.d.ts +1 -1
  11. package/dist/components/Actionable/index.d.ts +1 -1
  12. package/dist/components/Alert/Alert.types.d.ts +3 -2
  13. package/dist/components/Autocomplete/Autocomplete.js +1 -3
  14. package/dist/components/Avatar/Avatar.js +1 -1
  15. package/dist/components/Avatar/Avatar.types.d.ts +5 -4
  16. package/dist/components/Badge/Badge.js +1 -1
  17. package/dist/components/Badge/Badge.types.d.ts +4 -4
  18. package/dist/components/Badge/BadgeContainer.js +1 -1
  19. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -1
  20. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +3 -3
  21. package/dist/components/Button/Button.js +1 -1
  22. package/dist/components/Button/Button.types.d.ts +3 -2
  23. package/dist/components/Button/ButtonGroup.js +1 -1
  24. package/dist/components/Calendar/CalendarDate.js +1 -1
  25. package/dist/components/Calendar/useCalendarKeyboardNavigation.js +1 -1
  26. package/dist/components/Card/Card.d.ts +6 -14
  27. package/dist/components/Card/Card.js +1 -1
  28. package/dist/components/Card/Card.types.d.ts +4 -3
  29. package/dist/components/Carousel/Carousel.js +2 -4
  30. package/dist/components/Carousel/Carousel.types.d.ts +3 -2
  31. package/dist/components/Carousel/CarouselControl.js +1 -2
  32. package/dist/components/Checkbox/Checkbox.js +1 -2
  33. package/dist/components/Checkbox/Checkbox.types.d.ts +4 -3
  34. package/dist/components/Container/Container.js +1 -1
  35. package/dist/components/Container/Container.types.d.ts +3 -2
  36. package/dist/components/ContextMenu/ContextMenu.js +1 -2
  37. package/dist/components/Dismissible/Dismissible.js +1 -1
  38. package/dist/components/Dismissible/Dismissible.types.d.ts +3 -3
  39. package/dist/components/Divider/Divider.js +1 -1
  40. package/dist/components/Divider/Divider.types.d.ts +3 -2
  41. package/dist/components/DropdownMenu/DropdownMenu.js +1 -3
  42. package/dist/components/FileUpload/FileUpload.js +1 -2
  43. package/dist/components/FileUpload/FileUpload.types.d.ts +4 -3
  44. package/dist/components/Flyout/Flyout.types.d.ts +6 -6
  45. package/dist/components/Flyout/FlyoutContent.js +1 -2
  46. package/dist/components/Flyout/FlyoutControlled.js +2 -6
  47. package/dist/components/Flyout/useFlyout.d.ts +2 -2
  48. package/dist/components/Flyout/useFlyout.js +2 -2
  49. package/dist/components/Flyout/utilities/safeArea.d.ts +2 -2
  50. package/dist/components/Grid/Grid.js +1 -1
  51. package/dist/components/Grid/Grid.types.d.ts +5 -4
  52. package/dist/components/Hidden/Hidden.js +1 -1
  53. package/dist/components/HiddenInput/HiddenInput.js +1 -1
  54. package/dist/components/HiddenInput/HiddenInput.types.d.ts +3 -2
  55. package/dist/components/Hotkey/Hotkey.js +1 -1
  56. package/dist/components/Hotkey/Hotkey.types.d.ts +3 -3
  57. package/dist/components/Icon/Icon.js +1 -1
  58. package/dist/components/Icon/Icon.types.d.ts +3 -2
  59. package/dist/components/Image/Image.js +1 -1
  60. package/dist/components/Image/Image.types.d.ts +5 -4
  61. package/dist/components/Link/Link.js +1 -1
  62. package/dist/components/Loader/Loader.js +1 -1
  63. package/dist/components/Loader/Loader.types.d.ts +3 -2
  64. package/dist/components/MenuItem/MenuItem.js +1 -1
  65. package/dist/components/MenuItem/MenuItem.types.d.ts +3 -2
  66. package/dist/components/Modal/Modal.js +2 -3
  67. package/dist/components/Modal/Modal.types.d.ts +4 -3
  68. package/dist/components/NumberField/NumberFieldControlled.js +1 -2
  69. package/dist/components/Overlay/Overlay.js +4 -10
  70. package/dist/components/Overlay/Overlay.types.d.ts +3 -3
  71. package/dist/components/Pagination/Pagination.types.d.ts +3 -3
  72. package/dist/components/PinField/PinField.types.d.ts +4 -3
  73. package/dist/components/PinField/PinFieldControlled.js +1 -1
  74. package/dist/components/Popover/Popover.js +1 -1
  75. package/dist/components/Progress/Progress.js +1 -1
  76. package/dist/components/Progress/Progress.types.d.ts +3 -3
  77. package/dist/components/ProgressIndicator/ProgressIndicator.js +1 -1
  78. package/dist/components/ProgressIndicator/ProgressIndicator.types.d.ts +3 -3
  79. package/dist/components/Radio/Radio.js +1 -1
  80. package/dist/components/Radio/Radio.types.d.ts +4 -3
  81. package/dist/components/RadioGroup/RadioGroup.types.d.ts +3 -2
  82. package/dist/components/Reshaped/Reshaped.js +4 -11
  83. package/dist/components/Reshaped/Reshaped.types.d.ts +3 -2
  84. package/dist/components/Resizable/Resizable.js +1 -1
  85. package/dist/components/Resizable/ResizableHandle.js +1 -1
  86. package/dist/components/Scrim/Scrim.js +1 -1
  87. package/dist/components/Scrim/Scrim.types.d.ts +4 -4
  88. package/dist/components/ScrollArea/ScrollArea.js +2 -4
  89. package/dist/components/ScrollArea/ScrollArea.types.d.ts +5 -3
  90. package/dist/components/Select/Select.types.d.ts +5 -4
  91. package/dist/components/Select/SelectNative.js +1 -1
  92. package/dist/components/Select/SelectRoot.js +1 -1
  93. package/dist/components/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/Skeleton/Skeleton.types.d.ts +3 -3
  95. package/dist/components/Slider/Slider.types.d.ts +3 -3
  96. package/dist/components/Slider/SliderControlled.js +2 -4
  97. package/dist/components/Slider/SliderThumb.js +1 -1
  98. package/dist/components/Stepper/Stepper.types.d.ts +5 -4
  99. package/dist/components/Switch/Switch.js +1 -1
  100. package/dist/components/Switch/Switch.types.d.ts +4 -3
  101. package/dist/components/Table/Table.js +1 -1
  102. package/dist/components/Table/Table.types.d.ts +12 -12
  103. package/dist/components/Tabs/Tabs.types.d.ts +6 -6
  104. package/dist/components/Tabs/TabsItem.js +2 -3
  105. package/dist/components/Tabs/TabsList.js +1 -4
  106. package/dist/components/Tabs/TabsPanel.js +2 -2
  107. package/dist/components/Text/Text.js +1 -1
  108. package/dist/components/Text/Text.types.d.ts +3 -2
  109. package/dist/components/TextArea/TextArea.js +1 -1
  110. package/dist/components/TextArea/TextArea.types.d.ts +5 -4
  111. package/dist/components/TextField/TextField.js +1 -1
  112. package/dist/components/TextField/TextField.types.d.ts +4 -3
  113. package/dist/components/Theme/GlobalColorMode.js +1 -1
  114. package/dist/components/Theme/Theme.js +1 -2
  115. package/dist/components/Theme/Theme.types.d.ts +2 -1
  116. package/dist/components/Timeline/Timeline.js +1 -1
  117. package/dist/components/Timeline/Timeline.types.d.ts +5 -5
  118. package/dist/components/Toast/Toast.types.d.ts +3 -3
  119. package/dist/components/Toast/ToastContainer.js +2 -3
  120. package/dist/components/Toast/ToastRegion.js +2 -2
  121. package/dist/components/ToggleButton/ToggleButtonUncontrolled.js +1 -1
  122. package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +1 -1
  123. package/dist/components/View/View.js +1 -1
  124. package/dist/components/View/View.types.d.ts +5 -4
  125. package/dist/components/_private/Aligner/Aligner.js +1 -1
  126. package/dist/components/_private/Aligner/Aligner.types.d.ts +3 -3
  127. package/dist/components/_private/Expandable/Expandable.js +2 -2
  128. package/dist/components/_private/Expandable/Expandable.types.d.ts +2 -2
  129. package/dist/components/_private/Portal/Portal.js +1 -2
  130. package/dist/hooks/_private/useDrag.js +2 -4
  131. package/dist/hooks/_private/useFadeSide.js +2 -3
  132. package/dist/hooks/_private/useSingletonViewport.d.ts +10 -0
  133. package/dist/hooks/_private/useSingletonViewport.js +52 -0
  134. package/dist/hooks/useResponsiveClientValue.js +15 -53
  135. package/dist/hooks/useViewport.d.ts +2 -0
  136. package/dist/hooks/useViewport.js +6 -0
  137. package/dist/index.d.ts +4 -11
  138. package/dist/index.js +2 -10
  139. package/dist/styles/mixin.d.ts +2 -2
  140. package/dist/styles/types.d.ts +2 -1
  141. package/dist/tests/ThemesPlayground.js +1 -1
  142. package/dist/types/global.d.ts +0 -15
  143. package/dist/utilities/props.d.ts +2 -1
  144. package/package.json +2 -2
  145. package/dist/core/Actionable/Actionable.d.ts +0 -4
  146. package/dist/core/Actionable/Actionable.js +0 -73
  147. package/dist/core/Actionable/Actionable.types.d.ts +0 -34
  148. package/dist/core/Actionable/Actionable.types.js +0 -1
  149. package/dist/core/Actionable/index.d.ts +0 -2
  150. package/dist/core/Actionable/index.js +0 -1
  151. package/dist/hooks/_private/useSingletonEnvironment.d.ts +0 -9
  152. package/dist/hooks/_private/useSingletonEnvironment.js +0 -33
  153. package/dist/hooks/_private/useSingletonHotkeys.d.ts +0 -35
  154. package/dist/hooks/_private/useSingletonHotkeys.js +0 -191
  155. package/dist/hooks/_private/useSingletonKeyboardMode.d.ts +0 -13
  156. package/dist/hooks/_private/useSingletonKeyboardMode.js +0 -58
  157. package/dist/hooks/useHandlerRef.d.ts +0 -8
  158. package/dist/hooks/useHandlerRef.js +0 -16
  159. package/dist/hooks/useHotkeys.d.ts +0 -11
  160. package/dist/hooks/useHotkeys.js +0 -27
  161. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
  162. package/dist/hooks/useIsomorphicLayoutEffect.js +0 -4
  163. package/dist/hooks/useKeyboardArrowNavigation.d.ts +0 -9
  164. package/dist/hooks/useKeyboardArrowNavigation.js +0 -62
  165. package/dist/hooks/useKeyboardMode.d.ts +0 -7
  166. package/dist/hooks/useKeyboardMode.js +0 -13
  167. package/dist/hooks/useOnClickOutside.d.ts +0 -5
  168. package/dist/hooks/useOnClickOutside.js +0 -63
  169. package/dist/hooks/useRTL.d.ts +0 -2
  170. package/dist/hooks/useRTL.js +0 -7
  171. package/dist/hooks/useScrollLock.d.ts +0 -10
  172. package/dist/hooks/useScrollLock.js +0 -25
  173. package/dist/hooks/useToggle.d.ts +0 -7
  174. package/dist/hooks/useToggle.js +0 -19
@@ -1,9 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames, useIsomorphicLayoutEffect } from "@reshaped/headless";
4
4
  import React from "react";
5
5
  import Portal from "../_private/Portal/index.js";
6
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
7
6
  import { useFlyoutContext, ContentProvider } from "./Flyout.context.js";
8
7
  import s from "./Flyout.module.css";
9
8
  import cooldown from "./utilities/cooldown.js";
@@ -1,15 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { TrapFocus } from "@reshaped/utilities";
4
- import { checkKeyboardMode } from "@reshaped/utilities/internal";
3
+ import { TrapFocus, useHotkeys, useIsomorphicLayoutEffect, useHandlerRef, useOnClickOutside, } from "@reshaped/headless";
4
+ import { checkKeyboardMode, } from "@reshaped/headless/internal";
5
5
  import React from "react";
6
6
  import useIsDismissible from "../../hooks/_private/useIsDismissible.js";
7
7
  import usePrevious from "../../hooks/_private/usePrevious.js";
8
8
  import useElementId from "../../hooks/useElementId.js";
9
- import useHandlerRef from "../../hooks/useHandlerRef.js";
10
- import useHotkeys from "../../hooks/useHotkeys.js";
11
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
12
- import useOnClickOutside from "../../hooks/useOnClickOutside.js";
13
9
  import { checkTransitions } from "../../utilities/animation.js";
14
10
  import * as timeouts from "./Flyout.constants.js";
15
11
  import { Provider, useFlyoutTriggerContext, useFlyoutContext, useFlyoutContentContext, } from "./Flyout.context.js";
@@ -1,11 +1,11 @@
1
+ import { type Coordinates } from "@reshaped/headless/internal";
1
2
  import type * as T from "./Flyout.types";
2
- import type * as G from "../../types/global";
3
3
  type UseFlyout = (args: Pick<T.Props, "width" | "position" | "defaultActive" | "fallbackAdjustLayout" | "fallbackMinHeight" | "contentGap" | "contentShift" | "onClose"> & {
4
4
  fallbackPositions?: T.Position[];
5
5
  container?: HTMLElement | null;
6
6
  triggerElRef: React.RefObject<HTMLElement | null>;
7
7
  flyoutElRef: React.RefObject<HTMLElement | null>;
8
- triggerCoordinatesRef: React.RefObject<DOMRect | G.Coordinates | null>;
8
+ triggerCoordinatesRef: React.RefObject<DOMRect | Coordinates | null>;
9
9
  }) => Pick<T.State, "position" | "status"> & {
10
10
  updatePosition: (options?: {
11
11
  fallback?: boolean;
@@ -1,6 +1,6 @@
1
- import { Flyout } from "@reshaped/utilities";
1
+ import { useIsomorphicLayoutEffect } from "@reshaped/headless";
2
+ import { Flyout } from "@reshaped/headless/internal";
2
3
  import { useCallback, useMemo, useRef, useState } from "react";
3
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
4
4
  const useFlyout = (args) => {
5
5
  const { triggerElRef, flyoutElRef, triggerCoordinatesRef, contentGap, contentShift, onClose, ...options } = args;
6
6
  const { position: defaultPosition = "bottom", fallbackPositions, fallbackAdjustLayout, fallbackMinHeight, width, container, } = options;
@@ -1,10 +1,10 @@
1
- import type * as G from "../../../types/global";
1
+ import type { Coordinates } from "@reshaped/headless/internal";
2
2
  type SafePolygonOptions = {
3
3
  contentRef: React.RefObject<HTMLElement | null>;
4
4
  triggerRef: React.RefObject<HTMLElement | null>;
5
5
  position: string | null | undefined;
6
6
  onClose: () => void;
7
- origin: G.Coordinates;
7
+ origin: Coordinates;
8
8
  };
9
9
  export declare function createSafeArea(options: SafePolygonOptions): () => void;
10
10
  export {};
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { resolveMixin } from "../../styles/mixin.js";
4
4
  import { responsiveVariables, responsivePropDependency } from "../../utilities/props.js";
5
5
  import s from "./Grid.module.css";
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { Property } from "csstype";
2
3
  import type React from "react";
3
4
  import type * as TStyles from "../../styles/types";
@@ -36,9 +37,9 @@ export type Props<TagName extends keyof React.JSX.IntrinsicElements | void = voi
36
37
  /** Custom root element html tag */
37
38
  as?: TagName extends keyof React.JSX.IntrinsicElements ? TagName : keyof React.JSX.IntrinsicElements;
38
39
  /** Additional classname for the root element */
39
- className?: G.ClassName;
40
+ className?: ClassName;
40
41
  /** Additional attributes for the root element */
41
- attributes?: G.Attributes<TagName>;
42
+ attributes?: Attributes<TagName>;
42
43
  };
43
44
  export type ItemProps<TagName extends keyof React.JSX.IntrinsicElements | void = void> = {
44
45
  /** Grid area for template syntax */
@@ -60,7 +61,7 @@ export type ItemProps<TagName extends keyof React.JSX.IntrinsicElements | void =
60
61
  /** Custom item element html tag */
61
62
  as?: TagName extends keyof React.JSX.IntrinsicElements ? TagName : keyof React.JSX.IntrinsicElements;
62
63
  /** Additional classname for the item element */
63
- className?: G.ClassName;
64
+ className?: ClassName;
64
65
  /** Additional attributes for the item element */
65
- attributes?: G.Attributes<TagName>;
66
+ attributes?: Attributes<TagName>;
66
67
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { responsiveClassNames } from "../../utilities/props.js";
4
4
  import s from "./Hidden.module.css";
5
5
  const Hidden = (props) => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { useCheckboxGroup } from "../CheckboxGroup/index.js";
4
4
  import { useFormControl } from "../FormControl/index.js";
5
5
  import { useRadioGroup } from "../RadioGroup/index.js";
@@ -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
  export type Props = {
4
5
  /** Name of the input element */
@@ -20,7 +21,7 @@ export type Props = {
20
21
  /** Type of the input element */
21
22
  type: "checkbox" | "radio";
22
23
  /** Additional classname for the root element */
23
- className?: G.ClassName;
24
+ className?: ClassName;
24
25
  /** Additional attributes for the input element */
25
- attributes?: G.Attributes<"input">;
26
+ attributes?: Attributes<"input">;
26
27
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import Text from "../Text/index.js";
4
4
  import s from "./Hotkey.module.css";
5
5
  const Hotkey = (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
  /** Highlight the component, can be used to show when hotkey is pressed */
7
7
  active?: boolean;
8
8
  /** Additional classname for the root element */
9
- className?: G.ClassName;
9
+ className?: ClassName;
10
10
  /** Additional attributes for the root element */
11
- attributes?: G.Attributes<"span">;
11
+ attributes?: Attributes<"span">;
12
12
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import React from "react";
4
4
  import { resolveMixin } from "../../styles/mixin.js";
5
5
  import s from "./Icon.module.css";
@@ -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 = {
@@ -10,7 +11,7 @@ export type Props = {
10
11
  /** Use the width of the svg asset instead of providing a square bounding box */
11
12
  autoWidth?: boolean;
12
13
  /** Additional classname for the root element */
13
- className?: G.ClassName;
14
+ className?: ClassName;
14
15
  /** Additional attributes for the root element */
15
- attributes?: G.Attributes<"span">;
16
+ attributes?: Attributes<"span">;
16
17
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames } from "@reshaped/headless";
4
4
  import React from "react";
5
5
  import { resolveMixin } from "../../styles/mixin.js";
6
6
  import s from "./Image.module.css";
@@ -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";
@@ -27,14 +28,14 @@ export type Props = {
27
28
  /** Image fallback content if the image fails to load or was not provided */
28
29
  fallback?: string | React.ReactNode | boolean;
29
30
  /** Image render function, can be used for integrating with Image component in 3rd party frameworks */
30
- renderImage?: (attributes: Omit<G.Attributes<"img">, "src" | "alt"> & {
31
+ renderImage?: (attributes: Omit<Attributes<"img">, "src" | "alt"> & {
31
32
  src: string;
32
33
  alt: string;
33
34
  }) => React.ReactNode;
34
35
  /** Additional attributes for the image element */
35
- imageAttributes?: G.Attributes<"img">;
36
+ imageAttributes?: Attributes<"img">;
36
37
  /** Additional classname for the root element */
37
- className?: G.ClassName;
38
+ className?: ClassName;
38
39
  /** Additional attributes for the root element */
39
- attributes?: G.Attributes<"div"> & G.Attributes<"img">;
40
+ attributes?: Attributes<"div"> & Attributes<"img">;
40
41
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { forwardRef } from "react";
4
4
  import Actionable from "../Actionable/index.js";
5
5
  import Icon from "../Icon/index.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { responsiveClassNames } from "../../utilities/props.js";
4
4
  import s from "./Loader.module.css";
5
5
  const Loader = (props) => {
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type * as G from "../../types/global";
2
3
  export type Props = {
3
4
  /** Component size */
@@ -7,7 +8,7 @@ export type Props = {
7
8
  /** aria-label attribute for the root element */
8
9
  ariaLabel?: string;
9
10
  /** Additional classname for the root element */
10
- className?: G.ClassName;
11
+ className?: ClassName;
11
12
  /** Additional attributes for the root element */
12
- attributes?: G.Attributes<"span">;
13
+ attributes?: Attributes<"span">;
13
14
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import { forwardRef } from "react";
4
4
  import Actionable from "../Actionable/index.js";
5
5
  import Icon from "../Icon/index.js";
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { ActionableProps } from "../Actionable";
2
3
  import type { IconProps } from "../Icon";
3
4
  import type React from "react";
@@ -27,7 +28,7 @@ export type AlignerProps = {
27
28
  /** Node for inserting children */
28
29
  children: React.ReactElement;
29
30
  /** Additional classname for the root element */
30
- className?: G.ClassName;
31
+ className?: ClassName;
31
32
  /** Additional attributes for the root element */
32
- attributes?: G.Attributes<"div">;
33
+ attributes?: Attributes<"div">;
33
34
  };
@@ -1,12 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
4
- import { enableScroll, disableScroll } from "@reshaped/utilities/internal";
3
+ import { classNames, useHandlerRef } from "@reshaped/headless";
4
+ import { enableScroll, disableScroll } from "@reshaped/headless/internal";
5
5
  import React from "react";
6
6
  import Overlay from "../Overlay/index.js";
7
7
  import Text from "../Text/index.js";
8
8
  import useElementId from "../../hooks/useElementId.js";
9
- import useHandlerRef from "../../hooks/useHandlerRef.js";
10
9
  import useResponsiveClientValue from "../../hooks/useResponsiveClientValue.js";
11
10
  import { resolveMixin } from "../../styles/mixin.js";
12
11
  import { responsiveVariables, responsiveClassNames } from "../../utilities/props.js";
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { OverlayProps, OverlayCloseReason } from "../Overlay";
2
3
  import type React from "react";
3
4
  import type * as G from "../../types/global";
@@ -46,11 +47,11 @@ export type Props = {
46
47
  /** aria-label attribute for the root element, useful when there is no visible title */
47
48
  ariaLabel?: string;
48
49
  /** Additional classname for the root element */
49
- className?: G.ClassName;
50
+ className?: ClassName;
50
51
  /** Additional classname for the overlay element */
51
- overlayClassName?: G.ClassName;
52
+ overlayClassName?: ClassName;
52
53
  /** Additional attributes for the root element */
53
- attributes?: G.Attributes<"div"> & {
54
+ attributes?: Attributes<"div"> & {
54
55
  ref?: React.RefObject<HTMLDivElement | null>;
55
56
  };
56
57
  } & Pick<OverlayProps, "onOpen" | "onAfterOpen" | "onAfterClose" | "active" | "containerRef" | "contained">;
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useHotkeys, useHandlerRef } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import Actionable from "../Actionable/index.js";
5
6
  import { useFormControl } from "../FormControl/index.js";
@@ -7,8 +8,6 @@ import Icon from "../Icon/index.js";
7
8
  import TextField from "../TextField/index.js";
8
9
  import * as keys from "../../constants/keys.js";
9
10
  import useElementId from "../../hooks/useElementId.js";
10
- import useHandlerRef from "../../hooks/useHandlerRef.js";
11
- import useHotkeys from "../../hooks/useHotkeys.js";
12
11
  import IconChevronDown from "../../icons/ChevronDown.js";
13
12
  import IconChevronUp from "../../icons/ChevronUp.js";
14
13
  import IconMinus from "../../icons/Minus.js";
@@ -1,15 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { TrapFocus } from "@reshaped/utilities";
4
- import { classNames } from "@reshaped/utilities";
3
+ import { TrapFocus, useHotkeys, useIsomorphicLayoutEffect, useHandlerRef, useScrollLock, useToggle, } from "@reshaped/headless";
4
+ import { classNames } from "@reshaped/headless";
5
5
  import React from "react";
6
6
  import Portal from "../_private/Portal/index.js";
7
7
  import useIsDismissible from "../../hooks/_private/useIsDismissible.js";
8
- import useHandlerRef from "../../hooks/useHandlerRef.js";
9
- import useHotkeys from "../../hooks/useHotkeys.js";
10
- import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
11
- import useScrollLock from "../../hooks/useScrollLock.js";
12
- import useToggle from "../../hooks/useToggle.js";
13
8
  import { onNextFrame } from "../../utilities/animation.js";
14
9
  import s from "./Overlay.module.css";
15
10
  const Overlay = (props) => {
@@ -101,9 +96,8 @@ const Overlay = (props) => {
101
96
  const containerEl = containerRef?.current;
102
97
  if (containerEl) {
103
98
  originalOverflowRef.current = containerEl.style.overflow;
104
- // eslint-disable-next-line react-hooks/immutability
105
- containerEl.style.overflow = "hidden";
106
- containerEl.style.isolation = "isolate";
99
+ containerEl.style.setProperty("overflow", "hidden");
100
+ containerEl.style.setProperty("isolation", "isolate");
107
101
  setOffset([containerEl.scrollLeft, containerEl.scrollTop]);
108
102
  }
109
103
  trapFocus.trap(contentRef.current, {
@@ -1,5 +1,5 @@
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 CloseReason = "overlay-click" | "escape-key";
4
4
  export type Props = {
5
5
  /** Make the overlay transparent */
@@ -31,7 +31,7 @@ export type Props = {
31
31
  /** Contain the component within the container element. Defaults to true when containerRef is provided */
32
32
  contained?: boolean;
33
33
  /** Additional classname for the root element */
34
- className?: G.ClassName;
34
+ className?: ClassName;
35
35
  /** Additional attributes for the root element */
36
- attributes?: G.Attributes<"div">;
36
+ attributes?: Attributes<"div">;
37
37
  };
@@ -1,4 +1,4 @@
1
- import type * as G from "../../types/global";
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
2
2
  export type BaseProps = {
3
3
  /** Total number of pages available */
4
4
  total: number;
@@ -15,9 +15,9 @@ export type BaseProps = {
15
15
  /** aria-label attribute for the next page button */
16
16
  nextAriaLabel: string;
17
17
  /** Additional classname for the root element */
18
- className?: G.ClassName;
18
+ className?: ClassName;
19
19
  /** Additional attributes for the root element */
20
- attributes?: G.Attributes<"div">;
20
+ attributes?: Attributes<"div">;
21
21
  };
22
22
  export type ControlledProps = BaseProps & {
23
23
  /** Currently selected page number, starts with 1, enables controlled mode */
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type * as G from "../../types/global";
2
3
  export type Size = "small" | "medium" | "large" | "xlarge";
3
4
  type BaseProps = {
@@ -14,11 +15,11 @@ type BaseProps = {
14
15
  /** Callback when the input value changes */
15
16
  onChange?: G.ChangeHandler<string>;
16
17
  /** Additional attributes for the input element */
17
- inputAttributes?: G.Attributes<"input">;
18
+ inputAttributes?: Attributes<"input">;
18
19
  /** Additional classname for the root element */
19
- className?: G.ClassName;
20
+ className?: ClassName;
20
21
  /** Additional attributes for the root element */
21
- attributes?: G.Attributes<"div">;
22
+ attributes?: Attributes<"div">;
22
23
  };
23
24
  export type ControlledProps = BaseProps & {
24
25
  /** Value of the input element, enables controlled mode */
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useHotkeys } from "@reshaped/headless";
3
4
  import React from "react";
4
5
  import { useFormControl } from "../FormControl/index.js";
5
6
  import Text from "../Text/index.js";
6
7
  import View from "../View/index.js";
7
8
  import * as keys from "../../constants/keys.js";
8
- import useHotkeys from "../../hooks/useHotkeys.js";
9
9
  import { onNextFrame } from "../../utilities/animation.js";
10
10
  import { responsivePropDependency } from "../../utilities/props.js";
11
11
  import { regExpNumericChar, regExpAlphabeticChar, regExpAlphaNumericChar, } from "./PinField.constants.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import Dismissible from "../Dismissible/index.js";
4
4
  import Flyout, { useFlyoutContext } from "../Flyout/index.js";
5
5
  import { resolveMixin } from "../../styles/mixin.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import s from "./Progress.module.css";
4
4
  const Progress = (props) => {
5
5
  const { value = 0, min = 0, max = 100, color = "primary", size = "medium", duration, ariaLabel, className, attributes, } = props;
@@ -1,4 +1,4 @@
1
- import type * as G from "../../types/global";
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
2
2
  export type Props = {
3
3
  /** Value of the progress bar controlling the size of the fill */
4
4
  value?: number;
@@ -15,7 +15,7 @@ export type Props = {
15
15
  /** aria-label attribute for the root element */
16
16
  ariaLabel?: string;
17
17
  /** Additional classname for the root element */
18
- className?: G.ClassName;
18
+ className?: ClassName;
19
19
  /** Additional attributes for the root element */
20
- attributes?: G.Attributes<"div">;
20
+ attributes?: Attributes<"div">;
21
21
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames } from "@reshaped/headless";
4
4
  import s from "./ProgressIndicator.module.css";
5
5
  const VISIBLE_ITEMS = 7;
6
6
  const HALF_ITEMS = Math.floor(VISIBLE_ITEMS / 2);
@@ -1,4 +1,4 @@
1
- import type * as G from "../../types/global";
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
2
2
  export type Props = {
3
3
  /** Total amount of progress indicator dots */
4
4
  total: number;
@@ -11,7 +11,7 @@ export type Props = {
11
11
  /** aria-label attribute for the root element */
12
12
  ariaLabel?: string;
13
13
  /** Additional classname for the root element */
14
- className?: G.ClassName;
14
+ className?: ClassName;
15
15
  /** Additional attributes for the root element */
16
- attributes?: G.Attributes<"div">;
16
+ attributes?: Attributes<"div">;
17
17
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames } from "@reshaped/headless";
4
4
  import { useFormControl } from "../FormControl/index.js";
5
5
  import HiddenInput from "../HiddenInput/index.js";
6
6
  import { useRadioGroup } from "../RadioGroup/index.js";
@@ -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
  type BaseProps = {
@@ -20,11 +21,11 @@ type BaseProps = {
20
21
  /** Callback when the input 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
  checked: boolean;
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { RadioProps } from "../Radio";
2
3
  import type React from "react";
3
4
  import type * as G from "../../types/global";
@@ -15,9 +16,9 @@ type BaseProps = {
15
16
  /** Callback when the input value changes */
16
17
  onChange?: G.ChangeHandler<string>;
17
18
  /** Additional classname for the root element */
18
- className?: G.ClassName;
19
+ className?: ClassName;
19
20
  /** Additional attributes for the root element */
20
- attributes?: G.Attributes<"div">;
21
+ attributes?: Attributes<"div">;
21
22
  };
22
23
  export type ControlledProps = BaseProps & {
23
24
  /** Value of the input element, enables controlled mode */
@@ -1,26 +1,19 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { Reshaped as HeadlessReshaped, classNames } from "@reshaped/headless";
4
4
  import React from "react";
5
5
  import { GlobalColorMode, PrivateTheme } from "../Theme/index.js";
6
6
  import { useGlobalColorMode } from "../Theme/useTheme.js";
7
7
  import { ToastProvider } from "../Toast/index.js";
8
- import { SingletonEnvironmentContext, useSingletonEnvironment, } from "../../hooks/_private/useSingletonEnvironment.js";
9
- import { SingletonHotkeysProvider } from "../../hooks/_private/useSingletonHotkeys.js";
10
- import { SingletonKeyboardModeProvider } from "../../hooks/_private/useSingletonKeyboardMode.js";
8
+ import { SingletonViewportProvider } from "../../hooks/_private/useSingletonViewport.js";
11
9
  import s from "./Reshaped.module.css";
12
10
  import "./Reshaped.css";
13
- const ReshapedInner = (props) => {
14
- const { children, defaultRTL, defaultViewport = "s", toastOptions } = props;
15
- const rtlState = useSingletonEnvironment(defaultRTL);
16
- return (_jsx(SingletonKeyboardModeProvider, { children: _jsx(SingletonEnvironmentContext.Provider, { value: { rtl: rtlState, defaultViewport }, children: _jsx(SingletonHotkeysProvider, { children: _jsx(ToastProvider, { options: toastOptions, children: children }) }) }) }));
17
- };
18
11
  const Reshaped = (props) => {
19
- const { theme, defaultTheme = "reshaped", colorMode, defaultColorMode, scoped, className, } = props;
12
+ const { theme, defaultTheme = "reshaped", colorMode, defaultColorMode, defaultViewport, toastOptions, scoped, className, } = props;
20
13
  const rootClassNames = classNames(s.root, className);
21
14
  const scopeRef = React.useRef(null);
22
15
  const parentGlobalColorMode = useGlobalColorMode();
23
- return (_jsx(GlobalColorMode, { defaultMode: defaultColorMode || parentGlobalColorMode.mode || "light", mode: colorMode, scopeRef: !!parentGlobalColorMode && scoped ? scopeRef : undefined, children: _jsx(PrivateTheme, { name: theme, defaultName: defaultTheme, className: rootClassNames, scoped: scoped, scopeRef: !!parentGlobalColorMode && scoped ? scopeRef : undefined, children: _jsx(ReshapedInner, { ...props, children: props.children }) }) }));
16
+ return (_jsx(HeadlessReshaped, { children: _jsx(GlobalColorMode, { defaultMode: defaultColorMode || parentGlobalColorMode.mode || "light", mode: colorMode, scopeRef: !!parentGlobalColorMode && scoped ? scopeRef : undefined, children: _jsx(PrivateTheme, { name: theme, defaultName: defaultTheme, className: rootClassNames, scoped: scoped, scopeRef: !!parentGlobalColorMode && scoped ? scopeRef : undefined, children: _jsx(SingletonViewportProvider, { defaultViewport: defaultViewport, children: _jsx(ToastProvider, { options: toastOptions, children: props.children }) }) }) }) }));
24
17
  };
25
18
  Reshaped.displayName = "Reshaped";
26
19
  export default Reshaped;
@@ -1,3 +1,4 @@
1
+ import type { Attributes, ClassName } from "@reshaped/headless";
1
2
  import type { GlobalColorModeProps, ThemeProps } from "../Theme";
2
3
  import type { ToastProviderProps } from "../Toast";
3
4
  import type React from "react";
@@ -22,7 +23,7 @@ export type Props = {
22
23
  /** Enable scoped mode for applications not using Reshaped provider at the application root */
23
24
  scoped?: boolean;
24
25
  /** Additional classname for the root element */
25
- className?: G.ClassName;
26
+ className?: ClassName;
26
27
  /** Additional attributes for the root element */
27
- attributes?: G.Attributes<"div">;
28
+ attributes?: Attributes<"div">;
28
29
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames } from "@reshaped/headless";
4
4
  import React from "react";
5
5
  import View from "../View/index.js";
6
6
  import s from "./Resizable.module.css";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { classNames } from "@reshaped/utilities";
3
+ import { classNames } from "@reshaped/headless";
4
4
  import React from "react";
5
5
  import View from "../View/index.js";
6
6
  import useDrag from "../../hooks/_private/useDrag.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { classNames } from "@reshaped/utilities";
2
+ import { classNames } from "@reshaped/headless";
3
3
  import View from "../View/index.js";
4
4
  import s from "./Scrim.module.css";
5
5
  const Scrim = (props) => {