@zimyo/ui 1.1.8 → 1.1.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 (40) hide show
  1. package/dist/Accordion/index.d.ts +34 -0
  2. package/dist/Accordion/index.esm.js +239 -0
  3. package/dist/Accordion/index.js +247 -0
  4. package/dist/Button/index.d.ts +15 -0
  5. package/dist/Button/index.esm.js +13 -0
  6. package/dist/Button/index.js +18 -0
  7. package/dist/Card/index.d.ts +41 -0
  8. package/dist/Card/index.esm.js +36 -0
  9. package/dist/Card/index.js +38 -0
  10. package/dist/Modal/index.d.ts +17 -0
  11. package/dist/Modal/index.esm.js +144 -0
  12. package/dist/Modal/index.js +149 -0
  13. package/dist/Popover/index.d.ts +19 -0
  14. package/dist/Popover/index.esm.js +22 -0
  15. package/dist/Popover/index.js +27 -0
  16. package/dist/RadioGroup/index.d.ts +31 -0
  17. package/dist/RadioGroup/index.esm.js +91 -0
  18. package/dist/RadioGroup/index.js +96 -0
  19. package/dist/Select/index.d.ts +22 -0
  20. package/dist/Select/index.esm.js +195 -0
  21. package/dist/Select/index.js +200 -0
  22. package/dist/Switch/index.d.ts +14 -0
  23. package/dist/Switch/index.esm.js +9 -0
  24. package/dist/Switch/index.js +14 -0
  25. package/dist/Tabs/index.d.ts +36 -0
  26. package/dist/Tabs/index.esm.js +202 -0
  27. package/dist/Tabs/index.js +207 -0
  28. package/dist/TextInput/index.d.ts +18 -0
  29. package/dist/TextInput/index.esm.js +33 -0
  30. package/dist/TextInput/index.js +38 -0
  31. package/dist/Typography/index.d.ts +30 -0
  32. package/dist/Typography/index.esm.js +57 -0
  33. package/dist/Typography/index.js +66 -0
  34. package/dist/index.d.ts +222 -0
  35. package/dist/index.esm.js +750 -0
  36. package/dist/index.js +772 -0
  37. package/dist/theme/index.d.ts +91 -0
  38. package/dist/theme/index.esm.js +234 -0
  39. package/dist/theme/index.js +239 -0
  40. package/package.json +1 -1
