@zimyo/ui 1.1.4 → 1.1.6

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