canny-ui-react 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +32 -0
  2. package/dist/components/Accordion/index.d.ts +2 -0
  3. package/dist/components/Autocomplete/Autocomplete.d.ts +19 -0
  4. package/dist/components/Autocomplete/Autocomplete.types.d.ts +71 -0
  5. package/dist/components/Autocomplete/index.d.ts +2 -0
  6. package/dist/components/Breadcrumb/Breadcrumb.d.ts +14 -0
  7. package/dist/components/Breadcrumb/index.d.ts +2 -0
  8. package/dist/components/Chip/Chip.d.ts +37 -0
  9. package/dist/components/Chip/index.d.ts +2 -0
  10. package/dist/components/Dialog/Dialog.d.ts +34 -0
  11. package/dist/components/Dialog/index.d.ts +2 -0
  12. package/dist/components/Drawer/Drawer.d.ts +35 -0
  13. package/dist/components/Drawer/index.d.ts +2 -0
  14. package/dist/components/Layout/AspectRatio.d.ts +11 -0
  15. package/dist/components/Layout/Center.d.ts +7 -0
  16. package/dist/components/Layout/Grid.d.ts +7 -1
  17. package/dist/components/Layout/Group.d.ts +10 -0
  18. package/dist/components/Layout/index.d.ts +6 -0
  19. package/dist/components/List/List.d.ts +42 -0
  20. package/dist/components/List/index.d.ts +2 -0
  21. package/dist/components/Menu/Menu.d.ts +51 -0
  22. package/dist/components/Menu/index.d.ts +2 -0
  23. package/dist/components/Pagination/Pagination.d.ts +22 -0
  24. package/dist/components/Pagination/index.d.ts +2 -0
  25. package/dist/components/Popover/Popover.d.ts +24 -0
  26. package/dist/components/Popover/index.d.ts +2 -0
  27. package/dist/components/Slider/Slider.d.ts +15 -0
  28. package/dist/components/Slider/index.d.ts +2 -0
  29. package/dist/components/Stepper/Stepper.d.ts +16 -0
  30. package/dist/components/Stepper/index.d.ts +2 -0
  31. package/dist/components/Tabs/Tabs.d.ts +34 -0
  32. package/dist/components/Tabs/index.d.ts +2 -0
  33. package/dist/components/Tooltip/Tooltip.d.ts +46 -0
  34. package/dist/components/Tooltip/index.d.ts +2 -0
  35. package/dist/index.cjs +55 -40
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.ts +14 -0
  38. package/dist/index.js +7421 -4713
  39. package/dist/index.js.map +1 -1
  40. package/package.json +20 -17
