reshaped 3.7.4 → 3.8.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.
- package/CHANGELOG-extra.md +3 -0
- package/CHANGELOG.md +68 -55
- package/LICENSE.md +1 -1
- package/README.md +24 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.js +11 -11
- package/dist/cjs/themes/index.d.ts +1 -0
- package/dist/cjs/themes/index.js +3 -1
- package/dist/components/Accordion/Accordion.types.d.ts +13 -2
- package/dist/components/ActionBar/ActionBar.types.d.ts +10 -0
- package/dist/components/Actionable/Actionable.types.d.ts +14 -0
- package/dist/components/Alert/Alert.types.d.ts +11 -0
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +7 -0
- package/dist/components/Avatar/Avatar.types.d.ts +18 -0
- package/dist/components/Avatar/tests/Avatar.stories.js +1 -1
- package/dist/components/Badge/Badge.types.d.ts +25 -1
- package/dist/components/Badge/tests/Badge.test.stories.js +3 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +11 -0
- package/dist/components/Button/Button.types.d.ts +20 -0
- package/dist/components/Calendar/Calendar.types.d.ts +31 -0
- package/dist/components/Calendar/tests/Calendar.stories.js +1 -1
- package/dist/components/Card/Card.types.d.ts +12 -0
- package/dist/components/Carousel/Carousel.types.d.ts +13 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts +19 -0
- package/dist/components/Checkbox/tests/Checkbox.stories.js +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.types.d.ts +10 -0
- package/dist/components/Container/Container.types.d.ts +11 -1
- package/dist/components/Dismissible/Dismissible.types.d.ts +10 -0
- package/dist/components/Divider/Divider.types.d.ts +6 -0
- package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +4 -1
- package/dist/components/FileUpload/FileUpload.types.d.ts +10 -0
- package/dist/components/Flyout/Flyout.types.d.ts +41 -0
- package/dist/components/Flyout/FlyoutContent.js +1 -1
- package/dist/components/Flyout/FlyoutControlled.js +2 -1
- package/dist/components/Flyout/tests/Flyout.stories.d.ts +4 -0
- package/dist/components/Flyout/tests/Flyout.stories.js +59 -1
- package/dist/components/Flyout/useFlyout.d.ts +1 -0
- package/dist/components/Flyout/useFlyout.js +3 -1
- package/dist/components/Flyout/utilities/calculatePosition.d.ts +1 -1
- package/dist/components/Flyout/utilities/calculatePosition.js +52 -28
- package/dist/components/Flyout/utilities/flyout.js +22 -18
- package/dist/components/Flyout/utilities/helpers.d.ts +7 -0
- package/dist/components/Flyout/utilities/helpers.js +14 -0
- package/dist/components/Flyout/utilities/isFullyVisible.d.ts +5 -1
- package/dist/components/Flyout/utilities/isFullyVisible.js +1 -1
- package/dist/components/FormControl/FormControl.types.d.ts +9 -0
- package/dist/components/Grid/Grid.js +3 -1
- package/dist/components/Grid/Grid.module.css +1 -1
- package/dist/components/Grid/Grid.types.d.ts +31 -0
- package/dist/components/Grid/tests/Grid.stories.d.ts +3 -0
- package/dist/components/Grid/tests/Grid.stories.js +39 -1
- package/dist/components/Hidden/Hidden.types.d.ts +4 -0
- package/dist/components/HiddenVisually/HiddenVisually.types.d.ts +1 -0
- package/dist/components/Hotkey/Hotkey.types.d.ts +4 -0
- package/dist/components/Icon/Icon.types.d.ts +6 -0
- package/dist/components/Image/Image.types.d.ts +15 -0
- package/dist/components/Link/Link.types.d.ts +7 -0
- package/dist/components/Loader/Loader.types.d.ts +5 -0
- package/dist/components/MenuItem/MenuItem.types.d.ts +13 -1
- package/dist/components/Modal/Modal.types.d.ts +19 -0
- package/dist/components/NumberField/NumberField.types.d.ts +10 -0
- package/dist/components/Overlay/Overlay.types.d.ts +13 -0
- package/dist/components/Pagination/Pagination.types.d.ts +11 -29
- package/dist/components/PinField/PinField.module.css +1 -1
- package/dist/components/PinField/PinField.types.d.ts +13 -0
- package/dist/components/PinField/tests/PinField.stories.d.ts +24 -3
- package/dist/components/PinField/tests/PinField.stories.js +194 -47
- package/dist/components/Popover/Popover.types.d.ts +4 -1
- package/dist/components/Progress/Progress.types.d.ts +9 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.js +13 -84
- package/dist/components/ProgressIndicator/ProgressIndicator.module.css +1 -1
- package/dist/components/ProgressIndicator/ProgressIndicator.types.d.ts +8 -0
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +8 -1
- package/dist/components/Radio/Radio.types.d.ts +12 -0
- package/dist/components/RadioGroup/RadioGroup.types.d.ts +14 -0
- package/dist/components/Reshaped/Reshaped.css +1 -1
- package/dist/components/Reshaped/Reshaped.types.d.ts +12 -0
- package/dist/components/Resizable/Resizable.types.d.ts +7 -0
- package/dist/components/Scrim/Scrim.types.d.ts +6 -1
- package/dist/components/ScrollArea/ScrollArea.types.d.ts +7 -0
- package/dist/components/Select/Select.types.d.ts +27 -0
- package/dist/components/Skeleton/Skeleton.types.d.ts +2 -0
- package/dist/components/Slider/Slider.types.d.ts +56 -0
- package/dist/components/Stepper/Stepper.types.d.ts +13 -0
- package/dist/components/Switch/Switch.types.d.ts +16 -0
- package/dist/components/Table/Table.types.d.ts +29 -0
- package/dist/components/Tabs/Tabs.module.css +1 -1
- package/dist/components/Tabs/Tabs.types.d.ts +24 -0
- package/dist/components/Tabs/TabsItem.js +2 -2
- package/dist/components/Tabs/tests/Tabs.stories.js +6 -6
- package/dist/components/Text/Text.types.d.ts +12 -0
- package/dist/components/TextArea/TextArea.types.d.ts +17 -0
- package/dist/components/TextField/TextField.types.d.ts +29 -0
- package/dist/components/Theme/Theme.js +4 -1
- package/dist/components/Theme/Theme.types.d.ts +5 -0
- package/dist/components/Timeline/Timeline.types.d.ts +7 -0
- package/dist/components/Toast/Toast.types.d.ts +18 -0
- package/dist/components/ToggleButton/ToggleButton.types.d.ts +9 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.types.d.ts +8 -0
- package/dist/components/Tooltip/Tooltip.types.d.ts +5 -0
- package/dist/components/View/View.types.d.ts +56 -1
- package/dist/components/_private/Aligner/Aligner.types.d.ts +6 -0
- package/dist/themes/index.d.ts +1 -0
- package/dist/themes/index.js +1 -0
- package/package.json +47 -32
- package/LICENSE-SOURCE.md +0 -40
- package/dist/components/Grid/tests/Grid.test.stories.d.ts +0 -23
- package/dist/components/Grid/tests/Grid.test.stories.js +0 -42
- package/dist/components/PinField/tests/PinField.test.stories.d.ts +0 -29
- package/dist/components/PinField/tests/PinField.test.stories.js +0 -177
@@ -1,177 +0,0 @@
|
|
1
|
-
import { expect, fn, userEvent, waitFor } from "storybook/test";
|
2
|
-
import FormControl from "../../FormControl/index.js";
|
3
|
-
import PinField from "../index.js";
|
4
|
-
export default {
|
5
|
-
title: "Components/PinField/tests",
|
6
|
-
component: PinField,
|
7
|
-
parameters: {
|
8
|
-
iframe: {
|
9
|
-
url: "https://reshaped.so/docs/components/pin-field",
|
10
|
-
},
|
11
|
-
chromatic: { disableSnapshot: true },
|
12
|
-
},
|
13
|
-
};
|
14
|
-
export const render = {
|
15
|
-
name: "rendering",
|
16
|
-
render: () => <PinField name="test-name" inputAttributes={{ "aria-label": "Label" }}/>,
|
17
|
-
play: async ({ canvas }) => {
|
18
|
-
const elInput = canvas.getByRole("textbox");
|
19
|
-
expect(elInput).toBeInTheDocument();
|
20
|
-
expect(elInput).toHaveAttribute("name", "test-name");
|
21
|
-
expect(elInput).toHaveAttribute("autocomplete", "one-time-code");
|
22
|
-
expect(elInput).toHaveAttribute("inputmode", "numeric");
|
23
|
-
},
|
24
|
-
};
|
25
|
-
export const valueLength = {
|
26
|
-
name: "valueLength",
|
27
|
-
render: () => (<PinField name="test-name" valueLength={6} inputAttributes={{ "aria-label": "Label" }}/>),
|
28
|
-
play: async ({ canvas }) => {
|
29
|
-
const elInput = canvas.getByRole("textbox");
|
30
|
-
expect(elInput).toHaveAttribute("maxlength", "6");
|
31
|
-
},
|
32
|
-
};
|
33
|
-
export const defaultValue = {
|
34
|
-
name: "defaultValue, uncontrolled",
|
35
|
-
args: {
|
36
|
-
handleChange: fn(),
|
37
|
-
},
|
38
|
-
render: (args) => (<PinField name="test-name" onChange={args.handleChange} defaultValue="12" inputAttributes={{ "aria-label": "Label" }}/>),
|
39
|
-
play: async ({ canvas, args }) => {
|
40
|
-
const elInput = canvas.getByRole("textbox");
|
41
|
-
elInput.focus();
|
42
|
-
await userEvent.keyboard("3");
|
43
|
-
expect(args.handleChange).toHaveBeenCalledTimes(1);
|
44
|
-
expect(args.handleChange).toHaveBeenCalledWith({
|
45
|
-
value: "123",
|
46
|
-
name: "test-name",
|
47
|
-
event: expect.objectContaining({ target: elInput }),
|
48
|
-
});
|
49
|
-
expect(elInput).toHaveValue("123");
|
50
|
-
},
|
51
|
-
};
|
52
|
-
export const value = {
|
53
|
-
name: "value, controlled",
|
54
|
-
args: {
|
55
|
-
handleChange: fn(),
|
56
|
-
},
|
57
|
-
render: (args) => (<PinField name="test-name" onChange={args.handleChange} value="12" inputAttributes={{ "aria-label": "Label" }}/>),
|
58
|
-
play: async ({ canvas, args }) => {
|
59
|
-
const elInput = canvas.getByRole("textbox");
|
60
|
-
elInput.focus();
|
61
|
-
await userEvent.keyboard("3");
|
62
|
-
expect(args.handleChange).toHaveBeenCalledTimes(1);
|
63
|
-
expect(args.handleChange).toHaveBeenCalledWith({
|
64
|
-
value: "123",
|
65
|
-
name: "test-name",
|
66
|
-
event: expect.objectContaining({ target: elInput }),
|
67
|
-
});
|
68
|
-
expect(elInput).toHaveValue("12");
|
69
|
-
},
|
70
|
-
};
|
71
|
-
export const pattern = {
|
72
|
-
name: "pattern",
|
73
|
-
args: {
|
74
|
-
handleChange: fn(),
|
75
|
-
},
|
76
|
-
render: (args) => (<PinField name="test-name" pattern="alphabetic" defaultValue="ab" onChange={args.handleChange} inputAttributes={{ "aria-label": "Label" }}/>),
|
77
|
-
play: async ({ canvas, args }) => {
|
78
|
-
const elInput = canvas.getByRole("textbox");
|
79
|
-
elInput.focus();
|
80
|
-
await userEvent.keyboard("3");
|
81
|
-
expect(elInput).toHaveValue("ab");
|
82
|
-
expect(args.handleChange).toHaveBeenCalledTimes(0);
|
83
|
-
await userEvent.keyboard("c");
|
84
|
-
expect(elInput).toHaveValue("abc");
|
85
|
-
expect(args.handleChange).toHaveBeenCalledTimes(1);
|
86
|
-
},
|
87
|
-
};
|
88
|
-
export const formControl = {
|
89
|
-
name: "with FormControl",
|
90
|
-
render: () => (<FormControl>
|
91
|
-
<FormControl.Label>Label</FormControl.Label>
|
92
|
-
<PinField name="test-name"/>
|
93
|
-
</FormControl>),
|
94
|
-
play: async ({ canvas }) => {
|
95
|
-
const elInput = canvas.getByRole("textbox");
|
96
|
-
expect(elInput).toHaveAccessibleName("Label");
|
97
|
-
},
|
98
|
-
};
|
99
|
-
export const keyboard = {
|
100
|
-
name: "keyboard navigation",
|
101
|
-
render: () => <PinField name="test-name" inputAttributes={{ "aria-label": "Label" }}/>,
|
102
|
-
play: async ({ canvas }) => {
|
103
|
-
const elInput = canvas.getByRole("textbox");
|
104
|
-
elInput.focus();
|
105
|
-
expect(elInput.selectionStart).toEqual(0);
|
106
|
-
expect(elInput.selectionEnd).toEqual(0);
|
107
|
-
await userEvent.keyboard("1");
|
108
|
-
await waitFor(() => {
|
109
|
-
expect(elInput.selectionStart).toEqual(1);
|
110
|
-
expect(elInput.selectionEnd).toEqual(1);
|
111
|
-
});
|
112
|
-
await userEvent.keyboard("234");
|
113
|
-
await waitFor(() => {
|
114
|
-
expect(elInput.selectionStart).toEqual(3);
|
115
|
-
expect(elInput.selectionEnd).toEqual(4);
|
116
|
-
});
|
117
|
-
// Move back to the first character
|
118
|
-
await userEvent.keyboard("{ArrowLeft/}");
|
119
|
-
await waitFor(() => {
|
120
|
-
expect(elInput.selectionStart).toEqual(2);
|
121
|
-
expect(elInput.selectionEnd).toEqual(3);
|
122
|
-
});
|
123
|
-
await userEvent.keyboard("{ArrowLeft/}");
|
124
|
-
await waitFor(() => {
|
125
|
-
expect(elInput.selectionStart).toEqual(1);
|
126
|
-
expect(elInput.selectionEnd).toEqual(2);
|
127
|
-
});
|
128
|
-
await userEvent.keyboard("{ArrowLeft}");
|
129
|
-
await waitFor(() => {
|
130
|
-
expect(elInput.selectionStart).toEqual(0);
|
131
|
-
expect(elInput.selectionEnd).toEqual(1);
|
132
|
-
});
|
133
|
-
// Move to the third character
|
134
|
-
await userEvent.keyboard("{ArrowRight}");
|
135
|
-
await waitFor(() => {
|
136
|
-
expect(elInput.selectionStart).toEqual(1);
|
137
|
-
expect(elInput.selectionEnd).toEqual(2);
|
138
|
-
});
|
139
|
-
await userEvent.keyboard("{ArrowRight}");
|
140
|
-
await waitFor(() => {
|
141
|
-
expect(elInput.selectionStart).toEqual(2);
|
142
|
-
expect(elInput.selectionEnd).toEqual(3);
|
143
|
-
});
|
144
|
-
expect(elInput).toHaveValue("1234");
|
145
|
-
await userEvent.keyboard("{backspace}");
|
146
|
-
expect(elInput).toHaveValue("124");
|
147
|
-
await waitFor(() => {
|
148
|
-
expect(elInput.selectionStart).toEqual(2);
|
149
|
-
expect(elInput.selectionEnd).toEqual(3);
|
150
|
-
});
|
151
|
-
// Switched to type mode
|
152
|
-
await userEvent.keyboard("{ArrowRight}");
|
153
|
-
await waitFor(() => {
|
154
|
-
expect(elInput.selectionStart).toEqual(3);
|
155
|
-
expect(elInput.selectionStart).toEqual(3);
|
156
|
-
});
|
157
|
-
// Can't move further
|
158
|
-
await userEvent.keyboard("{ArrowRight}");
|
159
|
-
await waitFor(() => {
|
160
|
-
expect(elInput.selectionStart).toEqual(3);
|
161
|
-
expect(elInput.selectionStart).toEqual(3);
|
162
|
-
});
|
163
|
-
},
|
164
|
-
};
|
165
|
-
export const className = {
|
166
|
-
name: "className, attributes",
|
167
|
-
render: () => (<div data-testid="root">
|
168
|
-
<PinField name="test-name" className="test-classname" attributes={{ id: "test-id" }} inputAttributes={{ "aria-label": "Label", id: "test-input-id" }}/>
|
169
|
-
</div>),
|
170
|
-
play: async ({ canvas }) => {
|
171
|
-
const root = canvas.getByTestId("root").firstChild;
|
172
|
-
const input = canvas.queryByLabelText("Label");
|
173
|
-
expect(root).toHaveClass("test-classname");
|
174
|
-
expect(root).toHaveAttribute("id", "test-id");
|
175
|
-
expect(input).toHaveAttribute("id", "test-input-id");
|
176
|
-
},
|
177
|
-
};
|