This page lists all primitives currently shipped with @gentleduck/primitives.
Each section shows whether the primitive is implemented and gives a quick demo if possible.
This page is internal-only, for maintainers and contributors.
Installation
npm install @gentleduck/primitives
npm install @gentleduck/primitives
Implemented Primitives
Dialog
function Example() {
const [open, setOpen] = React.useState(false);
return (
<>
<Dialog.Trigger onClick={() => setOpen(true)}>Open</Dialog.Trigger>
<Dialog.Root open={open} onOpenChange={setOpen}>
<Dialog.Overlay />
<Dialog.Content>
<Dialog.Title>Dialog Title</Dialog.Title>
<Dialog.Description>Some content here.</Dialog.Description>
<Dialog.Close>Close</Dialog.Close>
</Dialog.Content>
</Dialog.Root>
</>
);
}function Example() {
const [open, setOpen] = React.useState(false);
return (
<>
<Dialog.Trigger onClick={() => setOpen(true)}>Open</Dialog.Trigger>
<Dialog.Root open={open} onOpenChange={setOpen}>
<Dialog.Overlay />
<Dialog.Content>
<Dialog.Title>Dialog Title</Dialog.Title>
<Dialog.Description>Some content here.</Dialog.Description>
<Dialog.Close>Close</Dialog.Close>
</Dialog.Content>
</Dialog.Root>
</>
);
}Popover
function Example() {
const [open, setOpen] = React.useState(false);
return (
<Popover.Root open={open} onOpenChange={setOpen}>
<Popover.Trigger>Toggle</Popover.Trigger>
<Popover.Content>
<p>Popover content</p>
</Popover.Content>
</Popover.Root>
);
}function Example() {
const [open, setOpen] = React.useState(false);
return (
<Popover.Root open={open} onOpenChange={setOpen}>
<Popover.Trigger>Toggle</Popover.Trigger>
<Popover.Content>
<p>Popover content</p>
</Popover.Content>
</Popover.Root>
);
}Tooltip
<Tooltip.Root>
<Tooltip.Trigger>Hover me</Tooltip.Trigger>
<Tooltip.Content>Tooltip text</Tooltip.Content>
</Tooltip.Root><Tooltip.Root>
<Tooltip.Trigger>Hover me</Tooltip.Trigger>
<Tooltip.Content>Tooltip text</Tooltip.Content>
</Tooltip.Root>Slider
<Slider.Root defaultValue={[50]} max={100} step={1}>
<Slider.Track>
<Slider.Range />
</Slider.Track>
<Slider.Thumb />
</Slider.Root><Slider.Root defaultValue={[50]} max={100} step={1}>
<Slider.Track>
<Slider.Range />
</Slider.Track>
<Slider.Thumb />
</Slider.Root>Other Primitives
@gentleduck/primitives/drawer→ Dismissible panel (WIP)@gentleduck/primitives/sheet→ Full-width/height surface@gentleduck/primitives/navigation-menu→ Navigation menu (WIP)@gentleduck/primitives/mount→ Mount/unmount helpers@gentleduck/primitives/slot→ Composition utility@gentleduck/primitives/checkers→ Conditional behavior helpers