@@ -0,0 +1,32 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
+ type RootSingle = ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {
4
+ type: 'single';
5
+ };
6
+ type RootMultiple = ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {
7
+ type: 'multiple';
8
+ };
9
+ export type AccordionProps = (RootSingle | RootMultiple) & {
10
+ variant?: 'plain' | 'bordered' | 'separated';
11
+ };
12
+ export declare const Accordion: import("react").ForwardRefExoticComponent<((Omit<AccordionPrimitive.AccordionSingleProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
13
+ type: "single";
14
+ } & {
15
+ variant?: "plain" | "bordered" | "separated";
16
+ }) | (Omit<AccordionPrimitive.AccordionMultipleProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
17
+ type: "multiple";
18
+ } & {
19
+ variant?: "plain" | "bordered" | "separated";
20
+ })) & import("react").RefAttributes<HTMLDivElement>>;
21
+ export type AccordionItemProps = ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;
22
+ export declare const AccordionItem: import("react").ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
23
+ export interface AccordionTriggerProps extends ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {
24
+ /** Optional leading icon in the trigger row. */
25
+ icon?: ReactNode;
26
+ /** Hide the chevron indicator. */
27
+ hideIndicator?: boolean;
28
+ }
29
+ export declare const AccordionTrigger: import("react").ForwardRefExoticComponent<AccordionTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
30
+ export type AccordionContentProps = ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;
31
+ export declare const AccordionContent: import("react").ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
32
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './Accordion';
2
+ export type { AccordionProps, AccordionItemProps, AccordionTriggerProps, AccordionContentProps } from './Accordion';
@@ -0,0 +1,19 @@
1
+ import type { AutocompleteProps } from './Autocomplete.types';
2
+ /**
3
+ * Searchable combobox. Single or multi-select. Built on @radix-ui/react-popover
4
+ * for positioning + cmdk for filter / keyboard nav. Replaces MUI's
5
+ * `Autocomplete` with a more compact API.
6
+ *
7
+ * @example
8
+ * <Autocomplete
9
+ * options={[
10
+ * { value: 'eng', label: 'Engineering', group: 'Departments' },
11
+ * { value: 'des', label: 'Design', group: 'Departments' },
12
+ * ]}
13
+ * placeholder="Pick a department"
14
+ * onValueChange={(v) => console.log(v)}
15
+ * />
16
+ *
17
+ * <Autocomplete multiple options={…} placeholder="Pick attendees" />
18
+ */
19
+ export declare const Autocomplete: import("react").ForwardRefExoticComponent<AutocompleteProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,71 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface AutocompleteOption {
3
+ /** Stable identifier — what gets stored in `value`. */
4
+ value: string;
5
+ /** Visible label. */
6
+ label: string;
7
+ /** Optional group heading. Options with the same `group` cluster together. */
8
+ group?: string;
9
+ /** Disable selection of this option. */
10
+ disabled?: boolean;
11
+ /** Right-aligned secondary text (e.g. department, hint). */
12
+ hint?: ReactNode;
13
+ /** Leading icon node (overrides the avatar character). */
14
+ icon?: ReactNode;
15
+ }
16
+ export type AutocompleteSize = 'sm' | 'md' | 'lg';
17
+ export type AutocompleteColor = 'primary' | 'danger' | 'warning' | 'success';
18
+ interface AutocompleteBase {
19
+ /** Flat list of options. */
20
+ options: AutocompleteOption[];
21
+ /** Trigger placeholder when nothing is selected. */
22
+ placeholder?: string;
23
+ /** Search input placeholder inside the dropdown. */
24
+ searchPlaceholder?: string;
25
+ /** Empty-state when no options match the search. */
26
+ emptyText?: ReactNode;
27
+ /** Show a loading spinner inside the dropdown. */
28
+ loading?: boolean;
29
+ /** Loading-state text. */
30
+ loadingText?: ReactNode;
31
+ /** Trigger size. */
32
+ size?: AutocompleteSize;
33
+ /** Validation color on the trigger. */
34
+ color?: AutocompleteColor;
35
+ /** Disable the entire control. */
36
+ disabled?: boolean;
37
+ /** Show a clear button when something is selected. */
38
+ clearable?: boolean;
39
+ /** Field-threading: id forwarded to the trigger. */
40
+ id?: string;
41
+ /** Field-threading: forwarded ARIA. */
42
+ 'aria-invalid'?: boolean;
43
+ /** Field-threading: forwarded ARIA. */
44
+ 'aria-describedby'?: string;
45
+ /** Accessible label when no `<Field>` wraps the control. */
46
+ 'aria-label'?: string;
47
+ /** Custom className on the trigger. */
48
+ className?: string;
49
+ }
50
+ export interface AutocompleteSingleProps extends AutocompleteBase {
51
+ multiple?: false;
52
+ /** Controlled selected value. */
53
+ value?: string | null;
54
+ /** Uncontrolled initial value. */
55
+ defaultValue?: string | null;
56
+ /** Fires on selection change. */
57
+ onValueChange?: (value: string | null) => void;
58
+ }
59
+ export interface AutocompleteMultipleProps extends AutocompleteBase {
60
+ multiple: true;
61
+ /** Controlled selected values. */
62
+ value?: string[];
63
+ /** Uncontrolled initial values. */
64
+ defaultValue?: string[];
65
+ /** Fires on selection change. */
66
+ onValueChange?: (value: string[]) => void;
67
+ /** Cap on how many can be selected. */
68
+ maxItems?: number;
69
+ }
70
+ export type AutocompleteProps = AutocompleteSingleProps | AutocompleteMultipleProps;
71
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Autocomplete } from './Autocomplete';
2
+ export type { AutocompleteOption, AutocompleteProps, AutocompleteSingleProps, AutocompleteMultipleProps, AutocompleteSize, AutocompleteColor, } from './Autocomplete.types';
@@ -0,0 +1,14 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface BreadcrumbItem {
3
+ label: ReactNode;
4
+ href?: string;
5
+ /** Custom render — e.g. `<Link>`. Receives the rendered label. */
6
+ render?: (label: ReactNode) => ReactNode;
7
+ }
8
+ export interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
9
+ items: BreadcrumbItem[];
10
+ /** Separator node between items. Default: chevron. */
11
+ separator?: ReactNode;
12
+ size?: 'sm' | 'md';
13
+ }
14
+ export declare const Breadcrumb: import("react").ForwardRefExoticComponent<BreadcrumbProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,2 @@
1
+ export { Breadcrumb } from './Breadcrumb';
2
+ export type { BreadcrumbProps, BreadcrumbItem } from './Breadcrumb';
@@ -0,0 +1,37 @@
1
+ import type { HTMLAttributes, MouseEventHandler, ReactNode } from 'react';
2
+ export type ChipColor = 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger';
3
+ export type ChipSize = 'sm' | 'md';
4
+ export type ChipVariant = 'soft' | 'outline' | 'solid';
5
+ export interface ChipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onSelect'> {
6
+ /** Color/variant tone. Default: `default`. */
7
+ color?: ChipColor;
8
+ /** Visual style. Default: `soft`. */
9
+ variant?: ChipVariant;
10
+ /** Size preset. Default: `md`. */
11
+ size?: ChipSize;
12
+ /** Leading icon or avatar node. */
13
+ icon?: ReactNode;
14
+ /** Avatar node (rendered before icon if both supplied). */
15
+ avatar?: ReactNode;
16
+ /** When provided, renders an X button that calls this. */
17
+ onDelete?: MouseEventHandler<HTMLButtonElement>;
18
+ /** Accessible label for the delete button. Default: `Remove`. */
19
+ deleteLabel?: string;
20
+ /** Make the chip itself clickable (becomes role=button). */
21
+ onClick?: MouseEventHandler<HTMLSpanElement>;
22
+ /** Disabled visual + non-interactive. */
23
+ disabled?: boolean;
24
+ /** The chip's text/content. */
25
+ children: ReactNode;
26
+ }
27
+ /**
28
+ * Compact label primitive for tags, statuses, filter pills, and selected items.
29
+ * Six color tones × three variants. Optional leading icon/avatar and trailing
30
+ * delete button.
31
+ *
32
+ * @example
33
+ * <Chip color="success">Active</Chip>
34
+ * <Chip color="primary" variant="outline" onDelete={() => …}>Engineering</Chip>
35
+ * <Chip avatar={<Avatar size="xs">PS</Avatar>}>Premkumar S.</Chip>
36
+ */
37
+ export declare const Chip: import("react").ForwardRefExoticComponent<ChipProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,2 @@
1
+ export { Chip } from './Chip';
2
+ export type { ChipProps, ChipColor, ChipSize, ChipVariant } from './Chip';
@@ -0,0 +1,34 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import * as RadixDialog from '@radix-ui/react-dialog';
3
+ export type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
4
+ export interface DialogProps extends ComponentPropsWithoutRef<typeof RadixDialog.Root> {
5
+ /** Title rendered as the visible h2. Required for accessibility. */
6
+ title: ReactNode;
7
+ /** Optional descriptive subhead under the title. */
8
+ description?: ReactNode;
9
+ /** Body content (forms, copy, lists). */
10
+ children?: ReactNode;
11
+ /** Footer node (typically a Button row). */
12
+ footer?: ReactNode;
13
+ /** Width preset. Default: `md`. */
14
+ size?: DialogSize;
15
+ /** Hide the built-in X close button. */
16
+ hideClose?: boolean;
17
+ /** Extra className on the dialog content. */
18
+ className?: string;
19
+ }
20
+ /**
21
+ * Modal dialog built on @radix-ui/react-dialog. Includes a backdrop, focus trap,
22
+ * Esc-to-close, scroll lock, and an accessible title/description out of the box.
23
+ *
24
+ * @example
25
+ * const [open, setOpen] = useState(false);
26
+ * <Dialog open={open} onOpenChange={setOpen} title="Confirm delete">
27
+ * This action can't be undone.
28
+ * </Dialog>
29
+ */
30
+ export declare const Dialog: import("react").ForwardRefExoticComponent<DialogProps & import("react").RefAttributes<HTMLDivElement>>;
31
+ /** Trigger button to open a Dialog when wired with a controlled root. */
32
+ export declare const DialogTrigger: import("react").ForwardRefExoticComponent<RadixDialog.DialogTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
33
+ /** Close button — typically used inside the body or footer. */
34
+ export declare const DialogClose: import("react").ForwardRefExoticComponent<RadixDialog.DialogCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,2 @@
1
+ export { Dialog, DialogTrigger, DialogClose } from './Dialog';
2
+ export type { DialogProps, DialogSize } from './Dialog';
@@ -0,0 +1,35 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import * as RadixDialog from '@radix-ui/react-dialog';
3
+ export type DrawerSide = 'left' | 'right' | 'top' | 'bottom';
4
+ export type DrawerSize = 'sm' | 'md' | 'lg' | 'xl';
5
+ export interface DrawerProps extends ComponentPropsWithoutRef<typeof RadixDialog.Root> {
6
+ /** Visible heading for the drawer. Required for AT. */
7
+ title: ReactNode;
8
+ /** Optional subhead under the title. */
9
+ description?: ReactNode;
10
+ /** Body content. */
11
+ children?: ReactNode;
12
+ /** Footer (typically Buttons). */
13
+ footer?: ReactNode;
14
+ /** Edge the drawer slides in from. Default: `right`. */
15
+ side?: DrawerSide;
16
+ /** Width preset (for left/right) or height preset (for top/bottom). Default: `md`. */
17
+ size?: DrawerSize;
18
+ /** Hide the built-in X close button. */
19
+ hideClose?: boolean;
20
+ /** Extra className on the drawer content. */
21
+ className?: string;
22
+ }
23
+ /**
24
+ * Off-canvas drawer / sheet. Slides in from any edge. Built on
25
+ * @radix-ui/react-dialog so it gets focus trapping, Esc-to-close, scroll
26
+ * lock, and accessibility for free.
27
+ *
28
+ * @example
29
+ * <Drawer open={open} onOpenChange={setOpen} side="right" title="Settings">
30
+ * <SettingsForm />
31
+ * </Drawer>
32
+ */
33
+ export declare const Drawer: import("react").ForwardRefExoticComponent<DrawerProps & import("react").RefAttributes<HTMLDivElement>>;
34
+ export declare const DrawerTrigger: import("react").ForwardRefExoticComponent<RadixDialog.DialogTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
35
+ export declare const DrawerClose: import("react").ForwardRefExoticComponent<RadixDialog.DialogCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,2 @@
1
+ export { Drawer, DrawerTrigger, DrawerClose } from './Drawer';
2
+ export type { DrawerProps, DrawerSide, DrawerSize } from './Drawer';
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface AspectRatioProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
+ /** Ratio = width / height. e.g. 16/9, 4/3, 1, 21/9. Default 16/9. */
4
+ ratio?: number;
5
+ children?: ReactNode;
6
+ }
7
+ /**
8
+ * Locks a child to a fixed aspect ratio. Useful for video/image tiles,
9
+ * map embeds, and avatar grids. Pure CSS via `aspect-ratio`.
10
+ */
11
+ export declare const AspectRatio: import("react").ForwardRefExoticComponent<AspectRatioProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import type { ElementType, ForwardedRef, ReactElement } from 'react';
2
+ import type { BoxProps } from './Box';
3
+ export type CenterProps<E extends ElementType = 'div'> = Omit<BoxProps<E>, 'display' | 'align' | 'justify'>;
4
+ /** Flex-centers its children (both axes). */
5
+ export declare const Center: <E extends ElementType = "div">(props: CenterProps<E> & {
6
+ ref?: ForwardedRef<Element>;
7
+ }) => ReactElement;
@@ -2,9 +2,15 @@ import type { ElementType, ForwardedRef, ReactElement } from 'react';
2
2
  import type { BoxProps } from './Box';
