@vtx-ui/react 0.0.1-beta.1 → 0.0.1-beta.10

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 (164) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/types/components/AdminHeader/AdminHeader.d.ts +179 -0
  6. package/dist/types/components/AdminHeader/AdminHeader.examples.d.ts +44 -0
  7. package/dist/types/components/AdminHeader/AdminHeader.stories.d.ts +53 -0
  8. package/dist/types/components/AdminHeader/AdminHeader.widgets.stories.d.ts +86 -0
  9. package/dist/types/components/AdminHeader/index.d.ts +2 -0
  10. package/dist/types/components/Alert/Alert.d.ts +7 -54
  11. package/dist/types/components/Avatar/Avatar.d.ts +5 -2
  12. package/dist/types/components/Badge/Badge.d.ts +8 -34
  13. package/dist/types/components/Button/Button.d.ts +7 -43
  14. package/dist/types/components/Card/Card.d.ts +7 -64
  15. package/dist/types/components/Checkbox/Checkbox.d.ts +5 -59
  16. package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +5 -53
  17. package/dist/types/components/Chip/Chip.d.ts +7 -33
  18. package/dist/types/components/DataGrid/DataGrid.d.ts +97 -0
  19. package/dist/types/components/DataGrid/index.d.ts +2 -0
  20. package/dist/types/components/Divider/Divider.d.ts +5 -72
  21. package/dist/types/components/Flex/Flex.d.ts +5 -26
  22. package/dist/types/components/Grid/Grid.d.ts +5 -77
  23. package/dist/types/components/Header/Header.d.ts +5 -33
  24. package/dist/types/components/Input/Input.d.ts +8 -54
  25. package/dist/types/components/Menu/Menu.d.ts +5 -32
  26. package/dist/types/components/Modal/Modal.d.ts +7 -73
  27. package/dist/types/components/MultiSelect/MultiSelect.d.ts +5 -41
  28. package/dist/types/components/Radio/Radio.d.ts +8 -57
  29. package/dist/types/components/RadioGroup/RadioGroup.d.ts +8 -59
  30. package/dist/types/components/Select/Select.d.ts +8 -60
  31. package/dist/types/components/SideMenu/SideMenu.d.ts +15 -34
  32. package/dist/types/components/SideMenu/SideMenu.examples.d.ts +18 -0
  33. package/dist/types/components/SideMenu/index.d.ts +1 -3
  34. package/dist/types/components/Table/Table.d.ts +108 -60
  35. package/dist/types/components/Text/Text.d.ts +5 -51
  36. package/dist/types/components/Timeline/Timeline.d.ts +34 -0
  37. package/dist/types/components/Timeline/index.d.ts +2 -0
  38. package/dist/types/components/Toast/Toast.d.ts +5 -51
  39. package/dist/types/hoc/withParsedClasses.d.ts +7 -0
  40. package/dist/types/hooks/useTheme.d.ts +1 -244
  41. package/dist/types/icons/IconComponents.d.ts +55 -0
  42. package/dist/types/icons/index.d.ts +1 -0
  43. package/dist/types/index.d.ts +28 -5
  44. package/dist/types/stories/components/Accordion.stories.d.ts +11 -0
  45. package/dist/types/stories/components/Alert.stories.d.ts +9 -0
  46. package/dist/types/stories/components/Avatar.stories.d.ts +13 -0
  47. package/dist/types/stories/components/Badge.stories.d.ts +8 -0
  48. package/dist/types/stories/components/Button.stories.d.ts +9 -0
  49. package/dist/types/stories/components/Card.stories.d.ts +8 -0
  50. package/dist/types/stories/components/Checkbox.stories.d.ts +17 -0
  51. package/dist/types/stories/components/CheckboxGroup.stories.d.ts +13 -0
  52. package/dist/types/stories/components/Chip.stories.d.ts +22 -0
  53. package/dist/types/stories/components/DataGrid.stories.d.ts +20 -0
  54. package/dist/types/stories/components/Divider.stories.d.ts +15 -0
  55. package/dist/types/stories/components/Flex.stories.d.ts +14 -0
  56. package/dist/types/stories/components/Grid.stories.d.ts +11 -0
  57. package/dist/types/stories/components/Header.stories.d.ts +14 -0
  58. package/dist/types/stories/components/Input.stories.d.ts +9 -0
  59. package/dist/types/stories/components/Menu.stories.d.ts +13 -0
  60. package/dist/types/stories/components/Modal.stories.d.ts +12 -0
  61. package/dist/types/stories/components/MultiSelect.stories.d.ts +19 -0
  62. package/dist/types/stories/components/Radio.stories.d.ts +16 -0
  63. package/dist/types/stories/components/RadioGroup.stories.d.ts +15 -0
  64. package/dist/types/stories/components/Select.stories.d.ts +17 -0
  65. package/dist/types/stories/components/SideMenu.stories.d.ts +62 -0
  66. package/dist/types/stories/components/Table.stories.d.ts +25 -0
  67. package/dist/types/stories/components/Text.stories.d.ts +18 -0
  68. package/dist/types/stories/components/Timeline.stories.d.ts +20 -0
  69. package/dist/types/stories/components/Toast.stories.d.ts +17 -0
  70. package/dist/types/stories/components/Tooltip.stories.d.ts +20 -0
  71. package/dist/types/stories/widgets/InfoCard.stories.d.ts +12 -0
  72. package/dist/types/stories/widgets/InfoListCard.stories.d.ts +19 -0
  73. package/dist/types/stories/widgets/InfoText.stories.d.ts +30 -0
  74. package/dist/types/stories/widgets/OrderCard.stories.d.ts +13 -0
  75. package/dist/types/stories/widgets/OrderConfirmation.stories.d.ts +36 -0
  76. package/dist/types/stories/widgets/OrderDetails.stories.d.ts +11 -0
  77. package/dist/types/stories/widgets/ProductCard.stories.d.ts +25 -0
  78. package/dist/types/theme/ThemeProvider.d.ts +2 -2
  79. package/dist/types/theme/cssVariables.d.ts +5 -2
  80. package/dist/types/theme/index.d.ts +3 -3
  81. package/dist/types/theme/tokens.d.ts +271 -216
  82. package/dist/types/utils/parseClass.d.ts +1 -0
  83. package/dist/types/widgets/Header/Header.d.ts +252 -0
  84. package/dist/types/widgets/Header/Header.stories.d.ts +30 -0
  85. package/dist/types/widgets/Header/index.d.ts +2 -0
  86. package/dist/types/widgets/InfoCard/InfoCard.d.ts +40 -0
  87. package/dist/types/widgets/InfoCard/index.d.ts +1 -0
  88. package/dist/types/widgets/InfoListCard/InfoListCard.d.ts +43 -0
  89. package/dist/types/widgets/InfoListCard/index.d.ts +2 -0
  90. package/dist/types/widgets/InfoText/InfoText.d.ts +144 -0
  91. package/dist/types/widgets/InfoText/InfoText.examples.d.ts +33 -0
  92. package/dist/types/widgets/InfoText/index.d.ts +1 -0
  93. package/dist/types/widgets/OrderCard/OrderCard.d.ts +71 -0
  94. package/dist/types/widgets/OrderCard/index.d.ts +2 -0
  95. package/dist/types/widgets/OrderConfirmation/OrderConfirmation.d.ts +85 -0
  96. package/dist/types/widgets/OrderConfirmation/index.d.ts +3 -0
  97. package/dist/types/widgets/OrderDetails/OrderDetails.d.ts +91 -0
  98. package/dist/types/widgets/OrderDetails/index.d.ts +3 -0
  99. package/dist/types/widgets/ProductCard/ProductCard.d.ts +42 -0
  100. package/dist/types/widgets/ProductCard/index.d.ts +1 -0
  101. package/package.json +113 -59
  102. package/dist/components/Accordion/Accordion.d.ts +0 -31
  103. package/dist/components/Accordion/Accordion.examples.d.ts +0 -3
  104. package/dist/components/Accordion/AccordionItem.d.ts +0 -5
  105. package/dist/components/Accordion/index.d.ts +0 -4
  106. package/dist/components/Accordion/types.d.ts +0 -98
  107. package/dist/components/Alert/Alert.d.ts +0 -119
  108. package/dist/components/Alert/index.d.ts +0 -3
  109. package/dist/components/Avatar/Avatar.d.ts +0 -63
  110. package/dist/components/Avatar/index.d.ts +0 -3
  111. package/dist/components/Badge/Badge.d.ts +0 -81
  112. package/dist/components/Badge/index.d.ts +0 -3
  113. package/dist/components/Button/Button.d.ts +0 -117
  114. package/dist/components/Button/index.d.ts +0 -3
  115. package/dist/components/Card/Card.d.ts +0 -120
  116. package/dist/components/Card/index.d.ts +0 -3
  117. package/dist/components/Checkbox/Checkbox.d.ts +0 -114
  118. package/dist/components/Checkbox/index.d.ts +0 -3
  119. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +0 -121
  120. package/dist/components/CheckboxGroup/index.d.ts +0 -3
  121. package/dist/components/Chip/Chip.d.ts +0 -91
  122. package/dist/components/Chip/index.d.ts +0 -3
  123. package/dist/components/Divider/Divider.d.ts +0 -118
  124. package/dist/components/Divider/index.d.ts +0 -3
  125. package/dist/components/Flex/Flex.d.ts +0 -66
  126. package/dist/components/Flex/index.d.ts +0 -3
  127. package/dist/components/Grid/Grid.d.ts +0 -156
  128. package/dist/components/Grid/index.d.ts +0 -3
  129. package/dist/components/Header/Header.d.ts +0 -138
  130. package/dist/components/Header/index.d.ts +0 -3
  131. package/dist/components/Input/Input.d.ts +0 -129
  132. package/dist/components/Input/index.d.ts +0 -3
  133. package/dist/components/Menu/Menu.d.ts +0 -114
  134. package/dist/components/Menu/index.d.ts +0 -4
  135. package/dist/components/Modal/Modal.d.ts +0 -201
  136. package/dist/components/Modal/index.d.ts +0 -3
  137. package/dist/components/MultiSelect/MultiSelect.d.ts +0 -190
  138. package/dist/components/MultiSelect/index.d.ts +0 -3
  139. package/dist/components/Radio/Radio.d.ts +0 -105
  140. package/dist/components/Radio/index.d.ts +0 -3
  141. package/dist/components/RadioGroup/RadioGroup.d.ts +0 -134
  142. package/dist/components/RadioGroup/index.d.ts +0 -3
  143. package/dist/components/Select/Select.d.ts +0 -169
  144. package/dist/components/Select/index.d.ts +0 -3
  145. package/dist/components/SideMenu/SideMenu.d.ts +0 -118
  146. package/dist/components/SideMenu/index.d.ts +0 -4
  147. package/dist/components/Table/Table.d.ts +0 -211
  148. package/dist/components/Table/index.d.ts +0 -3
  149. package/dist/components/Text/Text.d.ts +0 -160
  150. package/dist/components/Text/index.d.ts +0 -3
  151. package/dist/components/Toast/Toast.d.ts +0 -56
  152. package/dist/components/Toast/ToastContainer.d.ts +0 -6
  153. package/dist/components/Toast/index.d.ts +0 -5
  154. package/dist/components/Toast/types.d.ts +0 -148
  155. package/dist/components/Toast/useToast.d.ts +0 -34
  156. package/dist/components/Tooltip/Tooltip.d.ts +0 -108
  157. package/dist/components/Tooltip/index.d.ts +0 -3
  158. package/dist/hooks/index.d.ts +0 -85
  159. package/dist/hooks/useTheme.d.ts +0 -268
  160. package/dist/index.d.ts +0 -55
  161. package/dist/theme/ThemeProvider.d.ts +0 -39
  162. package/dist/theme/cssVariables.d.ts +0 -9
  163. package/dist/theme/index.d.ts +0 -6
  164. package/dist/theme/tokens.d.ts +0 -258
