reshaped 3.8.8 → 3.9.0-canary.1

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 (191) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.js +11 -11
  3. package/dist/components/Button/Button.module.css +1 -1
  4. package/dist/components/Card/Card.d.ts +1 -1
  5. package/dist/components/Divider/Divider.js +3 -3
  6. package/dist/components/Divider/Divider.module.css +1 -1
  7. package/dist/components/Divider/Divider.types.d.ts +6 -0
  8. package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
  9. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  10. package/dist/components/Flyout/Flyout.constants.d.ts +1 -3
  11. package/dist/components/Flyout/Flyout.constants.js +1 -3
  12. package/dist/components/Flyout/Flyout.types.d.ts +2 -0
  13. package/dist/components/Flyout/FlyoutControlled.js +10 -11
  14. package/dist/components/Flyout/utilities/cooldown.js +1 -2
  15. package/dist/components/Icon/Icon.module.css +1 -1
  16. package/dist/components/Popover/Popover.types.d.ts +1 -1
  17. package/dist/components/Progress/Progress.module.css +1 -1
  18. package/dist/components/Select/Select.module.css +1 -1
  19. package/dist/components/Select/Select.types.d.ts +16 -11
  20. package/dist/components/Select/SelectCustomControlled.js +27 -10
  21. package/dist/components/Select/SelectGroup.d.ts +4 -0
  22. package/dist/components/Select/SelectGroup.js +10 -0
  23. package/dist/components/Select/SelectTrigger.js +1 -1
  24. package/dist/components/Select/index.d.ts +3 -2
  25. package/dist/components/Select/index.js +3 -2
  26. package/dist/components/Tabs/TabsContext.d.ts +1 -1
  27. package/dist/components/TextArea/TextArea.module.css +1 -1
  28. package/dist/components/TextArea/TextArea.types.d.ts +1 -1
  29. package/dist/components/TextField/TextField.module.css +1 -1
  30. package/dist/components/TextField/TextField.types.d.ts +1 -1
  31. package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
  32. package/dist/config/tailwind.d.ts +1 -1
  33. package/package.json +31 -30
  34. package/dist/components/Accordion/tests/Accordion.stories.d.ts +0 -44
  35. package/dist/components/Accordion/tests/Accordion.stories.js +0 -204
  36. package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +0 -40
  37. package/dist/components/ActionBar/tests/ActionBar.stories.js +0 -223
  38. package/dist/components/Actionable/tests/Actionable.stories.d.ts +0 -41
  39. package/dist/components/Actionable/tests/Actionable.stories.js +0 -220
  40. package/dist/components/Alert/tests/Alert.stories.d.ts +0 -24
  41. package/dist/components/Alert/tests/Alert.stories.js +0 -78
  42. package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +0 -32
  43. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +0 -246
  44. package/dist/components/Avatar/tests/Avatar.stories.d.ts +0 -31
  45. package/dist/components/Avatar/tests/Avatar.stories.js +0 -176
  46. package/dist/components/Badge/tests/Badge.stories.d.ts +0 -55
  47. package/dist/components/Badge/tests/Badge.stories.js +0 -328
  48. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +0 -40
  49. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +0 -187
  50. package/dist/components/Button/tests/Button.stories.d.ts +0 -79
  51. package/dist/components/Button/tests/Button.stories.js +0 -789
  52. package/dist/components/Calendar/tests/Calendar.stories.d.ts +0 -29
  53. package/dist/components/Calendar/tests/Calendar.stories.js +0 -255
  54. package/dist/components/Card/tests/Card.stories.d.ts +0 -52
  55. package/dist/components/Card/tests/Card.stories.js +0 -125
  56. package/dist/components/Carousel/tests/Carousel.stories.d.ts +0 -34
  57. package/dist/components/Carousel/tests/Carousel.stories.js +0 -224
  58. package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +0 -30
  59. package/dist/components/Checkbox/tests/Checkbox.stories.js +0 -171
  60. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +0 -19
  61. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.js +0 -83
  62. package/dist/components/Container/tests/Container.stories.d.ts +0 -24
  63. package/dist/components/Container/tests/Container.stories.js +0 -75
  64. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +0 -26
  65. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +0 -70
  66. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +0 -25
  67. package/dist/components/Dismissible/tests/Dismissible.stories.js +0 -97
  68. package/dist/components/Divider/tests/Divider.stories.d.ts +0 -18
  69. package/dist/components/Divider/tests/Divider.stories.js +0 -94
  70. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +0 -53
  71. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +0 -278
  72. package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +0 -31
  73. package/dist/components/FileUpload/tests/FileUpload.stories.js +0 -140
  74. package/dist/components/Flyout/tests/Flyout.stories.d.ts +0 -102
  75. package/dist/components/Flyout/tests/Flyout.stories.js +0 -708
  76. package/dist/components/FormControl/tests/FormControl.stories.d.ts +0 -31
  77. package/dist/components/FormControl/tests/FormControl.stories.js +0 -143
  78. package/dist/components/Grid/tests/Grid.stories.d.ts +0 -38
  79. package/dist/components/Grid/tests/Grid.stories.js +0 -245
  80. package/dist/components/Hidden/tests/Hidden.stories.d.ts +0 -16
  81. package/dist/components/Hidden/tests/Hidden.stories.js +0 -48
  82. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +0 -16
  83. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +0 -28
  84. package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +0 -13
  85. package/dist/components/Hotkey/tests/Hotkey.stories.js +0 -53
  86. package/dist/components/Icon/tests/Icon.stories.d.ts +0 -25
  87. package/dist/components/Icon/tests/Icon.stories.js +0 -113
  88. package/dist/components/Image/tests/Image.stories.d.ts +0 -41
  89. package/dist/components/Image/tests/Image.stories.js +0 -196
  90. package/dist/components/Link/tests/Link.stories.d.ts +0 -42
  91. package/dist/components/Link/tests/Link.stories.js +0 -155
  92. package/dist/components/Loader/tests/Loader.stories.d.ts +0 -21
  93. package/dist/components/Loader/tests/Loader.stories.js +0 -68
  94. package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +0 -59
  95. package/dist/components/MenuItem/tests/MenuItem.stories.js +0 -236
  96. package/dist/components/Modal/tests/Modal.stories.d.ts +0 -64
  97. package/dist/components/Modal/tests/Modal.stories.js +0 -410
  98. package/dist/components/NumberField/tests/NumberField.stories.d.ts +0 -28
  99. package/dist/components/NumberField/tests/NumberField.stories.js +0 -258
  100. package/dist/components/Overlay/tests/Overlay.stories.d.ts +0 -28
  101. package/dist/components/Overlay/tests/Overlay.stories.js +0 -202
  102. package/dist/components/Pagination/tests/Pagination.stories.d.ts +0 -24
  103. package/dist/components/Pagination/tests/Pagination.stories.js +0 -105
  104. package/dist/components/PinField/tests/PinField.stories.d.ts +0 -34
  105. package/dist/components/PinField/tests/PinField.stories.js +0 -209
  106. package/dist/components/Popover/tests/Popover.stories.d.ts +0 -69
  107. package/dist/components/Popover/tests/Popover.stories.js +0 -340
  108. package/dist/components/Progress/tests/Progress.stories.d.ts +0 -30
  109. package/dist/components/Progress/tests/Progress.stories.js +0 -102
  110. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +0 -19
  111. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +0 -92
  112. package/dist/components/Radio/tests/Radio.stories.d.ts +0 -35
  113. package/dist/components/Radio/tests/Radio.stories.js +0 -162
  114. package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +0 -19
  115. package/dist/components/RadioGroup/tests/RadioGroup.stories.js +0 -77
  116. package/dist/components/Reshaped/tests/Reshaped.stories.d.ts +0 -34
  117. package/dist/components/Reshaped/tests/Reshaped.stories.js +0 -108
  118. package/dist/components/Resizable/tests/Resizable.stories.d.ts +0 -38
  119. package/dist/components/Resizable/tests/Resizable.stories.js +0 -185
  120. package/dist/components/Scrim/tests/Scrim.stories.d.ts +0 -20
  121. package/dist/components/Scrim/tests/Scrim.stories.js +0 -67
  122. package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +0 -37
  123. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +0 -244
  124. package/dist/components/Select/SelectOptionGroup.d.ts +0 -4
  125. package/dist/components/Select/SelectOptionGroup.js +0 -9
  126. package/dist/components/Select/tests/Select.stories.d.ts +0 -47
  127. package/dist/components/Select/tests/Select.stories.js +0 -520
  128. package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +0 -20
  129. package/dist/components/Skeleton/tests/Skeleton.stories.js +0 -63
  130. package/dist/components/Slider/tests/Slider.stories.d.ts +0 -47
  131. package/dist/components/Slider/tests/Slider.stories.js +0 -279
  132. package/dist/components/Stepper/tests/Stepper.stories.d.ts +0 -31
  133. package/dist/components/Stepper/tests/Stepper.stories.js +0 -135
  134. package/dist/components/Switch/tests/Switch.stories.d.ts +0 -22
  135. package/dist/components/Switch/tests/Switch.stories.js +0 -137
  136. package/dist/components/Switch/tests/Switch.test.stories.d.ts +0 -13
  137. package/dist/components/Switch/tests/Switch.test.stories.js +0 -11
  138. package/dist/components/Table/tests/Table.stories.d.ts +0 -42
  139. package/dist/components/Table/tests/Table.stories.js +0 -348
  140. package/dist/components/Tabs/tests/Tabs.stories.d.ts +0 -62
  141. package/dist/components/Tabs/tests/Tabs.stories.js +0 -539
  142. package/dist/components/Text/tests/Text.stories.d.ts +0 -48
  143. package/dist/components/Text/tests/Text.stories.js +0 -201
  144. package/dist/components/TextArea/tests/TextArea.stories.d.ts +0 -53
  145. package/dist/components/TextArea/tests/TextArea.stories.js +0 -200
  146. package/dist/components/TextField/tests/TextField.stories.d.ts +0 -53
  147. package/dist/components/TextField/tests/TextField.stories.js +0 -237
  148. package/dist/components/Theme/tests/Theme.stories.d.ts +0 -25
  149. package/dist/components/Theme/tests/Theme.stories.js +0 -171
  150. package/dist/components/Timeline/tests/Timeline.stories.d.ts +0 -22
  151. package/dist/components/Timeline/tests/Timeline.stories.js +0 -86
  152. package/dist/components/Toast/tests/Toast.stories.d.ts +0 -41
  153. package/dist/components/Toast/tests/Toast.stories.js +0 -432
  154. package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +0 -27
  155. package/dist/components/ToggleButton/tests/ToggleButton.stories.js +0 -97
  156. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +0 -27
  157. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +0 -169
  158. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +0 -28
  159. package/dist/components/Tooltip/tests/Tooltip.stories.js +0 -182
  160. package/dist/components/View/tests/View.stories.d.ts +0 -141
  161. package/dist/components/View/tests/View.stories.js +0 -1329
  162. package/dist/components/_private/Portal/tests/Portal.stories.d.ts +0 -6
  163. package/dist/components/_private/Portal/tests/Portal.stories.js +0 -17
  164. package/dist/hooks/tests/useDrag.stories.d.ts +0 -31
  165. package/dist/hooks/tests/useDrag.stories.js +0 -147
  166. package/dist/hooks/tests/useElementId.stories.d.ts +0 -11
  167. package/dist/hooks/tests/useElementId.stories.js +0 -23
  168. package/dist/hooks/tests/useHandlerRef.stories.d.ts +0 -14
  169. package/dist/hooks/tests/useHandlerRef.stories.js +0 -44
  170. package/dist/hooks/tests/useHotkeys.stories.d.ts +0 -43
  171. package/dist/hooks/tests/useHotkeys.stories.js +0 -158
  172. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.d.ts +0 -15
  173. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +0 -128
  174. package/dist/hooks/tests/useKeyboardMode.stories.d.ts +0 -11
  175. package/dist/hooks/tests/useKeyboardMode.stories.js +0 -42
  176. package/dist/hooks/tests/useOnClickOutside.stories.d.ts +0 -23
  177. package/dist/hooks/tests/useOnClickOutside.stories.js +0 -111
  178. package/dist/hooks/tests/useRTL.stories.d.ts +0 -11
  179. package/dist/hooks/tests/useRTL.stories.js +0 -23
  180. package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +0 -18
  181. package/dist/hooks/tests/useResponsiveClientValue.stories.js +0 -30
  182. package/dist/hooks/tests/useScrollLock.stories.d.ts +0 -14
  183. package/dist/hooks/tests/useScrollLock.stories.js +0 -97
  184. package/dist/hooks/tests/useToggle.stories.d.ts +0 -13
  185. package/dist/hooks/tests/useToggle.stories.js +0 -59
  186. package/dist/tests/ShadowDOM.stories.d.ts +0 -6
  187. package/dist/tests/ShadowDOM.stories.js +0 -110
  188. package/dist/tests/themes.stories.d.ts +0 -16
  189. package/dist/tests/themes.stories.js +0 -327
  190. package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +0 -14
  191. package/dist/utilities/a11y/tests/TrapFocus.stories.js +0 -615