@@ -0,0 +1,750 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import React, { forwardRef, createElement } from 'react';
3
+ import { Button as Button$1, CircularProgress, useTheme, Card, CardHeader as CardHeader$1, Typography, CardActions as CardActions$1, Box, Skeleton, FormControl, Select as Select$1, OutlinedInput, IconButton, MenuItem, ListItemText, FormHelperText, Chip, Accordion as Accordion$1, AccordionSummary, AccordionDetails, FormControlLabel, Switch as Switch$1, TextField, InputAdornment, FormLabel, RadioGroup as RadioGroup$1, Radio, GlobalStyles, CssBaseline } from '@mui/material';
4
+ import MuiCardContent from '@mui/material/CardContent';
5
+ import CardMedia from '@mui/material/CardMedia';
6
+ import { createTheme, ThemeProvider } from '@mui/material/styles';
7
+
8
+ const Button = React.forwardRef(({ children, loading = false, loadingText, loaderSize = 18, loaderPosition = 'start', variant = 'contained', color = 'primary', size = 'medium', sx = {}, disabled, startIcon, endIcon, ...props }, ref) => {
9
+ const showStartSpinner = loading && loaderPosition === 'start';
10
+ const showEndSpinner = loading && loaderPosition === 'end';
11
+ const showCenterSpinner = loading && loaderPosition === 'center';
12
+ return (jsx(Button$1, { ref: ref, variant: variant, color: color, disabled: disabled || loading, size: size, startIcon: showStartSpinner ? (jsx(CircularProgress, { size: loaderSize, color: "inherit" })) : (startIcon), endIcon: showEndSpinner ? (jsx(CircularProgress, { size: loaderSize, color: "inherit" })) : (endIcon), sx: { position: 'relative', ...sx }, ...props, children: showCenterSpinner ? (jsx(CircularProgress, { size: loaderSize, color: "inherit" })) : loading && loadingText ? (loadingText) : (children) }));
13
+ });
14
+ Button.displayName = 'Button';
15
+
16
+ const CardRoot = ({ children, sx = {}, elevation = 1, variant = 'elevated', ...props }) => {
17
+ const theme = useTheme();
18
+ return (jsx(Card, { elevation: variant === 'elevated' ? elevation : 0, variant: variant === 'outlined' ? 'outlined' : 'elevation', sx: {
19
+ borderRadius: theme.radius?.sm || 8,
20
+ border: variant === 'bordered' ? `1px solid ${theme.palette.divider}` : 'none',
21
+ overflow: 'hidden',
22
+ backgroundColor: theme.palette.background.paper,
23
+ ...sx,
24
+ }, ...props, children: children }));
25
+ };
26
+
27
+ const CardHeader = ({ title, subtitle, action, }) => (jsx(CardHeader$1, { title: typeof title === 'string' ? (jsx(Typography, { variant: "h6", fontWeight: 600, children: title })) : (title), subheader: typeof subtitle === 'string' ? (jsx(Typography, { variant: "body2", color: "text.secondary", children: subtitle })) : (subtitle), action: action }));
28
+
29
+ const CardContent = ({ children, sx }) => (jsx(MuiCardContent, { sx: sx, children: children }));
30
+
31
+ const CardActions = ({ children, sx }) => (jsx(CardActions$1, { sx: sx, children: children }));
32
+
33
+ const CardImage = ({ src, height = 160, alt = 'card image' }) => (jsx(CardMedia, { component: "img", height: height, image: src, alt: alt }));
34
+
35
+ const CardSkeleton = ({ lines = 3 }) => (jsxs(Box, { p: 2, children: [jsx(Skeleton, { variant: "rectangular", height: 140 }), [...Array(lines)].map((_, i) => (jsx(Skeleton, { variant: "text", height: 20, sx: { mt: 1 } }, i)))] }));
36
+
37
+ Object.assign(CardRoot, {
38
+ Header: CardHeader,
39
+ Content: CardContent,
40
+ Body: CardContent, // alias
41
+ Actions: CardActions,
42
+ Image: CardImage,
43
+ Skeleton: CardSkeleton,
44
+ });
45
+
46
+ /**
47
+ * @license lucide-react v0.525.0 - ISC
48
+ *
49
+ * This source code is licensed under the ISC license.
50
+ * See the LICENSE file in the root directory of this source tree.
51
+ */
52
+
53
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
54
+ const toCamelCase = (string) => string.replace(
55
+ /^([A-Z])|[\s-_]+(\w)/g,
56
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
57
+ );
58
+ const toPascalCase = (string) => {
59
+ const camelCase = toCamelCase(string);
60
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
61
+ };
62
+ const mergeClasses = (...classes) => classes.filter((className, index, array) => {
63
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
64
+ }).join(" ").trim();
65
+ const hasA11yProp = (props) => {
66
+ for (const prop in props) {
67
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
68
+ return true;
69
+ }
70
+ }
71
+ };
72
+
73
+ /**
74
+ * @license lucide-react v0.525.0 - ISC
75
+ *
76
+ * This source code is licensed under the ISC license.
77
+ * See the LICENSE file in the root directory of this source tree.
78
+ */
79
+
80
+ var defaultAttributes = {
81
+ xmlns: "http://www.w3.org/2000/svg",
82
+ width: 24,
83
+ height: 24,
84
+ viewBox: "0 0 24 24",
85
+ fill: "none",
86
+ stroke: "currentColor",
87
+ strokeWidth: 2,
88
+ strokeLinecap: "round",
89
+ strokeLinejoin: "round"
90
+ };
91
+
92
+ /**
93
+ * @license lucide-react v0.525.0 - ISC
94
+ *
95
+ * This source code is licensed under the ISC license.
96
+ * See the LICENSE file in the root directory of this source tree.
97
+ */
98
+
99
+
100
+ const Icon = forwardRef(
101
+ ({
102
+ color = "currentColor",
103
+ size = 24,
104
+ strokeWidth = 2,
105
+ absoluteStrokeWidth,
106
+ className = "",
107
+ children,
108
+ iconNode,
109
+ ...rest
110
+ }, ref) => createElement(
111
+ "svg",
112
+ {
113
+ ref,
114
+ ...defaultAttributes,
115
+ width: size,
116
+ height: size,
117
+ stroke: color,
118
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
119
+ className: mergeClasses("lucide", className),
120
+ ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
121
+ ...rest
122
+ },
123
+ [
124
+ ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
125
+ ...Array.isArray(children) ? children : [children]
126
+ ]
127
+ )
128
+ );
129
+
130
+ /**
131
+ * @license lucide-react v0.525.0 - ISC
132
+ *
133
+ * This source code is licensed under the ISC license.
134
+ * See the LICENSE file in the root directory of this source tree.
135
+ */
136
+
137
+
138
+ const createLucideIcon = (iconName, iconNode) => {
139
+ const Component = forwardRef(
140
+ ({ className, ...props }, ref) => createElement(Icon, {
141
+ ref,
142
+ iconNode,
143
+ className: mergeClasses(
144
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
145
+ `lucide-${iconName}`,
146
+ className
147
+ ),
148
+ ...props
149
+ })
150
+ );
151
+ Component.displayName = toPascalCase(iconName);
152
+ return Component;
153
+ };
154
+
155
+ /**
156
+ * @license lucide-react v0.525.0 - ISC
157
+ *
158
+ * This source code is licensed under the ISC license.
159
+ * See the LICENSE file in the root directory of this source tree.
160
+ */
161
+
162
+
163
+ const __iconNode$1 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
164
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1);
165
+
166
+ /**
167
+ * @license lucide-react v0.525.0 - ISC
168
+ *
169
+ * This source code is licensed under the ISC license.
170
+ * See the LICENSE file in the root directory of this source tree.
171
+ */
172
+
173
+
174
+ const __iconNode = [
175
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
176
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
177
+ ];
178
+ const X = createLucideIcon("x", __iconNode);
179
+
180
+ const Select = React.forwardRef(({ label = '', options = [], value, onChange, error = false, helperText = '', required = false, placeholder = 'Select...', isMulti = false, disabled = false, ...rest }, ref) => {
181
+ useTheme();
182
+ const handleRemoveChip = (chipValue) => (e) => {
183
+ e.stopPropagation();
184
+ const newValue = value.filter((v) => v !== chipValue);
185
+ onChange?.({
186
+ target: {
187
+ name: rest.name,
188
+ value: newValue,
189
+ },
190
+ });
191
+ };
192
+ const renderValue = (selected) => {
193
+ if (isMulti && Array.isArray(selected)) {
194
+ return (jsx(Box, { sx: { display: 'flex', flexWrap: 'wrap', gap: 0.5 }, children: selected.map((val) => {
195
+ const label = options.find((o) => o.value === val)?.label || val;
196
+ return jsx(Box, { onMouseDown: (e) => e.stopPropagation(), children: jsx(Chip, { onDelete: handleRemoveChip(val), label: label, sx: { borderRadius: '12px' } }) }, val);
197
+ }) }));
198
+ }
199
+ return options.find((o) => o.value === selected)?.label || placeholder;
200
+ };
201
+ const handleClearSelection = (e) => {
202
+ e.stopPropagation();
203
+ const emptyValue = isMulti ? [] : '';
204
+ onChange?.({
205
+ target: {
206
+ name: rest.name,
207
+ value: emptyValue,
208
+ },
209
+ });
210
+ };
211
+ return (jsxs(FormControl, { fullWidth: true, error: error, disabled: disabled, sx: {
212
+ '& .MuiOutlinedInput-root': {
213
+ borderRadius: '8px',
214
+ minHeight: '44px',
215
+ // backgroundColor: theme.palette.background.paper,
216
+ fontSize: '14px'
217
+ },
218
+ '& .MuiSelect-select': {
219
+ fontSize: '14px',
220
+ padding: '10px 14px',
221
+ },
222
+ '& .MuiSelect-placeholder': {
223
+ fontSize: '14px',
224
+ },
225
+ '& .MuiMenuItem-root': {
226
+ fontSize: '14px',
227
+ },
228
+ '& .MuiChip-label': {
229
+ fontSize: '14px',
230
+ },
231
+ }, children: [jsx(Select$1, { displayEmpty: true,
232
+ // labelId={labelId}
233
+ multiple: isMulti, value: value || (isMulti ? [] : ''), onChange: onChange, input: jsx(OutlinedInput, { label: label }), renderValue: renderValue, ref: ref, IconComponent: ChevronDown, endAdornment: value && !isMulti && ((isMulti && value.length > 0) || (!isMulti && value !== '')) ? (jsx(IconButton, { sx: { marginRight: '1rem' }, size: "small", onClick: handleClearSelection, children: jsx(X, { fontSize: "small" }) })) : null, variant: "outlined", ...rest, children: options && options.map((option) => (jsx(MenuItem, { value: option.value, children: isMulti ? (jsx(Fragment, { children: jsx(ListItemText, { primary: option.label }) })) : (option.label || placeholder) }, option.value))) }), helperText && jsx(FormHelperText, { children: helperText })] }));
234
+ });
235
+
236
+ const AccordionContext = React.createContext({});
237
+ // Main Accordion Container Component
238
+ const Accordion = React.forwardRef(({ type = 'single', collapsible = false, value: controlledValue, defaultValue, onValueChange, children, sx = {}, ...props }, ref) => {
239
+ const theme = useTheme();
240
+ // Internal state management
241
+ const [internalValue, setInternalValue] = React.useState(() => {
242
+ if (controlledValue !== undefined)
243
+ return controlledValue;
244
+ if (defaultValue !== undefined)
245
+ return defaultValue;
246
+ return type === 'multiple' ? [] : '';
247
+ });
248
+ const value = controlledValue !== undefined ? controlledValue : internalValue;
249
+ const handleValueChange = React.useCallback((newValue) => {
250
+ if (controlledValue === undefined) {
251
+ setInternalValue(newValue);
252
+ }
253
+ onValueChange?.(newValue);
254
+ }, [controlledValue, onValueChange]);
255
+ const contextValue = React.useMemo(() => ({
256
+ type,
257
+ collapsible,
258
+ value,
259
+ defaultValue,
260
+ onValueChange: handleValueChange,
261
+ }), [type, collapsible, value, defaultValue, handleValueChange]);
262
+ return (jsx(AccordionContext.Provider, { value: contextValue, children: jsx("div", { ref: ref, style: {
263
+ display: 'flex',
264
+ flexDirection: 'column',
265
+ gap: theme.spacing(1),
266
+ }, ...props, children: children }) }));
267
+ });
268
+ // AccordionItem Component
269
+ const AccordionItem = React.forwardRef(({ value: itemValue, children, sx = {}, ...props }, ref) => {
270
+ const theme = useTheme();
271
+ const context = React.useContext(AccordionContext);
272
+ const isExpanded = React.useMemo(() => {
273
+ if (context.type === 'multiple') {
274
+ return Array.isArray(context.value) && context.value.includes(itemValue);
275
+ }
276
+ return context.value === itemValue;
277
+ }, [context.value, context.type, itemValue]);
278
+ const handleChange = React.useCallback(() => {
279
+ if (!context.onValueChange)
280
+ return;
281
+ if (context.type === 'multiple') {
282
+ const currentValue = Array.isArray(context.value) ? context.value : [];
283
+ const newValue = isExpanded
284
+ ? currentValue.filter(v => v !== itemValue)
285
+ : [...currentValue, itemValue];
286
+ context.onValueChange(newValue);
287
+ }
288
+ else {
289
+ const newValue = isExpanded && context.collapsible ? '' : itemValue;
290
+ context.onValueChange(newValue);
291
+ }
292
+ }, [context, itemValue, isExpanded]);
293
+ return (jsx(Accordion$1, { ref: ref, expanded: isExpanded, onChange: handleChange, variant: "outlined", sx: {
294
+ borderRadius: theme.radius?.sm || theme.shape.borderRadius,
295
+ '&:before': {
296
+ display: 'none',
297
+ },
298
+ '&.Mui-expanded': {
299
+ margin: 0,
300
+ },
301
+ border: `1px solid ${theme.palette.divider}`,
302
+ ...sx,
303
+ }, ...props, children: children }));
304
+ });
305
+ // AccordionTrigger Component
306
+ const AccordionTrigger = React.forwardRef(({ children, sx = {}, expandIcon, ...props }, ref) => {
307
+ const theme = useTheme();
308
+ const defaultExpandIcon = expandIcon !== undefined ? expandIcon : jsx(ChevronDown, {});
309
+ return (jsx(AccordionSummary, { ref: ref, expandIcon: defaultExpandIcon, sx: {
310
+ borderRadius: theme.radius?.sm || theme.shape.borderRadius,
311
+ minHeight: 56,
312
+ fontWeight: 500,
313
+ '&.Mui-expanded': {
314
+ minHeight: 56,
315
+ borderBottomLeftRadius: 0,
316
+ borderBottomRightRadius: 0,
317
+ borderBottom: `1px solid ${theme.palette.divider}`,
318
+ },
319
+ '& .MuiAccordionSummary-content': {
320
+ margin: '12px 0',
321
+ '&.Mui-expanded': {
322
+ margin: '12px 0',
323
+ },
324
+ },
325
+ '& .MuiAccordionSummary-expandIconWrapper': {
326
+ transition: theme.transitions.create('transform', {
327
+ duration: theme.transitions.duration.shortest,
328
+ }),
329
+ '&.Mui-expanded': {
330
+ transform: 'rotate(180deg)',
331
+ },
332
+ },
333
+ '&:hover': {
334
+ backgroundColor: theme.palette.action.hover,
335
+ },
336
+ ...sx,
337
+ }, ...props, children: children }));
338
+ });
339
+ // AccordionContent Component
340
+ const AccordionContent = React.forwardRef(({ children, sx = {}, ...props }, ref) => {
341
+ const theme = useTheme();
342
+ return (jsx(AccordionDetails, { ref: ref, sx: {
343
+ padding: theme.spacing(2),
344
+ borderBottomLeftRadius: theme.radius?.sm || theme.shape.borderRadius,
345
+ borderBottomRightRadius: theme.radius?.sm || theme.shape.borderRadius,
346
+ ...sx,
347
+ }, ...props, children: children }));
348
+ });
349
+
350
+ const Switch = React.forwardRef(({ label = '', helperText = '', error = false, onChange, checked, required = false, disabled = false, ...rest }, ref) => {
351
+ return (jsxs(FormControl, { error: error, disabled: disabled, component: "fieldset", children: [jsx(FormControlLabel, { control: jsx(Switch$1, { inputRef: ref, checked: checked, onChange: (e, checked) => onChange?.(e, checked), disabled: disabled, required: required == 1 || required === true ? true : false, ...rest }), label: label }), helperText && jsx(FormHelperText, { children: helperText })] }));
352
+ });
353
+
354
+ const TextInput = React.forwardRef(({ label = '', placeholder, IS_MANDATORY = false,
355
+ // multiline = false,
356
+ startIcon, endIcon, error = false, helperText, type = 'text', variant = 'outlined', ...rest }, ref) => {
357
+ return (jsx(TextField, { fullWidth: true, inputRef: ref, type: type,
358
+ // multiline={multiline}
359
+ label: label, placeholder: placeholder, required: (IS_MANDATORY == 1 || IS_MANDATORY == true) ? true : false, error: error, InputLabelProps: !label ? { shrink: false } : undefined, sx: {
360
+ '& .MuiInputLabel-outlined': {
361
+ top: '-4px',
362
+ fontSize: '13px',
363
+ fontWeight: 500,
364
+ },
365
+ '& .MuiOutlinedInput-root': {
366
+ minHeight: '44px',
367
+ borderRadius: '10px',
368
+ },
369
+ '& input': {
370
+ padding: '10.5px 14px',
371
+ },
372
+ '& input::placeholder': {
373
+ fontSize: '13px',
374
+ opacity: 0.5,
375
+ },
376
+ }, helperText: helperText, InputProps: {
377
+ startAdornment: startIcon ? (jsx(InputAdornment, { position: "start", children: startIcon })) : undefined,
378
+ endAdornment: endIcon ? (jsx(InputAdornment, { position: "end", children: endIcon })) : undefined,
379
+ }, variant: variant, ...rest }));
380
+ });
381
+
382
+ const RadioGroup = React.forwardRef(({ label, options = [], value, defaultValue, onChange, name, disabled = false, required = false, error = false, helperText, row = false, size = 'medium', color = 'primary', sx = {}, radioSx = {}, labelSx = {}, ...props }, ref) => {
383
+ const theme = useTheme();
384
+ const [internalValue, setInternalValue] = React.useState(value || defaultValue || '');
385
+ // Sync with external value prop
386
+ React.useEffect(() => {
387
+ if (value !== undefined) {
388
+ setInternalValue(value);
389
+ }
390
+ }, [value]);
391
+ const handleChange = (event) => {
392
+ const newValue = event.target.value;
393
+ if (value === undefined) {
394
+ setInternalValue(newValue);
395
+ }
396
+ onChange?.(newValue);
397
+ };
398
+ const currentValue = value !== undefined ? value : internalValue;
399
+ return (jsxs(FormControl, { ref: ref, component: "fieldset", variant: "standard", disabled: disabled, required: required, error: error, sx: {
400
+ borderRadius: '8px',
401
+ ...sx,
402
+ }, ...props, children: [label && (jsxs(FormLabel, { component: "legend", sx: {
403
+ fontWeight: 500,
404
+ fontSize: size === 'small' ? '0.875rem' : '1rem',
405
+ color: disabled
406
+ ? theme.palette.text.disabled
407
+ : error
408
+ ? theme.palette.error.main
409
+ : theme.palette.text.primary,
410
+ '&.Mui-focused': {
411
+ color: error
412
+ ? theme.palette.error.main
413
+ : `${theme.palette[color].main}`,
414
+ },
415
+ mb: 1,
416
+ ...labelSx,
417
+ }, children: [label, required && (jsx(Typography, { component: "span", sx: {
418
+ color: theme.palette.error.main,
419
+ ml: 0.5,
420
+ fontSize: 'inherit',
421
+ }, children: "*" }))] })), jsx(RadioGroup$1, { name: name, value: currentValue, onChange: handleChange, row: row, sx: {
422
+ gap: size === 'small' ? 1 : 1.5,
423
+ '& .MuiFormControlLabel-root': {
424
+ marginLeft: 0,
425
+ marginRight: row ? 2 : 0,
426
+ },
427
+ }, children: options.map((option) => (jsx(Box, { children: jsx(FormControlLabel, { value: option.value, disabled: disabled || option.disabled, control: jsx(Radio, { size: size, color: color, sx: {
428
+ '&.Mui-checked': {
429
+ color: error
430
+ ? theme.palette.error.main
431
+ : `${theme.palette[color].main}`,
432
+ },
433
+ alignSelf: option.description ? 'flex-start' : 'center',
434
+ mt: option.description ? 0.25 : 0,
435
+ ...radioSx,
436
+ } }), label: jsxs(Box, { sx: { display: 'flex', flexDirection: 'column' }, children: [jsx(Typography, { variant: size === 'small' ? 'body2' : 'body1', sx: {
437
+ fontWeight: 400,
438
+ color: disabled || option.disabled
439
+ ? theme.palette.text.disabled
440
+ : theme.palette.text.primary,
441
+ lineHeight: 1.5,
442
+ }, children: option.label }), option.description && (jsx(Typography, { variant: "caption", sx: {
443
+ color: disabled || option.disabled
444
+ ? theme.palette.text.disabled
445
+ : theme.palette.text.secondary,
446
+ mt: 0.25,
447
+ lineHeight: 1.4,
448
+ }, children: option.description }))] }), sx: {
449
+ alignItems: option.description ? 'flex-start' : 'center',
450
+ margin: 0,
451
+ display: 'flex',
452
+ '& .MuiFormControlLabel-label': {
453
+ ml: 1,
454
+ flex: 1,
455
+ },
456
+ '& .MuiButtonBase-root': {
457
+ p: size === 'small' ? 0.5 : 1,
458
+ },
459
+ } }) }, option.value))) }), helperText && (jsx(FormHelperText, { sx: {
460
+ mt: 1,
461
+ fontSize: size === 'small' ? '0.75rem' : '0.875rem',
462
+ color: error
463
+ ? theme.palette.error.main
464
+ : theme.palette.text.secondary,
465
+ }, children: helperText }))] }));
466
+ });
467
+
468
+ const Heading = ({ level = 1, ...props }) => {
469
+ const variant = `h${level}`;
470
+ return (jsx(Typography, { variant: variant, component: props.component || `h${level}`, fontWeight: 600, gutterBottom: true, ...props }));
471
+ };
472
+
473
+ const Text = ({ size = 'md', ...props }) => {
474
+ const variantMap = {
475
+ sm: 'body2',
476
+ md: 'body1',
477
+ lg: 'subtitle1',
478
+ };
479
+ return (jsx(Typography, { variant: variantMap[size], component: props.component || 'p', ...props }));
480
+ };
481
+
482
+ const Lead = (props) => {
483
+ return (jsx(Typography, { variant: "subtitle1", component: props.component || 'p', fontWeight: 400, color: "text.secondary", ...props }));
484
+ };
485
+
486
+ const Muted = (props) => {
487
+ return (jsx(Typography, { variant: "body2", component: props.component || 'span', color: "text.disabled", ...props }));
488
+ };
489
+
490
+ const Strong = (props) => {
491
+ return (jsx(Typography, { component: props.component || 'strong', fontWeight: 500, display: "inline", ...props }));
492
+ };
493
+
494
+ const Caption = (props) => {
495
+ return (jsx(Typography, { variant: "caption", color: "text.secondary", component: props.component || 'span', ...props }));
496
+ };
497
+
498
+ const Blockquote = (props) => {
499
+ return (jsx(Typography, { component: "blockquote", sx: {
500
+ borderLeft: '4px solid',
501
+ borderColor: 'divider',
502
+ pl: 2,
503
+ color: 'text.secondary',
504
+ fontStyle: 'italic',
505
+ }, ...props }));
506
+ };
507
+
508
+ const Code = ({ children, sx }) => {
509
+ return (jsx(Box, { component: "code", sx: {
510
+ fontFamily: 'monospace',
511
+ backgroundColor: 'grey.100',
512
+ color: 'primary.main',
513
+ px: 0.5,
514
+ py: 0.25,
515
+ borderRadius: 1,
516
+ fontSize: '0.875rem',
517
+ ...sx,
518
+ }, children: children }));
519
+ };
520
+
521
+ const designTokens = {
522
+ colors: {
523
+ primary: {
524
+ 50: '#e3f2fd',
525
+ 100: '#bbdefb',
526
+ 500: '#2196f3',
527
+ 900: '#0d47a1',
528
+ },
529
+ secondary: {
530
+ 50: '#fce4ec',
531
+ 100: '#f8bbd9',
532
+ 500: '#e91e63',
533
+ 900: '#880e4f',
534
+ },
535
+ neutral: {
536
+ 50: '#fafafa',
537
+ 100: '#f5f5f5',
538
+ 200: '#eeeeee',
539
+ 500: '#9e9e9e',
540
+ 900: '#212121',
541
+ },
542
+ },
543
+ spacing: {
544
+ xs: '4px',
545
+ sm: '8px',
546
+ md: '16px',
547
+ lg: '24px',
548
+ xl: '32px',
549
+ },
550
+ radius: {
551
+ xs: "2px",
552
+ sm: '4px',
553
+ md: '8px',
554
+ lg: '12px',
555
+ xl: '16px',
556
+ full: '9999px',
557
+ },
558
+ typography: {
559
+ fontFamily: `'Inter', system-ui, sans-serif`,
560
+ fontSize: {
561
+ xs: '0.75rem',
562
+ sm: '0.875rem',
563
+ md: '1rem',
564
+ lg: '1.25rem',
565
+ xl: '1.5rem',
566
+ },
567
+ },
568
+ };
569
+
570
+ const createCustomTheme = (config = {}) => {
571
+ const { primaryColor = designTokens.colors.primary[500], secondaryColor = designTokens.colors.secondary[500], } = config;
572
+ return createTheme({
573
+ palette: {
574
+ primary: {
575
+ main: primaryColor,
576
+ },
577
+ secondary: {
578
+ main: secondaryColor,
579
+ },
580
+ divider: '#e5e5e5'
581
+ },
582
+ typography: {
583
+ fontFamily: designTokens.typography.fontFamily,
584
+ fontSize: 14,
585
+ // h1: {
586
+ // fontSize: '3rem', // 48px
587
+ // fontWeight: 700,
588
+ // lineHeight: 1.2,
589
+ // },
590
+ // h2: {
591
+ // fontSize: '2.25rem', // 36px
592
+ // fontWeight: 600,
593
+ // lineHeight: 1.25,
594
+ // },
595
+ // h3: {
596
+ // fontSize: '1.875rem', // 30px
597
+ // fontWeight: 600,
598
+ // lineHeight: 1.3,
599
+ // },
600
+ // h4: {
601
+ // fontSize: '1.5rem', // 24px
602
+ // fontWeight: 500,
603
+ // lineHeight: 1.35,
604
+ // },
605
+ // h5: {
606
+ // fontSize: '1.25rem', // 20px
607
+ // fontWeight: 500,
608
+ // lineHeight: 1.4,
609
+ // },
610
+ // h6: {
611
+ // fontSize: '1rem', // 16px
612
+ // fontWeight: 500,
613
+ // lineHeight: 1.5,
614
+ // },
615
+ // body1: {
616
+ // fontSize: '1rem', // 16px
617
+ // lineHeight: '1.625rem',// 26px
618
+ // },
619
+ // body2: {
620
+ // fontSize: '0.875rem', // 14px
621
+ // lineHeight: '1.5rem', // 24px
622
+ // },
623
+ // caption: {
624
+ // fontSize: '0.875rem',
625
+ // lineHeight: '1.25rem', // 20px
626
+ // },
627
+ // button: {
628
+ // fontSize: '0.875rem',
629
+ // lineHeight: '1.5rem',
630
+ // textTransform: 'none',
631
+ // },
632
+ // subtitle1: {
633
+ // fontSize: '1rem', // 16px
634
+ // lineHeight: '1.5rem', // 24px
635
+ // // fontWeight: 500
636
+ // },
637
+ },
638
+ spacing: 8,
639
+ shape: {
640
+ borderRadius: 5,
641
+ },
642
+ radius: designTokens.radius,
643
+ components: {
644
+ MuiButton: {
645
+ styleOverrides: {
646
+ root: {
647
+ textTransform: 'none',
648
+ fontWeight: 500,
649
+ letterSpacing: '0.5px',
650
+ padding: '6px 12px',
651
+ },
652
+ sizeSmall: {
653
+ padding: '4px 10px'
654
+ },
655
+ sizeLarge: {
656
+ padding: '10px 24px'
657
+ },
658
+ },
659
+ defaultProps: {
660
+ disableElevation: true
661
+ }
662
+ },
663
+ MuiCard: {
664
+ styleOverrides: {
665
+ root: {
666
+ borderRadius: '12px',
667
+ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
668
+ },
669
+ },
670
+ },
671
+ MuiTextField: {
672
+ styleOverrides: {
673
+ root: {
674
+ '& .MuiOutlinedInput-root': {
675
+ borderRadius: '8px',
676
+ },
677
+ },
678
+ },
679
+ },
680
+ },
681
+ });
682
+ };
683
+ // Default theme
684
+ const theme = createCustomTheme();
685
+
686
+ function styleInject(css, ref) {
687
+ if ( ref === void 0 ) ref = {};
688
+ var insertAt = ref.insertAt;
689
+
690
+ if (!css || typeof document === 'undefined') { return; }
691
+
692
+ var head = document.head || document.getElementsByTagName('head')[0];
693
+ var style = document.createElement('style');
694
+ style.type = 'text/css';
695
+
696
+ if (insertAt === 'top') {
697
+ if (head.firstChild) {
698
+ head.insertBefore(style, head.firstChild);
699
+ } else {
700
+ head.appendChild(style);
701
+ }
702
+ } else {
703
+ head.appendChild(style);
704
+ }
705
+
706
+ if (style.styleSheet) {
707
+ style.styleSheet.cssText = css;
708
+ } else {
709
+ style.appendChild(document.createTextNode(css));
710
+ }
711
+ }
712
+
713
+ var css_248z$4 = "/* inter-cyrillic-ext-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-cyrillic-ext-300-normal.woff2) format('woff2'), url(./files/inter-cyrillic-ext-300-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* inter-cyrillic-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-cyrillic-300-normal.woff2) format('woff2'), url(./files/inter-cyrillic-300-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* inter-greek-ext-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-greek-ext-300-normal.woff2) format('woff2'), url(./files/inter-greek-ext-300-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* inter-greek-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-greek-300-normal.woff2) format('woff2'), url(./files/inter-greek-300-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* inter-vietnamese-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-vietnamese-300-normal.woff2) format('woff2'), url(./files/inter-vietnamese-300-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* inter-latin-ext-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-latin-ext-300-normal.woff2) format('woff2'), url(./files/inter-latin-ext-300-normal.woff) format('woff');\n unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* inter-latin-300-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src: url(./files/inter-latin-300-normal.woff2) format('woff2'), url(./files/inter-latin-300-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}";
714
+ styleInject(css_248z$4);
715
+
716
+ var css_248z$3 = "/* inter-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-cyrillic-ext-400-normal.woff2) format('woff2'), url(./files/inter-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* inter-cyrillic-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-cyrillic-400-normal.woff2) format('woff2'), url(./files/inter-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* inter-greek-ext-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-greek-ext-400-normal.woff2) format('woff2'), url(./files/inter-greek-ext-400-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* inter-greek-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-greek-400-normal.woff2) format('woff2'), url(./files/inter-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* inter-vietnamese-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-vietnamese-400-normal.woff2) format('woff2'), url(./files/inter-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* inter-latin-ext-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-latin-ext-400-normal.woff2) format('woff2'), url(./files/inter-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* inter-latin-400-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(./files/inter-latin-400-normal.woff2) format('woff2'), url(./files/inter-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}";
717
+ styleInject(css_248z$3);
718
+
719
+ var css_248z$2 = "/* inter-cyrillic-ext-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-cyrillic-ext-500-normal.woff2) format('woff2'), url(./files/inter-cyrillic-ext-500-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* inter-cyrillic-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-cyrillic-500-normal.woff2) format('woff2'), url(./files/inter-cyrillic-500-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* inter-greek-ext-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-greek-ext-500-normal.woff2) format('woff2'), url(./files/inter-greek-ext-500-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* inter-greek-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-greek-500-normal.woff2) format('woff2'), url(./files/inter-greek-500-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* inter-vietnamese-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-vietnamese-500-normal.woff2) format('woff2'), url(./files/inter-vietnamese-500-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* inter-latin-ext-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-latin-ext-500-normal.woff2) format('woff2'), url(./files/inter-latin-ext-500-normal.woff) format('woff');\n unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* inter-latin-500-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src: url(./files/inter-latin-500-normal.woff2) format('woff2'), url(./files/inter-latin-500-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}";
720
+ styleInject(css_248z$2);
721
+
722
+ var css_248z$1 = "/* inter-cyrillic-ext-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-cyrillic-ext-600-normal.woff2) format('woff2'), url(./files/inter-cyrillic-ext-600-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* inter-cyrillic-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-cyrillic-600-normal.woff2) format('woff2'), url(./files/inter-cyrillic-600-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* inter-greek-ext-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-greek-ext-600-normal.woff2) format('woff2'), url(./files/inter-greek-ext-600-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* inter-greek-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-greek-600-normal.woff2) format('woff2'), url(./files/inter-greek-600-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* inter-vietnamese-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-vietnamese-600-normal.woff2) format('woff2'), url(./files/inter-vietnamese-600-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* inter-latin-ext-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-latin-ext-600-normal.woff2) format('woff2'), url(./files/inter-latin-ext-600-normal.woff) format('woff');\n unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* inter-latin-600-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 600;\n src: url(./files/inter-latin-600-normal.woff2) format('woff2'), url(./files/inter-latin-600-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}";
723
+ styleInject(css_248z$1);
724
+
725
+ var css_248z = "/* inter-cyrillic-ext-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-cyrillic-ext-700-normal.woff2) format('woff2'), url(./files/inter-cyrillic-ext-700-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* inter-cyrillic-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-cyrillic-700-normal.woff2) format('woff2'), url(./files/inter-cyrillic-700-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* inter-greek-ext-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-greek-ext-700-normal.woff2) format('woff2'), url(./files/inter-greek-ext-700-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* inter-greek-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-greek-700-normal.woff2) format('woff2'), url(./files/inter-greek-700-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* inter-vietnamese-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-vietnamese-700-normal.woff2) format('woff2'), url(./files/inter-vietnamese-700-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* inter-latin-ext-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-latin-ext-700-normal.woff2) format('woff2'), url(./files/inter-latin-ext-700-normal.woff) format('woff');\n unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* inter-latin-700-normal */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src: url(./files/inter-latin-700-normal.woff2) format('woff2'), url(./files/inter-latin-700-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}";
726
+ styleInject(css_248z);
727
+
728
+ const Fonts = () => (jsx(GlobalStyles, { styles: {
729
+ body: {
730
+ WebkitFontSmoothing: 'antialiased',
731
+ MozOsxFontSmoothing: 'grayscale',
732
+ },
733
+ html: {
734
+ fontFamily: "'Inter', system-ui, sans-serif",
735
+ },
736
+ } }));
737
+
738
+ const UILibraryThemeProvider = ({ children, primaryColor, secondaryColor, enableCssBaseline = true, }) => {
739
+ const themeConfig = {};
740
+ if (primaryColor) {
741
+ themeConfig.primaryColor = primaryColor;
742
+ }
743
+ if (secondaryColor) {
744
+ themeConfig.secondaryColor = secondaryColor;
745
+ }
746
+ const theme = createCustomTheme(themeConfig);
747
+ return (jsxs(ThemeProvider, { theme: theme, children: [enableCssBaseline && jsx(CssBaseline, {}), jsx(Fonts, {}), children] }));
748
+ };
749
+
750
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Blockquote, Button, Caption, Code, Heading, Lead, Muted, RadioGroup, Select, Strong, Switch, Text, TextInput, UILibraryThemeProvider, createCustomTheme, designTokens, theme };