@khipu/design-system 0.1.0-alpha.56 → 0.2.0-alpha.2
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.
- package/dist/beercss/khipu-beercss.css +193 -33
- package/dist/beercss/khipu-beercss.min.css +1 -1
- package/dist/beercss/metadata.json +4 -4
- package/dist/index.d.mts +549 -607
- package/dist/index.d.ts +549 -607
- package/dist/index.js +980 -1959
- package/dist/index.mjs +888 -1862
- package/package.json +6 -5
|
@@ -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-
|
|
14
|
+
* Generated: 2026-05-05T20:41:24.239Z
|
|
15
15
|
*
|
|
16
16
|
* To regenerate:
|
|
17
17
|
* cd design-system && npm run tokens:generate
|
|
@@ -133,16 +133,7 @@
|
|
|
133
133
|
--kds-font-weight-semibold: 600;
|
|
134
134
|
--kds-font-weight-bold: 700;
|
|
135
135
|
|
|
136
|
-
/* Font sizes */
|
|
137
|
-
--kds-font-size-xs: 0.75rem;
|
|
138
|
-
--kds-font-size-sm: 0.875rem;
|
|
139
|
-
--kds-font-size-base: 1rem;
|
|
140
|
-
--kds-font-size-lg: 1.125rem;
|
|
141
|
-
--kds-font-size-xl: 1.25rem;
|
|
142
|
-
--kds-font-size-2xl: 1.5rem;
|
|
143
|
-
--kds-font-size-3xl: 1.875rem;
|
|
144
|
-
--kds-font-size-4xl: 2.25rem;
|
|
145
|
-
|
|
136
|
+
/* Font sizes (base scale xs–4xl: see responsive section below) */
|
|
146
137
|
/* Line heights */
|
|
147
138
|
--kds-line-height-tight: 1.2;
|
|
148
139
|
--kds-line-height-snug: 1.375;
|
|
@@ -365,6 +356,16 @@
|
|
|
365
356
|
========================================================================== */
|
|
366
357
|
|
|
367
358
|
|
|
359
|
+
/* Base font-size scale */
|
|
360
|
+
--kds-font-size-xs: 0.6875rem;
|
|
361
|
+
--kds-font-size-sm: 0.8125rem;
|
|
362
|
+
--kds-font-size-base: 0.875rem;
|
|
363
|
+
--kds-font-size-lg: 1rem;
|
|
364
|
+
--kds-font-size-xl: 1.125rem;
|
|
365
|
+
--kds-font-size-2xl: 1.25rem;
|
|
366
|
+
--kds-font-size-3xl: 1.5rem;
|
|
367
|
+
--kds-font-size-4xl: 1.875rem;
|
|
368
|
+
|
|
368
369
|
/* Headings */
|
|
369
370
|
--kds-font-size-h1: 1.75rem;
|
|
370
371
|
--kds-font-size-h2: 1.5rem;
|
|
@@ -401,6 +402,16 @@
|
|
|
401
402
|
/* Tablet (600px+) - Typography */
|
|
402
403
|
@media (min-width: 600px) {
|
|
403
404
|
:root {
|
|
405
|
+
|
|
406
|
+
/* Base font-size scale */
|
|
407
|
+
--kds-font-size-xs: 0.75rem;
|
|
408
|
+
--kds-font-size-sm: 0.875rem;
|
|
409
|
+
--kds-font-size-base: 1rem;
|
|
410
|
+
--kds-font-size-lg: 1.125rem;
|
|
411
|
+
--kds-font-size-xl: 1.25rem;
|
|
412
|
+
--kds-font-size-2xl: 1.5rem;
|
|
413
|
+
--kds-font-size-3xl: 1.875rem;
|
|
414
|
+
--kds-font-size-4xl: 2.25rem;
|
|
404
415
|
--kds-font-size-h1: 2rem;
|
|
405
416
|
--kds-font-size-h2: 1.75rem;
|
|
406
417
|
--kds-font-size-h3: 1.5rem;
|
|
@@ -428,6 +439,16 @@
|
|
|
428
439
|
/* Desktop (840px+) - Typography */
|
|
429
440
|
@media (min-width: 840px) {
|
|
430
441
|
:root {
|
|
442
|
+
|
|
443
|
+
/* Base font-size scale */
|
|
444
|
+
--kds-font-size-xs: 0.75rem;
|
|
445
|
+
--kds-font-size-sm: 0.875rem;
|
|
446
|
+
--kds-font-size-base: 1rem;
|
|
447
|
+
--kds-font-size-lg: 1.125rem;
|
|
448
|
+
--kds-font-size-xl: 1.25rem;
|
|
449
|
+
--kds-font-size-2xl: 1.5rem;
|
|
450
|
+
--kds-font-size-3xl: 1.875rem;
|
|
451
|
+
--kds-font-size-4xl: 2.25rem;
|
|
431
452
|
--kds-font-size-h1: 2.5rem;
|
|
432
453
|
--kds-font-size-h2: 2rem;
|
|
433
454
|
--kds-font-size-h3: 1.75rem;
|
|
@@ -799,6 +820,7 @@ a.kds-btn {
|
|
|
799
820
|
align-items: center;
|
|
800
821
|
justify-content: center;
|
|
801
822
|
gap: 8px;
|
|
823
|
+
text-align: center;
|
|
802
824
|
|
|
803
825
|
/* Typography - Using design tokens */
|
|
804
826
|
font-family: var(--kds-font-family-secondary);
|
|
@@ -984,7 +1006,12 @@ a.kds-btn > .kds-icon > i {
|
|
|
984
1006
|
min-width: var(--kds-spacing-button-icon-size);
|
|
985
1007
|
min-height: var(--kds-spacing-button-icon-size);
|
|
986
1008
|
line-height: 1;
|
|
987
|
-
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
/* Full-width button */
|
|
1012
|
+
button.kds-btn.kds-btn-block,
|
|
1013
|
+
a.kds-btn.kds-btn-block {
|
|
1014
|
+
width: 100%;
|
|
988
1015
|
}
|
|
989
1016
|
|
|
990
1017
|
/* ========================================
|
|
@@ -1008,12 +1035,6 @@ a.kds-btn.kds-btn-md {
|
|
|
1008
1035
|
|
|
1009
1036
|
/* Default .kds-btn uses --kds-spacing-button-min-height (50px) from base styles */
|
|
1010
1037
|
|
|
1011
|
-
/* Full-width button */
|
|
1012
|
-
button.kds-btn.kds-btn-block,
|
|
1013
|
-
a.kds-btn.kds-btn-block {
|
|
1014
|
-
width: 100%;
|
|
1015
|
-
}
|
|
1016
|
-
|
|
1017
1038
|
/* ========================================
|
|
1018
1039
|
Card Components (Material Design 3)
|
|
1019
1040
|
======================================== */
|
|
@@ -4032,6 +4053,96 @@ dialog#surveyModal button.circle {
|
|
|
4032
4053
|
font-size: var(--kds-font-size-sm);
|
|
4033
4054
|
}
|
|
4034
4055
|
|
|
4056
|
+
/* ── Typography variants ── */
|
|
4057
|
+
.kds-text-display1 {
|
|
4058
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4059
|
+
font-size: var(--kds-font-size-4xl, 36px);
|
|
4060
|
+
font-weight: var(--kds-font-weight-bold, 700);
|
|
4061
|
+
line-height: var(--kds-line-height-tight, 1.2);
|
|
4062
|
+
letter-spacing: var(--kds-letter-spacing-tight, -0.025em);
|
|
4063
|
+
}
|
|
4064
|
+
|
|
4065
|
+
.kds-text-display2 {
|
|
4066
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4067
|
+
font-size: var(--kds-font-size-3xl, 30px);
|
|
4068
|
+
font-weight: var(--kds-font-weight-bold, 700);
|
|
4069
|
+
line-height: var(--kds-line-height-tight, 1.2);
|
|
4070
|
+
letter-spacing: var(--kds-letter-spacing-tight, -0.025em);
|
|
4071
|
+
}
|
|
4072
|
+
|
|
4073
|
+
.kds-text-heading1 {
|
|
4074
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4075
|
+
font-size: var(--kds-font-size-2xl, 24px);
|
|
4076
|
+
font-weight: var(--kds-font-weight-semibold, 600);
|
|
4077
|
+
line-height: var(--kds-line-height-snug, 1.375);
|
|
4078
|
+
}
|
|
4079
|
+
|
|
4080
|
+
.kds-text-heading2 {
|
|
4081
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4082
|
+
font-size: var(--kds-font-size-xl, 20px);
|
|
4083
|
+
font-weight: var(--kds-font-weight-semibold, 600);
|
|
4084
|
+
line-height: var(--kds-line-height-snug, 1.375);
|
|
4085
|
+
}
|
|
4086
|
+
|
|
4087
|
+
.kds-text-heading3 {
|
|
4088
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4089
|
+
font-size: var(--kds-font-size-lg, 18px);
|
|
4090
|
+
font-weight: var(--kds-font-weight-semibold, 600);
|
|
4091
|
+
line-height: var(--kds-line-height-normal, 1.5);
|
|
4092
|
+
}
|
|
4093
|
+
|
|
4094
|
+
.kds-text-body-large {
|
|
4095
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4096
|
+
font-size: var(--kds-font-size-base, 16px);
|
|
4097
|
+
font-weight: var(--kds-font-weight-regular, 400);
|
|
4098
|
+
line-height: var(--kds-line-height-relaxed, 1.66);
|
|
4099
|
+
}
|
|
4100
|
+
|
|
4101
|
+
.kds-text-body {
|
|
4102
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4103
|
+
font-size: var(--kds-font-size-sm, 14px);
|
|
4104
|
+
font-weight: var(--kds-font-weight-regular, 400);
|
|
4105
|
+
line-height: var(--kds-line-height-normal, 1.5);
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
.kds-text-body-small {
|
|
4109
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4110
|
+
font-size: var(--kds-font-size-sm, 12px);
|
|
4111
|
+
font-weight: var(--kds-font-weight-regular, 400);
|
|
4112
|
+
line-height: var(--kds-line-height-normal, 1.5);
|
|
4113
|
+
}
|
|
4114
|
+
|
|
4115
|
+
.kds-text-label {
|
|
4116
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4117
|
+
font-size: var(--kds-font-size-sm, 12px);
|
|
4118
|
+
font-weight: var(--kds-font-weight-semibold, 600);
|
|
4119
|
+
line-height: var(--kds-line-height-normal, 1.5);
|
|
4120
|
+
letter-spacing: var(--kds-letter-spacing-widest, 1px);
|
|
4121
|
+
text-transform: uppercase;
|
|
4122
|
+
}
|
|
4123
|
+
|
|
4124
|
+
.kds-text-label-small {
|
|
4125
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4126
|
+
font-size: var(--kds-font-size-xs, 10px);
|
|
4127
|
+
font-weight: var(--kds-font-weight-semibold, 600);
|
|
4128
|
+
line-height: var(--kds-line-height-normal, 1.5);
|
|
4129
|
+
letter-spacing: var(--kds-letter-spacing-widest, 1px);
|
|
4130
|
+
text-transform: uppercase;
|
|
4131
|
+
}
|
|
4132
|
+
|
|
4133
|
+
.kds-text-link {
|
|
4134
|
+
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
4135
|
+
font-size: inherit;
|
|
4136
|
+
font-weight: var(--kds-font-weight-medium, 500);
|
|
4137
|
+
color: var(--kds-color-primary-main, #8347AD);
|
|
4138
|
+
text-decoration: underline;
|
|
4139
|
+
cursor: pointer;
|
|
4140
|
+
}
|
|
4141
|
+
|
|
4142
|
+
.kds-text-link:hover {
|
|
4143
|
+
color: var(--kds-color-primary-dark, #5B3179);
|
|
4144
|
+
}
|
|
4145
|
+
|
|
4035
4146
|
/* Display utilities */
|
|
4036
4147
|
.kds-hidden {
|
|
4037
4148
|
display: none;
|
|
@@ -4535,14 +4646,26 @@ dialog#surveyModal button.circle {
|
|
|
4535
4646
|
|
|
4536
4647
|
.field.locked > input,
|
|
4537
4648
|
.field.locked > textarea {
|
|
4538
|
-
|
|
4539
|
-
color: var(--kds-color-text-secondary);
|
|
4649
|
+
color: var(--kds-color-text-disabled);
|
|
4540
4650
|
cursor: default;
|
|
4541
|
-
|
|
4651
|
+
pointer-events: none;
|
|
4542
4652
|
}
|
|
4543
4653
|
|
|
4544
4654
|
.field.locked > label {
|
|
4545
|
-
color: var(--kds-color-text-
|
|
4655
|
+
color: var(--kds-color-text-disabled);
|
|
4656
|
+
}
|
|
4657
|
+
|
|
4658
|
+
/* Locked: suppress all hover/focus visual changes */
|
|
4659
|
+
.field.label.border:not(.fill).locked:hover:not(:focus-within) > label::after,
|
|
4660
|
+
.field.label.border:not(.fill).locked:focus-within > label::after {
|
|
4661
|
+
border-block-start-color: var(--outline);
|
|
4662
|
+
}
|
|
4663
|
+
.field.label.border:not(.fill).locked:hover:not(:focus-within) > :is(input, textarea, select),
|
|
4664
|
+
.field.label.border:not(.fill).locked:focus-within > :is(input, textarea, select) {
|
|
4665
|
+
border-color: var(--outline);
|
|
4666
|
+
}
|
|
4667
|
+
.field.label.locked:hover:not(:focus-within) > label {
|
|
4668
|
+
color: var(--kds-color-text-disabled);
|
|
4546
4669
|
}
|
|
4547
4670
|
|
|
4548
4671
|
.field.locked > i {
|
|
@@ -5284,8 +5407,8 @@ dialog#surveyModal button.circle {
|
|
|
5284
5407
|
/* Symmetric padding */
|
|
5285
5408
|
padding: var(--kds-spacing-2);
|
|
5286
5409
|
|
|
5287
|
-
/*
|
|
5288
|
-
border-radius: var(--kds-radius-card);
|
|
5410
|
+
/* Bottom-only border-radius — top is flush so the brand-inner logo isn't clipped */
|
|
5411
|
+
border-radius: 0 0 var(--kds-radius-card) var(--kds-radius-card);
|
|
5289
5412
|
|
|
5290
5413
|
/* Override .kds-card-elevated transition — scroll drives the animation, not CSS transitions */
|
|
5291
5414
|
transition: none;
|
|
@@ -5297,10 +5420,8 @@ dialog#surveyModal button.circle {
|
|
|
5297
5420
|
/* clip-path clips the card from the bottom to hide the collapsible space.
|
|
5298
5421
|
This is VISUAL ONLY — no layout change — prevents scroll feedback loop.
|
|
5299
5422
|
Safari 13.1+ compatible (inset + round)
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
/* Bottom inset = collapsible height + half the card padding to tighten
|
|
5303
|
-
the gap between "Código" and the visible bottom edge when collapsed. */
|
|
5423
|
+
round uses bottom-only radii (0 top, card-radius bottom) to match
|
|
5424
|
+
border-radius and avoid clipping the brand logo at the top corners. */
|
|
5304
5425
|
clip-path: inset(
|
|
5305
5426
|
0 0
|
|
5306
5427
|
calc(
|
|
@@ -5308,7 +5429,7 @@ dialog#surveyModal button.circle {
|
|
|
5308
5429
|
+ var(--kds-spacing-1) * var(--collapse-progress)
|
|
5309
5430
|
)
|
|
5310
5431
|
0
|
|
5311
|
-
round var(--kds-radius-card)
|
|
5432
|
+
round 0 0 var(--kds-radius-card) var(--kds-radius-card)
|
|
5312
5433
|
);
|
|
5313
5434
|
|
|
5314
5435
|
/* Suppress card's own shadow — wrapper handles it */
|
|
@@ -5319,7 +5440,8 @@ dialog#surveyModal button.circle {
|
|
|
5319
5440
|
.kds-invoice-sticky .kds-brand-inner {
|
|
5320
5441
|
margin-bottom: calc(var(--kds-spacing-1) * (1 - var(--collapse-progress)) + var(--kds-spacing-0-5) * var(--collapse-progress));
|
|
5321
5442
|
}
|
|
5322
|
-
.kds-invoice-sticky .kds-brand-inner svg
|
|
5443
|
+
.kds-invoice-sticky .kds-brand-inner svg,
|
|
5444
|
+
.kds-invoice-sticky .kds-brand-inner img {
|
|
5323
5445
|
height: calc(22px - 5px * var(--collapse-progress));
|
|
5324
5446
|
}
|
|
5325
5447
|
|
|
@@ -5380,6 +5502,12 @@ dialog#surveyModal button.circle {
|
|
|
5380
5502
|
}
|
|
5381
5503
|
}
|
|
5382
5504
|
|
|
5505
|
+
/* Invoice sticky: mobile-first — bottom-only border-radius to prevent clipping the brand logo.
|
|
5506
|
+
Desktop restores full border-radius (see min-width:768px block below). */
|
|
5507
|
+
.kds-card-elevated.kds-invoice-sticky {
|
|
5508
|
+
border-radius: 0 0 var(--kds-radius-card) var(--kds-radius-card);
|
|
5509
|
+
}
|
|
5510
|
+
|
|
5383
5511
|
/* -- Invoice Collapsible (kv rows below header) -- */
|
|
5384
5512
|
.kds-invoice-collapsible {
|
|
5385
5513
|
margin-top: var(--kds-spacing-1-5);
|
|
@@ -5401,11 +5529,17 @@ dialog#surveyModal button.circle {
|
|
|
5401
5529
|
}
|
|
5402
5530
|
|
|
5403
5531
|
/* -- Invoice Header (amount + merchant tile) -- */
|
|
5532
|
+
/* Compound selector overrides BeerCSS `header { padding:0 1rem; display:grid; align-content:center }` */
|
|
5533
|
+
header.kds-invoice-header,
|
|
5534
|
+
div.kds-invoice-header,
|
|
5404
5535
|
.kds-invoice-header {
|
|
5405
5536
|
display: flex;
|
|
5406
5537
|
align-items: flex-start;
|
|
5407
5538
|
justify-content: space-between;
|
|
5408
5539
|
gap: var(--kds-spacing-2);
|
|
5540
|
+
padding: 0;
|
|
5541
|
+
border-radius: 0;
|
|
5542
|
+
align-content: initial;
|
|
5409
5543
|
}
|
|
5410
5544
|
|
|
5411
5545
|
/* Reset BeerCSS sibling margin on <p> inside invoice header — specificity (0,4,1) ties BeerCSS, wins by source order */
|
|
@@ -5703,7 +5837,6 @@ button.kds-btn-success::after {
|
|
|
5703
5837
|
margin-top: var(--kds-spacing-1);
|
|
5704
5838
|
}
|
|
5705
5839
|
|
|
5706
|
-
|
|
5707
5840
|
/* -- Field group spacing -- */
|
|
5708
5841
|
.kds-field-group {
|
|
5709
5842
|
margin-top: var(--kds-spacing-1-75);
|
|
@@ -5765,6 +5898,18 @@ button.kds-btn-success::after {
|
|
|
5765
5898
|
box-shadow: var(--kds-shadow-card);
|
|
5766
5899
|
}
|
|
5767
5900
|
|
|
5901
|
+
/* Payment flow cards — mobile-first: no vertical padding.
|
|
5902
|
+
Desktop (min-width: 768px) restores padding + full border-radius. */
|
|
5903
|
+
.kds-payment-flow .kds-card-elevated {
|
|
5904
|
+
margin-top: 0;
|
|
5905
|
+
padding-top: 0;
|
|
5906
|
+
padding-bottom: 0;
|
|
5907
|
+
}
|
|
5908
|
+
.kds-payment-flow .kds-card-elevated.kds-invoice-sticky {
|
|
5909
|
+
padding-top: var(--kds-spacing-1);
|
|
5910
|
+
padding-bottom: 0;
|
|
5911
|
+
}
|
|
5912
|
+
|
|
5768
5913
|
/* Payment stage — full-viewport centered wrapper */
|
|
5769
5914
|
.kds-payment-stage {
|
|
5770
5915
|
min-height: 100vh;
|
|
@@ -5805,13 +5950,26 @@ button.kds-btn-success::after {
|
|
|
5805
5950
|
|
|
5806
5951
|
}
|
|
5807
5952
|
|
|
5953
|
+
/* Desktop: restore card padding and full border-radius on invoice sticky */
|
|
5954
|
+
@media (min-width: 768px) {
|
|
5955
|
+
.kds-payment-flow .kds-card-elevated,
|
|
5956
|
+
.kds-payment-flow .kds-card-elevated.kds-invoice-sticky {
|
|
5957
|
+
padding-top: var(--kds-spacing-2);
|
|
5958
|
+
padding-bottom: var(--kds-spacing-2);
|
|
5959
|
+
}
|
|
5960
|
+
.kds-card-elevated.kds-invoice-sticky {
|
|
5961
|
+
border-radius: var(--kds-radius-card);
|
|
5962
|
+
}
|
|
5963
|
+
}
|
|
5964
|
+
|
|
5808
5965
|
/* Brand logo row (external, outside cards) */
|
|
5809
5966
|
.kds-brand-row {
|
|
5810
5967
|
padding: 0 var(--kds-spacing-0-5);
|
|
5811
5968
|
display: flex;
|
|
5812
5969
|
align-items: center;
|
|
5813
5970
|
}
|
|
5814
|
-
.kds-brand-row svg
|
|
5971
|
+
.kds-brand-row svg,
|
|
5972
|
+
.kds-brand-row img {
|
|
5815
5973
|
height: 22px;
|
|
5816
5974
|
display: block;
|
|
5817
5975
|
}
|
|
@@ -5821,8 +5979,10 @@ button.kds-btn-success::after {
|
|
|
5821
5979
|
display: none;
|
|
5822
5980
|
align-items: center;
|
|
5823
5981
|
margin-bottom: var(--kds-spacing-1);
|
|
5982
|
+
border-radius: 0;
|
|
5824
5983
|
}
|
|
5825
|
-
.kds-brand-inner svg
|
|
5984
|
+
.kds-brand-inner svg,
|
|
5985
|
+
.kds-brand-inner img {
|
|
5826
5986
|
height: 22px;
|
|
5827
5987
|
display: block;
|
|
5828
5988
|
}
|