3
3
  type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
4
4
  export type GridProps<E extends ElementType = 'div'> = Omit<BoxProps<E>, 'display' | 'direction'> & {
5
+ /** Fixed column count. Maps to `.grid-cols-{n}` utility. Ignored if `minColWidth` is set. */
5
6
  cols?: GridCols;
7
+ /**
8
+ * Auto-fit responsive grid: `repeat(auto-fit, minmax(minColWidth, 1fr))`.
9
+ * Pass a CSS length (e.g. `'240px'`, `'18rem'`).
10
+ */
11
+ minColWidth?: string;
6
12
  };
7
- /** CSS Grid container. `cols` maps to `.grid-cols-{n}` utility. */
13
+ /** CSS Grid container. Use `cols` for fixed tracks, or `minColWidth` for responsive auto-fit. */
8
14
  export declare const Grid: <E extends ElementType = "div">(props: GridProps<E> & {
9
15
  ref?: ForwardedRef<Element>;
10
16
  }) => ReactElement;
@@ -0,0 +1,10 @@
1
+ import type { ElementType, ForwardedRef, ReactElement } from 'react';
2
+ import type { BoxProps } from './Box';
3
+ export type GroupProps<E extends ElementType = 'div'> = Omit<BoxProps<E>, 'direction' | 'display'>;
4
+ /**
5
+ * Horizontal flex row tuned for toolbars / trigger groups.
6
+ * Defaults: align center, gap 2, wrap on overflow.
7
+ */
8
+ export declare const Group: <E extends ElementType = "div">(props: GroupProps<E> & {
9
+ ref?: ForwardedRef<Element>;
10
+ }) => ReactElement;
@@ -4,10 +4,16 @@ export { Grid } from './Grid';
4
4
  export { Container } from './Container';
