reshaped 3.4.5 → 3.4.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.
- package/CHANGELOG.md +17 -2
- package/dist/bundle.css +1 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.js +11 -11
- package/dist/components/Autocomplete/Autocomplete.js +25 -8
- package/dist/components/Autocomplete/Autocomplete.module.css +1 -0
- package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +15 -1
- package/dist/components/Autocomplete/tests/Autocomplete.stories.js +193 -64
- package/dist/components/Avatar/Avatar.js +2 -2
- package/dist/components/Avatar/Avatar.types.d.ts +4 -1
- package/dist/components/Calendar/Calendar.module.css +1 -1
- package/dist/components/Checkbox/Checkbox.js +17 -4
- package/dist/components/Checkbox/Checkbox.module.css +1 -1
- package/dist/components/Checkbox/Checkbox.types.d.ts +1 -0
- package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +1 -0
- package/dist/components/Checkbox/tests/Checkbox.stories.js +40 -0
- package/dist/components/Dismissible/Dismissible.js +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +2 -2
- package/dist/components/FormControl/FormControlLabel.js +2 -7
- package/dist/components/Image/Image.js +4 -4
- package/dist/components/Image/Image.types.d.ts +4 -1
- package/dist/components/NumberField/NumberField.d.ts +6 -0
- package/dist/components/NumberField/NumberField.js +11 -0
- package/dist/components/NumberField/NumberField.module.css +1 -0
- package/dist/components/NumberField/NumberField.types.d.ts +19 -0
- package/dist/components/NumberField/NumberField.types.js +1 -0
- package/dist/components/NumberField/NumberFieldControlled.d.ts +6 -0
- package/dist/components/NumberField/NumberFieldControlled.js +146 -0
- package/dist/components/NumberField/NumberFieldUncontrolled.d.ts +6 -0
- package/dist/components/NumberField/NumberFieldUncontrolled.js +16 -0
- package/dist/components/NumberField/index.d.ts +2 -0
- package/dist/components/NumberField/index.js +1 -0
- package/dist/components/NumberField/tests/NumberField.stories.d.ts +29 -0
- package/dist/components/NumberField/tests/NumberField.stories.js +215 -0
- package/dist/components/PinField/PinField.module.css +1 -1
- package/dist/components/PinField/PinField.types.d.ts +1 -1
- package/dist/components/PinField/PinFieldControlled.js +1 -0
- package/dist/components/PinField/tests/PinField.stories.js +8 -0
- package/dist/components/Radio/Radio.js +11 -4
- package/dist/components/Radio/Radio.module.css +1 -1
- package/dist/components/Radio/Radio.types.d.ts +1 -0
- package/dist/components/Radio/tests/Radio.stories.d.ts +1 -0
- package/dist/components/Radio/tests/Radio.stories.js +31 -0
- package/dist/components/Select/Select.module.css +1 -1
- package/dist/components/Select/Select.types.d.ts +1 -1
- package/dist/components/Select/tests/Select.stories.js +42 -16
- package/dist/components/Switch/Switch.js +10 -4
- package/dist/components/Switch/Switch.module.css +1 -1
- package/dist/components/Switch/Switch.types.d.ts +1 -1
- package/dist/components/Switch/tests/Switch.stories.js +30 -15
- package/dist/components/TextField/TextField.js +1 -1
- package/dist/components/TextField/TextField.module.css +1 -1
- package/dist/components/TextField/TextField.types.d.ts +2 -2
- package/dist/components/TextField/index.d.ts +1 -1
- package/dist/components/TextField/tests/TextField.stories.js +4 -0
- package/dist/hooks/tests/useScrollLock.stories.d.ts +1 -0
- package/dist/hooks/tests/useScrollLock.stories.js +29 -0
- package/dist/icons/ChevronUp.d.ts +2 -0
- package/dist/icons/ChevronUp.js +5 -0
- package/dist/icons/Minus.d.ts +2 -0
- package/dist/icons/Minus.js +3 -0
- package/dist/icons/Plus.d.ts +2 -2
- package/dist/icons/Plus.js +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/utilities/scroll/lock.js +15 -7
- package/dist/utilities/scroll/lockStandard.d.ts +1 -2
- package/dist/utilities/scroll/lockStandard.js +2 -9
- package/package.json +1 -1
- package/dist/components/Autocomplete/tests/Autocomplete.test.stories.d.ts +0 -27
- package/dist/components/Autocomplete/tests/Autocomplete.test.stories.js +0 -86
@@ -1,86 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import { expect, waitFor, within, fn } from "@storybook/test";
|
3
|
-
import { Example } from "../../../utilities/storybook/index.js";
|
4
|
-
import Autocomplete from "../index.js";
|
5
|
-
import FormControl from "../../FormControl/index.js";
|
6
|
-
import { sleep } from "../../../utilities/helpers.js";
|
7
|
-
import userEvent from "@testing-library/user-event";
|
8
|
-
export default {
|
9
|
-
title: "Components/Autocomplete/tests",
|
10
|
-
component: Autocomplete,
|
11
|
-
parameters: {
|
12
|
-
iframe: {
|
13
|
-
url: "https://reshaped.so/docs/components/autocomplete",
|
14
|
-
},
|
15
|
-
chromatic: { disableSnapshot: true },
|
16
|
-
},
|
17
|
-
};
|
18
|
-
export const base = {
|
19
|
-
name: "base",
|
20
|
-
args: {
|
21
|
-
handleBackspace: fn(),
|
22
|
-
handleItemSelect: fn(),
|
23
|
-
},
|
24
|
-
render: (args) => {
|
25
|
-
const [value, setValue] = React.useState("");
|
26
|
-
return (<Example>
|
27
|
-
<Example.Item title="Base">
|
28
|
-
<FormControl>
|
29
|
-
<FormControl.Label>Food</FormControl.Label>
|
30
|
-
<Autocomplete name="fruit" placeholder="Pick your food" value={value} onChange={(args) => setValue(args.value)} onBackspace={args.handleBackspace} onItemSelect={args.handleItemSelect}>
|
31
|
-
{["Pizza", "Pie", "Ice-cream"].map((v, i) => {
|
32
|
-
return (<Autocomplete.Item key={v} value={v} data={i === 0 ? { foo: "bar" } : undefined}>
|
33
|
-
{v}
|
34
|
-
</Autocomplete.Item>);
|
35
|
-
})}
|
36
|
-
</Autocomplete>
|
37
|
-
</FormControl>
|
38
|
-
</Example.Item>
|
39
|
-
</Example>);
|
40
|
-
},
|
41
|
-
play: async ({ canvasElement, args }) => {
|
42
|
-
const canvas = within(canvasElement.ownerDocument.body);
|
43
|
-
const input = canvas.getByRole("combobox");
|
44
|
-
// Reset the focus
|
45
|
-
document.body.focus();
|
46
|
-
// Test keyboard selection after focusing the input
|
47
|
-
input.focus();
|
48
|
-
let options = [];
|
49
|
-
await waitFor(() => {
|
50
|
-
options = canvas.getAllByRole("option");
|
51
|
-
});
|
52
|
-
expect(options).toHaveLength(3);
|
53
|
-
await waitFor(() => {
|
54
|
-
expect(options[0]).toHaveAttribute("data-rs-focus");
|
55
|
-
});
|
56
|
-
expect(options[1]).not.toHaveAttribute("data-rs-focus");
|
57
|
-
await userEvent.keyboard("{ArrowDown/}");
|
58
|
-
await userEvent.keyboard("{Enter/}");
|
59
|
-
expect(input).toHaveValue("Pie");
|
60
|
-
expect(args.handleItemSelect).toHaveBeenCalledTimes(1);
|
61
|
-
expect(args.handleItemSelect).toHaveBeenCalledWith({
|
62
|
-
value: "Pie",
|
63
|
-
data: undefined,
|
64
|
-
});
|
65
|
-
// Give browser time to focus on the input
|
66
|
-
await sleep(100);
|
67
|
-
// Test click selection after opening with down arrow
|
68
|
-
await userEvent.keyboard("{ArrowDown/}");
|
69
|
-
await waitFor(() => {
|
70
|
-
options = canvas.getAllByRole("option");
|
71
|
-
});
|
72
|
-
await userEvent.click(options[0]);
|
73
|
-
expect(input).toHaveValue("Pizza");
|
74
|
-
expect(args.handleItemSelect).toHaveBeenCalledTimes(2);
|
75
|
-
expect(args.handleItemSelect).toHaveBeenCalledWith({
|
76
|
-
value: "Pizza",
|
77
|
-
data: { foo: "bar" },
|
78
|
-
});
|
79
|
-
input.focus();
|
80
|
-
await userEvent.keyboard("{Backspace/}");
|
81
|
-
await waitFor(() => {
|
82
|
-
expect(args.handleBackspace).toHaveBeenCalledTimes(1);
|
83
|
-
expect(args.handleBackspace).toHaveBeenCalledWith();
|
84
|
-
});
|
85
|
-
},
|
86
|
-
};
|