reshaped 3.3.9 → 3.3.11

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 (50) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/bundle.js +17 -16
  3. package/dist/components/Actionable/Actionable.types.d.ts +3 -3
  4. package/dist/components/Card/Card.d.ts +3 -3
  5. package/dist/components/Card/Card.types.d.ts +1 -1
  6. package/dist/components/Card/tests/Card.stories.d.ts +3 -3
  7. package/dist/components/Carousel/Carousel.types.d.ts +1 -1
  8. package/dist/components/Carousel/tests/Carousel.stories.js +1 -1
  9. package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
  10. package/dist/components/FormControl/FormControl.context.d.ts +12 -0
  11. package/dist/components/Grid/Grid.d.ts +2 -2
  12. package/dist/components/Grid/Grid.types.d.ts +3 -2
  13. package/dist/components/Grid/tests/Grid.stories.d.ts +2 -2
  14. package/dist/components/Hidden/Hidden.types.d.ts +1 -1
  15. package/dist/components/Modal/Modal.types.d.ts +1 -1
  16. package/dist/components/Overlay/Overlay.js +1 -1
  17. package/dist/components/Overlay/Overlay.types.d.ts +1 -1
  18. package/dist/components/Resizable/Resizable.js +3 -1
  19. package/dist/components/Resizable/Resizable.types.d.ts +2 -2
  20. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +1 -1
  21. package/dist/components/Slider/Slider.types.d.ts +1 -1
  22. package/dist/components/Tabs/Tabs.types.d.ts +3 -3
  23. package/dist/components/Tabs/TabsContext.d.ts +3 -3
  24. package/dist/components/Tabs/TabsItem.js +1 -1
  25. package/dist/components/Text/Text.d.ts +1 -1
  26. package/dist/components/Text/Text.types.d.ts +1 -1
  27. package/dist/components/Text/tests/Text.stories.d.ts +1 -1
  28. package/dist/components/TextField/TextField.js +3 -1
  29. package/dist/components/Theme/Theme.types.d.ts +2 -2
  30. package/dist/components/Toast/ToastContainer.js +1 -1
  31. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  32. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +1 -1
  33. package/dist/components/View/View.d.ts +2 -2
  34. package/dist/components/View/View.js +4 -3
  35. package/dist/components/View/View.types.d.ts +2 -2
  36. package/dist/components/View/tests/View.stories.d.ts +2 -2
  37. package/dist/components/_private/Flyout/Flyout.types.d.ts +6 -6
  38. package/dist/components/_private/Flyout/FlyoutControlled.js +10 -4
  39. package/dist/components/_private/Flyout/tests/Flyout.stories.js +1 -1
  40. package/dist/components/_private/Flyout/useFlyout.d.ts +3 -3
  41. package/dist/components/_private/Portal/Portal.types.d.ts +3 -3
  42. package/dist/hooks/_private/useIsDismissible.d.ts +7 -2
  43. package/dist/hooks/_private/useIsDismissible.js +5 -2
  44. package/dist/hooks/_private/useOnClickOutside.d.ts +1 -1
  45. package/dist/hooks/useDrag.d.ts +3 -3
  46. package/dist/hooks/useHotkeys.d.ts +2 -2
  47. package/dist/hooks/useHotkeys.js +5 -1
  48. package/dist/hooks/useScrollLock.d.ts +1 -1
  49. package/dist/types/global.d.ts +1 -1
  50. package/package.json +3 -3
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
2
  export type Props = {
3
3
  children?: React.ReactNode;
4
- targetRef?: React.RefObject<HTMLElement | ShadowRoot>;
4
+ targetRef?: React.RefObject<HTMLElement | ShadowRoot | null>;
5
5
  };
6
6
  export type ScopeProps<T extends HTMLElement> = {
7
- children: (ref: React.RefObject<T>) => React.ReactNode;
7
+ children: (ref: React.RefObject<T | null>) => React.ReactNode;
8
8
  };
9
9
  export type Context = {
10
- scopeRef: React.RefObject<HTMLElement>;
10
+ scopeRef: React.RefObject<HTMLElement | null>;
11
11
  };
@@ -3,6 +3,11 @@
3
3
  * Example: Use to only close the latest opened Flyout/Modal
4
4
  */
5
5
  import React from "react";
6
- type Ref = React.RefObject<HTMLElement>;
7
- declare const useIsDismissible: (active: boolean | undefined, contentRef: Ref, triggerRef?: Ref) => () => boolean;
6
+ type Ref = React.RefObject<HTMLElement | null>;
7
+ declare const useIsDismissible: (args: {
8
+ active?: boolean;
9
+ contentRef: Ref;
10
+ triggerRef?: Ref;
11
+ blocking?: boolean;
12
+ }) => () => boolean;
8
13
  export default useIsDismissible;
@@ -21,11 +21,14 @@ const addToQueue = (id, contentRef, triggerRef) => {
21
21
  queue[id] = { parentId: latestId, triggerRef, contentRef };
22
22
  latestId = id;
23
23
  };