5
5
  export { Divider } from './Divider';
6
6
  export { Spacer } from './Spacer';
7
+ export { AspectRatio } from './AspectRatio';
8
+ export { Center } from './Center';
9
+ export { Group } from './Group';
7
10
  export type { BoxProps } from './Box';
8
11
  export type { StackProps, RowProps } from './Stack';
9
12
  export type { GridProps } from './Grid';
10
13
  export type { ContainerProps, ContainerSize } from './Container';
11
14
  export type { DividerProps } from './Divider';
12
15
  export type { SpacerProps } from './Spacer';
16
+ export type { AspectRatioProps } from './AspectRatio';
17
+ export type { CenterProps } from './Center';
18
+ export type { GroupProps } from './Group';
13
19
  export type { Space, Align, Justify, Direction, Display, LayoutProps } from './layout.types';
@@ -0,0 +1,42 @@
1
+ import type { ElementType, HTMLAttributes, ReactNode, MouseEventHandler } from 'react';
2
+ export type ListVariant = 'plain' | 'bordered' | 'dividers';
3
+ export type ListSize = 'sm' | 'md' | 'lg';
4
+ export interface ListProps extends HTMLAttributes<HTMLUListElement> {
5
+ /** Visual style. Default: `dividers`. */
6
+ variant?: ListVariant;
7
+ /** Row size. Default: `md`. */
8
+ size?: ListSize;
9
+ /** Use this when items have explicit dividers via `<ListSeparator>` to
10
+ * disable automatic divider rendering. */
11
+ dense?: boolean;
12
+ }
13
+ export declare const List: import("react").ForwardRefExoticComponent<ListProps & import("react").RefAttributes<HTMLUListElement>>;
14
+ export interface ListItemProps {
15
+ /** Leading icon or avatar. */
16
+ leading?: ReactNode;
17
+ /** Trailing actions (button, chip, badge). */
18
+ trailing?: ReactNode;
19
+ /** Primary text — bold/regular depending on variant. */
20
+ primary?: ReactNode;
21
+ /** Secondary text — muted, single-line by default. */
22
+ secondary?: ReactNode;
23
+ /** Whole-row click handler. Becomes role=button. */
24
+ onClick?: MouseEventHandler<HTMLLIElement>;
25
+ /** Render the row as a link by passing an `href`. */
26
+ href?: string;
27
+ /** Disable interactivity + visual. */
28
+ disabled?: boolean;
29
+ /** Render as currently-active row. */
30
+ active?: boolean;
31
+ /** Override the rendered element (default: `li`, `a` if href, `button` if onClick). */
32
+ as?: ElementType;
33
+ /** Accessible name override (when `primary` isn't a string). */
34
+ 'aria-label'?: string;
35
+ /** Free-form children — overrides the leading/primary/secondary/trailing slots. */
36
+ children?: ReactNode;
37
+ /** Extra className. */
38
+ className?: string;
39
+ }
40
+ export declare const ListItem: import("react").ForwardRefExoticComponent<ListItemProps & import("react").RefAttributes<HTMLElement>>;
41
+ export declare const ListSeparator: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
42
+ export declare const ListSubheader: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,2 @@
1
+ export { List, ListItem, ListSeparator, ListSubheader } from './List';
2
+ export type { ListProps, ListItemProps, ListVariant, ListSize } from './List';
@@ -0,0 +1,51 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import * as RadixMenu from '@radix-ui/react-dropdown-menu';
3
+ export declare const Menu: import("react").FC<RadixMenu.DropdownMenuProps>;
4
+ export declare const MenuTrigger: import("react").ForwardRefExoticComponent<RadixMenu.DropdownMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ export interface MenuContentProps extends ComponentPropsWithoutRef<typeof RadixMenu.Content> {
6
+ className?: string;
7
+ /** Visual size — controls padding + font size. Default: `md`. */
8
+ size?: 'sm' | 'md';
9
+ }
10
+ /**
11
+ * The popup panel. Wrap in `<Menu>` and pair with `<MenuTrigger>`.
12
+ *
13
+ * @example
14
+ * <Menu>
15
+ * <MenuTrigger asChild><Button>Actions</Button></MenuTrigger>
16
+ * <MenuContent>
17
+ * <MenuItem onSelect={...}>Edit</MenuItem>
18
+ * <MenuSeparator />
19
+ * <MenuItem destructive onSelect={...}>Delete</MenuItem>
20
+ * </MenuContent>
21
+ * </Menu>
22
+ */
23
+ export declare const MenuContent: import("react").ForwardRefExoticComponent<MenuContentProps & import("react").RefAttributes<HTMLDivElement>>;
24
+ export interface MenuItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.Item> {
25
+ /** Leading icon. */
26
+ icon?: ReactNode;
27
+ /** Right-aligned shortcut hint (e.g. `⌘C`). */
28
+ shortcut?: ReactNode;
29
+ /** Apply danger styling (red text, danger hover). */
30
+ destructive?: boolean;
31
+ }
32
+ export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
33
+ export interface MenuCheckboxItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.CheckboxItem> {
34
+ shortcut?: ReactNode;
35
+ }
36
+ export declare const MenuCheckboxItem: import("react").ForwardRefExoticComponent<MenuCheckboxItemProps & import("react").RefAttributes<HTMLDivElement>>;
37
+ export declare const MenuRadioGroup: import("react").ForwardRefExoticComponent<RadixMenu.DropdownMenuRadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
38
+ export interface MenuRadioItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.RadioItem> {
39
+ shortcut?: ReactNode;
40
+ }
41
+ export declare const MenuRadioItem: import("react").ForwardRefExoticComponent<MenuRadioItemProps & import("react").RefAttributes<HTMLDivElement>>;
42
+ export interface MenuLabelProps extends ComponentPropsWithoutRef<typeof RadixMenu.Label> {
43
+ }
44
+ export declare const MenuLabel: import("react").ForwardRefExoticComponent<MenuLabelProps & import("react").RefAttributes<HTMLDivElement>>;
45
+ export declare const MenuSeparator: import("react").ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
46
+ export declare const MenuSub: import("react").FC<RadixMenu.DropdownMenuSubProps>;
47
+ export interface MenuSubTriggerProps extends ComponentPropsWithoutRef<typeof RadixMenu.SubTrigger> {
48
+ icon?: ReactNode;
49
+ }
50
+ export declare const MenuSubTrigger: import("react").ForwardRefExoticComponent<MenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
51
+ export declare const MenuSubContent: import("react").ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Menu, MenuTrigger, MenuContent, MenuItem, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuLabel, MenuSeparator, MenuSub, MenuSubTrigger, MenuSubContent, } from './Menu';
2
+ export type { MenuContentProps, MenuItemProps, MenuCheckboxItemProps, MenuRadioItemProps, MenuLabelProps, MenuSubTriggerProps, } from './Menu';
@@ -0,0 +1,22 @@
1
+ export interface PaginationProps {
2
+ /** Current page (1-based). */
3
+ page: number;
4
+ /** Total number of pages. */
5
+ pageCount: number;
6
+ /** Fired with the new page when the user clicks. */
7
+ onPageChange: (page: number) => void;
8
+ /** Pages to show on each side of the current page. Default 1. */
9
+ siblingCount?: number;
10
+ /** Whether to always show the first/last page. Default true. */
11
+ showEdges?: boolean;
12
+ /** Hide the prev/next chevrons. */
13
+ hideControls?: boolean;
14
+ size?: 'sm' | 'md' | 'lg';
15
+ className?: string;
16
+ 'aria-label'?: string;
17
+ }
18
+ /**
19
+ * Pagination — page-number nav with prev/next chevrons. Server-driven:
20
+ * pass `page`, `pageCount`, and `onPageChange`.
21
+ */
22
+ export declare const Pagination: import("react").ForwardRefExoticComponent<PaginationProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,2 @@
1
+ export { Pagination } from './Pagination';
2
+ export type { PaginationProps } from './Pagination';
@@ -0,0 +1,24 @@
1
+ import type { ComponentPropsWithoutRef } from 'react';
2
+ import * as RadixPopover from '@radix-ui/react-popover';
3
+ /**
4
+ * Popover root. Controlled (`open` + `onOpenChange`) or uncontrolled.
5
+ * Wrap a `<PopoverTrigger>` and `<PopoverContent>`.
6
+ *
7
+ * @example
8
+ * <Popover>
9
+ * <PopoverTrigger asChild><Button>Filters</Button></PopoverTrigger>
10
+ * <PopoverContent side="bottom" align="end">
11
+ * <FilterForm />
12
+ * </PopoverContent>
13
+ * </Popover>
14
+ */
15
+ export declare const Popover: import("react").FC<RadixPopover.PopoverProps>;
16
+ export declare const PopoverTrigger: import("react").ForwardRefExoticComponent<RadixPopover.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
17
+ export declare const PopoverAnchor: import("react").ForwardRefExoticComponent<RadixPopover.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
18
+ export declare const PopoverClose: import("react").ForwardRefExoticComponent<RadixPopover.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
19
+ export interface PopoverContentProps extends ComponentPropsWithoutRef<typeof RadixPopover.Content> {
20
+ className?: string;
21
+ /** Render the small directional arrow on the popover. Default: false. */
22
+ withArrow?: boolean;
23
+ }
24
+ export declare const PopoverContent: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Popover, PopoverTrigger, PopoverAnchor, PopoverClose, PopoverContent, } from './Popover';
2
+ export type { PopoverContentProps } from './Popover';
@@ -0,0 +1,15 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
+ export interface SliderProps extends ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
4
+ size?: 'sm' | 'md' | 'lg';
5
+ color?: 'primary' | 'success' | 'warning' | 'danger';
6
+ /** Show inline value bubble above the active thumb on hover/focus. */
7
+ showValue?: boolean;
8
+ /** Format value for the bubble. Default: `String(v)`. */
9
+ formatValue?: (v: number) => ReactNode;
10
+ }
11
+ /**
12
+ * Slider — single or range value picker. Pass an array length 1 for single,
13
+ * length 2 for range. Built on @radix-ui/react-slider.
14
+ */
15
+ export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,2 @@
1
+ export { Slider } from './Slider';
2
+ export type { SliderProps } from './Slider';
@@ -0,0 +1,16 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface StepperStep {
3
+ label: ReactNode;
4
+ description?: ReactNode;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface StepperProps extends Omit<HTMLAttributes<HTMLOListElement>, 'children'> {
8
+ steps: StepperStep[];
9
+ /** Active step index (0-based). Steps before this are marked complete. */
10
+ active: number;
11
+ orientation?: 'horizontal' | 'vertical';
12
+ size?: 'sm' | 'md';
13
+ /** Fired when a previously-completed step is clicked. */
14
+ onStepClick?: (index: number) => void;
15
+ }
16
+ export declare const Stepper: import("react").ForwardRefExoticComponent<StepperProps & import("react").RefAttributes<HTMLOListElement>>;
@@ -0,0 +1,2 @@
1
+ export { Stepper } from './Stepper';
2
+ export type { StepperProps, StepperStep } from './Stepper';
@@ -0,0 +1,34 @@
1
+ import type { ComponentPropsWithoutRef } from 'react';
2
+ import * as RadixTabs from '@radix-ui/react-tabs';
3
+ export type TabsVariant = 'line' | 'pills' | 'segmented';
4
+ export type TabsSize = 'sm' | 'md' | 'lg';
5
+ /**
6
+ * Tabbed view container. Built on @radix-ui/react-tabs — handles roving
7
+ * tabindex, arrow-key nav, and proper ARIA wiring out of the box.
8
+ *
9
+ * @example
10
+ * <Tabs defaultValue="overview">
11
+ * <TabsList>
12
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
13
+ * <TabsTrigger value="activity">Activity</TabsTrigger>
14
+ * </TabsList>
15
+ * <TabsContent value="overview">…</TabsContent>
16
+ * <TabsContent value="activity">…</TabsContent>
17
+ * </Tabs>
18
+ */
19
+ export interface TabsProps extends ComponentPropsWithoutRef<typeof RadixTabs.Root> {
20
+ /** Visual style. Default: `line`. */
21
+ variant?: TabsVariant;
22
+ /** Size preset. Default: `md`. */
23
+ size?: TabsSize;
24
+ }
25
+ export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ export declare const TabsList: import("react").ForwardRefExoticComponent<Omit<RadixTabs.TabsListProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
27
+ export interface TabsTriggerProps extends ComponentPropsWithoutRef<typeof RadixTabs.Trigger> {
28
+ /** Optional leading icon. */
29
+ icon?: React.ReactNode;
30
+ /** Optional right-aligned badge (count, status). */
31
+ badge?: React.ReactNode;
32
+ }
33
+ export declare const TabsTrigger: import("react").ForwardRefExoticComponent<TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
34
+ export declare const TabsContent: import("react").ForwardRefExoticComponent<Omit<RadixTabs.TabsContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './Tabs';
2
+ export type { TabsProps, TabsTriggerProps, TabsVariant, TabsSize } from './Tabs';