@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.
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
17
17
  * Source: design-system/src/tokens/tokens.json
18
- * Generated: 2026-08-12T21:54:49.906Z
18
+ * Generated: 2026-08-17T17:59:36.196Z
19
19
  *
20
20
  * To regenerate:
21
21
  * cd design-system && npm run tokens:generate
@@ -2458,12 +2458,21 @@
2458
2458
  /* Llena y centra dentro de contenedores flex (pantalla de carga); en flujo
2459
2459
  normal (contenedor no-flex) se reduce a su contenido. */
2460
2460
  flex: 1 1 auto;
2461
- /* Alto propio: el loader es contenido minimo por definicion, asi que sin esto la
2462
- card queda del alto del spinner y se lee como un recorte. Ocupa el body completo
2463
- de un telefono para que la pantalla de carga se lea como una pantalla y no como
2464
- una franja. Va aca y no en la card para que el minimo aplique solo a la carga:
2465
- el resto de las pantallas crece con su contenido. */
2466
- min-height: 36rem;
2461
+ /* Alto propio: el loader es contenido minimo por definicion, asi que sin esto la card
2462
+ queda del alto del spinner y se lee como un recorte. Va aca y no en la card para que
2463
+ el minimo aplique solo a la carga: el resto de las pantallas crece con su contenido.
2464
+ El valor de escritorio es moderado a proposito: el minimo de telefono (36rem) dejaba
2465
+ la card de la carga mucho mas alta que cualquier otra pantalla, y al entrar y salir
2466
+ del loader el widget crecia y volvia a encoger. */
2467
+ min-height: 18rem;
2468
+ }
2469
+
2470
+ /* En telefono la carga si ocupa el alto util de la pantalla: ahi la card va a ancho
2471
+ completo y un loader corto se lee como una franja perdida en el medio. */
2472
+ @media (max-width: 767px) {
2473
+ .kds-theme-root .kds-secure-loader {
2474
+ min-height: 36rem;
2475
+ }
2467
2476
  }
2468
2477
 
2469
2478
  .kds-theme-root .kds-secure-loader-text {
@@ -3273,12 +3282,32 @@
3273
3282
  cursor: pointer;
3274
3283
  }
3275
3284
 
3276
- /* Checked state */
3285
+ /* Checked state.
3286
+ accent-color aplica al input nativo, que BeerCSS deja con opacity 0: no se ve.
3287
+ Se mantiene igual por si algun consumidor no usa el markup de BeerCSS. */
3277
3288
  .kds-theme-root label.checkbox input[type="checkbox"]:checked,
3278
3289
  .kds-theme-root label.radio input[type="radio"]:checked {
3279
3290
  accent-color: var(--kds-color-accent, var(--primary));
3280
3291
  }
3281
3292
 
3293
+ /* El control que SI se ve lo dibuja BeerCSS como una ligadura de Material Symbols en
3294
+ `> span::before`, coloreada con var(--primary). Estas dos reglas reproducen sus
3295
+ selectores para que ese pseudo-elemento siga al rol accent.
3296
+
3297
+ Misma especificidad que el original y sin !important: este archivo va ultimo en el
3298
+ bundle, asi que gana por orden. El fallback deja el valor anterior intacto cuando la
3299
+ marca no define accent, que es el caso de todo consumidor actual.
3300
+
3301
+ No se toca `.switch`: es un control de encendido/apagado, no de seleccion, y el
3302
+ contrato de marca no lo incluye. */
3303
+ .kds-theme-root :is(.checkbox, .radio) > span::before {
3304
+ color: var(--kds-color-accent, var(--primary));
3305
+ }
3306
+
3307
+ .kds-theme-root :is(.checkbox, .radio) > input:checked + span::before, .kds-theme-root :is(.checkbox, .radio).icon > input:checked + span > i {
3308
+ color: var(--kds-color-accent, var(--primary));
3309
+ }
3310
+
3282
3311
  /* Disabled state */
3283
3312
  .kds-theme-root label.checkbox input[type="checkbox"]:disabled,
3284
3313
  .kds-theme-root label.radio input[type="radio"]:disabled {
@@ -7990,6 +8019,36 @@
7990
8019
  }
7991
8020
  }
7992
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-theme-root .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-theme-root .kds-screen > .kds-card-elevated.kds-card-elevated--flush-top,
8046
+ .kds-theme-root .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
+
7993
8052
  /* Brand logo row (external, outside cards) */
7994
8053
  .kds-theme-root .kds-brand-row {
7995
8054
  padding: 0 var(--kds-spacing-0-5);