@vtx-ui/react 0.0.1-beta.1

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 (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +228 -0
  3. package/dist/components/Accordion/Accordion.d.ts +31 -0
  4. package/dist/components/Accordion/Accordion.examples.d.ts +3 -0
  5. package/dist/components/Accordion/AccordionItem.d.ts +5 -0
  6. package/dist/components/Accordion/index.d.ts +4 -0
  7. package/dist/components/Accordion/types.d.ts +98 -0
  8. package/dist/components/Alert/Alert.d.ts +119 -0
  9. package/dist/components/Alert/index.d.ts +3 -0
  10. package/dist/components/Avatar/Avatar.d.ts +63 -0
  11. package/dist/components/Avatar/index.d.ts +3 -0
  12. package/dist/components/Badge/Badge.d.ts +81 -0
  13. package/dist/components/Badge/index.d.ts +3 -0
  14. package/dist/components/Button/Button.d.ts +117 -0
  15. package/dist/components/Button/index.d.ts +3 -0
  16. package/dist/components/Card/Card.d.ts +120 -0
  17. package/dist/components/Card/index.d.ts +3 -0
  18. package/dist/components/Checkbox/Checkbox.d.ts +114 -0
  19. package/dist/components/Checkbox/index.d.ts +3 -0
  20. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +121 -0
  21. package/dist/components/CheckboxGroup/index.d.ts +3 -0
  22. package/dist/components/Chip/Chip.d.ts +91 -0
  23. package/dist/components/Chip/index.d.ts +3 -0
  24. package/dist/components/Divider/Divider.d.ts +118 -0
  25. package/dist/components/Divider/index.d.ts +3 -0
  26. package/dist/components/Flex/Flex.d.ts +66 -0
  27. package/dist/components/Flex/index.d.ts +3 -0
  28. package/dist/components/Grid/Grid.d.ts +156 -0
  29. package/dist/components/Grid/index.d.ts +3 -0
  30. package/dist/components/Header/Header.d.ts +138 -0
  31. package/dist/components/Header/index.d.ts +3 -0
  32. package/dist/components/Input/Input.d.ts +129 -0
  33. package/dist/components/Input/index.d.ts +3 -0
  34. package/dist/components/Menu/Menu.d.ts +114 -0
  35. package/dist/components/Menu/index.d.ts +4 -0
  36. package/dist/components/Modal/Modal.d.ts +201 -0
  37. package/dist/components/Modal/index.d.ts +3 -0
  38. package/dist/components/MultiSelect/MultiSelect.d.ts +190 -0
  39. package/dist/components/MultiSelect/index.d.ts +3 -0
  40. package/dist/components/Radio/Radio.d.ts +105 -0
  41. package/dist/components/Radio/index.d.ts +3 -0
  42. package/dist/components/RadioGroup/RadioGroup.d.ts +134 -0
  43. package/dist/components/RadioGroup/index.d.ts +3 -0
  44. package/dist/components/Select/Select.d.ts +169 -0
  45. package/dist/components/Select/index.d.ts +3 -0
  46. package/dist/components/SideMenu/SideMenu.d.ts +118 -0
  47. package/dist/components/SideMenu/index.d.ts +4 -0
  48. package/dist/components/Table/Table.d.ts +211 -0
  49. package/dist/components/Table/index.d.ts +3 -0
  50. package/dist/components/Text/Text.d.ts +160 -0
  51. package/dist/components/Text/index.d.ts +3 -0
  52. package/dist/components/Toast/Toast.d.ts +56 -0
  53. package/dist/components/Toast/ToastContainer.d.ts +6 -0
  54. package/dist/components/Toast/index.d.ts +5 -0
  55. package/dist/components/Toast/types.d.ts +148 -0
  56. package/dist/components/Toast/useToast.d.ts +34 -0
  57. package/dist/components/Tooltip/Tooltip.d.ts +108 -0
  58. package/dist/components/Tooltip/index.d.ts +3 -0
  59. package/dist/hooks/index.d.ts +85 -0
  60. package/dist/hooks/useTheme.d.ts +268 -0
  61. package/dist/index.cjs.js +2 -0
  62. package/dist/index.cjs.js.map +1 -0
  63. package/dist/index.d.ts +55 -0
  64. package/dist/index.esm.js +2 -0
  65. package/dist/index.esm.js.map +1 -0
  66. package/dist/theme/ThemeProvider.d.ts +39 -0
  67. package/dist/theme/cssVariables.d.ts +9 -0
  68. package/dist/theme/index.d.ts +6 -0
  69. package/dist/theme/tokens.d.ts +258 -0
  70. package/dist/types/components/Accordion/Accordion.d.ts +31 -0
  71. package/dist/types/components/Accordion/Accordion.examples.d.ts +3 -0
  72. package/dist/types/components/Accordion/AccordionItem.d.ts +5 -0
  73. package/dist/types/components/Accordion/index.d.ts +4 -0
  74. package/dist/types/components/Accordion/types.d.ts +98 -0
  75. package/dist/types/components/Alert/Alert.d.ts +119 -0
  76. package/dist/types/components/Alert/index.d.ts +3 -0
  77. package/dist/types/components/Avatar/Avatar.d.ts +63 -0
  78. package/dist/types/components/Avatar/index.d.ts +3 -0
  79. package/dist/types/components/Badge/Badge.d.ts +81 -0
  80. package/dist/types/components/Badge/index.d.ts +3 -0
  81. package/dist/types/components/Button/Button.d.ts +117 -0
  82. package/dist/types/components/Button/index.d.ts +3 -0
  83. package/dist/types/components/Card/Card.d.ts +120 -0
  84. package/dist/types/components/Card/index.d.ts +3 -0
  85. package/dist/types/components/Checkbox/Checkbox.d.ts +114 -0
  86. package/dist/types/components/Checkbox/index.d.ts +3 -0
  87. package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +121 -0
  88. package/dist/types/components/CheckboxGroup/index.d.ts +3 -0
  89. package/dist/types/components/Chip/Chip.d.ts +91 -0
  90. package/dist/types/components/Chip/index.d.ts +3 -0
  91. package/dist/types/components/Divider/Divider.d.ts +118 -0
  92. package/dist/types/components/Divider/index.d.ts +3 -0
  93. package/dist/types/components/Flex/Flex.d.ts +66 -0
  94. package/dist/types/components/Flex/index.d.ts +3 -0
  95. package/dist/types/components/Grid/Grid.d.ts +156 -0
  96. package/dist/types/components/Grid/index.d.ts +3 -0
  97. package/dist/types/components/Header/Header.d.ts +138 -0
  98. package/dist/types/components/Header/index.d.ts +3 -0
  99. package/dist/types/components/Input/Input.d.ts +129 -0
  100. package/dist/types/components/Input/index.d.ts +3 -0
  101. package/dist/types/components/Menu/Menu.d.ts +114 -0
  102. package/dist/types/components/Menu/index.d.ts +4 -0
  103. package/dist/types/components/Modal/Modal.d.ts +201 -0
  104. package/dist/types/components/Modal/index.d.ts +3 -0
  105. package/dist/types/components/MultiSelect/MultiSelect.d.ts +190 -0
  106. package/dist/types/components/MultiSelect/index.d.ts +3 -0
  107. package/dist/types/components/Radio/Radio.d.ts +105 -0
  108. package/dist/types/components/Radio/index.d.ts +3 -0
  109. package/dist/types/components/RadioGroup/RadioGroup.d.ts +134 -0
  110. package/dist/types/components/RadioGroup/index.d.ts +3 -0
  111. package/dist/types/components/Select/Select.d.ts +169 -0
  112. package/dist/types/components/Select/index.d.ts +3 -0
  113. package/dist/types/components/SideMenu/SideMenu.d.ts +118 -0
  114. package/dist/types/components/SideMenu/index.d.ts +4 -0
  115. package/dist/types/components/Table/Table.d.ts +211 -0
  116. package/dist/types/components/Table/index.d.ts +3 -0
  117. package/dist/types/components/Text/Text.d.ts +160 -0
  118. package/dist/types/components/Text/index.d.ts +3 -0
  119. package/dist/types/components/Toast/Toast.d.ts +56 -0
  120. package/dist/types/components/Toast/ToastContainer.d.ts +6 -0
  121. package/dist/types/components/Toast/index.d.ts +5 -0
  122. package/dist/types/components/Toast/types.d.ts +148 -0
  123. package/dist/types/components/Toast/useToast.d.ts +34 -0
  124. package/dist/types/components/Tooltip/Tooltip.d.ts +108 -0
  125. package/dist/types/components/Tooltip/index.d.ts +3 -0
  126. package/dist/types/hooks/index.d.ts +85 -0
  127. package/dist/types/hooks/useTheme.d.ts +268 -0
  128. package/dist/types/index.d.ts +55 -0
  129. package/dist/types/theme/ThemeProvider.d.ts +39 -0
  130. package/dist/types/theme/cssVariables.d.ts +9 -0
  131. package/dist/types/theme/index.d.ts +6 -0
  132. package/dist/types/theme/tokens.d.ts +258 -0
  133. package/package.json +59 -0
@@ -0,0 +1,3 @@
1
+ export { default as Divider } from './Divider';
2
+ export type { DividerProps } from './Divider';
3
+ export { Divider as DividerComponent } from './Divider';
@@ -0,0 +1,66 @@
1
+ import React from 'react';
2
+ import './Flex.css';
3
+ export interface FlexProps {
4
+ /** Child elements */
5
+ children?: React.ReactNode;
6
+ /** Flex direction */
7
+ direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
8
+ /** Flex wrap behavior */
9
+ wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
10
+ /** Justify content alignment */
11
+ justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';
12
+ /** Align items alignment */
13
+ align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';
14
+ /** Align content alignment (multi-line) */
15
+ alignContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'stretch';
16
+ /** Gap between items */
17
+ gap?: number | string;
18
+ /** Row gap (overrides gap for rows) */
19
+ rowGap?: number | string;
20
+ /** Column gap (overrides gap for columns) */
21
+ columnGap?: number | string;
22
+ /** Whether the container is inline-flex */
23
+ inline?: boolean;
24
+ /** Whether the container takes full width (default: true) */
25
+ fullWidth?: boolean;
26
+ /** Flex grow value */
27
+ grow?: number;
28
+ /** Flex shrink value */
29
+ shrink?: number;
30
+ /** Flex basis value */
31
+ basis?: string | number;
32
+ /** Custom className */
33
+ className?: string;
34
+ /** Custom style */
35
+ style?: React.CSSProperties;
36
+ /** HTML element to render as */
37
+ as?: 'div' | 'section' | 'article' | 'aside' | 'header' | 'footer' | 'nav' | 'main';
38
+ }
39
+ /**
40
+ * Flex component - A flexible container for flexbox layouts
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * // Basic row with gap
45
+ * <Flex gap={16}>
46
+ * <div>Item 1</div>
47
+ * <div>Item 2</div>
48
+ * </Flex>
49
+ *
50
+ * // Centered column
51
+ * <Flex direction="column" align="center" justify="center">
52
+ * <h1>Title</h1>
53
+ * <p>Content</p>
54
+ * </Flex>
55
+ *
56
+ * // Space between with wrap
57
+ * <Flex justify="between" wrap="wrap" gap={8}>
58
+ * <button>Button 1</button>
59
+ * <button>Button 2</button>
60
+ * <button>Button 3</button>
61
+ * </Flex>
62
+ * ```
63
+ */
64
+ export declare const Flex: React.ForwardRefExoticComponent<FlexProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
65
+ declare const _default: React.FC<FlexProps & React.RefAttributes<HTMLDivElement>>;
66
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Flex } from './Flex';
2
+ export type { FlexProps } from './Flex';
3
+ export { Flex as FlexComponent } from './Flex';
@@ -0,0 +1,156 @@
1
+ import React from 'react';
2
+ import './Grid.css';
3
+ type GridSize = boolean | 'auto' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
4
+ type GridSpacing = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
5
+ export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ /**
7
+ * If true, the component will have the flex container behavior
8
+ * @default false
9
+ */
10
+ container?: boolean;
11
+ /**
12
+ * If true, the component will have the flex item behavior
13
+ * @default false
14
+ */
15
+ item?: boolean;
16
+ /**
17
+ * Defines the space between items (applies to container)
18
+ * @default 0
19
+ */
20
+ spacing?: GridSpacing;
21
+ /**
22
+ * Defines the row gap between items (applies to container)
23
+ */
24
+ rowSpacing?: GridSpacing;
25
+ /**
26
+ * Defines the column gap between items (applies to container)
27
+ */
28
+ columnSpacing?: GridSpacing;
29
+ /**
30
+ * Number of columns (1-12) for all breakpoints
31
+ */
32
+ xs?: GridSize;
33
+ /**
34
+ * Number of columns (1-12) for small devices (≥600px)
35
+ */
36
+ sm?: GridSize;
37
+ /**
38
+ * Number of columns (1-12) for medium devices (≥960px)
39
+ */
40
+ md?: GridSize;
41
+ /**
42
+ * Number of columns (1-12) for large devices (≥1280px)
43
+ */
44
+ lg?: GridSize;
45
+ /**
46
+ * Number of columns (1-12) for extra large devices (≥1920px)
47
+ */
48
+ xl?: GridSize;
49
+ /**
50
+ * Defines the justify-content style property
51
+ */
52
+ justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
53
+ /**
54
+ * Defines the align-items style property
55
+ */
56
+ alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';
57
+ /**
58
+ * Defines the align-content style property
59
+ */
60
+ alignContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'stretch';
61
+ /**
62
+ * Defines the flex-direction style property
63
+ */
64
+ direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
65
+ /**
66
+ * Defines the flex-wrap style property
67
+ */
68
+ wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
69
+ /**
70
+ * Additional CSS class name
71
+ */
72
+ className?: string;
73
+ /**
74
+ * The content of the component
75
+ */
76
+ children?: React.ReactNode;
77
+ }
78
+ /**
79
+ * Grid component - A responsive grid layout system
80
+ *
81
+ * The Grid component uses a 12-column responsive grid layout inspired by Material-UI.
82
+ * It supports five breakpoints (xs, sm, md, lg, xl) and provides flexible spacing,
83
+ * alignment, and direction options.
84
+ *
85
+ * ## Breakpoints
86
+ * - xs: 0px and up (extra small devices)
87
+ * - sm: 600px and up (small devices)
88
+ * - md: 960px and up (medium devices)
89
+ * - lg: 1280px and up (large devices)
90
+ * - xl: 1920px and up (extra large devices)
91
+ *
92
+ * ## CSS Customization
93
+ *
94
+ * You can customize the grid spacing using CSS custom properties:
95
+ *
96
+ * ```css
97
+ * :root {
98
+ * --vtx-grid-spacing-unit: 8px;
99
+ * }
100
+ * ```
101
+ *
102
+ * @example
103
+ * Basic grid with equal columns
104
+ * ```tsx
105
+ * <Grid container spacing={2}>
106
+ * <Grid item xs={12} sm={6} md={4}>
107
+ * <div>Column 1</div>
108
+ * </Grid>
109
+ * <Grid item xs={12} sm={6} md={4}>
110
+ * <div>Column 2</div>
111
+ * </Grid>
112
+ * <Grid item xs={12} sm={6} md={4}>
113
+ * <div>Column 3</div>
114
+ * </Grid>
115
+ * </Grid>
116
+ * ```
117
+ *
118
+ * @example
119
+ * Responsive layout
120
+ * ```tsx
121
+ * <Grid container spacing={3}>
122
+ * <Grid item xs={12} md={8}>
123
+ * <div>Main content</div>
124
+ * </Grid>
125
+ * <Grid item xs={12} md={4}>
126
+ * <div>Sidebar</div>
127
+ * </Grid>
128
+ * </Grid>
129
+ * ```
130
+ *
131
+ * @example
132
+ * Auto-width columns
133
+ * ```tsx
134
+ * <Grid container spacing={2}>
135
+ * <Grid item xs="auto">
136
+ * <div>Auto width</div>
137
+ * </Grid>
138
+ * <Grid item xs>
139
+ * <div>Fills remaining space</div>
140
+ * </Grid>
141
+ * </Grid>
142
+ * ```
143
+ *
144
+ * @example
145
+ * With alignment
146
+ * ```tsx
147
+ * <Grid container spacing={2} justifyContent="center" alignItems="center">
148
+ * <Grid item xs={6}>
149
+ * <div>Centered content</div>
150
+ * </Grid>
151
+ * </Grid>
152
+ * ```
153
+ */
154
+ export declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
155
+ declare const _default: React.FC<GridProps & React.RefAttributes<HTMLDivElement>>;
156
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Grid } from './Grid';
2
+ export type { GridProps } from './Grid';
3
+ export { Grid as GridComponent } from './Grid';
@@ -0,0 +1,138 @@
1
+ import React from 'react';
2
+ import './Header.css';
3
+ export interface NotificationItem {
4
+ /**
5
+ * Notification ID
6
+ */
7
+ id: string;
8
+ /**
9
+ * Notification title
10
+ */
11
+ title: string;
12
+ /**
13
+ * Notification description
14
+ */
15
+ description?: string;
16
+ /**
17
+ * Timestamp or time ago string
18
+ */
19
+ time: string;
20
+ /**
21
+ * Whether notification is read
22
+ * @default false
23
+ */
24
+ read?: boolean;
25
+ /**
26
+ * Notification icon
27
+ */
28
+ icon?: React.ReactNode;
29
+ /**
30
+ * Click handler
31
+ */
32
+ onClick?: () => void;
33
+ /**
34
+ * Notification type for styling
35
+ */
36
+ type?: 'info' | 'success' | 'warning' | 'error';
37
+ }
38
+ export interface HeaderProps {
39
+ /**
40
+ * Logo or brand element
41
+ */
42
+ logo?: React.ReactNode;
43
+ /**
44
+ * Title text
45
+ */
46
+ title?: string;
47
+ /**
48
+ * Toggle button click handler (for sidebar)
49
+ */
50
+ onToggleSidebar?: () => void;
51
+ /**
52
+ * Whether to show toggle button
53
+ * @default true
54
+ */
55
+ showToggle?: boolean;
56
+ /**
57
+ * Notifications list
58
+ */
59
+ notifications?: NotificationItem[];
60
+ /**
61
+ * Notification click handler
62
+ */
63
+ onNotificationClick?: (notification: NotificationItem) => void;
64
+ /**
65
+ * Mark all as read handler
66
+ */
67
+ onMarkAllAsRead?: () => void;
68
+ /**
69
+ * User name
70
+ */
71
+ userName?: string;
72
+ /**
73
+ * User email or role
74
+ */
75
+ userSubtitle?: string;
76
+ /**
77
+ * User avatar image URL
78
+ */
79
+ userAvatar?: string;
80
+ /**
81
+ * User menu items
82
+ */
83
+ userMenuItems?: Array<{
84
+ label: string;
85
+ icon?: React.ReactNode;
86
+ onClick?: () => void;
87
+ variant?: 'default' | 'danger';
88
+ divider?: boolean;
89
+ }>;
90
+ /**
91
+ * Custom actions (buttons, search, etc.)
92
+ */
93
+ actions?: React.ReactNode;
94
+ /**
95
+ * Custom className
96
+ */
97
+ className?: string;
98
+ /**
99
+ * Whether header is sticky
100
+ * @default true
101
+ */
102
+ sticky?: boolean;
103
+ }
104
+ /**
105
+ * Header component - Professional admin panel header with notifications and user menu
106
+ *
107
+ * @example
108
+ * Basic header
109
+ * ```tsx
110
+ * <Header
111
+ * title="Admin Dashboard"
112
+ * userName="John Doe"
113
+ * userSubtitle="Admin"
114
+ * onToggleSidebar={() => setCollapsed(!collapsed)}
115
+ * />
116
+ * ```
117
+ *
118
+ * @example
119
+ * With notifications
120
+ * ```tsx
121
+ * <Header
122
+ * title="Dashboard"
123
+ * notifications={[
124
+ * { id: '1', title: 'New order received', time: '2 min ago', read: false },
125
+ * { id: '2', title: 'User registered', time: '1 hour ago', read: true }
126
+ * ]}
127
+ * userName="John Doe"
128
+ * userMenuItems={[
129
+ * { label: 'Profile', icon: <UserIcon /> },
130
+ * { label: 'Settings', icon: <SettingsIcon /> },
131
+ * { label: 'Logout', icon: <LogoutIcon />, variant: 'danger' }
132
+ * ]}
133
+ * />
134
+ * ```
135
+ */
136
+ export declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLDivElement>>;
137
+ declare const _default: React.FC<HeaderProps & React.RefAttributes<HTMLElement>>;
138
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Header } from './Header';
2
+ export type { HeaderProps, NotificationItem } from './Header';
3
+ export { Header as HeaderComponent } from './Header';
@@ -0,0 +1,129 @@
1
+ import React, { InputHTMLAttributes } from 'react';
2
+ import './Input.css';
3
+ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
4
+ /**
5
+ * Label text displayed above the input
6
+ */
7
+ label?: string;
8
+ /**
9
+ * Helper text displayed below the input
10
+ * Provides additional context or instructions
11
+ */
12
+ helperText?: string;
13
+ /**
14
+ * Error message - when provided, input is shown in error state
15
+ * Takes precedence over helperText when both are present
16
+ */
17
+ error?: string;
18
+ /**
19
+ * Success message - when provided, input is shown in success state
20
+ */
21
+ success?: string;
22
+ /**
23
+ * Size of the input
24
+ * @default 'medium'
25
+ */
26
+ size?: 'small' | 'medium' | 'large';
27
+ /**
28
+ * If true, input will take full width of its container
29
+ * @default false
30
+ */
31
+ fullWidth?: boolean;
32
+ /**
33
+ * Icon or element to display at the start of the input
34
+ */
35
+ leftIcon?: React.ReactNode;
36
+ /**
37
+ * Icon or element to display at the end of the input
38
+ */
39
+ rightIcon?: React.ReactNode;
40
+ /**
41
+ * If true, shows a clear button when input has value
42
+ * @default false
43
+ */
44
+ clearable?: boolean;
45
+ /**
46
+ * Callback fired when clear button is clicked
47
+ */
48
+ onClear?: () => void;
49
+ /**
50
+ * If true, adds a character counter below the input
51
+ * Requires maxLength prop to be set
52
+ * @default false
53
+ */
54
+ showCount?: boolean;
55
+ /**
56
+ * Custom class name for the wrapper element
57
+ */
58
+ wrapperClassName?: string;
59
+ /**
60
+ * Custom class name for the label element
61
+ */
62
+ labelClassName?: string;
63
+ /**
64
+ * Custom class name for the input element itself
65
+ */
66
+ inputClassName?: string;
67
+ /**
68
+ * Prefix text to display before input value
69
+ */
70
+ prefix?: string;
71
+ /**
72
+ * Suffix text to display after input value
73
+ */
74
+ suffix?: string;
75
+ }
76
+ /**
77
+ * Input component - Text input field with label, helper text, validation states, and rich features
78
+ *
79
+ * A comprehensive input component with support for icons, prefixes, suffixes, character counting,
80
+ * clear functionality, and various validation states.
81
+ *
82
+ * @example
83
+ * Basic usage
84
+ * ```tsx
85
+ * <Input
86
+ * label="Email"
87
+ * type="email"
88
+ * placeholder="Enter your email"
89
+ * helperText="We'll never share your email"
90
+ * />
91
+ * ```
92
+ *
93
+ * @example
94
+ * With error state
95
+ * ```tsx
96
+ * <Input
97
+ * label="Username"
98
+ * error="Username is already taken"
99
+ * value={username}
100
+ * onChange={(e) => setUsername(e.target.value)}
101
+ * />
102
+ * ```
103
+ *
104
+ * @example
105
+ * With icons and clear button
106
+ * ```tsx
107
+ * <Input
108
+ * label="Search"
109
+ * leftIcon={<SearchIcon />}
110
+ * clearable
111
+ * onClear={() => setSearch('')}
112
+ * />
113
+ * ```
114
+ *
115
+ * @example
116
+ * With character counter
117
+ * ```tsx
118
+ * <Input
119
+ * label="Bio"
120
+ * maxLength={100}
121
+ * showCount
122
+ * value={bio}
123
+ * onChange={(e) => setBio(e.target.value)}
124
+ * />
125
+ * ```
126
+ */
127
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
128
+ declare const _default: React.FC<InputProps & React.RefAttributes<HTMLInputElement>>;
129
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Input } from './Input';
2
+ export type { InputProps } from './Input';
3
+ export { Input as InputComponent } from './Input';
@@ -0,0 +1,114 @@
1
+ import React from 'react';
2
+ import './Menu.css';
3
+ export interface MenuItemProps {
4
+ /**
5
+ * Menu item label
6
+ */
7
+ label: string;
8
+ /**
9
+ * Click handler
10
+ */
11
+ onClick?: () => void;
12
+ /**
13
+ * Icon to display before label
14
+ */
15
+ icon?: React.ReactNode;
16
+ /**
17
+ * Icon to display after label
18
+ */
19
+ rightIcon?: React.ReactNode;
20
+ /**
21
+ * Whether the item is disabled
22
+ * @default false
23
+ */
24
+ disabled?: boolean;
25
+ /**
26
+ * Whether the item is active/selected
27
+ * @default false
28
+ */
29
+ active?: boolean;
30
+ /**
31
+ * Item variant
32
+ * @default 'default'
33
+ */
34
+ variant?: 'default' | 'danger';
35
+ /**
36
+ * Keyboard shortcut to display
37
+ */
38
+ shortcut?: string;
39
+ /**
40
+ * Divider after this item
41
+ * @default false
42
+ */
43
+ divider?: boolean;
44
+ /**
45
+ * Submenu items for multi-level menus
46
+ */
47
+ items?: MenuItemProps[];
48
+ }
49
+ export interface MenuProps {
50
+ /**
51
+ * Menu items configuration
52
+ */
53
+ items?: MenuItemProps[];
54
+ /**
55
+ * Custom children (MenuItem components)
56
+ */
57
+ children?: React.ReactNode;
58
+ /**
59
+ * Menu orientation
60
+ * @default 'vertical'
61
+ */
62
+ orientation?: 'vertical' | 'horizontal';
63
+ /**
64
+ * Whether menu is responsive (converts to hamburger on mobile)
65
+ * @default true
66
+ */
67
+ responsive?: boolean;
68
+ /**
69
+ * Custom className
70
+ */
71
+ className?: string;
72
+ /**
73
+ * Menu width (for vertical menus)
74
+ */
75
+ width?: string | number;
76
+ }
77
+ /**
78
+ * MenuItem component - Individual menu item with submenu support
79
+ */
80
+ export declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLDivElement>>;
81
+ /**
82
+ * Menu component - Navigation or action menu with responsive support
83
+ *
84
+ * @example
85
+ * Basic menu with items array
86
+ * ```tsx
87
+ * <Menu
88
+ * items={[
89
+ * { label: 'Profile', icon: <UserIcon />, onClick: () => {} },
90
+ * { label: 'Settings', icon: <SettingsIcon />, onClick: () => {} },
91
+ * { label: 'Logout', icon: <LogoutIcon />, onClick: () => {}, variant: 'danger' }
92
+ * ]}
93
+ * />
94
+ * ```
95
+ *
96
+ * @example
97
+ * Horizontal menu with custom children
98
+ * ```tsx
99
+ * <Menu orientation="horizontal">
100
+ * <MenuItem label="Home" active />
101
+ * <MenuItem label="Products" />
102
+ * <MenuItem label="About" />
103
+ * </Menu>
104
+ * ```
105
+ *
106
+ * @example
107
+ * Responsive menu (hamburger on mobile)
108
+ * ```tsx
109
+ * <Menu responsive items={menuItems} />
110
+ * ```
111
+ */
112
+ export declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLDivElement>>;
113
+ declare const _default: React.FC<MenuProps & React.RefAttributes<HTMLDivElement>>;
114
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { default as Menu } from './Menu';
2
+ export type { MenuProps, MenuItemProps } from './Menu';
3
+ export { Menu as MenuComponent } from './Menu';
4
+ export { MenuItem } from './Menu';