@plasmicpkgs/react-aria 0.0.118 → 0.0.120
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/dist/.tsbuildinfo +1 -1
- package/dist/contexts.d.ts +2 -1
- package/dist/react-aria.esm.js +13 -4
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js +13 -4
- package/dist/react-aria.js.map +1 -1
- package/dist/utils.d.ts +5 -4
- package/package.json +2 -2
- package/skinny/contexts-5cb81c2f.esm.js.map +1 -1
- package/skinny/contexts-6d0cb2b1.cjs.js.map +1 -1
- package/skinny/contexts.d.ts +2 -1
- package/skinny/registerComboBox.esm.js +1 -1
- package/skinny/registerInput.cjs.js +1 -1
- package/skinny/registerInput.cjs.js.map +1 -1
- package/skinny/registerInput.esm.js +2 -2
- package/skinny/registerInput.esm.js.map +1 -1
- package/skinny/{registerListBox-21dc99fa.esm.js → registerListBox-0f6ebcf0.esm.js} +2 -2
- package/skinny/{registerListBox-21dc99fa.esm.js.map → registerListBox-0f6ebcf0.esm.js.map} +1 -1
- package/skinny/registerListBox.esm.js +1 -1
- package/skinny/registerSection.esm.js +1 -1
- package/skinny/registerSelect.esm.js +1 -1
- package/skinny/registerTextArea.cjs.js +5 -2
- package/skinny/registerTextArea.cjs.js.map +1 -1
- package/skinny/registerTextArea.esm.js +6 -3
- package/skinny/registerTextArea.esm.js.map +1 -1
- package/skinny/registerTextField.cjs.js +8 -2
- package/skinny/registerTextField.cjs.js.map +1 -1
- package/skinny/registerTextField.esm.js +8 -2
- package/skinny/registerTextField.esm.js.map +1 -1
- package/skinny/utils-fc1ddd7c.cjs.js.map +1 -1
- package/skinny/utils-fd88ad47.esm.js.map +1 -1
- package/skinny/utils.d.ts +5 -4
- package/skinny/registerButton.stories.cjs.js +0 -163
- package/skinny/registerButton.stories.cjs.js.map +0 -1
- package/skinny/registerButton.stories.esm.js +0 -149
- package/skinny/registerButton.stories.esm.js.map +0 -1
- package/skinny/registerCheckboxGroup.stories.cjs.js +0 -121
- package/skinny/registerCheckboxGroup.stories.cjs.js.map +0 -1
- package/skinny/registerCheckboxGroup.stories.esm.js +0 -109
- package/skinny/registerCheckboxGroup.stories.esm.js.map +0 -1
- package/skinny/registerComboBox.stories.cjs.js +0 -244
- package/skinny/registerComboBox.stories.cjs.js.map +0 -1
- package/skinny/registerComboBox.stories.esm.js +0 -230
- package/skinny/registerComboBox.stories.esm.js.map +0 -1
- package/skinny/registerDialogTrigger.stories.cjs.js +0 -458
- package/skinny/registerDialogTrigger.stories.cjs.js.map +0 -1
- package/skinny/registerDialogTrigger.stories.esm.js +0 -441
- package/skinny/registerDialogTrigger.stories.esm.js.map +0 -1
- package/skinny/registerListbox.stories.cjs.js +0 -219
- package/skinny/registerListbox.stories.cjs.js.map +0 -1
- package/skinny/registerListbox.stories.esm.js +0 -206
- package/skinny/registerListbox.stories.esm.js.map +0 -1
- package/skinny/registerModal.stories.cjs.js +0 -194
- package/skinny/registerModal.stories.cjs.js.map +0 -1
- package/skinny/registerModal.stories.esm.js +0 -181
- package/skinny/registerModal.stories.esm.js.map +0 -1
- package/skinny/registerPopover.stories.cjs.js +0 -102
- package/skinny/registerPopover.stories.cjs.js.map +0 -1
- package/skinny/registerPopover.stories.esm.js +0 -92
- package/skinny/registerPopover.stories.esm.js.map +0 -1
- package/skinny/registerRadioGroup.stories.cjs.js +0 -120
- package/skinny/registerRadioGroup.stories.cjs.js.map +0 -1
- package/skinny/registerRadioGroup.stories.esm.js +0 -108
- package/skinny/registerRadioGroup.stories.esm.js.map +0 -1
- package/skinny/registerSelect.stories.cjs.js +0 -215
- package/skinny/registerSelect.stories.cjs.js.map +0 -1
- package/skinny/registerSelect.stories.esm.js +0 -202
- package/skinny/registerSelect.stories.esm.js.map +0 -1
- package/skinny/registerSlider.stories.cjs.js +0 -165
- package/skinny/registerSlider.stories.cjs.js.map +0 -1
- package/skinny/registerSlider.stories.esm.js +0 -151
- package/skinny/registerSlider.stories.esm.js.map +0 -1
- package/skinny/registerSwitch.stories.cjs.js +0 -162
- package/skinny/registerSwitch.stories.cjs.js.map +0 -1
- package/skinny/registerSwitch.stories.esm.js +0 -148
- package/skinny/registerSwitch.stories.esm.js.map +0 -1
- package/skinny/registerTextField-common-stories.cjs.js +0 -199
- package/skinny/registerTextField-common-stories.cjs.js.map +0 -1
- package/skinny/registerTextField-common-stories.esm.js +0 -185
- package/skinny/registerTextField-common-stories.esm.js.map +0 -1
- package/skinny/registerTextField-input.stories.cjs.js +0 -54
- package/skinny/registerTextField-input.stories.cjs.js.map +0 -1
- package/skinny/registerTextField-input.stories.esm.js +0 -37
- package/skinny/registerTextField-input.stories.esm.js.map +0 -1
- package/skinny/registerTextField-textarea.stories.cjs.js +0 -55
- package/skinny/registerTextField-textarea.stories.cjs.js.map +0 -1
- package/skinny/registerTextField-textarea.stories.esm.js +0 -39
- package/skinny/registerTextField-textarea.stories.esm.js.map +0 -1
- package/skinny/registerTooltip.stories.cjs.js +0 -616
- package/skinny/registerTooltip.stories.cjs.js.map +0 -1
- package/skinny/registerTooltip.stories.esm.js +0 -596
- package/skinny/registerTooltip.stories.esm.js.map +0 -1
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { PlasmicCanvasContext } from '@plasmicapp/host';
|
|
2
|
-
import { fn, within, expect, userEvent, waitFor } from '@storybook/test';
|
|
3
|
-
import React, { useState, useEffect } from 'react';
|
|
4
|
-
import { BaseButton } from './registerButton.esm.js';
|
|
5
|
-
import { BaseComboBox } from './registerComboBox.esm.js';
|
|
6
|
-
import { BaseInput } from './registerInput.esm.js';
|
|
7
|
-
import { BaseLabel } from './registerLabel.esm.js';
|
|
8
|
-
import { B as BaseListBox } from './registerListBox-21dc99fa.esm.js';
|
|
9
|
-
import { BaseListBoxItem } from './registerListBoxItem.esm.js';
|
|
10
|
-
import { BasePopover } from './registerPopover.esm.js';
|
|
11
|
-
import 'react-aria';
|
|
12
|
-
import 'react-aria-components';
|
|
13
|
-
import './common-616eb178.esm.js';
|
|
14
|
-
import './utils-fd88ad47.esm.js';
|
|
15
|
-
import '@plasmicapp/host/registerComponent';
|
|
16
|
-
import './variant-utils-4405ebb0.esm.js';
|
|
17
|
-
import './contexts-5cb81c2f.esm.js';
|
|
18
|
-
import './OptionsItemIdManager-832b8cfe.esm.js';
|
|
19
|
-
import './registerDescription.esm.js';
|
|
20
|
-
import './registerText.esm.js';
|
|
21
|
-
import '@react-aria/utils';
|
|
22
|
-
|
|
23
|
-
var __defProp = Object.defineProperty;
|
|
24
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
25
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
26
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
27
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
28
|
-
var __spreadValues = (a, b) => {
|
|
29
|
-
for (var prop in b || (b = {}))
|
|
30
|
-
if (__hasOwnProp.call(b, prop))
|
|
31
|
-
__defNormalProp(a, prop, b[prop]);
|
|
32
|
-
if (__getOwnPropSymbols)
|
|
33
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
34
|
-
if (__propIsEnum.call(b, prop))
|
|
35
|
-
__defNormalProp(a, prop, b[prop]);
|
|
36
|
-
}
|
|
37
|
-
return a;
|
|
38
|
-
};
|
|
39
|
-
var __objRest = (source, exclude) => {
|
|
40
|
-
var target = {};
|
|
41
|
-
for (var prop in source)
|
|
42
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
43
|
-
target[prop] = source[prop];
|
|
44
|
-
if (source != null && __getOwnPropSymbols)
|
|
45
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
46
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
47
|
-
target[prop] = source[prop];
|
|
48
|
-
}
|
|
49
|
-
return target;
|
|
50
|
-
};
|
|
51
|
-
const meta = {
|
|
52
|
-
title: "Components/BaseComboBox",
|
|
53
|
-
component: BaseComboBox,
|
|
54
|
-
args: {
|
|
55
|
-
onSelectionChange: fn(),
|
|
56
|
-
onOpenChange: fn()
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const createListItems = (count) => {
|
|
60
|
-
return Array.from({ length: count }, (_, i) => ({
|
|
61
|
-
id: `${i + 1}`,
|
|
62
|
-
textValue: `Item ${i + 1}`,
|
|
63
|
-
children: `Item ${i + 1}`
|
|
64
|
-
}));
|
|
65
|
-
};
|
|
66
|
-
const BoilerplateCombobox = ({ children }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(BaseLabel, null, "Choose an option"), /* @__PURE__ */ React.createElement(BaseInput, null), /* @__PURE__ */ React.createElement(BaseButton, null, "\u25BC"), /* @__PURE__ */ React.createElement(BasePopover, null, /* @__PURE__ */ React.createElement(BaseListBox, null, children)));
|
|
67
|
-
const Basic = {
|
|
68
|
-
args: {
|
|
69
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)))
|
|
70
|
-
},
|
|
71
|
-
play: async ({ canvasElement, args }) => {
|
|
72
|
-
const canvas = within(canvasElement);
|
|
73
|
-
const doc = within(document.body);
|
|
74
|
-
const input = canvas.getByRole("combobox");
|
|
75
|
-
const button = canvas.getByText("\u25BC");
|
|
76
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
77
|
-
await userEvent.click(button);
|
|
78
|
-
const options = await within(doc.getByRole("listbox")).findAllByRole(
|
|
79
|
-
"option"
|
|
80
|
-
);
|
|
81
|
-
expect(options).toHaveLength(3);
|
|
82
|
-
await userEvent.click(options[1]);
|
|
83
|
-
expect(input).toHaveValue("Item 2");
|
|
84
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
85
|
-
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
86
|
-
expect(args.onSelectionChange).toHaveBeenCalledOnce();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
const WithTyping = {
|
|
90
|
-
args: {
|
|
91
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)), createListItems(1).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: `${item.textValue} dup`, id: item.id }, item.children, " dup")))
|
|
92
|
-
},
|
|
93
|
-
play: async ({ canvasElement, args }) => {
|
|
94
|
-
const canvas = within(canvasElement);
|
|
95
|
-
const doc = within(document.body);
|
|
96
|
-
const input = canvas.getByRole("combobox");
|
|
97
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
98
|
-
await userEvent.type(input, "Item 1{ArrowDown}{ArrowDown}{Enter}");
|
|
99
|
-
expect(input).toHaveValue("Item 1 dup");
|
|
100
|
-
await userEvent.type(input, "{backspace}{backspace}{backspace}{backspace}");
|
|
101
|
-
expect(input).toHaveValue("Item 1");
|
|
102
|
-
expect(
|
|
103
|
-
within(doc.getByRole("listbox")).getAllByRole("option")
|
|
104
|
-
).toHaveLength(2);
|
|
105
|
-
await userEvent.tab();
|
|
106
|
-
expect(input).toHaveValue("Item 1 dup");
|
|
107
|
-
expect(args.onOpenChange).toHaveBeenCalledTimes(4);
|
|
108
|
-
expect(args.onSelectionChange).toHaveBeenCalledTimes(1);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
const WithDefaultSelection = {
|
|
112
|
-
args: {
|
|
113
|
-
defaultSelectedKey: "3",
|
|
114
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)))
|
|
115
|
-
},
|
|
116
|
-
play: async ({ canvasElement }) => {
|
|
117
|
-
const canvas = within(canvasElement);
|
|
118
|
-
const doc = within(document.body);
|
|
119
|
-
const input = canvas.getByRole("combobox");
|
|
120
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
121
|
-
await waitFor(() => expect(input).toHaveValue("Item 3"));
|
|
122
|
-
await userEvent.click(canvas.getByText("\u25BC"));
|
|
123
|
-
const options = within(doc.getByRole("listbox")).getAllByRole("option");
|
|
124
|
-
await userEvent.click(options[1]);
|
|
125
|
-
expect(input).toHaveValue("Item 2");
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
const Disabled = {
|
|
129
|
-
args: {
|
|
130
|
-
defaultSelectedKey: "3",
|
|
131
|
-
isDisabled: true,
|
|
132
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)))
|
|
133
|
-
},
|
|
134
|
-
play: async ({ canvasElement, args }) => {
|
|
135
|
-
const canvas = within(canvasElement);
|
|
136
|
-
const doc = within(document.body);
|
|
137
|
-
const input = canvas.getByRole("combobox");
|
|
138
|
-
const button = canvas.getByText("\u25BC");
|
|
139
|
-
expect(input).toBeDisabled();
|
|
140
|
-
expect(button).toBeDisabled();
|
|
141
|
-
await waitFor(() => expect(input).toHaveValue("Item 3"));
|
|
142
|
-
expect(input).toHaveValue("Item 3");
|
|
143
|
-
await userEvent.click(button);
|
|
144
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
145
|
-
await userEvent.type(input, "{Backspace}{ArrowDown}{Enter}");
|
|
146
|
-
expect(input).toHaveValue("Item 3");
|
|
147
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
148
|
-
expect(args.onOpenChange).not.toHaveBeenCalled();
|
|
149
|
-
expect(args.onSelectionChange).not.toHaveBeenCalled();
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const WithDisabledOptions = {
|
|
153
|
-
args: {
|
|
154
|
-
disabledKeys: ["1"],
|
|
155
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)))
|
|
156
|
-
},
|
|
157
|
-
play: async ({ canvasElement, args }) => {
|
|
158
|
-
const canvas = within(canvasElement);
|
|
159
|
-
const doc = within(document.body);
|
|
160
|
-
const input = canvas.getByRole("combobox");
|
|
161
|
-
const button = canvas.getByText("\u25BC");
|
|
162
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
163
|
-
expect(input).toHaveValue("");
|
|
164
|
-
await userEvent.click(button);
|
|
165
|
-
expect(args.onOpenChange).toHaveBeenCalledOnce();
|
|
166
|
-
const listbox = await doc.findByRole("listbox");
|
|
167
|
-
const options = await within(listbox).findAllByRole("option");
|
|
168
|
-
expect(options).toHaveLength(3);
|
|
169
|
-
await userEvent.click(options[0]);
|
|
170
|
-
expect(args.onOpenChange).toHaveBeenCalledOnce();
|
|
171
|
-
expect(args.onSelectionChange).not.toHaveBeenCalled();
|
|
172
|
-
expect(input).toHaveValue("");
|
|
173
|
-
await userEvent.click(options[1]);
|
|
174
|
-
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
175
|
-
expect(args.onSelectionChange).toHaveBeenCalledOnce();
|
|
176
|
-
expect(input).toHaveValue("Item 2");
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
const SelectedInCanvas = {
|
|
180
|
-
args: {
|
|
181
|
-
children: /* @__PURE__ */ React.createElement(BoilerplateCombobox, null, createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { textValue: item.textValue, id: item.id }, item.children)))
|
|
182
|
-
},
|
|
183
|
-
render: (_a) => {
|
|
184
|
-
var _b = _a, args = __objRest(_b, ["__plasmic_selection_prop__"]);
|
|
185
|
-
const [selected, setSelected] = useState(false);
|
|
186
|
-
useEffect(() => {
|
|
187
|
-
setTimeout(() => {
|
|
188
|
-
setSelected(true);
|
|
189
|
-
}, 1e3);
|
|
190
|
-
}, []);
|
|
191
|
-
return (
|
|
192
|
-
// Simulate Plasmic canvas envirnment
|
|
193
|
-
/* @__PURE__ */ React.createElement(
|
|
194
|
-
PlasmicCanvasContext.Provider,
|
|
195
|
-
{
|
|
196
|
-
value: {
|
|
197
|
-
componentName: "test",
|
|
198
|
-
globalVariants: {}
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
/* @__PURE__ */ React.createElement(
|
|
202
|
-
BaseComboBox,
|
|
203
|
-
__spreadValues({
|
|
204
|
-
__plasmic_selection_prop__: {
|
|
205
|
-
isSelected: selected
|
|
206
|
-
}
|
|
207
|
-
}, args)
|
|
208
|
-
)
|
|
209
|
-
)
|
|
210
|
-
);
|
|
211
|
-
},
|
|
212
|
-
play: async () => {
|
|
213
|
-
const doc = within(document.body);
|
|
214
|
-
await waitFor(
|
|
215
|
-
() => {
|
|
216
|
-
expect(doc.queryByRole("listbox")).not.toBeInTheDocument();
|
|
217
|
-
},
|
|
218
|
-
{ timeout: 100 }
|
|
219
|
-
);
|
|
220
|
-
await waitFor(
|
|
221
|
-
() => {
|
|
222
|
-
expect(doc.queryByRole("listbox")).toBeInTheDocument();
|
|
223
|
-
},
|
|
224
|
-
{ timeout: 1100 }
|
|
225
|
-
);
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
export { Basic, Disabled, SelectedInCanvas, WithDefaultSelection, WithDisabledOptions, WithTyping, meta as default };
|
|
230
|
-
//# sourceMappingURL=registerComboBox.stories.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerComboBox.stories.esm.js","sources":["../src/registerComboBox.stories.tsx"],"sourcesContent":["import { PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React, { useEffect, useState } from \"react\";\nimport { BaseButton } from \"./registerButton\";\nimport { BaseComboBox } from \"./registerComboBox\";\nimport { BaseInput } from \"./registerInput\";\nimport { BaseLabel } from \"./registerLabel\";\nimport { BaseListBox } from \"./registerListBox\";\nimport { BaseListBoxItem } from \"./registerListBoxItem\";\nimport { BasePopover } from \"./registerPopover\";\n\nconst meta: Meta<typeof BaseComboBox> = {\n title: \"Components/BaseComboBox\",\n component: BaseComboBox,\n args: {\n onSelectionChange: fn(),\n onOpenChange: fn(),\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseComboBox>;\n\n// Helper function to create list items\nconst createListItems = (count: number) => {\n return Array.from({ length: count }, (_, i) => ({\n id: `${i + 1}`,\n textValue: `Item ${i + 1}`,\n children: `Item ${i + 1}`,\n }));\n};\n\nconst BoilerplateCombobox = ({ children }: { children: React.ReactNode }) => (\n <>\n <BaseLabel>Choose an option</BaseLabel>\n <BaseInput />\n <BaseButton>▼</BaseButton>\n <BasePopover>\n <BaseListBox>{children}</BaseListBox>\n </BasePopover>\n </>\n);\n\nexport const Basic: Story = {\n args: {\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n // Get the button and input\n const input = canvas.getByRole(\"combobox\");\n const button = canvas.getByText(\"▼\");\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n // Open the combobox\n await userEvent.click(button);\n\n // Ensure that clicking the button shows all available options, regardless of the input value\n const options = await within(doc.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(3);\n\n // Select an option\n await userEvent.click(options[1]);\n // Check that the input value is updated\n expect(input).toHaveValue(\"Item 2\");\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n // Check that the onOpenChange and onSelectionChange are called as expected\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n expect(args.onSelectionChange).toHaveBeenCalledOnce();\n },\n};\n\nexport const WithTyping: Story = {\n args: {\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n {createListItems(1).map((item) => (\n <BaseListBoxItem textValue={`${item.textValue} dup`} id={item.id}>\n {item.children} dup\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n // Get the button and input\n const input = canvas.getByRole(\"combobox\");\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n // Simulate keyboard interaction and select an option\n await userEvent.type(input, \"Item 1{ArrowDown}{ArrowDown}{Enter}\");\n expect(input).toHaveValue(\"Item 1 dup\");\n\n // confirm that the input can't retain a value that is not selected from the listbox\n await userEvent.type(input, \"{backspace}{backspace}{backspace}{backspace}\");\n expect(input).toHaveValue(\"Item 1\");\n expect(\n within(doc.getByRole(\"listbox\")).getAllByRole(\"option\")\n ).toHaveLength(2);\n\n await userEvent.tab(); // simulates input blur\n expect(input).toHaveValue(\"Item 1 dup\");\n\n // Check that the onOpenChange and onSelectionChange are called as expected\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n expect(args.onSelectionChange).toHaveBeenCalledTimes(1);\n },\n};\n\nexport const WithDefaultSelection: Story = {\n args: {\n defaultSelectedKey: \"3\",\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n // Get the button and input\n const input = canvas.getByRole(\"combobox\");\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n await waitFor(() => expect(input).toHaveValue(\"Item 3\")); // via defaultSelectedKey\n\n // Open the combobox\n await userEvent.click(canvas.getByText(\"▼\"));\n\n const options = within(doc.getByRole(\"listbox\")).getAllByRole(\"option\");\n await userEvent.click(options[1]);\n\n expect(input).toHaveValue(\"Item 2\");\n },\n};\n\nexport const Disabled: Story = {\n args: {\n defaultSelectedKey: \"3\",\n isDisabled: true,\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n // Get the button and input\n const input = canvas.getByRole(\"combobox\");\n const button = canvas.getByText(\"▼\");\n\n // Verify disabled state\n expect(input).toBeDisabled();\n expect(button).toBeDisabled();\n\n await waitFor(() => expect(input).toHaveValue(\"Item 3\")); // via defaultSelectedKey\n expect(input).toHaveValue(\"Item 3\"); // via defaultSelectedKey\n\n // Open the combobox\n await userEvent.click(button);\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n await userEvent.type(input, \"{Backspace}{ArrowDown}{Enter}\");\n expect(input).toHaveValue(\"Item 3\"); // unchanged\n\n // Check that listbox is not in the document\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n\n expect(args.onOpenChange).not.toHaveBeenCalled();\n expect(args.onSelectionChange).not.toHaveBeenCalled();\n },\n};\n\nexport const WithDisabledOptions: Story = {\n args: {\n disabledKeys: [\"1\"],\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n // Get the button and input\n const input = canvas.getByRole(\"combobox\");\n const button = canvas.getByText(\"▼\");\n\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n expect(input).toHaveValue(\"\");\n\n // Open the combobox\n await userEvent.click(button);\n expect(args.onOpenChange).toHaveBeenCalledOnce();\n\n // Ensure that clicking the button shows all available options, regardless of the input value\n const listbox = await doc.findByRole(\"listbox\");\n const options = await within(listbox).findAllByRole(\"option\");\n expect(options).toHaveLength(3);\n\n await userEvent.click(options[0]);\n expect(args.onOpenChange).toHaveBeenCalledOnce(); // the popover does not close when selecting a disabled option\n expect(args.onSelectionChange).not.toHaveBeenCalled(); // the combobox state does not change when selecting a disabled option\n expect(input).toHaveValue(\"\");\n\n await userEvent.click(options[1]); // Other items stay selectable\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n expect(args.onSelectionChange).toHaveBeenCalledOnce();\n\n expect(input).toHaveValue(\"Item 2\");\n },\n};\n\nexport const SelectedInCanvas: Story = {\n args: {\n children: (\n <BoilerplateCombobox>\n {createListItems(3).map((item) => (\n <BaseListBoxItem textValue={item.textValue} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </BoilerplateCombobox>\n ),\n },\n render: ({ __plasmic_selection_prop__, ...args }) => {\n const [selected, setSelected] = useState(false);\n useEffect(() => {\n setTimeout(() => {\n setSelected(true);\n }, 1000);\n }, []);\n\n return (\n // Simulate Plasmic canvas envirnment\n <PlasmicCanvasContext.Provider\n value={{\n componentName: \"test\",\n globalVariants: {},\n }}\n >\n <BaseComboBox\n // Simulate node selection in Plasmic canvas\n __plasmic_selection_prop__={{\n isSelected: selected,\n }}\n {...args}\n />\n </PlasmicCanvasContext.Provider>\n );\n },\n play: async () => {\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n await waitFor(\n () => {\n expect(doc.queryByRole(\"listbox\")).not.toBeInTheDocument();\n },\n { timeout: 100 }\n );\n\n await waitFor(\n () => {\n expect(doc.queryByRole(\"listbox\")).toBeInTheDocument();\n },\n { timeout: 1100 }\n );\n },\n};\n"],"names":[],"mappings":"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"}
|