@plasmicpkgs/react-aria 0.0.118 → 0.0.119

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 (92) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contexts.d.ts +2 -1
  3. package/dist/react-aria.esm.js +13 -4
  4. package/dist/react-aria.esm.js.map +1 -1
  5. package/dist/react-aria.js +13 -4
  6. package/dist/react-aria.js.map +1 -1
  7. package/dist/utils.d.ts +5 -4
  8. package/package.json +2 -2
  9. package/skinny/contexts-5cb81c2f.esm.js.map +1 -1
  10. package/skinny/contexts-6d0cb2b1.cjs.js.map +1 -1
  11. package/skinny/contexts.d.ts +2 -1
  12. package/skinny/registerComboBox.esm.js +1 -1
  13. package/skinny/registerInput.cjs.js +1 -1
  14. package/skinny/registerInput.cjs.js.map +1 -1
  15. package/skinny/registerInput.esm.js +2 -2
  16. package/skinny/registerInput.esm.js.map +1 -1
  17. package/skinny/{registerListBox-21dc99fa.esm.js → registerListBox-0f6ebcf0.esm.js} +2 -2
  18. package/skinny/{registerListBox-21dc99fa.esm.js.map → registerListBox-0f6ebcf0.esm.js.map} +1 -1
  19. package/skinny/registerListBox.esm.js +1 -1
  20. package/skinny/registerSection.esm.js +1 -1
  21. package/skinny/registerSelect.esm.js +1 -1
  22. package/skinny/registerTextArea.cjs.js +5 -2
  23. package/skinny/registerTextArea.cjs.js.map +1 -1
  24. package/skinny/registerTextArea.esm.js +6 -3
  25. package/skinny/registerTextArea.esm.js.map +1 -1
  26. package/skinny/registerTextField.cjs.js +8 -2
  27. package/skinny/registerTextField.cjs.js.map +1 -1
  28. package/skinny/registerTextField.esm.js +8 -2
  29. package/skinny/registerTextField.esm.js.map +1 -1
  30. package/skinny/utils-fc1ddd7c.cjs.js.map +1 -1
  31. package/skinny/utils-fd88ad47.esm.js.map +1 -1
  32. package/skinny/utils.d.ts +5 -4
  33. package/skinny/registerButton.stories.cjs.js +0 -163
  34. package/skinny/registerButton.stories.cjs.js.map +0 -1
  35. package/skinny/registerButton.stories.esm.js +0 -149
  36. package/skinny/registerButton.stories.esm.js.map +0 -1
  37. package/skinny/registerCheckboxGroup.stories.cjs.js +0 -121
  38. package/skinny/registerCheckboxGroup.stories.cjs.js.map +0 -1
  39. package/skinny/registerCheckboxGroup.stories.esm.js +0 -109
  40. package/skinny/registerCheckboxGroup.stories.esm.js.map +0 -1
  41. package/skinny/registerComboBox.stories.cjs.js +0 -244
  42. package/skinny/registerComboBox.stories.cjs.js.map +0 -1
  43. package/skinny/registerComboBox.stories.esm.js +0 -230
  44. package/skinny/registerComboBox.stories.esm.js.map +0 -1
  45. package/skinny/registerDialogTrigger.stories.cjs.js +0 -458
  46. package/skinny/registerDialogTrigger.stories.cjs.js.map +0 -1
  47. package/skinny/registerDialogTrigger.stories.esm.js +0 -441
  48. package/skinny/registerDialogTrigger.stories.esm.js.map +0 -1
  49. package/skinny/registerListbox.stories.cjs.js +0 -219
  50. package/skinny/registerListbox.stories.cjs.js.map +0 -1
  51. package/skinny/registerListbox.stories.esm.js +0 -206
  52. package/skinny/registerListbox.stories.esm.js.map +0 -1
  53. package/skinny/registerModal.stories.cjs.js +0 -194
  54. package/skinny/registerModal.stories.cjs.js.map +0 -1
  55. package/skinny/registerModal.stories.esm.js +0 -181
  56. package/skinny/registerModal.stories.esm.js.map +0 -1
  57. package/skinny/registerPopover.stories.cjs.js +0 -102
  58. package/skinny/registerPopover.stories.cjs.js.map +0 -1
  59. package/skinny/registerPopover.stories.esm.js +0 -92
  60. package/skinny/registerPopover.stories.esm.js.map +0 -1
  61. package/skinny/registerRadioGroup.stories.cjs.js +0 -120
  62. package/skinny/registerRadioGroup.stories.cjs.js.map +0 -1
  63. package/skinny/registerRadioGroup.stories.esm.js +0 -108
  64. package/skinny/registerRadioGroup.stories.esm.js.map +0 -1
  65. package/skinny/registerSelect.stories.cjs.js +0 -215
  66. package/skinny/registerSelect.stories.cjs.js.map +0 -1
  67. package/skinny/registerSelect.stories.esm.js +0 -202
  68. package/skinny/registerSelect.stories.esm.js.map +0 -1
  69. package/skinny/registerSlider.stories.cjs.js +0 -165
  70. package/skinny/registerSlider.stories.cjs.js.map +0 -1
  71. package/skinny/registerSlider.stories.esm.js +0 -151
  72. package/skinny/registerSlider.stories.esm.js.map +0 -1
  73. package/skinny/registerSwitch.stories.cjs.js +0 -162
  74. package/skinny/registerSwitch.stories.cjs.js.map +0 -1
  75. package/skinny/registerSwitch.stories.esm.js +0 -148
  76. package/skinny/registerSwitch.stories.esm.js.map +0 -1
  77. package/skinny/registerTextField-common-stories.cjs.js +0 -199
  78. package/skinny/registerTextField-common-stories.cjs.js.map +0 -1
  79. package/skinny/registerTextField-common-stories.esm.js +0 -185
  80. package/skinny/registerTextField-common-stories.esm.js.map +0 -1
  81. package/skinny/registerTextField-input.stories.cjs.js +0 -54
  82. package/skinny/registerTextField-input.stories.cjs.js.map +0 -1
  83. package/skinny/registerTextField-input.stories.esm.js +0 -37
  84. package/skinny/registerTextField-input.stories.esm.js.map +0 -1
  85. package/skinny/registerTextField-textarea.stories.cjs.js +0 -55
  86. package/skinny/registerTextField-textarea.stories.cjs.js.map +0 -1
  87. package/skinny/registerTextField-textarea.stories.esm.js +0 -39
  88. package/skinny/registerTextField-textarea.stories.esm.js.map +0 -1
  89. package/skinny/registerTooltip.stories.cjs.js +0 -616
  90. package/skinny/registerTooltip.stories.cjs.js.map +0 -1
  91. package/skinny/registerTooltip.stories.esm.js +0 -596
  92. package/skinny/registerTooltip.stories.esm.js.map +0 -1
