reshaped 3.3.12 → 3.4.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +4 -1
  4. package/dist/bundle.js +11 -11
  5. package/dist/components/Autocomplete/Autocomplete.js +34 -24
  6. package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -1
  7. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +8 -1
  8. package/dist/components/Carousel/Carousel.js +53 -4
  9. package/dist/components/Carousel/Carousel.types.d.ts +5 -0
  10. package/dist/components/Carousel/tests/Carousel.stories.d.ts +20 -4
  11. package/dist/components/Carousel/tests/Carousel.stories.js +195 -102
  12. package/dist/components/Container/Container.module.css +1 -1
  13. package/dist/components/ContextMenu/ContextMenu.js +2 -2
  14. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +1 -1
  15. package/dist/components/DropdownMenu/DropdownMenu.js +6 -1
  16. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +2 -2
  17. package/dist/components/Popover/Popover.js +1 -1
  18. package/dist/components/Popover/tests/Popover.test.stories.js +4 -4
  19. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -0
  20. package/dist/components/ProgressIndicator/ProgressIndicator.js +101 -0
  21. package/dist/components/ProgressIndicator/ProgressIndicator.module.css +1 -0
  22. package/dist/components/ProgressIndicator/ProgressIndicator.types.d.ts +9 -0
  23. package/dist/components/ProgressIndicator/ProgressIndicator.types.js +1 -0
  24. package/dist/components/ProgressIndicator/index.d.ts +2 -0
  25. package/dist/components/ProgressIndicator/index.js +1 -0
  26. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +19 -0
  27. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +85 -0
  28. package/dist/components/Reshaped/Reshaped.js +4 -5
  29. package/dist/components/Table/index.d.ts +1 -1
  30. package/dist/components/Table/tests/Table.stories.d.ts +5 -5
  31. package/dist/components/Table/tests/Table.test.stories.d.ts +5 -5
  32. package/dist/components/TextField/TextField.module.css +1 -1
  33. package/dist/components/Toast/tests/Toast.stories.js +22 -7
  34. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +1 -1
  35. package/dist/components/_private/Flyout/Flyout.module.css +1 -1
  36. package/dist/components/_private/Flyout/Flyout.types.d.ts +14 -3
  37. package/dist/components/_private/Flyout/FlyoutContent.js +37 -7
  38. package/dist/components/_private/Flyout/FlyoutControlled.js +12 -11
  39. package/dist/components/_private/Flyout/FlyoutUncontrolled.js +3 -5
  40. package/dist/components/_private/Flyout/index.d.ts +1 -1
  41. package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +79 -13
  42. package/dist/components/_private/Flyout/tests/Flyout.stories.js +526 -280
  43. package/dist/components/_private/Flyout/useFlyout.js +9 -3
  44. package/dist/components/_private/Flyout/utilities/isFullyVisible.d.ts +3 -1
  45. package/dist/components/_private/Flyout/utilities/isFullyVisible.js +2 -2
  46. package/dist/hooks/_private/usePrevious.d.ts +2 -0
  47. package/dist/hooks/_private/usePrevious.js +17 -0
  48. package/dist/hooks/_private/useSingletonEnvironment.d.ts +1 -1
  49. package/dist/hooks/_private/useSingletonEnvironment.js +1 -1
  50. package/dist/hooks/_private/useSingletonKeyboardMode.d.ts +13 -2
  51. package/dist/hooks/_private/useSingletonKeyboardMode.js +48 -15
  52. package/dist/hooks/tests/useKeyboardMode.stories.d.ts +6 -0
  53. package/dist/hooks/tests/useKeyboardMode.stories.js +37 -0
  54. package/dist/hooks/useKeyboardMode.d.ts +7 -0
  55. package/dist/hooks/useKeyboardMode.js +13 -0
  56. package/dist/index.d.ts +4 -1
  57. package/dist/index.js +2 -0
  58. package/dist/utilities/a11y/index.d.ts +1 -1
  59. package/dist/utilities/a11y/index.js +1 -1
  60. package/dist/utilities/a11y/keyboardMode.d.ts +2 -2
  61. package/dist/utilities/a11y/keyboardMode.js +2 -2
  62. package/dist/utilities/dom/find.d.ts +4 -1
  63. package/dist/utilities/dom/find.js +4 -4
  64. package/dist/utilities/scroll/lockStandard.js +1 -1
  65. package/package.json +34 -35
  66. package/dist/components/Carousel/tests/Carousel.test.stories.d.ts +0 -17
  67. package/dist/components/Carousel/tests/Carousel.test.stories.js +0 -52
  68. package/dist/components/_private/Flyout/tests/Flyout.test.stories.d.ts +0 -28
  69. package/dist/components/_private/Flyout/tests/Flyout.test.stories.js +0 -205
