mirror of
https://github.com/hanzoai/shadcn.git
synced 2026-10-30 18:22:59 +00:00
Upstream sync from shadcn-ui/ui (1686 commits since last merge base). Key changes: - packages/shadcn upgraded to 4.1.0 (CLI font transformers, scaffold from github, chart colors) - apps/v4 replaces apps/www as the primary docs/registry app - Font system: 25+ heading font registries, font markers utility, @supports override - Chart improvements: recharts v3 compat, radial chart fixes - templates/ updated with monorepo variants (astro, vite, react-router, start) - skills/shadcn AI skill definitions added - deprecated/ removed (auth, auth-firebase, cli, www) Preserved Hanzo-only paths: app/, pkg/, demo/, docs/, template/next/
123 lines
4.2 KiB
TypeScript
123 lines
4.2 KiB
TypeScript
"use client"
|
|
|
|
import {
|
|
Example,
|
|
ExampleWrapper,
|
|
} from "@/registry/bases/base/components/example"
|
|
import { Button } from "@/registry/bases/base/ui/button"
|
|
import {
|
|
Drawer,
|
|
DrawerClose,
|
|
DrawerContent,
|
|
DrawerDescription,
|
|
DrawerFooter,
|
|
DrawerHeader,
|
|
DrawerTitle,
|
|
DrawerTrigger,
|
|
} from "@/registry/bases/base/ui/drawer"
|
|
|
|
export default function DrawerExample() {
|
|
return (
|
|
<ExampleWrapper>
|
|
<DrawerScrollableContent />
|
|
<DrawerWithSides />
|
|
</ExampleWrapper>
|
|
)
|
|
}
|
|
|
|
const DRAWER_SIDES = ["top", "right", "bottom", "left"] as const
|
|
|
|
function DrawerWithSides() {
|
|
return (
|
|
<Example title="Sides">
|
|
<div className="flex flex-wrap gap-2">
|
|
{DRAWER_SIDES.map((side) => (
|
|
<Drawer
|
|
key={side}
|
|
direction={
|
|
side === "bottom" ? undefined : (side as "top" | "right" | "left")
|
|
}
|
|
>
|
|
<DrawerTrigger asChild>
|
|
<Button variant="outline" className="capitalize">
|
|
{side}
|
|
</Button>
|
|
</DrawerTrigger>
|
|
<DrawerContent className="data-[vaul-drawer-direction=bottom]:max-h-[50vh] data-[vaul-drawer-direction=top]:max-h-[50vh]">
|
|
<DrawerHeader>
|
|
<DrawerTitle>Move Goal</DrawerTitle>
|
|
<DrawerDescription>
|
|
Set your daily activity goal.
|
|
</DrawerDescription>
|
|
</DrawerHeader>
|
|
<div className="no-scrollbar overflow-y-auto px-4">
|
|
{Array.from({ length: 10 }).map((_, index) => (
|
|
<p
|
|
key={index}
|
|
className="mb-4 leading-normal style-lyra:mb-2 style-lyra:leading-relaxed"
|
|
>
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
|
|
do eiusmod tempor incididunt ut labore et dolore magna
|
|
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
|
|
ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
Duis aute irure dolor in reprehenderit in voluptate velit
|
|
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
|
occaecat cupidatat non proident, sunt in culpa qui officia
|
|
deserunt mollit anim id est laborum.
|
|
</p>
|
|
))}
|
|
</div>
|
|
<DrawerFooter>
|
|
<Button>Submit</Button>
|
|
<DrawerClose asChild>
|
|
<Button variant="outline">Cancel</Button>
|
|
</DrawerClose>
|
|
</DrawerFooter>
|
|
</DrawerContent>
|
|
</Drawer>
|
|
))}
|
|
</div>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function DrawerScrollableContent() {
|
|
return (
|
|
<Example title="Scrollable Content">
|
|
<Drawer direction="right">
|
|
<DrawerTrigger asChild>
|
|
<Button variant="outline">Scrollable Content</Button>
|
|
</DrawerTrigger>
|
|
<DrawerContent>
|
|
<DrawerHeader>
|
|
<DrawerTitle>Move Goal</DrawerTitle>
|
|
<DrawerDescription>Set your daily activity goal.</DrawerDescription>
|
|
</DrawerHeader>
|
|
<div className="no-scrollbar overflow-y-auto px-4">
|
|
{Array.from({ length: 10 }).map((_, index) => (
|
|
<p
|
|
key={index}
|
|
className="mb-4 leading-normal style-lyra:mb-2 style-lyra:leading-relaxed"
|
|
>
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do
|
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
|
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
|
|
in reprehenderit in voluptate velit esse cillum dolore eu fugiat
|
|
nulla pariatur. Excepteur sint occaecat cupidatat non proident,
|
|
sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
</p>
|
|
))}
|
|
</div>
|
|
<DrawerFooter>
|
|
<Button>Submit</Button>
|
|
<DrawerClose asChild>
|
|
<Button variant="outline">Cancel</Button>
|
|
</DrawerClose>
|
|
</DrawerFooter>
|
|
</DrawerContent>
|
|
</Drawer>
|
|
</Example>
|
|
)
|
|
}
|