@bienui/core 0.1.13

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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +417 -0
  3. package/dist/bien-ui.cjs.js +31 -0
  4. package/dist/bien-ui.cjs.js.map +1 -0
  5. package/dist/bien-ui.esm.js +15571 -0
  6. package/dist/bien-ui.esm.js.map +1 -0
  7. package/dist/components/Display/Avatar.d.ts +19 -0
  8. package/dist/components/Display/Badge.d.ts +10 -0
  9. package/dist/components/Display/Card.d.ts +25 -0
  10. package/dist/components/Display/ColorSwatch.d.ts +8 -0
  11. package/dist/components/Display/List.d.ts +62 -0
  12. package/dist/components/Display/Meter.d.ts +59 -0
  13. package/dist/components/Display/ProfileAvatar.d.ts +16 -0
  14. package/dist/components/Display/Table.d.ts +66 -0
  15. package/dist/components/Display/Tags.d.ts +10 -0
  16. package/dist/components/Display/Text.d.ts +21 -0
  17. package/dist/components/Display/Timeline.d.ts +13 -0
  18. package/dist/components/Display/index.d.ts +11 -0
  19. package/dist/components/Feedback/Accordion.d.ts +40 -0
  20. package/dist/components/Feedback/AccordionItem.d.ts +10 -0
  21. package/dist/components/Feedback/Banner.d.ts +20 -0
  22. package/dist/components/Feedback/Callout.d.ts +22 -0
  23. package/dist/components/Feedback/EmptyState.d.ts +42 -0
  24. package/dist/components/Feedback/Loading.d.ts +16 -0
  25. package/dist/components/Feedback/Modal.d.ts +17 -0
  26. package/dist/components/Feedback/Stepper.d.ts +18 -0
  27. package/dist/components/Feedback/Tabs.d.ts +19 -0
  28. package/dist/components/Feedback/index.d.ts +8 -0
  29. package/dist/components/Forms/Checkbox.d.ts +7 -0
  30. package/dist/components/Forms/DatePicker.d.ts +17 -0
  31. package/dist/components/Forms/Input.d.ts +8 -0
  32. package/dist/components/Forms/MarkdownTextarea.d.ts +10 -0
  33. package/dist/components/Forms/MultiSelect.d.ts +21 -0
  34. package/dist/components/Forms/Radio.d.ts +12 -0
  35. package/dist/components/Forms/RadioGroup.d.ts +20 -0
  36. package/dist/components/Forms/Select.d.ts +13 -0
  37. package/dist/components/Forms/Slider.d.ts +7 -0
  38. package/dist/components/Forms/Switch.d.ts +6 -0
  39. package/dist/components/Forms/Textarea.d.ts +8 -0
  40. package/dist/components/Forms/index.d.ts +11 -0
  41. package/dist/components/Icons/icons.d.ts +30 -0
  42. package/dist/components/Icons/index.d.ts +1 -0
  43. package/dist/components/Interactive/Button.d.ts +11 -0
  44. package/dist/components/Interactive/DraggableList.d.ts +20 -0
  45. package/dist/components/Interactive/FileDrop.d.ts +18 -0
  46. package/dist/components/Interactive/Hotspot.d.ts +33 -0
  47. package/dist/components/Interactive/Menu.d.ts +50 -0
  48. package/dist/components/Interactive/Panel.d.ts +29 -0
  49. package/dist/components/Interactive/Tooltip.d.ts +10 -0
  50. package/dist/components/Interactive/index.d.ts +7 -0
  51. package/dist/components/Layout/Container.d.ts +9 -0
  52. package/dist/components/Layout/Divider.d.ts +11 -0
  53. package/dist/components/Layout/Grid.d.ts +13 -0
  54. package/dist/components/Layout/Section.d.ts +9 -0
  55. package/dist/components/Layout/Spacer.d.ts +6 -0
  56. package/dist/components/Layout/Stack.d.ts +13 -0
  57. package/dist/components/Layout/index.d.ts +6 -0
  58. package/dist/components/Navigation/Breadcrumb.d.ts +16 -0
  59. package/dist/components/Navigation/Header.d.ts +20 -0
  60. package/dist/components/Navigation/Link.d.ts +26 -0
  61. package/dist/components/Navigation/Sidenav.d.ts +18 -0
  62. package/dist/components/Navigation/index.d.ts +4 -0
  63. package/dist/components/Providers/BienProvider.d.ts +14 -0
  64. package/dist/components/Providers/ToastProvider.d.ts +16 -0
  65. package/dist/components/Providers/TooltipProvider.d.ts +2 -0
  66. package/dist/components/Providers/index.d.ts +3 -0
  67. package/dist/components/Utils/ThinkingText.d.ts +10 -0
  68. package/dist/components/Utils/Toast.d.ts +16 -0
  69. package/dist/components/Utils/index.d.ts +1 -0
  70. package/dist/index.d.ts +12 -0
  71. package/dist/types/index.d.ts +14 -0
  72. package/package.json +156 -0
