@beweco/aurora-ui 1.0.0-beta.149 → 1.0.0-beta.151

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.cjs.js CHANGED
@@ -580,11 +580,17 @@ const CLASE_AURA = {
580
580
  ring: "linda-aura-ring",
581
581
  surface: "linda-aura",
582
582
  };
583
+ // Escala de radios de v3 y de la app móvil, no la de v2 (decisión del usuario del 1-oct, §9.1):
584
+ // `sm` y `md` = el `rounded-3xl` (24px) que `.button` de v3 trae de fábrica, `lg` = 32px como en
585
+ // móvil. Hasta la beta .149 era la de v2 (8 / 12 / 14px). Se reasigna la escala entera, así que
586
+ // los `radius="sm|md|lg"` explícitos de las apps también cambian; `none` y `full` siguen igual.
587
+ // En px arbitrarios y no `rounded-3xl`/`rounded-4xl`: el valor no depende del `--radius` que
588
+ // tenga el Tailwind de la app.
583
589
  const RADIUS_CLASS$a = {
584
590
  none: "rounded-none",
585
- sm: "rounded-[8px]",
586
- md: "rounded-[12px]",
587
- lg: "rounded-[14px]",
591
+ sm: "rounded-[24px]",
592
+ md: "rounded-[24px]",
593
+ lg: "rounded-[32px]",
588
594
  full: "rounded-full",
589
595
  };
590
596
  const SHAPE_CLASS = {
@@ -2599,15 +2605,17 @@ const paddingClasses = {
2599
2605
  lg: "p-8",
2600
2606
  };
2601
2607
 
2602
- // v3 no tiene prop `radius`: sus valores por defecto (32px) se neutralizan globalmente a 8px en
2603
- // `src/styles/neutralize-v3.css` (`.card { border-radius: 8px }`, el "sm" de v2). Para el resto de
2604
- // valores explícitos, clases arbitrarias con el valor EXACTO de v2 (`rounded-md`/`rounded-lg` de
2605
- // Tailwind no coinciden: 6px/8px en vez de 12px/14px — ver findings/tabla-mapeo-tokens.md §4).
2608
+ // v3 no tiene prop `radius`: su valor por defecto (`min(32px, --radius-3xl)` = 24px) se fija
2609
+ // globalmente a 16px en `src/styles/neutralize-v3.css` (`.card`). Los tres tamaños dan 16px, el
2610
+ // `--radius-2xl` de v3 y el radio de tarjeta de la app móvil (decisión del usuario del 1-oct;
2611
+ // hasta la beta .149 era la escala de v2, 8 / 12 / 14px). Se reasigna la escala entera, así que
2612
+ // los `radius` explícitos de las apps también cambian; `none` sigue igual. En px arbitrarios para
2613
+ // que el valor no dependa del `--radius` del Tailwind de la app.
2606
2614
  const RADIUS_CLASS$5 = {
2607
2615
  none: "rounded-none",
2608
- sm: "rounded-[8px]",
2609
- md: "rounded-[12px]",
2610
- lg: "rounded-[14px]",
2616
+ sm: "rounded-[16px]",
2617
+ md: "rounded-[16px]",
2618
+ lg: "rounded-[16px]",
2611
2619
  };
2612
2620
  // v3 no tiene prop `shadow`: su Card siempre usa `shadow-surface`. Los valores de v2 se
2613
2621
  // reproducen con los tokens propios `--aurora-shadow-*` (emitidos en F1, mismo valor exacto que
@@ -6561,7 +6569,7 @@ size: _size, radius: _radius, variant: _variant, className, ...heroUIProps }) =>
6561
6569
  */
6562
6570
  const ITEM_CLASS = "text-default-500 data-[hovered=true]:bg-primary-100 data-[hovered=true]:text-default-700";
