@khipu/design-system 0.2.0-alpha.3 → 0.2.0-alpha.5

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-05-13T19:14:37.483Z
14
+ * Generated: 2026-05-14T20:21:09.081Z
15
15
  *
16
16
  * To regenerate:
17
17
  * cd design-system && npm run tokens:generate
@@ -147,9 +147,9 @@
147
147
  --kds-letter-spacing-widest: 1px;
148
148
 
149
149
  /* Button typography */
150
- --kds-typography-button-font-size: 0.9375rem;
150
+ --kds-typography-button-font-size: 0.875rem;
151
151
  --kds-typography-button-font-weight: 500;
152
- --kds-typography-button-line-height: 26px;
152
+ --kds-typography-button-line-height: 1.5;
153
153
  --kds-typography-button-letter-spacing: 0.46px;
154
154
 
155
155
  /* Typography margins */
@@ -199,10 +199,10 @@
199
199
  --kds-spacing-input-padding-y: 16px;
200
200
  --kds-spacing-input-padding-x: 12px;
201
201
  --kds-spacing-input-padding: 16px 12px;
202
- --kds-spacing-button-padding-y: 8px;
203
- --kds-spacing-button-padding-x: 22px;
204
- --kds-spacing-button-padding: 8px 22px;
205
- --kds-spacing-button-min-height: 50px;
202
+ --kds-spacing-button-padding-y: 0;
203
+ --kds-spacing-button-padding-x: 16px;
204
+ --kds-spacing-button-padding: 0 16px;
205
+ --kds-spacing-button-min-height: 44px;
206
206
  --kds-spacing-button-icon-size: 20px;
207
207
  --kds-spacing-sidebar-width: 280px;
208
208
  --kds-spacing-sidebar-width-collapsed: 72px;
@@ -241,7 +241,7 @@
241
241
  --kds-radius-full: 9999px;
242
242
 
243
243
  /* Component-specific radii */
244
- --kds-radius-button: 4px;
244
+ --kds-radius-button: 10px;
245
245
  --kds-radius-input: 4px;
246
246
  --kds-radius-card: 14px;
247
247
  --kds-radius-modal: 20px;
