@khipu/design-system 0.2.0-alpha.87 → 0.2.0-alpha.89

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-07-01T20:06:40.901Z
16
+ * Generated: 2026-07-02T20:44:15.394Z
17
17
  *
18
18
  * To regenerate:
19
19
  * cd design-system && npm run tokens:generate
@@ -5638,6 +5638,25 @@
5638
5638
  }
5639
5639
  }
5640
5640
 
5641
+ /* Corner-overlap: mount the FAB centered OVER the top-right corner of the content column
5642
+ (`--kds-fab-column-width`), overlapping outward — vs `--top-right` which insets inside the
5643
+ column. Mobile keeps a small inset from the viewport via the `--kds-fab-inset` token. */
5644
+ .kds-theme-root .kds-fab--corner {
5645
+ --kds-fab-inset: 5px;
5646
+ position: fixed;
5647
+ top: var(--kds-fab-inset);
5648
+ right: var(--kds-fab-inset);
5649
+ }
5650
+
5651
+ @media (min-width: 768px) {
5652
+ .kds-theme-root .kds-fab--corner {
5653
+ right: max(
5654
+ var(--kds-fab-inset),
5655
+ calc((100% - var(--kds-fab-column-width, 100%)) / 2 - var(--kds-spacing-5) / 2)
5656
+ );
5657
+ }
5658
+ }
5659
+
5641
5660
  /* Hidden (scroll-away) state — fade + slide toward the nearest edge */
5642
5661
  .kds-theme-root .kds-fab--hidden {
5643
5662
  opacity: 0;
@@ -5739,7 +5758,9 @@
5739
5758
  padding: var(--kds-spacing-1) 0;
5740
5759
  }
5741
5760
 
5742
- /* Desktop: footer inside card hidden; Mobile: footer outside card hidden */
5761
+ /* Footer SIEMPRE fuera del card body (desktop y mobile): el footer interno
5762
+ (variant="inside") queda oculto en todos los breakpoints; se muestra el
5763
+ externo, hermano directo del card bajo `.kds-screen`. */
5743
5764
  .kds-theme-root .kds-card-elevated > .kds-secure-footer {
5744
5765
  display: none;
5745
5766
  }
@@ -5748,22 +5769,13 @@
5748
5769
  margin-block-start: 0 !important;
5749
5770
  }
5750
5771
 
5751
- /* Footer externo (desktop) adyacente a la card: cancela el gap del .kds-screen
5752
- para que quede pegado debajo de la card y no flotando lejos. Las dos cards
5772
+ /* Footer externo adyacente a la card: cancela el gap del .kds-screen para que
5773
+ quede pegado debajo de la card y no flotando lejos. Las dos cards
5753
5774
  (header/body) sí conservan su separación. */
5754
5775
  .kds-theme-root .kds-screen > .kds-secure-footer {
5755
5776
  margin-top: calc(-1 * var(--kds-spacing-3));
5756
5777
  }
5757
5778
 
5758
- @media (max-width: 767px) {
5759
- .kds-theme-root .kds-card-elevated > .kds-secure-footer {
5760
- display: flex;
5761
- }
5762
- .kds-theme-root .kds-screen > .kds-secure-footer {
5763
- display: none;
5764
- }
5765
- }
5766
-
5767
5779
  .kds-theme-root .kds-secure-footer-lock {
5768
5780
  width: 12px;
5769
5781
  height: 12px;
@@ -6409,6 +6421,30 @@
6409
6421
  /* No max-height — clip-path on parent handles visual collapse without layout changes */
6410
6422
  .kds-theme-root .kds-invoice-sticky .kds-invoice-collapsible {
6411
6423
  opacity: calc(1 - var(--collapse-progress) * 1.5);
6424
+
6425
+ /* Scroll interno discreto (mobile): cuando el detalle abierto excede el viewport, el
6426
+ collapsible scrollea internamente (monto/merchant quedan fijos arriba) para poder leer
6427
+ todo el detalle. Al tocar el fondo, `overscroll-behavior: auto` ENCADENA el gesto al
6428
+ scroll del body → dispara useStickyInvoiceCollapse → colapsa el header y aparece el form
6429
+ (flujo natural). Se auto-desactiva con el detalle cerrado (contenido más corto que el
6430
+ max-height → sin scroll ni efecto visual). */
6431
+ max-height: calc(100vh - var(--kds-spacing-12) - var(--kds-spacing-4));
6432
+ max-height: calc(100dvh - var(--kds-spacing-12) - var(--kds-spacing-4));
6433
+ overflow-y: auto;
6434
+ overflow-x: hidden;
6435
+ overscroll-behavior-y: auto;
6436
+ scrollbar-width: thin;
6437
+ scrollbar-color: var(--kds-color-gray-300) transparent;
6438
+ }
6439
+ .kds-theme-root .kds-invoice-sticky .kds-invoice-collapsible::-webkit-scrollbar {
6440
+ width: 4px;
6441
+ }
6442
+ .kds-theme-root .kds-invoice-sticky .kds-invoice-collapsible::-webkit-scrollbar-thumb {
6443
+ background: var(--kds-color-gray-300);
6444
+ border-radius: var(--kds-radius-full);
6445
+ }
6446
+ .kds-theme-root .kds-invoice-sticky .kds-invoice-collapsible::-webkit-scrollbar-track {
6447
+ background: transparent;
6412
6448
  }
6413
6449
 
6414
6450
  /* Amount: 30px → 24px (progressive) */