@vtx-ui/react 0.0.1-beta.3 → 0.0.1-beta.5
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.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/AdminHeader/AdminHeader.d.ts +179 -0
- package/dist/types/components/AdminHeader/AdminHeader.examples.d.ts +44 -0
- package/dist/types/components/AdminHeader/AdminHeader.stories.d.ts +53 -0
- package/dist/types/components/AdminHeader/AdminHeader.widgets.stories.d.ts +86 -0
- package/dist/types/components/AdminHeader/index.d.ts +2 -0
- package/dist/types/components/Alert/Alert.d.ts +7 -54
- package/dist/types/components/Avatar/Avatar.d.ts +5 -2
- package/dist/types/components/Badge/Badge.d.ts +8 -34
- package/dist/types/components/Button/Button.d.ts +7 -43
- package/dist/types/components/Card/Card.d.ts +7 -64
- package/dist/types/components/Checkbox/Checkbox.d.ts +5 -59
- package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +5 -53
- package/dist/types/components/Chip/Chip.d.ts +7 -33
- package/dist/types/components/DataGrid/DataGrid.d.ts +97 -0
- package/dist/types/components/DataGrid/index.d.ts +2 -0
- package/dist/types/components/Divider/Divider.d.ts +5 -72
- package/dist/types/components/Flex/Flex.d.ts +5 -26
- package/dist/types/components/Grid/Grid.d.ts +5 -77
- package/dist/types/components/Header/Header.d.ts +5 -33
- package/dist/types/components/Input/Input.d.ts +8 -54
- package/dist/types/components/Menu/Menu.d.ts +5 -32
- package/dist/types/components/Modal/Modal.d.ts +7 -73
- package/dist/types/components/MultiSelect/MultiSelect.d.ts +5 -41
- package/dist/types/components/Radio/Radio.d.ts +8 -57
- package/dist/types/components/RadioGroup/RadioGroup.d.ts +8 -59
- package/dist/types/components/Select/Select.d.ts +8 -60
- package/dist/types/components/SideMenu/SideMenu.d.ts +5 -34
- package/dist/types/components/SideMenu/SideMenu.examples.d.ts +18 -0
- package/dist/types/components/SideMenu/index.d.ts +1 -3
- package/dist/types/components/Table/Table.d.ts +108 -60
- package/dist/types/components/Text/Text.d.ts +4 -1
- package/dist/types/components/Timeline/Timeline.d.ts +34 -0
- package/dist/types/components/Timeline/index.d.ts +2 -0
- package/dist/types/components/Toast/Toast.d.ts +5 -51
- package/dist/types/hoc/withParsedClasses.d.ts +4 -1
- package/dist/types/icons/IconComponents.d.ts +55 -0
- package/dist/types/icons/index.d.ts +1 -0
- package/dist/types/index.d.ts +21 -1
- package/dist/types/stories/components/Accordion.stories.d.ts +11 -0
- package/dist/types/stories/components/Alert.stories.d.ts +9 -0
- package/dist/types/stories/components/Avatar.stories.d.ts +13 -0
- package/dist/types/stories/components/Badge.stories.d.ts +8 -0
- package/dist/types/stories/components/Button.stories.d.ts +9 -0
- package/dist/types/stories/components/Card.stories.d.ts +8 -0
- package/dist/types/stories/components/Checkbox.stories.d.ts +17 -0
- package/dist/types/stories/components/CheckboxGroup.stories.d.ts +13 -0
- package/dist/types/stories/components/Chip.stories.d.ts +22 -0
- package/dist/types/stories/components/DataGrid.stories.d.ts +20 -0
- package/dist/types/stories/components/Divider.stories.d.ts +15 -0
- package/dist/types/stories/components/Flex.stories.d.ts +14 -0
- package/dist/types/stories/components/Grid.stories.d.ts +11 -0
- package/dist/types/stories/components/Header.stories.d.ts +14 -0
- package/dist/types/stories/components/Input.stories.d.ts +9 -0
- package/dist/types/stories/components/Menu.stories.d.ts +13 -0
- package/dist/types/stories/components/Modal.stories.d.ts +12 -0
- package/dist/types/stories/components/MultiSelect.stories.d.ts +19 -0
- package/dist/types/stories/components/Radio.stories.d.ts +16 -0
- package/dist/types/stories/components/RadioGroup.stories.d.ts +15 -0
- package/dist/types/stories/components/Select.stories.d.ts +17 -0
- package/dist/types/stories/components/SideMenu.stories.d.ts +62 -0
- package/dist/types/stories/components/Table.stories.d.ts +25 -0
- package/dist/types/stories/components/Text.stories.d.ts +18 -0
- package/dist/types/stories/components/Timeline.stories.d.ts +20 -0
- package/dist/types/stories/components/Toast.stories.d.ts +17 -0
- package/dist/types/stories/components/Tooltip.stories.d.ts +20 -0
- package/dist/types/stories/widgets/InfoCard.stories.d.ts +12 -0
- package/dist/types/stories/widgets/InfoListCard.stories.d.ts +19 -0
- package/dist/types/stories/widgets/InfoText.stories.d.ts +30 -0
- package/dist/types/stories/widgets/OrderCard.stories.d.ts +13 -0
- package/dist/types/stories/widgets/OrderConfirmation.stories.d.ts +36 -0
- package/dist/types/stories/widgets/OrderDetails.stories.d.ts +11 -0
- package/dist/types/stories/widgets/ProductCard.stories.d.ts +25 -0
- package/dist/types/theme/index.d.ts +1 -1
- package/dist/types/widgets/Header/Header.d.ts +252 -0
- package/dist/types/widgets/Header/Header.examples.d.ts +17 -0
- package/dist/types/widgets/Header/Header.megamenu.examples.d.ts +22 -0
- package/dist/types/widgets/Header/Header.stories.d.ts +30 -0
- package/dist/types/widgets/Header/index.d.ts +2 -0
- package/dist/types/widgets/InfoCard/InfoCard.d.ts +40 -0
- package/dist/types/widgets/InfoCard/index.d.ts +1 -0
- package/dist/types/widgets/InfoListCard/InfoListCard.d.ts +43 -0
- package/dist/types/widgets/InfoListCard/index.d.ts +2 -0
- package/dist/types/widgets/InfoText/InfoText.d.ts +144 -0
- package/dist/types/widgets/InfoText/InfoText.examples.d.ts +33 -0
- package/dist/types/widgets/InfoText/index.d.ts +1 -0
- package/dist/types/widgets/OrderCard/OrderCard.d.ts +71 -0
- package/dist/types/widgets/OrderCard/index.d.ts +2 -0
- package/dist/types/widgets/OrderConfirmation/OrderConfirmation.d.ts +85 -0
- package/dist/types/widgets/OrderConfirmation/index.d.ts +3 -0
- package/dist/types/widgets/OrderDetails/OrderDetails.d.ts +91 -0
- package/dist/types/widgets/OrderDetails/index.d.ts +3 -0
- package/dist/types/widgets/ProductCard/ProductCard.d.ts +42 -0
- package/dist/types/widgets/ProductCard/index.d.ts +1 -0
- package/dist/types/widgets/product-card-old/ProductCard.d.ts +12 -0
- package/package.json +73 -59
|
@@ -126,76 +126,10 @@ export interface ModalProps {
|
|
|
126
126
|
*/
|
|
127
127
|
centered?: boolean;
|
|
128
128
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
* Basic confirmation modal with footerButtons array
|
|
137
|
-
* ```tsx
|
|
138
|
-
* const [isOpen, setIsOpen] = useState(false);
|
|
139
|
-
*
|
|
140
|
-
* <Modal
|
|
141
|
-
* isOpen={isOpen}
|
|
142
|
-
* onClose={() => setIsOpen(false)}
|
|
143
|
-
* title="Confirm Action"
|
|
144
|
-
* description="Are you sure you want to proceed with this action?"
|
|
145
|
-
* footerButtons={[
|
|
146
|
-
* { label: 'Cancel', onClick: () => setIsOpen(false), variant: 'outline' },
|
|
147
|
-
* { label: 'Confirm', onClick: handleConfirm, variant: 'primary' }
|
|
148
|
-
* ]}
|
|
149
|
-
* >
|
|
150
|
-
* <p>This action cannot be undone.</p>
|
|
151
|
-
* </Modal>
|
|
152
|
-
* ```
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* Custom footer with ReactNode
|
|
156
|
-
* ```tsx
|
|
157
|
-
* <Modal
|
|
158
|
-
* isOpen={isOpen}
|
|
159
|
-
* onClose={() => setIsOpen(false)}
|
|
160
|
-
* title="Custom Footer"
|
|
161
|
-
* footer={
|
|
162
|
-
* <>
|
|
163
|
-
* <Button onClick={() => setIsOpen(false)}>Cancel</Button>
|
|
164
|
-
* <Button variant="primary">Save</Button>
|
|
165
|
-
* </>
|
|
166
|
-
* }
|
|
167
|
-
* >
|
|
168
|
-
* <p>Custom content here.</p>
|
|
169
|
-
* </Modal>
|
|
170
|
-
* ```
|
|
171
|
-
*
|
|
172
|
-
* @example
|
|
173
|
-
* Form modal with custom header
|
|
174
|
-
* ```tsx
|
|
175
|
-
* <Modal
|
|
176
|
-
* isOpen={isOpen}
|
|
177
|
-
* onClose={() => setIsOpen(false)}
|
|
178
|
-
* size="large"
|
|
179
|
-
* header={<CustomHeader />}
|
|
180
|
-
* scrollable
|
|
181
|
-
* >
|
|
182
|
-
* <FormContent />
|
|
183
|
-
* </Modal>
|
|
184
|
-
* ```
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* Fullscreen modal without backdrop close
|
|
188
|
-
* ```tsx
|
|
189
|
-
* <Modal
|
|
190
|
-
* isOpen={isOpen}
|
|
191
|
-
* onClose={() => setIsOpen(false)}
|
|
192
|
-
* size="fullscreen"
|
|
193
|
-
* closeOnBackdropClick={false}
|
|
194
|
-
* animation="slide-up"
|
|
195
|
-
* >
|
|
196
|
-
* <FullscreenContent />
|
|
197
|
-
* </Modal>
|
|
198
|
-
* ```
|
|
199
|
-
*/
|
|
200
|
-
export declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<HTMLDivElement>>;
|
|
201
|
-
export default Modal;
|
|
129
|
+
declare const ModalWithParsedClasses: {
|
|
130
|
+
(props: ModalProps & React.RefAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
131
|
+
displayName: string;
|
|
132
|
+
};
|
|
133
|
+
declare const _default: React.FC<ModalProps>;
|
|
134
|
+
export default _default;
|
|
135
|
+
export { ModalWithParsedClasses as Modal };
|
|
@@ -145,46 +145,10 @@ export interface MultiSelectProps {
|
|
|
145
145
|
*/
|
|
146
146
|
loading?: boolean;
|
|
147
147
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
* with chips display, search functionality, and group support.
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* Basic usage with checkbox style
|
|
156
|
-
* ```tsx
|
|
157
|
-
* <MultiSelect
|
|
158
|
-
* label="Select Technologies"
|
|
159
|
-
* placeholder="Choose technologies"
|
|
160
|
-
* options={technologies}
|
|
161
|
-
* onChange={(values) => console.log(values)}
|
|
162
|
-
* />
|
|
163
|
-
* ```
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* With checkmark style
|
|
167
|
-
* ```tsx
|
|
168
|
-
* <MultiSelect
|
|
169
|
-
* label="Select Skills"
|
|
170
|
-
* options={skills}
|
|
171
|
-
* selectionStyle="checkmark"
|
|
172
|
-
* searchable
|
|
173
|
-
* showSelectAll
|
|
174
|
-
* />
|
|
175
|
-
* ```
|
|
176
|
-
*
|
|
177
|
-
* @example
|
|
178
|
-
* Customize loading spinner via CSS
|
|
179
|
-
* ```css
|
|
180
|
-
* .vtx-multiselect-icon-spinner {
|
|
181
|
-
* --vtx-multiselect-loader-color: #10b981;
|
|
182
|
-
* --vtx-multiselect-loader-speed: 1.2s;
|
|
183
|
-
* --vtx-multiselect-loader-track-opacity: 0.15;
|
|
184
|
-
* --vtx-multiselect-loader-path-opacity: 0.85;
|
|
185
|
-
* }
|
|
186
|
-
* ```
|
|
187
|
-
*/
|
|
188
|
-
export declare const MultiSelect: React.ForwardRefExoticComponent<MultiSelectProps & React.RefAttributes<HTMLDivElement>>;
|
|
148
|
+
declare const MultiSelectWithParsedClasses: {
|
|
149
|
+
(props: MultiSelectProps & React.RefAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
150
|
+
displayName: string;
|
|
151
|
+
};
|
|
189
152
|
declare const _default: React.FC<MultiSelectProps & React.RefAttributes<HTMLDivElement>>;
|
|
190
153
|
export default _default;
|
|
154
|
+
export { MultiSelectWithParsedClasses as MultiSelect };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Size } from '../../theme';
|
|
2
3
|
import './Radio.css';
|
|
3
4
|
export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
4
5
|
/**
|
|
@@ -16,9 +17,9 @@ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
|
|
|
16
17
|
label?: React.ReactNode;
|
|
17
18
|
/**
|
|
18
19
|
* The size of the radio
|
|
19
|
-
* @default
|
|
20
|
+
* @default theme.defaultSize
|
|
20
21
|
*/
|
|
21
|
-
size?:
|
|
22
|
+
size?: Size;
|
|
22
23
|
/**
|
|
23
24
|
* The variant of the radio
|
|
24
25
|
* @default 'primary'
|
|
@@ -46,60 +47,10 @@ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
|
|
|
46
47
|
*/
|
|
47
48
|
inputClassName?: string;
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
* for labels, error states, variants, and three sizes.
|
|
54
|
-
*
|
|
55
|
-
* ## CSS Customization
|
|
56
|
-
*
|
|
57
|
-
* You can customize the radio appearance using CSS custom properties:
|
|
58
|
-
*
|
|
59
|
-
* ```css
|
|
60
|
-
* :root {
|
|
61
|
-
* --vtx-radio-color: #1976d2;
|
|
62
|
-
* --vtx-radio-size: 20px;
|
|
63
|
-
* --vtx-radio-border-width: 2px;
|
|
64
|
-
* }
|
|
65
|
-
* ```
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* Basic radio
|
|
69
|
-
* ```tsx
|
|
70
|
-
* <Radio label="Option 1" name="options" value="1" />
|
|
71
|
-
* ```
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* Controlled radio
|
|
75
|
-
* ```tsx
|
|
76
|
-
* const [selected, setSelected] = useState('1');
|
|
77
|
-
* <Radio
|
|
78
|
-
* checked={selected === '1'}
|
|
79
|
-
* onChange={(e) => setSelected(e.target.value)}
|
|
80
|
-
* label="Option 1"
|
|
81
|
-
* value="1"
|
|
82
|
-
* />
|
|
83
|
-
* ```
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* With error state
|
|
87
|
-
* ```tsx
|
|
88
|
-
* <Radio
|
|
89
|
-
* label="Required option"
|
|
90
|
-
* error
|
|
91
|
-
* helperText="Please select an option"
|
|
92
|
-
* />
|
|
93
|
-
* ```
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* Different variants
|
|
97
|
-
* ```tsx
|
|
98
|
-
* <Radio label="Primary" variant="primary" />
|
|
99
|
-
* <Radio label="Success" variant="success" />
|
|
100
|
-
* <Radio label="Error" variant="error" />
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
|
|
50
|
+
declare const RadioWithParsedClasses: {
|
|
51
|
+
(props: RadioProps & React.RefAttributes<HTMLInputElement>): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
displayName: string;
|
|
53
|
+
};
|
|
104
54
|
declare const _default: React.FC<RadioProps & React.RefAttributes<HTMLInputElement>>;
|
|
105
55
|
export default _default;
|
|
56
|
+
export { RadioWithParsedClasses as Radio };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Size } from '../../theme';
|
|
2
3
|
import './RadioGroup.css';
|
|
3
4
|
export interface RadioOption {
|
|
4
5
|
/**
|
|
@@ -60,9 +61,9 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
60
61
|
orientation?: 'horizontal' | 'vertical';
|
|
61
62
|
/**
|
|
62
63
|
* The size of the radios
|
|
63
|
-
* @default
|
|
64
|
+
* @default theme.defaultSize
|
|
64
65
|
*/
|
|
65
|
-
size?:
|
|
66
|
+
size?: Size;
|
|
66
67
|
/**
|
|
67
68
|
* The variant of the radios
|
|
68
69
|
* @default 'primary'
|
|
@@ -73,62 +74,10 @@ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
73
74
|
*/
|
|
74
75
|
className?: string;
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
* radio buttons with shared state, labels, and error handling.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* Basic usage
|
|
84
|
-
* ```tsx
|
|
85
|
-
* <RadioGroup
|
|
86
|
-
* name="plan"
|
|
87
|
-
* label="Select your plan"
|
|
88
|
-
* options={[
|
|
89
|
-
* { value: 'basic', label: 'Basic' },
|
|
90
|
-
* { value: 'pro', label: 'Pro' },
|
|
91
|
-
* { value: 'enterprise', label: 'Enterprise' },
|
|
92
|
-
* ]}
|
|
93
|
-
* />
|
|
94
|
-
* ```
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* Controlled mode
|
|
98
|
-
* ```tsx
|
|
99
|
-
* const [selected, setSelected] = useState('basic');
|
|
100
|
-
* <RadioGroup
|
|
101
|
-
* name="plan"
|
|
102
|
-
* label="Plan"
|
|
103
|
-
* options={options}
|
|
104
|
-
* value={selected}
|
|
105
|
-
* onChange={setSelected}
|
|
106
|
-
* />
|
|
107
|
-
* ```
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* Horizontal layout
|
|
111
|
-
* ```tsx
|
|
112
|
-
* <RadioGroup
|
|
113
|
-
* name="answer"
|
|
114
|
-
* label="Your answer"
|
|
115
|
-
* options={options}
|
|
116
|
-
* orientation="horizontal"
|
|
117
|
-
* />
|
|
118
|
-
* ```
|
|
119
|
-
*
|
|
120
|
-
* @example
|
|
121
|
-
* With error state
|
|
122
|
-
* ```tsx
|
|
123
|
-
* <RadioGroup
|
|
124
|
-
* name="required"
|
|
125
|
-
* label="Required selection"
|
|
126
|
-
* options={options}
|
|
127
|
-
* error
|
|
128
|
-
* helperText="Please select an option"
|
|
129
|
-
* />
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
export declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
77
|
+
declare const RadioGroupWithParsedClasses: {
|
|
78
|
+
(props: RadioGroupProps & React.RefAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
79
|
+
displayName: string;
|
|
80
|
+
};
|
|
133
81
|
declare const _default: React.FC<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
134
82
|
export default _default;
|
|
83
|
+
export { RadioGroupWithParsedClasses as RadioGroup };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { SelectHTMLAttributes } from 'react';
|
|
2
|
+
import { Size } from '../../theme';
|
|
2
3
|
import './Select.css';
|
|
3
4
|
export interface SelectOption {
|
|
4
5
|
/**
|
|
@@ -39,9 +40,9 @@ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement
|
|
|
39
40
|
success?: string;
|
|
40
41
|
/**
|
|
41
42
|
* Size of the select
|
|
42
|
-
* @default
|
|
43
|
+
* @default theme.defaultSize
|
|
43
44
|
*/
|
|
44
|
-
size?:
|
|
45
|
+
size?: Size;
|
|
45
46
|
/**
|
|
46
47
|
* If true, select will take full width of its container
|
|
47
48
|
* @default false
|
|
@@ -107,63 +108,10 @@ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement
|
|
|
107
108
|
*/
|
|
108
109
|
loading?: boolean;
|
|
109
110
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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>>;
|
|
111
|
+
declare const SelectWithParsedClasses: {
|
|
112
|
+
(props: SelectProps & React.RefAttributes<HTMLSelectElement>): import("react/jsx-runtime").JSX.Element;
|
|
113
|
+
displayName: string;
|
|
114
|
+
};
|
|
115
|
+
export { SelectWithParsedClasses as Select };
|
|
168
116
|
declare const _default: React.FC<SelectProps & React.RefAttributes<HTMLSelectElement>>;
|
|
169
117
|
export default _default;
|
|
@@ -80,39 +80,10 @@ export declare const SideMenuItem: React.ForwardRefExoticComponent<SideMenuItemP
|
|
|
80
80
|
collapsed?: boolean;
|
|
81
81
|
level?: number;
|
|
82
82
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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>>;
|
|
83
|
+
declare const SideMenuWithParsedClasses: {
|
|
84
|
+
(props: SideMenuProps & React.RefAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
85
|
+
displayName: string;
|
|
86
|
+
};
|
|
117
87
|
declare const _default: React.FC<SideMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
118
88
|
export default _default;
|
|
89
|
+
export { SideMenuWithParsedClasses as SideMenu };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example: Basic Layout with Collapsible Sidebar
|
|
3
|
+
*
|
|
4
|
+
* This example demonstrates a simple layout with:
|
|
5
|
+
* - Collapsible sidebar
|
|
6
|
+
* - Nested menu items
|
|
7
|
+
* - Badges for notifications
|
|
8
|
+
* - Icons and tooltips
|
|
9
|
+
*/
|
|
10
|
+
export declare const BasicLayoutExample: () => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* Example: With Links
|
|
13
|
+
*/
|
|
14
|
+
export declare const WithLinksExample: () => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* Example: Simple Sidebar
|
|
17
|
+
*/
|
|
18
|
+
export declare const SimpleExample: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export { default
|
|
1
|
+
export { SideMenu, default } from './SideMenu';
|
|
2
2
|
export type { SideMenuProps, SideMenuItemProps } from './SideMenu';
|
|
3
|
-
export { SideMenu as SideMenuComponent } from './SideMenu';
|
|
4
|
-
export { SideMenuItem } from './SideMenu';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { TableHTMLAttributes } from 'react';
|
|
2
|
+
import { Size } from '../../theme';
|
|
2
3
|
import './Table.css';
|
|
3
4
|
export interface TableColumn<T = unknown> {
|
|
4
5
|
/**
|
|
@@ -53,6 +54,19 @@ export interface TableColumn<T = unknown> {
|
|
|
53
54
|
* Custom class name for header cell
|
|
54
55
|
*/
|
|
55
56
|
headerClassName?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Enable filtering for this column
|
|
59
|
+
* @default false
|
|
60
|
+
*/
|
|
61
|
+
filterable?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Custom filter function
|
|
64
|
+
*/
|
|
65
|
+
filterFn?: (row: T, filterValue: string) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Filter placeholder text
|
|
68
|
+
*/
|
|
69
|
+
filterPlaceholder?: string;
|
|
56
70
|
}
|
|
57
71
|
export interface TableProps<T = unknown> extends Omit<TableHTMLAttributes<HTMLTableElement>, 'children'> {
|
|
58
72
|
/**
|
|
@@ -85,9 +99,9 @@ export interface TableProps<T = unknown> extends Omit<TableHTMLAttributes<HTMLTa
|
|
|
85
99
|
bordered?: boolean;
|
|
86
100
|
/**
|
|
87
101
|
* Size variant
|
|
88
|
-
* @default
|
|
102
|
+
* @default theme.defaultSize
|
|
89
103
|
*/
|
|
90
|
-
size?:
|
|
104
|
+
size?: Size;
|
|
91
105
|
/**
|
|
92
106
|
* Optional caption for the table (improves accessibility)
|
|
93
107
|
*/
|
|
@@ -148,64 +162,98 @@ export interface TableProps<T = unknown> extends Omit<TableHTMLAttributes<HTMLTa
|
|
|
148
162
|
* Custom class name for table container
|
|
149
163
|
*/
|
|
150
164
|
containerClassName?: string;
|
|
165
|
+
/**
|
|
166
|
+
* If true, enables row selection with checkboxes
|
|
167
|
+
* @default false
|
|
168
|
+
*/
|
|
169
|
+
selectable?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Array of selected row keys
|
|
172
|
+
*/
|
|
173
|
+
selectedRows?: (string | number)[];
|
|
174
|
+
/**
|
|
175
|
+
* Callback fired when selection changes
|
|
176
|
+
*/
|
|
177
|
+
onSelectionChange?: (selectedKeys: (string | number)[]) => void;
|
|
178
|
+
/**
|
|
179
|
+
* If true, enables pagination
|
|
180
|
+
* @default false
|
|
181
|
+
*/
|
|
182
|
+
pagination?: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Current page (zero-indexed)
|
|
185
|
+
* @default 0
|
|
186
|
+
*/
|
|
187
|
+
page?: number;
|
|
188
|
+
/**
|
|
189
|
+
* Number of rows per page
|
|
190
|
+
* @default 10
|
|
191
|
+
*/
|
|
192
|
+
rowsPerPage?: number;
|
|
193
|
+
/**
|
|
194
|
+
* Options for rows per page selection
|
|
195
|
+
* @default [5, 10, 25, 50]
|
|
196
|
+
*/
|
|
197
|
+
rowsPerPageOptions?: number[];
|
|
198
|
+
/**
|
|
199
|
+
* Callback fired when page changes
|
|
200
|
+
*/
|
|
201
|
+
onPageChange?: (page: number) => void;
|
|
202
|
+
/**
|
|
203
|
+
* Callback fired when rows per page changes
|
|
204
|
+
*/
|
|
205
|
+
onRowsPerPageChange?: (rowsPerPage: number) => void;
|
|
206
|
+
/**
|
|
207
|
+
* Dense mode - reduces padding for compact view
|
|
208
|
+
* @default false
|
|
209
|
+
*/
|
|
210
|
+
dense?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Enable expandable rows
|
|
213
|
+
*/
|
|
214
|
+
expandableRows?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Function to render expanded row content
|
|
217
|
+
*/
|
|
218
|
+
renderExpandedRow?: (row: T, rowIndex: number) => React.ReactNode;
|
|
219
|
+
/**
|
|
220
|
+
* Array of expanded row keys
|
|
221
|
+
*/
|
|
222
|
+
expandedRows?: (string | number)[];
|
|
223
|
+
/**
|
|
224
|
+
* Callback fired when row expansion changes
|
|
225
|
+
*/
|
|
226
|
+
onExpandRow?: (rowKey: string | number) => void;
|
|
227
|
+
/**
|
|
228
|
+
* Sticky header when scrolling
|
|
229
|
+
* @default false
|
|
230
|
+
*/
|
|
231
|
+
stickyHeader?: boolean;
|
|
232
|
+
/**
|
|
233
|
+
* Show toolbar with title and actions
|
|
234
|
+
*/
|
|
235
|
+
toolbar?: React.ReactNode | {
|
|
236
|
+
title?: string;
|
|
237
|
+
actions?: React.ReactNode;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* Enable column filtering
|
|
241
|
+
* @default false
|
|
242
|
+
*/
|
|
243
|
+
filterable?: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* Current filter values
|
|
246
|
+
*/
|
|
247
|
+
filters?: Record<string, string>;
|
|
248
|
+
/**
|
|
249
|
+
* Callback fired when filters change
|
|
250
|
+
*/
|
|
251
|
+
onFiltersChange?: (filters: Record<string, string>) => void;
|
|
151
252
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
}
|
|
253
|
+
declare const TableWithParsedClasses: {
|
|
254
|
+
(props: TableProps<unknown>): import("react/jsx-runtime").JSX.Element;
|
|
255
|
+
displayName: string;
|
|
256
|
+
};
|
|
210
257
|
declare const _default: React.FC<TableProps & React.RefAttributes<HTMLTableElement>>;
|
|
211
258
|
export default _default;
|
|
259
|
+
export { TableWithParsedClasses as Table };
|
|
@@ -105,7 +105,10 @@ export interface TextProps extends Omit<React.HTMLAttributes<HTMLElement>, 'colo
|
|
|
105
105
|
*/
|
|
106
106
|
children?: React.ReactNode;
|
|
107
107
|
}
|
|
108
|
-
declare const TextWithParsedClasses:
|
|
108
|
+
declare const TextWithParsedClasses: {
|
|
109
|
+
(props: TextProps & React.RefAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
110
|
+
displayName: string;
|
|
111
|
+
};
|
|
109
112
|
export { TextWithParsedClasses as Text };
|
|
110
113
|
declare const _default: React.FC<TextProps & React.RefAttributes<HTMLElement>>;
|
|
111
114
|
export default _default;
|