@@ -1,205 +0,0 @@
1
- import { expect, fn, userEvent, within, waitFor } from "@storybook/test";
2
- import Flyout from "../index.js";
3
- import Button from "../../../Button/index.js";
4
- import Reshaped from "../../../Reshaped/index.js";
5
- import { useRef } from "react";
6
- import { createRoot } from "react-dom/client";
7
- import { sleep } from "../../../../utilities/helpers.js";
8
- export default {
9
- title: "Internal/Flyout/tests",
10
- };
11
- export const defaultActive = {
12
- name: "defaultActive, uncontrolled",
13
- args: {
14
- handleOpen: fn(),
15
- handleClose: fn(),
16
- },
17
- render: (args) => (<Flyout onOpen={args.handleOpen} onClose={args.handleClose} defaultActive>
18
- <Flyout.Trigger>
19
- {(attributes) => <Button attributes={attributes}>Open</Button>}
20
- </Flyout.Trigger>
21
- <Flyout.Content>Content</Flyout.Content>
22
- </Flyout>),
23
- play: async ({ canvasElement, args }) => {
24
- const canvas = within(canvasElement.ownerDocument.body);
25
- const trigger = canvas.getAllByRole("button")[0];
26
- let item = canvas.getByText("Content");
27
- await sleep(500);
28
- await userEvent.click(document.body);
29
- await waitFor(() => {
30
- expect(args.handleClose).toHaveBeenCalledTimes(1);
31
- expect(args.handleClose).toHaveBeenCalledWith();
32
- expect(item).not.toBeInTheDocument();
33
- });
34
- await userEvent.click(trigger);
35
- await waitFor(() => {
36
- expect(args.handleOpen).toHaveBeenCalledTimes(1);
37
- expect(args.handleOpen).toHaveBeenCalledWith();
38
- });
39
- item = canvas.getByText("Content");
40
- expect(item).toBeInTheDocument();
41
- },
42
- };
43
- export const active = {
44
- name: "active, controlled",
45
- args: {
46
- handleOpen: fn(),
47
- handleClose: fn(),
48
- },
49
- render: (args) => (<Flyout onOpen={args.handleOpen} onClose={args.handleClose} active>
50
- <Flyout.Trigger>
51
- {(attributes) => <Button attributes={attributes}>Open</Button>}
52
- </Flyout.Trigger>
53
- <Flyout.Content>Content</Flyout.Content>
54
- </Flyout>),
55
- play: async ({ canvasElement, args }) => {
56
- const canvas = within(canvasElement.ownerDocument.body);
57
- const item = canvas.getByText("Content");
58
- await userEvent.click(document.body);
59
- await waitFor(() => {
60
- expect(args.handleClose).toHaveBeenCalledTimes(1);
61
- expect(args.handleClose).toHaveBeenCalledWith();
62
- });
63
- expect(item).toBeInTheDocument();
64
- },
65
- };
66
- export const activeFalse = {
67
- name: "active false, controlled",
68
- args: {
69
- handleOpen: fn(),
70
- handleClose: fn(),
71
- },
72
- render: (args) => (<Flyout onOpen={args.handleOpen} onClose={args.handleClose} active={false}>
73
- <Flyout.Trigger>
74
- {(attributes) => <Button attributes={attributes}>Open</Button>}
75
- </Flyout.Trigger>
76
- <Flyout.Content>Content</Flyout.Content>
77
- </Flyout>),
78
- play: async ({ canvasElement, args }) => {
79
- const canvas = within(canvasElement.ownerDocument.body);
80
- const trigger = canvas.getAllByRole("button")[0];
81
- await userEvent.click(trigger);
82
- await waitFor(() => {
83
- expect(args.handleOpen).toHaveBeenCalledTimes(1);
84
- expect(args.handleOpen).toHaveBeenCalledWith();
85
- });
86
- const item = canvas.queryByText("Content");
87
- expect(item).not.toBeInTheDocument();
88
- },
89
- };
90
- export const triggerType = {
91
- name: "triggerType hover",
92
- args: {
93
- handleOpen: fn(),
94
- handleClose: fn(),
95
- },
96
- render: (args) => (<Flyout onOpen={args.handleOpen} onClose={args.handleClose} triggerType="hover">
97
- <Flyout.Trigger>
98
- {(attributes) => <Button attributes={attributes}>Open</Button>}
99
- </Flyout.Trigger>
100
- <Flyout.Content>Content</Flyout.Content>
101
- </Flyout>),
102
- play: async ({ canvasElement, args }) => {
103
- const canvas = within(canvasElement.ownerDocument.body);
104
- const trigger = canvas.getAllByRole("button")[0];
105
- await userEvent.hover(trigger);
106
- await waitFor(() => {
107
- expect(args.handleOpen).toHaveBeenCalledTimes(1);
108
- expect(args.handleOpen).toHaveBeenCalledWith();
109
- });
110
- await userEvent.unhover(trigger);
111
- await waitFor(() => {
112
- expect(args.handleClose).toHaveBeenCalledTimes(1);
113
- expect(args.handleClose).toHaveBeenCalledWith();
114
- });
115
- },
116
- };
117
- export const disabled = {
118
- name: "disabled",
119
- args: {
120
- handleOpen: fn(),
121
- },
122
- render: () => (<div data-testid="root">
123
- <Flyout disabled>
124
- <Flyout.Trigger>
125
- {(attributes) => <Button attributes={attributes}>Open</Button>}
126
- </Flyout.Trigger>
127
- <Flyout.Content className="test-classname" attributes={{ "data-testid": "test-id" }}>
128
- Content
129
- </Flyout.Content>
130
- </Flyout>
131
- </div>),
132
- play: async ({ canvasElement, args }) => {
133
- const canvas = within(canvasElement.ownerDocument.body);
134
- const button = canvas.getAllByRole("button")[0];
135
- await userEvent.click(button);
136
- expect(args.handleOpen).toHaveBeenCalledTimes(0);
137
- },
138
- };
139
- export const containerRef = {
140
- name: "containerRef",
141
- render: () => {
142
- const portalRef = useRef(null);
143
- return (<div ref={portalRef} data-testid="test-id">
144
- <Flyout containerRef={portalRef} active>
145
- <Flyout.Trigger>
146
- {(attributes) => <Button attributes={attributes}>Trigger</Button>}
147
- </Flyout.Trigger>
148
- <Flyout.Content>Content</Flyout.Content>
149
- </Flyout>
150
- </div>);
151
- },
152
- play: async ({ canvasElement }) => {
153
- const canvas = within(canvasElement.ownerDocument.body);
154
- const containerEl = canvas.getByTestId("test-id");
155
- const contentEl = canvas.getByText("Content");
156
- expect(containerEl).toContainElement(contentEl);
157
- },
158
- };
159
- class CustomElement extends window.HTMLElement {
160
- constructor() {
161
- super();
162
- this.attachShadow({ mode: "open" });
163
- if (!this.shadowRoot)
164
- return;
165
- const root = createRoot(this.shadowRoot);
166
- root.render(<Reshaped>
167
- <Flyout active>
168
- <Flyout.Trigger>
169
- {(attributes) => <button {...attributes}>Trigger</button>}
170
- </Flyout.Trigger>
171
- <Flyout.Content>
172
- <div id="test-id"/>
173
- </Flyout.Content>
174
- </Flyout>
175
- </Reshaped>);
176
- }
177
- }
178
- window.customElements.define("custom-element-flyout", CustomElement);
179
- export const shadowDom = {
180
- name: "shadow DOM",
181
- // @ts-ignore
182
- render: () => <custom-element-flyout />,
183
- play: async () => {
184
- expect(document.querySelector("custom-element-flyout")?.shadowRoot?.querySelector(`#test-id`)).toBeTruthy();
185
- expect(document.body.querySelector(`#test-id`)).toBe(null);
186
- },
187
- };
188
- export const className = {
189
- name: "className, attributes",
190
- render: () => (<div data-testid="root">
191
- <Flyout active>
192
- <Flyout.Trigger>
193
- {(attributes) => <Button attributes={attributes}>Open</Button>}
194
- </Flyout.Trigger>
195
- <Flyout.Content className="test-classname" attributes={{ "data-testid": "test-id" }}>
196
- Content
197
- </Flyout.Content>
198
- </Flyout>
199
- </div>),
200
- play: async ({ canvasElement }) => {
201
- const canvas = within(canvasElement.ownerDocument.body);
202
- const menu = await canvas.findByTestId("test-id");
203
- expect(menu).toHaveClass("test-classname");
204
- },
205
- };