@@ -1,211 +0,0 @@
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;
@@ -1,3 +0,0 @@
1
- export { default as Table } from './Table';
2
- export type { TableProps, TableColumn } from './Table';
3
- export { Table as TableComponent } from './Table';
@@ -1,160 +0,0 @@
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;
@@ -1,3 +0,0 @@
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';
@@ -1,56 +0,0 @@
1
- import React from 'react';
2
- import { ToastProps } from './types';
3
- import './Toast.css';
4
- /**
5
- * Toast component - Displays brief notifications to users
6
- *
7
- * A comprehensive toast notification component with auto-dismiss, progress bar,
8
- * pause on hover, and various visual variants for different message types.
9
- *
10
- * @example
11
- * Basic success toast
12
- * ```tsx
13
- * <Toast variant="success">
14
- * Your changes have been saved successfully!
15
- * </Toast>
16
- * ```
17
- *
18
- * @example
19
- * Toast with action button
20
- * ```tsx
21
- * <Toast
22
- * variant="warning"
23
- * action={<Button size="sm">Undo</Button>}
24
- * autoClose={false}
25
- * >
26
- * Item moved to trash
27
- * </Toast>
28
- * ```
29
- *
30
- * @example
31
- * Custom toast with icon
32
- * ```tsx
33
- * <Toast
34
- * variant="info"
35
- * icon={<CustomIcon />}
36
- * progressBar={false}
37
- * >
38
- * Update available for download
39
- * </Toast>
40
- * ```
41
- *
42
- * @example
43
- * Toast with custom auto-close duration
44
- * ```tsx
45
- * <Toast
46
- * variant="error"
47
- * autoClose={10000}
48
- * pauseOnHover={false}
49
- * >
50
- * Failed to connect to server
51
- * </Toast>
52
- * ```
53
- */
54
- export declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
55
- declare const _default: React.FC<ToastProps & React.RefAttributes<HTMLDivElement>>;
56
- export default _default;
@@ -1,6 +0,0 @@
1
- import * as React from 'react';
2
- import { ToastContainerProps } from './types';
3
- import './ToastContainer.css';
4
- export declare const ToastContainer: React.FC<ToastContainerProps>;
5
- declare const _default: React.FC<ToastContainerProps & React.RefAttributes<HTMLDivElement>>;
6
- export default _default;
@@ -1,5 +0,0 @@
1
- export { default as Toast } from './Toast';
2
- export { Toast as ToastComponent } from './Toast';
3
- export { ToastContainer } from './ToastContainer';
4
- export { useToast, toast } from './useToast';
5
- export type { ToastProps, ToastVariant, ToastPosition, ToastOptions, ToastInstance } from './types';
@@ -1,148 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export type ToastVariant = 'success' | 'error' | 'warning' | 'info' | 'default' | 'primary';
3
- export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
4
- export interface ToastOptions {
5
- /**
6
- * Auto close duration in milliseconds
7
- * Set to false to disable auto close
8
- * @default 5000
9
- */
10
- autoClose?: number | false;
11
- /**
12
- * Show close button
13
- * @default true
14
- */
15
- closeButton?: boolean;
16
- /**
17
- * Show progress bar
18
- * @default true
19
- */
20
- progressBar?: boolean;
21
- /**
22
- * Pause on hover
23
- * @default true
24
- */
25
- pauseOnHover?: boolean;
26
- /**
27
- * Pause on focus loss
28
- * @default true
29
- */
30
- pauseOnFocusLoss?: boolean;
31
- /**
32
- * Toast variant/type
33
- * @default 'default'
34
- */
35
- variant?: ToastVariant;
36
- /**
37
- * Custom icon or false to hide icon
38
- */
39
- icon?: ReactNode | false;
40
- /**
41
- * Custom action button
42
- */
43
- action?: {
44
- label: string;
45
- onClick: () => void;
46
- };
47
- /**
48
- * Custom className
49
- */
50
- className?: string;
51
- /**
52
- * Custom styles
53
- */
54
- style?: React.CSSProperties;
55
- /**
56
- * Toast ID for updates/dismissal
57
- */
58
- toastId?: string | number;
59
- /**
60
- * Callback when toast is closed
61
- */
62
- onClose?: () => void;
63
- /**
64
- * Callback when toast is opened
65
- */
66
- onOpen?: () => void;
67
- /**
68
- * Rich content with title and description
69
- */
70
- title?: string;
71
- description?: string;
72
- /**
73
- * Animation duration in milliseconds
74
- * @default 300
75
- */
76
- animationDuration?: number;
77
- }
78
- export interface ToastProps extends ToastOptions {
79
- /**
80
- * Toast content
81
- */
82
- children: ReactNode;
83
- /**
84
- * Whether toast is visible
85
- */
86
- isVisible: boolean;
87
- /**
88
- * Function to close the toast
89
- */
90
- onDismiss: () => void;
91
- /**
92
- * Unique toast ID
93
- */
94
- id: string | number;
95
- /**
96
- * Creation timestamp
97
- */
98
- createdAt: number;
99
- }
100
- export interface ToastContainerProps {
101
- /**
102
- * Children components to render alongside the toast container
103
- */
104
- children?: ReactNode;
105
- /**
106
- * Container position
107
- * @default 'top-right'
108
- */
109
- position?: ToastPosition;
110
- /**
111
- * Maximum number of toasts to show
112
- * @default 5
113
- */
114
- limit?: number;
115
- /**
116
- * Gap between toasts in pixels
117
- * @default 12
118
- */
119
- gap?: number;
120
- /**
121
- * Container margin from viewport edge
122
- * @default 16
123
- */
124
- margin?: number;
125
- /**
126
- * Custom className for container
127
- */
128
- className?: string;
129
- /**
130
- * Custom styles for container
131
- */
132
- style?: React.CSSProperties;
133
- /**
134
- * Enable stacked layout for mobile
135
- * @default true
136
- */
137
- stacked?: boolean;
138
- /**
139
- * Custom theme
140
- */
141
- theme?: 'light' | 'dark' | 'auto';
142
- }
143
- export interface ToastInstance extends ToastOptions {
144
- id: string | number;
145
- content: ReactNode;
146
- createdAt: number;
147
- isVisible: boolean;
148
- }
@@ -1,34 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- import { ToastInstance, ToastOptions } from './types';
3
- interface ToastContextValue {
4
- toasts: ToastInstance[];
5
- addToast: (content: ReactNode, options?: ToastOptions) => string | number;
6
- removeToast: (id: string | number) => void;
7
- clearAllToasts: () => void;
8
- updateToast: (id: string | number, options: Partial<ToastOptions>) => void;
9
- }
10
- export declare const useToast: () => ToastContextValue;
11
- interface ToastProviderProps {
12
- children: ReactNode;
13
- }
14
- export declare const ToastProvider: React.FC<ToastProviderProps>;
15
- declare class ToastManager {
16
- private static instance;
17
- private addToastFn;
18
- private removeToastFn;
19
- private clearAllToastsFn;
20
- private updateToastFn;
21
- static getInstance(): ToastManager;
22
- setMethods(addToast: (content: ReactNode, options?: ToastOptions) => string | number, removeToast: (id: string | number) => void, clearAllToasts: () => void, updateToast: (id: string | number, options: Partial<ToastOptions>) => void): void;
23
- show(content: ReactNode, options?: ToastOptions): string | number;
24
- success(content: ReactNode, options?: Omit<ToastOptions, 'variant'>): string | number;
25
- error(content: ReactNode, options?: Omit<ToastOptions, 'variant'>): string | number;
26
- warning(content: ReactNode, options?: Omit<ToastOptions, 'variant'>): string | number;
27
- info(content: ReactNode, options?: Omit<ToastOptions, 'variant'>): string | number;
28
- primary(content: ReactNode, options?: Omit<ToastOptions, 'variant'>): string | number;
29
- dismiss(id: string | number): void;
30
- dismissAll(): void;
31
- update(id: string | number, options: Partial<ToastOptions>): void;
32
- }
33
- export declare const toast: ToastManager;
34
- export {};