The select to use for every dropdown choice - always prefer it over NativeSelect. It is a form
select with a custom, themeable listbox, and a native prop for the platform's own picker. It takes
MenuItem children as its options, supports single and multiple
selection, and integrates with Form / FormControl context exactly like NativeSelect and
TextInput.
import { Select } from '@soroush.tech/design-system/Select'
import { MenuItem } from '@soroush.tech/design-system/MenuItem'
;<Select variant="outlined" placeholder="Pick a platform" onChange={(value) => console.log(value)}>
<MenuItem value="web">Web</MenuItem>
<MenuItem value="android">Android</MenuItem>
<MenuItem value="ios">iOS</MenuItem>
</Select>
native
native={false}(default) - renders arole="combobox"trigger and a portaledrole="listbox"popover, positioned under the trigger. Fully themeable option rows, supportsmultiple.native={true}- delegates toNativeSelect(a real<select>), deriving itsoptionsfrom theMenuItemchildren'svalue+ label. Single-select only;multipleis ignored on this path. Use this - notNativeSelectdirectly - when you want the platform's picker, or a select that works with JavaScript off.
Examples
Default
Pick a platform
<Select variant="outlined" placeholder="Pick a platform" />
Native
<Select native variant="outlined" placeholder="Pick a platform" />
Variants
outlined
default
underline
text
<Flex flexDirection="column" gap={3}> {(['outlined', 'default', 'underline', 'text'] as const).map((variant) => ( <Select key={variant} variant={variant} placeholder={variant}> {platformItems} </Select> ))} </Flex>
Sizes
sm
md
lg
<Flex gap={3} alignItems="center"> {(['sm', 'md', 'lg'] as const).map((size) => ( <Select key={size} size={size} variant="outlined" placeholder={size}> {platformItems} </Select> ))} </Flex>
Error State
Pick a platform
<Select variant="outlined" error placeholder="Pick a platform" />
With Dividers
Pick a platform
<Select variant="outlined" placeholder="Pick a platform" />
Controlled
Selected: web
Web
<ControlledSelect />
Multiple
Selected: web, ios
Web, iOS
<MultiSelect />