@@ -1,42 +0,0 @@
1
- import { expect, userEvent } from "storybook/test";
2
- import Button from "../../components/Button/index.js";
3
- import View from "../../components/View/index.js";
4
- import useKeyboardMode from "../useKeyboardMode.js";
5
- export default {
6
- title: "Hooks/useKeyboardMode",
7
- parameters: {
8
- chromatic: { disableSnapshot: true },
9
- },
10
- };
11
- const Component = () => {
12
- const { activate, deactivate, disable, enable } = useKeyboardMode();
13
- return (<View direction="row" gap={2}>
14
- <Button onClick={activate}>Activate</Button>
15
- <Button onClick={deactivate}>Deactivate</Button>
16
- <Button onClick={disable}>Disable</Button>
17
- <Button onClick={enable}>Enable</Button>
18
- </View>);
19
- };
20
- export const base = {
21
- name: "base",
22
- render: () => <Component />,
23
- play: async ({ canvas }) => {
24
- const attribute = "data-rs-keyboard";
25
- const root = document.documentElement;
26
- const activateTrigger = canvas.getAllByRole("button")[0];
27
- const deactivateTrigger = canvas.getAllByRole("button")[1];
28
- const disableTrigger = canvas.getAllByRole("button")[2];
29
- const enableTrigger = canvas.getAllByRole("button")[3];
30
- expect(root).not.toHaveAttribute(attribute);
31
- await userEvent.click(activateTrigger);
32
- expect(root).toHaveAttribute(attribute);
33
- await userEvent.click(deactivateTrigger);
34
- expect(root).not.toHaveAttribute(attribute);
35
- await userEvent.click(disableTrigger);
36
- await userEvent.click(activateTrigger);
37
- expect(root).not.toHaveAttribute(attribute);
38
- await userEvent.click(enableTrigger);
39
- await userEvent.click(activateTrigger);
40
- expect(root).toHaveAttribute(attribute);
41
- },
42
- };
@@ -1,23 +0,0 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- import { type Mock } from "storybook/test";
3
- declare const _default: {
4
- title: string;
5
- parameters: {
6
- chromatic: {
7
- disableSnapshot: boolean;
8
- };
9
- };
10
- };
11
- export default _default;
12
- export declare const base: StoryObj<{
13
- handleOutsideClick: Mock;
14
- }>;
15
- export declare const refs: StoryObj<{
16
- handleOutsideClick: Mock;
17
- }>;
18
- export declare const disabled: StoryObj<{
19
- handleOutsideClick: Mock;
20
- }>;
21
- export declare const deps: StoryObj<{
22
- handleOutsideClick: Mock;
23
- }>;
@@ -1,111 +0,0 @@
1
- import React from "react";
2
- import { expect, fn, userEvent } from "storybook/test";
3
- import Button from "../../components/Button/index.js";
4
- import useOnClickOutside from "../useOnClickOutside.js";
5
- import View from "../../components/View/index.js";
6
- export default {
7
- title: "Hooks/useOnClickOutside",
8
- parameters: {
9
- chromatic: { disableSnapshot: true },
10
- },
11
- };
12
- export const base = {
13
- name: "base",
14
- args: {
15
- handleOutsideClick: fn(),
16
- },
17
- render: (args) => {
18
- const ref = React.useRef(null);
19
- const [target, setTarget] = React.useState(null);
20
- useOnClickOutside([ref], () => {
21
- args.handleOutsideClick();
22
- setTarget("outside");
23
- });
24
- return (<View gap={4} align="start">
25
- <Button attributes={{ ref }} onClick={() => setTarget("inside")}>
26
- Trigger
27
- </Button>
28
- {target && `Clicked ${target}`}
29
- </View>);
30
- },
31
- play: async ({ canvas, args }) => {
32
- const button = canvas.getAllByRole("button")[0];
33
- await userEvent.click(button);
34
- expect(args.handleOutsideClick).not.toHaveBeenCalled();
35
- await userEvent.click(document.body);
36
- expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
37
- expect(args.handleOutsideClick).toHaveBeenCalledWith();
38
- },
39
- };
40
- export const refs = {
41
- name: "multiple refs",
42
- args: {
43
- handleOutsideClick: fn(),
44
- },
45
- render: (args) => {
46
- const ref = React.useRef(null);
47
- const ref2 = React.useRef(null);
48
- useOnClickOutside([ref, ref2], () => {
49
- args.handleOutsideClick();
50
- });
51
- return (<View gap={4} align="start">
52
- <Button attributes={{ ref }}>Trigger</Button>
53
- <Button attributes={{ ref: ref2 }}>Trigger 2</Button>
54
- </View>);
55
- },
56
- play: async ({ canvas, args }) => {
57
- const [button, button2] = canvas.getAllByRole("button");
58
- await userEvent.click(button);
59
- expect(args.handleOutsideClick).not.toHaveBeenCalled();
60
- await userEvent.click(button2);
61
- expect(args.handleOutsideClick).not.toHaveBeenCalled();
62
- await userEvent.click(document.body);
63
- expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
64
- expect(args.handleOutsideClick).toHaveBeenCalledWith();
65
- },
66
- };
67
- export const disabled = {
68
- name: "disabled",
69
- args: {
70
- handleOutsideClick: fn(),
71
- },
72
- render: (args) => {
73
- const ref = React.useRef(null);
74
- useOnClickOutside([ref], () => {
75
- args.handleOutsideClick();
76
- }, {
77
- disabled: true,
78
- });
79
- return (<View gap={4} align="start">
80
- <Button attributes={{ ref }}>Trigger</Button>
81
- </View>);
82
- },
83
- play: async ({ args }) => {
84
- await userEvent.click(document.body);
85
- expect(args.handleOutsideClick).not.toHaveBeenCalled();
86
- },
87
- };
88
- export const deps = {
89
- name: "test: handler uses latest state",
90
- args: {
91
- handleOutsideClick: fn(),
92
- },
93
- render: (args) => {
94
- const ref = React.useRef(null);
95
- const [count, setCount] = React.useState(0);
96
- useOnClickOutside([ref], () => {
97
- args.handleOutsideClick({ count });
98
- });
99
- return (<Button attributes={{ ref }} onClick={() => setCount((prev) => prev + 1)}>
100
- Trigger
101
- </Button>);
102
- },
103
- play: async ({ canvas, args }) => {
104
- const button = canvas.getAllByRole("button")[0];
105
- await userEvent.click(document.body);
106
- expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 0 });
107
- await userEvent.click(button);
108
- await userEvent.click(document.body);
109
- expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 1 });
110
- },
111
- };
@@ -1,11 +0,0 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- declare const _default: {
3
- title: string;
4
- parameters: {
5
- chromatic: {
6
- disableSnapshot: boolean;
7
- };
8
- };
9
- };
10
- export default _default;
11
- export declare const setRTL: StoryObj;
@@ -1,23 +0,0 @@
1
- import React from "react";
2
- import { expect } from "storybook/test";
3
- import useRTL from "../useRTL.js";
4
- export default {
5
- title: "Hooks/useRTL",
6
- parameters: {
7
- chromatic: { disableSnapshot: true },
8
- },
9
- };
10
- const Component = () => {
11
- const [rtl, setRTL] = useRTL();
12
- React.useEffect(() => {
13
- setRTL(true);
14
- }, [setRTL]);
15
- return <div>{rtl ? "RTL" : "LTR"}</div>;
16
- };
17
- export const setRTL = {
18
- name: "setRTL",
19
- render: () => <Component />,
20
- play: async () => {
21
- expect(document.documentElement).toHaveAttribute("dir", "rtl");
22
- },
23
- };
@@ -1,18 +0,0 @@
1
- declare const _default: {
2
- title: string;
3
- parameters: {
4
- chromatic: {
5
- disableSnapshot: boolean;
6
- };
7
- };
8
- };
9
- export default _default;
10
- export declare const base: {
11
- name: string;
12
- render: () => import("react").JSX.Element;
13
- };
14
- export declare const boolean: {
15
- name: string;
16
- describe: string;
17
- render: () => import("react").JSX.Element;
18
- };
@@ -1,30 +0,0 @@
1
- import useResponsiveClientValue from "../useResponsiveClientValue.js";
2
- import View from "../../components/View/index.js";
3
- export default {
4
- title: "Hooks/useResponsiveClientValue",
5
- parameters: {
6
- chromatic: { disableSnapshot: true },
7
- },
8
- };
9
- export const base = {
10
- name: "base",
11
- render: () => {
12
- const value = useResponsiveClientValue({
13
- s: "neutral",
14
- m: "critical",
15
- l: "positive",
16
- });
17
- return <View width={25} height={25} backgroundColor={value}/>;
18
- },
19
- };
20
- export const boolean = {
21
- name: "boolean",
22
- describe: "works with boolean properties",
23
- render: () => {
24
- const value = useResponsiveClientValue({
25
- s: true,
26
- l: false,
27
- });
28
- return <div>{value?.toString()}</div>;
29
- },
30
- };
@@ -1,14 +0,0 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- declare const _default: {
3
- title: string;
4
- parameters: {
5
- chromatic: {
6
- disableSnapshot: boolean;
7
- };
8
- };
9
- };
10
- export default _default;
11
- export declare const base: StoryObj;
12
- export declare const origin: StoryObj;
13
- export declare const container: StoryObj;
14
- export declare const testContainerAsync: StoryObj;
@@ -1,97 +0,0 @@
1
- import React from "react";
2
- import { expect, userEvent } from "storybook/test";
3
- import { Example } from "../../utilities/storybook/index.js";
4
- import Button from "../../components/Button/index.js";
5
- import useScrollLock from "../useScrollLock.js";
6
- import View from "../../components/View/index.js";
7
- export default {
8
- title: "Hooks/useScrollLock",
9
- parameters: {
10
- chromatic: { disableSnapshot: true },
11
- },
12
- };
13
- export const base = {
14
- name: "base",
15
- render: () => {
16
- const { lockScroll, unlockScroll, scrollLocked } = useScrollLock();
17
- return (<React.Fragment>
18
- <Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
19
- <div style={{ height: "150vh" }}/>
20
- </React.Fragment>);
21
- },
22
- play: async ({ canvas }) => {
23
- const button = canvas.getAllByRole("button")[0];
24
- await userEvent.click(button);
25
- expect(document.body).toHaveStyle("overflow: hidden");
26
- await userEvent.click(button);
27
- expect(document.body).not.toHaveStyle("overflow: hidden");
28
- },
29
- };
30
- export const origin = {
31
- name: "originRef",
32
- render: () => {
33
- const originRef = React.useRef(null);
34
- const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ originRef });
35
- return (<View overflow="auto" height={25} attributes={{ ref: originRef, "data-testid": "root" }}>
36
- <View height={50} padding={4} backgroundColor="neutral-faded" borderRadius="medium">
37
- <Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
38
- </View>
39
- </View>);
40
- },
41
- play: async ({ canvas }) => {
42
- const button = canvas.getAllByRole("button")[0];
43
- const root = canvas.getByTestId("root");
44
- await userEvent.click(button);
45
- expect(document.body).not.toHaveStyle("overflow: hidden");
46
- expect(root).toHaveStyle("overflow: hidden");
47
- await userEvent.click(button);
48
- expect(root).not.toHaveStyle("overflow: hidden");
49
- },
50
- };
51
- export const container = {
52
- name: "containerRef",
53
- render: () => {
54
- const containerRef = React.useRef(null);
55
- const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ containerRef });
56
- return (<View height={25} attributes={{ ref: containerRef, "data-testid": "root" }}>
57
- <Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
58
- </View>);
59
- },
60
- play: async ({ canvas }) => {
61
- const button = canvas.getAllByRole("button")[0];
62
- const root = canvas.getByTestId("root");
63
- await userEvent.click(button);
64
- expect(document.body).not.toHaveStyle("overflow: hidden");
65
- expect(root).toHaveStyle("overflow: hidden");
66
- await userEvent.click(button);
67
- expect(root).not.toHaveStyle("overflow: hidden");
68
- },
69
- };
70
- export const testContainerAsync = {
71
- name: "test: containerRef locked count",
72
- render: () => {
73
- const containerRef = React.useRef(null);
74
- const globalLock = useScrollLock();
75
- const scopedLock = useScrollLock({ containerRef });
76
- return (<Example>
77
- <Example.Item title="calling regular lock and lock with a container only requires a single unlock to remove overflow">
78
- <View attributes={{ ref: containerRef }} gap={4} direction="row">
79
- <Button onClick={globalLock.scrollLocked ? globalLock.unlockScroll : globalLock.lockScroll}>
80
- Toggle
81
- </Button>
82
- <Button onClick={scopedLock.scrollLocked ? scopedLock.unlockScroll : scopedLock.lockScroll}>
83
- Toggle
84
- </Button>
85
- </View>
86
- </Example.Item>
87
- </Example>);
88
- },
89
- play: async ({ canvas }) => {
90
- const [buttonGlobal, buttonScoped] = canvas.getAllByRole("button");
91
- await userEvent.click(buttonGlobal);
92
- expect(document.body).toHaveStyle("overflow: hidden");
93
- await userEvent.click(buttonScoped);
94
- await userEvent.click(buttonGlobal);
95
- expect(document.body).not.toHaveStyle("overflow: hidden");
96
- },
97
- };
@@ -1,13 +0,0 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- declare const _default: {
3
- title: string;
4
- parameters: {
5
- chromatic: {
6
- disableSnapshot: boolean;
7
- };
8
- };
9
- };
10
- export default _default;
11
- export declare const toggle: StoryObj;
12
- export declare const activate: StoryObj;
13
- export declare const deactivate: StoryObj;
@@ -1,59 +0,0 @@
1
- import React from "react";
2
- import { expect, userEvent } from "storybook/test";
3
- import Button from "../../components/Button/index.js";
4
- import useToggle from "../useToggle.js";
5
- export default {
6
- title: "Hooks/useToggle",
7
- parameters: {
8
- chromatic: { disableSnapshot: true },
9
- },
10
- };
11
- export const toggle = {
12
- name: "toggle",
13
- render: () => {
14
- const { toggle, active } = useToggle();
15
- return (<Button onClick={() => toggle()} attributes={{ "data-active": active }}>
16
- {active ? "Deactivate" : "Activate"}
17
- </Button>);
18
- },
19
- play: async ({ canvas }) => {
20
- const button = canvas.getAllByRole("button")[0];
21
- expect(button.getAttribute("data-active")).toBe("false");
22
- await userEvent.click(button);
23
- expect(button.getAttribute("data-active")).toBe("true");
24
- await userEvent.click(button);
25
- expect(button.getAttribute("data-active")).toBe("false");
26
- },
27
- };
28
- export const activate = {
29
- name: "activate",
30
- render: () => {
31
- const { activate, active } = useToggle();
32
- return (<React.Fragment>
33
- <Button onClick={activate} attributes={{ "data-active": active }}>
34
- Activate
35
- </Button>
36
- </React.Fragment>);
37
- },
38
- play: async ({ canvas }) => {
39
- const button = canvas.getAllByRole("button")[0];
40
- expect(button.getAttribute("data-active")).toBe("false");
41
- await userEvent.click(button);
42
- expect(button.getAttribute("data-active")).toBe("true");
43
- },
44
- };
45
- export const deactivate = {
46
- name: "deactivate",
47
- render: () => {
48
- const { deactivate, active } = useToggle(true);
49
- return (<Button onClick={deactivate} attributes={{ "data-active": active }}>
50
- Deactivate
51
- </Button>);
52
- },
53
- play: async ({ canvas }) => {
54
- const button = canvas.getAllByRole("button")[0];
55
- expect(button.getAttribute("data-active")).toBe("true");
56
- await userEvent.click(button);
57
- expect(button.getAttribute("data-active")).toBe("false");
58
- },
59
- };
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- declare const _default: {
3
- title: string;
4
- };
5
- export default _default;
6
- export declare const behavior: () => React.JSX.Element;
@@ -1,110 +0,0 @@
1
- import React, { useEffect, useState, useRef, forwardRef } from "react";
2
- import root from "react-shadow";
3
- import { Example } from "../utilities/storybook/index.js";
4
- import Autocomplete from "../components/Autocomplete/index.js";
5
- import View from "../components/View/index.js";
6
- import DropdownMenu from "../components/DropdownMenu/index.js";
7
- import Reshaped from "../components/Reshaped/index.js";
8
- import Select from "../components/Select/index.js";
9
- import Button from "../components/Button/index.js";
10
- import Tooltip from "../components/Tooltip/index.js";
11
- export default {
12
- title: "Internal/ShadowDOM",
13
- };
14
- const getStylesData = () => {
15
- const sourceStylesContainer = document.head;
16
- return Array.from(sourceStylesContainer.children).filter((x) => x instanceof HTMLStyleElement);
17
- };
18
- // Create a component to render inside the Shadow DOM
19
- const ShadowDiv = forwardRef((props, ref) => {
20
- const shadowRef = useRef(null);
21
- // Load styles
22
- useEffect(() => {
23
- if (!shadowRef?.current)
24
- return;
25
- // Add styles to the shadow DOM
26
- // const shadowEl = shadowRef?.current.shadowRoot;
27
- const shadowEl = shadowRef?.current.shadowRoot;
28
- if (!shadowEl)
29
- return;
30
- const sourceStylesContainer = document.head;
31
- const observer = new MutationObserver(getStylesData);
32
- observer.observe(sourceStylesContainer, {
33
- characterData: true,
34
- childList: true,
35
- subtree: true,
36
- });
37
- let styleBlock = shadowEl.getElementById("custom-outer-style");
38
- if (!styleBlock) {
39
- styleBlock = document.createElement("span");
40
- styleBlock.id = "custom-outer-style";
41
- shadowEl.appendChild(styleBlock);
42
- }
43
- else {
44
- styleBlock.innerHTML = "";
45
- }
46
- styleBlock.append(...getStylesData() // finds all <style> tags containing your web component ID
47
- .map((x) => x.cloneNode(true)) // copies styles into the current instance of your web component. You might need to have multiple instances, so all of them need to track the styles.
48
- );
49
- return () => observer.disconnect();
50
- }, []);
51
- return (<Reshaped>
52
- <root.div className="quote" ref={shadowRef}>
53
- <div ref={ref}>
54
- {/*
55
- Adding padding here since otherwise mouseenter won't trigger on contents
56
- when mouse is switching from outside the shadow dom
57
- */}
58
- <View padding={4}>{props.children}</View>
59
- </div>
60
- </root.div>
61
- </Reshaped>);
62
- });
63
- // Main Component
64
- const Component = () => {
65
- const [valueAutoShadow, setValueAutoShadow] = useState("");
66
- const [valueDropdownShadow, setValueDropdownShadow] = useState("");
67
- const optionsAuto = ["Pizza", "Pie", "Ice-cream"];
68
- const optionsDropdown = ["Turtle", "Cat", "Long-necked giraffe"];
69
- const handleChangeAutoShadow = (args) => {
70
- console.log("Autocomlete shadow value=", args);
71
- setValueAutoShadow(args.value);
72
- };
73
- const handleChangeDropdownShadow = (val) => {
74
- console.log("Dropdown shadow value=", val);
75
- setValueDropdownShadow(val);
76
- };
77
- return (<View paddingBottom={50}>
78
- <ShadowDiv>
79
- <View gap={4} direction="row" wrap={false}>
80
- <Autocomplete name="fruit-shadow" placeholder="Pick your food" value={valueAutoShadow} onChange={handleChangeAutoShadow} inputAttributes={{ "aria-label": "Label" }}>
81
- {optionsAuto.map((option) => (<Autocomplete.Item key={option} value={option} onClick={() => handleChangeAutoShadow({ value: option, name: "fruit-auto" })}>
82
- {option}
83
- </Autocomplete.Item>))}
84
- </Autocomplete>
85
-
86
- <DropdownMenu>
87
- <DropdownMenu.Trigger>
88
- {(attributes) => (<Select placeholder="Pick your animal" name="font" inputAttributes={attributes}>
89
- {valueDropdownShadow}
90
- </Select>)}
91
- </DropdownMenu.Trigger>
92
- <DropdownMenu.Content>
93
- {optionsDropdown.map((option) => (<DropdownMenu.Item onClick={() => handleChangeDropdownShadow(option)} key={option}>
94
- {option}
95
- </DropdownMenu.Item>))}
96
- </DropdownMenu.Content>
97
- </DropdownMenu>
98
-
99
- <Tooltip text="Tooltip for button">
100
- {(attributes) => <Button attributes={attributes}>Hover me</Button>}
101
- </Tooltip>
102
- </View>
103
- </ShadowDiv>
104
- </View>);
105
- };
106
- export const behavior = () => (<Example>
107
- <Example.Item title="base">
108
- <Component />
109
- </Example.Item>
110
- </Example>);
@@ -1,16 +0,0 @@
1
- declare const _default: {
2
- title: string;
3
- parameters: {
4
- iframe: {
5
- url: string;
6
- };
7
- a11y: {
8
- disable: boolean;
9
- };
10
- };
11
- };
12
- export default _default;
13
- export declare const test: () => import("react").JSX.Element;
14
- export declare const base: () => import("react").JSX.Element;
15
- export declare const generation: () => import("react").JSX.Element;
16
- export declare const onColors: () => import("react").JSX.Element;