canny-ui-react 2.0.0 → 4.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 (63) 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/Badge/Badge.d.ts +21 -0
  7. package/dist/components/Badge/index.d.ts +2 -0
  8. package/dist/components/Breadcrumb/Breadcrumb.d.ts +14 -0
  9. package/dist/components/Breadcrumb/index.d.ts +2 -0
  10. package/dist/components/Charts/BarChart.d.ts +31 -0
  11. package/dist/components/Charts/LineChart.d.ts +25 -0
  12. package/dist/components/Charts/PieChart.d.ts +22 -0
  13. package/dist/components/Charts/ResponsiveContainer.d.ts +12 -0
  14. package/dist/components/Charts/chartUtils.d.ts +16 -0
  15. package/dist/components/Charts/index.d.ts +9 -0
  16. package/dist/components/Chip/Chip.d.ts +37 -0
  17. package/dist/components/Chip/index.d.ts +2 -0
  18. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +31 -0
  19. package/dist/components/ConfirmDialog/index.d.ts +4 -0
  20. package/dist/components/ConfirmDialog/useConfirm.d.ts +16 -0
  21. package/dist/components/DataTable/DataTable.d.ts +69 -0
  22. package/dist/components/DataTable/index.d.ts +2 -0
  23. package/dist/components/Dialog/Dialog.d.ts +34 -0
  24. package/dist/components/Dialog/index.d.ts +2 -0
  25. package/dist/components/Drawer/Drawer.d.ts +35 -0
  26. package/dist/components/Drawer/index.d.ts +2 -0
  27. package/dist/components/FileUploader/FileUploader.d.ts +19 -0
  28. package/dist/components/FileUploader/index.d.ts +4 -0
  29. package/dist/components/FileUploader/useFileDrop.d.ts +630 -0
  30. package/dist/components/Layout/AspectRatio.d.ts +11 -0
  31. package/dist/components/Layout/Center.d.ts +7 -0
  32. package/dist/components/Layout/Grid.d.ts +7 -1
  33. package/dist/components/Layout/Group.d.ts +10 -0
  34. package/dist/components/Layout/index.d.ts +6 -0
  35. package/dist/components/List/List.d.ts +42 -0
  36. package/dist/components/List/index.d.ts +2 -0
  37. package/dist/components/Menu/Menu.d.ts +51 -0
  38. package/dist/components/Menu/index.d.ts +2 -0
  39. package/dist/components/Pagination/Pagination.d.ts +22 -0
  40. package/dist/components/Pagination/index.d.ts +2 -0
  41. package/dist/components/PanelGroup/PanelGroup.d.ts +33 -0
  42. package/dist/components/PanelGroup/index.d.ts +2 -0
  43. package/dist/components/Popover/Popover.d.ts +24 -0
  44. package/dist/components/Popover/index.d.ts +2 -0
  45. package/dist/components/Slider/Slider.d.ts +15 -0
  46. package/dist/components/Slider/index.d.ts +2 -0
  47. package/dist/components/Stepper/Stepper.d.ts +16 -0
  48. package/dist/components/Stepper/index.d.ts +2 -0
  49. package/dist/components/Tabs/Tabs.d.ts +34 -0
  50. package/dist/components/Tabs/index.d.ts +2 -0
  51. package/dist/components/Timeline/Timeline.d.ts +55 -0
  52. package/dist/components/Timeline/index.d.ts +2 -0
  53. package/dist/components/Tooltip/Tooltip.d.ts +46 -0
  54. package/dist/components/Tooltip/index.d.ts +2 -0
  55. package/dist/components/TreeView/RichTreeView.d.ts +28 -0
  56. package/dist/components/TreeView/TreeView.d.ts +31 -0
  57. package/dist/components/TreeView/index.d.ts +4 -0
  58. package/dist/index.cjs +73 -38
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.d.ts +22 -0
  61. package/dist/index.js +8579 -4711
  62. package/dist/index.js.map +1 -1
  63. package/package.json +20 -17