@@ -0,0 +1,19 @@
1
+ export interface AvatarProps {
2
+ src?: string;
3
+ alt?: string;
4
+ name?: string;
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
6
+ shape?: 'circle' | 'square';
7
+ status?: 'online' | 'offline' | 'away' | 'busy';
8
+ showStatus?: boolean;
9
+ icon?: React.ReactNode;
10
+ className?: string;
11
+ }
12
+ export interface AvatarGroupProps {
13
+ children: React.ReactNode;
14
+ max?: number;
15
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
16
+ className?: string;
17
+ }
18
+ export declare function Avatar({ src, alt, name, size, shape, status, showStatus, icon, className, }: AvatarProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function AvatarGroup({ children, max, size, className, }: AvatarGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export interface BadgeProps {
2
+ children: React.ReactNode;
3
+ variant?: 'success' | 'error' | 'warning' | 'info' | 'neutral' | 'primary' | 'ai';
4
+ size?: 'sm' | 'md' | 'lg';
5
+ icon?: React.ReactNode;
6
+ dot?: boolean;
7
+ outline?: boolean;
8
+ className?: string;
9
+ }
10
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,25 @@
1
+ export interface CardProps {
2
+ children: React.ReactNode;
3
+ variant?: 'elevated' | 'outlined' | 'filled' | 'ghost' | 'ai' | 'glass-frost' | 'glass-tint';
4
+ color?: 'blue' | 'teal' | 'purple' | 'yellow';
5
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
6
+ radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
7
+ shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
8
+ gradient?: 'primary' | 'purple' | 'accent' | 'blue' | 'rainbow';
9
+ topGradient?: 'primary' | 'purple' | 'accent' | 'blue' | 'rainbow' | false;
10
+ hoverable?: boolean;
11
+ clickable?: boolean;
12
+ bordered?: boolean;
13
+ collapsible?: boolean;
14
+ defaultExpanded?: boolean;
15
+ expanded?: boolean;
16
+ onExpandChange?: (expanded: boolean) => void;
17
+ header?: React.ReactNode;
18
+ footer?: React.ReactNode;
19
+ title?: string;
20
+ subtitle?: string;
21
+ className?: string;
22
+ style?: React.CSSProperties;
23
+ onClick?: () => void;
24
+ }
25
+ export declare function Card({ children, variant, color, padding, radius, shadow, gradient, topGradient, hoverable, clickable, bordered, collapsible, defaultExpanded, expanded: controlledExpanded, onExpandChange, header, footer, title, subtitle, className, style, onClick, }: CardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export interface ColorSwatchProps {
2
+ name: string;
3
+ hex: string;
4
+ rgb?: string;
5
+ usage: string;
6
+ gradient?: string;
7
+ }
8
+ export declare function ColorSwatch({ name, hex, rgb, usage, gradient, }: ColorSwatchProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,62 @@
1
+ import { ReactNode, HTMLAttributes } from 'react';
2
+ export interface ListProps extends Omit<HTMLAttributes<HTMLUListElement | HTMLOListElement>, 'className'> {
3
+ /** List type */
4
+ type?: 'unordered' | 'ordered' | 'unstyled';
5
+ /** Visual style for list markers */
6
+ markerStyle?: 'default' | 'circle' | 'square' | 'disc' | 'decimal' | 'roman' | 'alpha' | 'none';
7
+ /** Size of the list items */
8
+ size?: 'sm' | 'md' | 'lg';
9
+ /** Spacing between items */
10
+ spacing?: 'none' | 'sm' | 'md' | 'lg';
11
+ /** Whether to show dividers between items */
12
+ dividers?: boolean;
13
+ /** Children list items */
14
+ children: ReactNode;
15
+ /** Additional CSS class */
16
+ className?: string;
17
+ }
18
+ export declare function List({ type, markerStyle, size, spacing, dividers, children, className, ...props }: ListProps): import("react/jsx-runtime").JSX.Element;
19
+ export interface ListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'className'> {
20
+ /** Icon to display before content */
21
+ icon?: ReactNode;
22
+ /** Avatar to display before content */
23
+ avatar?: ReactNode;
24
+ /** Whether item is interactive/clickable */
25
+ interactive?: boolean;
26
+ /** Whether item is active */
27
+ active?: boolean;
28
+ /** Whether item is disabled */
29
+ disabled?: boolean;
30
+ /** Click handler */
31
+ onClick?: () => void;
32
+ /** Children content */
33
+ children: ReactNode;
34
+ /** Additional CSS class */
35
+ className?: string;
36
+ }
37
+ export declare function ListItem({ icon, avatar, interactive, active, disabled, onClick, children, className, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
38
+ export interface DescriptionListProps extends Omit<HTMLAttributes<HTMLDListElement>, 'className'> {
39
+ /** Size of the list */
40
+ size?: 'sm' | 'md' | 'lg';
41
+ /** Layout orientation */
42
+ orientation?: 'vertical' | 'horizontal';
43
+ /** Spacing between items */
44
+ spacing?: 'none' | 'sm' | 'md' | 'lg';
45
+ /** Whether to show dividers */
46
+ dividers?: boolean;
47
+ /** Children content */
48
+ children: ReactNode;
49
+ /** Additional CSS class */
50
+ className?: string;
51
+ }
52
+ export declare function DescriptionList({ size, orientation, spacing, dividers, children, className, ...props }: DescriptionListProps): import("react/jsx-runtime").JSX.Element;
53
+ export interface DescriptionTermProps extends Omit<HTMLAttributes<HTMLElement>, 'className'> {
54
+ children: ReactNode;
55
+ className?: string;
56
+ }
57
+ export declare function DescriptionTerm({ children, className, ...props }: DescriptionTermProps): import("react/jsx-runtime").JSX.Element;
58
+ export interface DescriptionDetailsProps extends Omit<HTMLAttributes<HTMLElement>, 'className'> {
59
+ children: ReactNode;
60
+ className?: string;
61
+ }
62
+ export declare function DescriptionDetails({ children, className, ...props }: DescriptionDetailsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,59 @@
1
+ import { CSSProperties } from 'react';
2
+ export interface MeterProps {
3
+ /** Current value */
4
+ value: number;
5
+ /** Minimum value */
6
+ min?: number;
7
+ /** Maximum value */
8
+ max?: number;
9
+ /** Visual variant */
10
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'gradient-primary' | 'gradient-purple';
11
+ /** Size of the meter */
12
+ size?: 'sm' | 'md' | 'lg';
13
+ /** Label text */
14
+ label?: string;
15
+ /** Whether to show value */
16
+ showValue?: boolean;
17
+ /** Custom value formatter */
18
+ valueFormatter?: (value: number) => string;
19
+ /** Whether meter is optimum (positive) or suboptimum (negative) */
20
+ optimum?: 'low' | 'high';
21
+ /** Threshold values for status colors */
22
+ thresholds?: {
23
+ low?: number;
24
+ high?: number;
25
+ optimum?: number;
26
+ };
27
+ /** Whether to animate value changes */
28
+ animated?: boolean;
29
+ /** Additional CSS class */
30
+ className?: string;
31
+ /** Additional styles */
32
+ style?: CSSProperties;
33
+ }
34
+ export declare function Meter({ value, min, max, variant, size, label, showValue, valueFormatter, optimum, thresholds, animated, className, style, }: MeterProps): import("react/jsx-runtime").JSX.Element;
35
+ export interface CircularMeterProps {
36
+ /** Current value */
37
+ value: number;
38
+ /** Minimum value */
39
+ min?: number;
40
+ /** Maximum value */
41
+ max?: number;
42
+ /** Visual variant */
43
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'gradient-primary' | 'gradient-purple';
44
+ /** Size of the meter */
45
+ size?: number;
46
+ /** Stroke width */
47
+ strokeWidth?: number;
48
+ /** Label text */
49
+ label?: string;
50
+ /** Whether to show value in center */
51
+ showValue?: boolean;
52
+ /** Custom value formatter */
53
+ valueFormatter?: (value: number) => string;
54
+ /** Whether to animate value changes */
55
+ animated?: boolean;
56
+ /** Additional CSS class */
57
+ className?: string;
58
+ }
59
+ export declare function CircularMeter({ value, min, max, variant, size, strokeWidth, label, showValue, valueFormatter, animated, className, }: CircularMeterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ export interface ProfileAvatarProps {
2
+ src?: string;
3
+ alt?: string;
4
+ name?: string;
5
+ size?: 'md' | 'lg' | 'xl' | '2xl';
6
+ shape?: 'circle' | 'square';
7
+ status?: 'online' | 'offline' | 'away' | 'busy';
8
+ showStatus?: boolean;
9
+ editable?: boolean;
10
+ onEdit?: () => void;
11
+ badge?: React.ReactNode;
12
+ ring?: boolean;
13
+ ringColor?: 'brand' | 'success' | 'warning' | 'error';
14
+ className?: string;
15
+ }
16
+ export declare function ProfileAvatar({ src, alt, name, size, shape, status, showStatus, editable, onEdit, badge, ring, ringColor, className, }: ProfileAvatarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,66 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ export interface TableColumn<T = Record<string, unknown>> {
3
+ /** Unique key for the column */
4
+ key: string;
5
+ /** Column header label */
6
+ label: string;
7
+ /** Width of the column */
8
+ width?: string | number;
9
+ /** Whether column is sortable */
10
+ sortable?: boolean;
11
+ /** Custom render function for cells */
12
+ render?: (value: unknown, row: T, index: number) => ReactNode;
13
+ /** Alignment of column content */
14
+ align?: 'left' | 'center' | 'right';
15
+ }
16
+ export interface TableProps<T = Record<string, unknown>> {
17
+ /** Column definitions */
18
+ columns: TableColumn<T>[];
19
+ /** Table data */
20
+ data: T[];
21
+ /** Visual variant */
22
+ variant?: 'default' | 'bordered' | 'striped' | 'minimal';
23
+ /** Header style variant */
24
+ headerVariant?: 'default' | 'glass-frost' | 'glass-tint';
25
+ /** Size of table cells */
26
+ size?: 'compact' | 'comfortable' | 'spacious';
27
+ /** Whether rows are hoverable */
28
+ hoverable?: boolean;
29
+ /** Whether rows are selectable */
30
+ selectable?: boolean;
31
+ /** Selected row keys */
32
+ selectedRows?: string[];
33
+ /** Callback when selection changes */
34
+ onSelectionChange?: (selectedKeys: string[]) => void;
35
+ /** Row key extractor */
36
+ rowKey?: (row: T) => string;
37
+ /** Custom row click handler */
38
+ onRowClick?: (row: T, index: number) => void;
39
+ /** Empty state content */
40
+ emptyState?: ReactNode;
41
+ /** Caption for the table */
42
+ caption?: string;
43
+ /** Whether table has sticky header */
44
+ stickyHeader?: boolean;
45
+ /** Max height for scrollable table */
46
+ maxHeight?: string | number;
47
+ /** Enable pagination */
48
+ pagination?: boolean;
49
+ /** Current page (1-indexed) */
50
+ page?: number;
51
+ /** Page size */
52
+ pageSize?: number;
53
+ /** Total number of items */
54
+ total?: number;
55
+ /** Callback when page changes */
56
+ onPageChange?: (page: number) => void;
57
+ /** Callback when page size changes */
58
+ onPageSizeChange?: (pageSize: number) => void;
59
+ /** Available page size options */
60
+ pageSizeOptions?: number[];
61
+ /** Additional CSS class */
62
+ className?: string;
63
+ /** Additional styles */
64
+ style?: CSSProperties;
65
+ }
66
+ export declare function Table<T = Record<string, unknown>>({ columns, data, variant, headerVariant, size, hoverable, selectable, selectedRows, onSelectionChange, rowKey, onRowClick, emptyState, caption, stickyHeader, maxHeight, pagination, page, pageSize, total, onPageChange, onPageSizeChange, pageSizeOptions, className, style, }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export interface TagsProps {
2
+ children: React.ReactNode;
3
+ variant?: 'success' | 'error' | 'warning' | 'info' | 'neutral' | 'primary' | 'accent' | 'purple' | 'gradient-primary' | 'gradient-purple' | 'gradient-accent' | 'gradient-rainbow' | 'gradient-blue' | 'gradient-teal';
4
+ size?: 'sm' | 'md' | 'lg';
5
+ onRemove?: () => void;
6
+ removable?: boolean;
7
+ disabled?: boolean;
8
+ className?: string;
9
+ }
10
+ export declare const Tags: import("react").ForwardRefExoticComponent<TagsProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,21 @@
1
+ export interface TextProps {
2
+ children: React.ReactNode;
3
+ as?: 'p' | 'span' | 'div' | 'label' | 'strong' | 'em' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
4
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
5
+ weight?: 'light' | 'normal' | 'medium' | 'semibold' | 'bold' | 'extrabold';
6
+ tone?: 'primary' | 'secondary' | 'tertiary' | 'inverse' | 'brand' | 'success' | 'error' | 'warning' | 'accent' | 'purple' | 'blue';
7
+ align?: 'left' | 'center' | 'right' | 'justify';
8
+ truncate?: boolean;
9
+ maxLines?: number;
10
+ gradient?: 'primary' | 'purple' | 'accent' | 'blue' | 'rainbow';
11
+ highlight?: boolean;
12
+ highlightColor?: 'primary' | 'accent' | 'purple' | 'blue';
13
+ decoration?: 'underline' | 'line-through' | 'none';
14
+ transform?: 'uppercase' | 'lowercase' | 'capitalize' | 'none';
15
+ letterSpacing?: 'tight' | 'normal' | 'wide' | 'wider';
16
+ lineHeight?: 'tight' | 'normal' | 'relaxed' | 'loose';
17
+ italic?: boolean;
18
+ className?: string;
19
+ style?: React.CSSProperties;
20
+ }
21
+ export declare function Text({ children, as: Component, size, weight, tone, align, truncate, maxLines, gradient, highlight, highlightColor, decoration, transform, letterSpacing, lineHeight, italic, className, style, }: TextProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export interface TimelineItem {
2
+ id: string;
3
+ title: string;
4
+ description?: string;
5
+ time?: string;
6
+ content?: React.ReactNode;
7
+ }
8
+ export interface TimelineProps {
9
+ items: TimelineItem[];
10
+ orientation?: 'vertical' | 'horizontal';
11
+ className?: string;
12
+ }
13
+ export declare function Timeline({ items, orientation, className, }: TimelineProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export { Text } from './Text';
2
+ export { Card } from './Card';
3
+ export { Badge } from './Badge';
4
+ export { Tags } from './Tags';
5
+ export { Avatar, AvatarGroup } from './Avatar';
6
+ export { ProfileAvatar } from './ProfileAvatar';
7
+ export { Timeline } from './Timeline';
8
+ export { Meter, CircularMeter } from './Meter';
9
+ export { Table } from './Table';
10
+ export { List, ListItem, DescriptionList, DescriptionTerm, DescriptionDetails, } from './List';
11
+ export { ColorSwatch } from './ColorSwatch';
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from 'react';
2
+ import { AccordionItem } from './AccordionItem';
3
+ interface AccordionContextValue {
4
+ expandedItems: string[];
5
+ toggleItem: (value: string) => void;
6
+ variant: 'default' | 'bordered' | 'filled' | 'ai';
7
+ allowMultiple: boolean;
8
+ }
9
+ export declare const useAccordionContext: () => AccordionContextValue;
10
+ /**
11
+ * Props for the Accordion component
12
+ */
13
+ export interface AccordionProps {
14
+ /** The accordion items to render */
15
+ children: ReactNode;
16
+ /** Visual style variant of the accordion */
17
+ variant?: 'default' | 'bordered' | 'filled' | 'ai';
18
+ /** Allow multiple items to be expanded simultaneously */
19
+ allowMultiple?: boolean;
20
+ /** Default expanded item(s) */
21
+ defaultValue?: string | string[];
22
+ /** Controlled expanded item(s) */
23
+ value?: string | string[];
24
+ /** Callback when expanded items change */
25
+ onValueChange?: (value: string | string[]) => void;
26
+ /** Additional CSS class name */
27
+ className?: string;
28
+ /** Inline styles */
29
+ style?: React.CSSProperties;
30
+ }
31
+ /**
32
+ * Accordion component for creating collapsible content sections.
33
+ * Allows users to expand and collapse information panels. Perfect for FAQs,
34
+ * settings panels, and organizing content in a compact space.
35
+ */
36
+ export declare function AccordionRoot({ children, variant, allowMultiple, defaultValue, value: controlledValue, onValueChange, className, style, }: AccordionProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare const Accordion: typeof AccordionRoot & {
38
+ Item: typeof AccordionItem;
39
+ };
40
+ export {};
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ export interface AccordionItemProps {
3
+ value: string;
4
+ title: string;
5
+ subtitle?: string;
6
+ children: ReactNode;
7
+ disabled?: boolean;
8
+ className?: string;
9
+ }
10
+ export declare function AccordionItem({ value, title, subtitle, children, disabled, className, }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ export interface BannerAction {
2
+ label: string;
3
+ onClick: () => void;
4
+ variant?: 'primary' | 'secondary';
5
+ }
6
+ export interface BannerProps {
7
+ title?: string;
8
+ children: React.ReactNode;
9
+ variant?: 'info' | 'success' | 'warning' | 'error' | 'neutral' | 'ai';
10
+ icon?: React.ReactNode;
11
+ actions?: BannerAction[];
12
+ dismissible?: boolean;
13
+ onDismiss?: () => void;
14
+ defaultVisible?: boolean;
15
+ visible?: boolean;
16
+ sticky?: boolean;
17
+ className?: string;
18
+ style?: React.CSSProperties;
19
+ }
20
+ export declare function Banner({ title, children, variant, icon, actions, dismissible, onDismiss, defaultVisible, visible: controlledVisible, sticky, className, style, }: BannerProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ export interface CalloutAction {
3
+ label: string;
4
+ onClick: () => void;
5
+ variant?: 'primary' | 'secondary';
6
+ }
7
+ export interface CalloutProps {
8
+ children: ReactNode;
9
+ trigger: ReactNode;
10
+ title?: string;
11
+ description?: string;
12
+ actions?: CalloutAction[];
13
+ variant?: 'default' | 'glass-frost' | 'glass-tint';
14
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
15
+ showArrow?: boolean;
16
+ open?: boolean;
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ closeOnClickOutside?: boolean;
20
+ className?: string;
21
+ }
22
+ export declare function Callout({ children, trigger, title, description, actions, variant, position, showArrow, open: controlledOpen, defaultOpen, onOpenChange, closeOnClickOutside, className, }: CalloutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+ declare const illustrations: {
3
+ 'no-data': import("react/jsx-runtime").JSX.Element;
4
+ 'no-results': import("react/jsx-runtime").JSX.Element;
5
+ 'no-notifications': import("react/jsx-runtime").JSX.Element;
6
+ error: import("react/jsx-runtime").JSX.Element;
7
+ 'coming-soon': import("react/jsx-runtime").JSX.Element;
8
+ 'folder-empty': import("react/jsx-runtime").JSX.Element;
9
+ 'inbox-zero': import("react/jsx-runtime").JSX.Element;
10
+ };
11
+ export type EmptyStateIllustration = keyof typeof illustrations;
12
+ /**
13
+ * Props for the EmptyState component
14
+ */
15
+ export interface EmptyStateProps {
16
+ /**
17
+ * The illustration to display in the empty state. Can be a predefined illustration type or a custom React node.
18
+ */
19
+ illustration?: EmptyStateIllustration | ReactNode;
20
+ /**
21
+ * The main title text to display in the empty state.
22
+ */
23
+ title: string;
24
+ /**
25
+ * Optional description text to provide additional context about the empty state.
26
+ */
27
+ description?: string;
28
+ /**
29
+ * Optional action element (like a button) to help users resolve the empty state.
30
+ */
31
+ action?: ReactNode;
32
+ /**
33
+ * Optional CSS class name for custom styling.
34
+ */
35
+ className?: string;
36
+ /**
37
+ * Optional inline styles to apply to the component.
38
+ */
39
+ style?: React.CSSProperties;
40
+ }
41
+ export declare function EmptyState({ illustration, title, description, action, className, style, }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
42
+ export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Props for the Loading component
3
+ */
4
+ export interface LoadingProps {
5
+ /** Size of the loading indicator. Defaults to 'md' if not specified */
6
+ size?: 'sm' | 'md' | 'lg' | 'xl';
7
+ /** Visual style variant of the loading indicator. Defaults to 'spinner' if not specified */
8
+ variant?: 'spinner' | 'dots' | 'pulse' | 'ring';
9
+ /** Optional message to display alongside the loading indicator */
10
+ message?: string;
11
+ /** Additional CSS class names to apply to the loading component */
12
+ className?: string;
13
+ /** Inline styles to apply to the loading component */
14
+ style?: React.CSSProperties;
15
+ }
16
+ export declare function Loading({ size, variant, message, className, style, }: LoadingProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export interface ModalProps {
2
+ open: boolean;
3
+ onClose: () => void;
4
+ children: React.ReactNode;
5
+ title?: string;
6
+ subtitle?: string;
7
+ header?: React.ReactNode;
8
+ footer?: React.ReactNode;
9
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen';
10
+ variant?: 'default' | 'centered';
11
+ headerVariant?: 'default' | 'glass-frost' | 'glass-tint';
12
+ gradient?: 'primary' | 'purple' | 'accent' | 'blue' | 'rainbow';
13
+ closeOnOverlayClick?: boolean;
14
+ showCloseButton?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare function Modal({ open, onClose, children, title, subtitle, header, footer, size, variant, headerVariant, gradient, closeOnOverlayClick, showCloseButton, className, }: ModalProps): import("react").ReactPortal | null;
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ export interface Step {
3
+ label: string;
4
+ description?: string;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface StepperProps {
8
+ steps: Step[];
9
+ currentStep: number;
10
+ orientation?: 'horizontal' | 'vertical';
11
+ variant?: 'default' | 'numbered' | 'dots';
12
+ size?: 'default' | 'compact';
13
+ clickable?: boolean;
14
+ onStepClick?: (step: number) => void;
15
+ className?: string;
16
+ style?: React.CSSProperties;
17
+ }
18
+ export declare function Stepper({ steps, currentStep, orientation, variant, size, clickable, onStepClick, className, style, }: StepperProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ export interface Tab {
2
+ id: string;
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ content?: React.ReactNode;
6
+ disabled?: boolean;
7
+ badge?: string | number;
8
+ }
9
+ export interface TabsProps {
10
+ tabs: Tab[];
11
+ defaultTab?: string;
12
+ variant?: 'default' | 'underline' | 'pills' | 'filled';
13
+ size?: 'sm' | 'md' | 'lg';
14
+ fullWidth?: boolean;
15
+ vertical?: boolean;
16
+ onChange?: (tabId: string) => void;
17
+ className?: string;
18
+ }
19
+ export declare function Tabs({ tabs, defaultTab, variant, size, fullWidth, vertical, onChange, className, }: TabsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export { Loading } from './Loading';
2
+ export { EmptyState } from './EmptyState';
3
+ export { Banner } from './Banner';
4
+ export { Callout } from './Callout';
5
+ export { Modal } from './Modal';
6
+ export { Accordion } from './Accordion';
7
+ export { Tabs } from './Tabs';
8
+ export { Stepper } from './Stepper';
@@ -0,0 +1,7 @@
1
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
2
+ label?: string;
3
+ error?: string;
4
+ hint?: string;
5
+ indeterminate?: boolean;
6
+ }
7
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,17 @@
1
+ export interface DateRange {
2
+ start: Date | undefined;
3
+ end: Date | undefined;
4
+ }
5
+ export interface DatePickerProps {
6
+ value?: Date;
7
+ onChange?: (date: Date) => void;
8
+ range?: boolean;
9
+ rangeValue?: DateRange;
10
+ onRangeChange?: (range: DateRange) => void;
11
+ minDate?: Date;
12
+ maxDate?: Date;
13
+ placeholder?: string;
14
+ disabled?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare function DatePicker({ value, onChange, range, rangeValue, onRangeChange, minDate, maxDate, placeholder, disabled, className, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
2
+ label?: string;
3
+ hint?: string;
4
+ error?: string;
5
+ startElement?: React.ReactNode;
6
+ endElement?: React.ReactNode;
7
+ }
8
+ export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,10 @@
1
+ export interface MarkdownTextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {
2
+ label?: string;
3
+ error?: string;
4
+ hint?: string;
5
+ showCount?: boolean;
6
+ onChange?: (value: string) => void;
7
+ value?: string;
8
+ defaultValue?: string;
9
+ }
10
+ export declare const MarkdownTextarea: import("react").ForwardRefExoticComponent<MarkdownTextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,21 @@
1
+ export interface MultiSelectOption {
2
+ value: string;
3
+ label: string;
4
+ disabled?: boolean;
5
+ }
6
+ export interface MultiSelectProps {
7
+ label?: string;
8
+ error?: string;
9
+ hint?: string;
10
+ options: MultiSelectOption[];
11
+ placeholder?: string;
12
+ value?: string[];
13
+ onChange?: (value: string[]) => void;
14
+ className?: string;
15
+ disabled?: boolean;
16
+ required?: boolean;
17
+ searchable?: boolean;
18
+ maxTags?: number;
19
+ variant?: 'primary' | 'accent' | 'purple' | 'neutral' | 'error' | 'warning' | 'info' | 'gradient-primary' | 'gradient-purple';
20
+ }
21
+ export declare const MultiSelect: import("react").ForwardRefExoticComponent<MultiSelectProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,12 @@
1
+ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
2
+ label?: string;
3
+ }
4
+ export declare const Radio: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<HTMLInputElement>>;
5
+ export interface RadioGroupProps {
6
+ label?: string;
7
+ error?: string;
8
+ hint?: string;
9
+ children: React.ReactNode;
10
+ className?: string;
11
+ }
12
+ export declare function RadioGroup({ label, error, hint, children, className, }: RadioGroupProps): import("react/jsx-runtime").JSX.Element;