Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Build accessible, unstyled Vue 3 components using Reka UI (formerly Radix Vue) with WAI-ARIA compliance.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
components/select.md
1# Select23Dropdown selection with grouping45**Parts:** `SelectRoot`, `SelectTrigger`, `SelectPortal`, `SelectContent`, `SelectViewport`, `SelectItem`, `SelectItemText`, `SelectItemIndicator`, `SelectGroup`, `SelectLabel`, `SelectSeparator`, `SelectArrow`, `SelectScrollUpButton`, `SelectScrollDownButton`, `SelectValue`, `SelectIcon`67## SelectRoot89### Props10| Prop | Type | Default |11|------|------|---------|12| `autocomplete` | `string` | - |13| `defaultOpen` | `boolean` | - |14| `defaultValue` | `string` | `""` |15| `dir` | `"ltr" \| "rtl"` | - |16| `disabled` | `boolean` | - |17| `modelValue` | `string` | - |18| `name` | `string` | - |19| `open` | `boolean` | - |20| `required` | `boolean` | - |2122### Emits23| Event | Payload |24|-------|---------|25| `update:modelValue` | `[value: string]` |26| `update:open` | `[value: boolean]` |2728### Slots29| Slot | Type |30|------|------|31| `modelValue` | `string` |32| `open` | `boolean` |3334## SelectTrigger3536### Props37| Prop | Type | Default |38|------|------|---------|39| `as` | `AsTag \| Component` | `"button"` |40| `asChild` | `boolean` | - |41| `disabled` | `boolean` | - |4243## SelectPortal4445### Props46| Prop | Type | Default |47|------|------|---------|48| `disabled` | `boolean` | - |49| `forceMount` | `boolean` | - |50| `to` | `string \| HTMLElement` | - |5152## SelectContent5354### Props55| Prop | Type | Default |56|------|------|---------|57| `align` | `"start" \| "center" \| "end"` | - |58| `alignOffset` | `number` | - |59| `arrowPadding` | `number` | - |60| `as` | `AsTag \| Component` | `"div"` |61| `asChild` | `boolean` | - |62| `avoidCollisions` | `boolean` | - |63| `bodyLock` | `boolean` | - |64| `collisionBoundary` | `Element \| (Element \| null)[] \| null` | - |65| `collisionPadding` | `number \| Partial<Record<"top" \| "right" \| "bott...` | - |66| `forceMount` | `boolean` | - |67| `hideWhenDetached` | `boolean` | - |68| `position` | `"popper" \| "item-aligned"` | - |69| `prioritizePosition` | `boolean` | - |70| `side` | `"top" \| "right" \| "bottom" \| "left"` | - |71| `sideOffset` | `number` | - |72| `sticky` | `"partial" \| "always"` | - |73| `updatePositionStrategy` | `"always" \| "optimized"` | - |7475### Emits76| Event | Payload |77|-------|---------|78| `closeAutoFocus` | `[event: Event]` |79| `escapeKeyDown` | `[event: KeyboardEvent]` |80| `pointerDownOutside` | `[event: PointerDownOutsideEvent]` |8182## SelectViewport8384### Props85| Prop | Type | Default |86|------|------|---------|87| `as` | `AsTag \| Component` | `"div"` |88| `asChild` | `boolean` | - |89| `nonce` | `string` | - |9091## SelectItem9293### Props94| Prop | Type | Default |95|------|------|---------|96| `as` | `AsTag \| Component` | `"div"` |97| `asChild` | `boolean` | - |98| `disabled` | `boolean` | - |99| `textValue` | `string` | - |100| `value`* | `string` | - |101102## SelectItemText103104### Props105| Prop | Type | Default |106|------|------|---------|107| `as` | `AsTag \| Component` | `"span"` |108| `asChild` | `boolean` | - |109110## SelectItemIndicator111112### Props113| Prop | Type | Default |114|------|------|---------|115| `as` | `AsTag \| Component` | `"span"` |116| `asChild` | `boolean` | - |117118## SelectGroup119120### Props121| Prop | Type | Default |122|------|------|---------|123| `as` | `AsTag \| Component` | `"div"` |124| `asChild` | `boolean` | - |125126## SelectLabel127128### Props129| Prop | Type | Default |130|------|------|---------|131| `as` | `AsTag \| Component` | `"div"` |132| `asChild` | `boolean` | - |133| `for` | `string` | - |134135## SelectSeparator136137### Props138| Prop | Type | Default |139|------|------|---------|140| `as` | `AsTag \| Component` | `"div"` |141| `asChild` | `boolean` | - |142143## SelectArrow144145### Props146| Prop | Type | Default |147|------|------|---------|148| `as` | `AsTag \| Component` | `"svg"` |149| `asChild` | `boolean` | - |150| `height` | `number` | `5` |151| `width` | `number` | `10` |152153## SelectScrollUpButton154155### Props156| Prop | Type | Default |157|------|------|---------|158| `as` | `AsTag \| Component` | `"div"` |159| `asChild` | `boolean` | - |160161## SelectScrollDownButton162163### Props164| Prop | Type | Default |165|------|------|---------|166| `as` | `AsTag \| Component` | `"div"` |167| `asChild` | `boolean` | - |168169## SelectValue170171### Props172| Prop | Type | Default |173|------|------|---------|174| `as` | `AsTag \| Component` | `"span"` |175| `asChild` | `boolean` | - |176| `placeholder` | `string` | `""` |177178## SelectIcon179180### Props181| Prop | Type | Default |182|------|------|---------|183| `as` | `AsTag \| Component` | `"span"` |184| `asChild` | `boolean` | - |185