@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,169 @@
1
+ import React, { SelectHTMLAttributes } from 'react';
2
+ import './Select.css';
3
+ export interface SelectOption {
4
+ /**
5
+ * Value of the option
6
+ */
7
+ value: string;
8
+ /**
9
+ * Display label for the option
10
+ */
11
+ label: string;
12
+ /**
13
+ * If true, option cannot be selected
14
+ * @default false
15
+ */
16
+ disabled?: boolean;
17
+ /**
18
+ * Optional group this option belongs to
19
+ */
20
+ group?: string;
21
+ }
22
+ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
23
+ /**
24
+ * Label text displayed above the select
25
+ */
26
+ label?: string;
27
+ /**
28
+ * Helper text displayed below the select
29
+ * Provides additional context or instructions
30
+ */
31
+ helperText?: string;
32
+ /**
33
+ * Error message - when provided, select is shown in error state
34
+ */
35
+ error?: string;
36
+ /**
37
+ * Success message - when provided, select is shown in success state
38
+ */
39
+ success?: string;
40
+ /**
41
+ * Size of the select
42
+ * @default 'medium'
43
+ */
44
+ size?: 'small' | 'medium' | 'large';
45
+ /**
46
+ * If true, select will take full width of its container
47
+ * @default false
48
+ */
49
+ fullWidth?: boolean;
50
+ /**
51
+ * Options to display in the select dropdown
52
+ */
53
+ options: SelectOption[];
54
+ /**
55
+ * Placeholder text shown when no option is selected
56
+ */
57
+ placeholder?: string;
58
+ /**
59
+ * Custom class name for the wrapper element
60
+ */
61
+ wrapperClassName?: string;
62
+ /**
63
+ * If true, groups options by their group property
64
+ * @default false
65
+ */
66
+ grouped?: boolean;
67
+ /**
68
+ * Property name or function to extract the display label from each option
69
+ * @default 'label'
70
+ * @example
71
+ * getOptionLabel="productName" // uses option.productName
72
+ * getOptionLabel={(option) => option.firstName + ' ' + option.lastName}
73
+ */
74
+ getOptionLabel?: string | ((option: any) => string);
75
+ /**
76
+ * Property name or function to extract the value from each option
77
+ * @default 'value'
78
+ * @example
79
+ * getOptionValue="id" // uses option.id
80
+ * getOptionValue={(option) => option.uuid}
81
+ */
82
+ getOptionValue?: string | ((option: any) => string | number);
83
+ /**
84
+ * Property name or function to determine if an option is disabled
85
+ * @default 'disabled'
86
+ * @example
87
+ * getOptionDisabled="isInactive" // uses option.isInactive
88
+ * getOptionDisabled={(option) => option.stock === 0}
89
+ */
90
+ getOptionDisabled?: string | ((option: any) => boolean);
91
+ /**
92
+ * Property name or function to extract the group from each option
93
+ * @default 'group'
94
+ * @example
95
+ * getOptionGroup="category" // uses option.category
96
+ * getOptionGroup={(option) => option.department}
97
+ */
98
+ getOptionGroup?: string | ((option: any) => string);
99
+ /**
100
+ * Callback fired when selection changes
101
+ * Provides both event and selected option
102
+ */
103
+ onSelectChange?: (value: string, option: SelectOption | undefined) => void;
104
+ /**
105
+ * If true, shows a loading spinner in place of the dropdown icon
106
+ * @default false
107
+ */
108
+ loading?: boolean;
109
+ }
110
+ /**
111
+ * Select component - Dropdown selection control with label, validation states, and grouping support
112
+ *
113
+ * A comprehensive select component with support for grouped options, validation states,
114
+ * and enhanced accessibility features.
115
+ *
116
+ * @example
117
+ * Basic usage
118
+ * ```tsx
119
+ * <Select
120
+ * label="Country"
121
+ * placeholder="Select a country"
122
+ * options={[
123
+ * { value: 'us', label: 'United States' },
124
+ * { value: 'uk', label: 'United Kingdom' },
125
+ * ]}
126
+ * />
127
+ * ```
128
+ *
129
+ * @example
130
+ * With grouped options
131
+ * ```tsx
132
+ * <Select
133
+ * label="Framework"
134
+ * grouped
135
+ * options={[
136
+ * { value: 'react', label: 'React', group: 'Frontend' },
137
+ * { value: 'vue', label: 'Vue', group: 'Frontend' },
138
+ * { value: 'node', label: 'Node.js', group: 'Backend' },
139
+ * { value: 'django', label: 'Django', group: 'Backend' },
140
+ * ]}
141
+ * />
142
+ * ```
143
+ *
144
+ * @example
145
+ * With change callback
146
+ * ```tsx
147
+ * <Select
148
+ * label="Status"
149
+ * options={statusOptions}
150
+ * onSelectChange={(value, option) => {
151
+ * console.log('Selected:', value, option);
152
+ * }}
153
+ * />
154
+ * ```
155
+ *
156
+ * @example
157
+ * Customize loading spinner via CSS
158
+ * ```css
159
+ * .vtx-select-icon-spinner {
160
+ * --vtx-select-loader-color: #10b981;
161
+ * --vtx-select-loader-speed: 1.2s;
162
+ * --vtx-select-loader-track-opacity: 0.15;
163
+ * --vtx-select-loader-path-opacity: 0.85;
164
+ * }
165
+ * ```
166
+ */
167
+ export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
168
+ declare const _default: React.FC<SelectProps & React.RefAttributes<HTMLSelectElement>>;
169
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Select } from './Select';
2
+ export type { SelectProps, SelectOption } from './Select';
3
+ export { Select as SelectComponent } from './Select';
@@ -0,0 +1,118 @@
1
+ import React from 'react';
2
+ import './SideMenu.css';
3
+ export interface SideMenuItemProps {
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
+ * Whether the item is disabled
18
+ * @default false
19
+ */
20
+ disabled?: boolean;
21
+ /**
22
+ * Whether the item is active/selected
23
+ * @default false
24
+ */
25
+ active?: boolean;
26
+ /**
27
+ * Submenu items for nested navigation
28
+ */
29
+ items?: SideMenuItemProps[];
30
+ /**
31
+ * Badge content (number or text)
32
+ */
33
+ badge?: string | number;
34
+ /**
35
+ * Custom href for links
36
+ */
37
+ href?: string;
38
+ }
39
+ export interface SideMenuProps {
40
+ /**
41
+ * Menu items configuration
42
+ */
43
+ items: SideMenuItemProps[];
44
+ /**
45
+ * Whether the sidebar is collapsed
46
+ * @default false
47
+ */
48
+ collapsed?: boolean;
49
+ /**
50
+ * Collapse toggle handler
51
+ */
52
+ onCollapseToggle?: (collapsed: boolean) => void;
53
+ /**
54
+ * Custom className
55
+ */
56
+ className?: string;
57
+ /**
58
+ * Sidebar width when expanded
59
+ * @default '260px'
60
+ */
61
+ width?: string | number;
62
+ /**
63
+ * Sidebar width when collapsed
64
+ * @default '80px'
65
+ */
66
+ collapsedWidth?: string | number;
67
+ /**
68
+ * Header content (logo, title)
69
+ */
70
+ header?: React.ReactNode;
71
+ /**
72
+ * Footer content
73
+ */
74
+ footer?: React.ReactNode;
75
+ }
76
+ /**
77
+ * SideMenuItem component - Individual sidebar menu item with submenu support
78
+ */
79
+ export declare const SideMenuItem: React.ForwardRefExoticComponent<SideMenuItemProps & {
80
+ collapsed?: boolean;
81
+ level?: number;
82
+ } & React.RefAttributes<HTMLDivElement>>;
83
+ /**
84
+ * SideMenu component - Professional sidebar navigation for admin panels
85
+ *
86
+ * @example
87
+ * Basic sidebar menu
88
+ * ```tsx
89
+ * <SideMenu
90
+ * items={[
91
+ * { label: 'Dashboard', icon: <DashboardIcon />, active: true },
92
+ * {
93
+ * label: 'Products',
94
+ * icon: <ProductIcon />,
95
+ * items: [
96
+ * { label: 'All Products', onClick: () => {} },
97
+ * { label: 'Categories', onClick: () => {} }
98
+ * ]
99
+ * },
100
+ * { label: 'Settings', icon: <SettingsIcon />, onClick: () => {} }
101
+ * ]}
102
+ * />
103
+ * ```
104
+ *
105
+ * @example
106
+ * Collapsible sidebar with header
107
+ * ```tsx
108
+ * <SideMenu
109
+ * collapsed={isCollapsed}
110
+ * onCollapseToggle={setIsCollapsed}
111
+ * header={<Logo />}
112
+ * items={menuItems}
113
+ * />
114
+ * ```
115
+ */
116
+ export declare const SideMenu: React.ForwardRefExoticComponent<SideMenuProps & React.RefAttributes<HTMLDivElement>>;
117
+ declare const _default: React.FC<SideMenuProps & React.RefAttributes<HTMLDivElement>>;
118
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { default as SideMenu } from './SideMenu';
2
+ export type { SideMenuProps, SideMenuItemProps } from './SideMenu';
3
+ export { SideMenu as SideMenuComponent } from './SideMenu';
4
+ export { SideMenuItem } from './SideMenu';
@@ -0,0 +1,211 @@
1
+ import React, { TableHTMLAttributes } from 'react';
2
+ import './Table.css';
3
+ export interface TableColumn<T = unknown> {
4
+ /**
5
+ * Unique key for the column - used as React key and for data access
6
+ */
7
+ key: string;
8
+ /**
9
+ * Column header text or custom header content
10
+ */
11
+ header: React.ReactNode;
12
+ /**
13
+ * Function to render cell content
14
+ * If not provided, displays row[key] directly
15
+ */
16
+ render?: (row: T, rowIndex: number) => React.ReactNode;
17
+ /**
18
+ * Width of the column (CSS value: px, %, rem, etc.)
19
+ */
20
+ width?: string;
21
+ /**
22
+ * Minimum width of the column
23
+ */
24
+ minWidth?: string;
25
+ /**
26
+ * Maximum width of the column
27
+ */
28
+ maxWidth?: string;
29
+ /**
30
+ * Text alignment for the column
31
+ * @default 'left'
32
+ */
33
+ align?: 'left' | 'center' | 'right';
34
+ /**
35
+ * If true, column can be sorted
36
+ * @default false
37
+ */
38
+ sortable?: boolean;
39
+ /**
40
+ * Custom sort function for this column
41
+ */
42
+ sortFn?: (a: T, b: T) => number;
43
+ /**
44
+ * If true, column will be sticky (fixed) on horizontal scroll
45
+ * @default false
46
+ */
47
+ sticky?: 'left' | 'right' | false;
48
+ /**
49
+ * Custom class name for column cells
50
+ */
51
+ className?: string;
52
+ /**
53
+ * Custom class name for header cell
54
+ */
55
+ headerClassName?: string;
56
+ }
57
+ export interface TableProps<T = unknown> extends Omit<TableHTMLAttributes<HTMLTableElement>, 'children'> {
58
+ /**
59
+ * Column definitions
60
+ */
61
+ columns: TableColumn<T>[];
62
+ /**
63
+ * Data rows to display
64
+ */
65
+ data: T[];
66
+ /**
67
+ * Function to get unique key for each row
68
+ * Used for React key prop and row identification
69
+ */
70
+ getRowKey: (row: T, index: number) => string | number;
71
+ /**
72
+ * If true, table will have striped rows for better readability
73
+ * @default false
74
+ */
75
+ striped?: boolean;
76
+ /**
77
+ * If true, rows will have hover effect
78
+ * @default true
79
+ */
80
+ hoverable?: boolean;
81
+ /**
82
+ * If true, adds borders between cells
83
+ * @default false
84
+ */
85
+ bordered?: boolean;
86
+ /**
87
+ * Size variant
88
+ * @default 'medium'
89
+ */
90
+ size?: 'small' | 'medium' | 'large';
91
+ /**
92
+ * Optional caption for the table (improves accessibility)
93
+ */
94
+ caption?: string;
95
+ /**
96
+ * Custom empty state content or message
97
+ * @default 'No data available'
98
+ */
99
+ emptyMessage?: React.ReactNode;
100
+ /**
101
+ * Loading state
102
+ * @default false
103
+ */
104
+ loading?: boolean;
105
+ /**
106
+ * Custom loading content
107
+ */
108
+ loadingContent?: React.ReactNode;
109
+ /**
110
+ * If true, table will be horizontally scrollable
111
+ * @default true
112
+ */
113
+ scrollable?: boolean;
114
+ /**
115
+ * Maximum height for vertical scrolling
116
+ * Set to enable vertical scrolling with fixed header
117
+ */
118
+ maxHeight?: string;
119
+ /**
120
+ * Callback fired when a row is clicked
121
+ */
122
+ onRowClick?: (row: T, index: number, event: React.MouseEvent<HTMLTableRowElement>) => void;
123
+ /**
124
+ * Function to determine if a row is selected
125
+ */
126
+ isRowSelected?: (row: T, index: number) => boolean;
127
+ /**
128
+ * Callback fired when row selection changes (requires isRowSelected)
129
+ */
130
+ onRowSelect?: (row: T, index: number) => void;
131
+ /**
132
+ * If true, enables column sorting
133
+ * @default false
134
+ */
135
+ sortable?: boolean;
136
+ /**
137
+ * Current sort configuration
138
+ */
139
+ sortConfig?: {
140
+ key: string;
141
+ direction: 'asc' | 'desc';
142
+ };
143
+ /**
144
+ * Callback fired when sort changes
145
+ */
146
+ onSortChange?: (key: string, direction: 'asc' | 'desc') => void;
147
+ /**
148
+ * Custom class name for table container
149
+ */
150
+ containerClassName?: string;
151
+ }
152
+ /**
153
+ * Table component - Displays data in rows and columns with advanced features
154
+ *
155
+ * A comprehensive table component with support for sorting, selection, loading states,
156
+ * sticky columns, and customizable rendering.
157
+ *
158
+ * @example
159
+ * Basic usage
160
+ * ```tsx
161
+ * const columns = [
162
+ * { key: 'name', header: 'Name' },
163
+ * { key: 'email', header: 'Email' },
164
+ * { key: 'role', header: 'Role', align: 'center' },
165
+ * ];
166
+ *
167
+ * const data = [
168
+ * { id: 1, name: 'John Doe', email: 'john@example.com', role: 'Admin' },
169
+ * ];
170
+ *
171
+ * <Table
172
+ * columns={columns}
173
+ * data={data}
174
+ * getRowKey={(row) => row.id}
175
+ * striped
176
+ * />
177
+ * ```
178
+ *
179
+ * @example
180
+ * With sorting and row click
181
+ * ```tsx
182
+ * <Table
183
+ * columns={columns}
184
+ * data={data}
185
+ * getRowKey={(row) => row.id}
186
+ * sortable
187
+ * onRowClick={(row) => console.log('Clicked:', row)}
188
+ * />
189
+ * ```
190
+ *
191
+ * @example
192
+ * With loading state and custom rendering
193
+ * ```tsx
194
+ * <Table
195
+ * columns={[
196
+ * { key: 'name', header: 'Name', sticky: 'left' },
197
+ * { key: 'status', header: 'Status', render: (row) => <Badge>{row.status}</Badge> }
198
+ * ]}
199
+ * data={data}
200
+ * getRowKey={(row) => row.id}
201
+ * loading={isLoading}
202
+ * maxHeight="400px"
203
+ * />
204
+ * ```
205
+ */
206
+ export declare function Table<T = unknown>({ columns, data, getRowKey, striped, hoverable, bordered, size, caption, emptyMessage, loading, loadingContent, scrollable, maxHeight, onRowClick, isRowSelected, onRowSelect, sortable, sortConfig, onSortChange, className, containerClassName, ...props }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
207
+ export declare namespace Table {
208
+ var displayName: string;
209
+ }
210
+ declare const _default: React.FC<TableProps & React.RefAttributes<HTMLTableElement>>;
211
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Table } from './Table';
2
+ export type { TableProps, TableColumn } from './Table';
3
+ export { Table as TableComponent } from './Table';
@@ -0,0 +1,160 @@
1
+ import * as React from 'react';
2
+ import './Text.css';
3
+ export type TextVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2' | 'caption' | 'overline' | 'button' | 'label';
4
+ export type TextAlign = 'left' | 'center' | 'right' | 'justify';
5
+ export type TextTransform = 'none' | 'uppercase' | 'lowercase' | 'capitalize';
6
+ export type TextDecoration = 'none' | 'underline' | 'line-through' | 'overline';
7
+ export type TextWeight = 'thin' | 'extralight' | 'light' | 'normal' | 'medium' | 'semibold' | 'bold' | 'extrabold' | 'black';
8
+ export type TextAs = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'label' | 'strong' | 'em' | 'small';
9
+ export interface TextProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'> {
10
+ /**
11
+ * Typography variant that applies preset styles
12
+ * @default 'body1'
13
+ */
14
+ variant?: TextVariant;
15
+ /**
16
+ * HTML element to render as
17
+ * Automatically inferred from variant if not specified
18
+ */
19
+ as?: TextAs;
20
+ /**
21
+ * Text alignment
22
+ */
23
+ align?: TextAlign;
24
+ /**
25
+ * Text color - accepts CSS color values or theme color tokens
26
+ * Examples: 'primary.500', '#000', 'rgb(0,0,0)', 'neutral.700'
27
+ */
28
+ color?: string;
29
+ /**
30
+ * Font weight override
31
+ */
32
+ weight?: TextWeight | number;
33
+ /**
34
+ * Text transform
35
+ */
36
+ transform?: TextTransform;
37
+ /**
38
+ * Text decoration
39
+ */
40
+ decoration?: TextDecoration;
41
+ /**
42
+ * Enable text truncation with ellipsis
43
+ * @default false
44
+ */
45
+ truncate?: boolean;
46
+ /**
47
+ * Number of lines to show before truncating (requires truncate or clamp)
48
+ * Uses -webkit-line-clamp for multi-line truncation
49
+ */
50
+ lineClamp?: number;
51
+ /**
52
+ * Enable word break for long words
53
+ * @default false
54
+ */
55
+ breakWord?: boolean;
56
+ /**
57
+ * Enable italic style
58
+ * @default false
59
+ */
60
+ italic?: boolean;
61
+ /**
62
+ * Enable underline
63
+ * @default false
64
+ */
65
+ underline?: boolean;
66
+ /**
67
+ * Enable strikethrough
68
+ * @default false
69
+ */
70
+ strikethrough?: boolean;
71
+ /**
72
+ * Make text gradient with specified colors
73
+ * Example: ['#667eea', '#764ba2']
74
+ */
75
+ gradient?: string[];
76
+ /**
77
+ * Disable user selection
78
+ * @default false
79
+ */
80
+ noSelect?: boolean;
81
+ /**
82
+ * Custom font size (overrides variant)
83
+ */
84
+ size?: string | number;
85
+ /**
86
+ * Custom line height (overrides variant)
87
+ */
88
+ lineHeight?: string | number;
89
+ /**
90
+ * Custom letter spacing (overrides variant)
91
+ */
92
+ letterSpacing?: string | number;
93
+ /**
94
+ * Remove default margin
95
+ * @default false
96
+ */
97
+ noMargin?: boolean;
98
+ /**
99
+ * Remove default padding
100
+ * @default false
101
+ */
102
+ noPadding?: boolean;
103
+ /**
104
+ * Children content to render
105
+ */
106
+ children?: React.ReactNode;
107
+ }
108
+ /**
109
+ * Text component - Versatile typography component with theme integration
110
+ *
111
+ * A comprehensive text component that provides consistent typography across your application
112
+ * with full theming support and extensive customization options.
113
+ *
114
+ * @example
115
+ * Basic usage with variants
116
+ * ```tsx
117
+ * <Text variant="h1">Heading 1</Text>
118
+ * <Text variant="body1">Regular body text</Text>
119
+ * <Text variant="caption" color="neutral.500">Small caption text</Text>
120
+ * ```
121
+ *
122
+ * @example
123
+ * Custom styling
124
+ * ```tsx
125
+ * <Text
126
+ * variant="body1"
127
+ * weight="bold"
128
+ * align="center"
129
+ * color="primary.600"
130
+ * >
131
+ * Centered bold text
132
+ * </Text>
133
+ * ```
134
+ *
135
+ * @example
136
+ * Truncation and line clamping
137
+ * ```tsx
138
+ * <Text truncate>This text will be truncated with ellipsis...</Text>
139
+ * <Text lineClamp={3}>This text will show only 3 lines before truncating...</Text>
140
+ * ```
141
+ *
142
+ * @example
143
+ * Gradient text
144
+ * ```tsx
145
+ * <Text variant="h2" gradient={['#667eea', '#764ba2']}>
146
+ * Gradient Heading
147
+ * </Text>
148
+ * ```
149
+ *
150
+ * @example
151
+ * Semantic HTML control
152
+ * ```tsx
153
+ * <Text variant="h1" as="h2">Visually h1, semantically h2</Text>
154
+ * <Text variant="body1" as="label" htmlFor="input">Label with body style</Text>
155
+ * ```
156
+ */
157
+ declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
158
+ export { Text };
159
+ declare const _default: React.FC<TextProps & React.RefAttributes<HTMLElement>>;
160
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Text } from './Text';
2
+ export type { TextProps, TextVariant, TextAlign, TextTransform, TextDecoration, TextWeight, TextAs, } from './Text';
3
+ export { Text as TextComponent } from './Text';