diff --git a/apps/website/src/routes/docs/headless/select/examples/bind-open.tsx b/apps/website/src/routes/docs/headless/select/examples/bind-open.tsx index e2af01c91..cdf9560ee 100644 --- a/apps/website/src/routes/docs/headless/select/examples/bind-open.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/bind-open.tsx @@ -17,7 +17,7 @@ export default component$(() => { return ( <> - diff --git a/apps/website/src/routes/docs/headless/select/examples/controlled-value.tsx b/apps/website/src/routes/docs/headless/select/examples/controlled-value.tsx index ccff33a55..4a37a5d38 100644 --- a/apps/website/src/routes/docs/headless/select/examples/controlled-value.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/controlled-value.tsx @@ -15,13 +15,7 @@ export default component$(() => { return ( <> - diff --git a/apps/website/src/routes/docs/headless/select/examples/form.tsx b/apps/website/src/routes/docs/headless/select/examples/form.tsx index b33cc3055..416ac7e43 100644 --- a/apps/website/src/routes/docs/headless/select/examples/form.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/form.tsx @@ -15,7 +15,7 @@ export default component$(() => { return (
- diff --git a/apps/website/src/routes/docs/headless/select/examples/group.tsx b/apps/website/src/routes/docs/headless/select/examples/group.tsx index 94edba40c..084b3707b 100644 --- a/apps/website/src/routes/docs/headless/select/examples/group.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/group.tsx @@ -3,7 +3,7 @@ import { Select, SelectPopover, SelectGroup, - SelectLabel, + SelectGroupLabel, SelectListbox, SelectOption, SelectTrigger, @@ -24,13 +24,13 @@ export default component$(() => { - People + People {users.map((user) => ( {user} ))} - Animals + Animals {animals.map((animal) => ( {animal} diff --git a/apps/website/src/routes/docs/headless/select/examples/hero.tsx b/apps/website/src/routes/docs/headless/select/examples/hero.tsx index 8ae05557b..7c5c45f92 100644 --- a/apps/website/src/routes/docs/headless/select/examples/hero.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/hero.tsx @@ -1,6 +1,7 @@ import { component$, useStyles$ } from '@builder.io/qwik'; import { Select, + SelectLabel, SelectListbox, SelectOption, SelectPopover, @@ -14,7 +15,8 @@ export default component$(() => { const users = ['Tim', 'Ryan', 'Jim', 'Jessie', 'Abby']; return ( - + Logged in users diff --git a/apps/website/src/routes/docs/headless/select/examples/multiple.tsx b/apps/website/src/routes/docs/headless/select/examples/multiple.tsx new file mode 100644 index 000000000..34f878d23 --- /dev/null +++ b/apps/website/src/routes/docs/headless/select/examples/multiple.tsx @@ -0,0 +1,31 @@ +import { component$, useSignal, useStyles$ } from '@builder.io/qwik'; +import { + Select, + SelectListbox, + SelectOption, + SelectPopover, + SelectTrigger, + SelectValue, +} from '@qwik-ui/headless'; +import styles from '../snippets/select.css?inline'; + +export default component$(() => { + useStyles$(styles); + const users = ['Tim', 'Ryan', 'Jim', 'Jessie', 'Abby']; + const selected = useSignal([]); + + return ( + + ); +}); diff --git a/apps/website/src/routes/docs/headless/select/examples/scrollable.tsx b/apps/website/src/routes/docs/headless/select/examples/scrollable.tsx index f5b09d5c6..d80c564c5 100644 --- a/apps/website/src/routes/docs/headless/select/examples/scrollable.tsx +++ b/apps/website/src/routes/docs/headless/select/examples/scrollable.tsx @@ -3,7 +3,7 @@ import { Select, SelectPopover, SelectGroup, - SelectLabel, + SelectGroupLabel, SelectListbox, SelectOption, SelectTrigger, @@ -24,7 +24,7 @@ export default component$(() => { - People + People {users.map((user) => ( {user} @@ -32,7 +32,7 @@ export default component$(() => { ))} - Animals + Animals {animals.map((animal) => ( {animal} ))} diff --git a/apps/website/src/routes/docs/headless/select/index.mdx b/apps/website/src/routes/docs/headless/select/index.mdx index 603d96b67..1228b9652 100644 --- a/apps/website/src/routes/docs/headless/select/index.mdx +++ b/apps/website/src/routes/docs/headless/select/index.mdx @@ -207,6 +207,12 @@ A common use case is the addition of options dynamically. For example, an infini Clicking the `Add Users` button adds a couple new users mapped to the list. Taking this further, we could grab more data from the server and add it to the list, or even hitting a database to get more users. +### Multiple selections + + + +The `multiple` prop allows the user to select multiple options. + ## Menu behavior ### Typeahead diff --git a/apps/website/src/routes/docs/headless/select/snippets/building-blocks.tsx b/apps/website/src/routes/docs/headless/select/snippets/building-blocks.tsx index ed3b39181..9cd67f844 100644 --- a/apps/website/src/routes/docs/headless/select/snippets/building-blocks.tsx +++ b/apps/website/src/routes/docs/headless/select/snippets/building-blocks.tsx @@ -4,7 +4,7 @@ import { SelectPopover, SelectTrigger, SelectGroup, - SelectLabel, + SelectGroupLabel, SelectValue, SelectListbox, SelectOption, @@ -22,7 +22,7 @@ export default component$(() => ( {/* optional */} - group label + group label group option diff --git a/apps/website/src/routes/docs/headless/select/snippets/select.css b/apps/website/src/routes/docs/headless/select/snippets/select.css index 678dfded2..ac5cc6cd0 100644 --- a/apps/website/src/routes/docs/headless/select/snippets/select.css +++ b/apps/website/src/routes/docs/headless/select/snippets/select.css @@ -28,7 +28,7 @@ color: hsl(var(--foreground)); } -.select-label { +.select-group-label { font-size: 0.875rem; line-height: 1.25rem; color: hsla(var(--foreground) / 0.8); diff --git a/packages/kit-headless/src/components/select/hidden-select.tsx b/packages/kit-headless/src/components/select/hidden-select.tsx index 71594c353..b947a461a 100644 --- a/packages/kit-headless/src/components/select/hidden-select.tsx +++ b/packages/kit-headless/src/components/select/hidden-select.tsx @@ -55,7 +55,7 @@ export const HiddenSelect = component$( {options?.map((opt: Opt) => (