@sector.siit/mlz-components 1.0.28 → 1.0.30

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.d.ts CHANGED
@@ -1,6 +1,6 @@
1
+ export { Toaster, toast } from 'react-hot-toast';
1
2
  import React$1 from 'react';
2
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
- export { Toaster, toast } from 'react-hot-toast';
4
4
 
5
5
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
6
6
  /**
@@ -39,6 +39,43 @@ interface HelperTextProp$1 extends React.HTMLAttributes<HTMLParagraphElement> {
39
39
  }
40
40
  declare const Input: React.FC<InputProps>;
41
41
 
42
+ interface RadioButtonOption {
43
+ label: string;
44
+ value: string;
45
+ disabled?: boolean;
46
+ }
47
+ interface RadioButtonProps {
48
+ name: string;
49
+ value: string;
50
+ label: string;
51
+ checked: boolean;
52
+ onChange: (value: string) => void;
53
+ className?: string;
54
+ labelSize?: "sm" | "base" | "lg" | "xl";
55
+ labelWeight?: "normal" | "medium" | "bold";
56
+ disabled?: boolean;
57
+ }
58
+ declare const RadioButton: React.FC<RadioButtonProps>;
59
+ interface RadioButtonGroupProps {
60
+ name: string;
61
+ label?: string;
62
+ options: RadioButtonOption[];
63
+ value?: string;
64
+ onChange?: (value: string) => void;
65
+ hasError?: boolean;
66
+ errorText?: string;
67
+ helperText?: string;
68
+ className?: string;
69
+ direction?: "row" | "col";
70
+ labelSize?: "sm" | "base" | "lg" | "xl";
71
+ labelWeight?: "normal" | "medium" | "bold";
72
+ radioLabelWeight?: "normal" | "medium" | "bold";
73
+ containerProps?: React.HTMLAttributes<HTMLDivElement>;
74
+ labelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;
75
+ helperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;
76
+ }
77
+ declare const RadioButtonGroup: React.FC<RadioButtonGroupProps>;
78
+
42
79
  interface TextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
43
80
  errorText?: string;
44
81
  hasError?: boolean;
@@ -106,41 +143,4 @@ interface UserCardProps {
106
143
  }
107
144
  declare function UserCard({ name, email, changeUser, editUser }: UserCardProps): react_jsx_runtime.JSX.Element;
108
145
 
109
- interface RadioButtonOption {
110
- label: string;
111
- value: string;
112
- disabled?: boolean;
113
- }
114
- interface RadioButtonProps {
115
- name: string;
116
- value: string;
117
- label: string;
118
- checked: boolean;
119
- onChange: (value: string) => void;
120
- className?: string;
121
- labelSize?: "sm" | "base" | "lg" | "xl";
122
- labelWeight?: "normal" | "medium" | "bold";
123
- disabled?: boolean;
124
- }
125
- declare const RadioButton: React.FC<RadioButtonProps>;
126
- interface RadioButtonGroupProps {
127
- name: string;
128
- label?: string;
129
- options: RadioButtonOption[];
130
- value?: string;
131
- onChange?: (value: string) => void;
132
- hasError?: boolean;
133
- errorText?: string;
134
- helperText?: string;
135
- className?: string;
136
- direction?: "row" | "col";
137
- labelSize?: "sm" | "base" | "lg" | "xl";
138
- labelWeight?: "normal" | "medium" | "bold";
139
- radioLabelWeight?: "normal" | "medium" | "bold";
140
- containerProps?: React.HTMLAttributes<HTMLDivElement>;
141
- labelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;
142
- helperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;
143
- }
144
- declare const RadioButtonGroup: React.FC<RadioButtonGroupProps>;
145
-
146
146
  export { Button, type ButtonProps, Input, type InputProps, RadioButton, RadioButtonGroup, type RadioButtonGroupProps, type RadioButtonOption, type RadioButtonProps, TextArea, type TextAreaProps, Toast, type ToastOptions, type ToastProps, ToastProvider, type ToastVariant$1 as ToastVariant, UserCard, type UserCardProps, showToast, toastError, toastInfo, toastSuccess, toastWarning, useToast };
package/dist/index.esm.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { createContext, useContext, useState, useCallback } from 'react';
5
3
  import toast from 'react-hot-toast';
6
4
  export { Toaster, toast } from 'react-hot-toast';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+ import { createContext, useContext, useState, useCallback } from 'react';
7
7
 
8
8
  const buttonVariants = {
9
9
  primary: 'mlz-btn-primary',
@@ -61,6 +61,69 @@ const Input = ({ labelProps, helperTextProps, containerProps, errorText, helperT
61
61
  return (jsxs("div", { ...containerProps, className: classes.containerStyle, children: [jsx("label", { ...labelProps, className: classes.labelStyle, children: label }), jsx("input", { ...inputProps, disabled: disabled, placeholder: placeholder, autoComplete: autoComplete, className: finalClassName }), checkedIcon && (jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2", children: jsx(CheckIcon, {}) })), jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText })] }));
62
62
  };
63
63
 
64
+ const radioButtonClasses = (hasError) => {
65
+ return {
66
+ containerStyle: "flex items-center",
67
+ inputStyle: [
68
+ "w-6 h-6",
69
+ "text-primary-600",
70
+ "bg-gray-100",
71
+ "border-gray-300",
72
+ "focus:ring-0",
73
+ "focus:outline-none",
74
+ "flex-none",
75
+ "order-0",
76
+ "flex-grow-0",
77
+ "checked:bg-primary-600",
78
+ "checked:border-primary-600",
79
+ "rounded-full",
80
+ "cursor-pointer",
81
+ "disabled:opacity-50 disabled:cursor-not-allowed",
82
+ ].join(" "),
83
+ };
84
+ };
85
+ const RadioButton = ({ name, value, label, checked, onChange, className = "", labelSize = "base", labelWeight = "medium", disabled = false, }) => {
86
+ const classes = radioButtonClasses();
87
+ const sizeClasses = {
88
+ sm: "text-sm",
89
+ base: "text-base",
90
+ lg: "text-lg",
91
+ xl: "text-xl",
92
+ };
93
+ const weightClasses = {
94
+ normal: "font-normal",
95
+ medium: "font-medium",
96
+ bold: "font-bold",
97
+ };
98
+ return (jsxs("div", { className: `${classes.containerStyle} ${className}`, children: [jsx("input", { type: "radio", id: `${name}-${value}`, name: name, value: value, checked: checked, onChange: () => onChange(value), disabled: disabled, className: classes.inputStyle, style: {
99
+ accentColor: "#236999",
100
+ } }), jsx("label", { htmlFor: `${name}-${value}`, className: `ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${disabled ? "opacity-50 cursor-not-allowed" : ""}`, children: label })] }));
101
+ };
102
+ const radioButtonGroupClasses = (hasError) => {
103
+ const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
104
+ const textColorClass = hasError ? "mlz-error-color" : "text-primary-600";
105
+ return {
106
+ containerStyle: "flex flex-col gap-2",
107
+ labelStyle: `mlz-label-textarea block ${labelColorClass}`,
108
+ helperTextStyle: `mt-1 text-base ${textColorClass}`,
109
+ };
110
+ };
111
+ const RadioButtonGroup = ({ name, label, options, value, onChange, hasError = false, errorText, helperText, className = "", direction = "row", labelSize = "base", labelWeight = "medium", radioLabelWeight = "bold", containerProps, labelProps, helperTextProps, }) => {
112
+ const classes = radioButtonGroupClasses(hasError);
113
+ const sizeClasses = {
114
+ sm: "text-sm",
115
+ base: "text-base",
116
+ lg: "text-lg",
117
+ xl: "text-xl",
118
+ };
119
+ const weightClasses = {
120
+ normal: "font-normal",
121
+ medium: "font-medium",
122
+ bold: "font-bold",
123
+ };
124
+ return (jsxs("div", { ...containerProps, className: `${classes.containerStyle} ${className}`, children: [label && (jsx("label", { ...labelProps, className: `${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`, children: label })), jsx("div", { className: `flex gap-4 ${direction === "col" ? "flex-col" : "flex-row"}`, children: options.map((option) => (jsx(RadioButton, { name: name, value: option.value, label: option.label, checked: value === option.value, onChange: (val) => onChange?.(val), labelSize: labelSize, labelWeight: radioLabelWeight, disabled: option.disabled }, option.value))) }), (errorText || helperText) && (jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText }))] }));
125
+ };
126
+
64
127
  const textAreaClasses = (hasError, fullWidth) => {
65
128
  const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
66
129
  const borderClass = hasError ? "mlz-error-border" : "border-primary-400";
@@ -144,36 +207,7 @@ const toastClasses$1 = (variant) => {
144
207
  const Toast = ({ title, description, variant = "info", onClose, }) => {
145
208
  const classes = toastClasses$1(variant);
146
209
  const IconComponent = classes.iconComponent;
147
- return (jsxs("div", { className: [
148
- "flex items-start",
149
- "w-[400px] min-h-[88px]",
150
- "rounded-lg",
151
- "border border-solid",
152
- "p-4",
153
- "gap-4",
154
- "shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]",
155
- classes.bg,
156
- classes.border,
157
- ].join(" "), children: [jsx("div", { className: [
158
- "flex items-center justify-center",
159
- "w-10 h-10",
160
- "rounded-lg",
161
- "p-2",
162
- "flex-none",
163
- classes.iconBg,
164
- ].join(" "), children: jsx("div", { className: classes.icon, children: jsx(IconComponent, {}) }) }), jsxs("div", { className: "flex-1 flex flex-col gap-2", children: [jsx("div", { className: [
165
- "font-bold",
166
- "text-[20px]",
167
- "leading-[100%]",
168
- "tracking-normal",
169
- classes.text,
170
- ].join(" "), children: title }), description && (jsx("div", { className: [
171
- "font-normal",
172
- "text-[18px]",
173
- "leading-[100%]",
174
- "tracking-normal",
175
- classes.text,
176
- ].join(" "), children: description }))] }), onClose && (jsx("button", { type: "button", onClick: onClose, className: "text-gray-400 hover:text-gray-600", "aria-label": "Cerrar", children: "\u00D7" }))] }));
210
+ return (jsxs("div", { className: `mlz-toast-container ${classes.bg} ${classes.border}`, children: [jsx("div", { className: `mlz-toast-icon-container ${classes.iconBg}`, children: jsx("div", { className: classes.icon, children: jsx(IconComponent, {}) }) }), jsxs("div", { className: "mlz-toast-content", children: [jsx("div", { className: `mlz-toast-title ${classes.text}`, children: title }), description && (jsx("div", { className: `mlz-toast-description ${classes.text}`, children: description }))] }), onClose && (jsx("button", { type: "button", onClick: onClose, className: "mlz-toast-close", "aria-label": "Cerrar", children: "\u00D7" }))] }));
177
211
  };
178
212
 
179
213
  const ToastContext = createContext(undefined);
@@ -221,35 +255,35 @@ const ToastProvider = ({ children, position = "top-right", }) => {
221
255
  const toastClasses = (variant) => {
222
256
  const variants = {
223
257
  success: {
224
- bg: "bg-[#EAF9EF]",
225
- border: "border-[var(--mlz-semantic-success)]",
226
- icon: "text-[var(--mlz-semantic-success)]",
227
- text: "text-[var(--mlz-semantic-success)]",
228
- iconBg: "bg-[#C5F5D5]",
258
+ bg: "mlz-toast-success-bg",
259
+ border: "mlz-toast-success-border",
260
+ icon: "mlz-toast-success-text",
261
+ text: "mlz-toast-success-text",
262
+ iconBg: "mlz-toast-success-icon-bg",
229
263
  iconComponent: CheckCircleIcon,
230
264
  },
231
265
  info: {
232
- bg: "bg-blue-50",
233
- border: "border-[#0058CC]",
234
- icon: "text-[#0058CC]",
235
- text: "text-[#0058CC]",
236
- iconBg: "bg-blue-100",
266
+ bg: "mlz-toast-info-bg",
267
+ border: "mlz-toast-info-border",
268
+ icon: "mlz-toast-info-text",
269
+ text: "mlz-toast-info-text",
270
+ iconBg: "mlz-toast-info-icon-bg",
237
271
  iconComponent: InfoCircleIcon,
238
272
  },
239
273
  warning: {
240
- bg: "bg-yellow-50",
241
- border: "border-[#C49E0A]",
242
- icon: "text-[#C49E0A]",
243
- text: "text-[#C49E0A]",
244
- iconBg: "bg-yellow-100",
274
+ bg: "mlz-toast-warning-bg",
275
+ border: "mlz-toast-warning-border",
276
+ icon: "mlz-toast-warning-text",
277
+ text: "mlz-toast-warning-text",
278
+ iconBg: "mlz-toast-warning-icon-bg",
245
279
  iconComponent: WarningTriangleIcon,
246
280
  },
247
281
  error: {
248
- bg: "bg-red-50",
249
- border: "border-[#EF284C]",
250
- icon: "text-[#EF284C]",
251
- text: "text-[#EF284C]",
252
- iconBg: "bg-red-100",
282
+ bg: "mlz-toast-error-bg",
283
+ border: "mlz-toast-error-border",
284
+ icon: "mlz-toast-error-text",
285
+ text: "mlz-toast-error-text",
286
+ iconBg: "mlz-toast-error-icon-bg",
253
287
  iconComponent: ErrorCircleIcon,
254
288
  },
255
289
  };
@@ -258,36 +292,7 @@ const toastClasses = (variant) => {
258
292
  const CustomToast = ({ t, title, description, variant = "info" }) => {
259
293
  const classes = toastClasses(variant);
260
294
  const IconComponent = classes.iconComponent;
261
- return (jsxs("div", { className: [
262
- "flex items-start",
263
- "w-[400px] min-h-[88px]",
264
- "rounded-lg",
265
- "border border-solid",
266
- "p-4",
267
- "gap-4",
268
- "shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]",
269
- classes.bg,
270
- classes.border,
271
- ].join(" "), children: [jsx("div", { className: [
272
- "flex items-center justify-center",
273
- "w-10 h-10",
274
- "rounded-lg",
275
- "p-2",
276
- "flex-none",
277
- classes.iconBg,
278
- ].join(" "), children: jsx("div", { className: classes.icon, children: jsx(IconComponent, {}) }) }), jsxs("div", { className: "flex-1 flex flex-col gap-2", children: [jsx("div", { className: [
279
- "font-bold",
280
- "text-[20px]",
281
- "leading-[100%]",
282
- "tracking-normal",
283
- classes.text,
284
- ].join(" "), children: title }), description && (jsx("div", { className: [
285
- "font-normal",
286
- "text-[18px]",
287
- "leading-[100%]",
288
- "tracking-normal",
289
- classes.text,
290
- ].join(" "), children: description }))] }), jsx("button", { type: "button", onClick: () => toast.dismiss(t.id), className: "text-gray-400 hover:text-gray-600", "aria-label": "Cerrar", children: "\u00D7" })] }));
295
+ return (jsxs("div", { className: `mlz-toast-container ${classes.bg} ${classes.border}`, children: [jsx("div", { className: `mlz-toast-icon-container ${classes.iconBg}`, children: jsx("div", { className: classes.icon, children: jsx(IconComponent, {}) }) }), jsxs("div", { className: "mlz-toast-content", children: [jsx("div", { className: `mlz-toast-title ${classes.text}`, children: title }), description && (jsx("div", { className: `mlz-toast-description ${classes.text}`, children: description }))] }), jsx("button", { type: "button", onClick: () => toast.dismiss(t.id), className: "mlz-toast-close", "aria-label": "Cerrar", children: "\u00D7" })] }));
291
296
  };
292
297
  const showToast = ({ title, description, variant = "info", duration = 5000, }) => {
293
298
  return toast.custom((t) => (jsx(CustomToast, { t: t, title: title, description: description, variant: variant })), {
@@ -304,68 +309,5 @@ function UserCard({ name, email, changeUser, editUser }) {
304
309
  return (jsxs("div", { children: [jsx("h2", { children: name }), jsx("p", { children: email }), jsx("button", { type: "button", onClick: changeUser, children: "Change User" }), jsx("button", { type: "button", onClick: editUser, children: "Edit User" })] }));
305
310
  }
306
311
 
307
- const radioButtonClasses = (hasError) => {
308
- return {
309
- containerStyle: "flex items-center",
310
- inputStyle: [
311
- "w-6 h-6",
312
- "text-primary-600",
313
- "bg-gray-100",
314
- "border-gray-300",
315
- "focus:ring-0",
316
- "focus:outline-none",
317
- "flex-none",
318
- "order-0",
319
- "flex-grow-0",
320
- "checked:bg-primary-600",
321
- "checked:border-primary-600",
322
- "rounded-full",
323
- "cursor-pointer",
324
- "disabled:opacity-50 disabled:cursor-not-allowed",
325
- ].join(" "),
326
- };
327
- };
328
- const RadioButton = ({ name, value, label, checked, onChange, className = "", labelSize = "base", labelWeight = "medium", disabled = false, }) => {
329
- const classes = radioButtonClasses();
330
- const sizeClasses = {
331
- sm: "text-sm",
332
- base: "text-base",
333
- lg: "text-lg",
334
- xl: "text-xl",
335
- };
336
- const weightClasses = {
337
- normal: "font-normal",
338
- medium: "font-medium",
339
- bold: "font-bold",
340
- };
341
- return (jsxs("div", { className: `${classes.containerStyle} ${className}`, children: [jsx("input", { type: "radio", id: `${name}-${value}`, name: name, value: value, checked: checked, onChange: () => onChange(value), disabled: disabled, className: classes.inputStyle, style: {
342
- accentColor: "#236999",
343
- } }), jsx("label", { htmlFor: `${name}-${value}`, className: `ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${disabled ? "opacity-50 cursor-not-allowed" : ""}`, children: label })] }));
344
- };
345
- const radioButtonGroupClasses = (hasError) => {
346
- const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
347
- const textColorClass = hasError ? "mlz-error-color" : "text-primary-600";
348
- return {
349
- containerStyle: "flex flex-col gap-2",
350
- labelStyle: `mlz-label-textarea block ${labelColorClass}`,
351
- helperTextStyle: `mt-1 text-base ${textColorClass}`,
352
- };
353
- };
354
- const RadioButtonGroup = ({ name, label, options, value, onChange, hasError = false, errorText, helperText, className = "", direction = "row", labelSize = "base", labelWeight = "medium", radioLabelWeight = "bold", containerProps, labelProps, helperTextProps, }) => {
355
- const classes = radioButtonGroupClasses(hasError);
356
- const sizeClasses = {
357
- sm: "text-sm",
358
- base: "text-base",
359
- lg: "text-lg",
360
- xl: "text-xl",
361
- };
362
- const weightClasses = {
363
- normal: "font-normal",
364
- medium: "font-medium",
365
- bold: "font-bold",
366
- };
367
- return (jsxs("div", { ...containerProps, className: `${classes.containerStyle} ${className}`, children: [label && (jsx("label", { ...labelProps, className: `${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`, children: label })), jsx("div", { className: `flex gap-4 ${direction === "col" ? "flex-col" : "flex-row"}`, children: options.map((option) => (jsx(RadioButton, { name: name, value: option.value, label: option.label, checked: value === option.value, onChange: (val) => onChange?.(val), labelSize: labelSize, labelWeight: radioLabelWeight, disabled: option.disabled }, option.value))) }), (errorText || helperText) && (jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText }))] }));
368
- };
369
-
370
312
  export { Button, Input, RadioButton, RadioButtonGroup, TextArea, Toast, ToastProvider, UserCard, showToast, toastError, toastInfo, toastSuccess, toastWarning, useToast };
371
313
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/Button/Button.tsx","../src/components/Icons/Check.tsx","../src/components/Input/Input.tsx","../src/components/TextArea/TextArea.tsx","../src/components/Icons/CheckCircle.tsx","../src/components/Icons/ErrorCircle.tsx","../src/components/Icons/InfoCircle.tsx","../src/components/Icons/WarningTriangle.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/Toast/toastHelpers.tsx","../src/components/UserCard/UserCard.tsx","../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Contenido del botón\n */\n children: React.ReactNode;\n /**\n * Variante del botón\n */\n variant?: 'primary' | 'secondary' | 'outline-solid' | 'ghost';\n /**\n * Tamaño del botón\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst buttonVariants = {\n primary: 'mlz-btn-primary',\n secondary: 'mlz-btn-secondary', \n outline: 'border-2 border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent',\n ghost: 'text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent'\n};\n\nconst buttonSizes = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-6 py-3 text-lg'\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = 'primary',\n size = 'md',\n disabled = false,\n onClick,\n type = 'button',\n className = '',\n ...props\n}) => {\n const baseClasses = 'inline-flex items-center justify-center font-medium rounded-md transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed';\n \n const variantClasses = buttonVariants[variant as keyof typeof buttonVariants];\n const sizeClasses = buttonSizes[size as keyof typeof buttonSizes];\n \n const classes = `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`.trim();\n\n return (\n <button\n type={type}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","export const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"12\"\n\t\theight=\"10\"\n\t\tviewBox=\"0 0 12 10\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" fill=\"#2ABB5B\" />\n\t</svg>\n);\n","\"use client\";\n\nimport { CheckIcon } from \"../Icons/Check\";\n\nexport interface InputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n\tcheckedIcon?: React.ReactNode;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst inputClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative \" + (fullWidth ? \" w-full\" : \"\"),\n\t \n\t\tlabelStyle: hasError\n\t\t\t? \"block text-base font-bold text-semantic-error-600\"\n\t\t\t: \"block text-base font-bold text-primary-600\",\n\t\tinputStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600 h-12\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\thasError\n\t\t\t\t? \"border-semantic-error-600 placeholder:text-semantic-error-600 focus:border-semantic-error-600 focus:ring-semantic-error-600 active:border-semantic-error-600\"\n\t\t\t\t: \"border-primary-400 placeholder:text-primary-400 focus:border-primary-600 focus:ring-primary-600 active:border-primary-600\",\n\t\t].join(\" \"),\n\t\thelperTextStyle: hasError\n\t\t\t? \"mt-1 text-base text-semantic-error-600\"\n\t\t\t: \"mt-1 text-base text-primary-600\",\n\t};\n};\n\nexport const Input: React.FC<InputProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tvalue, \n\tlabel,\n\tplaceholder,\n\tfullWidth,\n\tcheckedIcon,\n\tautoComplete, \n\tclassName, \n\t...props\n}) => {\n\tconst isError = Boolean(errorText) || hasError;\n\tconst classes = inputClasses(isError, fullWidth);\n\t\n\tconst finalClassName = className \n\t\t? `${classes.inputStyle} ${className}` \n\t\t: classes.inputStyle;\n\t\n\t// Only pass value prop if it's explicitly provided\n\tconst inputProps = value !== undefined \n\t\t? { value, ...props }\n\t\t: props;\n\t\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<input\n\t\t\t\t{...inputProps}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tautoComplete={autoComplete} \n\t\t\t\tclassName={finalClassName} \n\t\t\t/>\n\t\t\t{checkedIcon && (\n\t\t\t\t<div className=\"absolute right-4 top-1/2 -translate-y-1/2\">\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};","\"use client\";\nexport interface TextAreaProps\n\textends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst textAreaClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst borderClass = hasError ? \"mlz-error-border\" : \"border-primary-400\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst focusBorderClass = hasError ? \"focus:border-semantic-error-600\" : \"focus:border-primary-600\";\n\tconst focusRingClass = hasError ? \"focus:ring-semantic-error-600\" : \"focus:ring-primary-600\";\n\tconst activeBorderClass = hasError ? \"active:border-semantic-error-600\" : \"active:border-primary-600\";\n\tconst placeholderClass = hasError ? \"placeholder:text-semantic-error-600\" : \"placeholder:text-primary-400\";\n\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative gap-1\" + (fullWidth ? \" w-full\" : \"\"),\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\ttextAreaStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\t\"resize-y\",\n\t\t\t\"min-w-[498px] min-h-[123px]\",\n\t\t\tborderClass,\n\t\t\tplaceholderClass,\n\t\t\tfocusBorderClass,\n\t\t\tfocusRingClass,\n\t\t\tactiveBorderClass,\n\t\t].join(\" \"),\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const TextArea: React.FC<TextAreaProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tlabel,\n\tplaceholder,\n\tvalue = '',\n\tfullWidth,\n\t...props\n}) => {\n\tconst classes = textAreaClasses(hasError, fullWidth);\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<textarea\n\t\t\t\t{...props}\n\t\t\t\tvalue={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tclassName={classes.textAreaStyle}\n\t\t\t/>\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};\n\n","export const CheckCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M8.6 14.6L15.65 7.55L14.25 6.15L8.6 11.8L5.75 8.95L4.35 10.35L8.6 14.6ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const ErrorCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"currentColor\" />\n\t\t<path\n\t\t\td=\"M7 7L13 13M13 7L7 13\"\n\t\t\tstroke=\"white\"\n\t\t\tstrokeWidth=\"2\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\n","export const InfoCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M10 15C10.2833 15 10.5208 14.9042 10.7125 14.7125C10.9042 14.5208 11 14.2833 11 14C11 13.7167 10.9042 13.4792 10.7125 13.2875C10.5208 13.0958 10.2833 13 10 13C9.71667 13 9.47917 13.0958 9.2875 13.2875C9.09583 13.4792 9 13.7167 9 14C9 14.2833 9.09583 14.5208 9.2875 14.7125C9.47917 14.9042 9.71667 15 10 15ZM9 11H11V5H9V11ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const WarningTriangleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"22\"\n\t\theight=\"19\"\n\t\tviewBox=\"0 0 22 19\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M0 19L11 0L22 19H0ZM3.45 17H18.55L11 4L3.45 17ZM11 16C11.2833 16 11.5208 15.9042 11.7125 15.7125C11.9042 15.5208 12 15.2833 12 15C12 14.7167 11.9042 14.4792 11.7125 14.2875C11.5208 14.0958 11.2833 14 11 14C10.7167 14 10.4792 14.0958 10.2875 14.2875C10.0958 14.4792 10 14.7167 10 15C10 15.2833 10.0958 15.5208 10.2875 15.7125C10.4792 15.9042 10.7167 16 11 16ZM10 13H12V8H10V13Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","\"use client\";\nimport React from \"react\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastProps {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tonClose?: () => void;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nexport const Toast: React.FC<ToastProps> = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tonClose,\n}) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\n\t\t\t\t\"flex items-start\",\n\t\t\t\t\"w-[400px] min-h-[88px]\",\n\t\t\t\t\"rounded-lg\",\n\t\t\t\t\"border border-solid\",\n\t\t\t\t\"p-4\",\n\t\t\t\t\"gap-4\",\n\t\t\t\t\"shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]\",\n\t\t\t\tclasses.bg,\n\t\t\t\tclasses.border,\n\t\t\t].join(\" \")}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={[\n\t\t\t\t\t\"flex items-center justify-center\",\n\t\t\t\t\t\"w-10 h-10\",\n\t\t\t\t\t\"rounded-lg\",\n\t\t\t\t\t\"p-2\",\n\t\t\t\t\t\"flex-none\",\n\t\t\t\t\tclasses.iconBg,\n\t\t\t\t].join(\" \")}\n\t\t\t>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex-1 flex flex-col gap-2\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\"font-bold\",\n\t\t\t\t\t\t\"text-[20px]\",\n\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t].join(\" \")}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\"font-normal\",\n\t\t\t\t\t\t\t\"text-[18px]\",\n\t\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{onClose && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tclassName=\"text-gray-400 hover:text-gray-600\"\n\t\t\t\t\taria-label=\"Cerrar\"\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","\"use client\";\n\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { Toast, type ToastProps, type ToastVariant } from \"./Toast\";\n\ninterface ToastItem extends Omit<ToastProps, \"onClose\"> {\n\tid: string;\n\tduration?: number;\n}\n\ninterface ToastContextType {\n\ttoasts: ToastItem[];\n\tshowToast: (toast: Omit<ToastItem, \"id\">) => string;\n\tremoveToast: (id: string) => void;\n\tclearToasts: () => void;\n}\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\n\nexport const useToast = () => {\n\tconst context = useContext(ToastContext);\n\tif (!context) {\n\t\tthrow new Error(\"useToast must be used within a ToastProvider\");\n\t}\n\treturn context;\n};\n\ninterface ToastProviderProps {\n\tchildren: React.ReactNode;\n\tposition?:\n\t\t| \"top-right\"\n\t\t| \"top-left\"\n\t\t| \"bottom-right\"\n\t\t| \"bottom-left\"\n\t\t| \"top-center\"\n\t\t| \"bottom-center\";\n}\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n\tchildren,\n\tposition = \"top-right\",\n}) => {\n\tconst [toasts, setToasts] = useState<ToastItem[]>([]);\n\n\tconst showToast = useCallback((toast: Omit<ToastItem, \"id\">) => {\n\t\tconst id = Math.random().toString(36).substring(2, 9);\n\t\tconst newToast: ToastItem = {\n\t\t\t...toast,\n\t\t\tid,\n\t\t\tduration: toast.duration ?? 5000,\n\t\t};\n\n\t\tsetToasts((prev) => [...prev, newToast]);\n\n\t\tif (newToast.duration && newToast.duration > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t\t\t}, newToast.duration);\n\t\t}\n\n\t\treturn id;\n\t}, []);\n\n\tconst removeToast = useCallback((id: string) => {\n\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t}, []);\n\n\tconst clearToasts = useCallback(() => {\n\t\tsetToasts([]);\n\t}, []);\n\n\tconst positionClasses = {\n\t\t\"top-right\": \"top-4 right-4\",\n\t\t\"top-left\": \"top-4 left-4\",\n\t\t\"bottom-right\": \"bottom-4 right-4\",\n\t\t\"bottom-left\": \"bottom-4 left-4\",\n\t\t\"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n\t\t\"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n\t};\n\n\treturn (\n\t\t<ToastContext.Provider\n\t\t\tvalue={{ toasts, showToast, removeToast, clearToasts }}\n\t\t>\n\t\t\t{children}\n\t\t\t{toasts.length > 0 && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`fixed z-50 flex flex-col gap-2 ${positionClasses[position]}`}\n\t\t\t\t>\n\t\t\t\t\t{toasts.map((toast) => (\n\t\t\t\t\t\t<Toast\n\t\t\t\t\t\t\tkey={toast.id}\n\t\t\t\t\t\t\t{...toast}\n\t\t\t\t\t\t\tonClose={() => removeToast(toast.id)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</ToastContext.Provider>\n\t);\n};\n","\"use client\";\nimport React from \"react\";\nimport toast, { Toast as ToastType } from \"react-hot-toast\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastOptions {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tduration?: number;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"bg-[#EAF9EF]\",\n\t\t\tborder: \"border-[var(--mlz-semantic-success)]\",\n\t\t\ticon: \"text-[var(--mlz-semantic-success)]\",\n\t\t\ttext: \"text-[var(--mlz-semantic-success)]\",\n\t\t\ticonBg: \"bg-[#C5F5D5]\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"bg-blue-50\",\n\t\t\tborder: \"border-[#0058CC]\",\n\t\t\ticon: \"text-[#0058CC]\",\n\t\t\ttext: \"text-[#0058CC]\",\n\t\t\ticonBg: \"bg-blue-100\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"bg-yellow-50\",\n\t\t\tborder: \"border-[#C49E0A]\",\n\t\t\ticon: \"text-[#C49E0A]\",\n\t\t\ttext: \"text-[#C49E0A]\",\n\t\t\ticonBg: \"bg-yellow-100\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"bg-red-50\",\n\t\t\tborder: \"border-[#EF284C]\",\n\t\t\ticon: \"text-[#EF284C]\",\n\t\t\ttext: \"text-[#EF284C]\",\n\t\t\ticonBg: \"bg-red-100\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nconst CustomToast: React.FC<{\n\tt: ToastType;\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n}> = ({ t, title, description, variant = \"info\" }) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\n\t\t\t\t\"flex items-start\",\n\t\t\t\t\"w-[400px] min-h-[88px]\",\n\t\t\t\t\"rounded-lg\",\n\t\t\t\t\"border border-solid\",\n\t\t\t\t\"p-4\",\n\t\t\t\t\"gap-4\",\n\t\t\t\t\"shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]\",\n\t\t\t\tclasses.bg,\n\t\t\t\tclasses.border,\n\t\t\t].join(\" \")}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={[\n\t\t\t\t\t\"flex items-center justify-center\",\n\t\t\t\t\t\"w-10 h-10\",\n\t\t\t\t\t\"rounded-lg\",\n\t\t\t\t\t\"p-2\",\n\t\t\t\t\t\"flex-none\",\n\t\t\t\t\tclasses.iconBg,\n\t\t\t\t].join(\" \")}\n\t\t\t>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex-1 flex flex-col gap-2\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\"font-bold\",\n\t\t\t\t\t\t\"text-[20px]\",\n\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t].join(\" \")}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\"font-normal\",\n\t\t\t\t\t\t\t\"text-[18px]\",\n\t\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => toast.dismiss(t.id)}\n\t\t\t\tclassName=\"text-gray-400 hover:text-gray-600\"\n\t\t\t\taria-label=\"Cerrar\"\n\t\t\t>\n\t\t\t\t×\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport const showToast = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tduration = 5000,\n}: ToastOptions): string => {\n\treturn toast.custom(\n\t\t(t) => (\n\t\t\t<CustomToast\n\t\t\t\tt={t}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t),\n\t\t{\n\t\t\tduration,\n\t\t\tposition: \"top-right\",\n\t\t},\n\t);\n};\n\nexport const toastSuccess = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"success\", duration });\n\nexport const toastInfo = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"info\", duration });\n\nexport const toastWarning = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"warning\", duration });\n\nexport const toastError = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"error\", duration });\n\nexport { Toaster, toast } from \"react-hot-toast\";\n","\"use client\";\nexport interface UserCardProps {\n\tname: string;\n\temail: string;\n\tchangeUser: () => void;\n\teditUser: () => void;\n}\n\nexport function UserCard({ name, email, changeUser, editUser }: UserCardProps) {\n\treturn (\n\t\t<div>\n\t\t\t<h2>{name}</h2>\n\t\t\t<p>{email}</p>\n\t\t\t<button type=\"button\" onClick={changeUser}>\n\t\t\t\tChange User\n\t\t\t</button>\n\t\t\t<button type=\"button\" onClick={editUser}>\n\t\t\t\tEdit User\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nexport interface RadioButtonOption {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n}\n\nexport interface RadioButtonProps {\n\tname: string;\n\tvalue: string;\n\tlabel: string;\n\tchecked: boolean;\n\tonChange: (value: string) => void;\n\tclassName?: string;\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tdisabled?: boolean;\n}\n\nconst radioButtonClasses = (hasError?: boolean) => {\n\treturn {\n\t\tcontainerStyle: \"flex items-center\",\n\t\tinputStyle: [\n\t\t\t\"w-6 h-6\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"bg-gray-100\",\n\t\t\t\"border-gray-300\",\n\t\t\t\"focus:ring-0\",\n\t\t\t\"focus:outline-none\",\n\t\t\t\"flex-none\",\n\t\t\t\"order-0\",\n\t\t\t\"flex-grow-0\",\n\t\t\t\"checked:bg-primary-600\",\n\t\t\t\"checked:border-primary-600\",\n\t\t\t\"rounded-full\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"disabled:opacity-50 disabled:cursor-not-allowed\",\n\t\t].join(\" \"),\n\t};\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = ({\n\tname,\n\tvalue,\n\tlabel,\n\tchecked,\n\tonChange,\n\tclassName = \"\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tdisabled = false,\n}) => {\n\tconst classes = radioButtonClasses();\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div className={`${classes.containerStyle} ${className}`}>\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tid={`${name}-${value}`}\n\t\t\t\tname={name}\n\t\t\t\tvalue={value}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChange={() => onChange(value)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={classes.inputStyle}\n\t\t\t\tstyle={{\n\t\t\t\t\taccentColor: \"#236999\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<label\n\t\t\t\thtmlFor={`${name}-${value}`}\n\t\t\t\tclassName={`ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${\n\t\t\t\t\tdisabled ? \"opacity-50 cursor-not-allowed\" : \"\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t</div>\n\t);\n};\n\nexport interface RadioButtonGroupProps {\n\tname: string;\n\tlabel?: string;\n\toptions: RadioButtonOption[];\n\tvalue?: string;\n\tonChange?: (value: string) => void;\n\thasError?: boolean;\n\terrorText?: string;\n\thelperText?: string;\n\tclassName?: string;\n\tdirection?: \"row\" | \"col\";\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tradioLabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tcontainerProps?: React.HTMLAttributes<HTMLDivElement>;\n\tlabelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;\n\thelperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;\n}\n\nconst radioButtonGroupClasses = (hasError?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\n\treturn {\n\t\tcontainerStyle: \"flex flex-col gap-2\",\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n\tname,\n\tlabel,\n\toptions,\n\tvalue,\n\tonChange,\n\thasError = false,\n\terrorText,\n\thelperText,\n\tclassName = \"\",\n\tdirection = \"row\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tradioLabelWeight = \"bold\",\n\tcontainerProps,\n\tlabelProps,\n\thelperTextProps,\n}) => {\n\tconst classes = radioButtonGroupClasses(hasError);\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div {...containerProps} className={`${classes.containerStyle} ${className}`}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\t{...labelProps}\n\t\t\t\t\tclassName={`${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</label>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={`flex gap-4 ${\n\t\t\t\t\tdirection === \"col\" ? \"flex-col\" : \"flex-row\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\tlabel={option.label}\n\t\t\t\t\t\tchecked={value === option.value}\n\t\t\t\t\t\tonChange={(val) => onChange?.(val)}\n\t\t\t\t\t\tlabelSize={labelSize}\n\t\t\t\t\t\tlabelWeight={radioLabelWeight}\n\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{(errorText || helperText) && (\n\t\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\n"],"names":["_jsx","_jsxs","toastClasses"],"mappings":";;;;;;;AAkBA,MAAM,cAAc,GAAG;AACrB,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,OAAO,EAAE,4FAA4F;AACrG,IAAA,KAAK,EAAE,mEAAmE;CAC3E,CAAC;AAEF,MAAM,WAAW,GAAG;AAClB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,mBAAmB;CACxB,CAAC;AAEK,MAAM,MAAM,GAA0B,CAAC,EAC5C,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,KAAI;IACH,MAAM,WAAW,GAAG,wLAAwL,CAAC;AAE7M,IAAA,MAAM,cAAc,GAAG,cAAc,CAAC,OAAsC,CAAC,CAAC;AAC9E,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,IAAgC,CAAC,CAAC;AAElE,IAAA,MAAM,OAAO,GAAG,CAAG,EAAA,WAAW,IAAI,cAAc,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC,IAAI,EAAE,CAAC;IAEtF,QACEA,gBACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAAA,GACZ,KAAK,EAER,QAAA,EAAA,QAAQ,EACF,CAAA,EACT;AACJ;;AC3DO,MAAM,SAAS,GAA4C,CAAC,KAAK,MACvEA,GACC,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAElC,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,+CAA+C,EAAC,IAAI,EAAC,SAAS,EAAG,CAAA,EAAA,CACpE,CACN;;ACeD,MAAM,YAAY,GAAG,CAAC,QAAkB,EAAE,SAAmB,KAAI;IAChE,OAAO;AACN,QAAA,cAAc,EACb,yBAAyB,IAAI,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;AAEzD,QAAA,UAAU,EAAE,QAAQ;AACnB,cAAE,mDAAmD;AACrD,cAAE,4CAA4C;AAC/C,QAAA,UAAU,EAAE;YACX,+EAA+E;YAC/E,uBAAuB;YACvB,uCAAuC;YACvC,uBAAuB;YACvB,iCAAiC;YACjC,eAAe;YACf,QAAQ;AACP,kBAAE,8JAA8J;AAChK,kBAAE,2HAA2H;SAC9H,CAAC,IAAI,CAAC,GAAG,CAAC;AACX,QAAA,eAAe,EAAE,QAAQ;AACxB,cAAE,wCAAwC;AAC1C,cAAE,iCAAiC;KACpC,CAAC;AACH,CAAC,CAAC;AAEW,MAAA,KAAK,GAAyB,CAAC,EAC3C,UAAU,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACR,KAAI;IACJ,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,SAAS;AAC/B,UAAE,CAAG,EAAA,OAAO,CAAC,UAAU,CAAA,CAAA,EAAI,SAAS,CAAE,CAAA;AACtC,UAAE,OAAO,CAAC,UAAU,CAAC;;AAGtB,IAAA,MAAM,UAAU,GAAG,KAAK,KAAK,SAAS;AACrC,UAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;UACnB,KAAK,CAAC;AAET,IAAA,QACCC,IAAS,CAAA,KAAA,EAAA,EAAA,GAAA,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,EAAA,QAAA,EAAA,CACzDD,kBAAW,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAClD,QAAA,EAAA,KAAK,GACC,EACRA,GAAA,CAAA,OAAA,EAAA,EAAA,GACK,UAAU,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,cAAc,GACxB,EACD,WAAW,KACXA,aAAK,SAAS,EAAC,2CAA2C,EAAA,QAAA,EACzDA,IAAC,SAAS,EAAA,EAAA,CAAG,EACR,CAAA,CACN,EACDA,GAAO,CAAA,GAAA,EAAA,EAAA,GAAA,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,eAAe,EAAA,QAAA,EACxD,SAAS,GAAG,SAAS,GAAG,UAAU,EAChC,CAAA,CAAA,EAAA,CACC,EACL;AACH;;AChFA,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,SAAmB,KAAI;IACnE,MAAM,eAAe,GAAG,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;IAC1E,MAAM,WAAW,GAAG,QAAQ,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACzE,MAAM,cAAc,GAAG,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;IACzE,MAAM,gBAAgB,GAAG,QAAQ,GAAG,iCAAiC,GAAG,0BAA0B,CAAC;IACnG,MAAM,cAAc,GAAG,QAAQ,GAAG,+BAA+B,GAAG,wBAAwB,CAAC;IAC7F,MAAM,iBAAiB,GAAG,QAAQ,GAAG,kCAAkC,GAAG,2BAA2B,CAAC;IACtG,MAAM,gBAAgB,GAAG,QAAQ,GAAG,qCAAqC,GAAG,8BAA8B,CAAC;IAE3G,OAAO;AACN,QAAA,cAAc,EACb,8BAA8B,IAAI,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;QAC9D,UAAU,EAAE,CAA4B,yBAAA,EAAA,eAAe,CAAE,CAAA;AACzD,QAAA,aAAa,EAAE;YACd,+EAA+E;YAC/E,kBAAkB;YAClB,uCAAuC;YACvC,WAAW;YACX,uBAAuB;YACvB,iCAAiC;YACjC,eAAe;YACf,UAAU;YACV,6BAA6B;YAC7B,WAAW;YACX,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;YACd,iBAAiB;SACjB,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,eAAe,EAAE,CAAkB,eAAA,EAAA,cAAc,CAAE,CAAA;KACnD,CAAC;AACH,CAAC,CAAC;AAEW,MAAA,QAAQ,GAA4B,CAAC,EACjD,UAAU,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,GAAG,EAAE,EACV,SAAS,EACT,GAAG,KAAK,EACR,KAAI;IACJ,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrD,IAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAA,GAAS,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,EAAA,QAAA,EAAA,CACzDD,GAAW,CAAA,OAAA,EAAA,EAAA,GAAA,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAA,QAAA,EAClD,KAAK,EAAA,CACC,EACRA,GAAA,CAAA,UAAA,EAAA,EAAA,GACK,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,OAAO,CAAC,aAAa,EAC/B,CAAA,EACFA,GAAO,CAAA,GAAA,EAAA,EAAA,GAAA,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,eAAe,EAAA,QAAA,EACxD,SAAS,GAAG,SAAS,GAAG,UAAU,EAChC,CAAA,CAAA,EAAA,CACC,EACL;AACH;;ACtFO,MAAM,eAAe,GAA4C,CAAC,KAAK,MAC7EA,aACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,GAC9B,KAAK,EAET,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EACC,CAAC,EAAC,27BAA27B,EAC77B,IAAI,EAAC,cAAc,EAClB,CAAA,EAAA,CACG,CACN;;ACdM,MAAM,eAAe,GAA4C,CAAC,KAAK,MAC7EC,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAC9B,GAAA,KAAK,aAETD,GAAQ,CAAA,QAAA,EAAA,EAAA,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,cAAc,EAAA,CAAG,EACrDA,GACC,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACpB,CAAA,CAAA,EAAA,CACG,CACN;;ACjBM,MAAM,cAAc,GAA4C,CAAC,KAAK,MAC5EA,aACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,GAC9B,KAAK,EAET,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EACC,CAAC,EAAC,srCAAsrC,EACxrC,IAAI,EAAC,cAAc,EAClB,CAAA,EAAA,CACG,CACN;;ACdM,MAAM,mBAAmB,GAA4C,CAAC,KAAK,MACjFA,aACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,GAC9B,KAAK,EAET,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EACC,CAAC,EAAC,0XAA0X,EAC5X,IAAI,EAAC,cAAc,EAClB,CAAA,EAAA,CACG,CACN;;ACED,MAAME,cAAY,GAAG,CAAC,OAAqB,KAAI;AAC9C,IAAA,MAAM,QAAQ,GAAG;AAChB,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,sBAAsB;AAC1B,YAAA,MAAM,EAAE,0BAA0B;AAClC,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,MAAM,EAAE,2BAA2B;AACnC,YAAA,aAAa,EAAE,eAAe;AAC9B,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,mBAAmB;AACvB,YAAA,MAAM,EAAE,uBAAuB;AAC/B,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,aAAa,EAAE,cAAc;AAC7B,SAAA;AACD,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,sBAAsB;AAC1B,YAAA,MAAM,EAAE,0BAA0B;AAClC,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,MAAM,EAAE,2BAA2B;AACnC,YAAA,aAAa,EAAE,mBAAmB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,oBAAoB;AACxB,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,yBAAyB;AACjC,YAAA,aAAa,EAAE,eAAe;AAC9B,SAAA;KACD,CAAC;AAEF,IAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEW,MAAA,KAAK,GAAyB,CAAC,EAC3C,KAAK,EACL,WAAW,EACX,OAAO,GAAG,MAAM,EAChB,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,OAAO,GAAGA,cAAY,CAAC,OAAO,CAAC,CAAC;AACtC,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE5C,QACCD,IACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE;YACV,kBAAkB;YAClB,wBAAwB;YACxB,YAAY;YACZ,qBAAqB;YACrB,KAAK;YACL,OAAO;YACP,2CAA2C;AAC3C,YAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,MAAM;AACd,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAEX,QAAA,EAAA,CAAAD,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE;oBACV,kCAAkC;oBAClC,WAAW;oBACX,YAAY;oBACZ,KAAK;oBACL,WAAW;AACX,oBAAA,OAAO,CAAC,MAAM;iBACd,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAEXA,aAAK,SAAS,EAAE,OAAO,CAAC,IAAI,EAAA,QAAA,EAC3BA,IAAC,aAAa,EAAA,EAAA,CAAG,EACZ,CAAA,EAAA,CACD,EACNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAC1CD,GACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE;4BACV,WAAW;4BACX,aAAa;4BACb,gBAAgB;4BAChB,iBAAiB;AACjB,4BAAA,OAAO,CAAC,IAAI;AACZ,yBAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAEV,QAAA,EAAA,KAAK,EACD,CAAA,EACL,WAAW,KACXA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE;4BACV,aAAa;4BACb,aAAa;4BACb,gBAAgB;4BAChB,iBAAiB;AACjB,4BAAA,OAAO,CAAC,IAAI;AACZ,yBAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAEV,QAAA,EAAA,WAAW,EACP,CAAA,CACN,CACI,EAAA,CAAA,EACL,OAAO,KACPA,GACC,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,mCAAmC,EAAA,YAAA,EAClC,QAAQ,EAAA,QAAA,EAAA,QAAA,EAAA,CAGX,CACT,CAAA,EAAA,CACI,EACL;AACH;;ACjHA,MAAM,YAAY,GAAG,aAAa,CAA+B,SAAS,CAAC,CAAC;AAErE,MAAM,QAAQ,GAAG,MAAK;AAC5B,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KAChE;AACD,IAAA,OAAO,OAAO,CAAC;AAChB,EAAE;AAaK,MAAM,aAAa,GAAiC,CAAC,EAC3D,QAAQ,EACR,QAAQ,GAAG,WAAW,GACtB,KAAI;IACJ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;AAEtD,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAA4B,KAAI;AAC9D,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,QAAA,MAAM,QAAQ,GAAc;AAC3B,YAAA,GAAG,KAAK;YACR,EAAE;AACF,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;SAChC,CAAC;AAEF,QAAA,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEzC,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;YAC/C,UAAU,CAAC,MAAK;gBACf,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,aAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACtB;AAED,QAAA,OAAO,EAAE,CAAC;KACV,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,EAAU,KAAI;QAC9C,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;KACrD,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAK;QACpC,SAAS,CAAC,EAAE,CAAC,CAAC;KACd,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,eAAe,GAAG;AACvB,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,YAAY,EAAE,iCAAiC;AAC/C,QAAA,eAAe,EAAE,oCAAoC;KACrD,CAAC;AAEF,IAAA,QACCC,IAAA,CAAC,YAAY,CAAC,QAAQ,EACrB,EAAA,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAErD,QAAA,EAAA,CAAA,QAAQ,EACR,MAAM,CAAC,MAAM,GAAG,CAAC,KACjBD,GACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAkC,+BAAA,EAAA,eAAe,CAAC,QAAQ,CAAC,CAAE,CAAA,EAAA,QAAA,EAEvE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MACjBA,GAAA,CAAC,KAAK,EAED,EAAA,GAAA,KAAK,EACT,OAAO,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,IAF/B,KAAK,CAAC,EAAE,CAGZ,CACF,CAAC,EAAA,CACG,CACN,CAAA,EAAA,CACsB,EACvB;AACH;;ACnFA,MAAM,YAAY,GAAG,CAAC,OAAqB,KAAI;AAC9C,IAAA,MAAM,QAAQ,GAAG;AAChB,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,cAAc;AAClB,YAAA,MAAM,EAAE,sCAAsC;AAC9C,YAAA,IAAI,EAAE,oCAAoC;AAC1C,YAAA,IAAI,EAAE,oCAAoC;AAC1C,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,aAAa,EAAE,eAAe;AAC9B,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,MAAM,EAAE,kBAAkB;AAC1B,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,aAAa,EAAE,cAAc;AAC7B,SAAA;AACD,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,cAAc;AAClB,YAAA,MAAM,EAAE,kBAAkB;AAC1B,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,aAAa,EAAE,mBAAmB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,MAAM,EAAE,kBAAkB;AAC1B,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,aAAa,EAAE,eAAe;AAC9B,SAAA;KACD,CAAC;AAEF,IAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,WAAW,GAKZ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,KAAI;AACpD,IAAA,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AACtC,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE5C,QACCC,IACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE;YACV,kBAAkB;YAClB,wBAAwB;YACxB,YAAY;YACZ,qBAAqB;YACrB,KAAK;YACL,OAAO;YACP,2CAA2C;AAC3C,YAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,MAAM;AACd,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAEX,QAAA,EAAA,CAAAD,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE;oBACV,kCAAkC;oBAClC,WAAW;oBACX,YAAY;oBACZ,KAAK;oBACL,WAAW;AACX,oBAAA,OAAO,CAAC,MAAM;iBACd,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAEXA,aAAK,SAAS,EAAE,OAAO,CAAC,IAAI,EAAA,QAAA,EAC3BA,IAAC,aAAa,EAAA,EAAA,CAAG,EACZ,CAAA,EAAA,CACD,EACNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAC1CD,GACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE;4BACV,WAAW;4BACX,aAAa;4BACb,gBAAgB;4BAChB,iBAAiB;AACjB,4BAAA,OAAO,CAAC,IAAI;AACZ,yBAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAEV,QAAA,EAAA,KAAK,EACD,CAAA,EACL,WAAW,KACXA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE;4BACV,aAAa;4BACb,aAAa;4BACb,gBAAgB;4BAChB,iBAAiB;AACjB,4BAAA,OAAO,CAAC,IAAI;AACZ,yBAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAEV,WAAW,EACP,CAAA,CACN,CACI,EAAA,CAAA,EACNA,gBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAClC,SAAS,EAAC,mCAAmC,EAAA,YAAA,EAClC,QAAQ,EAGX,QAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,CACJ,EACL;AACH,CAAC,CAAC;AAEW,MAAA,SAAS,GAAG,CAAC,EACzB,KAAK,EACL,WAAW,EACX,OAAO,GAAG,MAAM,EAChB,QAAQ,GAAG,IAAI,GACD,KAAY;AAC1B,IAAA,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,CAAC,MACDA,GAAC,CAAA,WAAW,IACX,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAAA,CACf,CACF,EACD;QACC,QAAQ;AACR,QAAA,QAAQ,EAAE,WAAW;AACrB,KAAA,CACD,CAAC;AACH,EAAE;AAEW,MAAA,YAAY,GAAG,CAC3B,KAAa,EACb,WAAoB,EACpB,QAAiB,KACb,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AAExD,MAAA,SAAS,GAAG,CACxB,KAAa,EACb,WAAoB,EACpB,QAAiB,KACb,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;AAErD,MAAA,YAAY,GAAG,CAC3B,KAAa,EACb,WAAoB,EACpB,QAAiB,KACb,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AAExD,MAAA,UAAU,GAAG,CACzB,KAAa,EACb,WAAoB,EACpB,QAAiB,KACb,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;;ACvK3D,SAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAiB,EAAA;AAC5E,IAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCD,GAAK,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,IAAI,EAAM,CAAA,EACfA,GAAI,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,KAAK,EAAK,CAAA,EACdA,GAAQ,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,CAEhC,EACTA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,QAAQ,EAE9B,QAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,CACJ,EACL;AACH;;ACDA,MAAM,kBAAkB,GAAG,CAAC,QAAkB,KAAI;IACjD,OAAO;AACN,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,UAAU,EAAE;YACX,SAAS;YACT,kBAAkB;YAClB,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,oBAAoB;YACpB,WAAW;YACX,SAAS;YACT,aAAa;YACb,wBAAwB;YACxB,4BAA4B;YAC5B,cAAc;YACd,gBAAgB;YAChB,iDAAiD;SACjD,CAAC,IAAI,CAAC,GAAG,CAAC;KACX,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,WAAW,GAA+B,CAAC,EACvD,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,MAAM,EAClB,WAAW,GAAG,QAAQ,EACtB,QAAQ,GAAG,KAAK,GAChB,KAAI;AACJ,IAAA,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;AAErC,IAAA,MAAM,WAAW,GAAG;AACnB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,SAAS;KACb,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,IAAI,EAAE,WAAW;KACjB,CAAC;IAEF,QACCC,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAA,EAAG,OAAO,CAAC,cAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EACvD,QAAA,EAAA,CAAAD,GAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,EAC/B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,KAAK,EAAE;AACN,oBAAA,WAAW,EAAE,SAAS;AACtB,iBAAA,EAAA,CACA,EACFA,GACC,CAAA,OAAA,EAAA,EAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,EAC3B,SAAS,EAAE,CAAA,SAAA,EAAY,WAAW,CAAC,SAAS,CAAC,CAAI,CAAA,EAAA,aAAa,CAAC,WAAW,CAAC,CAC1E,+EAAA,EAAA,QAAQ,GAAG,+BAA+B,GAAG,EAC9C,CAAE,CAAA,EAAA,QAAA,EAED,KAAK,EACC,CAAA,CAAA,EAAA,CACH,EACL;AACH,EAAE;AAqBF,MAAM,uBAAuB,GAAG,CAAC,QAAkB,KAAI;IACtD,MAAM,eAAe,GAAG,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;IAC1E,MAAM,cAAc,GAAG,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;IAEzE,OAAO;AACN,QAAA,cAAc,EAAE,qBAAqB;QACrC,UAAU,EAAE,CAA4B,yBAAA,EAAA,eAAe,CAAE,CAAA;QACzD,eAAe,EAAE,CAAkB,eAAA,EAAA,cAAc,CAAE,CAAA;KACnD,CAAC;AACH,CAAC,CAAC;MAEW,gBAAgB,GAAoC,CAAC,EACjE,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,MAAM,EAClB,WAAW,GAAG,QAAQ,EACtB,gBAAgB,GAAG,MAAM,EACzB,cAAc,EACd,UAAU,EACV,eAAe,GACf,KAAI;AACJ,IAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAElD,IAAA,MAAM,WAAW,GAAG;AACnB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,SAAS;KACb,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,IAAI,EAAE,WAAW;KACjB,CAAC;AAEF,IAAA,QACCC,IAAS,CAAA,KAAA,EAAA,EAAA,GAAA,cAAc,EAAE,SAAS,EAAE,CAAG,EAAA,OAAO,CAAC,cAAc,IAAI,SAAS,CAAA,CAAE,EAC1E,QAAA,EAAA,CAAA,KAAK,KACLD,GAAA,CAAA,OAAA,EAAA,EAAA,GACK,UAAU,EACd,SAAS,EAAE,CAAA,EAAG,OAAO,CAAC,UAAU,CAAI,CAAA,EAAA,WAAW,CAAC,SAAS,CAAC,CAAI,CAAA,EAAA,aAAa,CAAC,WAAW,CAAC,EAAE,EAEzF,QAAA,EAAA,KAAK,EACC,CAAA,CACR,EACDA,GACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAA,WAAA,EACV,SAAS,KAAK,KAAK,GAAG,UAAU,GAAG,UACpC,CAAE,CAAA,EAAA,QAAA,EAED,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACnBA,GAAC,CAAA,WAAW,IAEX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK,EAC/B,QAAQ,EAAE,CAAC,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,EAClC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,gBAAgB,EAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,EARpB,MAAM,CAAC,KAAK,CAShB,CACF,CAAC,EACG,CAAA,EACL,CAAC,SAAS,IAAI,UAAU,MACxBA,cAAO,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,eAAe,EACxD,QAAA,EAAA,SAAS,GAAG,SAAS,GAAG,UAAU,GAChC,CACJ,CAAA,EAAA,CACI,EACL;AACH;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/components/Button/Button.tsx","../src/components/Icons/Check.tsx","../src/components/Input/Input.tsx","../src/components/RadioButton/RadioButton.tsx","../src/components/TextArea/TextArea.tsx","../src/components/Icons/CheckCircle.tsx","../src/components/Icons/ErrorCircle.tsx","../src/components/Icons/InfoCircle.tsx","../src/components/Icons/WarningTriangle.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/Toast/toastHelpers.tsx","../src/components/UserCard/UserCard.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Contenido del botón\n */\n children: React.ReactNode;\n /**\n * Variante del botón\n */\n variant?: 'primary' | 'secondary' | 'outline-solid' | 'ghost';\n /**\n * Tamaño del botón\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst buttonVariants = {\n primary: 'mlz-btn-primary',\n secondary: 'mlz-btn-secondary', \n outline: 'border-2 border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent',\n ghost: 'text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent'\n};\n\nconst buttonSizes = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-6 py-3 text-lg'\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = 'primary',\n size = 'md',\n disabled = false,\n onClick,\n type = 'button',\n className = '',\n ...props\n}) => {\n const baseClasses = 'inline-flex items-center justify-center font-medium rounded-md transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed';\n \n const variantClasses = buttonVariants[variant as keyof typeof buttonVariants];\n const sizeClasses = buttonSizes[size as keyof typeof buttonSizes];\n \n const classes = `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`.trim();\n\n return (\n <button\n type={type}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","export const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"12\"\n\t\theight=\"10\"\n\t\tviewBox=\"0 0 12 10\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" fill=\"#2ABB5B\" />\n\t</svg>\n);\n","\"use client\";\n\nimport { CheckIcon } from \"../Icons/Check\";\n\nexport interface InputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n\tcheckedIcon?: React.ReactNode;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst inputClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative \" + (fullWidth ? \" w-full\" : \"\"),\n\t \n\t\tlabelStyle: hasError\n\t\t\t? \"block text-base font-bold text-semantic-error-600\"\n\t\t\t: \"block text-base font-bold text-primary-600\",\n\t\tinputStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600 h-12\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\thasError\n\t\t\t\t? \"border-semantic-error-600 placeholder:text-semantic-error-600 focus:border-semantic-error-600 focus:ring-semantic-error-600 active:border-semantic-error-600\"\n\t\t\t\t: \"border-primary-400 placeholder:text-primary-400 focus:border-primary-600 focus:ring-primary-600 active:border-primary-600\",\n\t\t].join(\" \"),\n\t\thelperTextStyle: hasError\n\t\t\t? \"mt-1 text-base text-semantic-error-600\"\n\t\t\t: \"mt-1 text-base text-primary-600\",\n\t};\n};\n\nexport const Input: React.FC<InputProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tvalue, \n\tlabel,\n\tplaceholder,\n\tfullWidth,\n\tcheckedIcon,\n\tautoComplete, \n\tclassName, \n\t...props\n}) => {\n\tconst isError = Boolean(errorText) || hasError;\n\tconst classes = inputClasses(isError, fullWidth);\n\t\n\tconst finalClassName = className \n\t\t? `${classes.inputStyle} ${className}` \n\t\t: classes.inputStyle;\n\t\n\t// Only pass value prop if it's explicitly provided\n\tconst inputProps = value !== undefined \n\t\t? { value, ...props }\n\t\t: props;\n\t\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<input\n\t\t\t\t{...inputProps}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tautoComplete={autoComplete} \n\t\t\t\tclassName={finalClassName} \n\t\t\t/>\n\t\t\t{checkedIcon && (\n\t\t\t\t<div className=\"absolute right-4 top-1/2 -translate-y-1/2\">\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};","\"use client\";\n\nexport interface RadioButtonOption {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n}\n\nexport interface RadioButtonProps {\n\tname: string;\n\tvalue: string;\n\tlabel: string;\n\tchecked: boolean;\n\tonChange: (value: string) => void;\n\tclassName?: string;\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tdisabled?: boolean;\n}\n\nconst radioButtonClasses = (hasError?: boolean) => {\n\treturn {\n\t\tcontainerStyle: \"flex items-center\",\n\t\tinputStyle: [\n\t\t\t\"w-6 h-6\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"bg-gray-100\",\n\t\t\t\"border-gray-300\",\n\t\t\t\"focus:ring-0\",\n\t\t\t\"focus:outline-none\",\n\t\t\t\"flex-none\",\n\t\t\t\"order-0\",\n\t\t\t\"flex-grow-0\",\n\t\t\t\"checked:bg-primary-600\",\n\t\t\t\"checked:border-primary-600\",\n\t\t\t\"rounded-full\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"disabled:opacity-50 disabled:cursor-not-allowed\",\n\t\t].join(\" \"),\n\t};\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = ({\n\tname,\n\tvalue,\n\tlabel,\n\tchecked,\n\tonChange,\n\tclassName = \"\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tdisabled = false,\n}) => {\n\tconst classes = radioButtonClasses();\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div className={`${classes.containerStyle} ${className}`}>\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tid={`${name}-${value}`}\n\t\t\t\tname={name}\n\t\t\t\tvalue={value}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChange={() => onChange(value)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={classes.inputStyle}\n\t\t\t\tstyle={{\n\t\t\t\t\taccentColor: \"#236999\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<label\n\t\t\t\thtmlFor={`${name}-${value}`}\n\t\t\t\tclassName={`ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${\n\t\t\t\t\tdisabled ? \"opacity-50 cursor-not-allowed\" : \"\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t</div>\n\t);\n};\n\nexport interface RadioButtonGroupProps {\n\tname: string;\n\tlabel?: string;\n\toptions: RadioButtonOption[];\n\tvalue?: string;\n\tonChange?: (value: string) => void;\n\thasError?: boolean;\n\terrorText?: string;\n\thelperText?: string;\n\tclassName?: string;\n\tdirection?: \"row\" | \"col\";\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tradioLabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tcontainerProps?: React.HTMLAttributes<HTMLDivElement>;\n\tlabelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;\n\thelperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;\n}\n\nconst radioButtonGroupClasses = (hasError?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\n\treturn {\n\t\tcontainerStyle: \"flex flex-col gap-2\",\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n\tname,\n\tlabel,\n\toptions,\n\tvalue,\n\tonChange,\n\thasError = false,\n\terrorText,\n\thelperText,\n\tclassName = \"\",\n\tdirection = \"row\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tradioLabelWeight = \"bold\",\n\tcontainerProps,\n\tlabelProps,\n\thelperTextProps,\n}) => {\n\tconst classes = radioButtonGroupClasses(hasError);\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div {...containerProps} className={`${classes.containerStyle} ${className}`}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\t{...labelProps}\n\t\t\t\t\tclassName={`${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</label>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={`flex gap-4 ${\n\t\t\t\t\tdirection === \"col\" ? \"flex-col\" : \"flex-row\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\tlabel={option.label}\n\t\t\t\t\t\tchecked={value === option.value}\n\t\t\t\t\t\tonChange={(val) => onChange?.(val)}\n\t\t\t\t\t\tlabelSize={labelSize}\n\t\t\t\t\t\tlabelWeight={radioLabelWeight}\n\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{(errorText || helperText) && (\n\t\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\n","\"use client\";\nexport interface TextAreaProps\n\textends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst textAreaClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst borderClass = hasError ? \"mlz-error-border\" : \"border-primary-400\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst focusBorderClass = hasError ? \"focus:border-semantic-error-600\" : \"focus:border-primary-600\";\n\tconst focusRingClass = hasError ? \"focus:ring-semantic-error-600\" : \"focus:ring-primary-600\";\n\tconst activeBorderClass = hasError ? \"active:border-semantic-error-600\" : \"active:border-primary-600\";\n\tconst placeholderClass = hasError ? \"placeholder:text-semantic-error-600\" : \"placeholder:text-primary-400\";\n\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative gap-1\" + (fullWidth ? \" w-full\" : \"\"),\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\ttextAreaStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\t\"resize-y\",\n\t\t\t\"min-w-[498px] min-h-[123px]\",\n\t\t\tborderClass,\n\t\t\tplaceholderClass,\n\t\t\tfocusBorderClass,\n\t\t\tfocusRingClass,\n\t\t\tactiveBorderClass,\n\t\t].join(\" \"),\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const TextArea: React.FC<TextAreaProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tlabel,\n\tplaceholder,\n\tvalue = '',\n\tfullWidth,\n\t...props\n}) => {\n\tconst classes = textAreaClasses(hasError, fullWidth);\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<textarea\n\t\t\t\t{...props}\n\t\t\t\tvalue={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tclassName={classes.textAreaStyle}\n\t\t\t/>\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};\n\n","export const CheckCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M8.6 14.6L15.65 7.55L14.25 6.15L8.6 11.8L5.75 8.95L4.35 10.35L8.6 14.6ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const ErrorCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"currentColor\" />\n\t\t<path\n\t\t\td=\"M7 7L13 13M13 7L7 13\"\n\t\t\tstroke=\"white\"\n\t\t\tstrokeWidth=\"2\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\n","export const InfoCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M10 15C10.2833 15 10.5208 14.9042 10.7125 14.7125C10.9042 14.5208 11 14.2833 11 14C11 13.7167 10.9042 13.4792 10.7125 13.2875C10.5208 13.0958 10.2833 13 10 13C9.71667 13 9.47917 13.0958 9.2875 13.2875C9.09583 13.4792 9 13.7167 9 14C9 14.2833 9.09583 14.5208 9.2875 14.7125C9.47917 14.9042 9.71667 15 10 15ZM9 11H11V5H9V11ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const WarningTriangleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"22\"\n\t\theight=\"19\"\n\t\tviewBox=\"0 0 22 19\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M0 19L11 0L22 19H0ZM3.45 17H18.55L11 4L3.45 17ZM11 16C11.2833 16 11.5208 15.9042 11.7125 15.7125C11.9042 15.5208 12 15.2833 12 15C12 14.7167 11.9042 14.4792 11.7125 14.2875C11.5208 14.0958 11.2833 14 11 14C10.7167 14 10.4792 14.0958 10.2875 14.2875C10.0958 14.4792 10 14.7167 10 15C10 15.2833 10.0958 15.5208 10.2875 15.7125C10.4792 15.9042 10.7167 16 11 16ZM10 13H12V8H10V13Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","\"use client\";\nimport React from \"react\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastProps {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tonClose?: () => void;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nexport const Toast: React.FC<ToastProps> = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tonClose,\n}) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`mlz-toast-container ${classes.bg} ${classes.border}`}\n\t\t>\n\t\t\t<div className={`mlz-toast-icon-container ${classes.iconBg}`}>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"mlz-toast-content\">\n\t\t\t\t<div className={`mlz-toast-title ${classes.text}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div className={`mlz-toast-description ${classes.text}`}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{onClose && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tclassName=\"mlz-toast-close\"\n\t\t\t\t\taria-label=\"Cerrar\"\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","\"use client\";\n\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { Toast, type ToastProps, type ToastVariant } from \"./Toast\";\n\ninterface ToastItem extends Omit<ToastProps, \"onClose\"> {\n\tid: string;\n\tduration?: number;\n}\n\ninterface ToastContextType {\n\ttoasts: ToastItem[];\n\tshowToast: (toast: Omit<ToastItem, \"id\">) => string;\n\tremoveToast: (id: string) => void;\n\tclearToasts: () => void;\n}\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\n\nexport const useToast = () => {\n\tconst context = useContext(ToastContext);\n\tif (!context) {\n\t\tthrow new Error(\"useToast must be used within a ToastProvider\");\n\t}\n\treturn context;\n};\n\ninterface ToastProviderProps {\n\tchildren: React.ReactNode;\n\tposition?:\n\t\t| \"top-right\"\n\t\t| \"top-left\"\n\t\t| \"bottom-right\"\n\t\t| \"bottom-left\"\n\t\t| \"top-center\"\n\t\t| \"bottom-center\";\n}\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n\tchildren,\n\tposition = \"top-right\",\n}) => {\n\tconst [toasts, setToasts] = useState<ToastItem[]>([]);\n\n\tconst showToast = useCallback((toast: Omit<ToastItem, \"id\">) => {\n\t\tconst id = Math.random().toString(36).substring(2, 9);\n\t\tconst newToast: ToastItem = {\n\t\t\t...toast,\n\t\t\tid,\n\t\t\tduration: toast.duration ?? 5000,\n\t\t};\n\n\t\tsetToasts((prev) => [...prev, newToast]);\n\n\t\tif (newToast.duration && newToast.duration > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t\t\t}, newToast.duration);\n\t\t}\n\n\t\treturn id;\n\t}, []);\n\n\tconst removeToast = useCallback((id: string) => {\n\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t}, []);\n\n\tconst clearToasts = useCallback(() => {\n\t\tsetToasts([]);\n\t}, []);\n\n\tconst positionClasses = {\n\t\t\"top-right\": \"top-4 right-4\",\n\t\t\"top-left\": \"top-4 left-4\",\n\t\t\"bottom-right\": \"bottom-4 right-4\",\n\t\t\"bottom-left\": \"bottom-4 left-4\",\n\t\t\"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n\t\t\"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n\t};\n\n\treturn (\n\t\t<ToastContext.Provider\n\t\t\tvalue={{ toasts, showToast, removeToast, clearToasts }}\n\t\t>\n\t\t\t{children}\n\t\t\t{toasts.length > 0 && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`fixed z-50 flex flex-col gap-2 ${positionClasses[position]}`}\n\t\t\t\t>\n\t\t\t\t\t{toasts.map((toast) => (\n\t\t\t\t\t\t<Toast\n\t\t\t\t\t\t\tkey={toast.id}\n\t\t\t\t\t\t\t{...toast}\n\t\t\t\t\t\t\tonClose={() => removeToast(toast.id)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</ToastContext.Provider>\n\t);\n};\n","\"use client\";\nimport React from \"react\";\nimport toast, { Toast as ToastType } from \"react-hot-toast\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastOptions {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tduration?: number;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nconst CustomToast: React.FC<{\n\tt: ToastType;\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n}> = ({ t, title, description, variant = \"info\" }) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`mlz-toast-container ${classes.bg} ${classes.border}`}\n\t\t>\n\t\t\t<div className={`mlz-toast-icon-container ${classes.iconBg}`}>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"mlz-toast-content\">\n\t\t\t\t<div className={`mlz-toast-title ${classes.text}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div className={`mlz-toast-description ${classes.text}`}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => toast.dismiss(t.id)}\n\t\t\t\tclassName=\"mlz-toast-close\"\n\t\t\t\taria-label=\"Cerrar\"\n\t\t\t>\n\t\t\t\t×\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport const showToast = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tduration = 5000,\n}: ToastOptions): string => {\n\treturn toast.custom(\n\t\t(t) => (\n\t\t\t<CustomToast\n\t\t\t\tt={t}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t),\n\t\t{\n\t\t\tduration,\n\t\t\tposition: \"top-right\",\n\t\t},\n\t);\n};\n\nexport const toastSuccess = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"success\", duration });\n\nexport const toastInfo = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"info\", duration });\n\nexport const toastWarning = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"warning\", duration });\n\nexport const toastError = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"error\", duration });\n\nexport { Toaster, toast } from \"react-hot-toast\";\n","\"use client\";\nexport interface UserCardProps {\n\tname: string;\n\temail: string;\n\tchangeUser: () => void;\n\teditUser: () => void;\n}\n\nexport function UserCard({ name, email, changeUser, editUser }: UserCardProps) {\n\treturn (\n\t\t<div>\n\t\t\t<h2>{name}</h2>\n\t\t\t<p>{email}</p>\n\t\t\t<button type=\"button\" onClick={changeUser}>\n\t\t\t\tChange User\n\t\t\t</button>\n\t\t\t<button type=\"button\" onClick={editUser}>\n\t\t\t\tEdit User\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n"],"names":["_jsx","_jsxs","toastClasses"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  'use strict';
4
4
 
5
+ var toast = require('react-hot-toast');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
  var react = require('react');
7
- var toast = require('react-hot-toast');
8
8
 
9
9
  const buttonVariants = {
10
10
  primary: 'mlz-btn-primary',
@@ -62,6 +62,69 @@ const Input = ({ labelProps, helperTextProps, containerProps, errorText, helperT
62
62
  return (jsxRuntime.jsxs("div", { ...containerProps, className: classes.containerStyle, children: [jsxRuntime.jsx("label", { ...labelProps, className: classes.labelStyle, children: label }), jsxRuntime.jsx("input", { ...inputProps, disabled: disabled, placeholder: placeholder, autoComplete: autoComplete, className: finalClassName }), checkedIcon && (jsxRuntime.jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2", children: jsxRuntime.jsx(CheckIcon, {}) })), jsxRuntime.jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText })] }));
63
63
  };
64
64
 
65
+ const radioButtonClasses = (hasError) => {
66
+ return {
67
+ containerStyle: "flex items-center",
68
+ inputStyle: [
69
+ "w-6 h-6",
70
+ "text-primary-600",
71
+ "bg-gray-100",
72
+ "border-gray-300",
73
+ "focus:ring-0",
74
+ "focus:outline-none",
75
+ "flex-none",
76
+ "order-0",
77
+ "flex-grow-0",
78
+ "checked:bg-primary-600",
79
+ "checked:border-primary-600",
80
+ "rounded-full",
81
+ "cursor-pointer",
82
+ "disabled:opacity-50 disabled:cursor-not-allowed",
83
+ ].join(" "),
84
+ };
85
+ };
86
+ const RadioButton = ({ name, value, label, checked, onChange, className = "", labelSize = "base", labelWeight = "medium", disabled = false, }) => {
87
+ const classes = radioButtonClasses();
88
+ const sizeClasses = {
89
+ sm: "text-sm",
90
+ base: "text-base",
91
+ lg: "text-lg",
92
+ xl: "text-xl",
93
+ };
94
+ const weightClasses = {
95
+ normal: "font-normal",
96
+ medium: "font-medium",
97
+ bold: "font-bold",
98
+ };
99
+ return (jsxRuntime.jsxs("div", { className: `${classes.containerStyle} ${className}`, children: [jsxRuntime.jsx("input", { type: "radio", id: `${name}-${value}`, name: name, value: value, checked: checked, onChange: () => onChange(value), disabled: disabled, className: classes.inputStyle, style: {
100
+ accentColor: "#236999",
101
+ } }), jsxRuntime.jsx("label", { htmlFor: `${name}-${value}`, className: `ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${disabled ? "opacity-50 cursor-not-allowed" : ""}`, children: label })] }));
102
+ };
103
+ const radioButtonGroupClasses = (hasError) => {
104
+ const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
105
+ const textColorClass = hasError ? "mlz-error-color" : "text-primary-600";
106
+ return {
107
+ containerStyle: "flex flex-col gap-2",
108
+ labelStyle: `mlz-label-textarea block ${labelColorClass}`,
109
+ helperTextStyle: `mt-1 text-base ${textColorClass}`,
110
+ };
111
+ };
112
+ const RadioButtonGroup = ({ name, label, options, value, onChange, hasError = false, errorText, helperText, className = "", direction = "row", labelSize = "base", labelWeight = "medium", radioLabelWeight = "bold", containerProps, labelProps, helperTextProps, }) => {
113
+ const classes = radioButtonGroupClasses(hasError);
114
+ const sizeClasses = {
115
+ sm: "text-sm",
116
+ base: "text-base",
117
+ lg: "text-lg",
118
+ xl: "text-xl",
119
+ };
120
+ const weightClasses = {
121
+ normal: "font-normal",
122
+ medium: "font-medium",
123
+ bold: "font-bold",
124
+ };
125
+ return (jsxRuntime.jsxs("div", { ...containerProps, className: `${classes.containerStyle} ${className}`, children: [label && (jsxRuntime.jsx("label", { ...labelProps, className: `${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`, children: label })), jsxRuntime.jsx("div", { className: `flex gap-4 ${direction === "col" ? "flex-col" : "flex-row"}`, children: options.map((option) => (jsxRuntime.jsx(RadioButton, { name: name, value: option.value, label: option.label, checked: value === option.value, onChange: (val) => onChange?.(val), labelSize: labelSize, labelWeight: radioLabelWeight, disabled: option.disabled }, option.value))) }), (errorText || helperText) && (jsxRuntime.jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText }))] }));
126
+ };
127
+
65
128
  const textAreaClasses = (hasError, fullWidth) => {
66
129
  const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
67
130
  const borderClass = hasError ? "mlz-error-border" : "border-primary-400";
@@ -145,36 +208,7 @@ const toastClasses$1 = (variant) => {
145
208
  const Toast = ({ title, description, variant = "info", onClose, }) => {
146
209
  const classes = toastClasses$1(variant);
147
210
  const IconComponent = classes.iconComponent;
148
- return (jsxRuntime.jsxs("div", { className: [
149
- "flex items-start",
150
- "w-[400px] min-h-[88px]",
151
- "rounded-lg",
152
- "border border-solid",
153
- "p-4",
154
- "gap-4",
155
- "shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]",
156
- classes.bg,
157
- classes.border,
158
- ].join(" "), children: [jsxRuntime.jsx("div", { className: [
159
- "flex items-center justify-center",
160
- "w-10 h-10",
161
- "rounded-lg",
162
- "p-2",
163
- "flex-none",
164
- classes.iconBg,
165
- ].join(" "), children: jsxRuntime.jsx("div", { className: classes.icon, children: jsxRuntime.jsx(IconComponent, {}) }) }), jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col gap-2", children: [jsxRuntime.jsx("div", { className: [
166
- "font-bold",
167
- "text-[20px]",
168
- "leading-[100%]",
169
- "tracking-normal",
170
- classes.text,
171
- ].join(" "), children: title }), description && (jsxRuntime.jsx("div", { className: [
172
- "font-normal",
173
- "text-[18px]",
174
- "leading-[100%]",
175
- "tracking-normal",
176
- classes.text,
177
- ].join(" "), children: description }))] }), onClose && (jsxRuntime.jsx("button", { type: "button", onClick: onClose, className: "text-gray-400 hover:text-gray-600", "aria-label": "Cerrar", children: "\u00D7" }))] }));
211
+ return (jsxRuntime.jsxs("div", { className: `mlz-toast-container ${classes.bg} ${classes.border}`, children: [jsxRuntime.jsx("div", { className: `mlz-toast-icon-container ${classes.iconBg}`, children: jsxRuntime.jsx("div", { className: classes.icon, children: jsxRuntime.jsx(IconComponent, {}) }) }), jsxRuntime.jsxs("div", { className: "mlz-toast-content", children: [jsxRuntime.jsx("div", { className: `mlz-toast-title ${classes.text}`, children: title }), description && (jsxRuntime.jsx("div", { className: `mlz-toast-description ${classes.text}`, children: description }))] }), onClose && (jsxRuntime.jsx("button", { type: "button", onClick: onClose, className: "mlz-toast-close", "aria-label": "Cerrar", children: "\u00D7" }))] }));
178
212
  };
179
213
 
180
214
  const ToastContext = react.createContext(undefined);
@@ -222,35 +256,35 @@ const ToastProvider = ({ children, position = "top-right", }) => {
222
256
  const toastClasses = (variant) => {
223
257
  const variants = {
224
258
  success: {
225
- bg: "bg-[#EAF9EF]",
226
- border: "border-[var(--mlz-semantic-success)]",
227
- icon: "text-[var(--mlz-semantic-success)]",
228
- text: "text-[var(--mlz-semantic-success)]",
229
- iconBg: "bg-[#C5F5D5]",
259
+ bg: "mlz-toast-success-bg",
260
+ border: "mlz-toast-success-border",
261
+ icon: "mlz-toast-success-text",
262
+ text: "mlz-toast-success-text",
263
+ iconBg: "mlz-toast-success-icon-bg",
230
264
  iconComponent: CheckCircleIcon,
231
265
  },
232
266
  info: {
233
- bg: "bg-blue-50",
234
- border: "border-[#0058CC]",
235
- icon: "text-[#0058CC]",
236
- text: "text-[#0058CC]",
237
- iconBg: "bg-blue-100",
267
+ bg: "mlz-toast-info-bg",
268
+ border: "mlz-toast-info-border",
269
+ icon: "mlz-toast-info-text",
270
+ text: "mlz-toast-info-text",
271
+ iconBg: "mlz-toast-info-icon-bg",
238
272
  iconComponent: InfoCircleIcon,
239
273
  },
240
274
  warning: {
241
- bg: "bg-yellow-50",
242
- border: "border-[#C49E0A]",
243
- icon: "text-[#C49E0A]",
244
- text: "text-[#C49E0A]",
245
- iconBg: "bg-yellow-100",
275
+ bg: "mlz-toast-warning-bg",
276
+ border: "mlz-toast-warning-border",
277
+ icon: "mlz-toast-warning-text",
278
+ text: "mlz-toast-warning-text",
279
+ iconBg: "mlz-toast-warning-icon-bg",
246
280
  iconComponent: WarningTriangleIcon,
247
281
  },
248
282
  error: {
249
- bg: "bg-red-50",
250
- border: "border-[#EF284C]",
251
- icon: "text-[#EF284C]",
252
- text: "text-[#EF284C]",
253
- iconBg: "bg-red-100",
283
+ bg: "mlz-toast-error-bg",
284
+ border: "mlz-toast-error-border",
285
+ icon: "mlz-toast-error-text",
286
+ text: "mlz-toast-error-text",
287
+ iconBg: "mlz-toast-error-icon-bg",
254
288
  iconComponent: ErrorCircleIcon,
255
289
  },
256
290
  };
@@ -259,36 +293,7 @@ const toastClasses = (variant) => {
259
293
  const CustomToast = ({ t, title, description, variant = "info" }) => {
260
294
  const classes = toastClasses(variant);
261
295
  const IconComponent = classes.iconComponent;
262
- return (jsxRuntime.jsxs("div", { className: [
263
- "flex items-start",
264
- "w-[400px] min-h-[88px]",
265
- "rounded-lg",
266
- "border border-solid",
267
- "p-4",
268
- "gap-4",
269
- "shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]",
270
- classes.bg,
271
- classes.border,
272
- ].join(" "), children: [jsxRuntime.jsx("div", { className: [
273
- "flex items-center justify-center",
274
- "w-10 h-10",
275
- "rounded-lg",
276
- "p-2",
277
- "flex-none",
278
- classes.iconBg,
279
- ].join(" "), children: jsxRuntime.jsx("div", { className: classes.icon, children: jsxRuntime.jsx(IconComponent, {}) }) }), jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col gap-2", children: [jsxRuntime.jsx("div", { className: [
280
- "font-bold",
281
- "text-[20px]",
282
- "leading-[100%]",
283
- "tracking-normal",
284
- classes.text,
285
- ].join(" "), children: title }), description && (jsxRuntime.jsx("div", { className: [
286
- "font-normal",
287
- "text-[18px]",
288
- "leading-[100%]",
289
- "tracking-normal",
290
- classes.text,
291
- ].join(" "), children: description }))] }), jsxRuntime.jsx("button", { type: "button", onClick: () => toast.dismiss(t.id), className: "text-gray-400 hover:text-gray-600", "aria-label": "Cerrar", children: "\u00D7" })] }));
296
+ return (jsxRuntime.jsxs("div", { className: `mlz-toast-container ${classes.bg} ${classes.border}`, children: [jsxRuntime.jsx("div", { className: `mlz-toast-icon-container ${classes.iconBg}`, children: jsxRuntime.jsx("div", { className: classes.icon, children: jsxRuntime.jsx(IconComponent, {}) }) }), jsxRuntime.jsxs("div", { className: "mlz-toast-content", children: [jsxRuntime.jsx("div", { className: `mlz-toast-title ${classes.text}`, children: title }), description && (jsxRuntime.jsx("div", { className: `mlz-toast-description ${classes.text}`, children: description }))] }), jsxRuntime.jsx("button", { type: "button", onClick: () => toast.dismiss(t.id), className: "mlz-toast-close", "aria-label": "Cerrar", children: "\u00D7" })] }));
292
297
  };
293
298
  const showToast = ({ title, description, variant = "info", duration = 5000, }) => {
294
299
  return toast.custom((t) => (jsxRuntime.jsx(CustomToast, { t: t, title: title, description: description, variant: variant })), {
@@ -305,69 +310,6 @@ function UserCard({ name, email, changeUser, editUser }) {
305
310
  return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("h2", { children: name }), jsxRuntime.jsx("p", { children: email }), jsxRuntime.jsx("button", { type: "button", onClick: changeUser, children: "Change User" }), jsxRuntime.jsx("button", { type: "button", onClick: editUser, children: "Edit User" })] }));
306
311
  }
307
312
 
308
- const radioButtonClasses = (hasError) => {
309
- return {
310
- containerStyle: "flex items-center",
311
- inputStyle: [
312
- "w-6 h-6",
313
- "text-primary-600",
314
- "bg-gray-100",
315
- "border-gray-300",
316
- "focus:ring-0",
317
- "focus:outline-none",
318
- "flex-none",
319
- "order-0",
320
- "flex-grow-0",
321
- "checked:bg-primary-600",
322
- "checked:border-primary-600",
323
- "rounded-full",
324
- "cursor-pointer",
325
- "disabled:opacity-50 disabled:cursor-not-allowed",
326
- ].join(" "),
327
- };
328
- };
329
- const RadioButton = ({ name, value, label, checked, onChange, className = "", labelSize = "base", labelWeight = "medium", disabled = false, }) => {
330
- const classes = radioButtonClasses();
331
- const sizeClasses = {
332
- sm: "text-sm",
333
- base: "text-base",
334
- lg: "text-lg",
335
- xl: "text-xl",
336
- };
337
- const weightClasses = {
338
- normal: "font-normal",
339
- medium: "font-medium",
340
- bold: "font-bold",
341
- };
342
- return (jsxRuntime.jsxs("div", { className: `${classes.containerStyle} ${className}`, children: [jsxRuntime.jsx("input", { type: "radio", id: `${name}-${value}`, name: name, value: value, checked: checked, onChange: () => onChange(value), disabled: disabled, className: classes.inputStyle, style: {
343
- accentColor: "#236999",
344
- } }), jsxRuntime.jsx("label", { htmlFor: `${name}-${value}`, className: `ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${disabled ? "opacity-50 cursor-not-allowed" : ""}`, children: label })] }));
345
- };
346
- const radioButtonGroupClasses = (hasError) => {
347
- const labelColorClass = hasError ? "mlz-error-color" : "text-primary-600";
348
- const textColorClass = hasError ? "mlz-error-color" : "text-primary-600";
349
- return {
350
- containerStyle: "flex flex-col gap-2",
351
- labelStyle: `mlz-label-textarea block ${labelColorClass}`,
352
- helperTextStyle: `mt-1 text-base ${textColorClass}`,
353
- };
354
- };
355
- const RadioButtonGroup = ({ name, label, options, value, onChange, hasError = false, errorText, helperText, className = "", direction = "row", labelSize = "base", labelWeight = "medium", radioLabelWeight = "bold", containerProps, labelProps, helperTextProps, }) => {
356
- const classes = radioButtonGroupClasses(hasError);
357
- const sizeClasses = {
358
- sm: "text-sm",
359
- base: "text-base",
360
- lg: "text-lg",
361
- xl: "text-xl",
362
- };
363
- const weightClasses = {
364
- normal: "font-normal",
365
- medium: "font-medium",
366
- bold: "font-bold",
367
- };
368
- return (jsxRuntime.jsxs("div", { ...containerProps, className: `${classes.containerStyle} ${className}`, children: [label && (jsxRuntime.jsx("label", { ...labelProps, className: `${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`, children: label })), jsxRuntime.jsx("div", { className: `flex gap-4 ${direction === "col" ? "flex-col" : "flex-row"}`, children: options.map((option) => (jsxRuntime.jsx(RadioButton, { name: name, value: option.value, label: option.label, checked: value === option.value, onChange: (val) => onChange?.(val), labelSize: labelSize, labelWeight: radioLabelWeight, disabled: option.disabled }, option.value))) }), (errorText || helperText) && (jsxRuntime.jsx("p", { ...helperTextProps, className: classes.helperTextStyle, children: errorText ? errorText : helperText }))] }));
369
- };
370
-
371
313
  Object.defineProperty(exports, "Toaster", {
372
314
  enumerable: true,
373
315
  get: function () { return toast.Toaster; }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/components/Icons/Check.tsx","../src/components/Input/Input.tsx","../src/components/TextArea/TextArea.tsx","../src/components/Icons/CheckCircle.tsx","../src/components/Icons/ErrorCircle.tsx","../src/components/Icons/InfoCircle.tsx","../src/components/Icons/WarningTriangle.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/Toast/toastHelpers.tsx","../src/components/UserCard/UserCard.tsx","../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Contenido del botón\n */\n children: React.ReactNode;\n /**\n * Variante del botón\n */\n variant?: 'primary' | 'secondary' | 'outline-solid' | 'ghost';\n /**\n * Tamaño del botón\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst buttonVariants = {\n primary: 'mlz-btn-primary',\n secondary: 'mlz-btn-secondary', \n outline: 'border-2 border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent',\n ghost: 'text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent'\n};\n\nconst buttonSizes = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-6 py-3 text-lg'\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = 'primary',\n size = 'md',\n disabled = false,\n onClick,\n type = 'button',\n className = '',\n ...props\n}) => {\n const baseClasses = 'inline-flex items-center justify-center font-medium rounded-md transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed';\n \n const variantClasses = buttonVariants[variant as keyof typeof buttonVariants];\n const sizeClasses = buttonSizes[size as keyof typeof buttonSizes];\n \n const classes = `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`.trim();\n\n return (\n <button\n type={type}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","export const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"12\"\n\t\theight=\"10\"\n\t\tviewBox=\"0 0 12 10\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" fill=\"#2ABB5B\" />\n\t</svg>\n);\n","\"use client\";\n\nimport { CheckIcon } from \"../Icons/Check\";\n\nexport interface InputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n\tcheckedIcon?: React.ReactNode;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst inputClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative \" + (fullWidth ? \" w-full\" : \"\"),\n\t \n\t\tlabelStyle: hasError\n\t\t\t? \"block text-base font-bold text-semantic-error-600\"\n\t\t\t: \"block text-base font-bold text-primary-600\",\n\t\tinputStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600 h-12\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\thasError\n\t\t\t\t? \"border-semantic-error-600 placeholder:text-semantic-error-600 focus:border-semantic-error-600 focus:ring-semantic-error-600 active:border-semantic-error-600\"\n\t\t\t\t: \"border-primary-400 placeholder:text-primary-400 focus:border-primary-600 focus:ring-primary-600 active:border-primary-600\",\n\t\t].join(\" \"),\n\t\thelperTextStyle: hasError\n\t\t\t? \"mt-1 text-base text-semantic-error-600\"\n\t\t\t: \"mt-1 text-base text-primary-600\",\n\t};\n};\n\nexport const Input: React.FC<InputProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tvalue, \n\tlabel,\n\tplaceholder,\n\tfullWidth,\n\tcheckedIcon,\n\tautoComplete, \n\tclassName, \n\t...props\n}) => {\n\tconst isError = Boolean(errorText) || hasError;\n\tconst classes = inputClasses(isError, fullWidth);\n\t\n\tconst finalClassName = className \n\t\t? `${classes.inputStyle} ${className}` \n\t\t: classes.inputStyle;\n\t\n\t// Only pass value prop if it's explicitly provided\n\tconst inputProps = value !== undefined \n\t\t? { value, ...props }\n\t\t: props;\n\t\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<input\n\t\t\t\t{...inputProps}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tautoComplete={autoComplete} \n\t\t\t\tclassName={finalClassName} \n\t\t\t/>\n\t\t\t{checkedIcon && (\n\t\t\t\t<div className=\"absolute right-4 top-1/2 -translate-y-1/2\">\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};","\"use client\";\nexport interface TextAreaProps\n\textends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst textAreaClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst borderClass = hasError ? \"mlz-error-border\" : \"border-primary-400\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst focusBorderClass = hasError ? \"focus:border-semantic-error-600\" : \"focus:border-primary-600\";\n\tconst focusRingClass = hasError ? \"focus:ring-semantic-error-600\" : \"focus:ring-primary-600\";\n\tconst activeBorderClass = hasError ? \"active:border-semantic-error-600\" : \"active:border-primary-600\";\n\tconst placeholderClass = hasError ? \"placeholder:text-semantic-error-600\" : \"placeholder:text-primary-400\";\n\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative gap-1\" + (fullWidth ? \" w-full\" : \"\"),\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\ttextAreaStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\t\"resize-y\",\n\t\t\t\"min-w-[498px] min-h-[123px]\",\n\t\t\tborderClass,\n\t\t\tplaceholderClass,\n\t\t\tfocusBorderClass,\n\t\t\tfocusRingClass,\n\t\t\tactiveBorderClass,\n\t\t].join(\" \"),\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const TextArea: React.FC<TextAreaProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tlabel,\n\tplaceholder,\n\tvalue = '',\n\tfullWidth,\n\t...props\n}) => {\n\tconst classes = textAreaClasses(hasError, fullWidth);\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<textarea\n\t\t\t\t{...props}\n\t\t\t\tvalue={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tclassName={classes.textAreaStyle}\n\t\t\t/>\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};\n\n","export const CheckCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M8.6 14.6L15.65 7.55L14.25 6.15L8.6 11.8L5.75 8.95L4.35 10.35L8.6 14.6ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const ErrorCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"currentColor\" />\n\t\t<path\n\t\t\td=\"M7 7L13 13M13 7L7 13\"\n\t\t\tstroke=\"white\"\n\t\t\tstrokeWidth=\"2\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\n","export const InfoCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M10 15C10.2833 15 10.5208 14.9042 10.7125 14.7125C10.9042 14.5208 11 14.2833 11 14C11 13.7167 10.9042 13.4792 10.7125 13.2875C10.5208 13.0958 10.2833 13 10 13C9.71667 13 9.47917 13.0958 9.2875 13.2875C9.09583 13.4792 9 13.7167 9 14C9 14.2833 9.09583 14.5208 9.2875 14.7125C9.47917 14.9042 9.71667 15 10 15ZM9 11H11V5H9V11ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const WarningTriangleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"22\"\n\t\theight=\"19\"\n\t\tviewBox=\"0 0 22 19\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M0 19L11 0L22 19H0ZM3.45 17H18.55L11 4L3.45 17ZM11 16C11.2833 16 11.5208 15.9042 11.7125 15.7125C11.9042 15.5208 12 15.2833 12 15C12 14.7167 11.9042 14.4792 11.7125 14.2875C11.5208 14.0958 11.2833 14 11 14C10.7167 14 10.4792 14.0958 10.2875 14.2875C10.0958 14.4792 10 14.7167 10 15C10 15.2833 10.0958 15.5208 10.2875 15.7125C10.4792 15.9042 10.7167 16 11 16ZM10 13H12V8H10V13Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","\"use client\";\nimport React from \"react\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastProps {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tonClose?: () => void;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nexport const Toast: React.FC<ToastProps> = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tonClose,\n}) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\n\t\t\t\t\"flex items-start\",\n\t\t\t\t\"w-[400px] min-h-[88px]\",\n\t\t\t\t\"rounded-lg\",\n\t\t\t\t\"border border-solid\",\n\t\t\t\t\"p-4\",\n\t\t\t\t\"gap-4\",\n\t\t\t\t\"shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]\",\n\t\t\t\tclasses.bg,\n\t\t\t\tclasses.border,\n\t\t\t].join(\" \")}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={[\n\t\t\t\t\t\"flex items-center justify-center\",\n\t\t\t\t\t\"w-10 h-10\",\n\t\t\t\t\t\"rounded-lg\",\n\t\t\t\t\t\"p-2\",\n\t\t\t\t\t\"flex-none\",\n\t\t\t\t\tclasses.iconBg,\n\t\t\t\t].join(\" \")}\n\t\t\t>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex-1 flex flex-col gap-2\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\"font-bold\",\n\t\t\t\t\t\t\"text-[20px]\",\n\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t].join(\" \")}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\"font-normal\",\n\t\t\t\t\t\t\t\"text-[18px]\",\n\t\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{onClose && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tclassName=\"text-gray-400 hover:text-gray-600\"\n\t\t\t\t\taria-label=\"Cerrar\"\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","\"use client\";\n\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { Toast, type ToastProps, type ToastVariant } from \"./Toast\";\n\ninterface ToastItem extends Omit<ToastProps, \"onClose\"> {\n\tid: string;\n\tduration?: number;\n}\n\ninterface ToastContextType {\n\ttoasts: ToastItem[];\n\tshowToast: (toast: Omit<ToastItem, \"id\">) => string;\n\tremoveToast: (id: string) => void;\n\tclearToasts: () => void;\n}\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\n\nexport const useToast = () => {\n\tconst context = useContext(ToastContext);\n\tif (!context) {\n\t\tthrow new Error(\"useToast must be used within a ToastProvider\");\n\t}\n\treturn context;\n};\n\ninterface ToastProviderProps {\n\tchildren: React.ReactNode;\n\tposition?:\n\t\t| \"top-right\"\n\t\t| \"top-left\"\n\t\t| \"bottom-right\"\n\t\t| \"bottom-left\"\n\t\t| \"top-center\"\n\t\t| \"bottom-center\";\n}\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n\tchildren,\n\tposition = \"top-right\",\n}) => {\n\tconst [toasts, setToasts] = useState<ToastItem[]>([]);\n\n\tconst showToast = useCallback((toast: Omit<ToastItem, \"id\">) => {\n\t\tconst id = Math.random().toString(36).substring(2, 9);\n\t\tconst newToast: ToastItem = {\n\t\t\t...toast,\n\t\t\tid,\n\t\t\tduration: toast.duration ?? 5000,\n\t\t};\n\n\t\tsetToasts((prev) => [...prev, newToast]);\n\n\t\tif (newToast.duration && newToast.duration > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t\t\t}, newToast.duration);\n\t\t}\n\n\t\treturn id;\n\t}, []);\n\n\tconst removeToast = useCallback((id: string) => {\n\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t}, []);\n\n\tconst clearToasts = useCallback(() => {\n\t\tsetToasts([]);\n\t}, []);\n\n\tconst positionClasses = {\n\t\t\"top-right\": \"top-4 right-4\",\n\t\t\"top-left\": \"top-4 left-4\",\n\t\t\"bottom-right\": \"bottom-4 right-4\",\n\t\t\"bottom-left\": \"bottom-4 left-4\",\n\t\t\"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n\t\t\"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n\t};\n\n\treturn (\n\t\t<ToastContext.Provider\n\t\t\tvalue={{ toasts, showToast, removeToast, clearToasts }}\n\t\t>\n\t\t\t{children}\n\t\t\t{toasts.length > 0 && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`fixed z-50 flex flex-col gap-2 ${positionClasses[position]}`}\n\t\t\t\t>\n\t\t\t\t\t{toasts.map((toast) => (\n\t\t\t\t\t\t<Toast\n\t\t\t\t\t\t\tkey={toast.id}\n\t\t\t\t\t\t\t{...toast}\n\t\t\t\t\t\t\tonClose={() => removeToast(toast.id)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</ToastContext.Provider>\n\t);\n};\n","\"use client\";\nimport React from \"react\";\nimport toast, { Toast as ToastType } from \"react-hot-toast\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastOptions {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tduration?: number;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"bg-[#EAF9EF]\",\n\t\t\tborder: \"border-[var(--mlz-semantic-success)]\",\n\t\t\ticon: \"text-[var(--mlz-semantic-success)]\",\n\t\t\ttext: \"text-[var(--mlz-semantic-success)]\",\n\t\t\ticonBg: \"bg-[#C5F5D5]\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"bg-blue-50\",\n\t\t\tborder: \"border-[#0058CC]\",\n\t\t\ticon: \"text-[#0058CC]\",\n\t\t\ttext: \"text-[#0058CC]\",\n\t\t\ticonBg: \"bg-blue-100\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"bg-yellow-50\",\n\t\t\tborder: \"border-[#C49E0A]\",\n\t\t\ticon: \"text-[#C49E0A]\",\n\t\t\ttext: \"text-[#C49E0A]\",\n\t\t\ticonBg: \"bg-yellow-100\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"bg-red-50\",\n\t\t\tborder: \"border-[#EF284C]\",\n\t\t\ticon: \"text-[#EF284C]\",\n\t\t\ttext: \"text-[#EF284C]\",\n\t\t\ticonBg: \"bg-red-100\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nconst CustomToast: React.FC<{\n\tt: ToastType;\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n}> = ({ t, title, description, variant = \"info\" }) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[\n\t\t\t\t\"flex items-start\",\n\t\t\t\t\"w-[400px] min-h-[88px]\",\n\t\t\t\t\"rounded-lg\",\n\t\t\t\t\"border border-solid\",\n\t\t\t\t\"p-4\",\n\t\t\t\t\"gap-4\",\n\t\t\t\t\"shadow-[0px_3px_6px_0px_rgba(0,0,0,0.16)]\",\n\t\t\t\tclasses.bg,\n\t\t\t\tclasses.border,\n\t\t\t].join(\" \")}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={[\n\t\t\t\t\t\"flex items-center justify-center\",\n\t\t\t\t\t\"w-10 h-10\",\n\t\t\t\t\t\"rounded-lg\",\n\t\t\t\t\t\"p-2\",\n\t\t\t\t\t\"flex-none\",\n\t\t\t\t\tclasses.iconBg,\n\t\t\t\t].join(\" \")}\n\t\t\t>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex-1 flex flex-col gap-2\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\"font-bold\",\n\t\t\t\t\t\t\"text-[20px]\",\n\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t].join(\" \")}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\"font-normal\",\n\t\t\t\t\t\t\t\"text-[18px]\",\n\t\t\t\t\t\t\t\"leading-[100%]\",\n\t\t\t\t\t\t\t\"tracking-normal\",\n\t\t\t\t\t\t\tclasses.text,\n\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => toast.dismiss(t.id)}\n\t\t\t\tclassName=\"text-gray-400 hover:text-gray-600\"\n\t\t\t\taria-label=\"Cerrar\"\n\t\t\t>\n\t\t\t\t×\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport const showToast = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tduration = 5000,\n}: ToastOptions): string => {\n\treturn toast.custom(\n\t\t(t) => (\n\t\t\t<CustomToast\n\t\t\t\tt={t}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t),\n\t\t{\n\t\t\tduration,\n\t\t\tposition: \"top-right\",\n\t\t},\n\t);\n};\n\nexport const toastSuccess = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"success\", duration });\n\nexport const toastInfo = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"info\", duration });\n\nexport const toastWarning = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"warning\", duration });\n\nexport const toastError = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"error\", duration });\n\nexport { Toaster, toast } from \"react-hot-toast\";\n","\"use client\";\nexport interface UserCardProps {\n\tname: string;\n\temail: string;\n\tchangeUser: () => void;\n\teditUser: () => void;\n}\n\nexport function UserCard({ name, email, changeUser, editUser }: UserCardProps) {\n\treturn (\n\t\t<div>\n\t\t\t<h2>{name}</h2>\n\t\t\t<p>{email}</p>\n\t\t\t<button type=\"button\" onClick={changeUser}>\n\t\t\t\tChange User\n\t\t\t</button>\n\t\t\t<button type=\"button\" onClick={editUser}>\n\t\t\t\tEdit User\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nexport interface RadioButtonOption {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n}\n\nexport interface RadioButtonProps {\n\tname: string;\n\tvalue: string;\n\tlabel: string;\n\tchecked: boolean;\n\tonChange: (value: string) => void;\n\tclassName?: string;\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tdisabled?: boolean;\n}\n\nconst radioButtonClasses = (hasError?: boolean) => {\n\treturn {\n\t\tcontainerStyle: \"flex items-center\",\n\t\tinputStyle: [\n\t\t\t\"w-6 h-6\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"bg-gray-100\",\n\t\t\t\"border-gray-300\",\n\t\t\t\"focus:ring-0\",\n\t\t\t\"focus:outline-none\",\n\t\t\t\"flex-none\",\n\t\t\t\"order-0\",\n\t\t\t\"flex-grow-0\",\n\t\t\t\"checked:bg-primary-600\",\n\t\t\t\"checked:border-primary-600\",\n\t\t\t\"rounded-full\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"disabled:opacity-50 disabled:cursor-not-allowed\",\n\t\t].join(\" \"),\n\t};\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = ({\n\tname,\n\tvalue,\n\tlabel,\n\tchecked,\n\tonChange,\n\tclassName = \"\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tdisabled = false,\n}) => {\n\tconst classes = radioButtonClasses();\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div className={`${classes.containerStyle} ${className}`}>\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tid={`${name}-${value}`}\n\t\t\t\tname={name}\n\t\t\t\tvalue={value}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChange={() => onChange(value)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={classes.inputStyle}\n\t\t\t\tstyle={{\n\t\t\t\t\taccentColor: \"#236999\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<label\n\t\t\t\thtmlFor={`${name}-${value}`}\n\t\t\t\tclassName={`ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${\n\t\t\t\t\tdisabled ? \"opacity-50 cursor-not-allowed\" : \"\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t</div>\n\t);\n};\n\nexport interface RadioButtonGroupProps {\n\tname: string;\n\tlabel?: string;\n\toptions: RadioButtonOption[];\n\tvalue?: string;\n\tonChange?: (value: string) => void;\n\thasError?: boolean;\n\terrorText?: string;\n\thelperText?: string;\n\tclassName?: string;\n\tdirection?: \"row\" | \"col\";\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tradioLabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tcontainerProps?: React.HTMLAttributes<HTMLDivElement>;\n\tlabelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;\n\thelperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;\n}\n\nconst radioButtonGroupClasses = (hasError?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\n\treturn {\n\t\tcontainerStyle: \"flex flex-col gap-2\",\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n\tname,\n\tlabel,\n\toptions,\n\tvalue,\n\tonChange,\n\thasError = false,\n\terrorText,\n\thelperText,\n\tclassName = \"\",\n\tdirection = \"row\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tradioLabelWeight = \"bold\",\n\tcontainerProps,\n\tlabelProps,\n\thelperTextProps,\n}) => {\n\tconst classes = radioButtonGroupClasses(hasError);\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div {...containerProps} className={`${classes.containerStyle} ${className}`}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\t{...labelProps}\n\t\t\t\t\tclassName={`${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</label>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={`flex gap-4 ${\n\t\t\t\t\tdirection === \"col\" ? \"flex-col\" : \"flex-row\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\tlabel={option.label}\n\t\t\t\t\t\tchecked={value === option.value}\n\t\t\t\t\t\tonChange={(val) => onChange?.(val)}\n\t\t\t\t\t\tlabelSize={labelSize}\n\t\t\t\t\t\tlabelWeight={radioLabelWeight}\n\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{(errorText || helperText) && (\n\t\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\n"],"names":["_jsx","_jsxs","toastClasses","createContext","useContext","useState","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/Button/Button.tsx","../src/components/Icons/Check.tsx","../src/components/Input/Input.tsx","../src/components/RadioButton/RadioButton.tsx","../src/components/TextArea/TextArea.tsx","../src/components/Icons/CheckCircle.tsx","../src/components/Icons/ErrorCircle.tsx","../src/components/Icons/InfoCircle.tsx","../src/components/Icons/WarningTriangle.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/Toast/toastHelpers.tsx","../src/components/UserCard/UserCard.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Contenido del botón\n */\n children: React.ReactNode;\n /**\n * Variante del botón\n */\n variant?: 'primary' | 'secondary' | 'outline-solid' | 'ghost';\n /**\n * Tamaño del botón\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst buttonVariants = {\n primary: 'mlz-btn-primary',\n secondary: 'mlz-btn-secondary', \n outline: 'border-2 border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent',\n ghost: 'text-blue-600 hover:bg-blue-50 focus:ring-blue-500 bg-transparent'\n};\n\nconst buttonSizes = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-6 py-3 text-lg'\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = 'primary',\n size = 'md',\n disabled = false,\n onClick,\n type = 'button',\n className = '',\n ...props\n}) => {\n const baseClasses = 'inline-flex items-center justify-center font-medium rounded-md transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed';\n \n const variantClasses = buttonVariants[variant as keyof typeof buttonVariants];\n const sizeClasses = buttonSizes[size as keyof typeof buttonSizes];\n \n const classes = `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`.trim();\n\n return (\n <button\n type={type}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","export const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"12\"\n\t\theight=\"10\"\n\t\tviewBox=\"0 0 12 10\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" fill=\"#2ABB5B\" />\n\t</svg>\n);\n","\"use client\";\n\nimport { CheckIcon } from \"../Icons/Check\";\n\nexport interface InputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n\tcheckedIcon?: React.ReactNode;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst inputClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative \" + (fullWidth ? \" w-full\" : \"\"),\n\t \n\t\tlabelStyle: hasError\n\t\t\t? \"block text-base font-bold text-semantic-error-600\"\n\t\t\t: \"block text-base font-bold text-primary-600\",\n\t\tinputStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600 h-12\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\thasError\n\t\t\t\t? \"border-semantic-error-600 placeholder:text-semantic-error-600 focus:border-semantic-error-600 focus:ring-semantic-error-600 active:border-semantic-error-600\"\n\t\t\t\t: \"border-primary-400 placeholder:text-primary-400 focus:border-primary-600 focus:ring-primary-600 active:border-primary-600\",\n\t\t].join(\" \"),\n\t\thelperTextStyle: hasError\n\t\t\t? \"mt-1 text-base text-semantic-error-600\"\n\t\t\t: \"mt-1 text-base text-primary-600\",\n\t};\n};\n\nexport const Input: React.FC<InputProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tvalue, \n\tlabel,\n\tplaceholder,\n\tfullWidth,\n\tcheckedIcon,\n\tautoComplete, \n\tclassName, \n\t...props\n}) => {\n\tconst isError = Boolean(errorText) || hasError;\n\tconst classes = inputClasses(isError, fullWidth);\n\t\n\tconst finalClassName = className \n\t\t? `${classes.inputStyle} ${className}` \n\t\t: classes.inputStyle;\n\t\n\t// Only pass value prop if it's explicitly provided\n\tconst inputProps = value !== undefined \n\t\t? { value, ...props }\n\t\t: props;\n\t\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<input\n\t\t\t\t{...inputProps}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tautoComplete={autoComplete} \n\t\t\t\tclassName={finalClassName} \n\t\t\t/>\n\t\t\t{checkedIcon && (\n\t\t\t\t<div className=\"absolute right-4 top-1/2 -translate-y-1/2\">\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};","\"use client\";\n\nexport interface RadioButtonOption {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n}\n\nexport interface RadioButtonProps {\n\tname: string;\n\tvalue: string;\n\tlabel: string;\n\tchecked: boolean;\n\tonChange: (value: string) => void;\n\tclassName?: string;\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tdisabled?: boolean;\n}\n\nconst radioButtonClasses = (hasError?: boolean) => {\n\treturn {\n\t\tcontainerStyle: \"flex items-center\",\n\t\tinputStyle: [\n\t\t\t\"w-6 h-6\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"bg-gray-100\",\n\t\t\t\"border-gray-300\",\n\t\t\t\"focus:ring-0\",\n\t\t\t\"focus:outline-none\",\n\t\t\t\"flex-none\",\n\t\t\t\"order-0\",\n\t\t\t\"flex-grow-0\",\n\t\t\t\"checked:bg-primary-600\",\n\t\t\t\"checked:border-primary-600\",\n\t\t\t\"rounded-full\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"disabled:opacity-50 disabled:cursor-not-allowed\",\n\t\t].join(\" \"),\n\t};\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = ({\n\tname,\n\tvalue,\n\tlabel,\n\tchecked,\n\tonChange,\n\tclassName = \"\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tdisabled = false,\n}) => {\n\tconst classes = radioButtonClasses();\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div className={`${classes.containerStyle} ${className}`}>\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tid={`${name}-${value}`}\n\t\t\t\tname={name}\n\t\t\t\tvalue={value}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChange={() => onChange(value)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={classes.inputStyle}\n\t\t\t\tstyle={{\n\t\t\t\t\taccentColor: \"#236999\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<label\n\t\t\t\thtmlFor={`${name}-${value}`}\n\t\t\t\tclassName={`ml-2 h-5 ${sizeClasses[labelSize]} ${weightClasses[labelWeight]} leading-5 flex items-center cursor-pointer whitespace-nowrap text-primary-600 ${\n\t\t\t\t\tdisabled ? \"opacity-50 cursor-not-allowed\" : \"\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t</div>\n\t);\n};\n\nexport interface RadioButtonGroupProps {\n\tname: string;\n\tlabel?: string;\n\toptions: RadioButtonOption[];\n\tvalue?: string;\n\tonChange?: (value: string) => void;\n\thasError?: boolean;\n\terrorText?: string;\n\thelperText?: string;\n\tclassName?: string;\n\tdirection?: \"row\" | \"col\";\n\tlabelSize?: \"sm\" | \"base\" | \"lg\" | \"xl\";\n\tlabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tradioLabelWeight?: \"normal\" | \"medium\" | \"bold\";\n\tcontainerProps?: React.HTMLAttributes<HTMLDivElement>;\n\tlabelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;\n\thelperTextProps?: React.HTMLAttributes<HTMLParagraphElement>;\n}\n\nconst radioButtonGroupClasses = (hasError?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\n\treturn {\n\t\tcontainerStyle: \"flex flex-col gap-2\",\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n\tname,\n\tlabel,\n\toptions,\n\tvalue,\n\tonChange,\n\thasError = false,\n\terrorText,\n\thelperText,\n\tclassName = \"\",\n\tdirection = \"row\",\n\tlabelSize = \"base\",\n\tlabelWeight = \"medium\",\n\tradioLabelWeight = \"bold\",\n\tcontainerProps,\n\tlabelProps,\n\thelperTextProps,\n}) => {\n\tconst classes = radioButtonGroupClasses(hasError);\n\n\tconst sizeClasses = {\n\t\tsm: \"text-sm\",\n\t\tbase: \"text-base\",\n\t\tlg: \"text-lg\",\n\t\txl: \"text-xl\",\n\t};\n\n\tconst weightClasses = {\n\t\tnormal: \"font-normal\",\n\t\tmedium: \"font-medium\",\n\t\tbold: \"font-bold\",\n\t};\n\n\treturn (\n\t\t<div {...containerProps} className={`${classes.containerStyle} ${className}`}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\t{...labelProps}\n\t\t\t\t\tclassName={`${classes.labelStyle} ${sizeClasses[labelSize]} ${weightClasses[labelWeight]}`}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</label>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={`flex gap-4 ${\n\t\t\t\t\tdirection === \"col\" ? \"flex-col\" : \"flex-row\"\n\t\t\t\t}`}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<RadioButton\n\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\tlabel={option.label}\n\t\t\t\t\t\tchecked={value === option.value}\n\t\t\t\t\t\tonChange={(val) => onChange?.(val)}\n\t\t\t\t\t\tlabelSize={labelSize}\n\t\t\t\t\t\tlabelWeight={radioLabelWeight}\n\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{(errorText || helperText) && (\n\t\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\n","\"use client\";\nexport interface TextAreaProps\n\textends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\terrorText?: string;\n\thasError?: boolean;\n\thelperText?: string;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tfullWidth?: boolean;\n\tcontainerProps?: ContainerProp;\n\tlabelProps?: LabelProp;\n\thelperTextProps?: HelperTextProp;\n}\n\ninterface ContainerProp extends React.HTMLAttributes<HTMLDivElement> {}\n\ninterface LabelProp extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\ninterface HelperTextProp extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst textAreaClasses = (hasError?: boolean, fullWidth?: boolean) => {\n\tconst labelColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst borderClass = hasError ? \"mlz-error-border\" : \"border-primary-400\";\n\tconst textColorClass = hasError ? \"mlz-error-color\" : \"text-primary-600\";\n\tconst focusBorderClass = hasError ? \"focus:border-semantic-error-600\" : \"focus:border-primary-600\";\n\tconst focusRingClass = hasError ? \"focus:ring-semantic-error-600\" : \"focus:ring-primary-600\";\n\tconst activeBorderClass = hasError ? \"active:border-semantic-error-600\" : \"active:border-primary-600\";\n\tconst placeholderClass = hasError ? \"placeholder:text-semantic-error-600\" : \"placeholder:text-primary-400\";\n\n\treturn {\n\t\tcontainerStyle:\n\t\t\t\"flex flex-col relative gap-1\" + (fullWidth ? \" w-full\" : \"\"),\n\t\tlabelStyle: `mlz-label-textarea block ${labelColorClass}`,\n\t\ttextAreaStyle: [\n\t\t\t\"disabled:bg-primary-100 disabled:cursor-not-allowed disabled:text-primary-300\",\n\t\t\t\"text-primary-600\",\n\t\t\t\"block w-full rounded border px-4 py-2\",\n\t\t\t\"px-4 py-2\",\n\t\t\t\"placeholder:text-base\",\n\t\t\t\"focus:outline-none focus:ring-2\",\n\t\t\t\"active:ring-2\",\n\t\t\t\"resize-y\",\n\t\t\t\"min-w-[498px] min-h-[123px]\",\n\t\t\tborderClass,\n\t\t\tplaceholderClass,\n\t\t\tfocusBorderClass,\n\t\t\tfocusRingClass,\n\t\t\tactiveBorderClass,\n\t\t].join(\" \"),\n\t\thelperTextStyle: `mt-1 text-base ${textColorClass}`,\n\t};\n};\n\nexport const TextArea: React.FC<TextAreaProps> = ({\n\tlabelProps,\n\thelperTextProps,\n\tcontainerProps,\n\terrorText,\n\thelperText,\n\thasError = false,\n\tdisabled,\n\tlabel,\n\tplaceholder,\n\tvalue = '',\n\tfullWidth,\n\t...props\n}) => {\n\tconst classes = textAreaClasses(hasError, fullWidth);\n\treturn (\n\t\t<div {...containerProps} className={classes.containerStyle}>\n\t\t\t<label {...labelProps} className={classes.labelStyle}>\n\t\t\t\t{label}\n\t\t\t</label>\n\t\t\t<textarea\n\t\t\t\t{...props}\n\t\t\t\tvalue={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tclassName={classes.textAreaStyle}\n\t\t\t/>\n\t\t\t<p {...helperTextProps} className={classes.helperTextStyle}>\n\t\t\t\t{errorText ? errorText : helperText}\n\t\t\t</p>\n\t\t</div>\n\t);\n};\n\n","export const CheckCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M8.6 14.6L15.65 7.55L14.25 6.15L8.6 11.8L5.75 8.95L4.35 10.35L8.6 14.6ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const ErrorCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"currentColor\" />\n\t\t<path\n\t\t\td=\"M7 7L13 13M13 7L7 13\"\n\t\t\tstroke=\"white\"\n\t\t\tstrokeWidth=\"2\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\n","export const InfoCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"20\"\n\t\tviewBox=\"0 0 20 20\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M10 15C10.2833 15 10.5208 14.9042 10.7125 14.7125C10.9042 14.5208 11 14.2833 11 14C11 13.7167 10.9042 13.4792 10.7125 13.2875C10.5208 13.0958 10.2833 13 10 13C9.71667 13 9.47917 13.0958 9.2875 13.2875C9.09583 13.4792 9 13.7167 9 14C9 14.2833 9.09583 14.5208 9.2875 14.7125C9.47917 14.9042 9.71667 15 10 15ZM9 11H11V5H9V11ZM10 20C8.61667 20 7.31667 19.7375 6.1 19.2125C4.88333 18.6875 3.825 17.975 2.925 17.075C2.025 16.175 1.3125 15.1167 0.7875 13.9C0.2625 12.6833 0 11.3833 0 10C0 8.61667 0.2625 7.31667 0.7875 6.1C1.3125 4.88333 2.025 3.825 2.925 2.925C3.825 2.025 4.88333 1.3125 6.1 0.7875C7.31667 0.2625 8.61667 0 10 0C11.3833 0 12.6833 0.2625 13.9 0.7875C15.1167 1.3125 16.175 2.025 17.075 2.925C17.975 3.825 18.6875 4.88333 19.2125 6.1C19.7375 7.31667 20 8.61667 20 10C20 11.3833 19.7375 12.6833 19.2125 13.9C18.6875 15.1167 17.975 16.175 17.075 17.075C16.175 17.975 15.1167 18.6875 13.9 19.2125C12.6833 19.7375 11.3833 20 10 20ZM10 18C12.2333 18 14.125 17.225 15.675 15.675C17.225 14.125 18 12.2333 18 10C18 7.76667 17.225 5.875 15.675 4.325C14.125 2.775 12.2333 2 10 2C7.76667 2 5.875 2.775 4.325 4.325C2.775 5.875 2 7.76667 2 10C2 12.2333 2.775 14.125 4.325 15.675C5.875 17.225 7.76667 18 10 18Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","export const WarningTriangleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n\t<svg\n\t\twidth=\"22\"\n\t\theight=\"19\"\n\t\tviewBox=\"0 0 22 19\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M0 19L11 0L22 19H0ZM3.45 17H18.55L11 4L3.45 17ZM11 16C11.2833 16 11.5208 15.9042 11.7125 15.7125C11.9042 15.5208 12 15.2833 12 15C12 14.7167 11.9042 14.4792 11.7125 14.2875C11.5208 14.0958 11.2833 14 11 14C10.7167 14 10.4792 14.0958 10.2875 14.2875C10.0958 14.4792 10 14.7167 10 15C10 15.2833 10.0958 15.5208 10.2875 15.7125C10.4792 15.9042 10.7167 16 11 16ZM10 13H12V8H10V13Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\n","\"use client\";\nimport React from \"react\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastProps {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tonClose?: () => void;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nexport const Toast: React.FC<ToastProps> = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tonClose,\n}) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`mlz-toast-container ${classes.bg} ${classes.border}`}\n\t\t>\n\t\t\t<div className={`mlz-toast-icon-container ${classes.iconBg}`}>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"mlz-toast-content\">\n\t\t\t\t<div className={`mlz-toast-title ${classes.text}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div className={`mlz-toast-description ${classes.text}`}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{onClose && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tclassName=\"mlz-toast-close\"\n\t\t\t\t\taria-label=\"Cerrar\"\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","\"use client\";\n\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { Toast, type ToastProps, type ToastVariant } from \"./Toast\";\n\ninterface ToastItem extends Omit<ToastProps, \"onClose\"> {\n\tid: string;\n\tduration?: number;\n}\n\ninterface ToastContextType {\n\ttoasts: ToastItem[];\n\tshowToast: (toast: Omit<ToastItem, \"id\">) => string;\n\tremoveToast: (id: string) => void;\n\tclearToasts: () => void;\n}\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined);\n\nexport const useToast = () => {\n\tconst context = useContext(ToastContext);\n\tif (!context) {\n\t\tthrow new Error(\"useToast must be used within a ToastProvider\");\n\t}\n\treturn context;\n};\n\ninterface ToastProviderProps {\n\tchildren: React.ReactNode;\n\tposition?:\n\t\t| \"top-right\"\n\t\t| \"top-left\"\n\t\t| \"bottom-right\"\n\t\t| \"bottom-left\"\n\t\t| \"top-center\"\n\t\t| \"bottom-center\";\n}\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n\tchildren,\n\tposition = \"top-right\",\n}) => {\n\tconst [toasts, setToasts] = useState<ToastItem[]>([]);\n\n\tconst showToast = useCallback((toast: Omit<ToastItem, \"id\">) => {\n\t\tconst id = Math.random().toString(36).substring(2, 9);\n\t\tconst newToast: ToastItem = {\n\t\t\t...toast,\n\t\t\tid,\n\t\t\tduration: toast.duration ?? 5000,\n\t\t};\n\n\t\tsetToasts((prev) => [...prev, newToast]);\n\n\t\tif (newToast.duration && newToast.duration > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t\t\t}, newToast.duration);\n\t\t}\n\n\t\treturn id;\n\t}, []);\n\n\tconst removeToast = useCallback((id: string) => {\n\t\tsetToasts((prev) => prev.filter((t) => t.id !== id));\n\t}, []);\n\n\tconst clearToasts = useCallback(() => {\n\t\tsetToasts([]);\n\t}, []);\n\n\tconst positionClasses = {\n\t\t\"top-right\": \"top-4 right-4\",\n\t\t\"top-left\": \"top-4 left-4\",\n\t\t\"bottom-right\": \"bottom-4 right-4\",\n\t\t\"bottom-left\": \"bottom-4 left-4\",\n\t\t\"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n\t\t\"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n\t};\n\n\treturn (\n\t\t<ToastContext.Provider\n\t\t\tvalue={{ toasts, showToast, removeToast, clearToasts }}\n\t\t>\n\t\t\t{children}\n\t\t\t{toasts.length > 0 && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`fixed z-50 flex flex-col gap-2 ${positionClasses[position]}`}\n\t\t\t\t>\n\t\t\t\t\t{toasts.map((toast) => (\n\t\t\t\t\t\t<Toast\n\t\t\t\t\t\t\tkey={toast.id}\n\t\t\t\t\t\t\t{...toast}\n\t\t\t\t\t\t\tonClose={() => removeToast(toast.id)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</ToastContext.Provider>\n\t);\n};\n","\"use client\";\nimport React from \"react\";\nimport toast, { Toast as ToastType } from \"react-hot-toast\";\nimport { CheckCircleIcon } from \"../Icons/CheckCircle\";\nimport { ErrorCircleIcon } from \"../Icons/ErrorCircle\";\nimport { InfoCircleIcon } from \"../Icons/InfoCircle\";\nimport { WarningTriangleIcon } from \"../Icons/WarningTriangle\";\n\nexport type ToastVariant = \"success\" | \"info\" | \"warning\" | \"error\";\n\nexport interface ToastOptions {\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n\tduration?: number;\n}\n\nconst toastClasses = (variant: ToastVariant) => {\n\tconst variants = {\n\t\tsuccess: {\n\t\t\tbg: \"mlz-toast-success-bg\",\n\t\t\tborder: \"mlz-toast-success-border\",\n\t\t\ticon: \"mlz-toast-success-text\",\n\t\t\ttext: \"mlz-toast-success-text\",\n\t\t\ticonBg: \"mlz-toast-success-icon-bg\",\n\t\t\ticonComponent: CheckCircleIcon,\n\t\t},\n\t\tinfo: {\n\t\t\tbg: \"mlz-toast-info-bg\",\n\t\t\tborder: \"mlz-toast-info-border\",\n\t\t\ticon: \"mlz-toast-info-text\",\n\t\t\ttext: \"mlz-toast-info-text\",\n\t\t\ticonBg: \"mlz-toast-info-icon-bg\",\n\t\t\ticonComponent: InfoCircleIcon,\n\t\t},\n\t\twarning: {\n\t\t\tbg: \"mlz-toast-warning-bg\",\n\t\t\tborder: \"mlz-toast-warning-border\",\n\t\t\ticon: \"mlz-toast-warning-text\",\n\t\t\ttext: \"mlz-toast-warning-text\",\n\t\t\ticonBg: \"mlz-toast-warning-icon-bg\",\n\t\t\ticonComponent: WarningTriangleIcon,\n\t\t},\n\t\terror: {\n\t\t\tbg: \"mlz-toast-error-bg\",\n\t\t\tborder: \"mlz-toast-error-border\",\n\t\t\ticon: \"mlz-toast-error-text\",\n\t\t\ttext: \"mlz-toast-error-text\",\n\t\t\ticonBg: \"mlz-toast-error-icon-bg\",\n\t\t\ticonComponent: ErrorCircleIcon,\n\t\t},\n\t};\n\n\treturn variants[variant];\n};\n\nconst CustomToast: React.FC<{\n\tt: ToastType;\n\ttitle: string;\n\tdescription?: string;\n\tvariant?: ToastVariant;\n}> = ({ t, title, description, variant = \"info\" }) => {\n\tconst classes = toastClasses(variant);\n\tconst IconComponent = classes.iconComponent;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`mlz-toast-container ${classes.bg} ${classes.border}`}\n\t\t>\n\t\t\t<div className={`mlz-toast-icon-container ${classes.iconBg}`}>\n\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"mlz-toast-content\">\n\t\t\t\t<div className={`mlz-toast-title ${classes.text}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div className={`mlz-toast-description ${classes.text}`}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => toast.dismiss(t.id)}\n\t\t\t\tclassName=\"mlz-toast-close\"\n\t\t\t\taria-label=\"Cerrar\"\n\t\t\t>\n\t\t\t\t×\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport const showToast = ({\n\ttitle,\n\tdescription,\n\tvariant = \"info\",\n\tduration = 5000,\n}: ToastOptions): string => {\n\treturn toast.custom(\n\t\t(t) => (\n\t\t\t<CustomToast\n\t\t\t\tt={t}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t),\n\t\t{\n\t\t\tduration,\n\t\t\tposition: \"top-right\",\n\t\t},\n\t);\n};\n\nexport const toastSuccess = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"success\", duration });\n\nexport const toastInfo = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"info\", duration });\n\nexport const toastWarning = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"warning\", duration });\n\nexport const toastError = (\n\ttitle: string,\n\tdescription?: string,\n\tduration?: number,\n) => showToast({ title, description, variant: \"error\", duration });\n\nexport { Toaster, toast } from \"react-hot-toast\";\n","\"use client\";\nexport interface UserCardProps {\n\tname: string;\n\temail: string;\n\tchangeUser: () => void;\n\teditUser: () => void;\n}\n\nexport function UserCard({ name, email, changeUser, editUser }: UserCardProps) {\n\treturn (\n\t\t<div>\n\t\t\t<h2>{name}</h2>\n\t\t\t<p>{email}</p>\n\t\t\t<button type=\"button\" onClick={changeUser}>\n\t\t\t\tChange User\n\t\t\t</button>\n\t\t\t<button type=\"button\" onClick={editUser}>\n\t\t\t\tEdit User\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n"],"names":["_jsx","_jsxs","toastClasses","createContext","useContext","useState","useCallback"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer utilities{:root{--mlz-primary-50:#eff6ff;--mlz-primary-100:#e5f0f9;--mlz-primary-200:#bfdbfe;--mlz-primary-300:#94c6e5;--mlz-primary-400:#5ba8d5;--mlz-primary-500:#3b82f6;--mlz-primary-600:#236999;--mlz-primary-700:#1d4ed8;--mlz-primary-800:#1e40af;--mlz-primary-900:#1e3a8a;--mlz-primary-950:#172554;--mlz-semantic-info:#006eff;--mlz-semantic-error-600:#ef284c;--mlz-secondary-50:#f8fafc;--mlz-secondary-100:#f1f5f9;--mlz-secondary-200:#e2e8f0;--mlz-secondary-300:#cbd5e1;--mlz-secondary-400:#94a3b8;--mlz-secondary-500:#64748b;--mlz-secondary-600:#475569;--mlz-secondary-700:#334155;--mlz-secondary-800:#1e293b;--mlz-secondary-900:#0f172a;--mlz-secondary-950:#020617;--mlz-spacing-xs:0.25rem;--mlz-spacing-sm:0.5rem;--mlz-spacing-md:1rem;--mlz-spacing-lg:1.5rem;--mlz-spacing-xl:2rem;--mlz-spacing-2xl:3rem;--mlz-border-radius-sm:0.25rem;--mlz-border-radius-md:0.375rem;--mlz-border-radius-lg:0.5rem;--mlz-border-radius-xl:0.75rem;--mlz-font-size-xs:0.75rem;--mlz-font-size-sm:0.875rem;--mlz-font-size-base:1rem;--mlz-font-size-lg:1.125rem;--mlz-font-size-xl:1.25rem;--mlz-input-border-color:#d1d5db;--mlz-input-label-color:#374151;--mlz-input-helper-color:#6b7280;--mlz-input-height-sm:2rem;--mlz-input-height-md:2.5rem;--mlz-input-height-lg:3rem;--mlz-input-padding-x-sm:0.75rem;--mlz-input-padding-y-sm:0.375rem;--mlz-input-padding-x-md:1rem;--mlz-input-padding-y-md:0.5rem;--mlz-input-padding-x-lg:1.25rem;--mlz-input-padding-y-lg:0.75rem;--mlz-input-font-size-sm:0.875rem;--mlz-input-font-size-md:1rem;--mlz-input-font-size-lg:1.125rem;--mlz-error-500:#ef4444;--mlz-error-600:#dc2626;--mlz-success-500:#22c55e;--mlz-success-600:#16a34a}.mlz-btn-primary{background-color:var(--mlz-primary-600,#236999);color:#fff;&:hover{background-color:var(--mlz-primary-700,#1d4ed8)}}.mlz-btn-secondary{background-color:var(--mlz-secondary-600,#475569);color:#fff;&:hover{background-color:var(--mlz-secondary-700,#334155)}}.mlz-label-textarea{font-size:16px;font-style:normal;font-weight:700;letter-spacing:0;line-height:100%;vertical-align:middle}.mlz-error-color{color:var(--mlz-semantic-error-600,#ef284c)}.mlz-error-border{border-color:var(--mlz-semantic-error-600,#ef284c)}.mlz-error-bg{background-color:var(--mlz-semantic-error-600,#ef284c)}.mlz-toast-success-bg{background-color:#eaf9ef}.mlz-toast-success-border{border-color:var(--mlz-semantic-success,#22c55e)}.mlz-toast-success-text{color:var(--mlz-semantic-success,#22c55e)}.mlz-toast-success-icon-bg{background-color:#c5f5d5}.mlz-toast-info-bg{background-color:#eff6ff}.mlz-toast-info-border{border-color:#0058cc}.mlz-toast-info-text{color:#0058cc}.mlz-toast-info-icon-bg{background-color:#dbeafe}.mlz-toast-warning-bg{background-color:#fefce8}.mlz-toast-warning-border{border-color:#c49e0a}.mlz-toast-warning-text{color:#c49e0a}.mlz-toast-warning-icon-bg{background-color:#fef9c3}.mlz-toast-error-bg{background-color:#fef2f2}.mlz-toast-error-border{border-color:#ef284c}.mlz-toast-error-text{color:#ef284c}.mlz-toast-error-icon-bg{background-color:#fee2e2}}
1
+ :root{--mlz-primary-50:#eff6ff;--mlz-primary-100:#e5f0f9;--mlz-primary-200:#bfdbfe;--mlz-primary-300:#94c6e5;--mlz-primary-400:#5ba8d5;--mlz-primary-500:#3b82f6;--mlz-primary-600:#236999;--mlz-primary-700:#1d4ed8;--mlz-primary-800:#1e40af;--mlz-primary-900:#1e3a8a;--mlz-primary-950:#172554;--mlz-semantic-info:#006eff;--mlz-semantic-error-600:#ef284c;--mlz-semantic-success:#1d9c48;--mlz-secondary-50:#f8fafc;--mlz-secondary-100:#f1f5f9;--mlz-secondary-200:#e2e8f0;--mlz-secondary-300:#cbd5e1;--mlz-secondary-400:#94a3b8;--mlz-secondary-500:#64748b;--mlz-secondary-600:#475569;--mlz-secondary-700:#334155;--mlz-secondary-800:#1e293b;--mlz-secondary-900:#0f172a;--mlz-secondary-950:#020617;--mlz-spacing-xs:0.25rem;--mlz-spacing-sm:0.5rem;--mlz-spacing-md:1rem;--mlz-spacing-lg:1.5rem;--mlz-spacing-xl:2rem;--mlz-spacing-2xl:3rem;--mlz-border-radius-sm:0.25rem;--mlz-border-radius-md:0.375rem;--mlz-border-radius-lg:0.5rem;--mlz-border-radius-xl:0.75rem;--mlz-font-size-xs:0.75rem;--mlz-font-size-sm:0.875rem;--mlz-font-size-base:1rem;--mlz-font-size-lg:1.125rem;--mlz-font-size-xl:1.25rem;--mlz-input-border-color:#d1d5db;--mlz-input-label-color:#374151;--mlz-input-helper-color:#6b7280;--mlz-input-height-sm:2rem;--mlz-input-height-md:2.5rem;--mlz-input-height-lg:3rem;--mlz-input-padding-x-sm:0.75rem;--mlz-input-padding-y-sm:0.375rem;--mlz-input-padding-x-md:1rem;--mlz-input-padding-y-md:0.5rem;--mlz-input-padding-x-lg:1.25rem;--mlz-input-padding-y-lg:0.75rem;--mlz-input-font-size-sm:0.875rem;--mlz-input-font-size-md:1rem;--mlz-input-font-size-lg:1.125rem;--mlz-error-500:#ef4444;--mlz-error-600:#dc2626;--mlz-success-500:#22c55e;--mlz-success-600:#16a34a}@layer utilities{.mlz-btn-primary{background-color:var(--mlz-primary-600,#236999);color:#fff;&:hover{background-color:var(--mlz-primary-700,#1d4ed8)}}.mlz-btn-secondary{background-color:var(--mlz-secondary-600,#475569);color:#fff;&:hover{background-color:var(--mlz-secondary-700,#334155)}}.mlz-label-textarea{font-size:16px;font-style:normal;font-weight:700;letter-spacing:0;line-height:100%;vertical-align:middle}.mlz-error-color{color:var(--mlz-semantic-error-600,#ef284c)}.mlz-error-border{border-color:var(--mlz-semantic-error-600,#ef284c)}.mlz-error-bg{background-color:var(--mlz-semantic-error-600,#ef284c)}.mlz-toast-success-bg{background-color:#eaf9ef}.mlz-toast-success-border{border-color:var(--mlz-semantic-success,#22c55e)}.mlz-toast-success-text{color:var(--mlz-semantic-success,#22c55e)}.mlz-toast-success-icon-bg{background-color:#c5f5d5}.mlz-toast-info-bg{background-color:#eff6ff}.mlz-toast-info-border{border-color:#0058cc}.mlz-toast-info-text{color:#0058cc}.mlz-toast-info-icon-bg{background-color:#dbeafe}.mlz-toast-warning-bg{background-color:#fefce8}.mlz-toast-warning-border{border-color:#c49e0a}.mlz-toast-warning-text{color:#c49e0a}.mlz-toast-warning-icon-bg{background-color:#fef9c3}.mlz-toast-error-bg{background-color:#fef2f2}.mlz-toast-error-border{border-color:#ef284c}.mlz-toast-error-text{color:#ef284c}.mlz-toast-error-icon-bg{background-color:#fee2e2}.mlz-toast-container{align-items:flex-start;border-radius:.5rem;border-style:solid;border-width:1px;box-shadow:0 3px 6px 0 rgba(0,0,0,.16);display:flex;gap:1rem;min-height:88px;padding:1rem;width:400px}.mlz-toast-icon-container{align-items:center;border-radius:.5rem;display:flex;flex-shrink:0;height:2.5rem;justify-content:center;padding:.5rem;width:2.5rem}.mlz-toast-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.mlz-toast-title{font-size:20px;font-weight:700;letter-spacing:normal;line-height:100%}.mlz-toast-description{font-size:18px;font-weight:400;letter-spacing:normal;line-height:100%}.mlz-toast-close{background:transparent;border:none;color:#9ca3af;cursor:pointer;font-size:24px;line-height:1;padding:0}.mlz-toast-close:hover{color:#4b5563}}
package/dist/theme.css ADDED
@@ -0,0 +1,60 @@
1
+ /*
2
+ MLZ Components - Tailwind Theme Tokens
3
+
4
+ Importa este archivo en tu proyecto si quieres usar las clases de Tailwind
5
+ con los colores de mlz-components (ej: bg-primary-600, text-semantic-error-600)
6
+
7
+ En tu globals.css:
8
+ @import "tailwindcss";
9
+ @theme {
10
+ @import "@sector.siit/mlz-components/theme.css";
11
+ }
12
+ @import "@sector.siit/mlz-components/styles.css";
13
+ */
14
+
15
+ /* Colores primarios como theme tokens */
16
+ --color-primary-50: var(--mlz-primary-50, #eff6ff);
17
+ --color-primary-100: var(--mlz-primary-100, #E5F0F9);
18
+ --color-primary-200: var(--mlz-primary-200, #bfdbfe);
19
+ --color-primary-300: var(--mlz-primary-300, #94C6E5);
20
+ --color-primary-400: var(--mlz-primary-400, #5BA8D5);
21
+ --color-primary-500: var(--mlz-primary-500, #3b82f6);
22
+ --color-primary-600: var(--mlz-primary-600, #236999);
23
+ --color-primary-700: var(--mlz-primary-700, #1d4ed8);
24
+ --color-primary-800: var(--mlz-primary-800, #1e40af);
25
+ --color-primary-900: var(--mlz-primary-900, #1e3a8a);
26
+ --color-primary-950: var(--mlz-primary-950, #172554);
27
+
28
+ --color-semantic-info: var(--mlz-semantic-info, #006EFF);
29
+ --color-semantic-error-600: var(--mlz-semantic-error-600, #EF284C);
30
+ --color-semantic-success: var(--mlz-semantic-success, #1D9C48);
31
+
32
+ --color-secondary-50: var(--mlz-secondary-50, #f8fafc);
33
+ --color-secondary-100: var(--mlz-secondary-100, #f1f5f9);
34
+ --color-secondary-200: var(--mlz-secondary-200, #e2e8f0);
35
+ --color-secondary-300: var(--mlz-secondary-300, #cbd5e1);
36
+ --color-secondary-400: var(--mlz-secondary-400, #94a3b8);
37
+ --color-secondary-500: var(--mlz-secondary-500, #64748b);
38
+ --color-secondary-600: var(--mlz-secondary-600, #475569);
39
+ --color-secondary-700: var(--mlz-secondary-700, #334155);
40
+ --color-secondary-800: var(--mlz-secondary-800, #1e293b);
41
+ --color-secondary-900: var(--mlz-secondary-900, #0f172a);
42
+ --color-secondary-950: var(--mlz-secondary-950, #020617);
43
+
44
+ --spacing-mlz-xs: var(--mlz-spacing-xs, 0.25rem);
45
+ --spacing-mlz-sm: var(--mlz-spacing-sm, 0.5rem);
46
+ --spacing-mlz-md: var(--mlz-spacing-md, 1rem);
47
+ --spacing-mlz-lg: var(--mlz-spacing-lg, 1.5rem);
48
+ --spacing-mlz-xl: var(--mlz-spacing-xl, 2rem);
49
+ --spacing-mlz-2xl: var(--mlz-spacing-2xl, 3rem);
50
+
51
+ --radius-mlz-sm: var(--mlz-border-radius-sm, 0.25rem);
52
+ --radius-mlz-md: var(--mlz-border-radius-md, 0.375rem);
53
+ --radius-mlz-lg: var(--mlz-border-radius-lg, 0.5rem);
54
+ --radius-mlz-xl: var(--mlz-border-radius-xl, 0.75rem);
55
+
56
+ --text-mlz-xs: var(--mlz-font-size-xs, 0.75rem);
57
+ --text-mlz-sm: var(--mlz-font-size-sm, 0.875rem);
58
+ --text-mlz-base: var(--mlz-font-size-base, 1rem);
59
+ --text-mlz-lg: var(--mlz-font-size-lg, 1.125rem);
60
+ --text-mlz-xl: var(--mlz-font-size-xl, 1.25rem);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sector.siit/mlz-components",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "type": "module",
5
5
  "description": "Una librería de componentes React con Tailwind CSS y variables CSS customizables",
6
6
  "main": "dist/index.js",
@@ -14,7 +14,9 @@
14
14
  },
15
15
  "./styles.css": "./dist/styles.css",
16
16
  "./variables.css": "./dist/variables.css",
17
- "./dist/variables.css": "./dist/variables.css"
17
+ "./theme.css": "./dist/theme.css",
18
+ "./dist/variables.css": "./dist/variables.css",
19
+ "./dist/theme.css": "./dist/theme.css"
18
20
  },
19
21
  "sideEffects": [
20
22
  "*.css"