droplinked-ui-kit 0.0.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.
- package/README.md +81 -0
- package/dist/droplinked-ui-kit.cjs +5 -0
- package/dist/droplinked-ui-kit.css +1 -0
- package/dist/droplinked-ui-kit.js +2276 -0
- package/dist/index.d.ts +448 -0
- package/package.json +72 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import { BoxProps } from '@chakra-ui/react';
|
|
2
|
+
import { ButtonProps as ButtonProps_2 } from '@chakra-ui/react';
|
|
3
|
+
import { ChangeEvent } from 'react';
|
|
4
|
+
import { default as default_2 } from 'react';
|
|
5
|
+
import { ElementType } from 'react';
|
|
6
|
+
import { FlexProps } from '@chakra-ui/react';
|
|
7
|
+
import { InputProps as InputProps_2 } from '@chakra-ui/react';
|
|
8
|
+
import { JSX } from 'react/jsx-runtime';
|
|
9
|
+
import { ReactNode } from 'react';
|
|
10
|
+
import { SystemContext } from '@chakra-ui/react';
|
|
11
|
+
import { TextareaProps } from '@chakra-ui/react';
|
|
12
|
+
|
|
13
|
+
export declare function ActionMenu(props: ActionMenuProps): JSX.Element;
|
|
14
|
+
|
|
15
|
+
export declare type ActionMenuItem = {
|
|
16
|
+
icon: ElementType;
|
|
17
|
+
title: string;
|
|
18
|
+
variant?: ActionMenuItemVariant;
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
hasBottomDivider?: boolean;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
declare type ActionMenuItemVariant = 'default' | 'error' | 'disabled' | 'selected';
|
|
24
|
+
|
|
25
|
+
declare type ActionMenuProps = {
|
|
26
|
+
items: ActionMenuItem[];
|
|
27
|
+
triggerIcon?: ElementType;
|
|
28
|
+
triggerAriaLabel?: string;
|
|
29
|
+
buttonVariant?: ButtonProps['variant'];
|
|
30
|
+
buttonProps?: Omit<ButtonProps, 'buttonType' | 'leftIcon' | 'children' | 'variant'>;
|
|
31
|
+
open?: boolean;
|
|
32
|
+
defaultOpen?: boolean;
|
|
33
|
+
onOpenChange?: (open: boolean) => void;
|
|
34
|
+
closeOnSelect?: boolean;
|
|
35
|
+
menuWidth?: string | number;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export declare function ActionOverlay({ children, ...rest }: FlexProps): JSX.Element;
|
|
39
|
+
|
|
40
|
+
declare type BaseProps = {
|
|
41
|
+
isSelected?: boolean;
|
|
42
|
+
isDisabled?: boolean;
|
|
43
|
+
isInvalid?: boolean;
|
|
44
|
+
onClick?: () => void;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export declare function Button(props: ButtonProps): JSX.Element;
|
|
48
|
+
|
|
49
|
+
declare interface ButtonProps extends Omit<ButtonProps_2, 'variant'> {
|
|
50
|
+
leftIcon?: ElementType;
|
|
51
|
+
rightIcon?: ElementType;
|
|
52
|
+
icon?: ElementType;
|
|
53
|
+
variant?: variants;
|
|
54
|
+
buttonType?: ButtonType;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
declare type ButtonType = 'text' | 'icon';
|
|
58
|
+
|
|
59
|
+
export declare function Checkbox(props: CheckboxProps): JSX.Element;
|
|
60
|
+
|
|
61
|
+
declare interface CheckboxProps extends Omit<BoxProps, 'onChange'> {
|
|
62
|
+
id?: string;
|
|
63
|
+
label?: string;
|
|
64
|
+
subtitle?: string;
|
|
65
|
+
isRequired?: boolean;
|
|
66
|
+
requiredText?: string;
|
|
67
|
+
chipsLabel?: string;
|
|
68
|
+
isDisabled?: boolean;
|
|
69
|
+
checked?: boolean;
|
|
70
|
+
defaultChecked?: boolean;
|
|
71
|
+
onChange?: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
|
|
72
|
+
icon?: ElementType;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export declare function CheckoutHeader(props: CheckoutHeaderProps): JSX.Element;
|
|
76
|
+
|
|
77
|
+
declare interface CheckoutHeaderProps {
|
|
78
|
+
buttonLabel: string;
|
|
79
|
+
onClick?: () => void;
|
|
80
|
+
imageSrc: string;
|
|
81
|
+
imageAlt: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export declare function Chips(props: ChipsProps): JSX.Element;
|
|
85
|
+
|
|
86
|
+
declare interface ChipsProps extends Omit<BoxProps, 'color' | 'direction'> {
|
|
87
|
+
label?: string;
|
|
88
|
+
showLeftIcon?: boolean;
|
|
89
|
+
showRightIcon?: boolean;
|
|
90
|
+
leftIcon?: React.ReactNode;
|
|
91
|
+
rightIcon?: React.ReactNode;
|
|
92
|
+
variant?: variants;
|
|
93
|
+
onClick?: () => void;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Corner Radius Options (from design system)
|
|
98
|
+
*/
|
|
99
|
+
export declare const cornerRadiusOptions: Record<RadiiOption, RadiiConfigs>;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Create Chakra UI System from FullThemePalette
|
|
103
|
+
* This function enables dynamic theme updates for the Drag & Drop Designer
|
|
104
|
+
*/
|
|
105
|
+
export declare function createThemeSystem(palette?: FullThemePalette, typography?: TypographyConfigs, radiiOption?: RadiiOption): SystemContext;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Default Light Theme Palette
|
|
109
|
+
*/
|
|
110
|
+
export declare const defaultLightTheme: FullThemePalette;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Default Border Radius Configuration (Option 2)
|
|
114
|
+
*/
|
|
115
|
+
export declare const defaultRadii: RadiiConfigs;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Default system instance
|
|
119
|
+
* Can be replaced with custom theme in Designer or Checkout
|
|
120
|
+
*/
|
|
121
|
+
export declare const defaultSystem: SystemContext;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Default Typography Configuration
|
|
125
|
+
*/
|
|
126
|
+
export declare const defaultTypography: TypographyConfigs;
|
|
127
|
+
|
|
128
|
+
export declare function Dropdown(props: DropdownProps): JSX.Element;
|
|
129
|
+
|
|
130
|
+
declare interface DropdownProps {
|
|
131
|
+
triggerText?: string;
|
|
132
|
+
children?: ReactNode | ((helpers: DropdownRenderHelpers) => ReactNode);
|
|
133
|
+
open?: boolean;
|
|
134
|
+
defaultOpen?: boolean;
|
|
135
|
+
onOpenChange?: (open: boolean) => void;
|
|
136
|
+
leftIcon?: ElementType;
|
|
137
|
+
title?: string;
|
|
138
|
+
subtitle?: string;
|
|
139
|
+
secondaryText?: string;
|
|
140
|
+
required?: boolean;
|
|
141
|
+
chipsLabel?: string;
|
|
142
|
+
isDisabled?: boolean;
|
|
143
|
+
isError?: boolean;
|
|
144
|
+
isSuccess?: boolean;
|
|
145
|
+
message?: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
declare interface DropdownRenderHelpers {
|
|
149
|
+
open: boolean;
|
|
150
|
+
close: () => void;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Central theme interface for UI-Kit
|
|
155
|
+
* Used across Drag & Drop Designer and Checkout projects
|
|
156
|
+
*/
|
|
157
|
+
export declare interface FullThemePalette {
|
|
158
|
+
isDarkTheme?: boolean;
|
|
159
|
+
themeName: string;
|
|
160
|
+
primary: {
|
|
161
|
+
main: string;
|
|
162
|
+
hover: string;
|
|
163
|
+
tint10: string;
|
|
164
|
+
tint20: string;
|
|
165
|
+
};
|
|
166
|
+
neutral: {
|
|
167
|
+
bgDark: string;
|
|
168
|
+
bgLight: string;
|
|
169
|
+
neutral10: string;
|
|
170
|
+
neutral30: string;
|
|
171
|
+
neutral50: string;
|
|
172
|
+
};
|
|
173
|
+
text: {
|
|
174
|
+
main: string;
|
|
175
|
+
inverse: string;
|
|
176
|
+
subtext: string;
|
|
177
|
+
disabled: string;
|
|
178
|
+
};
|
|
179
|
+
state: {
|
|
180
|
+
success: {
|
|
181
|
+
main: string;
|
|
182
|
+
tint10: string;
|
|
183
|
+
tint20: string;
|
|
184
|
+
};
|
|
185
|
+
error: {
|
|
186
|
+
main: string;
|
|
187
|
+
tint10: string;
|
|
188
|
+
tint20: string;
|
|
189
|
+
};
|
|
190
|
+
warning: {
|
|
191
|
+
main: string;
|
|
192
|
+
tint10: string;
|
|
193
|
+
tint20: string;
|
|
194
|
+
};
|
|
195
|
+
info: {
|
|
196
|
+
main: string;
|
|
197
|
+
tint10: string;
|
|
198
|
+
tint20: string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export declare function IconContainer(props: IconContainerProps): JSX.Element;
|
|
204
|
+
|
|
205
|
+
declare type IconContainerProps = {
|
|
206
|
+
type?: IconContainerType;
|
|
207
|
+
variant?: IconContainerVariant;
|
|
208
|
+
icon?: ElementType;
|
|
209
|
+
text?: string;
|
|
210
|
+
imageSrc?: string;
|
|
211
|
+
imageAlt?: string;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
declare type IconContainerType = 'icon' | 'text' | 'image';
|
|
215
|
+
|
|
216
|
+
declare type IconContainerVariant = 'outlined' | 'muted' | 'secondary' | 'information' | 'success' | 'warning' | 'error' | 'disabled' | 'image';
|
|
217
|
+
|
|
218
|
+
declare type IconListItemProps = BaseProps & {
|
|
219
|
+
type: 'icon';
|
|
220
|
+
leftIcon: ElementType;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export declare const Input: default_2.ForwardRefExoticComponent<InputProps & default_2.RefAttributes<HTMLInputElement>>;
|
|
224
|
+
|
|
225
|
+
declare interface InputProps extends Omit<InputProps_2, 'title' | 'onChange' | 'variant' | 'isInvalid'> {
|
|
226
|
+
/** Label text */
|
|
227
|
+
title?: string;
|
|
228
|
+
/** Subtitle text displayed below label */
|
|
229
|
+
subtitle?: string;
|
|
230
|
+
/** Left icon element */
|
|
231
|
+
leftIcon?: ReactNode;
|
|
232
|
+
/** Right icon element */
|
|
233
|
+
rightIcon?: ReactNode;
|
|
234
|
+
/** The supporting message text */
|
|
235
|
+
supportingMessage?: string;
|
|
236
|
+
/** Right element to display outside the input */
|
|
237
|
+
rightElement?: ReactNode;
|
|
238
|
+
/** Secondary text next to the label (e.g. "(Required)") */
|
|
239
|
+
secondaryText?: string;
|
|
240
|
+
/** Whether the input is required */
|
|
241
|
+
required?: boolean;
|
|
242
|
+
/** Label text for the chips badge in the label row */
|
|
243
|
+
chipsLabel?: string;
|
|
244
|
+
/** Variant of the input */
|
|
245
|
+
variant?: variants;
|
|
246
|
+
/** Change handler */
|
|
247
|
+
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
248
|
+
/** Disabled state */
|
|
249
|
+
isDisabled?: boolean;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export declare function ListItem(props: ListItemProps): JSX.Element;
|
|
253
|
+
|
|
254
|
+
declare type ListItemProps = TextListItemProps | IconListItemProps;
|
|
255
|
+
|
|
256
|
+
export declare function Modal(props: ModalProps): JSX.Element;
|
|
257
|
+
|
|
258
|
+
declare interface ModalProps {
|
|
259
|
+
/** Whether the modal is open */
|
|
260
|
+
open: boolean;
|
|
261
|
+
/** Callback when modal open state changes */
|
|
262
|
+
onOpenChange?: (open: boolean) => void;
|
|
263
|
+
/** Modal header content (TabBar, SearchBar, etc.) */
|
|
264
|
+
headerContent?: ReactNode;
|
|
265
|
+
/** Modal body content */
|
|
266
|
+
children: ReactNode;
|
|
267
|
+
/** Modal footer content (buttons, etc.) */
|
|
268
|
+
footerContent?: ReactNode;
|
|
269
|
+
/** Modal title */
|
|
270
|
+
title?: string;
|
|
271
|
+
/** Icon to display in header */
|
|
272
|
+
icon?: React.ComponentType<{
|
|
273
|
+
className?: string;
|
|
274
|
+
}>;
|
|
275
|
+
/** Whether to show close button */
|
|
276
|
+
showCloseButton?: boolean;
|
|
277
|
+
/** Whether to apply blur background to backdrop */
|
|
278
|
+
hasBlurBg?: boolean;
|
|
279
|
+
/** Modal size (desktop only) */
|
|
280
|
+
size?: 'full' | 'sm' | 'md' | 'lg' | 'xl';
|
|
281
|
+
minHeight?: string;
|
|
282
|
+
maxHeight?: string;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export declare function ProductCard(props: ProductCardProps): JSX.Element;
|
|
286
|
+
|
|
287
|
+
declare interface ProductCardProps {
|
|
288
|
+
title: string;
|
|
289
|
+
price: number;
|
|
290
|
+
abbreviation: string;
|
|
291
|
+
sku: string[];
|
|
292
|
+
quantity: number;
|
|
293
|
+
url?: string;
|
|
294
|
+
thumbnail: string;
|
|
295
|
+
rightContent?: ReactNode;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export declare interface RadiiConfigs {
|
|
299
|
+
xs: string;
|
|
300
|
+
sm: string;
|
|
301
|
+
md: string;
|
|
302
|
+
lg: string;
|
|
303
|
+
xl: string;
|
|
304
|
+
'2xl': string;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export declare type RadiiOption = 'option1' | 'option2' | 'option3' | 'option4';
|
|
308
|
+
|
|
309
|
+
export declare function SearchBar(props: SearchBarProps): JSX.Element;
|
|
310
|
+
|
|
311
|
+
declare interface SearchBarProps extends Omit<BoxProps, 'onChange'> {
|
|
312
|
+
placeholder?: string;
|
|
313
|
+
variant?: SearchBarVariant;
|
|
314
|
+
value?: string;
|
|
315
|
+
defaultValue?: string;
|
|
316
|
+
onChange?: InputProps_2['onChange'];
|
|
317
|
+
showClear?: boolean;
|
|
318
|
+
isDisabled?: boolean;
|
|
319
|
+
isExpanded?: boolean;
|
|
320
|
+
defaultExpanded?: boolean;
|
|
321
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
declare type SearchBarVariant = 'maximized' | 'icon';
|
|
325
|
+
|
|
326
|
+
export declare function SectionTitle(props: SectionTitleProps): JSX.Element;
|
|
327
|
+
|
|
328
|
+
declare interface SectionTitleProps extends Omit<BoxProps, 'title' | 'color' | 'direction'> {
|
|
329
|
+
title?: string;
|
|
330
|
+
icon?: React.ReactNode;
|
|
331
|
+
rightContent?: React.ReactNode;
|
|
332
|
+
showIcon?: boolean;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
export declare function SelectionCard(props: SelectionCardProps): JSX.Element;
|
|
336
|
+
|
|
337
|
+
declare type SelectionCardProps = {
|
|
338
|
+
title: string;
|
|
339
|
+
subtitle: ReactNode;
|
|
340
|
+
actionMenuItems: ActionMenuItem[];
|
|
341
|
+
actionMenuProps?: Omit<ActionMenuProps, 'items'>;
|
|
342
|
+
isSelected?: boolean;
|
|
343
|
+
onClick?: () => void;
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
export declare const SelectionTab: ({ label, icon, showIcon, isSelected, isDisabled, onClick, }: SelectionTabProps) => JSX.Element;
|
|
347
|
+
|
|
348
|
+
declare interface SelectionTabProps {
|
|
349
|
+
label: string;
|
|
350
|
+
icon?: ElementType;
|
|
351
|
+
showIcon?: boolean;
|
|
352
|
+
isSelected?: boolean;
|
|
353
|
+
isDisabled?: boolean;
|
|
354
|
+
onClick?: () => void;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
export declare const TextArea: default_2.ForwardRefExoticComponent<TextAreaProps & default_2.RefAttributes<HTMLTextAreaElement>>;
|
|
358
|
+
|
|
359
|
+
declare interface TextAreaProps extends Omit<TextareaProps, 'title' | 'onChange' | 'variant' | 'isInvalid'> {
|
|
360
|
+
/** Label text */
|
|
361
|
+
title?: string;
|
|
362
|
+
/** Subtitle text displayed below label */
|
|
363
|
+
subtitle?: string;
|
|
364
|
+
/** The supporting message text */
|
|
365
|
+
supportingMessage?: string;
|
|
366
|
+
/** Secondary text next to the label (e.g. "(Required)") */
|
|
367
|
+
secondaryText?: string;
|
|
368
|
+
/** Whether the textarea is required */
|
|
369
|
+
required?: boolean;
|
|
370
|
+
/** Label text for the chips badge in the label row */
|
|
371
|
+
chipsLabel?: string;
|
|
372
|
+
/** Variant of the textarea */
|
|
373
|
+
variant?: variants;
|
|
374
|
+
/** Change handler */
|
|
375
|
+
onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
376
|
+
/** Disabled state */
|
|
377
|
+
isDisabled?: boolean;
|
|
378
|
+
/** Number of visible text rows */
|
|
379
|
+
rows?: number;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
declare type TextListItemProps = BaseProps & {
|
|
383
|
+
type?: 'text';
|
|
384
|
+
label: string;
|
|
385
|
+
chipsLabel?: string;
|
|
386
|
+
leftIcon?: ElementType;
|
|
387
|
+
rightContent?: ReactNode;
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
export declare function Toast(props: ToastProps): JSX.Element;
|
|
391
|
+
|
|
392
|
+
declare type ToastProps = {
|
|
393
|
+
variant?: ToastVariant;
|
|
394
|
+
title: string;
|
|
395
|
+
description: string;
|
|
396
|
+
secondaryTitle: string;
|
|
397
|
+
primaryTitle: string;
|
|
398
|
+
onSecondaryClick?: () => void;
|
|
399
|
+
onPrimaryClick?: () => void;
|
|
400
|
+
onClose?: () => void;
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
declare type ToastVariant = 'information' | 'success' | 'warning' | 'error';
|
|
404
|
+
|
|
405
|
+
export declare interface TypographyConfigs {
|
|
406
|
+
fontFamily: string;
|
|
407
|
+
fontSizes?: {
|
|
408
|
+
h1?: string;
|
|
409
|
+
h2?: string;
|
|
410
|
+
h3?: string;
|
|
411
|
+
h4?: string;
|
|
412
|
+
h5?: string;
|
|
413
|
+
h6?: string;
|
|
414
|
+
subtitle?: string;
|
|
415
|
+
body1?: string;
|
|
416
|
+
body2?: string;
|
|
417
|
+
body3?: string;
|
|
418
|
+
caption?: string;
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Theme Provider for UI-Kit
|
|
424
|
+
* Wraps Chakra UI and Next Themes
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* // Use with default theme
|
|
428
|
+
* <UIKitProvider>
|
|
429
|
+
* <App />
|
|
430
|
+
* </UIKitProvider>
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* // Use with custom theme
|
|
434
|
+
* const customSystem = createThemeSystem(customPalette, customTypography, 'option3');
|
|
435
|
+
* <UIKitProvider system={customSystem}>
|
|
436
|
+
* <App />
|
|
437
|
+
* </UIKitProvider>
|
|
438
|
+
*/
|
|
439
|
+
export declare function UIKitProvider({ children, system }: UIKitProviderProps): JSX.Element;
|
|
440
|
+
|
|
441
|
+
declare interface UIKitProviderProps {
|
|
442
|
+
children: ReactNode;
|
|
443
|
+
system?: SystemContext;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
declare type variants = 'primary' | 'outlined' | 'filled' | 'muted' | 'transparent' | 'information' | 'success' | 'warning' | 'error' | 'disabled';
|
|
447
|
+
|
|
448
|
+
export { }
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "droplinked-ui-kit",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/droplinked-ui-kit.cjs",
|
|
6
|
+
"module": "./dist/droplinked-ui-kit.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/droplinked-ui-kit.js",
|
|
12
|
+
"require": "./dist/droplinked-ui-kit.cjs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"dev": "vite",
|
|
20
|
+
"build": "tsc -b && vite build",
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
"preview": "vite preview",
|
|
23
|
+
"storybook": "storybook dev -p 6006",
|
|
24
|
+
"build-storybook": "storybook build"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@chakra-ui/react": "^3.30.0",
|
|
28
|
+
"@emotion/react": "^11.14.0",
|
|
29
|
+
"next-themes": "^0.4.6",
|
|
30
|
+
"react": "^19.2.0",
|
|
31
|
+
"react-dom": "^19.2.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@chakra-ui/react": "^3.30.0",
|
|
35
|
+
"@chromatic-com/storybook": "^5.0.0",
|
|
36
|
+
"@emotion/react": "^11.14.0",
|
|
37
|
+
"@eslint/js": "^9.39.1",
|
|
38
|
+
"@storybook/addon-a11y": "^10.2.3",
|
|
39
|
+
"@storybook/addon-docs": "^10.2.3",
|
|
40
|
+
"@storybook/addon-mcp": "^0.2.2",
|
|
41
|
+
"@storybook/addon-onboarding": "^10.2.3",
|
|
42
|
+
"@storybook/addon-vitest": "^10.2.3",
|
|
43
|
+
"@storybook/react-vite": "^10.2.3",
|
|
44
|
+
"@types/node": "^24.10.1",
|
|
45
|
+
"@types/react": "^19.2.5",
|
|
46
|
+
"@types/react-dom": "^19.2.3",
|
|
47
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
48
|
+
"@vitest/browser-playwright": "^4.0.18",
|
|
49
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
50
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
51
|
+
"eslint": "^9.39.1",
|
|
52
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
53
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
54
|
+
"eslint-plugin-storybook": "^10.2.3",
|
|
55
|
+
"globals": "^16.5.0",
|
|
56
|
+
"next-themes": "^0.4.6",
|
|
57
|
+
"playwright": "^1.58.1",
|
|
58
|
+
"prop-types": "^15.8.1",
|
|
59
|
+
"react": "^19.2.0",
|
|
60
|
+
"react-dom": "^19.2.0",
|
|
61
|
+
"storybook": "^10.2.3",
|
|
62
|
+
"typescript": "~5.8.2",
|
|
63
|
+
"typescript-eslint": "^8.46.4",
|
|
64
|
+
"vite": "^7.2.4",
|
|
65
|
+
"vite-plugin-dts": "^4.5.4",
|
|
66
|
+
"vite-tsconfig-paths": "^6.0.3",
|
|
67
|
+
"vitest": "^4.0.18"
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"react-router-dom": "^7.12.0"
|
|
71
|
+
}
|
|
72
|
+
}
|