24
- const useIsDismissible = (active = false, contentRef, triggerRef) => {
24
+ const useIsDismissible = (args) => {
25
+ const { active, contentRef, triggerRef, blocking } = args;
25
26
  const id = useElementId();
26
27
  const isDismissible = React.useCallback(() => {
28
+ if (!blocking)
29
+ return true;
27
30
  return active ? latestId === id : true;
28
- }, [id, active]);
31
+ }, [id, active, blocking]);
29
32
  React.useEffect(() => {
30
33
  if (!active)
31
34
  return;
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
- declare const useOnClickOutside: (refs: React.RefObject<HTMLElement>[], handler: (event: Event) => void, deps: any[]) => void;
2
+ declare const useOnClickOutside: (refs: React.RefObject<HTMLElement | null>[], handler: (event: Event) => void, deps: any[]) => void;
3
3
  export default useOnClickOutside;
@@ -7,11 +7,11 @@ export type UseDragCallbackArgs = {
7
7
  };
8
8
  declare const useDrag: <TriggerElement extends HTMLElement = HTMLButtonElement, ContainerElement extends HTMLElement = HTMLDivElement>(cb: (args: UseDragCallbackArgs) => void, options?: {
9
9
  disabled?: boolean;
10
- containerRef?: React.RefObject<ContainerElement>;
10
+ containerRef?: React.RefObject<ContainerElement | null>;
11
11
  orientation?: "horizontal" | "vertical" | "all";
12
12
  }) => {
13
- ref: React.RefObject<TriggerElement>;
14
- containerRef: React.RefObject<ContainerElement>;
13
+ ref: React.RefObject<TriggerElement | null>;
14
+ containerRef: React.RefObject<ContainerElement | null>;
15
15
  active: boolean;
16
16
  };
17
17
  export default useDrag;
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
2
  import { type Hotkeys } from "./_private/useSingletonHotkeys";
3
3
  declare const useHotkeys: <Element extends HTMLElement>(hotkeys: Hotkeys, deps?: unknown[], options?: {
4
- ref?: React.RefObject<Element>;
4
+ ref?: React.RefObject<Element | null>;
5
5
  disabled?: boolean;
6
6
  preventDefault?: boolean;
7
7
  }) => {
8
- ref: React.RefObject<Element>;
8
+ ref: React.RefObject<Element | null>;
9
9
  checkHotkeyState: (key: string) => boolean;
10
10
  };
11
11
  export default useHotkeys;
@@ -8,7 +8,11 @@ const useHotkeys = (hotkeys, deps = [], options) => {
8
8
  React.useEffect(() => {
9
9
  if (options?.disabled)
10
10
  return;
11
- const remove = addHotkeys(hotkeys, elementRef, { preventDefault: options?.preventDefault });
11
+ if (!elementRef.current)
12
+ return;
13
+ const remove = addHotkeys(hotkeys, elementRef, {
14
+ preventDefault: options?.preventDefault,
15
+ });
12
16
  return () => remove?.();
13
17
  // eslint-disable-next-line react-hooks/exhaustive-deps
14
18
  }, [
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  declare const useScrollLock: (props?: {
3
- containerRef?: React.RefObject<HTMLElement>;
3
+ containerRef?: React.RefObject<HTMLElement | null>;
4
4
  }) => {
5
5
  scrollLocked: boolean;
6
6
  lockScroll: () => void;
@@ -4,7 +4,7 @@ export type ClassName = ClassNameValue | ClassNameValue[] | ClassName[];
4
4
  export type CSSVariable = `--${string}`;
5
5
  export type StyleAttribute = React.CSSProperties | (React.CSSProperties & Record<CSSVariable, string | number | undefined>);
6
6
  type DataAttributes = {} | Record<`data-${string}`, string | boolean>;
7
- export type Attributes<TagName extends keyof JSX.IntrinsicElements = "div"> = JSX.IntrinsicElements[TagName] & DataAttributes & {
7
+ export type Attributes<TagName extends keyof React.JSX.IntrinsicElements = "div"> = React.JSX.IntrinsicElements[TagName] & DataAttributes & {
8
8
  style?: StyleAttribute;
9
9
  };
10
10
  export type Viewport = "s" | "m" | "l" | "xl";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reshaped",
3
3
  "description": "Professionally crafted design system in React & Figma for building products of any scale and complexity",
4
- "version": "3.3.9",
4
+ "version": "3.3.11",
5
5
  "license": "MIT",
6
6
  "email": "hello@reshaped.so",
7
7
  "homepage": "https://reshaped.so",
@@ -155,8 +155,8 @@
155
155
  },
156
156
  "peerDependencies": {
157
157
  "postcss": "^8",
158
- "react": "^18",
159
- "react-dom": "^18"
158
+ "react": "^18 || ^19",
159
+ "react-dom": "^18 || ^19"
160
160
  },
161
161
  "dependencies": {
162
162
  "@csstools/postcss-global-data": "3.0.0",