mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-25 21:56:08 +00:00
* feat: add base and radix docs * feat: transform code for display * fix * fix * fix * fix * fix * chore: remove claude files * fix * fix * fix * chore: run format:write * fix * feat: add more examples * fix * feat: add aspect-ratio * feat: add avatar * feat: add badge * feat: add breadcrumb * fix * feat: add button * fix * fix * fix * feat: add calendar and card * feat: add carousel * fix: chart * feat: add checkbox * feat: add collapsible * feat: add combobox * feat: add command * feat: add context menu * feat: add data-table dialog and drawer * feat: dropdown-menu * feat: add date-picker * feat: add empty * feat: add field and hover-card * fix: input * feat: add input * feat: add input-group * feat: add input-otp * feat: add item * feat: add kbd and label * feat: add menubar * feat: add native-select * feat: add more components * feat: more components * feat: more components * feat: add skeleton, slider and sonner * feat: add spinner and switch * feat: add more components * fix: tabs * fix: tabs * feat: add docs for sidebar * fix * fix * fi * docs: update * fix: create page * fix * fix * chore: add changelog * fix
80 lines
2.3 KiB
TypeScript
80 lines
2.3 KiB
TypeScript
import { Button } from "@/examples/base/ui/button"
|
|
import {
|
|
Field,
|
|
FieldDescription,
|
|
FieldGroup,
|
|
FieldLabel,
|
|
} from "@/examples/base/ui/field"
|
|
import { Input } from "@/examples/base/ui/input"
|
|
import {
|
|
Select,
|
|
SelectContent,
|
|
SelectGroup,
|
|
SelectItem,
|
|
SelectTrigger,
|
|
SelectValue,
|
|
} from "@/examples/base/ui/select"
|
|
|
|
export function InputForm() {
|
|
const countries = [
|
|
{ label: "United States", value: "us" },
|
|
{ label: "United Kingdom", value: "uk" },
|
|
{ label: "Canada", value: "ca" },
|
|
]
|
|
return (
|
|
<form className="w-full max-w-sm">
|
|
<FieldGroup>
|
|
<Field>
|
|
<FieldLabel htmlFor="form-name">Name</FieldLabel>
|
|
<Input
|
|
id="form-name"
|
|
type="text"
|
|
placeholder="Evil Rabbit"
|
|
required
|
|
/>
|
|
</Field>
|
|
<Field>
|
|
<FieldLabel htmlFor="form-email">Email</FieldLabel>
|
|
<Input id="form-email" type="email" placeholder="john@example.com" />
|
|
<FieldDescription>
|
|
We'll never share your email with anyone.
|
|
</FieldDescription>
|
|
</Field>
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<Field>
|
|
<FieldLabel htmlFor="form-phone">Phone</FieldLabel>
|
|
<Input id="form-phone" type="tel" placeholder="+1 (555) 123-4567" />
|
|
</Field>
|
|
<Field>
|
|
<FieldLabel htmlFor="form-country">Country</FieldLabel>
|
|
<Select items={countries} defaultValue="us">
|
|
<SelectTrigger id="form-country">
|
|
<SelectValue />
|
|
</SelectTrigger>
|
|
<SelectContent>
|
|
<SelectGroup>
|
|
{countries.map((country) => (
|
|
<SelectItem key={country.value} value={country.value}>
|
|
{country.label}
|
|
</SelectItem>
|
|
))}
|
|
</SelectGroup>
|
|
</SelectContent>
|
|
</Select>
|
|
</Field>
|
|
</div>
|
|
<Field>
|
|
<FieldLabel htmlFor="form-address">Address</FieldLabel>
|
|
<Input id="form-address" type="text" placeholder="123 Main St" />
|
|
</Field>
|
|
<Field orientation="horizontal">
|
|
<Button type="button" variant="outline">
|
|
Cancel
|
|
</Button>
|
|
<Button type="submit">Submit</Button>
|
|
</Field>
|
|
</FieldGroup>
|
|
</form>
|
|
)
|
|
}
|