6563
6571
  const ConfigMenu = ({ options, onLogout, onOptionSelect, translations, }) => {
6564
- return (jsxRuntime.jsxs(react.Dropdown, { children: [jsxRuntime.jsx(react.DropdownTrigger, { className: "button button--icon-only button--md button--primary button--hover-dim inline-flex rounded-[8px]", style: {
6572
+ return (jsxRuntime.jsxs(react.Dropdown, { children: [jsxRuntime.jsx(react.DropdownTrigger, { className: "button button--icon-only button--md button--primary button--hover-dim inline-flex rounded-[24px]", style: {
6565
6573
  "--button-bg": "var(--color-default)",
6566
6574
  "--button-bg-hover": "var(--color-default)",
6567
6575
  "--button-bg-pressed": "var(--color-default)",
@@ -8113,8 +8121,18 @@ const MenuComponent = $8WNJc$react.memo(function Menu({ commerceInfo, userInfo,
8113
8121
  * la sección está acotada en altura, para que crecer el historial no arrastre ni
8114
8122
  * recorte el área de navegación.
8115
8123
  *
8116
- * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y radios
8117
- * `rounded-lg`/`rounded-xl` — que es justo lo que difiere del menú compartido.
8124
+ * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y filas del
8125
+ * historial con `rounded-lg` — que es justo lo que difiere del menú compartido.
8126
+ *
8127
+ * «Nueva conversación» es el `Button` de la librería, no un `<button>` propio, y
8128
+ * por eso lleva su radio por defecto (`rounded-[24px]`, la píldora de v3): sobre
8129
+ * 36px de alto el radio se recorta a la mitad, así que desplegado es una píldora
8130
+ * y plegado (`isIconOnly`, 36×36) un círculo. Encima de la fachada solo se fija lo
8131
+ * propio de MenuClaw: el alto de 36px (`size="md"` de la fachada mide 40), el
8132
+ * contenido alineado a la izquierda con `px-2`/`gap-3`, el peso 500 y el color
8133
+ * `bg-foreground`/`text-background`, que la fachada no tiene como `color` y que
8134
+ * gana a sus `--button-*` porque las utilidades van en una capa posterior a la de
8135
+ * `.button`.
8118
8136
  */
8119
8137
  const MenuClawHistoryPanel = $8WNJc$react.memo(function MenuClawHistoryPanel({ items, initialVisibleCount, onNewConversation, isCollapsed, title, newLabel, showMoreLabel, showLessLabel, onBeforeSelect, }) {
8120
8138
  const [isExpanded, setIsExpanded] = $8WNJc$react.useState(false);
@@ -8137,7 +8155,9 @@ const MenuClawHistoryPanel = $8WNJc$react.memo(function MenuClawHistoryPanel({ i
8137
8155
  if (isCollapsed && !onNewConversation) {
8138
8156
  return null;
8139
8157
  }
8140
- return (jsxRuntime.jsxs("div", { className: "flex max-h-[40%] min-h-0 flex-col gap-2 pb-3", children: [onNewConversation ? (jsxRuntime.jsxs("button", { type: "button", title: newLabel, onClick: onNewConversation, className: cn("flex h-9 shrink-0 items-center gap-3 rounded-xl bg-foreground px-2 text-sm font-medium text-background transition-opacity hover:opacity-90", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", isCollapsed && "justify-center"), children: [jsxRuntime.jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: jsxRuntime.jsx(IconComponent, { icon: "solar:pen-new-square-linear", size: "md", "aria-hidden": true }) }), !isCollapsed ? (jsxRuntime.jsx("span", { className: "menu-claw-collapsible truncate", children: newLabel })) : null] })) : null, !isCollapsed && items.length > 0 ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("p", { className: "shrink-0 px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wide text-default-400", children: title }), jsxRuntime.jsx("ul", { "aria-label": title, className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: visibleItems.map((item) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("button", { type: "button", disabled: item.disabled, "aria-disabled": item.disabled, title: item.title, onClick: () => handleItemPress(item), className: cn("flex min-h-9 w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left text-sm text-default-600 transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", item.disabled
8158
+ return (jsxRuntime.jsxs("div", { className: "flex max-h-[40%] min-h-0 flex-col gap-2 pb-3", children: [onNewConversation ? (jsxRuntime.jsxs(Button, { title: newLabel, "aria-label": isCollapsed ? newLabel : undefined, isIconOnly: isCollapsed, fullWidth: !isCollapsed, onPress: () => onNewConversation(), className: cn("h-9 shrink-0 bg-foreground text-sm font-medium text-background", isCollapsed
8159
+ ? "w-9 min-w-9 self-center"
8160
+ : "justify-start gap-3 px-2"), children: [jsxRuntime.jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: jsxRuntime.jsx(IconComponent, { icon: "solar:pen-new-square-linear", size: "md", "aria-hidden": true }) }), !isCollapsed ? (jsxRuntime.jsx("span", { className: "menu-claw-collapsible truncate", children: newLabel })) : null] })) : null, !isCollapsed && items.length > 0 ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("p", { className: "shrink-0 px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wide text-default-400", children: title }), jsxRuntime.jsx("ul", { "aria-label": title, className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: visibleItems.map((item) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("button", { type: "button", disabled: item.disabled, "aria-disabled": item.disabled, title: item.title, onClick: () => handleItemPress(item), className: cn("flex min-h-9 w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left text-sm text-default-600 transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", item.disabled
8141
8161
  ? "cursor-not-allowed opacity-50"
8142
8162
  : "hover:bg-default-100"), children: [jsxRuntime.jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-400", children: jsxRuntime.jsx(IconComponent, { icon: "solar:chat-round-dots-linear", size: "md", "aria-hidden": true }) }), jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col", children: [jsxRuntime.jsx("span", { className: "truncate", children: item.title }), item.meta ? (jsxRuntime.jsx("span", { className: "truncate text-xs text-default-400", children: item.meta })) : null] })] }) }, item.id))) }), hasHiddenItems ? (jsxRuntime.jsxs("button", { type: "button", onClick: handleToggleExpand, "aria-expanded": isExpanded, className: "flex w-full shrink-0 items-center gap-1.5 rounded-lg px-2 py-2 text-xs font-medium text-default-500 transition-colors hover:bg-default-100 hover:text-default-700 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", children: [jsxRuntime.jsx(IconComponent, { icon: isExpanded
8143
8163
  ? "solar:alt-arrow-up-linear"
@@ -12698,13 +12718,28 @@ const VARIANT_BY_COLOR = {
12698
12718
  // de `.toast` (`bg-surface`: blanco en claro, la superficie oscura del pack en oscuro) en los seis
12699
12719
  // colores, y el color del estado va SOLO en el título y en el icono. La descripción es la de v3
12700
12720
  // (`text-muted`), sin tocar.
12701
- // La `x`, neutra en los seis colores: `text-muted`, el mismo gris de `.close-button--default` de
12702
- // v3, que llega solo al no pisarlo. `bg-transparent` quita el `bg-default` de esa clase: en Aurora
12703
- // `--color-default` es el gris MEDIO de v2 (`#d4d4d8`), no el casi imperceptible que v3 espera, y
12704
- // sobre el fondo blanco cantaba como una píldora gris permanente. El hover sí lleva el gris suave
12705
- // de v3 (`bg-default-hover`, que deriva del `--default` PROPIO de v3, no del de Aurora); hay que
12706
- // declararlo como utilidad porque el `bg-transparent` de arriba también gana al hover de v3.
12707
- const CLOSE_CLASS = "shrink-0 self-center bg-transparent hover:bg-default-hover data-[hovered=true]:bg-default-hover";
12721
+ // TECH-2459 · Geometría de v3 — DECISIÓN DEL USUARIO del 2-oct-2026, tras ver la .149/.150 en la
12722
+ // app: «déjalos tal cual se ven en la v3 de HeroUI». Al aspecto del 1-oct (colores) se suma ahora
12723
+ // la geometría: radio, caja del icono, hueco, alto y botón de cierre son los de `.toast` de v3 sin
12724
+ // pisar nada (`toast.css` de `@heroui/styles`, última aparición de cada selector):
12725
+ // - radio: `min(32px, var(--radius-3xl))` de `.toast` (24px con el tema de v3);
12726
+ // - padding `px-4 py-3` y `gap-1.5` (6px) entre icono y contenido, de `.toast`;
12727
+ // - icono: `.toast__indicator` (`p-1`) con el glifo a `size-4` por `[data-slot="toast-default-icon"]`,
12728
+ // así que el glifo lleva ese `data-slot`, igual que el que monta el `ToastIndicator` nativo;
12729
+ // - contenido: `.toast__content` (`self-center`), sin suelo de alto: lo dan el padding y el texto;
12730
+ // - la `x`: `.toast__close-button` (slot `close` de `toastVariants`), un círculo de 20px absoluto en
12731
+ // la esquina superior final (`-top-1 -end-1`, sobresale 4px), con borde y fondo `overlay` desde
12732
+ // `sm` y sin borde y fondo `default` por debajo; oculto en reposo y revelado por
12733
+ // `.toast[data-frontmost="true"]:hover` — el flag `data-frontmost` de abajo hace que esa regla
12734
+ // nativa aplique aquí también. v3 no tiene regla para `(hover: none)`: en táctil el primer toque
12735
+ // sobre el toast activa el `:hover` emulado y revela la `x`, y el segundo la pulsa (medido igual
12736
+ // en el nativo).
12737
+ //
12738
+ // Lo ÚNICO que se añade a v3 es el revelado con teclado (`REVEAL_ON_FOCUS`): v3 no tiene ninguna
12739
+ // regla de `:focus`/`:focus-visible`/`:focus-within` que lo haga visible, así que con Tab el foco
12740
+ // caía en un botón con `opacity: 0` (medido en el `Toast` nativo). Es accesibilidad, no aspecto: en
12741
+ // reposo y con ratón el botón se comporta exactamente como el nativo.
12742
+ const REVEAL_ON_FOCUS = "data-[focus-visible=true]:pointer-events-auto data-[focus-visible=true]:opacity-100";
12708
12743
  // TECH-2459 · Indicador de estado — REPUESTO el 8-sep-2026 por decisión del usuario, a partir del
12709
12744
  // finding `app-loginos-toast-v3-visual.md` (smoke de loginos contra QA, beta.114): con el MISMO
12710
12745
  // toast (`color="danger"`, login con credenciales inválidas) v2 pintaba un glifo de estado a la
@@ -12751,13 +12786,6 @@ const ICON_BY_COLOR = {
12751
12786
  danger: "",
12752
12787
  default: "",
12753
12788
  };
12754
- // Geometría del hueco del icono en v2 (slot `iconWrapper`: `flex-none relative w-9 h-9
12755
- // rounded-full grid place-items-center`, con el glifo a `w-6`). El toast de v2 pasaba
12756
- // `hideIconWrapper`, que solo dejaba transparente el círculo (`!bg-transparent !shadow-none
12757
- // !border-none`) sin ocultar el glifo, así que aquí se repone la caja de 36 px y el glifo de
12758
- // 24 px, sin fondo ni borde. `p-0` y `[&_svg]:size-6` anulan el `p-1` + icono de 16 px de
12759
- // `.toast__indicator`; son utilidades, así que ganan a la capa `components` de `@heroui/styles`.
12760
- const INDICATOR_BASE = "size-9 p-0 [&_svg]:size-6 [&_svg]:fill-current";
12761
12789
  const DEFAULT_TRANSLATIONS$6 = {
12762
12790
  closeButtonAriaLabel: "Cerrar notificación",
12763
12791
  };
@@ -12774,7 +12802,7 @@ function GlobalToast({ translations = {} } = {}) {
12774
12802
  const slots = react.toastVariants({ placement: "top end", variant });
12775
12803
  const isSecondary = color === "secondary";
12776
12804
  const StatusIcon = ICON_BY_VARIANT[variant];
12777
- return (jsxRuntime.jsx("div", { className: "fixed top-4 right-4 z-[2000] w-full max-w-sm", children: jsxRuntime.jsxs("div", { className: cn(slots.toast(), "gap-x-0 rounded-[12px]"), "data-frontmost": "true", style: { position: "relative" }, children: [jsxRuntime.jsx("div", { className: cn(slots.indicator(), INDICATOR_BASE, ICON_BY_COLOR[color]), children: jsxRuntime.jsx(StatusIcon, {}) }), jsxRuntime.jsxs("div", { className: cn(slots.content(), "ms-2 box-border min-h-10 justify-center"), children: [jsxRuntime.jsx("div", { className: slots.title(), style: isSecondary ? { color: "var(--color-secondary-600)" } : undefined, children: toast.title }), toast.description && (jsxRuntime.jsx("div", { className: slots.description(), children: toast.description }))] }), jsxRuntime.jsx(react.CloseButton, { "aria-label": t.closeButtonAriaLabel, className: CLOSE_CLASS, onPress: hideToast })] }) }));
12805
+ return (jsxRuntime.jsx("div", { className: "fixed top-4 right-4 z-[2000] w-full max-w-sm", children: jsxRuntime.jsxs("div", { className: slots.toast(), "data-frontmost": "true", style: { position: "relative" }, children: [jsxRuntime.jsx("div", { className: cn(slots.indicator(), ICON_BY_COLOR[color]), children: jsxRuntime.jsx(StatusIcon, { "data-slot": "toast-default-icon" }) }), jsxRuntime.jsxs("div", { className: slots.content(), children: [jsxRuntime.jsx("div", { className: slots.title(), style: isSecondary ? { color: "var(--color-secondary-600)" } : undefined, children: toast.title }), toast.description && (jsxRuntime.jsx("div", { className: slots.description(), children: toast.description }))] }), jsxRuntime.jsx(react.CloseButton, { "aria-label": t.closeButtonAriaLabel, className: cn(slots.close(), REVEAL_ON_FOCUS), onPress: hideToast })] }) }));
12778
12806
  }
12779
12807
 
12780
12808
  /**
package/dist/index.esm.js CHANGED
@@ -580,11 +580,17 @@ const CLASE_AURA = {
580
580
  ring: "linda-aura-ring",
581
581
  surface: "linda-aura",
582
582
  };
583
+ // Escala de radios de v3 y de la app móvil, no la de v2 (decisión del usuario del 1-oct, §9.1):
584
+ // `sm` y `md` = el `rounded-3xl` (24px) que `.button` de v3 trae de fábrica, `lg` = 32px como en
585
+ // móvil. Hasta la beta .149 era la de v2 (8 / 12 / 14px). Se reasigna la escala entera, así que
586
+ // los `radius="sm|md|lg"` explícitos de las apps también cambian; `none` y `full` siguen igual.
587
+ // En px arbitrarios y no `rounded-3xl`/`rounded-4xl`: el valor no depende del `--radius` que
588
+ // tenga el Tailwind de la app.
583
589
  const RADIUS_CLASS$a = {
584
590
  none: "rounded-none",
585
- sm: "rounded-[8px]",
586
- md: "rounded-[12px]",
587
- lg: "rounded-[14px]",
591
+ sm: "rounded-[24px]",
592
+ md: "rounded-[24px]",
593
+ lg: "rounded-[32px]",
588
594
  full: "rounded-full",
589
595
  };
590
596
  const SHAPE_CLASS = {
@@ -2599,15 +2605,17 @@ const paddingClasses = {
2599
2605
  lg: "p-8",
2600
2606
  };
2601
2607
 
2602
- // v3 no tiene prop `radius`: sus valores por defecto (32px) se neutralizan globalmente a 8px en
2603
- // `src/styles/neutralize-v3.css` (`.card { border-radius: 8px }`, el "sm" de v2). Para el resto de
2604
- // valores explícitos, clases arbitrarias con el valor EXACTO de v2 (`rounded-md`/`rounded-lg` de
2605
- // Tailwind no coinciden: 6px/8px en vez de 12px/14px — ver findings/tabla-mapeo-tokens.md §4).
2608
+ // v3 no tiene prop `radius`: su valor por defecto (`min(32px, --radius-3xl)` = 24px) se fija
2609
+ // globalmente a 16px en `src/styles/neutralize-v3.css` (`.card`). Los tres tamaños dan 16px, el
2610
+ // `--radius-2xl` de v3 y el radio de tarjeta de la app móvil (decisión del usuario del 1-oct;
2611
+ // hasta la beta .149 era la escala de v2, 8 / 12 / 14px). Se reasigna la escala entera, así que
2612
+ // los `radius` explícitos de las apps también cambian; `none` sigue igual. En px arbitrarios para
2613
+ // que el valor no dependa del `--radius` del Tailwind de la app.
2606
2614
  const RADIUS_CLASS$5 = {
2607
2615
  none: "rounded-none",
2608
- sm: "rounded-[8px]",
2609
- md: "rounded-[12px]",
2610
- lg: "rounded-[14px]",
2616
+ sm: "rounded-[16px]",
2617
+ md: "rounded-[16px]",
2618
+ lg: "rounded-[16px]",
2611
2619
  };
2612
2620
  // v3 no tiene prop `shadow`: su Card siempre usa `shadow-surface`. Los valores de v2 se
2613
2621
  // reproducen con los tokens propios `--aurora-shadow-*` (emitidos en F1, mismo valor exacto que
@@ -6561,7 +6569,7 @@ size: _size, radius: _radius, variant: _variant, className, ...heroUIProps }) =>
6561
6569
  */
6562
6570
  const ITEM_CLASS = "text-default-500 data-[hovered=true]:bg-primary-100 data-[hovered=true]:text-default-700";
6563
6571
  const ConfigMenu = ({ options, onLogout, onOptionSelect, translations, }) => {
6564
- return (jsxs(Dropdown$1, { children: [jsx(DropdownTrigger, { className: "button button--icon-only button--md button--primary button--hover-dim inline-flex rounded-[8px]", style: {
6572
+ return (jsxs(Dropdown$1, { children: [jsx(DropdownTrigger, { className: "button button--icon-only button--md button--primary button--hover-dim inline-flex rounded-[24px]", style: {
6565
6573
  "--button-bg": "var(--color-default)",
6566
6574
  "--button-bg-hover": "var(--color-default)",
6567
6575
  "--button-bg-pressed": "var(--color-default)",
@@ -8113,8 +8121,18 @@ const MenuComponent = $8WNJc$react.memo(function Menu({ commerceInfo, userInfo,
8113
8121
  * la sección está acotada en altura, para que crecer el historial no arrastre ni
8114
8122
  * recorte el área de navegación.
8115
8123
  *
8116
- * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y radios
8117
- * `rounded-lg`/`rounded-xl` — que es justo lo que difiere del menú compartido.
8124
+ * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y filas del
8125
+ * historial con `rounded-lg` — que es justo lo que difiere del menú compartido.
8126
+ *
8127
+ * «Nueva conversación» es el `Button` de la librería, no un `<button>` propio, y
8128
+ * por eso lleva su radio por defecto (`rounded-[24px]`, la píldora de v3): sobre
8129
+ * 36px de alto el radio se recorta a la mitad, así que desplegado es una píldora
8130
+ * y plegado (`isIconOnly`, 36×36) un círculo. Encima de la fachada solo se fija lo
8131
+ * propio de MenuClaw: el alto de 36px (`size="md"` de la fachada mide 40), el
8132
+ * contenido alineado a la izquierda con `px-2`/`gap-3`, el peso 500 y el color
8133
+ * `bg-foreground`/`text-background`, que la fachada no tiene como `color` y que
8134
+ * gana a sus `--button-*` porque las utilidades van en una capa posterior a la de
8135
+ * `.button`.
8118
8136
  */
8119
8137
  const MenuClawHistoryPanel = $8WNJc$react.memo(function MenuClawHistoryPanel({ items, initialVisibleCount, onNewConversation, isCollapsed, title, newLabel, showMoreLabel, showLessLabel, onBeforeSelect, }) {
8120
8138
  const [isExpanded, setIsExpanded] = $8WNJc$react.useState(false);
@@ -8137,7 +8155,9 @@ const MenuClawHistoryPanel = $8WNJc$react.memo(function MenuClawHistoryPanel({ i
8137
8155
  if (isCollapsed && !onNewConversation) {
8138
8156
  return null;
8139
8157
  }
8140
- return (jsxs("div", { className: "flex max-h-[40%] min-h-0 flex-col gap-2 pb-3", children: [onNewConversation ? (jsxs("button", { type: "button", title: newLabel, onClick: onNewConversation, className: cn("flex h-9 shrink-0 items-center gap-3 rounded-xl bg-foreground px-2 text-sm font-medium text-background transition-opacity hover:opacity-90", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", isCollapsed && "justify-center"), children: [jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: jsx(IconComponent, { icon: "solar:pen-new-square-linear", size: "md", "aria-hidden": true }) }), !isCollapsed ? (jsx("span", { className: "menu-claw-collapsible truncate", children: newLabel })) : null] })) : null, !isCollapsed && items.length > 0 ? (jsxs(Fragment$1, { children: [jsx("p", { className: "shrink-0 px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wide text-default-400", children: title }), jsx("ul", { "aria-label": title, className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: visibleItems.map((item) => (jsx("li", { children: jsxs("button", { type: "button", disabled: item.disabled, "aria-disabled": item.disabled, title: item.title, onClick: () => handleItemPress(item), className: cn("flex min-h-9 w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left text-sm text-default-600 transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", item.disabled
8158
+ return (jsxs("div", { className: "flex max-h-[40%] min-h-0 flex-col gap-2 pb-3", children: [onNewConversation ? (jsxs(Button, { title: newLabel, "aria-label": isCollapsed ? newLabel : undefined, isIconOnly: isCollapsed, fullWidth: !isCollapsed, onPress: () => onNewConversation(), className: cn("h-9 shrink-0 bg-foreground text-sm font-medium text-background", isCollapsed
8159
+ ? "w-9 min-w-9 self-center"
8160
+ : "justify-start gap-3 px-2"), children: [jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: jsx(IconComponent, { icon: "solar:pen-new-square-linear", size: "md", "aria-hidden": true }) }), !isCollapsed ? (jsx("span", { className: "menu-claw-collapsible truncate", children: newLabel })) : null] })) : null, !isCollapsed && items.length > 0 ? (jsxs(Fragment$1, { children: [jsx("p", { className: "shrink-0 px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wide text-default-400", children: title }), jsx("ul", { "aria-label": title, className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: visibleItems.map((item) => (jsx("li", { children: jsxs("button", { type: "button", disabled: item.disabled, "aria-disabled": item.disabled, title: item.title, onClick: () => handleItemPress(item), className: cn("flex min-h-9 w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left text-sm text-default-600 transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", item.disabled
8141
8161
  ? "cursor-not-allowed opacity-50"
8142
8162
  : "hover:bg-default-100"), children: [jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-400", children: jsx(IconComponent, { icon: "solar:chat-round-dots-linear", size: "md", "aria-hidden": true }) }), jsxs("span", { className: "flex min-w-0 flex-col", children: [jsx("span", { className: "truncate", children: item.title }), item.meta ? (jsx("span", { className: "truncate text-xs text-default-400", children: item.meta })) : null] })] }) }, item.id))) }), hasHiddenItems ? (jsxs("button", { type: "button", onClick: handleToggleExpand, "aria-expanded": isExpanded, className: "flex w-full shrink-0 items-center gap-1.5 rounded-lg px-2 py-2 text-xs font-medium text-default-500 transition-colors hover:bg-default-100 hover:text-default-700 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", children: [jsx(IconComponent, { icon: isExpanded
8143
8163
  ? "solar:alt-arrow-up-linear"
@@ -12698,13 +12718,28 @@ const VARIANT_BY_COLOR = {
12698
12718
  // de `.toast` (`bg-surface`: blanco en claro, la superficie oscura del pack en oscuro) en los seis
12699
12719
  // colores, y el color del estado va SOLO en el título y en el icono. La descripción es la de v3
12700
12720
  // (`text-muted`), sin tocar.
12701
- // La `x`, neutra en los seis colores: `text-muted`, el mismo gris de `.close-button--default` de
12702
- // v3, que llega solo al no pisarlo. `bg-transparent` quita el `bg-default` de esa clase: en Aurora
12703
- // `--color-default` es el gris MEDIO de v2 (`#d4d4d8`), no el casi imperceptible que v3 espera, y
12704
- // sobre el fondo blanco cantaba como una píldora gris permanente. El hover sí lleva el gris suave
12705
- // de v3 (`bg-default-hover`, que deriva del `--default` PROPIO de v3, no del de Aurora); hay que
12706
- // declararlo como utilidad porque el `bg-transparent` de arriba también gana al hover de v3.
12707
- const CLOSE_CLASS = "shrink-0 self-center bg-transparent hover:bg-default-hover data-[hovered=true]:bg-default-hover";
12721
+ // TECH-2459 · Geometría de v3 — DECISIÓN DEL USUARIO del 2-oct-2026, tras ver la .149/.150 en la
12722
+ // app: «déjalos tal cual se ven en la v3 de HeroUI». Al aspecto del 1-oct (colores) se suma ahora
12723
+ // la geometría: radio, caja del icono, hueco, alto y botón de cierre son los de `.toast` de v3 sin
12724
+ // pisar nada (`toast.css` de `@heroui/styles`, última aparición de cada selector):
12725
+ // - radio: `min(32px, var(--radius-3xl))` de `.toast` (24px con el tema de v3);
12726
+ // - padding `px-4 py-3` y `gap-1.5` (6px) entre icono y contenido, de `.toast`;
12727
+ // - icono: `.toast__indicator` (`p-1`) con el glifo a `size-4` por `[data-slot="toast-default-icon"]`,
12728
+ // así que el glifo lleva ese `data-slot`, igual que el que monta el `ToastIndicator` nativo;
12729
+ // - contenido: `.toast__content` (`self-center`), sin suelo de alto: lo dan el padding y el texto;
12730
+ // - la `x`: `.toast__close-button` (slot `close` de `toastVariants`), un círculo de 20px absoluto en
12731
+ // la esquina superior final (`-top-1 -end-1`, sobresale 4px), con borde y fondo `overlay` desde
12732
+ // `sm` y sin borde y fondo `default` por debajo; oculto en reposo y revelado por
12733
+ // `.toast[data-frontmost="true"]:hover` — el flag `data-frontmost` de abajo hace que esa regla
12734
+ // nativa aplique aquí también. v3 no tiene regla para `(hover: none)`: en táctil el primer toque
12735
+ // sobre el toast activa el `:hover` emulado y revela la `x`, y el segundo la pulsa (medido igual
12736
+ // en el nativo).
12737
+ //
12738
+ // Lo ÚNICO que se añade a v3 es el revelado con teclado (`REVEAL_ON_FOCUS`): v3 no tiene ninguna
12739
+ // regla de `:focus`/`:focus-visible`/`:focus-within` que lo haga visible, así que con Tab el foco
12740
+ // caía en un botón con `opacity: 0` (medido en el `Toast` nativo). Es accesibilidad, no aspecto: en
12741
+ // reposo y con ratón el botón se comporta exactamente como el nativo.
12742
+ const REVEAL_ON_FOCUS = "data-[focus-visible=true]:pointer-events-auto data-[focus-visible=true]:opacity-100";
12708
12743
  // TECH-2459 · Indicador de estado — REPUESTO el 8-sep-2026 por decisión del usuario, a partir del
12709
12744
  // finding `app-loginos-toast-v3-visual.md` (smoke de loginos contra QA, beta.114): con el MISMO
12710
12745
  // toast (`color="danger"`, login con credenciales inválidas) v2 pintaba un glifo de estado a la
@@ -12751,13 +12786,6 @@ const ICON_BY_COLOR = {
12751
12786
  danger: "",
12752
12787
  default: "",
12753
12788
  };
12754
- // Geometría del hueco del icono en v2 (slot `iconWrapper`: `flex-none relative w-9 h-9
12755
- // rounded-full grid place-items-center`, con el glifo a `w-6`). El toast de v2 pasaba
12756
- // `hideIconWrapper`, que solo dejaba transparente el círculo (`!bg-transparent !shadow-none
12757
- // !border-none`) sin ocultar el glifo, así que aquí se repone la caja de 36 px y el glifo de
12758
- // 24 px, sin fondo ni borde. `p-0` y `[&_svg]:size-6` anulan el `p-1` + icono de 16 px de
12759
- // `.toast__indicator`; son utilidades, así que ganan a la capa `components` de `@heroui/styles`.
12760
- const INDICATOR_BASE = "size-9 p-0 [&_svg]:size-6 [&_svg]:fill-current";
12761
12789
  const DEFAULT_TRANSLATIONS$6 = {
12762
12790
  closeButtonAriaLabel: "Cerrar notificación",
12763
12791
  };
@@ -12774,7 +12802,7 @@ function GlobalToast({ translations = {} } = {}) {
12774
12802
  const slots = toastVariants({ placement: "top end", variant });
12775
12803
  const isSecondary = color === "secondary";
12776
12804
  const StatusIcon = ICON_BY_VARIANT[variant];
12777
- return (jsx("div", { className: "fixed top-4 right-4 z-[2000] w-full max-w-sm", children: jsxs("div", { className: cn(slots.toast(), "gap-x-0 rounded-[12px]"), "data-frontmost": "true", style: { position: "relative" }, children: [jsx("div", { className: cn(slots.indicator(), INDICATOR_BASE, ICON_BY_COLOR[color]), children: jsx(StatusIcon, {}) }), jsxs("div", { className: cn(slots.content(), "ms-2 box-border min-h-10 justify-center"), children: [jsx("div", { className: slots.title(), style: isSecondary ? { color: "var(--color-secondary-600)" } : undefined, children: toast.title }), toast.description && (jsx("div", { className: slots.description(), children: toast.description }))] }), jsx(CloseButton, { "aria-label": t.closeButtonAriaLabel, className: CLOSE_CLASS, onPress: hideToast })] }) }));
12805
+ return (jsx("div", { className: "fixed top-4 right-4 z-[2000] w-full max-w-sm", children: jsxs("div", { className: slots.toast(), "data-frontmost": "true", style: { position: "relative" }, children: [jsx("div", { className: cn(slots.indicator(), ICON_BY_COLOR[color]), children: jsx(StatusIcon, { "data-slot": "toast-default-icon" }) }), jsxs("div", { className: slots.content(), children: [jsx("div", { className: slots.title(), style: isSecondary ? { color: "var(--color-secondary-600)" } : undefined, children: toast.title }), toast.description && (jsx("div", { className: slots.description(), children: toast.description }))] }), jsx(CloseButton, { "aria-label": t.closeButtonAriaLabel, className: cn(slots.close(), REVEAL_ON_FOCUS), onPress: hideToast })] }) }));
12778
12806
  }
12779
12807
 
12780
12808
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAe,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAuR9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsMxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAe,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AA6R9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsMxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -33,7 +33,7 @@ export type ButtonProps = Omit<ButtonRootProps, "color" | "variant" | "children"
33
33
  size?: "sm" | "md" | "lg";
34
34
  /** Estilo visual v2, traducido internamente al `variant` único de HeroUI v3. @default "solid" */
35
35
  variant?: ButtonVariant;
36
- /** Radio de borde. @default "sm" (8px, el que usaba Aurora en v2) */
36
+ /** Radio de borde, escala de v3 y móvil: sm/md 24px, lg 32px. @default "sm" (24px) */
37
37
  radius?: "none" | "sm" | "md" | "lg" | "full";
38
38
  /** Contenido antes del texto (icono…). v3 eliminó esta prop — se compone como children. */
39
39
  startContent?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,WAAW,GACpB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEZ,mGAAmG;AACnG,MAAM,MAAM,aAAa,GACtB,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAChC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CACxE,GACA,KAAK,CAAC,cAAc,GAAG;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CACjC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,CACtE,GAAG;IACH,iFAAiF;IACjF,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAC7B,eAAe,EACf,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAC9C,GACA,cAAc,GACd,eAAe,GAAG;IACjB,kGAAkG;IAClG,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sCAAsC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC9C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,6FAA6F;IAC7F,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACnC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,WAAW,GACpB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEZ,mGAAmG;AACnG,MAAM,MAAM,aAAa,GACtB,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAChC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CACxE,GACA,KAAK,CAAC,cAAc,GAAG;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CACjC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,CACtE,GAAG;IACH,iFAAiF;IACjF,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAC7B,eAAe,EACf,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAC9C,GACA,cAAc,GACd,eAAe,GAAG;IACjB,kGAAkG;IAClG,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sCAAsC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC9C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,6FAA6F;IAC7F,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACnC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/card/Card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,cAAc,CAAC;AAkH9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,kFAgJhB,CAAC;AAIF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/card/Card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,cAAc,CAAC;AAoH9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,kFAgJhB,CAAC;AAIF,eAAe,IAAI,CAAC"}
@@ -38,7 +38,7 @@ export interface CardProps extends CardDOMProps, Omit<CardRootProps<"div">, "var
38
38
  className?: string;
39
39
  /** Nivel de sombra. @default "sm" (traducido a los tokens propios `--aurora-shadow-*`) */
40
40
  shadow?: "none" | "sm" | "md" | "lg";
41
- /** Radio de borde. @default "sm" (8px, igual que hoy) */
41
+ /** Radio de borde: sm, md y lg dan 16px (escala de v3 y móvil). @default "sm" (16px) */
42
42
  radius?: "none" | "sm" | "md" | "lg";
43
43
  /** Padding interno. @default "md" */
44
44
  padding?: "sm" | "md" | "lg";
@@ -1 +1 @@
1
- {"version":3,"file":"Card.types.d.ts","sourceRoot":"","sources":["../../../../src/components/card/Card.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,IAAI,CACvB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,UAAU,GAAG,WAAW,CACxB,CAAC;AAKF,MAAM,WAAW,SAChB,SAAQ,YAAY,EACnB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,qCAAqC;IACrC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,cAAc;;;;CAIjB,CAAC"}
1
+ {"version":3,"file":"Card.types.d.ts","sourceRoot":"","sources":["../../../../src/components/card/Card.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,IAAI,CACvB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,UAAU,GAAG,WAAW,CACxB,CAAC;AAKF,MAAM,WAAW,SAChB,SAAQ,YAAY,EACnB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,qCAAqC;IACrC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,cAAc;;;;CAIjB,CAAC"}
@@ -8,8 +8,18 @@ import type { MenuClawHistoryPanelProps } from "./MenuClawHistoryPanel.types";
8
8
  * la sección está acotada en altura, para que crecer el historial no arrastre ni
9
9
  * recorte el área de navegación.
10
10
  *
11
- * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y radios
12
- * `rounded-lg`/`rounded-xl` — que es justo lo que difiere del menú compartido.
11
+ * Densidad de MenuClaw: fila de 36px, `px-2`, `text-small`/`text-tiny` y filas del
12
+ * historial con `rounded-lg` — que es justo lo que difiere del menú compartido.
13
+ *
14
+ * «Nueva conversación» es el `Button` de la librería, no un `<button>` propio, y
15
+ * por eso lleva su radio por defecto (`rounded-[24px]`, la píldora de v3): sobre
16
+ * 36px de alto el radio se recorta a la mitad, así que desplegado es una píldora
17
+ * y plegado (`isIconOnly`, 36×36) un círculo. Encima de la fachada solo se fija lo
18
+ * propio de MenuClaw: el alto de 36px (`size="md"` de la fachada mide 40), el
19
+ * contenido alineado a la izquierda con `px-2`/`gap-3`, el peso 500 y el color
20
+ * `bg-foreground`/`text-background`, que la fachada no tiene como `color` y que
21
+ * gana a sus `--button-*` porque las utilidades van en una capa posterior a la de
22
+ * `.button`.
13
23
  */
14
24
  export declare const MenuClawHistoryPanel: React.FC<MenuClawHistoryPanelProps>;
15
25
  //# sourceMappingURL=MenuClawHistoryPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuClawHistoryPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu-claw/_internal/menu-claw-history/MenuClawHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAyIlE,CAAC"}
1
+ {"version":3,"file":"MenuClawHistoryPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu-claw/_internal/menu-claw-history/MenuClawHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAKpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6IlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalToast.d.ts","sourceRoot":"","sources":["../../../../src/components/toast/GlobalToast.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,gBAAgB,EAEhB,MAAM,qBAAqB,CAAC;AAwG7B,wBAAgB,WAAW,CAAC,EAAE,YAAiB,EAAE,GAAE,gBAAqB,sCA0FvE"}
1
+ {"version":3,"file":"GlobalToast.d.ts","sourceRoot":"","sources":["../../../../src/components/toast/GlobalToast.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,gBAAgB,EAEhB,MAAM,qBAAqB,CAAC;AA+G7B,wBAAgB,WAAW,CAAC,EAAE,YAAiB,EAAE,GAAE,gBAAqB,sCAuEvE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beweco/aurora-ui",
3
- "version": "1.0.0-beta.149",
3
+ "version": "1.0.0-beta.151",
4
4
  "description": "Bewe Aurora UI Component Library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",