Skip to content

Commit 593aa80

Browse files
feat(listbox toggle, floating ui anchor additiongs, listbox wrapper): part of the autocomplete added
1 parent 99e31e6 commit 593aa80

File tree

4 files changed

+296
-73
lines changed

4 files changed

+296
-73
lines changed

packages/kit-headless/src/components/Autocomplete/autocomplete.spec.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { component$ } from '@builder.io/qwik';
22
import {
3-
Autocomplete,
3+
AutocompleteRoot,
44
AutocompleteLabel,
5+
AutocompleteTrigger,
56
AutocompleteInput,
67
AutocompleteButton,
78
AutocompleteListbox,
@@ -12,8 +13,8 @@ const RegularAutocomplete = component$(() => {
1213
return (
1314
<>
1415
<AutocompleteLabel>Label</AutocompleteLabel>
15-
<Autocomplete>
16-
<div>
16+
<AutocompleteRoot>
17+
<AutocompleteTrigger>
1718
<AutocompleteInput />
1819
<AutocompleteButton class="test">
1920
<svg
@@ -29,13 +30,13 @@ const RegularAutocomplete = component$(() => {
2930
<polyline points="6 9 12 15 18 9"></polyline>
3031
</svg>
3132
</AutocompleteButton>
32-
</div>
33+
</AutocompleteTrigger>
3334
<AutocompleteListbox>
3435
<AutocompleteOption>Option 1</AutocompleteOption>
3536
<AutocompleteOption>Option 2</AutocompleteOption>
3637
<AutocompleteOption>Option 3</AutocompleteOption>
3738
</AutocompleteListbox>
38-
</Autocomplete>
39+
</AutocompleteRoot>
3940
</>
4041
);
4142
});

packages/kit-headless/src/components/Autocomplete/autocomplete.stories.tsx

Lines changed: 47 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,66 @@
11
import { Meta, StoryObj } from 'storybook-framework-qwik';
22
import { userEvent, within } from '@storybook/testing-library';
33
import { expect } from '@storybook/jest';
4+
import { Test } from './autocomplete';
5+
6+
/*
7+
8+
Didn't finish setting up storybook in time.
9+
Want to test QwikIntrinsicElements & HTMLAttributes
10+
11+
*/
412

513
import {
6-
Autocomplete,
14+
AutocompleteRoot,
715
AutocompleteLabel,
16+
AutocompleteTrigger,
817
AutocompleteInput,
918
AutocompleteButton,
1019
AutocompleteListbox,
1120
AutocompleteOption,
21+
type AutocompleteRootProps,
1222
} from './autocomplete';
1323

14-
const meta: Meta<AutocompleteProps> = {
15-
component: Autocomplete,
24+
const meta: Meta<AutocompleteRootProps> = {
25+
args: {},
26+
component: AutocompleteRoot,
1627
};
1728

18-
type Story = StoryObj<{}>;
29+
type Story = StoryObj<AutocompleteRootProps>;
30+
31+
const RegularAutocomplete = () => (
32+
<>
33+
<AutocompleteLabel>Label</AutocompleteLabel>
34+
<AutocompleteRoot>
35+
<AutocompleteTrigger>
36+
<AutocompleteInput />
37+
<AutocompleteButton class="test" onClick$={() => console.log('hi')}>
38+
<svg
39+
xmlns="http://www.w3.org/2000/svg"
40+
viewBox="0 0 24 24"
41+
fill="none"
42+
stroke="currentColor"
43+
stroke-width="2"
44+
stroke-linecap="round"
45+
stroke-linejoin="round"
46+
style="width: 20px; height: 20px;"
47+
>
48+
<polyline points="6 9 12 15 18 9"></polyline>
49+
</svg>
50+
</AutocompleteButton>
51+
</AutocompleteTrigger>
52+
<AutocompleteListbox>
53+
<AutocompleteOption>Option 1</AutocompleteOption>
54+
<AutocompleteOption>Option 2</AutocompleteOption>
55+
<AutocompleteOption>Option 3</AutocompleteOption>
56+
</AutocompleteListbox>
57+
</AutocompleteRoot>
58+
</>
59+
);
1960

2061
export const Primary: Story = {
21-
args: {},
22-
render: (args) => (
23-
<>
24-
<AutocompleteLabel>Label</AutocompleteLabel>
25-
<Autocomplete>
26-
<div>
27-
<AutocompleteInput />
28-
<AutocompleteButton class="test">
29-
<svg
30-
xmlns="http://www.w3.org/2000/svg"
31-
viewBox="0 0 24 24"
32-
fill="none"
33-
stroke="currentColor"
34-
stroke-width="2"
35-
stroke-linecap="round"
36-
stroke-linejoin="round"
37-
style="width: 20px; height: 20px;"
38-
>
39-
<polyline points="6 9 12 15 18 9"></polyline>
40-
</svg>
41-
</AutocompleteButton>
42-
</div>
43-
<AutocompleteListbox>
44-
<AutocompleteOption>Option 1</AutocompleteOption>
45-
<AutocompleteOption>Option 2</AutocompleteOption>
46-
<AutocompleteOption>Option 3</AutocompleteOption>
47-
</AutocompleteListbox>
48-
</Autocomplete>
49-
</>
50-
),
51-
play: ({ canvasElement, args }) => {
62+
render: () => RegularAutocomplete(),
63+
play: ({ canvasElement }) => {
5264
const canvas = within(canvasElement);
5365
},
5466
};

0 commit comments

Comments
 (0)