aloha-ui-library 0.3.1 → 0.3.2

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.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { useState, useEffect, useRef } from 'react';
2
+ import React, { useState, useContext, createContext, useEffect, useRef } from 'react';
3
3
  import { AlertCircle, EyeOff, Eye, ChevronDown, Search, Bell, X, RefreshCw, Info, CheckCircle, Loader2 } from 'lucide-react';
4
4
  import { Link as Link$1 } from 'react-router-dom';
5
5
 
@@ -11,6 +11,9 @@ function _arrayLikeToArray(r, a) {
11
11
  function _arrayWithHoles(r) {
12
12
  if (Array.isArray(r)) return r;
13
13
  }
14
+ function _arrayWithoutHoles(r) {
15
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
16
+ }
14
17
  function _defineProperty(e, r, t) {
15
18
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
16
19
  value: t,
@@ -19,6 +22,9 @@ function _defineProperty(e, r, t) {
19
22
  writable: true
20
23
  }) : e[r] = t, e;
21
24
  }
25
+ function _iterableToArray(r) {
26
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
27
+ }
22
28
  function _iterableToArrayLimit(r, l) {
23
29
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
24
30
  if (null != t) {
@@ -46,6 +52,9 @@ function _iterableToArrayLimit(r, l) {
46
52
  function _nonIterableRest() {
47
53
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
54
  }
55
+ function _nonIterableSpread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
49
58
  function ownKeys(e, r) {
50
59
  var t = Object.keys(e);
51
60
  if (Object.getOwnPropertySymbols) {
@@ -90,6 +99,9 @@ function _objectWithoutPropertiesLoose(r, e) {
90
99
  function _slicedToArray(r, e) {
91
100
  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
92
101
  }
102
+ function _toConsumableArray(r) {
103
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
104
+ }
93
105
  function _toPrimitive(t, r) {
94
106
  if ("object" != typeof t || !t) return t;
95
107
  var e = t[Symbol.toPrimitive];
@@ -541,7 +553,7 @@ const fractionRegex = /^\d+\/\d+$/;
541
553
  const stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);
542
554
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
543
555
  const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
544
- const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
556
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
545
557
  // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
546
558
  const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
547
559
  const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
@@ -2762,7 +2774,7 @@ var themeVars = {
2762
2774
  primary: 'var(--theme-primary)'
2763
2775
  };
2764
2776
 
2765
- var _excluded$r = ["className", "variant", "size", "loading", "disabled", "color", "textColor", "borderColor", "icon", "children", "style", "borderWidth"];
2777
+ var _excluded$w = ["className", "variant", "size", "loading", "disabled", "color", "textColor", "borderColor", "icon", "children", "style", "borderWidth"];
2766
2778
  var buttonVariants = cva('inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', {
2767
2779
  variants: {
2768
2780
  variant: {
@@ -2799,7 +2811,7 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2799
2811
  style = _ref.style,
2800
2812
  _ref$borderWidth = _ref.borderWidth,
2801
2813
  borderWidth = _ref$borderWidth === void 0 ? 1 : _ref$borderWidth,
2802
- props = _objectWithoutProperties(_ref, _excluded$r);
2814
+ props = _objectWithoutProperties(_ref, _excluded$w);
2803
2815
  var customStyle = {};
2804
2816
  // Aplicar color de fondo si se especifica
2805
2817
  if (color) {
@@ -2858,27 +2870,27 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2858
2870
  });
2859
2871
  Button.displayName = 'Button';
2860
2872
 
2861
- var _excluded$q = ["className", "children", "font", "weight", "color", "style"],
2862
- _excluded2$3 = ["className", "children", "font", "weight", "color", "style"],
2873
+ var _excluded$v = ["className", "children", "font", "weight", "color", "style"],
2874
+ _excluded2$4 = ["className", "children", "font", "weight", "color", "style"],
2863
2875
  _excluded3$2 = ["className", "children", "font", "weight", "color", "style"],
2864
2876
  _excluded4$1 = ["className", "children", "font", "weight", "color", "style"],
2865
2877
  _excluded5$1 = ["className", "children", "font", "weight", "color", "style"],
2866
- _excluded6$1 = ["className", "children", "font", "weight", "color", "style"],
2878
+ _excluded6 = ["className", "children", "font", "weight", "color", "style"],
2867
2879
  _excluded7 = ["className", "children", "font", "weight", "color", "style"],
2868
2880
  _excluded8 = ["className", "children", "font", "weight", "color", "style"],
2869
2881
  _excluded9 = ["className", "children", "font", "weight", "color", "style"];
2870
- var fontFamilyClasses = {
2882
+ var fontFamilyClasses$1 = {
2871
2883
  jetbrains: 'font-jetbrains',
2872
2884
  nunito: 'font-nunito',
2873
2885
  "default": ''
2874
2886
  };
2875
- var fontWeightClasses = {
2887
+ var fontWeightClasses$1 = {
2876
2888
  light: 'font-light',
2877
2889
  medium: 'font-medium',
2878
2890
  bold: 'font-bold',
2879
2891
  black: 'font-black'
2880
2892
  };
2881
- var getColorStyle = function getColorStyle(color) {
2893
+ var getColorStyle$1 = function getColorStyle(color) {
2882
2894
  if (!color || color === 'default') return {};
2883
2895
  if (color.startsWith('theme-')) {
2884
2896
  return {
@@ -2897,11 +2909,11 @@ var H1 = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2897
2909
  weight = _ref.weight,
2898
2910
  color = _ref.color,
2899
2911
  style = _ref.style,
2900
- props = _objectWithoutProperties(_ref, _excluded$q);
2912
+ props = _objectWithoutProperties(_ref, _excluded$v);
2901
2913
  return jsx("h1", _objectSpread2(_objectSpread2({
2902
2914
  ref: ref,
2903
- className: cn('scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2904
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
2915
+ className: cn('scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
2916
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2905
2917
  }, props), {}, {
2906
2918
  children: children
2907
2919
  }));
@@ -2915,11 +2927,11 @@ var H2 = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
2915
2927
  weight = _ref2.weight,
2916
2928
  color = _ref2.color,
2917
2929
  style = _ref2.style,
2918
- props = _objectWithoutProperties(_ref2, _excluded2$3);
2930
+ props = _objectWithoutProperties(_ref2, _excluded2$4);
2919
2931
  return jsx("h2", _objectSpread2(_objectSpread2({
2920
2932
  ref: ref,
2921
- className: cn('scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2922
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
2933
+ className: cn('scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
2934
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2923
2935
  }, props), {}, {
2924
2936
  children: children
2925
2937
  }));
@@ -2936,8 +2948,8 @@ var H3 = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
2936
2948
  props = _objectWithoutProperties(_ref3, _excluded3$2);
2937
2949
  return jsx("h3", _objectSpread2(_objectSpread2({
2938
2950
  ref: ref,
2939
- className: cn('scroll-m-20 text-2xl font-semibold tracking-tight', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2940
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
2951
+ className: cn('scroll-m-20 text-2xl font-semibold tracking-tight', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
2952
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2941
2953
  }, props), {}, {
2942
2954
  children: children
2943
2955
  }));
@@ -2954,8 +2966,8 @@ var H4 = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
2954
2966
  props = _objectWithoutProperties(_ref4, _excluded4$1);
2955
2967
  return jsx("h4", _objectSpread2(_objectSpread2({
2956
2968
  ref: ref,
2957
- className: cn('scroll-m-20 text-xl font-semibold tracking-tight', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2958
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
2969
+ className: cn('scroll-m-20 text-xl font-semibold tracking-tight', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
2970
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2959
2971
  }, props), {}, {
2960
2972
  children: children
2961
2973
  }));
@@ -2972,8 +2984,8 @@ var P = /*#__PURE__*/React.forwardRef(function (_ref5, ref) {
2972
2984
  props = _objectWithoutProperties(_ref5, _excluded5$1);
2973
2985
  return jsx("p", _objectSpread2(_objectSpread2({
2974
2986
  ref: ref,
2975
- className: cn('leading-7 [&:not(:first-child)]:mt-6', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2976
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
2987
+ className: cn('leading-7 [&:not(:first-child)]:mt-6', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
2988
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2977
2989
  }, props), {}, {
2978
2990
  children: children
2979
2991
  }));
@@ -2987,11 +2999,11 @@ var Subtitle = /*#__PURE__*/React.forwardRef(function (_ref6, ref) {
2987
2999
  weight = _ref6.weight,
2988
3000
  color = _ref6.color,
2989
3001
  style = _ref6.style,
2990
- props = _objectWithoutProperties(_ref6, _excluded6$1);
3002
+ props = _objectWithoutProperties(_ref6, _excluded6);
2991
3003
  return jsx("p", _objectSpread2(_objectSpread2({
2992
3004
  ref: ref,
2993
- className: cn('text-xl text-muted-foreground', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
2994
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
3005
+ className: cn('text-xl text-muted-foreground', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
3006
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
2995
3007
  }, props), {}, {
2996
3008
  children: children
2997
3009
  }));
@@ -3008,8 +3020,8 @@ var Lead = /*#__PURE__*/React.forwardRef(function (_ref7, ref) {
3008
3020
  props = _objectWithoutProperties(_ref7, _excluded7);
3009
3021
  return jsx("p", _objectSpread2(_objectSpread2({
3010
3022
  ref: ref,
3011
- className: cn('text-xl text-muted-foreground', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
3012
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
3023
+ className: cn('text-xl text-muted-foreground', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
3024
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
3013
3025
  }, props), {}, {
3014
3026
  children: children
3015
3027
  }));
@@ -3026,8 +3038,8 @@ var Small = /*#__PURE__*/React.forwardRef(function (_ref8, ref) {
3026
3038
  props = _objectWithoutProperties(_ref8, _excluded8);
3027
3039
  return jsx("small", _objectSpread2(_objectSpread2({
3028
3040
  ref: ref,
3029
- className: cn('text-sm font-medium leading-none', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
3030
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
3041
+ className: cn('text-sm font-medium leading-none', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
3042
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
3031
3043
  }, props), {}, {
3032
3044
  children: children
3033
3045
  }));
@@ -3044,21 +3056,20 @@ var Muted = /*#__PURE__*/React.forwardRef(function (_ref9, ref) {
3044
3056
  props = _objectWithoutProperties(_ref9, _excluded9);
3045
3057
  return jsx("p", _objectSpread2(_objectSpread2({
3046
3058
  ref: ref,
3047
- className: cn('text-sm text-muted-foreground', fontFamilyClasses[font], weight && fontWeightClasses[weight], className),
3048
- style: _objectSpread2(_objectSpread2({}, getColorStyle(color)), style)
3059
+ className: cn('text-sm text-muted-foreground', fontFamilyClasses$1[font], weight && fontWeightClasses$1[weight], className),
3060
+ style: _objectSpread2(_objectSpread2({}, getColorStyle$1(color)), style)
3049
3061
  }, props), {}, {
3050
3062
  children: children
3051
3063
  }));
3052
3064
  });
3053
3065
  Muted.displayName = 'Muted';
3054
3066
 
3055
- var _excluded$p = ["className", "size", "borderRadius", "showBorder", "backgroundColor", "borderColor", "shadow", "padding", "margin", "style"],
3056
- _excluded2$2 = ["className", "padding", "margin", "style"],
3067
+ var _excluded$u = ["className", "size", "borderRadius", "showBorder", "backgroundColor", "borderColor", "shadow", "padding", "margin", "style"],
3068
+ _excluded2$3 = ["className", "padding", "margin", "style"],
3057
3069
  _excluded3$1 = ["className", "font", "weight", "descriptionColor", "small", "children"],
3058
- _excluded4 = ["color"],
3059
- _excluded5 = ["className", "padding", "margin", "style"],
3060
- _excluded6 = ["className", "padding", "margin", "style"];
3061
- var sizeClasses$2 = {
3070
+ _excluded4 = ["className", "padding", "margin", "style"],
3071
+ _excluded5 = ["className", "padding", "margin", "style"];
3072
+ var sizeClasses$4 = {
3062
3073
  full: 'w-full',
3063
3074
  constrained: 'max-w-md',
3064
3075
  auto: 'w-auto'
@@ -3151,10 +3162,10 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3151
3162
  padding = _ref.padding,
3152
3163
  margin = _ref.margin,
3153
3164
  style = _ref.style,
3154
- props = _objectWithoutProperties(_ref, _excluded$p);
3165
+ props = _objectWithoutProperties(_ref, _excluded$u);
3155
3166
  return jsx("div", _objectSpread2({
3156
3167
  ref: ref,
3157
- className: cn('text-card-foreground', sizeClasses$2[size], borderRadiusClasses[borderRadius], showBorder ? 'border' : '', showBorder ? getBorderColor(borderColor) : '', getBackgroundColor(backgroundColor), shadow ? 'shadow-sm' : '', className),
3168
+ className: cn('text-card-foreground', sizeClasses$4[size], borderRadiusClasses[borderRadius], showBorder ? 'border' : '', showBorder ? getBorderColor(borderColor) : '', getBackgroundColor(backgroundColor), shadow ? 'shadow-sm' : '', className),
3158
3169
  style: _objectSpread2(_objectSpread2({}, buildSpacingStyle(padding, margin)), style)
3159
3170
  }, props));
3160
3171
  });
@@ -3164,7 +3175,7 @@ var CardHeader = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
3164
3175
  padding = _ref2.padding,
3165
3176
  margin = _ref2.margin,
3166
3177
  style = _ref2.style,
3167
- props = _objectWithoutProperties(_ref2, _excluded2$2);
3178
+ props = _objectWithoutProperties(_ref2, _excluded2$3);
3168
3179
  return jsx("div", _objectSpread2({
3169
3180
  ref: ref,
3170
3181
  className: cn('flex flex-col space-y-1.5', padding === undefined ? 'p-6' : '', className),
@@ -3224,8 +3235,8 @@ var CardDescription = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
3224
3235
  restProps = _objectWithoutProperties(_ref4, _excluded3$1);
3225
3236
  var Component = small ? Small : P;
3226
3237
  // Filtrar 'color' de restProps para evitar conflictos
3227
- restProps.color;
3228
- var props = _objectWithoutProperties(restProps, _excluded4);
3238
+ var props = _objectSpread2({}, restProps);
3239
+ delete props.color;
3229
3240
  return jsx(Component, _objectSpread2(_objectSpread2({
3230
3241
  ref: ref,
3231
3242
  font: font,
@@ -3242,7 +3253,7 @@ var CardContent = /*#__PURE__*/React.forwardRef(function (_ref5, ref) {
3242
3253
  padding = _ref5.padding,
3243
3254
  margin = _ref5.margin,
3244
3255
  style = _ref5.style,
3245
- props = _objectWithoutProperties(_ref5, _excluded5);
3256
+ props = _objectWithoutProperties(_ref5, _excluded4);
3246
3257
  return jsx("div", _objectSpread2({
3247
3258
  ref: ref,
3248
3259
  className: cn(padding === undefined ? 'p-6 pt-0' : '', className),
@@ -3255,7 +3266,7 @@ var CardFooter = /*#__PURE__*/React.forwardRef(function (_ref6, ref) {
3255
3266
  padding = _ref6.padding,
3256
3267
  margin = _ref6.margin,
3257
3268
  style = _ref6.style,
3258
- props = _objectWithoutProperties(_ref6, _excluded6);
3269
+ props = _objectWithoutProperties(_ref6, _excluded5);
3259
3270
  return jsx("div", _objectSpread2({
3260
3271
  ref: ref,
3261
3272
  className: cn('flex items-center', padding === undefined ? 'p-6 pt-0' : '', className),
@@ -3430,7 +3441,7 @@ var getAvatarPartImage = function getAvatarPartImage(id, type) {
3430
3441
  return (part === null || part === void 0 ? void 0 : part.image) || null;
3431
3442
  };
3432
3443
 
3433
- var _excluded$o = ["className", "emoji", "size", "style", "src", "alt", "fallback"];
3444
+ var _excluded$t = ["className", "emoji", "size", "style", "src", "alt", "fallback"];
3434
3445
  var DEFAULT_AVATAR = {
3435
3446
  skinId: 1,
3436
3447
  eyebrowId: 1,
@@ -3439,6 +3450,14 @@ var DEFAULT_AVATAR = {
3439
3450
  hairId: 1,
3440
3451
  mouthId: 1
3441
3452
  };
3453
+ var sizeMap$1 = {
3454
+ xs: 24,
3455
+ sm: 32,
3456
+ md: 40,
3457
+ lg: 80,
3458
+ xl: 120,
3459
+ '2xl': 160
3460
+ };
3442
3461
  var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3443
3462
  var className = _ref.className,
3444
3463
  emoji = _ref.emoji,
@@ -3449,15 +3468,16 @@ var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3449
3468
  _ref$alt = _ref.alt,
3450
3469
  alt = _ref$alt === void 0 ? 'Avatar' : _ref$alt,
3451
3470
  fallback = _ref.fallback,
3452
- props = _objectWithoutProperties(_ref, _excluded$o);
3471
+ props = _objectWithoutProperties(_ref, _excluded$t);
3472
+ var resolvedSize = typeof size === 'number' ? size : sizeMap$1[size] || 100;
3453
3473
  // Si tiene src, mostrar como imagen directa
3454
3474
  if (src) {
3455
3475
  return jsx("div", _objectSpread2(_objectSpread2({
3456
3476
  ref: ref,
3457
3477
  className: cn('avatar-container', className),
3458
3478
  style: _objectSpread2({
3459
- width: "".concat(size, "px"),
3460
- height: "".concat(size, "px")
3479
+ width: "".concat(resolvedSize, "px"),
3480
+ height: "".concat(resolvedSize, "px")
3461
3481
  }, style)
3462
3482
  }, props), {}, {
3463
3483
  children: jsx("img", {
@@ -3473,8 +3493,8 @@ var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3473
3493
  ref: ref,
3474
3494
  className: cn('avatar-container avatar-fallback', className),
3475
3495
  style: _objectSpread2({
3476
- width: "".concat(size, "px"),
3477
- height: "".concat(size, "px")
3496
+ width: "".concat(resolvedSize, "px"),
3497
+ height: "".concat(resolvedSize, "px")
3478
3498
  }, style)
3479
3499
  }, props), {}, {
3480
3500
  children: fallback
@@ -3492,8 +3512,8 @@ var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3492
3512
  ref: ref,
3493
3513
  className: cn('avatar-container', className),
3494
3514
  style: _objectSpread2({
3495
- width: "".concat(size, "px"),
3496
- height: "".concat(size, "px")
3515
+ width: "".concat(resolvedSize, "px"),
3516
+ height: "".concat(resolvedSize, "px")
3497
3517
  }, style)
3498
3518
  }, props), {}, {
3499
3519
  children: [currentSkin && jsx("img", {
@@ -3525,7 +3545,65 @@ var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3525
3545
  });
3526
3546
  Avatar.displayName = 'Avatar';
3527
3547
 
3528
- var _excluded$n = ["className", "variant"];
3548
+ var _excluded$s = ["className", "avatars", "max", "size", "ringColor", "style"];
3549
+ var sizeMap = {
3550
+ xs: 24,
3551
+ sm: 32,
3552
+ md: 40,
3553
+ lg: 80,
3554
+ xl: 120,
3555
+ '2xl': 160
3556
+ };
3557
+ var AvatarGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3558
+ var className = _ref.className,
3559
+ _ref$avatars = _ref.avatars,
3560
+ avatars = _ref$avatars === void 0 ? [] : _ref$avatars,
3561
+ _ref$max = _ref.max,
3562
+ max = _ref$max === void 0 ? 4 : _ref$max,
3563
+ _ref$size = _ref.size,
3564
+ size = _ref$size === void 0 ? 'sm' : _ref$size,
3565
+ ringColor = _ref.ringColor,
3566
+ style = _ref.style,
3567
+ props = _objectWithoutProperties(_ref, _excluded$s);
3568
+ var visibleAvatars = avatars.slice(0, max);
3569
+ var extraCount = avatars.length - max;
3570
+ var resolvedSize = typeof size === 'number' ? size : sizeMap[size] || 32;
3571
+ // Get color value from name or pass directly
3572
+ var ringColorValue = ringColor ? colors[ringColor] || ringColor : '#fff';
3573
+ return jsxs("div", _objectSpread2(_objectSpread2({
3574
+ ref: ref,
3575
+ className: cn('avatar-group-stack', className),
3576
+ style: _objectSpread2({
3577
+ '--ag-ring-color': ringColorValue
3578
+ }, style)
3579
+ }, props), {}, {
3580
+ children: [extraCount > 0 && jsxs("div", {
3581
+ className: "avatar-group-extra",
3582
+ style: {
3583
+ width: "".concat(resolvedSize, "px"),
3584
+ height: "".concat(resolvedSize, "px"),
3585
+ fontSize: "".concat(resolvedSize * 0.35, "px"),
3586
+ zIndex: 0
3587
+ },
3588
+ children: ["+", extraCount]
3589
+ }), _toConsumableArray(visibleAvatars).reverse().map(function (av, index) {
3590
+ var zIndex = index + 1;
3591
+ return jsx(Avatar, {
3592
+ emoji: av.emoji,
3593
+ src: av.src,
3594
+ fallback: av.fallback,
3595
+ size: size,
3596
+ className: "avatar-group-item",
3597
+ style: {
3598
+ zIndex: zIndex
3599
+ }
3600
+ }, index);
3601
+ })]
3602
+ }));
3603
+ });
3604
+ AvatarGroup.displayName = 'AvatarGroup';
3605
+
3606
+ var _excluded$r = ["className", "variant", "backgroundColor", "textColor", "style"];
3529
3607
  var badgeVariants = cva('inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', {
3530
3608
  variants: {
3531
3609
  variant: {
@@ -3542,19 +3620,34 @@ var badgeVariants = cva('inline-flex items-center rounded-full border px-2.5 py-
3542
3620
  function Badge(_ref) {
3543
3621
  var className = _ref.className,
3544
3622
  variant = _ref.variant,
3545
- props = _objectWithoutProperties(_ref, _excluded$n);
3623
+ backgroundColor = _ref.backgroundColor,
3624
+ textColor = _ref.textColor,
3625
+ style = _ref.style,
3626
+ props = _objectWithoutProperties(_ref, _excluded$r);
3627
+ var customStyle = {};
3628
+ // Aplicar color de fondo si se especifica
3629
+ if (backgroundColor) {
3630
+ customStyle.backgroundColor = colors[backgroundColor];
3631
+ customStyle.borderColor = colors[backgroundColor];
3632
+ }
3633
+ // Aplicar color de texto si se especifica
3634
+ if (textColor) {
3635
+ customStyle.color = colors[textColor];
3636
+ }
3637
+ var finalStyle = _objectSpread2(_objectSpread2({}, customStyle), style);
3546
3638
  return jsx("div", _objectSpread2({
3547
3639
  className: cn(badgeVariants({
3548
3640
  variant: variant
3549
- }), className)
3641
+ }), className),
3642
+ style: finalStyle
3550
3643
  }, props));
3551
3644
  }
3552
3645
 
3553
- var _excluded$m = ["className", "error"];
3646
+ var _excluded$q = ["className", "error"];
3554
3647
  var FormError = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3555
3648
  var className = _ref.className,
3556
3649
  error = _ref.error,
3557
- props = _objectWithoutProperties(_ref, _excluded$m);
3650
+ props = _objectWithoutProperties(_ref, _excluded$q);
3558
3651
  if (!error) return null;
3559
3652
  return jsxs("div", _objectSpread2(_objectSpread2({
3560
3653
  ref: ref,
@@ -3576,7 +3669,7 @@ var FormError = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3576
3669
  });
3577
3670
  FormError.displayName = 'FormError';
3578
3671
 
3579
- var _excluded$l = ["className", "type", "label", "helperText", "required", "id", "error"];
3672
+ var _excluded$p = ["className", "type", "label", "helperText", "required", "id", "error"];
3580
3673
  var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3581
3674
  var className = _ref.className,
3582
3675
  type = _ref.type,
@@ -3585,7 +3678,7 @@ var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3585
3678
  required = _ref.required,
3586
3679
  id = _ref.id,
3587
3680
  error = _ref.error,
3588
- props = _objectWithoutProperties(_ref, _excluded$l);
3681
+ props = _objectWithoutProperties(_ref, _excluded$p);
3589
3682
  var _useState = useState(false),
3590
3683
  _useState2 = _slicedToArray(_useState, 2),
3591
3684
  showPassword = _useState2[0],
@@ -3648,7 +3741,55 @@ var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3648
3741
  });
3649
3742
  Input.displayName = 'Input';
3650
3743
 
3651
- var _excluded$k = ["className", "label", "helperText", "required", "id", "error", "options", "placeholder", "children"];
3744
+ var _excluded$o = ["className", "label", "helperText", "required", "id", "error", "resize"];
3745
+ var TextArea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3746
+ var className = _ref.className,
3747
+ label = _ref.label,
3748
+ helperText = _ref.helperText,
3749
+ required = _ref.required,
3750
+ id = _ref.id,
3751
+ error = _ref.error,
3752
+ _ref$resize = _ref.resize,
3753
+ resize = _ref$resize === void 0 ? 'vertical' : _ref$resize,
3754
+ props = _objectWithoutProperties(_ref, _excluded$o);
3755
+ var textareaId = id || "textarea-".concat(Math.random().toString(36).substr(2, 9));
3756
+ return jsxs("div", {
3757
+ className: "w-full",
3758
+ children: [(label || helperText) && jsxs("div", {
3759
+ className: "mb-2",
3760
+ children: [label && jsxs(P, {
3761
+ className: "text-sm font-medium m-0 [&:not(:first-child)]:mt-0 inline",
3762
+ children: [label, required && jsx("span", {
3763
+ style: {
3764
+ color: colors.coral
3765
+ },
3766
+ children: " *"
3767
+ })]
3768
+ }), helperText && jsx(P, {
3769
+ className: "text-xs text-gray-500 m-0 mt-1 [&:not(:first-child)]:mt-1",
3770
+ children: helperText
3771
+ })]
3772
+ }), jsx("div", {
3773
+ className: "relative",
3774
+ children: jsx("textarea", _objectSpread2({
3775
+ id: textareaId,
3776
+ className: cn('flex w-full rounded-lg border-2 px-3 py-2 text-sm transition-all', 'placeholder:text-gray-500', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-50', error ? 'border-coral/50' : '', className),
3777
+ style: {
3778
+ borderColor: error ? colors.coral : colors.piedra,
3779
+ backgroundColor: colors.koala,
3780
+ resize: resize
3781
+ },
3782
+ ref: ref,
3783
+ required: required
3784
+ }, props))
3785
+ }), error && typeof error === 'string' && jsx(FormError, {
3786
+ error: error
3787
+ })]
3788
+ });
3789
+ });
3790
+ TextArea.displayName = 'TextArea';
3791
+
3792
+ var _excluded$n = ["className", "label", "helperText", "required", "id", "error", "options", "placeholder", "children"];
3652
3793
  var Select = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3653
3794
  var className = _ref.className,
3654
3795
  label = _ref.label,
@@ -3659,7 +3800,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3659
3800
  options = _ref.options,
3660
3801
  placeholder = _ref.placeholder,
3661
3802
  children = _ref.children,
3662
- props = _objectWithoutProperties(_ref, _excluded$k);
3803
+ props = _objectWithoutProperties(_ref, _excluded$n);
3663
3804
  var selectId = id || "select-".concat(Math.random().toString(36).substr(2, 9));
3664
3805
  return jsxs("div", {
3665
3806
  className: "w-full",
@@ -3711,12 +3852,12 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3711
3852
  });
3712
3853
  Select.displayName = 'Select';
3713
3854
 
3714
- var _excluded$j = ["className", "label", "id"];
3855
+ var _excluded$m = ["className", "label", "id"];
3715
3856
  var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3716
3857
  var className = _ref.className,
3717
3858
  label = _ref.label,
3718
3859
  id = _ref.id,
3719
- props = _objectWithoutProperties(_ref, _excluded$j);
3860
+ props = _objectWithoutProperties(_ref, _excluded$m);
3720
3861
  var checkboxId = id || "checkbox-".concat(Math.random().toString(36).substr(2, 9));
3721
3862
  var _React$useState = React.useState(false),
3722
3863
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -3776,21 +3917,47 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3776
3917
  });
3777
3918
  Checkbox.displayName = 'Checkbox';
3778
3919
 
3779
- var _excluded$i = ["className", "label", "font", "weight", "labelColor", "id"];
3920
+ var _excluded$l = ["className", "label", "font", "weight", "labelColor", "id"];
3921
+ var fontFamilyClasses = {
3922
+ jetbrains: 'font-jetbrains',
3923
+ nunito: 'font-nunito',
3924
+ "default": ''
3925
+ };
3926
+ var fontWeightClasses = {
3927
+ light: 'font-light',
3928
+ medium: 'font-medium',
3929
+ bold: 'font-bold',
3930
+ black: 'font-black'
3931
+ };
3932
+ var getColorStyle = function getColorStyle(color) {
3933
+ if (!color || color === 'default') return {};
3934
+ if (color.startsWith('theme-')) {
3935
+ return {
3936
+ color: "var(--".concat(color, ")")
3937
+ };
3938
+ }
3939
+ if (color in colors) {
3940
+ return {
3941
+ color: colors[color]
3942
+ };
3943
+ }
3944
+ return {};
3945
+ };
3780
3946
  var Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3781
3947
  var className = _ref.className,
3782
3948
  label = _ref.label,
3783
- font = _ref.font,
3949
+ _ref$font = _ref.font,
3950
+ font = _ref$font === void 0 ? 'default' : _ref$font,
3784
3951
  weight = _ref.weight,
3785
3952
  labelColor = _ref.labelColor,
3786
3953
  id = _ref.id,
3787
- props = _objectWithoutProperties(_ref, _excluded$i);
3954
+ props = _objectWithoutProperties(_ref, _excluded$l);
3788
3955
  var switchId = id || "switch-".concat(Math.random().toString(36).substr(2, 9));
3789
3956
  return jsxs("div", {
3790
- className: "flex items-center space-x-3",
3957
+ className: "flex items-center gap-3",
3791
3958
  children: [jsxs("label", {
3792
3959
  htmlFor: switchId,
3793
- className: "relative inline-flex cursor-pointer items-center",
3960
+ className: "relative inline-flex cursor-pointer items-center flex-shrink-0",
3794
3961
  children: [jsx("input", _objectSpread2({
3795
3962
  type: "checkbox",
3796
3963
  id: switchId,
@@ -3799,22 +3966,117 @@ var Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3799
3966
  }, props)), jsx("div", {
3800
3967
  className: cn('peer h-8 w-14 rounded-[0.6rem] border-2 border-[#A69C8A] bg-[#D8D8C1] after:absolute after:left-[3px] after:top-[3px] after:h-[26px] after:w-[26px] after:rounded-md after:bg-white after:shadow-md after:transition-all after:content-[""] peer-checked:border-[#4A443F] peer-checked:bg-[#4A443F] peer-checked:after:translate-x-[24px] peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-[#4A443F]/30 peer-disabled:cursor-not-allowed peer-disabled:opacity-50', className)
3801
3968
  })]
3802
- }), label && jsx(P, {
3803
- font: font,
3804
- weight: weight,
3805
- color: labelColor,
3806
- className: "leading-none m-0 flex items-center",
3969
+ }), label && jsx("span", {
3970
+ className: cn('text-sm', fontFamilyClasses[font], weight && fontWeightClasses[weight]),
3971
+ style: getColorStyle(labelColor),
3807
3972
  children: label
3808
3973
  })]
3809
3974
  });
3810
3975
  });
3811
3976
  Switch.displayName = 'Switch';
3812
3977
 
3813
- var _excluded$h = ["className", "onSearch"];
3978
+ var _excluded$k = ["className", "name", "value", "defaultValue", "onChange", "disabled", "children"],
3979
+ _excluded2$2 = ["className", "value", "label", "id", "disabled"];
3980
+ var RadioGroupContext = /*#__PURE__*/createContext(undefined);
3981
+ var RadioGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3982
+ var className = _ref.className,
3983
+ name = _ref.name,
3984
+ controlledValue = _ref.value,
3985
+ defaultValue = _ref.defaultValue,
3986
+ onChange = _ref.onChange,
3987
+ _ref$disabled = _ref.disabled,
3988
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
3989
+ children = _ref.children,
3990
+ props = _objectWithoutProperties(_ref, _excluded$k);
3991
+ var _React$useState = React.useState(defaultValue || ''),
3992
+ _React$useState2 = _slicedToArray(_React$useState, 2),
3993
+ localValue = _React$useState2[0],
3994
+ setLocalValue = _React$useState2[1];
3995
+ var isControlled = controlledValue !== undefined;
3996
+ var activeValue = isControlled ? controlledValue : localValue;
3997
+ var handleValueChange = function handleValueChange(newValue) {
3998
+ if (!isControlled) {
3999
+ setLocalValue(newValue);
4000
+ }
4001
+ if (onChange) {
4002
+ onChange(newValue);
4003
+ }
4004
+ };
4005
+ return jsx(RadioGroupContext.Provider, {
4006
+ value: {
4007
+ name: name,
4008
+ value: activeValue,
4009
+ onChange: handleValueChange,
4010
+ disabled: disabled
4011
+ },
4012
+ children: jsx("div", _objectSpread2(_objectSpread2({
4013
+ ref: ref,
4014
+ role: "radiogroup",
4015
+ className: cn('aloha-radio-group', className)
4016
+ }, props), {}, {
4017
+ children: children
4018
+ }))
4019
+ });
4020
+ });
4021
+ RadioGroup.displayName = 'RadioGroup';
4022
+ var RadioGroupItem = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
4023
+ var className = _ref2.className,
4024
+ value = _ref2.value,
4025
+ label = _ref2.label,
4026
+ id = _ref2.id,
4027
+ itemDisabled = _ref2.disabled,
4028
+ props = _objectWithoutProperties(_ref2, _excluded2$2);
4029
+ var context = useContext(RadioGroupContext);
4030
+ if (!context) {
4031
+ throw new Error('RadioGroupItem must be used within a RadioGroup component');
4032
+ }
4033
+ var name = props.name || context.name;
4034
+ var isChecked = context.value === value;
4035
+ var isDisabled = itemDisabled || context.disabled;
4036
+ var inputId = id || "radio-".concat(name, "-").concat(value);
4037
+ var handleChange = function handleChange() {
4038
+ if (!isDisabled && context.onChange) {
4039
+ context.onChange(value);
4040
+ }
4041
+ };
4042
+ return jsxs("label", {
4043
+ htmlFor: inputId,
4044
+ className: cn('aloha-radio-item', isChecked && 'aloha-radio-item--checked', isDisabled && 'aloha-radio-item--disabled', className),
4045
+ children: [jsx("input", _objectSpread2({
4046
+ ref: ref,
4047
+ type: "radio",
4048
+ id: inputId,
4049
+ name: name,
4050
+ value: value,
4051
+ checked: isChecked,
4052
+ disabled: isDisabled,
4053
+ onChange: handleChange,
4054
+ className: "sr-only"
4055
+ }, props)), jsx("span", {
4056
+ className: "aloha-radio-indicator",
4057
+ style: {
4058
+ borderColor: isChecked ? colors.bosque : colors.piedra,
4059
+ backgroundColor: isChecked ? colors.hueso : colors.koala
4060
+ },
4061
+ children: isChecked && jsx("span", {
4062
+ className: "aloha-radio-inner-dot",
4063
+ style: {
4064
+ backgroundColor: colors.olivo
4065
+ }
4066
+ })
4067
+ }), label && jsx(P, {
4068
+ className: "aloha-radio-label text-sm m-0 [&:not(:first-child)]:mt-0",
4069
+ children: label
4070
+ })]
4071
+ });
4072
+ });
4073
+ RadioGroupItem.displayName = 'RadioGroupItem';
4074
+
4075
+ var _excluded$j = ["className", "onSearch"];
3814
4076
  var SearchInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3815
4077
  var className = _ref.className,
3816
4078
  onSearch = _ref.onSearch,
3817
- props = _objectWithoutProperties(_ref, _excluded$h);
4079
+ props = _objectWithoutProperties(_ref, _excluded$j);
3818
4080
  var handleKeyDown = function handleKeyDown(e) {
3819
4081
  if (e.key === 'Enter' && onSearch) {
3820
4082
  onSearch(e.currentTarget.value);
@@ -3834,7 +4096,7 @@ var SearchInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3834
4096
  });
3835
4097
  SearchInput.displayName = 'SearchInput';
3836
4098
 
3837
- var _excluded$g = ["type", "title", "message", "timestamp", "avatar", "read", "onClose", "onClick", "className"];
4099
+ var _excluded$i = ["type", "title", "message", "timestamp", "avatar", "read", "onClose", "onClick", "className"];
3838
4100
  var Notification = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3839
4101
  var type = _ref.type,
3840
4102
  title = _ref.title,
@@ -3846,58 +4108,63 @@ var Notification = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3846
4108
  onClose = _ref.onClose,
3847
4109
  onClick = _ref.onClick,
3848
4110
  className = _ref.className,
3849
- props = _objectWithoutProperties(_ref, _excluded$g);
3850
- var typeColors = {
3851
- like: 'text-red-500',
3852
- comment: 'text-blue-500',
3853
- follow: 'text-green-500',
3854
- mention: 'text-purple-500',
3855
- info: 'text-gray-500'
4111
+ props = _objectWithoutProperties(_ref, _excluded$i);
4112
+ var iconColors = {
4113
+ like: '#FF6F61',
4114
+ // coral
4115
+ comment: '#0084FF',
4116
+ // electrico
4117
+ follow: '#648C2C',
4118
+ // bosque
4119
+ mention: '#B388D3',
4120
+ // lavanda
4121
+ info: '#4A443F' // piedra
3856
4122
  };
3857
4123
  return jsxs("div", _objectSpread2(_objectSpread2({
3858
4124
  ref: ref,
3859
- className: cn('flex items-start gap-3 rounded-lg border p-4 transition-colors', !read && 'bg-blue-50/50 dark:bg-blue-950/20', onClick && 'cursor-pointer hover:bg-accent', className),
4125
+ className: cn('aloha-notification', !read && 'aloha-notification--unread', onClick && 'aloha-notification--clickable', className),
3860
4126
  onClick: onClick
3861
4127
  }, props), {}, {
3862
- children: [avatar ? jsx(Avatar, {
3863
- src: avatar,
4128
+ children: [avatar ? jsx(Avatar, _objectSpread2({
3864
4129
  alt: title,
3865
- size: "sm"
3866
- }) : jsx("div", {
3867
- className: cn('rounded-full p-2 bg-muted', typeColors[type]),
4130
+ size: "sm",
4131
+ className: "aloha-notification__avatar"
4132
+ }, avatar)) : jsx("div", {
4133
+ className: "aloha-notification__icon-container",
4134
+ style: {
4135
+ color: iconColors[type]
4136
+ },
3868
4137
  children: jsx(Bell, {
3869
4138
  className: "h-4 w-4"
3870
4139
  })
3871
4140
  }), jsxs("div", {
3872
- className: "flex-1 space-y-1",
4141
+ className: "aloha-notification__content",
3873
4142
  children: [jsx("p", {
3874
- className: "text-sm font-medium leading-none",
4143
+ className: "aloha-notification__title",
3875
4144
  children: title
3876
4145
  }), jsx("p", {
3877
- className: "text-sm text-muted-foreground",
4146
+ className: "aloha-notification__message",
3878
4147
  children: message
3879
4148
  }), jsx("p", {
3880
- className: "text-xs text-muted-foreground",
4149
+ className: "aloha-notification__timestamp",
3881
4150
  children: timestamp
3882
4151
  })]
3883
- }), onClose && jsxs("button", {
4152
+ }), onClose && jsx("button", {
3884
4153
  onClick: function onClick(e) {
3885
4154
  e.stopPropagation();
3886
4155
  onClose();
3887
4156
  },
3888
- className: "rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
3889
- children: [jsx(X, {
4157
+ className: "aloha-notification__close-btn",
4158
+ "aria-label": "Close notification",
4159
+ children: jsx(X, {
3890
4160
  className: "h-4 w-4"
3891
- }), jsx("span", {
3892
- className: "sr-only",
3893
- children: "Close"
3894
- })]
4161
+ })
3895
4162
  })]
3896
4163
  }));
3897
4164
  });
3898
4165
  Notification.displayName = 'Notification';
3899
4166
 
3900
- var _excluded$f = ["className", "text", "component", "font", "weight", "textColor", "lineColor", "lineThickness", "avatars", "avatarRingColor", "rightSlot"];
4167
+ var _excluded$h = ["className", "text", "component", "font", "weight", "textColor", "lineColor", "lineThickness", "avatars", "avatarRingColor", "rightSlot"];
3901
4168
  // ── Color de la línea (herencia del original) ─────────────────────
3902
4169
  var getLineColorClass = function getLineColorClass(color) {
3903
4170
  if (!color || color === 'default') return 'bg-gray-300';
@@ -3936,7 +4203,7 @@ var TextDivider = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3936
4203
  avatars = _ref.avatars,
3937
4204
  avatarRingColor = _ref.avatarRingColor,
3938
4205
  rightSlot = _ref.rightSlot,
3939
- props = _objectWithoutProperties(_ref, _excluded$f);
4206
+ props = _objectWithoutProperties(_ref, _excluded$h);
3940
4207
  var renderText = function renderText() {
3941
4208
  var commonProps = {
3942
4209
  font: font,
@@ -3981,22 +4248,11 @@ var TextDivider = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3981
4248
  ref: ref,
3982
4249
  className: cn('text-divider', className)
3983
4250
  }, props), {}, {
3984
- children: [hasAvatars && jsx("span", {
3985
- className: "text-divider__avatar-stack",
3986
- style: {
3987
- '--td-ring': avatarRingColor
3988
- },
3989
- children: avatars.map(function (av, i) {
3990
- return jsx(Avatar, {
3991
- src: av.src,
3992
- fallback: av.fallback,
3993
- size: "sm",
3994
- className: "text-divider__stack-avatar",
3995
- style: {
3996
- zIndex: avatars.length - i
3997
- }
3998
- }, i);
3999
- })
4251
+ children: [hasAvatars && jsx(AvatarGroup, {
4252
+ avatars: avatars,
4253
+ size: "sm",
4254
+ ringColor: avatarRingColor || lineColor,
4255
+ className: "text-divider__avatar-stack"
4000
4256
  }), renderText(), jsx("div", {
4001
4257
  className: cn('text-divider__line', getLineColorClass(lineColor)),
4002
4258
  style: {
@@ -4010,7 +4266,7 @@ var TextDivider = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4010
4266
  });
4011
4267
  TextDivider.displayName = 'TextDivider';
4012
4268
 
4013
- var _excluded$e = ["className", "children", "color", "hoverColor", "underline", "external"],
4269
+ var _excluded$g = ["className", "children", "color", "hoverColor", "underline", "external"],
4014
4270
  _excluded2$1 = ["to"],
4015
4271
  _excluded3 = ["href", "target", "rel"];
4016
4272
  var getColorClass = function getColorClass(color) {
@@ -4074,7 +4330,7 @@ var Link = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4074
4330
  underline = _ref$underline === void 0 ? 'hover' : _ref$underline,
4075
4331
  _ref$external = _ref.external,
4076
4332
  external = _ref$external === void 0 ? false : _ref$external,
4077
- props = _objectWithoutProperties(_ref, _excluded$e);
4333
+ props = _objectWithoutProperties(_ref, _excluded$g);
4078
4334
  var linkClasses = cn('inline-flex items-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', getColorClass(color), hoverColor ? '' : getHoverColorClass(color), getUnderlineClass(underline), className);
4079
4335
  // Si tiene la prop "to", usar React Router Link
4080
4336
  if ('to' in props && props.to) {
@@ -4115,7 +4371,7 @@ var Link = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4115
4371
  });
4116
4372
  Link.displayName = 'Link';
4117
4373
 
4118
- var _excluded$d = ["src", "alt", "width", "height", "objectFit", "loading", "fallbackSrc", "onError", "className"];
4374
+ var _excluded$f = ["src", "alt", "width", "height", "objectFit", "loading", "fallbackSrc", "onError", "className"];
4119
4375
  var Image = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4120
4376
  var src = _ref.src,
4121
4377
  alt = _ref.alt,
@@ -4128,7 +4384,7 @@ var Image = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4128
4384
  fallbackSrc = _ref.fallbackSrc,
4129
4385
  onError = _ref.onError,
4130
4386
  className = _ref.className,
4131
- props = _objectWithoutProperties(_ref, _excluded$d);
4387
+ props = _objectWithoutProperties(_ref, _excluded$f);
4132
4388
  var _React$useState = React.useState(src),
4133
4389
  _React$useState2 = _slicedToArray(_React$useState, 2),
4134
4390
  imgSrc = _React$useState2[0],
@@ -4326,7 +4582,72 @@ var Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4326
4582
  });
4327
4583
  Popup.displayName = 'Popup';
4328
4584
 
4329
- var Error = function Error(_ref) {
4585
+ var _excluded$e = ["className", "isOpen", "onClose", "title", "size", "children", "footer"];
4586
+ var Modal = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4587
+ var className = _ref.className,
4588
+ isOpen = _ref.isOpen,
4589
+ onClose = _ref.onClose,
4590
+ title = _ref.title,
4591
+ _ref$size = _ref.size,
4592
+ size = _ref$size === void 0 ? 'md' : _ref$size,
4593
+ children = _ref.children,
4594
+ footer = _ref.footer,
4595
+ props = _objectWithoutProperties(_ref, _excluded$e);
4596
+ // Lock body scrolling when modal is open
4597
+ useEffect(function () {
4598
+ if (isOpen) {
4599
+ document.body.style.overflow = 'hidden';
4600
+ } else {
4601
+ document.body.style.overflow = '';
4602
+ }
4603
+ return function () {
4604
+ document.body.style.overflow = '';
4605
+ };
4606
+ }, [isOpen]);
4607
+ if (!isOpen) return null;
4608
+ return jsx("div", {
4609
+ className: "aloha-modal-overlay",
4610
+ onClick: onClose,
4611
+ children: jsxs("div", _objectSpread2(_objectSpread2({
4612
+ ref: ref,
4613
+ className: cn('aloha-modal-dialog', "aloha-modal-dialog--".concat(size), className),
4614
+ onClick: function onClick(e) {
4615
+ return e.stopPropagation();
4616
+ },
4617
+ role: "dialog",
4618
+ "aria-modal": "true"
4619
+ }, props), {}, {
4620
+ children: [jsxs("div", {
4621
+ className: "aloha-modal-header",
4622
+ children: [title ? jsx(H3, {
4623
+ className: "m-0 [&:not(:first-child)]:mt-0 aloha-modal-title",
4624
+ children: title
4625
+ }) : jsx("div", {}), jsx("button", {
4626
+ type: "button",
4627
+ className: "aloha-modal-close-btn",
4628
+ onClick: onClose,
4629
+ "aria-label": "Close modal",
4630
+ children: jsx(X, {
4631
+ size: 20
4632
+ })
4633
+ })]
4634
+ }), jsx("div", {
4635
+ className: "aloha-modal-body",
4636
+ children: children
4637
+ }), footer && jsx("div", {
4638
+ className: "aloha-modal-footer",
4639
+ children: footer
4640
+ })]
4641
+ }))
4642
+ });
4643
+ });
4644
+ Modal.displayName = 'Modal';
4645
+
4646
+ var variantClasses = {
4647
+ inline: 'inline-flex flex-col items-center',
4648
+ card: 'border border-red-200 bg-red-50 rounded-lg p-6'
4649
+ };
4650
+ var Error$1 = function Error(_ref) {
4330
4651
  var _ref$title = _ref.title,
4331
4652
  title = _ref$title === void 0 ? 'Error' : _ref$title,
4332
4653
  _ref$message = _ref.message,
@@ -4339,10 +4660,6 @@ var Error = function Error(_ref) {
4339
4660
  variant = _ref$variant === void 0 ? 'inline' : _ref$variant,
4340
4661
  _ref$showIcon = _ref.showIcon,
4341
4662
  showIcon = _ref$showIcon === void 0 ? true : _ref$showIcon;
4342
- var variantClasses = {
4343
- inline: 'inline-flex flex-col items-center',
4344
- card: 'border border-red-200 bg-red-50 rounded-lg p-6'
4345
- };
4346
4663
  return jsx("div", {
4347
4664
  className: cn(variantClasses[variant], className),
4348
4665
  children: jsxs("div", {
@@ -4367,7 +4684,7 @@ var Error = function Error(_ref) {
4367
4684
  });
4368
4685
  };
4369
4686
 
4370
- var _excluded$c = ["message", "type", "onClose", "duration", "className", "position"];
4687
+ var _excluded$d = ["message", "type", "onClose", "duration", "className", "position"];
4371
4688
  var Toast = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4372
4689
  var message = _ref.message,
4373
4690
  _ref$type = _ref.type,
@@ -4378,7 +4695,7 @@ var Toast = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4378
4695
  className = _ref.className,
4379
4696
  _ref$position = _ref.position,
4380
4697
  position = _ref$position === void 0 ? 'bottom-center' : _ref$position,
4381
- props = _objectWithoutProperties(_ref, _excluded$c);
4698
+ props = _objectWithoutProperties(_ref, _excluded$d);
4382
4699
  useEffect(function () {
4383
4700
  if (duration > 0) {
4384
4701
  var timer = setTimeout(onClose, duration);
@@ -4441,6 +4758,11 @@ var Toast = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4441
4758
  });
4442
4759
  Toast.displayName = 'Toast';
4443
4760
 
4761
+ var sizeClasses$3 = {
4762
+ sm: 'w-4 h-4',
4763
+ md: 'w-8 h-8',
4764
+ lg: 'w-12 h-12'
4765
+ };
4444
4766
  var Loading = function Loading(_ref) {
4445
4767
  var message = _ref.message,
4446
4768
  className = _ref.className,
@@ -4448,16 +4770,11 @@ var Loading = function Loading(_ref) {
4448
4770
  size = _ref$size === void 0 ? 'md' : _ref$size,
4449
4771
  _ref$centered = _ref.centered,
4450
4772
  centered = _ref$centered === void 0 ? false : _ref$centered;
4451
- var sizeClasses = {
4452
- sm: 'w-4 h-4',
4453
- md: 'w-8 h-8',
4454
- lg: 'w-12 h-12'
4455
- };
4456
4773
  var wrapper = centered ? 'flex flex-col items-center justify-center' : 'inline-flex flex-col items-center';
4457
4774
  return jsxs("div", {
4458
4775
  className: cn(wrapper, className),
4459
4776
  children: [jsx(Loader2, {
4460
- className: cn('animate-spin text-primary', sizeClasses[size])
4777
+ className: cn('animate-spin text-primary', sizeClasses$3[size])
4461
4778
  }), message && jsx("p", {
4462
4779
  className: "mt-2 text-sm text-gray-600",
4463
4780
  children: message
@@ -4471,13 +4788,13 @@ var verticalLogo = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encodin
4471
4788
 
4472
4789
  var onlyIconLogo = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20267%20248%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3Aserif%3D%22http%3A%2F%2Fwww.serif.com%2F%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A2%3B%22%3E%20%20%20%20%3Cg%20transform%3D%22matrix%281%2C0%2C0%2C1%2C-1914.773191%2C-17659.607757%29%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22Mesa-de-trabajo12%22%20serif%3Aid%3D%22Mesa%20de%20trabajo12%22%20transform%3D%22matrix%280.578434%2C0%2C0%2C0.554312%2C1914.773191%2C7961.001329%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%220%22%20y%3D%2217496.65%22%20width%3D%22460.139%22%20height%3D%22447.159%22%20style%3D%22fill%3Anone%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%282.822329%2C0%2C0%2C2.714869%2C-19224.018493%2C-14926.881378%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%283.334642%2C0%2C0%2C3.617491%2C6914.667203%2C12026.281834%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C0C0%2C-1.792%200.342%2C-3.157%201.027%2C-4.096C1.712%2C-5.035%202.624%2C-5.504%203.766%2C-5.504C4.874%2C-5.504%205.771%2C-5.035%206.456%2C-4.096C7.141%2C-3.157%207.483%2C-1.792%207.483%2C0C7.483%2C1.792%207.141%2C3.157%206.456%2C4.097C5.771%2C5.035%204.874%2C5.504%203.766%2C5.504C2.624%2C5.504%201.712%2C5.035%201.027%2C4.097C0.342%2C3.157%200%2C1.792%200%2C0M-20.394%2C0C-20.394%2C-1.792%20-20.051%2C-3.157%20-19.367%2C-4.096C-18.682%2C-5.035%20-17.786%2C-5.504%20-16.677%2C-5.504C-15.536%2C-5.504%20-14.623%2C-5.035%20-13.938%2C-4.096C-13.254%2C-3.157%20-12.911%2C-1.792%20-12.911%2C0C-12.911%2C1.792%20-13.254%2C3.157%20-13.938%2C4.097C-14.623%2C5.035%20-15.536%2C5.504%20-16.677%2C5.504C-17.786%2C5.504%20-18.682%2C5.035%20-19.367%2C4.097C-20.051%2C3.157%20-20.394%2C1.792%20-20.394%2C0%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%283.334642%2C0%2C0%2C3.617491%2C6814.639292%2C12106.187862%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C-14.916L4.744%2C-14.916C5.233%2C-12.862%206.138%2C-11.085%207.458%2C-9.585C8.779%2C-8.086%2010.433%2C-6.92%2012.422%2C-6.089C14.41%2C-5.257%2016.628%2C-4.841%2019.073%2C-4.841L27.876%2C-4.841C30.354%2C-4.841%2032.587%2C-5.257%2034.577%2C-6.089C36.565%2C-6.92%2038.22%2C-8.086%2039.541%2C-9.585C40.861%2C-11.085%2041.766%2C-12.862%2042.255%2C-14.916L46.95%2C-14.916C45.874%2C-10.189%2043.673%2C-6.521%2040.348%2C-3.913C37.022%2C-1.304%2032.865%2C0%2027.876%2C0L19.073%2C0C14.085%2C0%209.928%2C-1.304%206.602%2C-3.913C3.277%2C-6.521%201.076%2C-10.189%200%2C-14.916%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%283.334642%2C0%2C0%2C3.617491%2C6971.200715%2C11944.412594%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C14.916L-4.744%2C14.916C-5.233%2C12.862%20-6.138%2C11.085%20-7.458%2C9.585C-8.779%2C8.086%20-10.433%2C6.92%20-12.422%2C6.089C-14.41%2C5.257%20-16.628%2C4.841%20-19.073%2C4.841L-27.876%2C4.841C-30.354%2C4.841%20-32.587%2C5.257%20-34.577%2C6.089C-36.565%2C6.92%20-38.22%2C8.086%20-39.541%2C9.585C-40.861%2C11.085%20-41.766%2C12.862%20-42.255%2C14.916L-46.95%2C14.916C-45.874%2C10.189%20-43.673%2C6.521%20-40.348%2C3.913C-37.022%2C1.304%20-32.865%2C0%20-27.876%2C0L-19.073%2C0C-14.085%2C0%20-9.928%2C1.304%20-6.602%2C3.913C-3.277%2C6.521%20-1.076%2C10.189%200%2C14.916%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
4473
4790
 
4474
- var _excluded$b = ["variant", "size", "color", "className"];
4791
+ var _excluded$c = ["variant", "size", "color", "className"];
4475
4792
  var logoMap = {
4476
4793
  horizontal: horizontalLogo,
4477
4794
  vertical: verticalLogo,
4478
4795
  icon: onlyIconLogo
4479
4796
  };
4480
- var sizeClasses$1 = {
4797
+ var sizeClasses$2 = {
4481
4798
  xs: 'h-6',
4482
4799
  sm: 'h-8',
4483
4800
  md: 'h-12',
@@ -4546,12 +4863,12 @@ var Logo = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4546
4863
  _ref$color = _ref.color,
4547
4864
  color = _ref$color === void 0 ? 'default' : _ref$color,
4548
4865
  className = _ref.className,
4549
- props = _objectWithoutProperties(_ref, _excluded$b);
4866
+ props = _objectWithoutProperties(_ref, _excluded$c);
4550
4867
  var logoSrc = logoMap[variant];
4551
4868
  var colorValue = getColorValue$1(color);
4552
4869
  return jsx("div", _objectSpread2(_objectSpread2({
4553
4870
  ref: ref,
4554
- className: cn('inline-flex items-center justify-center flex-shrink-0', sizeClasses$1[size], widthClasses[variant][size], className)
4871
+ className: cn('inline-flex items-center justify-center flex-shrink-0', sizeClasses$2[size], widthClasses[variant][size], className)
4555
4872
  }, props), {}, {
4556
4873
  children: jsx("div", {
4557
4874
  className: "w-full h-full",
@@ -4587,7 +4904,7 @@ var settingsIcon = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encodin
4587
4904
 
4588
4905
  var streakIcon = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20355%20355%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3Aserif%3D%22http%3A%2F%2Fwww.serif.com%2F%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A2%3B%22%3E%20%20%20%20%3Cg%20transform%3D%22matrix%281%2C0%2C0%2C1%2C-28613.284073%2C-17847.031094%29%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22Mesa-de-trabajo10%22%20serif%3Aid%3D%22Mesa%20de%20trabajo10%22%20transform%3D%22matrix%281%2C0%2C0%2C1%2C19212.93542%2C2149.205856%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%229400.349%22%20y%3D%2215697.825%22%20width%3D%22354.25%22%20height%3D%22354.25%22%20style%3D%22fill%3Anone%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%28-4.166667%2C-0%2C0%2C-4.166667%2C9481.636926%2C15989.45809%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0.269%2C15.399L0.269%2C32.865C0.365%2C33.956%200.501%2C37.611%20-1.667%2C39.964C-2.83%2C41.227%20-4.604%2C42.231%20-7.413%2C42.231C-8.788%2C42.231%20-9.904%2C41.116%20-9.904%2C39.74L-9.904%2C33.323C-9.994%2C33.175%20-10.156%2C33.01%20-10.442%2C33.003L-10.442%2C45.325C-10.396%2C46.313%20-10.408%2C50.299%20-13.393%2C52.829C-14.793%2C54.015%20-16.859%2C54.95%20-19.985%2C54.95C-21.06%2C54.95%20-22.013%2C54.261%20-22.35%2C53.241C-22.688%2C52.221%20-22.333%2C51.099%20-21.471%2C50.458C-21.471%2C50.458%20-19.635%2C48.921%20-19.635%2C45.595C-19.635%2C44.323%20-19.643%2C43.029%20-19.862%2C41.841C-20.018%2C40.995%20-20.268%2C40.204%20-20.834%2C39.599C-21.67%2C38.708%20-23.087%2C38.316%20-25.314%2C38.316C-25.369%2C38.316%20-25.424%2C38.314%20-25.479%2C38.31C-25.479%2C38.31%20-27.186%2C38.158%20-28.2%2C39.358C-28.671%2C39.916%20-28.931%2C40.758%20-28.931%2C41.961C-28.931%2C44.077%20-29.818%2C45.318%20-30.926%2C46.004C-31.939%2C46.632%20-33.357%2C46.847%20-35.025%2C46.357C-36.917%2C45.802%20-39.358%2C44.227%20-41.553%2C41.884C-44.694%2C38.531%20-47.343%2C33.638%20-47.343%2C28.469L-47.343%2C15.399L-47.379%2C15.399C-47.367%2C15.338%20-47.355%2C15.278%20-47.343%2C15.217C-46.737%2C12.199%20-45.543%2C9.555%20-43.762%2C7.285C-43.442%2C6.877%20-43.106%2C6.485%20-42.755%2C6.109C-42.32%2C5.644%20-41.861%2C5.204%20-41.379%2C4.789C-41.048%2C4.484%20-40.705%2C4.193%20-40.348%2C3.913C-37.022%2C1.304%20-32.865%2C0%20-27.876%2C0L-19.073%2C0C-14.085%2C0%20-9.928%2C1.304%20-6.602%2C3.913C-5.755%2C4.577%20-4.981%2C5.31%20-4.28%2C6.112C-4.146%2C6.265%20-4.015%2C6.421%20-3.886%2C6.579C-3.687%2C6.809%20-3.492%2C7.044%20-3.303%2C7.285C-1.531%2C9.545%20-0.34%2C12.174%200.269%2C15.175C0.284%2C15.25%200.299%2C15.324%200.313%2C15.399L0.269%2C15.399ZM-42.36%2C15.399L-42.36%2C28.469C-42.36%2C33.093%20-39.41%2C37.361%20-36.526%2C39.805C-35.716%2C40.491%20-34.913%2C41.031%20-34.177%2C41.365C-34.093%2C41.403%20-33.999%2C41.439%20-33.904%2C41.471C-33.81%2C39.015%20-33.008%2C37.328%20-32.005%2C36.142C-29.669%2C33.377%20-25.933%2C33.321%20-25.255%2C33.335L-25.314%2C33.333C-21.203%2C33.333%20-18.742%2C34.546%20-17.199%2C36.191C-16.374%2C37.072%20-15.809%2C38.126%20-15.425%2C39.286L-15.425%2C32.857L-15.425%2C32.825C-15.425%2C32.825%20-15.371%2C30.493%20-13.647%2C29.087C-12.926%2C28.499%20-11.92%2C28.02%20-10.463%2C28.02C-6.093%2C28.02%20-5.002%2C32.229%20-5.002%2C32.229C-4.948%2C32.434%20-4.921%2C32.645%20-4.921%2C32.857L-4.921%2C35.978C-4.359%2C34.812%20-4.679%2C33.375%20-4.679%2C33.375C-4.702%2C33.239%20-4.714%2C33.1%20-4.714%2C32.962L-4.714%2C15.399L-4.839%2C15.399C-5.03%2C14.658%20-5.269%2C13.945%20-5.556%2C13.259C-6.416%2C11.201%20-7.623%2C9.488%20-9.175%2C8.12C-9.867%2C7.511%20-10.617%2C6.987%20-11.424%2C6.548C-11.746%2C6.385%20-12.079%2C6.232%20-12.422%2C6.089C-14.41%2C5.257%20-16.628%2C4.841%20-19.073%2C4.841L-27.876%2C4.841C-30.354%2C4.841%20-32.587%2C5.257%20-34.577%2C6.089C-35.243%2C6.367%20-35.871%2C6.683%20-36.463%2C7.037C-36.963%2C7.362%20-37.439%2C7.723%20-37.891%2C8.12C-39.443%2C9.488%20-40.65%2C11.201%20-41.51%2C13.259C-41.797%2C13.945%20-42.035%2C14.658%20-42.227%2C15.399L-42.36%2C15.399Z%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
4589
4906
 
4590
- var _excluded$a = ["name", "size", "color", "className"];
4907
+ var _excluded$b = ["name", "size", "color", "className"];
4591
4908
  var iconMap = {
4592
4909
  chat: chatIcon,
4593
4910
  friends: friendsIcon,
@@ -4600,7 +4917,7 @@ var iconMap = {
4600
4917
  settings: settingsIcon,
4601
4918
  streak: streakIcon
4602
4919
  };
4603
- var sizeClasses = {
4920
+ var sizeClasses$1 = {
4604
4921
  xs: 'w-4 h-4',
4605
4922
  sm: 'w-6 h-6',
4606
4923
  md: 'w-8 h-8',
@@ -4638,12 +4955,12 @@ var Icon = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4638
4955
  _ref$color = _ref.color,
4639
4956
  color = _ref$color === void 0 ? 'default' : _ref$color,
4640
4957
  className = _ref.className,
4641
- props = _objectWithoutProperties(_ref, _excluded$a);
4958
+ props = _objectWithoutProperties(_ref, _excluded$b);
4642
4959
  var iconSrc = iconMap[name];
4643
4960
  var colorValue = getColorValue(color);
4644
4961
  return jsx("div", _objectSpread2(_objectSpread2({
4645
4962
  ref: ref,
4646
- className: cn('inline-flex items-center justify-center flex-shrink-0', sizeClasses[size], className)
4963
+ className: cn('inline-flex items-center justify-center flex-shrink-0', sizeClasses$1[size], className)
4647
4964
  }, props), {}, {
4648
4965
  children: jsx("div", {
4649
4966
  className: "w-full h-full",
@@ -4659,7 +4976,7 @@ var Icon = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4659
4976
  });
4660
4977
  Icon.displayName = 'Icon';
4661
4978
 
4662
- var _excluded$9 = ["count", "size", "color", "className"];
4979
+ var _excluded$a = ["count", "size", "color", "className"];
4663
4980
  var textSizeClasses = {
4664
4981
  xs: 'text-xs',
4665
4982
  sm: 'text-sm',
@@ -4684,7 +5001,7 @@ var Streak = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4684
5001
  _ref$color = _ref.color,
4685
5002
  color = _ref$color === void 0 ? 'girasol' : _ref$color,
4686
5003
  className = _ref.className,
4687
- props = _objectWithoutProperties(_ref, _excluded$9);
5004
+ props = _objectWithoutProperties(_ref, _excluded$a);
4688
5005
  return jsxs("div", _objectSpread2(_objectSpread2({
4689
5006
  ref: ref,
4690
5007
  className: cn('inline-flex items-center gap-1', className)
@@ -4701,7 +5018,7 @@ var Streak = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4701
5018
  });
4702
5019
  Streak.displayName = 'Streak';
4703
5020
 
4704
- var _excluded$8 = ["message", "name", "time", "emoji", "variant", "bgColor", "messageColor", "headerColor", "className", "style"];
5021
+ var _excluded$9 = ["message", "name", "time", "emoji", "variant", "bgColor", "messageColor", "headerColor", "className", "style"];
4705
5022
  var ChatMessage = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4706
5023
  var message = _ref.message,
4707
5024
  name = _ref.name,
@@ -4714,7 +5031,7 @@ var ChatMessage = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4714
5031
  headerColor = _ref.headerColor,
4715
5032
  className = _ref.className,
4716
5033
  style = _ref.style,
4717
- props = _objectWithoutProperties(_ref, _excluded$8);
5034
+ props = _objectWithoutProperties(_ref, _excluded$9);
4718
5035
  var isSent = variant === 'sent';
4719
5036
  // Colores por defecto según variante, sobreescribibles via props
4720
5037
  var defaultBg = isSent ? 'bosque' : 'lima';
@@ -4775,7 +5092,7 @@ var meltEmoji = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3
4775
5092
 
4776
5093
  var mewingEmoji = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20100%20100%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3Aserif%3D%22http%3A%2F%2Fwww.serif.com%2F%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A2%3B%22%3E%20%20%20%20%3Cg%20transform%3D%22matrix%281%2C0%2C0%2C1%2C-24613.647556%2C-8280.586411%29%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22Mesa-de-trabajo7%22%20serif%3Aid%3D%22Mesa%20de%20trabajo7%22%20transform%3D%22matrix%280.126773%2C0%2C0%2C0.126773%2C23935.683955%2C7244.981668%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%225347.875%22%20y%3D%228169%22%20width%3D%22788.814%22%20height%3D%22788.814%22%20style%3D%22fill%3Anone%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%281.605505%2C0%2C0%2C10.594615%2C-11297.766966%2C-124160.181479%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10775.590065%2C12518.555122%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C0.033C0.215%2C-14.433%20-1.653%2C-30.535%20-16.714%2C-36.156C-23.707%2C-38.817%20-31.361%2C-38.867%20-38.784%2C-38.801C-53.25%2C-39.016%20-69.368%2C-37.148%20-74.989%2C-22.087C-77.601%2C-15.094%20-77.651%2C-7.439%20-77.585%2C0.033C-77.8%2C14.515%20-75.932%2C30.617%20-60.871%2C36.238C-53.878%2C38.85%20-46.224%2C38.9%20-38.784%2C38.834C-24.319%2C39.049%20-8.216%2C37.18%20-2.596%2C22.12C0.033%2C15.077%200.066%2C7.423%200%2C0.033%22%20style%3D%22fill%3Argb%28180%2C222%2C110%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10528.926254%2C12507.635034%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C0.969C2.711%2C0.8%205.383%2C0.244%207.935%2C-0.684C9.159%2C-1.147%2010.347%2C-1.7%2011.49%2C-2.337C12.664%2C-2.966%2013.788%2C-3.726%2015.061%2C-4.553L15.16%2C-4.553C15.915%2C-5.04%2016.921%2C-4.834%2017.425%2C-4.09C17.704%2C-3.664%2017.771%2C-3.133%2017.607%2C-2.652C16.245%2C0.823%2013.411%2C3.512%209.87%2C4.689C6.398%2C6.009%202.526%2C5.774%20-0.76%2C4.044C-1.538%2C3.591%20-1.81%2C2.599%20-1.372%2C1.812C-1.103%2C1.353%20-0.629%2C1.051%20-0.099%2C1.002L0%2C0.969Z%22%20style%3D%22fill%3Argb%28100%2C140%2C44%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10548.211052%2C12517.448342%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C-2.857C2.641%2C-1.889%205.484%2C-1.599%208.266%2C-2.014C9.564%2C-2.266%2010.821%2C-2.694%2012.002%2C-3.287C13.289%2C-3.977%2014.527%2C-4.756%2015.705%2C-5.618C16.35%2C-6.076%2017.243%2C-5.929%2017.706%2C-5.287C17.989%2C-4.886%2018.045%2C-4.367%2017.855%2C-3.915C16.277%2C-0.303%2012.969%2C2.258%209.076%2C2.88C7.125%2C3.219%205.12%2C3.072%203.24%2C2.45C1.442%2C1.871%20-0.187%2C0.861%20-1.504%2C-0.493C-2.055%2C-1.053%20-2.055%2C-1.95%20-1.504%2C-2.51C-1.136%2C-2.864%20-0.604%2C-2.991%20-0.116%2C-2.84L0%2C-2.857Z%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10686.421875%2C12515.197465%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C-8.881C2.14%2C-7.067%204.696%2C-5.811%207.439%2C-5.227C8.746%2C-5.018%2010.076%2C-4.99%2011.391%2C-5.145C12.838%2C-5.351%2014.269%2C-5.661%2015.672%2C-6.071C16.434%2C-6.283%2017.225%2C-5.839%2017.441%2C-5.079C17.563%2C-4.6%2017.439%2C-4.092%2017.111%2C-3.723C14.366%2C-0.91%2010.389%2C0.333%206.53%2C-0.417C4.58%2C-0.765%202.747%2C-1.589%201.19%2C-2.814C-0.295%2C-3.976%20-1.47%2C-5.486%20-2.232%2C-7.211C-2.51%2C-7.946%20-2.14%2C-8.766%20-1.405%2C-9.044C-0.957%2C-9.214%20-0.454%2C-9.146%20-0.066%2C-8.865L0%2C-8.881Z%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10663.703479%2C12526.470683%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C6.25C0.98%2C5.723%201.915%2C5.114%202.794%2C4.431C3.105%2C4.179%203.373%2C3.877%203.587%2C3.539C3.673%2C3.397%203.729%2C3.24%203.753%2C3.076C3.733%2C2.906%203.676%2C2.742%203.587%2C2.596C3.373%2C2.258%203.105%2C1.956%202.794%2C1.704C1.911%2C1.026%200.977%2C0.419%200%2C-0.115C-0.427%2C-0.362%20-0.573%2C-0.908%20-0.326%2C-1.335C-0.322%2C-1.341%20-0.318%2C-1.348%20-0.314%2C-1.355C-0.195%2C-1.567%200.01%2C-1.718%200.248%2C-1.768C1.712%2C-2.12%203.252%2C-1.981%204.629%2C-1.371C5.44%2C-1.036%206.167%2C-0.529%206.762%2C0.117C8.328%2C1.804%208.328%2C4.414%206.762%2C6.101C6.163%2C6.741%205.436%2C7.248%204.629%2C7.589C3.233%2C8.213%201.674%2C8.37%200.182%2C8.035C-0.306%2C7.921%20-0.61%2C7.433%20-0.496%2C6.944C-0.433%2C6.703%20-0.279%2C6.495%20-0.066%2C6.366L0%2C6.25Z%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10656.884448%2C12521.48376%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C6.323C0.978%2C5.785%201.912%2C5.171%202.794%2C4.488C3.1%2C4.237%203.368%2C3.941%203.587%2C3.612C3.674%2C3.465%203.73%2C3.302%203.753%2C3.132C3.733%2C2.963%203.676%2C2.799%203.587%2C2.653C3.372%2C2.32%203.104%2C2.024%202.794%2C1.777C1.916%2C1.088%200.981%2C0.474%200%2C-0.058C-0.427%2C-0.305%20-0.573%2C-0.851%20-0.326%2C-1.278C-0.322%2C-1.285%20-0.318%2C-1.292%20-0.314%2C-1.298C-0.195%2C-1.511%200.01%2C-1.661%200.248%2C-1.712C1.713%2C-2.055%203.25%2C-1.916%204.629%2C-1.315C5.44%2C-0.98%206.167%2C-0.472%206.762%2C0.173C8.328%2C1.86%208.328%2C4.47%206.762%2C6.158C6.163%2C6.797%205.436%2C7.304%204.629%2C7.646C3.248%2C8.239%201.713%2C8.378%200.248%2C8.042C-0.24%2C7.928%20-0.543%2C7.44%20-0.43%2C6.951C-0.372%2C6.712%20-0.216%2C6.508%200%2C6.389L0%2C6.323Z%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10586.818862%2C12525.048135%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C17.335C-1.446%2C13.818%20-3.595%2C10.634%20-6.315%2C7.978C-7.674%2C6.725%20-9.159%2C5.617%20-10.746%2C4.671C-12.41%2C3.689%20-14.145%2C2.833%20-15.937%2C2.109C-16.687%2C1.878%20-17.109%2C1.083%20-16.879%2C0.332C-16.857%2C0.261%20-16.829%2C0.192%20-16.797%2C0.125C-16.585%2C-0.378%20-16.102%2C-0.713%20-15.557%2C-0.735C-13.239%2C-0.826%20-10.93%2C-0.402%20-8.795%2C0.505C-6.621%2C1.406%20-4.636%2C2.707%20-2.943%2C4.341C0.477%2C7.573%202.49%2C12.02%202.662%2C16.723C2.68%2C17.49%202.073%2C18.126%201.306%2C18.145L1.273%2C18.145C0.705%2C18.161%200.186%2C17.826%20-0.033%2C17.302L0%2C17.335Z%22%20style%3D%22fill%3Argb%28100%2C140%2C44%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10641.273015%2C12540.151137%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C3.852C-13.139%2C3.769%20-25.949%2C-0.263%20-36.767%2C-7.72C-34.602%2C-0.331%20-30.32%2C5.935%20-22.087%2C9.01C-15.094%2C11.622%20-7.439%2C11.672%200%2C11.606C14.466%2C11.82%2030.568%2C9.952%2036.189%2C-5.108C36.552%2C-6.051%2036.85%2C-7.01%2037.114%2C-7.968C26.225%2C-0.361%2013.283%2C3.76%200%2C3.852%22%20style%3D%22fill%3Argb%28100%2C140%2C44%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10732.08863%2C12498.744325%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C8.727C-0.716%2C7.204%20-1.586%2C5.758%20-2.596%2C4.412L-3.257%2C4.313C-4.533%2C4.079%20-5.793%2C3.758%20-7.026%2C3.354C-9.568%2C2.41%20-11.962%2C1.107%20-14.135%2C-0.514L-14.218%2C-0.514C-14.988%2C-1.004%20-16.01%2C-0.775%20-16.499%2C-0.004C-16.737%2C0.37%20-16.814%2C0.823%20-16.714%2C1.255C-15.308%2C4.698%20-12.49%2C7.372%20-8.977%2C8.595C-6.092%2C9.684%20-2.916%2C9.731%200%2C8.727%22%20style%3D%22fill%3Argb%28100%2C140%2C44%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%284.050659%2C-0.127195%2C0.839348%2C0.613836%2C10614.352437%2C12544.46919%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C4.131C-0.57%2C3.71%20-1.259%2C3.479%20-1.967%2C3.47C-1.362%2C1.747%20-2.268%2C-0.14%20-3.991%2C-0.745C-4.787%2C-1.025%20-5.66%2C-0.99%20-6.431%2C-0.647C-6.353%2C-2.471%20-7.77%2C-4.013%20-9.594%2C-4.091C-10.079%2C-4.111%20-10.563%2C-4.025%20-11.01%2C-3.837L-5.77%2C-10.45C-4.652%2C-11.895%20-4.917%2C-13.971%20-6.361%2C-15.089C-6.379%2C-15.102%20-6.397%2C-15.116%20-6.414%2C-15.129C-7.906%2C-16.067%20-9.865%2C-15.732%20-10.961%2C-14.352L-21.376%2C-1.308L-21.707%2C-0.878C-21.581%2C-2.736%20-21.886%2C-4.597%20-22.599%2C-6.317C-23.411%2C-7.552%20-24.943%2C-8.098%20-26.352%2C-7.656C-28.138%2C-6.995%20-27.89%2C-5.358%20-28.005%2C-3.308L-28.452%2C2.18C-28.906%2C7.344%20-26.792%2C12.4%20-22.798%2C15.703L-20.334%2C17.588C-17.303%2C20.017%20-13.046%2C20.198%20-9.82%2C18.034L-7.489%2C16.497C-4.477%2C14.481%20-1.79%2C12.017%200.479%2C9.19C1.744%2C7.665%201.534%2C5.403%200.009%2C4.138C0.006%2C4.136%200.003%2C4.133%200%2C4.131%22%20style%3D%22fill%3Argb%2856%2C53%2C23%29%3Bfill-rule%3Anonzero%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
4777
5094
 
4778
- var _excluded$7 = ["className", "name", "size", "alt"];
5095
+ var _excluded$8 = ["className", "name", "size", "alt"];
4779
5096
  // Mapeo de nombres a URLs de emojis
4780
5097
  var emojiMap = {
4781
5098
  crazy: crazyEmoji,
@@ -4802,7 +5119,7 @@ var Emoji = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4802
5119
  _ref$size = _ref.size,
4803
5120
  size = _ref$size === void 0 ? 'md' : _ref$size,
4804
5121
  alt = _ref.alt,
4805
- props = _objectWithoutProperties(_ref, _excluded$7);
5122
+ props = _objectWithoutProperties(_ref, _excluded$8);
4806
5123
  var emojiSrc = emojiMap[name];
4807
5124
  if (!emojiSrc) {
4808
5125
  console.warn("Emoji \"".concat(name, "\" not found"));
@@ -4818,7 +5135,7 @@ var Emoji = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4818
5135
  });
4819
5136
  Emoji.displayName = 'Emoji';
4820
5137
 
4821
- var _excluded$6 = ["questionLabel", "questionText", "labelEmoji", "state", "respondents", "respondButtonLabel", "onRespond", "bgColor", "labelBgColor", "labelTextColor", "buttonBgColor", "buttonTextColor", "respondedTextColor", "questionTextColor", "answerBgColor", "answerTextColor", "className", "style"];
5138
+ var _excluded$7 = ["questionLabel", "questionText", "labelEmoji", "state", "respondents", "respondButtonLabel", "onRespond", "bgColor", "labelBgColor", "labelTextColor", "buttonBgColor", "buttonTextColor", "respondedTextColor", "questionTextColor", "answerBgColor", "answerTextColor", "className", "style"];
4822
5139
  // ── Defaults por color ────────────────────────────────────────────
4823
5140
  var DEFAULT_COLORS = {
4824
5141
  bgColor: 'koala',
@@ -4854,7 +5171,7 @@ var QuestionCard = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4854
5171
  answerTextColor = _ref.answerTextColor,
4855
5172
  className = _ref.className,
4856
5173
  style = _ref.style,
4857
- props = _objectWithoutProperties(_ref, _excluded$6);
5174
+ props = _objectWithoutProperties(_ref, _excluded$7);
4858
5175
  var resolved = {
4859
5176
  bg: colors[bgColor !== null && bgColor !== void 0 ? bgColor : DEFAULT_COLORS.bgColor],
4860
5177
  labelBg: colors[labelBgColor !== null && labelBgColor !== void 0 ? labelBgColor : DEFAULT_COLORS.labelBgColor],
@@ -4943,7 +5260,7 @@ var QuestionCard = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4943
5260
  });
4944
5261
  QuestionCard.displayName = 'QuestionCard';
4945
5262
 
4946
- var _excluded$5 = ["variant", "name", "emoji", "avatars", "showChevron", "isSelected", "bgColor", "nameColor", "chevronColor", "avatarRingColor", "className", "style", "onClick"];
5263
+ var _excluded$6 = ["variant", "name", "emoji", "avatars", "showChevron", "isSelected", "bgColor", "nameColor", "chevronColor", "avatarRingColor", "className", "style", "onClick"];
4947
5264
  // ── Componente ────────────────────────────────────────────────────
4948
5265
  var FriendListItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4949
5266
  var _ref$variant = _ref.variant,
@@ -4963,7 +5280,7 @@ var FriendListItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4963
5280
  className = _ref.className,
4964
5281
  style = _ref.style,
4965
5282
  onClick = _ref.onClick,
4966
- props = _objectWithoutProperties(_ref, _excluded$5);
5283
+ props = _objectWithoutProperties(_ref, _excluded$6);
4967
5284
  var resolved = {
4968
5285
  bg: colors[bgColor !== null && bgColor !== void 0 ? bgColor : 'marmol'],
4969
5286
  name: colors[nameColor !== null && nameColor !== void 0 ? nameColor : 'olivo'],
@@ -4996,18 +5313,12 @@ var FriendListItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
4996
5313
  children: name
4997
5314
  })]
4998
5315
  }) : jsxs(Fragment, {
4999
- children: [jsx("span", {
5000
- className: "friend-list-item__avatar-stack",
5001
- children: avatars.slice(0, 4).map(function (av, i) {
5002
- return jsx(Avatar, {
5003
- emoji: av.emoji,
5004
- size: 40,
5005
- className: "friend-list-item__stack-avatar",
5006
- style: {
5007
- zIndex: avatars.length - i
5008
- }
5009
- }, i);
5010
- })
5316
+ children: [jsx(AvatarGroup, {
5317
+ avatars: avatars,
5318
+ max: 4,
5319
+ size: 40,
5320
+ ringColor: avatarRingColor,
5321
+ className: "friend-list-item__avatar-stack"
5011
5322
  }), name && jsx("span", {
5012
5323
  className: "friend-list-item__name",
5013
5324
  children: name
@@ -5044,7 +5355,7 @@ var face5 = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22
5044
5355
 
5045
5356
  var face6 = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20100%20100%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3Aserif%3D%22http%3A%2F%2Fwww.serif.com%2F%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A2%3B%22%3E%20%20%20%20%3Cg%20transform%3D%22matrix%281%2C0%2C0%2C1%2C-24936.620621%2C-8515.048319%29%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22Mesa-de-trabajo7%22%20serif%3Aid%3D%22Mesa%20de%20trabajo7%22%20transform%3D%22matrix%280.126773%2C0%2C0%2C0.126773%2C24258.657021%2C7479.443576%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20x%3D%225347.875%22%20y%3D%228169%22%20width%3D%22788.814%22%20height%3D%22788.814%22%20style%3D%22fill%3Anone%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20transform%3D%22matrix%2814.552328%2C0%2C0%2C14.552328%2C5404.128905%2C8888.799472%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%2C-14.916L4.744%2C-14.916C5.233%2C-12.862%206.138%2C-11.085%207.458%2C-9.585C8.779%2C-8.086%2010.433%2C-6.92%2012.422%2C-6.089C14.41%2C-5.257%2016.628%2C-4.841%2019.073%2C-4.841L27.876%2C-4.841C30.354%2C-4.841%2032.587%2C-5.257%2034.577%2C-6.089C36.565%2C-6.92%2038.22%2C-8.086%2039.541%2C-9.585C40.861%2C-11.085%2041.766%2C-12.862%2042.255%2C-14.916L46.95%2C-14.916C45.874%2C-10.189%2043.673%2C-6.521%2040.348%2C-3.913C37.022%2C-1.304%2032.865%2C0%2027.876%2C0L19.073%2C0C14.085%2C0%209.928%2C-1.304%206.602%2C-3.913C3.277%2C-6.521%201.076%2C-10.189%200%2C-14.916ZM46.95%2C-29.804L42.206%2C-29.804C41.717%2C-31.858%2040.812%2C-33.635%2039.492%2C-35.135C38.171%2C-36.634%2036.517%2C-37.8%2034.528%2C-38.631C32.54%2C-39.463%2030.322%2C-39.879%2027.877%2C-39.879L19.074%2C-39.879C16.596%2C-39.879%2014.363%2C-39.463%2012.373%2C-38.631C10.385%2C-37.8%208.73%2C-36.634%207.409%2C-35.135C6.089%2C-33.635%205.184%2C-31.858%204.695%2C-29.804L0%2C-29.804C1.076%2C-34.531%203.277%2C-38.199%206.602%2C-40.807C9.928%2C-43.416%2014.085%2C-44.72%2019.074%2C-44.72L27.877%2C-44.72C32.865%2C-44.72%2037.022%2C-43.416%2040.348%2C-40.807C43.673%2C-38.199%2045.874%2C-34.531%2046.95%2C-29.804ZM20.023%2C-18.819L17.238%2C-18.819L14.761%2C-24.471C14.638%2C-24.744%2014.535%2C-25.031%2014.453%2C-25.331C14.372%2C-25.631%2014.317%2C-25.87%2014.29%2C-26.048C14.262%2C-25.87%2014.211%2C-25.631%2014.136%2C-25.331C14.061%2C-25.031%2013.962%2C-24.744%2013.839%2C-24.471L11.361%2C-18.819L8.556%2C-18.819L12.815%2C-28.239L15.744%2C-28.239L20.023%2C-18.819ZM37.783%2C-18.819L34.998%2C-18.819L32.521%2C-24.471C32.398%2C-24.744%2032.295%2C-25.031%2032.213%2C-25.331C32.132%2C-25.631%2032.077%2C-25.87%2032.05%2C-26.048C32.022%2C-25.87%2031.971%2C-25.631%2031.896%2C-25.331C31.821%2C-25.031%2031.722%2C-24.744%2031.599%2C-24.471L29.121%2C-18.819L26.316%2C-18.819L30.575%2C-28.239L33.504%2C-28.239L37.783%2C-18.819Z%22%20style%3D%22fill%3Argb%280%2C132%2C255%29%3B%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
5046
5357
 
5047
- var _excluded$4 = ["className", "name", "size", "color", "backgroundColor", "repeat", "width", "height", "padding", "rounded", "style"];
5358
+ var _excluded$5 = ["className", "name", "size", "color", "backgroundColor", "repeat", "width", "height", "padding", "rounded", "style"];
5048
5359
  // Mapeo de nombres a URLs de patrones
5049
5360
  var patternMap = {
5050
5361
  face1: face1,
@@ -5080,7 +5391,7 @@ var Pattern = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5080
5391
  _ref$rounded = _ref.rounded,
5081
5392
  rounded = _ref$rounded === void 0 ? 'none' : _ref$rounded,
5082
5393
  style = _ref.style,
5083
- props = _objectWithoutProperties(_ref, _excluded$4);
5394
+ props = _objectWithoutProperties(_ref, _excluded$5);
5084
5395
  var patternSrc = patternMap[name];
5085
5396
  if (!patternSrc) {
5086
5397
  console.warn("Pattern \"".concat(name, "\" not found"));
@@ -5153,7 +5464,7 @@ function getHueRotation(color) {
5153
5464
  return hueMap[color] || 0;
5154
5465
  }
5155
5466
 
5156
- var _excluded$3 = ["className", "patterns", "backgroundColor", "gap", "direction", "columns", "size", "padding", "rounded", "style"];
5467
+ var _excluded$4 = ["className", "patterns", "backgroundColor", "gap", "direction", "columns", "size", "padding", "rounded", "style"];
5157
5468
  var PatternGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5158
5469
  var className = _ref.className,
5159
5470
  _ref$patterns = _ref.patterns,
@@ -5173,7 +5484,7 @@ var PatternGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5173
5484
  _ref$rounded = _ref.rounded,
5174
5485
  rounded = _ref$rounded === void 0 ? 'none' : _ref$rounded,
5175
5486
  style = _ref.style,
5176
- props = _objectWithoutProperties(_ref, _excluded$3);
5487
+ props = _objectWithoutProperties(_ref, _excluded$4);
5177
5488
  var roundedClasses = {
5178
5489
  none: '',
5179
5490
  sm: 'rounded-sm',
@@ -5215,7 +5526,7 @@ var PatternGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5215
5526
  });
5216
5527
  PatternGroup.displayName = 'PatternGroup';
5217
5528
 
5218
- var _excluded$2 = ["className", "width", "height", "patternSize", "gap", "patterns", "colors", "randomRotation", "randomScale", "randomOpacity", "backgroundColor", "rounded", "padding", "style"];
5529
+ var _excluded$3 = ["className", "width", "height", "patternSize", "gap", "patterns", "colors", "randomRotation", "randomScale", "randomOpacity", "backgroundColor", "rounded", "padding", "style"];
5219
5530
  var allPatterns = ['face1', 'face2', 'face3', 'face4', 'face5', 'face6'];
5220
5531
  var defaultColors = ['bosque', 'lima', 'coral', 'aqua', 'lavanda', 'electrico'];
5221
5532
  var PatternFill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
@@ -5245,7 +5556,7 @@ var PatternFill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5245
5556
  _ref$padding = _ref.padding,
5246
5557
  padding = _ref$padding === void 0 ? 0 : _ref$padding,
5247
5558
  style = _ref.style,
5248
- props = _objectWithoutProperties(_ref, _excluded$2);
5559
+ props = _objectWithoutProperties(_ref, _excluded$3);
5249
5560
  var containerRef = useRef(null);
5250
5561
  var _useState = useState([]),
5251
5562
  _useState2 = _slicedToArray(_useState, 2),
@@ -5330,7 +5641,7 @@ var PatternFill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5330
5641
  });
5331
5642
  PatternFill.displayName = 'PatternFill';
5332
5643
 
5333
- var _excluded$1 = ["className", "variant", "logoVariant", "logoSize", "logoColor", "backgroundColor", "textColor", "activeColor", "activeIconColor", "navItemsBgColor", "buttonColor", "buttonTextColor", "buttonBorderColor", "currentLanguage", "onLanguageClick", "onActionClick", "customLogo", "isRegister", "buttonText", "navItems", "navigate"];
5644
+ var _excluded$2 = ["className", "variant", "logoVariant", "logoSize", "logoColor", "backgroundColor", "textColor", "activeColor", "activeIconColor", "navItemsBgColor", "buttonColor", "buttonTextColor", "buttonBorderColor", "currentLanguage", "onLanguageClick", "onActionClick", "customLogo", "isRegister", "buttonText", "navItems", "navigate"];
5334
5645
  var Navbar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5335
5646
  var className = _ref.className,
5336
5647
  _ref$variant = _ref.variant,
@@ -5364,7 +5675,7 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5364
5675
  _ref$navItems = _ref.navItems,
5365
5676
  navItems = _ref$navItems === void 0 ? [] : _ref$navItems,
5366
5677
  navigate = _ref.navigate,
5367
- props = _objectWithoutProperties(_ref, _excluded$1);
5678
+ props = _objectWithoutProperties(_ref, _excluded$2);
5368
5679
  // Determinar el texto del botón para nologin
5369
5680
  var defaultButtonText = isRegister ? 'Registrarse' : 'Iniciar Sesión';
5370
5681
  var finalButtonText = buttonText || defaultButtonText;
@@ -5457,6 +5768,49 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5457
5768
  });
5458
5769
  Navbar.displayName = 'Navbar';
5459
5770
 
5771
+ var _excluded$1 = ["className", "items", "activeId", "onChange", "variant", "fullWidth"];
5772
+ var Tabs = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
5773
+ var className = _ref.className,
5774
+ _ref$items = _ref.items,
5775
+ items = _ref$items === void 0 ? [] : _ref$items,
5776
+ activeId = _ref.activeId,
5777
+ onChange = _ref.onChange,
5778
+ _ref$variant = _ref.variant,
5779
+ variant = _ref$variant === void 0 ? 'default' : _ref$variant,
5780
+ _ref$fullWidth = _ref.fullWidth,
5781
+ fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
5782
+ props = _objectWithoutProperties(_ref, _excluded$1);
5783
+ return jsx("div", _objectSpread2(_objectSpread2({
5784
+ ref: ref,
5785
+ className: cn('aloha-tabs', "aloha-tabs--".concat(variant), fullWidth && 'aloha-tabs--full-width', className)
5786
+ }, props), {}, {
5787
+ children: jsx("div", {
5788
+ className: "aloha-tabs__list",
5789
+ role: "tablist",
5790
+ children: items.map(function (tab) {
5791
+ var isActive = tab.id === activeId;
5792
+ return jsxs("button", {
5793
+ type: "button",
5794
+ role: "tab",
5795
+ "aria-selected": isActive,
5796
+ onClick: function onClick() {
5797
+ return onChange(tab.id);
5798
+ },
5799
+ className: cn('aloha-tabs__trigger', isActive && 'aloha-tabs__trigger--active'),
5800
+ children: [tab.icon && jsx("span", {
5801
+ className: "aloha-tabs__icon",
5802
+ children: tab.icon
5803
+ }), jsx("span", {
5804
+ className: "aloha-tabs__label",
5805
+ children: tab.label
5806
+ })]
5807
+ }, tab.id);
5808
+ })
5809
+ })
5810
+ }));
5811
+ });
5812
+ Tabs.displayName = 'Tabs';
5813
+
5460
5814
  var _excluded = ["columns", "rows", "gap", "children", "className", "responsive", "autoFit", "backgroundColor", "padding", "rounded", "style"],
5461
5815
  _excluded2 = ["children", "className", "colSpan", "rowSpan", "colStart", "rowStart", "backgroundColor", "padding", "rounded", "flex", "flexDirection", "align", "justify", "style"];
5462
5816
  var Grid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
@@ -5665,6 +6019,18 @@ var FullPage = function FullPage(_ref) {
5665
6019
  });
5666
6020
  };
5667
6021
 
6022
+ var sizeClasses = {
6023
+ sm: 'w-8 h-8',
6024
+ md: 'w-12 h-12',
6025
+ lg: 'w-16 h-16',
6026
+ xl: 'w-24 h-24'
6027
+ };
6028
+ var backgroundClasses = {
6029
+ white: 'bg-white',
6030
+ gray: 'bg-gray-50',
6031
+ dark: 'bg-gray-900 text-white',
6032
+ transparent: 'bg-transparent'
6033
+ };
5668
6034
  var LoadingFullScreen = function LoadingFullScreen(_ref) {
5669
6035
  var _ref$message = _ref.message,
5670
6036
  message = _ref$message === void 0 ? 'Cargando...' : _ref$message,
@@ -5673,18 +6039,6 @@ var LoadingFullScreen = function LoadingFullScreen(_ref) {
5673
6039
  spinnerSize = _ref$spinnerSize === void 0 ? 'lg' : _ref$spinnerSize,
5674
6040
  _ref$background = _ref.background,
5675
6041
  background = _ref$background === void 0 ? 'white' : _ref$background;
5676
- var sizeClasses = {
5677
- sm: 'w-8 h-8',
5678
- md: 'w-12 h-12',
5679
- lg: 'w-16 h-16',
5680
- xl: 'w-24 h-24'
5681
- };
5682
- var backgroundClasses = {
5683
- white: 'bg-white',
5684
- gray: 'bg-gray-50',
5685
- dark: 'bg-gray-900 text-white',
5686
- transparent: 'bg-transparent'
5687
- };
5688
6042
  return jsxs("div", {
5689
6043
  className: cn('fixed inset-0 z-50 flex flex-col items-center justify-center', backgroundClasses[background], className),
5690
6044
  children: [jsx(Loader2, {
@@ -5802,5 +6156,5 @@ var ColorPalette = function ColorPalette(_ref2) {
5802
6156
  });
5803
6157
  };
5804
6158
 
5805
- export { Avatar, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatMessage, Checkbox, ColorPalette, ColorSwatch, Emoji, Error, ErrorFullScreen, FormError, FriendListItem, FullPage, Grid, GridItem, H1, H2, H3, H4, Icon, Image, Input, Lead, Link, Loading, LoadingFullScreen, Logo, Muted, Navbar, Notification, P, Pattern, PatternFill, PatternGroup, Popup, QuestionCard, SearchInput, Select, Small, Streak, Subtitle, Switch, TextDivider, Toast, badgeVariants, buttonVariants, cn, colorEntries, colors, cssVars, getColor, getCssVar, themeVars };
6159
+ export { Avatar, AvatarGroup, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatMessage, Checkbox, ColorPalette, ColorSwatch, Emoji, Error$1 as Error, ErrorFullScreen, FormError, FriendListItem, FullPage, Grid, GridItem, H1, H2, H3, H4, Icon, Image, Input, Lead, Link, Loading, LoadingFullScreen, Logo, Modal, Muted, Navbar, Notification, P, Pattern, PatternFill, PatternGroup, Popup, QuestionCard, RadioGroup, RadioGroupItem, SearchInput, Select, Small, Streak, Subtitle, Switch, Tabs, TextArea, TextDivider, Toast, badgeVariants, buttonVariants, cn, colorEntries, colors, cssVars, getColor, getCssVar, themeVars };
5806
6160
  //# sourceMappingURL=index.esm.js.map