@khipu/design-system 0.2.0-alpha.81 → 0.2.0-alpha.83

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.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
13
13
  * Source: design-system/src/tokens/tokens.json
14
- * Generated: 2026-06-30T16:44:56.587Z
14
+ * Generated: 2026-07-01T02:24:50.156Z
15
15
  *
16
16
  * To regenerate:
17
17
  * cd design-system && npm run tokens:generate
@@ -2470,12 +2470,12 @@ body.dark {
2470
2470
  padding-block-start: 1.5rem;
2471
2471
  }
2472
2472
 
2473
- /* Field con .suffix (endIcon): el label en reposo no debe deslizarse bajo el ícono de la
2474
- derecha. BeerCSS reserva el lado izquierdo para .prefix (--_start:3rem) pero NO el derecho
2475
- para .suffix, así que un label largo se superponía con el ícono. Reservamos el ancho del
2476
- ícono en el inset-inline-end (mismo valor que el padding que .prefix da al input). */
2477
- .field.label.suffix > label {
2478
- inset-inline-end: 2.9375rem;
2473
+ /* Label en reposo (estado "abajo", como placeholder): font-size menor al 1rem de BeerCSS
2474
+ para que un label largo no estorbe con un ícono (prefix/suffix) del input. Token sm
2475
+ (13–14px, siempre < 1rem del input incluso en desktop). Al flotar, BeerCSS lo reduce a
2476
+ .75rem con mayor especificidad, así que esto solo afecta el reposo. */
2477
+ .field.label > label {
2478
+ font-size: var(--kds-font-size-sm);
2479
2479
  }
2480
2480
 
2481
2481
  /* ==========================================
@@ -5728,7 +5728,10 @@ dialog#surveyModal button.circle {
5728
5728
  }
5729
5729
 
5730
5730
  .kds-expand-panel.open {
5731
- max-height: 800px;
5731
+ /* Fallback cap for no-JS consumers. With JS (React useExpandToggle / vanilla
5732
+ initExpandToggle) the panel's inline max-height is set to its exact scrollHeight,
5733
+ which overrides this and prevents clipping regardless of content length. */
5734
+ max-height: 2000px;
5732
5735
  margin-top: 0;
5733
5736
  }
5734
5737
 
@@ -7062,10 +7065,15 @@ button.kds-btn-success::after {
7062
7065
  /* Variante sin radio superior: pantallas de resultado (éxito/fallo/timeout) que van
7063
7066
  SIN header arriba — la body card va sola y su tope queda plano (flush) en vez de
7064
7067
  con esquinas redondeadas sueltas. El padding del card sigue manejando el inset. */
7065
- .kds-screen > .kds-card-elevated.kds-card-elevated--flush-top,
7066
- .kds-card-elevated.kds-card-elevated--flush-top {
7067
- border-top-left-radius: 0;
7068
- border-top-right-radius: 0;
7068
+ /* Tope plano SOLO en mobile (< 768px): la body card se pega al borde superior del widget
7069
+ (igual que el header sticky, que también aplana el tope solo en mobile). En desktop la card
7070
+ va centrada y separada, así que conserva el border-radius superior redondeado. */
7071
+ @media (max-width: 767px) {
7072
+ .kds-screen > .kds-card-elevated.kds-card-elevated--flush-top,
7073
+ .kds-card-elevated.kds-card-elevated--flush-top {
7074
+ border-top-left-radius: 0;
7075
+ border-top-right-radius: 0;
7076
+ }
7069
7077
  }
7070
7078
 
7071
7079
  /* Payment stage — full-viewport centered wrapper.
@@ -1051,8 +1051,12 @@ const ui = _context.ui;
1051
1051
  if (panel) {
1052
1052
  if (expanded) {
1053
1053
  panel.classList.remove('open');
1054
+ // Clear the inline cap so the CSS collapse rule (max-height: 0) animates the close.
1055
+ panel.style.maxHeight = '';
1054
1056
  } else {
1055
1057
  panel.classList.add('open');
1058
+ // Size to the content so the expand fits any length instead of clipping a fixed cap.
1059
+ panel.style.maxHeight = panel.scrollHeight + 'px';
1056
1060
  }
1057
1061
  }
1058
1062
  });