@@ -643,6 +643,7 @@ body.dark {
643
643
  /* Scroll Container Utilities */
644
644
  --kds-scroll-sm-height: 280px;
645
645
  --kds-scroll-md-height: 420px;
646
+
646
647
  --kds-scroll-lg-height: 600px;
647
648
 
648
649
  /* Stage Layout */
@@ -755,7 +756,7 @@ footer {
755
756
  ======================================== */
756
757
  :root {
757
758
  /* Scroll-linked collapse range (mobile sticky invoice) */
758
- --kds-scroll-collapse-end: 150px;
759
+ --kds-scroll-collapse-end: 60px;
759
760
 
760
761
  /* Merchant tile: normal and collapsed sizes (from source prototype) */
761
762
  --kds-merchant-size: 64px;
@@ -777,6 +778,10 @@ footer {
777
778
  * Source: design.khipu.com and Material Design 3 specifications
778
779
  */
779
780
 
781
+ * {
782
+ border-radius: 0;
783
+ }
784
+
780
785
 
781
786
  :has(>main) {
782
787
  background-color: transparent !important;
@@ -821,34 +826,37 @@ a.kds-btn {
821
826
  justify-content: center;
822
827
  gap: 8px;
823
828
  text-align: center;
829
+ width: 100%;
824
830
 
825
831
  /* Typography - Using design tokens */
826
832
  font-family: var(--kds-font-family-secondary);
827
- font-weight: var(--kds-font-weight-medium); /* 500, no 600 */
828
- font-size: var(--kds-typography-button-font-size); /* 0.9375rem = 15px */
829
- line-height: var(--kds-typography-button-line-height); /* 26px, no 1 */
833
+ font-weight: var(--kds-font-weight-medium); /* 500 */
834
+ font-size: var(--kds-typography-button-font-size); /* 0.875rem = 14px */
835
+ line-height: var(--kds-typography-button-line-height); /* 1.5 */
830
836
  letter-spacing: var(--kds-typography-button-letter-spacing); /* 0.46px */
831
837
  text-transform: uppercase;
832
838
 
833
839
  /* Spacing - Using design tokens */
834
- padding: var(--kds-spacing-button-padding); /* 8px 22px */
835
- min-height: var(--kds-spacing-button-min-height); /* 50px */
836
- height: auto; /* Remove fixed height, let content + padding define it */
840
+ padding: var(--kds-spacing-button-padding); /* 0 16px */
841
+ height: var(--kds-spacing-button-min-height); /* 44px */
837
842
 
838
843
  /* Border - Using design token */
839
- border-radius: var(--kds-radius-button); /* 4px */
844
+ border-radius: var(--kds-radius-button); /* 10px */
840
845
  border: none;
841
846
 
842
847
  /* Interaction */
843
848
  cursor: pointer;
844
- transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
845
- box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
846
- border-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
847
- color 250ms cubic-bezier(0.4, 0, 0.2, 1);
849
+ transition: background .15s, box-shadow .15s, transform .05s;
848
850
  box-sizing: border-box;
849
851
  vertical-align: middle;
850
852
  }
851
853
 
854
+ /* Active state - add subtle press effect */
855
+ button.kds-btn:active:not(:disabled),
856
+ a.kds-btn:active:not(:disabled) {
857
+ transform: translateY(1px);
858
+ }
859
+
852
860
  /* Disabled state - colores específicos en lugar de opacity */
853
861
  button.kds-btn:disabled,
854
862
  a.kds-btn:disabled {
@@ -866,18 +874,13 @@ a.kds-btn-primary {
866
874
  background: var(--kds-color-primary-main); /* #8347AD */
867
875
  color: white;
868
876
  border: none;
869
- box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
870
- 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
871
- 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
877
+ box-shadow: 0 1px 2px rgba(131, 71, 173, .25);
872
878
  }
873
879
 
874
- /* Hover State - background más oscuro + elevation/4 */
880
+ /* Hover State - background más oscuro */
875
881
  button.kds-btn-primary:hover:not(:disabled),
876
882
  a.kds-btn-primary:hover:not(:disabled) {
877
- background: var(--kds-color-primary-dark); /* #6A3A8C */
878
- box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
879
- 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
880
- 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
883
+ background: var(--kds-color-primary-dark); /* #5B3179 */
881
884
  }
882
885
 
883
886
  /* Active/Focus State */
@@ -5336,6 +5339,7 @@ dialog#surveyModal button.circle {
5336
5339
  background: var(--kds-color-background-muted);
5337
5340
  border-radius: var(--kds-radius-lg);
5338
5341
  padding: var(--kds-spacing-0-25);
5342
+ margin-bottom: var(--kds-spacing-2);
5339
5343
  display: flex;
5340
5344
  position: relative;
5341
5345
  }
@@ -5602,8 +5606,8 @@ div.kds-invoice-header,
5602
5606
  margin-top: var(--kds-spacing-1);
5603
5607
  }
5604
5608
 
5605
- .kds-invoice-code::first-letter {
5606
- text-transform: uppercase;
5609
+ .kds-invoice-code-value {
5610
+ text-transform: lowercase;
5607
5611
  }
5608
5612
 
5609
5613
  .kds-invoice-merchant {
@@ -5647,7 +5651,7 @@ div.kds-invoice-header,
5647
5651
  line-height: 1.5;
5648
5652
  letter-spacing: -0.31px;
5649
5653
  color: var(--kds-color-text-primary);
5650
- margin: 0 0 var(--kds-spacing-2);
5654
+ margin-bottom: var(--kds-spacing-2) !important;
5651
5655
  }
5652
5656
 
5653
5657
  /* -- Key-Value Grid -- */
@@ -5670,12 +5674,15 @@ div.kds-invoice-header,
5670
5674
 
5671
5675
  .kds-kv dd {
5672
5676
  margin: 0;
5673
- font-size: var(--kds-font-size-xs);
5677
+ font-size: var(--kds-font-size-sm);
5674
5678
  line-height: var(--kds-line-height-relaxed);
5675
5679
  font-weight: var(--kds-font-weight-bold);
5676
5680
  letter-spacing: normal;
5677
5681
  color: var(--kds-color-gray-800);
5678
5682
  min-width: 0;
5683
+ white-space: nowrap;
5684
+ overflow: hidden;
5685
+ text-overflow: ellipsis;
5679
5686
  }
5680
5687
 
5681
5688
  /* -- Dividers -- */
@@ -5883,7 +5890,11 @@ button.kds-btn-success::after {
5883
5890
  display: flex;
5884
5891
  flex-direction: column;
5885
5892
  gap: var(--kds-spacing-1);
5886
- margin-top: var(--kds-spacing-1);
5893
+ margin-bottom: var(--kds-spacing-1);
5894
+ }
5895
+
5896
+ .kds-bank-list:last-child {
5897
+ margin-bottom: 0;
5887
5898
  }
5888
5899
 
5889
5900
  /* -- Field group spacing -- */
@@ -1298,7 +1298,7 @@ const ui = _context.ui;
1298
1298
  /**
1299
1299
  * Initialize sticky invoice card progressive collapse on scroll
1300
1300
  * MOBILE ONLY - Desktop mantiene cajitas normales
1301
- * Uses scroll-linked animation (0-150px) for smooth collapse/expand
1301
+ * Uses scroll-linked animation (0-60px) for smooth collapse/expand
1302
1302
  * Updates CSS custom property --collapse-progress (0 to 1) for GPU-accelerated animations
1303
1303
  * Works with multiple screens - targets sticky element in currently active screen
1304
1304
  * Safari-compatible: uses native CSS custom properties, calc(), and requestAnimationFrame
@@ -1307,9 +1307,9 @@ const ui = _context.ui;
1307
1307
  function initStickyInvoice(root) {
1308
1308
  root = root || document;
1309
1309
 
1310
- // Progressive collapse range: 0px (expanded) to 150px (collapsed)
1310
+ // Progressive collapse range: 0px (expanded) to 60px (collapsed)
1311
1311
  var COLLAPSE_START = 0;
1312
- var COLLAPSE_END = 150;
1312
+ var COLLAPSE_END = 60;
1313
1313
 
1314
1314
  var lastScrollY = 0;
1315
1315
  var ticking = false;