@@ -1,219 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var test = require('@storybook/test');
6
- var React = require('react');
7
- var reactAriaComponents = require('react-aria-components');
8
- var registerSection = require('./registerListBox-040b0374.cjs.js');
9
- var registerListBoxItem = require('./registerListBoxItem.cjs.js');
10
- require('./common-45acb83c.cjs.js');
11
- require('./utils-fc1ddd7c.cjs.js');
12
- require('@plasmicapp/host');
13
- require('@plasmicapp/host/registerComponent');
14
- require('./contexts-6d0cb2b1.cjs.js');
15
- require('./OptionsItemIdManager-a89a28b9.cjs.js');
16
- require('./variant-utils-0ad70db8.cjs.js');
17
- require('./registerDescription.cjs.js');
18
- require('./registerText.cjs.js');
19
-
20
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
21
-
22
- var React__default = /*#__PURE__*/_interopDefault(React);
23
-
24
- const meta = {
25
- title: "Components/BaseListBox",
26
- component: registerSection.BaseListBox,
27
- args: {
28
- onSelectionChange: test.fn()
29
- },
30
- argTypes: {
31
- selectionMode: {
32
- control: "radio",
33
- options: ["none", "single"],
34
- description: "The selection mode of the listbox"
35
- },
36
- selectedKeys: {
37
- control: "text",
38
- description: "Currently selected key(s)"
39
- },
40
- defaultSelectedKeys: {
41
- control: "text",
42
- description: "Default selected key(s)"
43
- }
44
- }
45
- };
46
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
47
- const beforeEach = async () => {
48
- await sleep(100);
49
- };
50
- const createListItems = (count) => {
51
- return Array.from({ length: count }, (_, i) => ({
52
- id: `${i + 1}`,
53
- textValue: `Item ${i + 1}`,
54
- children: `Item ${i + 1} - Description`
55
- }));
56
- };
57
- const NoSelection = {
58
- args: {
59
- selectionMode: "none",
60
- children: createListItems(3).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children))
61
- },
62
- play: async ({ canvasElement, args }) => {
63
- await beforeEach();
64
- const canvas = test.within(canvasElement);
65
- const options = await test.within(canvas.getByRole("listbox")).findAllByRole(
66
- "option"
67
- );
68
- test.expect(options).toHaveLength(3);
69
- await test.userEvent.click(options[1]);
70
- test.expect(args.onSelectionChange).not.toHaveBeenCalled();
71
- test.expect(options[0]).not.toHaveAttribute("aria-selected");
72
- options.forEach((option) => {
73
- test.expect(option).not.toHaveAttribute("aria-selected");
74
- });
75
- }
76
- };
77
- const SingleSelection = {
78
- args: {
79
- selectionMode: "single",
80
- defaultSelectedKeys: "1",
81
- children: createListItems(3).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children))
82
- },
83
- play: async ({ canvasElement }) => {
84
- await beforeEach();
85
- const canvas = test.within(canvasElement);
86
- const options = await test.within(canvas.getByRole("listbox")).findAllByRole(
87
- "option"
88
- );
89
- test.expect(options[0]).toHaveAttribute("aria-selected", "true");
90
- test.expect(options[1]).toHaveAttribute("aria-selected", "false");
91
- test.expect(options[2]).toHaveAttribute("aria-selected", "false");
92
- await test.userEvent.click(options[1]);
93
- test.expect(options[0]).toHaveAttribute("aria-selected", "false");
94
- test.expect(options[1]).toHaveAttribute("aria-selected", "true");
95
- test.expect(options[2]).toHaveAttribute("aria-selected", "false");
96
- }
97
- };
98
- const WithSections = {
99
- args: {
100
- selectionMode: "single",
101
- children: [
102
- /* @__PURE__ */ React__default.default.createElement(
103
- registerSection.BaseSection,
104
- {
105
- key: "section1",
106
- header: "Section 1",
107
- items: createListItems(2).map((item) => /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.ListBoxItem, { key: item.id, id: item.id }, item.children))
108
- }
109
- ),
110
- /* @__PURE__ */ React__default.default.createElement(
111
- registerSection.BaseSection,
112
- {
113
- key: "section2",
114
- header: "Section 2",
115
- items: createListItems(2).map((item) => /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.ListBoxItem, { key: `s2-${item.id}`, id: `s2-${item.id}` }, item.children))
116
- }
117
- )
118
- ]
119
- },
120
- play: async ({ canvasElement, args }) => {
121
- await beforeEach();
122
- const canvas = test.within(canvasElement);
123
- const options = await test.within(canvas.getByRole("listbox")).findAllByRole(
124
- "option"
125
- );
126
- let lastCallArg;
127
- options.forEach((option) => {
128
- test.expect(option).toHaveAttribute("aria-selected", "false");
129
- });
130
- await test.userEvent.click(options[0]);
131
- test.expect(options[0]).toHaveAttribute("aria-selected", "true");
132
- [options[1], options[2], options[3]].forEach((option) => {
133
- test.expect(option).toHaveAttribute("aria-selected", "false");
134
- });
135
- lastCallArg = args.onSelectionChange.mock.calls[0][0];
136
- test.expect(lastCallArg.has("1")).toBe(true);
137
- await test.userEvent.click(options[2]);
138
- test.expect(options[2]).toHaveAttribute("aria-selected", "true");
139
- [options[0], options[1], options[3]].forEach((option) => {
140
- test.expect(option).toHaveAttribute("aria-selected", "false");
141
- });
142
- test.expect(args.onSelectionChange).toHaveBeenCalledTimes(2);
143
- lastCallArg = args.onSelectionChange.mock.calls[1][0];
144
- test.expect(lastCallArg.has("s2-1")).toBe(true);
145
- }
146
- };
147
- const WithDuplicateIds = {
148
- args: {
149
- selectionMode: "single",
150
- defaultSelectedKeys: "1",
151
- children: /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, createListItems(2).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children)), createListItems(3).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children)), createListItems(1).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children)))
152
- },
153
- play: async ({ canvasElement, args }) => {
154
- await beforeEach();
155
- let lastCallArg;
156
- const canvas = test.within(canvasElement);
157
- const options = await test.within(canvas.getByRole("listbox")).findAllByRole(
158
- "option"
159
- );
160
- test.expect(options).toHaveLength(6);
161
- test.expect(options[0]).toHaveAttribute("aria-selected", "true");
162
- [1, 2, 3, 4, 5].forEach((index) => {
163
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
164
- });
165
- await test.userEvent.click(options[2]);
166
- lastCallArg = args.onSelectionChange.mock.calls[0][0];
167
- test.expect(lastCallArg.has("1 duplicate(1)")).toBe(true);
168
- test.expect(options[2]).toHaveAttribute("aria-selected", "true");
169
- [0, 1, 3, 4, 5].forEach((index) => {
170
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
171
- });
172
- await test.userEvent.click(options[3]);
173
- lastCallArg = args.onSelectionChange.mock.calls[1][0];
174
- test.expect(lastCallArg.has("2 duplicate(1)")).toBe(true);
175
- [0, 1, 2, 4, 5].forEach((index) => {
176
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
177
- });
178
- await test.userEvent.click(options[5]);
179
- lastCallArg = args.onSelectionChange.mock.calls[2][0];
180
- test.expect(lastCallArg.has("1 duplicate(2)")).toBe(true);
181
- [0, 1, 2, 3, 4].forEach((index) => {
182
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
183
- });
184
- }
185
- };
186
- const WithMissingIds = {
187
- args: {
188
- selectionMode: "single",
189
- defaultSelectedKeys: "1",
190
- children: /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, createListItems(2).map((item) => /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, { key: item.id, id: item.id }, item.children)), /* @__PURE__ */ React__default.default.createElement(registerListBoxItem.BaseListBoxItem, null, "Item with missing id"))
191
- },
192
- play: async ({ canvasElement, args }) => {
193
- await beforeEach();
194
- const canvas = test.within(canvasElement);
195
- const options = await test.within(canvas.getByRole("listbox")).findAllByRole(
196
- "option"
197
- );
198
- test.expect(options).toHaveLength(3);
199
- test.expect(options[0]).toHaveAttribute("aria-selected", "true");
200
- [1, 2].forEach((index) => {
201
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
202
- });
203
- await test.userEvent.click(options[2]);
204
- const lastCallArg = args.onSelectionChange.mock.calls[0][0];
205
- test.expect(lastCallArg.has("missing(1)")).toBe(true);
206
- test.expect(options[2]).toHaveAttribute("aria-selected", "true");
207
- [0, 1].forEach((index) => {
208
- test.expect(options[index]).toHaveAttribute("aria-selected", "false");
209
- });
210
- }
211
- };
212
-
213
- exports.NoSelection = NoSelection;
214
- exports.SingleSelection = SingleSelection;
215
- exports.WithDuplicateIds = WithDuplicateIds;
216
- exports.WithMissingIds = WithMissingIds;
217
- exports.WithSections = WithSections;
218
- exports.default = meta;
219
- //# sourceMappingURL=registerListbox.stories.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerListbox.stories.cjs.js","sources":["../src/registerListbox.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, Mock, userEvent, within } from \"@storybook/test\";\nimport React from \"react\";\nimport { ListBoxItem } from \"react-aria-components\";\nimport { BaseListBox } from \"./registerListBox\";\nimport { BaseListBoxItem } from \"./registerListBoxItem\";\nimport { BaseSection } from \"./registerSection\";\n\nconst meta: Meta<typeof BaseListBox> = {\n title: \"Components/BaseListBox\",\n component: BaseListBox,\n args: {\n onSelectionChange: fn(),\n },\n argTypes: {\n selectionMode: {\n control: \"radio\",\n options: [\"none\", \"single\"],\n description: \"The selection mode of the listbox\",\n },\n selectedKeys: {\n control: \"text\",\n description: \"Currently selected key(s)\",\n },\n defaultSelectedKeys: {\n control: \"text\",\n description: \"Default selected key(s)\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseListBox>;\n\n// TODO: Assertions may be flaky because the registeredId is set inside useEffect, so in the first render, the id is randomly generated by react-aria itself.\n// We use sleep to wait for the id to be set before asserting.\n// This is marked todo because the sleep needs to be removed in a separate PR that fixes this issue\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nconst beforeEach = async () => {\n await sleep(100);\n};\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} - Description`,\n }));\n};\n\n// Basic ListBox with no selection\nexport const NoSelection: Story = {\n args: {\n selectionMode: \"none\",\n children: createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n )),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(3);\n await userEvent.click(options[1]);\n\n expect(args.onSelectionChange).not.toHaveBeenCalled();\n\n // Verify no selection occurred by checking aria-selected attribute\n expect(options[0]).not.toHaveAttribute(\"aria-selected\");\n\n // Additional verification that none of the options are selected\n options.forEach((option) => {\n expect(option).not.toHaveAttribute(\"aria-selected\");\n });\n },\n};\n\n// ListBox with single selection\nexport const SingleSelection: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n )),\n },\n play: async ({ canvasElement }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n expect(options[1]).toHaveAttribute(\"aria-selected\", \"false\");\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"false\");\n\n await userEvent.click(options[1]);\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"false\");\n expect(options[1]).toHaveAttribute(\"aria-selected\", \"true\");\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"false\");\n },\n};\n\n// ListBox with sections\nexport const WithSections: Story = {\n args: {\n selectionMode: \"single\",\n children: [\n <BaseSection\n key=\"section1\"\n header=\"Section 1\"\n items={createListItems(2).map((item) => (\n <ListBoxItem key={item.id} id={item.id}>\n {item.children}\n </ListBoxItem>\n ))}\n />,\n <BaseSection\n key=\"section2\"\n header=\"Section 2\"\n items={createListItems(2).map((item) => (\n <ListBoxItem key={`s2-${item.id}`} id={`s2-${item.id}`}>\n {item.children}\n </ListBoxItem>\n ))}\n />,\n ],\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n let lastCallArg;\n\n options.forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n // Test selection in first section\n await userEvent.click(options[0]);\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [options[1], options[2], options[3]].forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"1\")).toBe(true);\n\n // Test selection in second section\n await userEvent.click(options[2]); // First item in second section\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [options[0], options[1], options[3]].forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n expect(args.onSelectionChange).toHaveBeenCalledTimes(2);\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[1][0];\n expect(lastCallArg.has(\"s2-1\")).toBe(true);\n },\n};\n// ListBox containing items with duplicate ids\nexport const WithDuplicateIds: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: (\n <>\n {createListItems(2).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n {createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n {createListItems(1).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n\n let lastCallArg;\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(6);\n\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [1, 2, 3, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[2]);\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"1 duplicate(1)\")).toBe(true);\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [0, 1, 3, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[3]);\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[1][0];\n expect(lastCallArg.has(\"2 duplicate(1)\")).toBe(true);\n [0, 1, 2, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[5]);\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[2][0];\n expect(lastCallArg.has(\"1 duplicate(2)\")).toBe(true);\n [0, 1, 2, 3, 4].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n },\n};\n\n// ListBox containing items with duplicate ids\nexport const WithMissingIds: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: (\n <>\n {createListItems(2).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n <BaseListBoxItem>Item with missing id</BaseListBoxItem>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(3);\n\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [1, 2].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[2]);\n\n const lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"missing(1)\")).toBe(true);\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [0, 1].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n },\n};\n"],"names":["BaseListBox","fn","React","BaseListBoxItem","within","expect","userEvent","BaseSection","ListBoxItem"],"mappings":"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"}
@@ -1,206 +0,0 @@
1
- import { fn, within, expect, userEvent } from '@storybook/test';
2
- import React from 'react';
3
- import { ListBoxItem } from 'react-aria-components';
4
- import { B as BaseListBox, a as BaseSection } from './registerListBox-21dc99fa.esm.js';
5
- import { BaseListBoxItem } from './registerListBoxItem.esm.js';
6
- import './common-616eb178.esm.js';
7
- import './utils-fd88ad47.esm.js';
8
- import '@plasmicapp/host';
9
- import '@plasmicapp/host/registerComponent';
10
- import './contexts-5cb81c2f.esm.js';
11
- import './OptionsItemIdManager-832b8cfe.esm.js';
12
- import './variant-utils-4405ebb0.esm.js';
13
- import './registerDescription.esm.js';
14
- import './registerText.esm.js';
15
-
16
- const meta = {
17
- title: "Components/BaseListBox",
18
- component: BaseListBox,
19
- args: {
20
- onSelectionChange: fn()
21
- },
22
- argTypes: {
23
- selectionMode: {
24
- control: "radio",
25
- options: ["none", "single"],
26
- description: "The selection mode of the listbox"
27
- },
28
- selectedKeys: {
29
- control: "text",
30
- description: "Currently selected key(s)"
31
- },
32
- defaultSelectedKeys: {
33
- control: "text",
34
- description: "Default selected key(s)"
35
- }
36
- }
37
- };
38
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
39
- const beforeEach = async () => {
40
- await sleep(100);
41
- };
42
- const createListItems = (count) => {
43
- return Array.from({ length: count }, (_, i) => ({
44
- id: `${i + 1}`,
45
- textValue: `Item ${i + 1}`,
46
- children: `Item ${i + 1} - Description`
47
- }));
48
- };
49
- const NoSelection = {
50
- args: {
51
- selectionMode: "none",
52
- children: createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children))
53
- },
54
- play: async ({ canvasElement, args }) => {
55
- await beforeEach();
56
- const canvas = within(canvasElement);
57
- const options = await within(canvas.getByRole("listbox")).findAllByRole(
58
- "option"
59
- );
60
- expect(options).toHaveLength(3);
61
- await userEvent.click(options[1]);
62
- expect(args.onSelectionChange).not.toHaveBeenCalled();
63
- expect(options[0]).not.toHaveAttribute("aria-selected");
64
- options.forEach((option) => {
65
- expect(option).not.toHaveAttribute("aria-selected");
66
- });
67
- }
68
- };
69
- const SingleSelection = {
70
- args: {
71
- selectionMode: "single",
72
- defaultSelectedKeys: "1",
73
- children: createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children))
74
- },
75
- play: async ({ canvasElement }) => {
76
- await beforeEach();
77
- const canvas = within(canvasElement);
78
- const options = await within(canvas.getByRole("listbox")).findAllByRole(
79
- "option"
80
- );
81
- expect(options[0]).toHaveAttribute("aria-selected", "true");
82
- expect(options[1]).toHaveAttribute("aria-selected", "false");
83
- expect(options[2]).toHaveAttribute("aria-selected", "false");
84
- await userEvent.click(options[1]);
85
- expect(options[0]).toHaveAttribute("aria-selected", "false");
86
- expect(options[1]).toHaveAttribute("aria-selected", "true");
87
- expect(options[2]).toHaveAttribute("aria-selected", "false");
88
- }
89
- };
90
- const WithSections = {
91
- args: {
92
- selectionMode: "single",
93
- children: [
94
- /* @__PURE__ */ React.createElement(
95
- BaseSection,
96
- {
97
- key: "section1",
98
- header: "Section 1",
99
- items: createListItems(2).map((item) => /* @__PURE__ */ React.createElement(ListBoxItem, { key: item.id, id: item.id }, item.children))
100
- }
101
- ),
102
- /* @__PURE__ */ React.createElement(
103
- BaseSection,
104
- {
105
- key: "section2",
106
- header: "Section 2",
107
- items: createListItems(2).map((item) => /* @__PURE__ */ React.createElement(ListBoxItem, { key: `s2-${item.id}`, id: `s2-${item.id}` }, item.children))
108
- }
109
- )
110
- ]
111
- },
112
- play: async ({ canvasElement, args }) => {
113
- await beforeEach();
114
- const canvas = within(canvasElement);
115
- const options = await within(canvas.getByRole("listbox")).findAllByRole(
116
- "option"
117
- );
118
- let lastCallArg;
119
- options.forEach((option) => {
120
- expect(option).toHaveAttribute("aria-selected", "false");
121
- });
122
- await userEvent.click(options[0]);
123
- expect(options[0]).toHaveAttribute("aria-selected", "true");
124
- [options[1], options[2], options[3]].forEach((option) => {
125
- expect(option).toHaveAttribute("aria-selected", "false");
126
- });
127
- lastCallArg = args.onSelectionChange.mock.calls[0][0];
128
- expect(lastCallArg.has("1")).toBe(true);
129
- await userEvent.click(options[2]);
130
- expect(options[2]).toHaveAttribute("aria-selected", "true");
131
- [options[0], options[1], options[3]].forEach((option) => {
132
- expect(option).toHaveAttribute("aria-selected", "false");
133
- });
134
- expect(args.onSelectionChange).toHaveBeenCalledTimes(2);
135
- lastCallArg = args.onSelectionChange.mock.calls[1][0];
136
- expect(lastCallArg.has("s2-1")).toBe(true);
137
- }
138
- };
139
- const WithDuplicateIds = {
140
- args: {
141
- selectionMode: "single",
142
- defaultSelectedKeys: "1",
143
- children: /* @__PURE__ */ React.createElement(React.Fragment, null, createListItems(2).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children)), createListItems(3).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children)), createListItems(1).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children)))
144
- },
145
- play: async ({ canvasElement, args }) => {
146
- await beforeEach();
147
- let lastCallArg;
148
- const canvas = within(canvasElement);
149
- const options = await within(canvas.getByRole("listbox")).findAllByRole(
150
- "option"
151
- );
152
- expect(options).toHaveLength(6);
153
- expect(options[0]).toHaveAttribute("aria-selected", "true");
154
- [1, 2, 3, 4, 5].forEach((index) => {
155
- expect(options[index]).toHaveAttribute("aria-selected", "false");
156
- });
157
- await userEvent.click(options[2]);
158
- lastCallArg = args.onSelectionChange.mock.calls[0][0];
159
- expect(lastCallArg.has("1 duplicate(1)")).toBe(true);
160
- expect(options[2]).toHaveAttribute("aria-selected", "true");
161
- [0, 1, 3, 4, 5].forEach((index) => {
162
- expect(options[index]).toHaveAttribute("aria-selected", "false");
163
- });
164
- await userEvent.click(options[3]);
165
- lastCallArg = args.onSelectionChange.mock.calls[1][0];
166
- expect(lastCallArg.has("2 duplicate(1)")).toBe(true);
167
- [0, 1, 2, 4, 5].forEach((index) => {
168
- expect(options[index]).toHaveAttribute("aria-selected", "false");
169
- });
170
- await userEvent.click(options[5]);
171
- lastCallArg = args.onSelectionChange.mock.calls[2][0];
172
- expect(lastCallArg.has("1 duplicate(2)")).toBe(true);
173
- [0, 1, 2, 3, 4].forEach((index) => {
174
- expect(options[index]).toHaveAttribute("aria-selected", "false");
175
- });
176
- }
177
- };
178
- const WithMissingIds = {
179
- args: {
180
- selectionMode: "single",
181
- defaultSelectedKeys: "1",
182
- children: /* @__PURE__ */ React.createElement(React.Fragment, null, createListItems(2).map((item) => /* @__PURE__ */ React.createElement(BaseListBoxItem, { key: item.id, id: item.id }, item.children)), /* @__PURE__ */ React.createElement(BaseListBoxItem, null, "Item with missing id"))
183
- },
184
- play: async ({ canvasElement, args }) => {
185
- await beforeEach();
186
- const canvas = within(canvasElement);
187
- const options = await within(canvas.getByRole("listbox")).findAllByRole(
188
- "option"
189
- );
190
- expect(options).toHaveLength(3);
191
- expect(options[0]).toHaveAttribute("aria-selected", "true");
192
- [1, 2].forEach((index) => {
193
- expect(options[index]).toHaveAttribute("aria-selected", "false");
194
- });
195
- await userEvent.click(options[2]);
196
- const lastCallArg = args.onSelectionChange.mock.calls[0][0];
197
- expect(lastCallArg.has("missing(1)")).toBe(true);
198
- expect(options[2]).toHaveAttribute("aria-selected", "true");
199
- [0, 1].forEach((index) => {
200
- expect(options[index]).toHaveAttribute("aria-selected", "false");
201
- });
202
- }
203
- };
204
-
205
- export { NoSelection, SingleSelection, WithDuplicateIds, WithMissingIds, WithSections, meta as default };
206
- //# sourceMappingURL=registerListbox.stories.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerListbox.stories.esm.js","sources":["../src/registerListbox.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, Mock, userEvent, within } from \"@storybook/test\";\nimport React from \"react\";\nimport { ListBoxItem } from \"react-aria-components\";\nimport { BaseListBox } from \"./registerListBox\";\nimport { BaseListBoxItem } from \"./registerListBoxItem\";\nimport { BaseSection } from \"./registerSection\";\n\nconst meta: Meta<typeof BaseListBox> = {\n title: \"Components/BaseListBox\",\n component: BaseListBox,\n args: {\n onSelectionChange: fn(),\n },\n argTypes: {\n selectionMode: {\n control: \"radio\",\n options: [\"none\", \"single\"],\n description: \"The selection mode of the listbox\",\n },\n selectedKeys: {\n control: \"text\",\n description: \"Currently selected key(s)\",\n },\n defaultSelectedKeys: {\n control: \"text\",\n description: \"Default selected key(s)\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseListBox>;\n\n// TODO: Assertions may be flaky because the registeredId is set inside useEffect, so in the first render, the id is randomly generated by react-aria itself.\n// We use sleep to wait for the id to be set before asserting.\n// This is marked todo because the sleep needs to be removed in a separate PR that fixes this issue\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nconst beforeEach = async () => {\n await sleep(100);\n};\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} - Description`,\n }));\n};\n\n// Basic ListBox with no selection\nexport const NoSelection: Story = {\n args: {\n selectionMode: \"none\",\n children: createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n )),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(3);\n await userEvent.click(options[1]);\n\n expect(args.onSelectionChange).not.toHaveBeenCalled();\n\n // Verify no selection occurred by checking aria-selected attribute\n expect(options[0]).not.toHaveAttribute(\"aria-selected\");\n\n // Additional verification that none of the options are selected\n options.forEach((option) => {\n expect(option).not.toHaveAttribute(\"aria-selected\");\n });\n },\n};\n\n// ListBox with single selection\nexport const SingleSelection: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n )),\n },\n play: async ({ canvasElement }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n expect(options[1]).toHaveAttribute(\"aria-selected\", \"false\");\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"false\");\n\n await userEvent.click(options[1]);\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"false\");\n expect(options[1]).toHaveAttribute(\"aria-selected\", \"true\");\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"false\");\n },\n};\n\n// ListBox with sections\nexport const WithSections: Story = {\n args: {\n selectionMode: \"single\",\n children: [\n <BaseSection\n key=\"section1\"\n header=\"Section 1\"\n items={createListItems(2).map((item) => (\n <ListBoxItem key={item.id} id={item.id}>\n {item.children}\n </ListBoxItem>\n ))}\n />,\n <BaseSection\n key=\"section2\"\n header=\"Section 2\"\n items={createListItems(2).map((item) => (\n <ListBoxItem key={`s2-${item.id}`} id={`s2-${item.id}`}>\n {item.children}\n </ListBoxItem>\n ))}\n />,\n ],\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n let lastCallArg;\n\n options.forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n // Test selection in first section\n await userEvent.click(options[0]);\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [options[1], options[2], options[3]].forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"1\")).toBe(true);\n\n // Test selection in second section\n await userEvent.click(options[2]); // First item in second section\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [options[0], options[1], options[3]].forEach((option) => {\n expect(option).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n expect(args.onSelectionChange).toHaveBeenCalledTimes(2);\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[1][0];\n expect(lastCallArg.has(\"s2-1\")).toBe(true);\n },\n};\n// ListBox containing items with duplicate ids\nexport const WithDuplicateIds: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: (\n <>\n {createListItems(2).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n {createListItems(3).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n {createListItems(1).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n\n let lastCallArg;\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(6);\n\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [1, 2, 3, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[2]);\n\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"1 duplicate(1)\")).toBe(true);\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [0, 1, 3, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[3]);\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[1][0];\n expect(lastCallArg.has(\"2 duplicate(1)\")).toBe(true);\n [0, 1, 2, 4, 5].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[5]);\n lastCallArg = (args.onSelectionChange as Mock).mock.calls[2][0];\n expect(lastCallArg.has(\"1 duplicate(2)\")).toBe(true);\n [0, 1, 2, 3, 4].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n },\n};\n\n// ListBox containing items with duplicate ids\nexport const WithMissingIds: Story = {\n args: {\n selectionMode: \"single\",\n defaultSelectedKeys: \"1\",\n children: (\n <>\n {createListItems(2).map((item) => (\n <BaseListBoxItem key={item.id} id={item.id}>\n {item.children}\n </BaseListBoxItem>\n ))}\n <BaseListBoxItem>Item with missing id</BaseListBoxItem>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n await beforeEach();\n const canvas = within(canvasElement);\n const options = await within(canvas.getByRole(\"listbox\")).findAllByRole(\n \"option\"\n );\n expect(options).toHaveLength(3);\n\n expect(options[0]).toHaveAttribute(\"aria-selected\", \"true\");\n [1, 2].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n\n await userEvent.click(options[2]);\n\n const lastCallArg = (args.onSelectionChange as Mock).mock.calls[0][0];\n expect(lastCallArg.has(\"missing(1)\")).toBe(true);\n expect(options[2]).toHaveAttribute(\"aria-selected\", \"true\");\n [0, 1].forEach((index) => {\n expect(options[index]).toHaveAttribute(\"aria-selected\", \"false\");\n });\n },\n};\n"],"names":[],"mappings":"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"}