@khipu/design-system 0.3.5-alpha.1 → 0.3.5-alpha.12

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.
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
15
15
  * Source: design-system/src/tokens/tokens.json
16
- * Generated: 2026-08-12T21:54:49.906Z
16
+ * Generated: 2026-08-17T17:59:36.196Z
17
17
  *
18
18
  * To regenerate:
19
19
  * cd design-system && npm run tokens:generate
@@ -2456,12 +2456,21 @@ a.kds-btn-google:disabled {
2456
2456
  /* Llena y centra dentro de contenedores flex (pantalla de carga); en flujo
2457
2457
  normal (contenedor no-flex) se reduce a su contenido. */
2458
2458
  flex: 1 1 auto;
2459
- /* Alto propio: el loader es contenido minimo por definicion, asi que sin esto la
2460
- card queda del alto del spinner y se lee como un recorte. Ocupa el body completo
2461
- de un telefono para que la pantalla de carga se lea como una pantalla y no como
2462
- una franja. Va aca y no en la card para que el minimo aplique solo a la carga:
2463
- el resto de las pantallas crece con su contenido. */
2464
- min-height: 36rem;
2459
+ /* Alto propio: el loader es contenido minimo por definicion, asi que sin esto la card
2460
+ queda del alto del spinner y se lee como un recorte. Va aca y no en la card para que
2461
+ el minimo aplique solo a la carga: el resto de las pantallas crece con su contenido.
2462
+ El valor de escritorio es moderado a proposito: el minimo de telefono (36rem) dejaba
2463
+ la card de la carga mucho mas alta que cualquier otra pantalla, y al entrar y salir
2464
+ del loader el widget crecia y volvia a encoger. */
2465
+ min-height: 18rem;
2466
+ }
2467
+
2468
+ /* En telefono la carga si ocupa el alto util de la pantalla: ahi la card va a ancho
2469
+ completo y un loader corto se lee como una franja perdida en el medio. */
2470
+ @media (max-width: 767px) {
2471
+ .kds-secure-loader {
2472
+ min-height: 36rem;
2473
+ }
2465
2474
  }
2466
2475
 
2467
2476
  .kds-secure-loader-text {
@@ -3271,12 +3280,33 @@ label.radio span {
3271
3280
  cursor: pointer;
3272
3281
  }
3273
3282
 
3274
- /* Checked state */
3283
+ /* Checked state.
3284
+ accent-color aplica al input nativo, que BeerCSS deja con opacity 0: no se ve.
3285
+ Se mantiene igual por si algun consumidor no usa el markup de BeerCSS. */
3275
3286
  label.checkbox input[type="checkbox"]:checked,
3276
3287
  label.radio input[type="radio"]:checked {
3277
3288
  accent-color: var(--kds-color-accent, var(--primary));
3278
3289
  }
3279
3290
 
3291
+ /* El control que SI se ve lo dibuja BeerCSS como una ligadura de Material Symbols en
3292
+ `> span::before`, coloreada con var(--primary). Estas dos reglas reproducen sus
3293
+ selectores para que ese pseudo-elemento siga al rol accent.
3294
+
3295
+ Misma especificidad que el original y sin !important: este archivo va ultimo en el
3296
+ bundle, asi que gana por orden. El fallback deja el valor anterior intacto cuando la
3297
+ marca no define accent, que es el caso de todo consumidor actual.
3298
+
3299
+ No se toca `.switch`: es un control de encendido/apagado, no de seleccion, y el
3300
+ contrato de marca no lo incluye. */
3301
+ :is(.checkbox, .radio) > span::before {
3302
+ color: var(--kds-color-accent, var(--primary));
3303
+ }
3304
+
3305
+ :is(.checkbox, .radio) > input:checked + span::before,
3306
+ :is(.checkbox, .radio).icon > input:checked + span > i {
3307
+ color: var(--kds-color-accent, var(--primary));
3308
+ }
3309
+
3280
3310
  /* Disabled state */
3281
3311
  label.checkbox input[type="checkbox"]:disabled,
3282
3312
  label.radio input[type="radio"]:disabled {
@@ -7989,6 +8019,36 @@ svg[fill='none'] {
7989
8019
  }
7990
8020
  }
7991
8021
 
8022
+ /* Widget embebido: dentro de un iframe los media queries de ancho evalúan el viewport
8023
+ DEL IFRAME (~420px), no la pantalla, así que el flujo se ve siempre como mobile
8024
+ aunque el usuario esté en desktop — y el tope plano, pensado para cuando la card se
8025
+ pega al borde del teléfono, queda cortando una card que en realidad flota centrada.
8026
+ `hover`/`pointer` describen el dispositivo de entrada y no el viewport, así que
8027
+ sobreviven al iframe: con mouse las cards conservan las esquinas superiores. */
8028
+ @media (hover: hover) and (pointer: fine) {
8029
+ .kds-card-elevated.kds-invoice-sticky {
8030
+ border-radius: var(--kds-radius-card);
8031
+ /* El clip-path del colapso recorta con `round 0 0 R R` y eso PISA al
8032
+ border-radius: aunque la card declare las cuatro esquinas, el recorte las
8033
+ deja rectas arriba. Hay que redondearlas también acá o el fix no se ve. */
8034
+ clip-path: inset(
8035
+ 0 0
8036
+ calc(
8037
+ var(--collapse-collapsible-h) * var(--collapse-progress)
8038
+ + var(--kds-spacing-1) * var(--collapse-progress)
8039
+ )
8040
+ 0
8041
+ round var(--kds-radius-card)
8042
+ );
8043
+ }
8044
+
8045
+ .kds-screen > .kds-card-elevated.kds-card-elevated--flush-top,
8046
+ .kds-card-elevated.kds-card-elevated--flush-top {
8047
+ border-top-left-radius: var(--kds-radius-card);
8048
+ border-top-right-radius: var(--kds-radius-card);
8049
+ }
8050
+ }
8051
+
7992
8052
  /* Brand logo row (external, outside cards) */
7993
8053
  .kds-brand-row {
7994
8054
  padding: 0 var(--kds-spacing-0-5);
@@ -899,6 +899,12 @@ const ui = _context.ui;
899
899
  console.log('Material Design initialization complete!');
900
900
  }
901
901
 
902
+ // El alto de la body card cambia de golpe entre pantallas, sin animar. Hubo una
903
+ // transición acá (KTUF-239) y se quitó en KTUF-314: ver el comentario en
904
+ // KdsThemeProvider.tsx — animar el alto obliga a fijar `height` en píxeles, y con el
905
+ // alto fijado no hay forma de medir el alto natural del contenido para saber cuándo
906
+ // soltarlo, así que la card quedaba con espacio muerto abajo.
907
+
902
908
  /**
903
909
  * Initialize merchant logo backdrop (KTUF-204)
904
910
  * Los logos de comercio van sobre el fondo neutro, no sobre el color de marca (los PNG