Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
ee44e2f
feat: add drawer component based on Base UI DrawerPreview
devin-ai-integration[bot] Feb 16, 2026
12b2df0
fix: rework drawer transitions to match Base UI examples
devin-ai-integration[bot] Feb 16, 2026
e72c650
wip
pasqualevitiello Feb 24, 2026
33ef841
implement nested drawers
pasqualevitiello Feb 24, 2026
b738e05
mc
pasqualevitiello Feb 24, 2026
8d54bb4
improvements
pasqualevitiello Feb 24, 2026
b9e9e2c
fix flashing
pasqualevitiello Feb 24, 2026
e072d6d
fix flashin behaviour
pasqualevitiello Feb 24, 2026
18ea86f
add opacity progress
pasqualevitiello Feb 24, 2026
060aa30
format
pasqualevitiello Feb 24, 2026
eac88ef
mc
pasqualevitiello Feb 24, 2026
3d6ca44
mc
pasqualevitiello Feb 24, 2026
06b3f52
mc
pasqualevitiello Feb 24, 2026
9bc2e7e
build reg
pasqualevitiello Feb 25, 2026
337428d
wip
pasqualevitiello Feb 25, 2026
a75c060
mc
pasqualevitiello Feb 25, 2026
a1866ed
mc
pasqualevitiello Feb 25, 2026
8484de7
mc
pasqualevitiello Feb 25, 2026
361ab56
add safe-area-inset-bottom padding
pasqualevitiello Feb 25, 2026
8c8eff4
registry
pasqualevitiello Feb 25, 2026
8a2bc04
update dialog and sheet to support the render prop
pasqualevitiello Feb 25, 2026
afe72ab
mc
pasqualevitiello Feb 25, 2026
33856b9
give more depth to nested toasts by darkeining the bg
pasqualevitiello Feb 25, 2026
827b340
replace sheet in particle preview
pasqualevitiello Feb 26, 2026
8540ecf
mc
pasqualevitiello Feb 26, 2026
1ca21c0
change side prop name to position
pasqualevitiello Feb 26, 2026
ed7c4e2
build registry
pasqualevitiello Feb 26, 2026
ce99b39
update the docs
pasqualevitiello Feb 26, 2026
4512e85
create more particles
pasqualevitiello Feb 26, 2026
2cd573d
wip
pasqualevitiello Feb 26, 2026
05ea46b
mc
pasqualevitiello Feb 26, 2026
05e751f
add the remaining drawer menu parts
pasqualevitiello Feb 26, 2026
629e03d
fix the annoying issue with swiping gesture not working on content
pasqualevitiello Feb 26, 2026
678a3af
simplify class
pasqualevitiello Feb 26, 2026
f7b0416
fix regisry error
pasqualevitiello Feb 27, 2026
9f0dc05
reg build
pasqualevitiello Feb 27, 2026
8b0a108
fix categories
pasqualevitiello Feb 27, 2026
8e3ee2f
improve docs
pasqualevitiello Feb 27, 2026
1fdd31b
add illustration
pasqualevitiello Feb 27, 2026
05cd391
add DrawerMenuTrigger
pasqualevitiello Feb 27, 2026
c6caeea
Merge remote-tracking branch 'origin/main' into devin/1771247692-add-…
pasqualevitiello Feb 27, 2026
d8ec9bd
rebuild the registry
pasqualevitiello Feb 27, 2026
f6eab8f
update llms.txt
pasqualevitiello Feb 27, 2026
2599220
Merge remote-tracking branch 'origin/main' into devin/1771247692-add-…
pasqualevitiello Mar 2, 2026
ed654c6
re-build the registry
pasqualevitiello Mar 2, 2026
a8e064e
refactor: replace useIsMobile with useMediaQuery
pasqualevitiello Mar 2, 2026
a69cb35
merge: resolve conflicts with main
devin-ai-integration[bot] Mar 12, 2026
5866cda
style: apply biome formatting fixes
devin-ai-integration[bot] Mar 12, 2026
950b8bd
chore: regenerate registry and sync packages
devin-ai-integration[bot] Mar 12, 2026
039b5e1
refactor: use inline exports in drawer.tsx
devin-ai-integration[bot] Mar 12, 2026
7274b56
chore: regenerate drawer registry and sync packages
devin-ai-integration[bot] Mar 12, 2026
4d43806
minor improvements
pasqualevitiello Mar 12, 2026
bc14235
Merge remote-tracking branch 'origin/main' into devin/1771247692-add-…
pasqualevitiello Mar 13, 2026
2f94559
replace DrawerPreview with Drawer
pasqualevitiello Mar 13, 2026
e8fb50d
resync
pasqualevitiello Mar 13, 2026
c2b1e26
sipe area implementation
pasqualevitiello Mar 13, 2026
6b876b4
implement menu drawer
pasqualevitiello Mar 13, 2026
bc206e8
build reg
pasqualevitiello Mar 13, 2026
12ca7f0
fix some minor issues
pasqualevitiello Mar 18, 2026
90386e8
fix toast
pasqualevitiello Mar 18, 2026
f770200
rename prop for clarity
pasqualevitiello Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 19 additions & 9 deletions apps/ui/app/particles/particle-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ import { HugeiconsIcon } from "@hugeicons/react";
import { cache } from "react";
import { Index } from "@/registry/__index__";
import { Button } from "@/registry/default/ui/button";
import { Sheet, SheetPopup, SheetTrigger } from "@/registry/default/ui/sheet";
import {
Drawer,
DrawerContent,
DrawerPopup,
DrawerTrigger,
} from "@/registry/default/ui/drawer";
import { ParticleCardContainer } from "./particle-card-container";
import { CodeBlockCommand } from "@/components/code-block-command";
import { ComponentSource } from "@/components/component-source";
Expand Down Expand Up @@ -77,16 +82,21 @@ export async function ParticleCard({
value={`${cossuiUrl}/r/${name}.json`}
variant="outline"
/>
<Sheet>
<SheetTrigger
<Drawer position="right">
<DrawerTrigger
render={
<Button className="text-sm" size="sm" variant="outline" />
}
>
View code
</SheetTrigger>
<SheetPopup className="sm:max-w-3xl" showCloseButton={false}>
<div className="flex flex-1 flex-col overflow-hidden p-6">
</DrawerTrigger>
<DrawerPopup
Comment thread
pasqualevitiello marked this conversation as resolved.
className="max-w-4xl"
showBar
showCloseButton={false}
variant="straight"
>
<DrawerContent className="flex flex-1 flex-col overflow-hidden p-6">
<div>
<h2 className="mb-4 font-heading font-semibold text-xl">
Installation
Expand Down Expand Up @@ -125,9 +135,9 @@ export async function ParticleCard({
name={name}
/>
</div>
</div>
</SheetPopup>
</Sheet>
</DrawerContent>
</DrawerPopup>
</Drawer>
</div>
</>
}
Expand Down
15 changes: 15 additions & 0 deletions apps/ui/components/category-thumbnails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,20 @@ export const datePickerThumbnail = (
</Card>
);

// Drawer
export const drawerThumbnail = (
<div className="flex h-full w-full flex-1 flex-col justify-end gap-2">
<div className="flex-1 rounded-xl border border-input border-dashed" />
<Card className="max-w-none shrink-0 [--radius-2xl:14px]">
<CardPanel className="pt-1 pb-12">
<div className="flex justify-center py-2">
<div className="h-1 w-12 rounded-full bg-muted-foreground/30" />
</div>
</CardPanel>
</Card>
</div>
);

// Dialog
export const dialogThumbnail = (
<Card className="max-w-36 [--radius-2xl:14px]">
Expand Down Expand Up @@ -974,6 +988,7 @@ export const categoryThumbnails: Record<string, ReactNode> = {
command: commandThumbnail,
"date-picker": datePickerThumbnail,
dialog: dialogThumbnail,
drawer: drawerThumbnail,
empty: emptyThumbnail,
field: fieldThumbnail,
fieldset: fieldsetThumbnail,
Expand Down
24 changes: 16 additions & 8 deletions apps/ui/components/mobile-nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@ import { useRouter } from "next/navigation";
import * as React from "react";
import { Badge } from "@/registry/default/ui/badge";
import { Button } from "@/registry/default/ui/button";
import { Sheet, SheetPopup, SheetTrigger } from "@/registry/default/ui/sheet";
import {
Drawer,
DrawerPanel,
DrawerPopup,
DrawerTrigger,
} from "@/registry/default/ui/drawer";
import { PAGES_NEW } from "@/lib/docs";
import type { source } from "@/lib/source";
import { cn } from "@/lib/utils";
Expand All @@ -24,8 +29,8 @@ export function MobileNav({
const [open, setOpen] = React.useState(false);

return (
<Sheet onOpenChange={setOpen} open={open}>
<SheetTrigger
<Drawer onOpenChange={setOpen} open={open} position="left">
<DrawerTrigger
render={
<Button
className={cn("relative -ms-1.5 size-8", className)}
Expand All @@ -41,8 +46,11 @@ export function MobileNav({
</Button>
}
/>
<SheetPopup side="left">
<div className="flex flex-col gap-12 overflow-auto p-6 pt-8">
<DrawerPopup showCloseButton variant="straight">
<DrawerPanel
className="flex flex-col gap-12 p-6 pt-8"
scrollFade={false}
>
<div className="flex flex-col gap-3">
<div className="font-medium text-sm">Menu</div>
<div className="flex flex-col gap-1">
Expand Down Expand Up @@ -92,9 +100,9 @@ export function MobileNav({
return null;
})}
</div>
</div>
</SheetPopup>
</Sheet>
</DrawerPanel>
</DrawerPopup>
</Drawer>
);
}

Expand Down
6 changes: 3 additions & 3 deletions apps/ui/content/docs/components/dialog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,11 @@ Popup container that displays the dialog content. Also exported as `DialogConten

### DialogHeader

Container for the dialog title and description.
Container for the dialog title and description. Supports the `render` prop for polymorphic composition (e.g. `render={<Link href="/" />}`).

### DialogFooter

Footer section for action buttons.
Footer section for action buttons. Supports the `render` prop for polymorphic composition.

| Prop | Type | Default | Description |
| ----------- | ------------------------ | ----------- | ------------------------------------------------ |
Expand Down Expand Up @@ -135,7 +135,7 @@ Description component. Alias for `Dialog.Description` from Base UI.

### DialogPanel

Scrollable content container. Automatically wraps content in a `ScrollArea` component.
Scrollable content container. Automatically wraps content in a `ScrollArea` component. Supports the `render` prop for polymorphic composition.

| Prop | Type | Default | Description |
| ------------ | --------- | ------- | ------------------------------------------------ |
Expand Down
Loading
Loading