@@ -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,33 @@
1
+ import type { HTMLAttributes, PointerEvent } from 'react';
2
+ export type PanelDirection = 'horizontal' | 'vertical';
3
+ export interface PanelProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** Initial size as a percentage of the group. */
5
+ defaultSize?: number;
6
+ /** Minimum size in percent. Default 10. */
7
+ minSize?: number;
8
+ /** Maximum size in percent. Default 90. */
9
+ maxSize?: number;
10
+ }
11
+ export declare const Panel: import("react").ForwardRefExoticComponent<PanelProps & import("react").RefAttributes<HTMLDivElement>>;
12
+ interface HandleInternal {
13
+ direction: PanelDirection;
14
+ valueNow: number;
15
+ valueMin: number;
16
+ valueMax: number;
17
+ onResizeStart: (e: PointerEvent<HTMLDivElement>) => void;
18
+ onKeyResize: (dir: 1 | -1) => void;
19
+ }
20
+ export interface PanelResizeHandleProps extends HTMLAttributes<HTMLDivElement> {
21
+ disabled?: boolean;
22
+ /** @internal injected by PanelGroup */
23
+ __internal?: HandleInternal;
24
+ }
25
+ export declare const PanelResizeHandle: import("react").ForwardRefExoticComponent<PanelResizeHandleProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ export interface PanelGroupProps extends HTMLAttributes<HTMLDivElement> {
27
+ /** Layout axis. Default `'horizontal'`. */
28
+ direction?: PanelDirection;
29
+ }
30
+ export declare const PanelGroup: import("react").ForwardRefExoticComponent<PanelGroupProps & import("react").RefAttributes<HTMLDivElement>>;
31
+ /** No-op kept for drop-in compatibility with `react-resizable-panels`. */
32
+ export declare function disableGlobalCursorStyles(): void;
33
+ export {};
@@ -0,0 +1,2 @@
1
+ export { PanelGroup, Panel, PanelResizeHandle, disableGlobalCursorStyles } from './PanelGroup';
2
+ export type { PanelGroupProps, PanelProps, PanelResizeHandleProps, PanelDirection, } from './PanelGroup';
@@ -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';
@@ -0,0 +1,55 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export type TimelineDotColor = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
3
+ /** Which side the content sits on relative to the central rail. */
4
+ export type TimelinePosition = 'right' | 'left' | 'alternate';
5
+ /** Rail direction. */
6
+ export type TimelineOrientation = 'vertical' | 'horizontal';
7
+ /** Density preset — scales dots, connector thickness, and type. */
8
+ export type TimelineSize = 'sm' | 'md' | 'lg';
9
+ export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
10
+ /** Side the content sits on relative to the rail. Default `'right'`. (Vertical only.) */
11
+ position?: TimelinePosition;
12
+ /** Rail direction. Default `'vertical'`. */
13
+ orientation?: TimelineOrientation;
14
+ /** Density preset. Default `'md'`. */
15
+ size?: TimelineSize;
16
+ }
17
+ export declare const Timeline: import("react").ForwardRefExoticComponent<TimelineProps & import("react").RefAttributes<HTMLOListElement>>;
18
+ export type TimelineItemProps = HTMLAttributes<HTMLLIElement>;
19
+ export declare const TimelineItem: import("react").ForwardRefExoticComponent<TimelineItemProps & import("react").RefAttributes<HTMLLIElement>>;
20
+ export type TimelineSeparatorProps = HTMLAttributes<HTMLDivElement>;
21
+ export declare const TimelineSeparator: import("react").ForwardRefExoticComponent<TimelineSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
22
+ /** Dot fill treatment. */
23
+ export type TimelineDotVariant = 'filled' | 'outlined' | 'soft';
24
+ export interface TimelineDotProps extends HTMLAttributes<HTMLSpanElement> {
25
+ /** Semantic color. Default `'neutral'`. */
26
+ color?: TimelineDotColor;
27
+ /** Fill treatment: filled (default), outlined ring, or soft tint. */
28
+ variant?: TimelineDotVariant;
29
+ /** Optional icon (or number) rendered inside the dot. */
30
+ icon?: ReactNode;
31
+ /** Pulsing ring to mark the current step. Respects reduced-motion. */
32
+ active?: boolean;
33
+ }
34
+ export declare const TimelineDot: import("react").ForwardRefExoticComponent<TimelineDotProps & import("react").RefAttributes<HTMLSpanElement>>;
35
+ /** Connector line style. */
36
+ export type TimelineConnectorLineStyle = 'solid' | 'dashed' | 'dotted';
37
+ export interface TimelineConnectorProps extends HTMLAttributes<HTMLSpanElement> {
38
+ /** Tint the segment to show a completed step. Omit for a neutral hairline. */
39
+ color?: TimelineDotColor;
40
+ /** Line style. Default `'solid'`. */
41
+ lineStyle?: TimelineConnectorLineStyle;
42
+ }
43
+ export declare const TimelineConnector: import("react").ForwardRefExoticComponent<TimelineConnectorProps & import("react").RefAttributes<HTMLSpanElement>>;
44
+ /** Content treatment: plain, bordered card, or elevated card. */
45
+ export type TimelineContentVariant = 'plain' | 'card' | 'elevated';
46
+ export interface TimelineContentProps extends HTMLAttributes<HTMLDivElement> {
47
+ /** `'card'` = bordered block, `'elevated'` = card with shadow. Default `'plain'`. */
48
+ variant?: TimelineContentVariant;
49
+ /** Adds a colored left-accent border to a card, matched to a status color. */
50
+ accentColor?: TimelineDotColor;
51
+ }
52
+ export declare const TimelineContent: import("react").ForwardRefExoticComponent<TimelineContentProps & import("react").RefAttributes<HTMLDivElement>>;
53
+ /** Slot rendered on the opposite side of the rail from the content (e.g. a timestamp). */
54
+ export type TimelineOppositeContentProps = HTMLAttributes<HTMLDivElement>;
55
+ export declare const TimelineOppositeContent: import("react").ForwardRefExoticComponent<TimelineOppositeContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Timeline, TimelineItem, TimelineSeparator, TimelineDot, TimelineConnector, TimelineContent, TimelineOppositeContent, } from './Timeline';
2
+ export type { TimelineDotColor, TimelinePosition, TimelineOrientation, TimelineSize, TimelineDotVariant, TimelineConnectorLineStyle, TimelineContentVariant, TimelineDotProps, TimelineProps, TimelineItemProps, TimelineSeparatorProps, TimelineConnectorProps, TimelineContentProps, TimelineOppositeContentProps, } from './Timeline';
@@ -0,0 +1,46 @@
1
+ import type { ReactNode } from 'react';
2
+ import * as RadixTooltip from '@radix-ui/react-tooltip';
3
+ /**
4
+ * Tooltip provider — wrap your app once. Controls the global delay so the
5
+ * first tooltip in a group has a longer delay, then subsequent tooltips
6
+ * appear instantly.
7
+ *
8
+ * @example
9
+ * <TooltipProvider delayDuration={500}>
10
+ * <App />
11
+ * </TooltipProvider>
12
+ */
13
+ export declare const TooltipProvider: import("react").FC<RadixTooltip.TooltipProviderProps>;
14
+ export interface TooltipProps {
15
+ /** The element that triggers the tooltip on hover/focus. */
16
+ children: ReactNode;
17
+ /** Tooltip text or node. */
18
+ content: ReactNode;
19
+ /** Side preference. Auto-flips when there's no room. Default: `top`. */
20
+ side?: 'top' | 'right' | 'bottom' | 'left';
21
+ /** Alignment along the side. Default: `center`. */
22
+ align?: 'start' | 'center' | 'end';
23
+ /** Pixels between the trigger and the tooltip. Default: 6. */
24
+ sideOffset?: number;
25
+ /** Override delay (ms) before showing. Falls back to TooltipProvider's delay. */
26
+ delayDuration?: number;
27
+ /** Controlled open state. Mostly for testing. */
28
+ open?: boolean;
29
+ /** Disable the tooltip but keep the trigger interactive. */
30
+ disabled?: boolean;
31
+ /** Extra className on the popup. */
32
+ contentClassName?: string;
33
+ }
34
+ /**
35
+ * Single-shot tooltip. Pass any element as `children` and it becomes the
36
+ * trigger. The element must accept a ref (or wrap in `asChild` via Radix).
37
+ *
38
+ * @example
39
+ * <Tooltip content="Copy to clipboard">
40
+ * <IconButton><Copy size={14} /></IconButton>
41
+ * </Tooltip>
42
+ */
43
+ export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLDivElement>>;
44
+ export declare const TooltipRoot: import("react").FC<RadixTooltip.TooltipProps>;
45
+ export declare const TooltipTrigger: import("react").ForwardRefExoticComponent<RadixTooltip.TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
46
+ export declare const TooltipContent: import("react").ForwardRefExoticComponent<Omit<RadixTooltip.TooltipContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Tooltip, TooltipProvider, TooltipRoot, TooltipTrigger, TooltipContent, } from './Tooltip';
2
+ export type { TooltipProps } from './Tooltip';
@@ -0,0 +1,28 @@
1
+ import type { ReactElement, ReactNode, Ref } from 'react';
2
+ import type { TreeViewProps } from './TreeView';
3
+ /** Minimal shape RichTreeView expects; extra fields are passed through untouched. */
4
+ export type RichTreeViewItem = {
5
+ id?: string;
6
+ label?: ReactNode;
7
+ children?: RichTreeViewItem[];
8
+ [key: string]: unknown;
9
+ };
10
+ export interface RichTreeViewProps<T extends RichTreeViewItem = RichTreeViewItem> extends TreeViewProps {
11
+ /** Hierarchical data. */
12
+ items: T[];
13
+ /** Derive a stable id. Default `item.id`. */
14
+ getItemId?: (item: T) => string;
15
+ /** Derive the row label. Default `item.label`. */
16
+ getItemLabel?: (item: T) => ReactNode;
17
+ /** Derive child items. Default `item.children`. */
18
+ getItemChildren?: (item: T) => T[] | undefined;
19
+ /** Optional per-item leading icon. */
20
+ getItemIcon?: (item: T) => ReactNode;
21
+ }
22
+ /**
23
+ * Data-driven tree. Renders a `TreeView` from a `items` array; all expansion /
24
+ * selection props are forwarded to the underlying `TreeView`.
25
+ */
26
+ export declare const RichTreeView: <T extends RichTreeViewItem = RichTreeViewItem>(props: RichTreeViewProps<T> & {
27
+ ref?: Ref<HTMLUListElement>;
28
+ }) => ReactElement;
@@ -0,0 +1,31 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface TreeViewProps extends Omit<HTMLAttributes<HTMLUListElement>, 'onSelect'> {
3
+ /** Controlled set of expanded item ids. */
4
+ expandedIds?: string[];
5
+ /** Initial expanded ids when uncontrolled. */
6
+ defaultExpandedIds?: string[];
7
+ /** Fired with the next expanded ids whenever an item expands or collapses. */
8
+ onExpandedChange?: (ids: string[]) => void;
9
+ /** Controlled selected item id. */
10
+ selectedId?: string | null;
11
+ /** Initial selected id when uncontrolled. */
12
+ defaultSelectedId?: string | null;
13
+ /** Fired with the selected id. */
14
+ onSelectedChange?: (id: string) => void;
15
+ /** Fired when a specific item toggles — `(id, willExpand)`. Use for lazy loading. */
16
+ onItemExpandToggle?: (id: string, expanded: boolean) => void;
17
+ /** Auto folder/file icons for items without their own icon. Default `true`. */
18
+ defaultIcons?: boolean;
19
+ }
20
+ export declare const TreeView: import("react").ForwardRefExoticComponent<TreeViewProps & import("react").RefAttributes<HTMLUListElement>>;
21
+ export interface TreeItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'id'> {
22
+ /** Stable id for this node. */
23
+ itemId: string;
24
+ /** Row label. */
25
+ label: ReactNode;
26
+ /** Optional leading icon. */
27
+ icon?: ReactNode;
28
+ /** Child TreeItems. */
29
+ children?: ReactNode;
30
+ }
31
+ export declare const TreeItem: import("react").ForwardRefExoticComponent<TreeItemProps & import("react").RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,4 @@
1
+ export { TreeView, TreeItem } from './TreeView';
2
+ export type { TreeViewProps, TreeItemProps } from './TreeView';
3
+ export { RichTreeView } from './RichTreeView';
4
+ export type { RichTreeViewProps, RichTreeViewItem } from './RichTreeView';