feat: eighteen components from the shadcn registry; forty in the package - #6
Merged
Merged
Conversation
Attachment, Avatar, Breadcrumb, ButtonGroup, Command, ContextMenu, Drawer, Empty, HoverCard, Item, Kbd, Pagination, Popover, RadioGroup, ScrollArea, Spinner, Toggle and ToggleGroup enter through `components.json`, each adapted to the rules in DESIGN.md and owned here from then on. cmdk arrives under Command and vaul under Drawer, the first two behaviour libraries in the package that are neither Radix nor Base UI. Every one is exported by name from `src/index.ts`, has a behaviour test, a specimen in the catalog and a row in `docs/components/README.md`. The state-attribute rule is settled while they land: a state is written in shadcn's variants (`data-open:`, `data-active:`) and never in the attribute a library happens to emit, so Dialog and Combobox read alike. A `data-[…]` bracket survives only where the layer declares no variant, and for attributes that are not states. The exit-animation rule grows with the new surfaces: ContextMenuContent and PopoverContent join the menus in leaving on the frame they are dismissed, because their trigger can be pressed again on the next.
YaelAnaya
force-pushed
the
feat/components-0.4.0
branch
from
September 21, 2026 00:14
f744f8c to
a8ea966
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Eighteen components enter through
components.json, each adapted to the rules in DESIGN.md and owned here from then on. The package goes from twenty-two to forty.Attachment, Avatar, Breadcrumb, ButtonGroup, Command, ContextMenu, Drawer, Empty, HoverCard, Item, Kbd, Pagination, Popover, RadioGroup, ScrollArea, Spinner, Toggle, ToggleGroup.
cmdk arrives under
Commandand vaul underDrawer: the first two behaviour libraries in the package that are neither Radix nor Base UI.What each one carries
Every component is exported by name from
src/index.ts, has a behaviour test intests/components/, a specimen in the catalog, and a row indocs/components/README.md.Two rules settle while they land
One spelling for a state. A state is written in shadcn's variants (
data-open:,data-active:) and never in the attribute a library happens to emit, so Dialog (Radix) and Combobox (Base UI) read alike and a component that changes libraries changes no class. Adata-[…]bracket survives only where the layer declares no variant, and for attributes that are not states.Exit animations follow the trigger. ContextMenuContent and PopoverContent join the menus in leaving on the frame they are dismissed, because their trigger can be pressed again on the next one. Dialog, Sheet, Drawer, Tooltip and HoverCard keep theirs: nobody is waiting on those frames.
Verification
pnpm verifypasses: format, lint, 115 tests in 15 files, the build, the catalog, and the packed-consumer test.