@khipu/design-system 0.2.0-alpha.4 → 0.2.0-alpha.41
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 +955 -130
- package/dist/beercss/khipu-beercss.js +60 -27
- package/dist/beercss/khipu-beercss.min.css +1 -1
- package/dist/beercss/khipu-beercss.min.js +1 -1
- package/dist/beercss/khipu-beercss.scoped.css +7763 -0
- package/dist/beercss/khipu-beercss.scoped.min.css +1 -0
- package/dist/beercss/metadata.json +8 -4
- package/dist/index.d.mts +576 -258
- package/dist/index.d.ts +576 -258
- package/dist/index.js +763 -451
- package/dist/index.mjs +732 -420
- package/package.json +12 -9
- package/dist/khipu-logo-color-TV75AKOV.svg +0 -19
|
@@ -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-
|
|
14
|
+
* Generated: 2026-06-11T18:38:45.718Z
|
|
15
15
|
*
|
|
16
16
|
* To regenerate:
|
|
17
17
|
* cd design-system && npm run tokens:generate
|
|
@@ -48,15 +48,21 @@
|
|
|
48
48
|
--kds-color-success-main: #2E7D32;
|
|
49
49
|
--kds-color-success-light: #4CAF50;
|
|
50
50
|
--kds-color-success-dark: #1B5E20;
|
|
51
|
+
--kds-color-success-contrast: #FFFFFF;
|
|
51
52
|
--kds-color-warning-main: #EF6C00;
|
|
52
53
|
--kds-color-warning-light: #FF9800;
|
|
53
54
|
--kds-color-warning-dark: #E65100;
|
|
55
|
+
--kds-color-warning-contrast: #FFFFFF;
|
|
56
|
+
--kds-color-warning-warm: #8A6D1A;
|
|
54
57
|
--kds-color-error-main: #D32F2F;
|
|
55
58
|
--kds-color-error-light: #EF5350;
|
|
56
59
|
--kds-color-error-dark: #C62828;
|
|
60
|
+
--kds-color-error-contrast: #FFFFFF;
|
|
57
61
|
--kds-color-info-main: #0288D1;
|
|
58
62
|
--kds-color-info-light: #03A9F4;
|
|
59
63
|
--kds-color-info-dark: #01579B;
|
|
64
|
+
--kds-color-info-contrast: #FFFFFF;
|
|
65
|
+
--kds-color-info-blue: #5A5FE0;
|
|
60
66
|
|
|
61
67
|
/* Text colors */
|
|
62
68
|
--kds-color-text-primary: #333333;
|
|
@@ -134,6 +140,8 @@
|
|
|
134
140
|
--kds-font-weight-bold: 700;
|
|
135
141
|
|
|
136
142
|
/* Font sizes (base scale xs–4xl: see responsive section below) */
|
|
143
|
+
--kds-font-size-decimal-sup: 0.5em;
|
|
144
|
+
|
|
137
145
|
/* Line heights */
|
|
138
146
|
--kds-line-height-tight: 1.2;
|
|
139
147
|
--kds-line-height-snug: 1.375;
|
|
@@ -756,7 +764,7 @@ footer {
|
|
|
756
764
|
======================================== */
|
|
757
765
|
:root {
|
|
758
766
|
/* Scroll-linked collapse range (mobile sticky invoice) */
|
|
759
|
-
--kds-scroll-collapse-end:
|
|
767
|
+
--kds-scroll-collapse-end: 60px;
|
|
760
768
|
|
|
761
769
|
/* Merchant tile: normal and collapsed sizes (from source prototype) */
|
|
762
770
|
--kds-merchant-size: 64px;
|
|
@@ -778,6 +786,10 @@ footer {
|
|
|
778
786
|
* Source: design.khipu.com and Material Design 3 specifications
|
|
779
787
|
*/
|
|
780
788
|
|
|
789
|
+
* {
|
|
790
|
+
border-radius: 0;
|
|
791
|
+
}
|
|
792
|
+
|
|
781
793
|
|
|
782
794
|
:has(>main) {
|
|
783
795
|
background-color: transparent !important;
|
|
@@ -842,7 +854,10 @@ a.kds-btn {
|
|
|
842
854
|
|
|
843
855
|
/* Interaction */
|
|
844
856
|
cursor: pointer;
|
|
845
|
-
transition: background
|
|
857
|
+
transition: background-color var(--kds-transition-shorter) var(--kds-easing-standard),
|
|
858
|
+
color var(--kds-transition-shorter) var(--kds-easing-standard),
|
|
859
|
+
box-shadow var(--kds-transition-shorter) var(--kds-easing-standard),
|
|
860
|
+
transform var(--kds-transition-shortest) var(--kds-easing-standard);
|
|
846
861
|
box-sizing: border-box;
|
|
847
862
|
vertical-align: middle;
|
|
848
863
|
}
|
|
@@ -974,7 +989,7 @@ a.kds-btn-text {
|
|
|
974
989
|
|
|
975
990
|
button.kds-btn-text:hover:not(:disabled),
|
|
976
991
|
a.kds-btn-text:hover:not(:disabled) {
|
|
977
|
-
|
|
992
|
+
color: var(--kds-color-primary-dark);
|
|
978
993
|
}
|
|
979
994
|
|
|
980
995
|
button.kds-btn-text:disabled,
|
|
@@ -984,6 +999,30 @@ a.kds-btn-text:disabled {
|
|
|
984
999
|
box-shadow: none;
|
|
985
1000
|
}
|
|
986
1001
|
|
|
1002
|
+
/* Error text (destructive, ghost) — red text, no fill/border. Para acciones
|
|
1003
|
+
destructivas secundarias que no deben competir con el CTA primario. */
|
|
1004
|
+
button.kds-btn-error-text,
|
|
1005
|
+
a.kds-btn-error-text {
|
|
1006
|
+
background: transparent;
|
|
1007
|
+
color: var(--kds-color-error-main);
|
|
1008
|
+
border: none;
|
|
1009
|
+
padding: 6px var(--kds-spacing-2);
|
|
1010
|
+
min-height: 32px;
|
|
1011
|
+
box-shadow: none;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
button.kds-btn-error-text:hover:not(:disabled),
|
|
1015
|
+
a.kds-btn-error-text:hover:not(:disabled) {
|
|
1016
|
+
color: var(--kds-color-error-dark);
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
button.kds-btn-error-text:disabled,
|
|
1020
|
+
a.kds-btn-error-text:disabled {
|
|
1021
|
+
background: transparent;
|
|
1022
|
+
color: var(--kds-color-action-disabled);
|
|
1023
|
+
box-shadow: none;
|
|
1024
|
+
}
|
|
1025
|
+
|
|
987
1026
|
/* Icon wrapper - control size via span container */
|
|
988
1027
|
button.kds-btn > .kds-icon,
|
|
989
1028
|
a.kds-btn > .kds-icon {
|
|
@@ -1046,6 +1085,7 @@ a.kds-btn.kds-btn-md {
|
|
|
1046
1085
|
padding: var(--kds-spacing-2);
|
|
1047
1086
|
box-shadow: var(--kds-shadow-card);
|
|
1048
1087
|
transition: box-shadow 0.3s ease;
|
|
1088
|
+
margin-block-start: 0 !important;
|
|
1049
1089
|
}
|
|
1050
1090
|
|
|
1051
1091
|
.kds-card-elevated:hover,
|
|
@@ -1068,63 +1108,90 @@ a.kds-btn.kds-btn-md {
|
|
|
1068
1108
|
}
|
|
1069
1109
|
}
|
|
1070
1110
|
|
|
1071
|
-
/* Selection card
|
|
1111
|
+
/* Selection card.
|
|
1112
|
+
IMPORTANTE: este componente se renderiza como `<button>`. BeerCSS aplica al
|
|
1113
|
+
`button` base: `display: inline-flex; align-items: center; justify-content: center;
|
|
1114
|
+
block-size: 2.5rem; padding: 0 1rem; background: var(--primary); color: on-primary`.
|
|
1115
|
+
Todas esas reglas hay que sobreescribirlas para que el card-selector funcione como
|
|
1116
|
+
un contenedor flex column de altura variable y alineado a la izquierda.
|
|
1117
|
+
|
|
1118
|
+
Convención del DS: spacing entre hijos via `gap` del flex padre + padding.
|
|
1119
|
+
Los elementos internos (.kds-card-selector-icon/-title/-description) NO usan margin. */
|
|
1072
1120
|
.kds-card-selector {
|
|
1121
|
+
/* Reset BeerCSS button */
|
|
1122
|
+
display: flex;
|
|
1123
|
+
flex-direction: column;
|
|
1124
|
+
align-items: stretch;
|
|
1125
|
+
justify-content: flex-start;
|
|
1126
|
+
block-size: auto;
|
|
1127
|
+
inline-size: 100%;
|
|
1128
|
+
text-align: left;
|
|
1129
|
+
line-height: 1.5;
|
|
1130
|
+
color: var(--kds-color-text-primary);
|
|
1131
|
+
/* Estilos propios del card-selector */
|
|
1073
1132
|
padding: var(--kds-spacing-3);
|
|
1133
|
+
gap: var(--kds-spacing-1-5);
|
|
1074
1134
|
border-radius: var(--kds-radius-md);
|
|
1075
|
-
border:
|
|
1135
|
+
border: var(--kds-border-width-md) solid var(--kds-border-light);
|
|
1076
1136
|
background: var(--kds-color-background-paper);
|
|
1077
1137
|
transition: all 0.3s ease;
|
|
1078
|
-
text-align: left;
|
|
1079
1138
|
cursor: pointer;
|
|
1080
|
-
display: flex;
|
|
1081
|
-
flex-direction: column;
|
|
1082
1139
|
}
|
|
1083
1140
|
|
|
1084
|
-
.kds-card-selector:hover {
|
|
1085
|
-
border-color:
|
|
1141
|
+
.kds-card-selector:hover:not(.selected) {
|
|
1142
|
+
border-color: var(--kds-color-primary-light);
|
|
1143
|
+
background: var(--kds-color-primary-hover);
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
/* Override del ripple/overlay default de BeerCSS:
|
|
1147
|
+
`:is(.wave,.chip,.button,button,nav.tabbed>a,...):not([class*=ripple])::after`
|
|
1148
|
+
tiene specificity (0,2,4) según DevTools (Chrome cuenta cada selector dentro
|
|
1149
|
+
de :is() individualmente para algunos motores). Usamos !important — consistente
|
|
1150
|
+
con cómo se overridean otros estilos de BeerCSS en este archivo (67 usos previos).
|
|
1151
|
+
Antes pintaba negro porque `currentColor` resolvía a text-primary del card. */
|
|
1152
|
+
.kds-card-selector::after {
|
|
1153
|
+
background-image: radial-gradient(circle, var(--kds-color-primary-main) 1%, transparent 1%) !important;
|
|
1086
1154
|
}
|
|
1087
1155
|
|
|
1088
1156
|
.kds-card-selector.selected {
|
|
1089
|
-
border-color:
|
|
1090
|
-
background:
|
|
1157
|
+
border-color: var(--kds-color-primary-main);
|
|
1158
|
+
background: var(--kds-color-primary-faint);
|
|
1091
1159
|
box-shadow: var(--kds-shadow-md);
|
|
1092
1160
|
}
|
|
1093
1161
|
|
|
1094
|
-
/* Icon container */
|
|
1162
|
+
/* Icon container — spacing manejado por gap del padre, no margin */
|
|
1095
1163
|
.kds-card-selector-icon {
|
|
1096
|
-
width:
|
|
1097
|
-
height:
|
|
1098
|
-
background:
|
|
1099
|
-
border-radius:
|
|
1164
|
+
width: var(--kds-spacing-6);
|
|
1165
|
+
height: var(--kds-spacing-6);
|
|
1166
|
+
background: var(--kds-color-primary-focus);
|
|
1167
|
+
border-radius: var(--kds-radius-sm);
|
|
1100
1168
|
display: flex;
|
|
1101
1169
|
align-items: center;
|
|
1102
1170
|
justify-content: center;
|
|
1103
|
-
margin-bottom: 16px;
|
|
1104
1171
|
}
|
|
1105
1172
|
|
|
1106
1173
|
.kds-card-selector-icon i,
|
|
1107
1174
|
.kds-card-selector-icon svg {
|
|
1108
|
-
width:
|
|
1109
|
-
height:
|
|
1110
|
-
min-width:
|
|
1111
|
-
min-height:
|
|
1112
|
-
|
|
1175
|
+
width: var(--kds-spacing-3);
|
|
1176
|
+
height: var(--kds-spacing-3);
|
|
1177
|
+
min-width: var(--kds-spacing-3);
|
|
1178
|
+
min-height: var(--kds-spacing-3);
|
|
1179
|
+
font-size: var(--kds-spacing-3);
|
|
1180
|
+
color: var(--kds-color-primary-main);
|
|
1113
1181
|
}
|
|
1114
1182
|
|
|
1115
|
-
/* Title */
|
|
1183
|
+
/* Title — spacing manejado por gap del padre, no margin */
|
|
1116
1184
|
.kds-card-selector-title {
|
|
1117
|
-
font-weight:
|
|
1185
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
1118
1186
|
color: var(--kds-color-text-primary);
|
|
1119
|
-
|
|
1120
|
-
font-size: 16px;
|
|
1187
|
+
font-size: var(--kds-font-size-lg);
|
|
1121
1188
|
}
|
|
1122
1189
|
|
|
1123
1190
|
/* Description */
|
|
1124
1191
|
.kds-card-selector-description {
|
|
1125
|
-
font-size:
|
|
1126
|
-
color:
|
|
1127
|
-
line-height:
|
|
1192
|
+
font-size: var(--kds-font-size-sm);
|
|
1193
|
+
color: var(--kds-color-text-secondary);
|
|
1194
|
+
line-height: var(--kds-line-height-normal);
|
|
1128
1195
|
}
|
|
1129
1196
|
|
|
1130
1197
|
/* Selected state - visual feedback via border only */
|
|
@@ -1136,14 +1203,22 @@ a.kds-btn.kds-btn-md {
|
|
|
1136
1203
|
display: flex;
|
|
1137
1204
|
flex-direction: column;
|
|
1138
1205
|
gap: var(--kds-spacing-2);
|
|
1139
|
-
padding: var(--kds-spacing-
|
|
1206
|
+
padding: var(--kds-spacing-2);
|
|
1140
1207
|
border-radius: var(--kds-radius-lg);
|
|
1141
1208
|
border: 2px solid var(--kds-border-medium);
|
|
1142
|
-
|
|
1209
|
+
/* Ancho mínimo aplicado a TODOS los planes — así un plan sin badge en una
|
|
1210
|
+
grilla con un plan recomendado mantiene la misma anchura, y el badge nunca
|
|
1211
|
+
se superpone al título por estrechez del card. */
|
|
1212
|
+
min-width: 260px;
|
|
1213
|
+
max-width: 400px;
|
|
1143
1214
|
background: var(--kds-surface-base);
|
|
1144
1215
|
transition: all 0.3s ease;
|
|
1145
1216
|
cursor: pointer;
|
|
1146
|
-
|
|
1217
|
+
/* Alto fijo: el card se estira al alto de su row del grid (align-items stretch
|
|
1218
|
+
es el default) — todas las cards de la misma fila quedan a la misma altura
|
|
1219
|
+
sin importar el contenido. `align-self: stretch` lo hace explícito. */
|
|
1220
|
+
height: 100%;
|
|
1221
|
+
align-self: stretch;
|
|
1147
1222
|
}
|
|
1148
1223
|
|
|
1149
1224
|
.kds-card-plan:hover {
|
|
@@ -1163,18 +1238,19 @@ a.kds-btn.kds-btn-md {
|
|
|
1163
1238
|
box-shadow: var(--kds-shadow-elevation-4);
|
|
1164
1239
|
}
|
|
1165
1240
|
|
|
1166
|
-
/* Recommended Badge
|
|
1241
|
+
/* Recommended Badge — inline dentro del card (no flotante).
|
|
1242
|
+
Es el primer hijo del .kds-card-plan, así que aparece arriba de todo
|
|
1243
|
+
el contenido, alineado a la izquierda. */
|
|
1167
1244
|
.kds-card-plan-badge {
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
right: var(--kds-spacing-6);
|
|
1171
|
-
padding: var(--kds-spacing-1) var(--kds-spacing-4);
|
|
1245
|
+
align-self: flex-start;
|
|
1246
|
+
padding: var(--kds-spacing-0-5) var(--kds-spacing-1-5);
|
|
1172
1247
|
background: var(--primary);
|
|
1173
1248
|
color: white;
|
|
1174
|
-
font-size: var(--kds-font-size-
|
|
1249
|
+
font-size: var(--kds-font-size-xs);
|
|
1175
1250
|
font-weight: var(--kds-font-weight-semibold);
|
|
1251
|
+
line-height: 1;
|
|
1176
1252
|
border-radius: var(--kds-radius-full);
|
|
1177
|
-
|
|
1253
|
+
white-space: nowrap;
|
|
1178
1254
|
}
|
|
1179
1255
|
|
|
1180
1256
|
/* Plan Header */
|
|
@@ -1202,13 +1278,11 @@ a.kds-btn.kds-btn-md {
|
|
|
1202
1278
|
display: flex;
|
|
1203
1279
|
align-items: baseline;
|
|
1204
1280
|
gap: var(--kds-spacing-2);
|
|
1205
|
-
padding: var(--kds-spacing-4) 0;
|
|
1206
1281
|
border-bottom: 1px solid var(--kds-border-light);
|
|
1207
|
-
min-height: 88px; /* Standardize price area height */
|
|
1208
1282
|
}
|
|
1209
1283
|
|
|
1210
1284
|
.kds-price {
|
|
1211
|
-
font-size:
|
|
1285
|
+
font-size: var(--kds-font-size-4xl);
|
|
1212
1286
|
font-weight: var(--kds-font-weight-bold);
|
|
1213
1287
|
color: var(--primary);
|
|
1214
1288
|
line-height: 1.1;
|
|
@@ -1722,53 +1796,108 @@ a.kds-btn.kds-btn-md {
|
|
|
1722
1796
|
}
|
|
1723
1797
|
|
|
1724
1798
|
/* ========================================
|
|
1725
|
-
Snackbar Positioning
|
|
1799
|
+
Snackbar Positioning & Styling
|
|
1726
1800
|
======================================== */
|
|
1727
1801
|
|
|
1728
1802
|
.snackbar {
|
|
1729
1803
|
position: fixed;
|
|
1730
|
-
bottom: var(--kds-spacing-3);
|
|
1731
|
-
left: 50%;
|
|
1732
|
-
transform: translateX(-50%);
|
|
1733
1804
|
z-index: var(--kds-z-index-snackbar);
|
|
1734
1805
|
min-width: 344px;
|
|
1735
1806
|
max-width: var(--kds-snackbar-max-width);
|
|
1736
1807
|
box-shadow: var(--kds-shadow-8);
|
|
1808
|
+
border-radius: var(--kds-radius-md);
|
|
1809
|
+
padding: var(--kds-spacing-1-5) var(--kds-spacing-2);
|
|
1810
|
+
gap: var(--kds-spacing-1);
|
|
1811
|
+
font-family: var(--kds-font-family-primary);
|
|
1812
|
+
font-size: var(--kds-font-size-body2);
|
|
1813
|
+
font-weight: var(--kds-font-weight-medium);
|
|
1814
|
+
line-height: var(--kds-line-height-normal);
|
|
1815
|
+
letter-spacing: var(--kds-letter-spacing-normal);
|
|
1816
|
+
overflow: hidden;
|
|
1737
1817
|
}
|
|
1738
1818
|
|
|
1739
1819
|
/* Snackbar active state - ensure visibility when toggled via JS */
|
|
1740
1820
|
.snackbar.active {
|
|
1741
1821
|
visibility: visible !important;
|
|
1742
1822
|
opacity: 1 !important;
|
|
1743
|
-
transform: translateX(-50%) !important;
|
|
1744
1823
|
}
|
|
1745
1824
|
|
|
1746
|
-
/* Snackbar semantic variants
|
|
1825
|
+
/* Snackbar semantic variants
|
|
1826
|
+
All use white text (--kds-color-primary-contrast) on solid semantic backgrounds */
|
|
1747
1827
|
.snackbar.error {
|
|
1748
1828
|
background-color: var(--kds-color-error-main) !important;
|
|
1749
|
-
color: var(--
|
|
1829
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1750
1830
|
}
|
|
1751
1831
|
|
|
1752
1832
|
.snackbar.error i {
|
|
1753
|
-
color: var(--
|
|
1833
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1754
1834
|
}
|
|
1755
1835
|
|
|
1756
1836
|
.snackbar.info {
|
|
1757
1837
|
background-color: var(--kds-color-info-main) !important;
|
|
1758
|
-
color: var(--
|
|
1838
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1759
1839
|
}
|
|
1760
1840
|
|
|
1761
1841
|
.snackbar.info i {
|
|
1762
|
-
color: var(--
|
|
1842
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1763
1843
|
}
|
|
1764
1844
|
|
|
1765
1845
|
.snackbar.success {
|
|
1766
1846
|
background-color: var(--kds-color-success-main) !important;
|
|
1767
|
-
color: var(--
|
|
1847
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1768
1848
|
}
|
|
1769
1849
|
|
|
1770
1850
|
.snackbar.success i {
|
|
1771
|
-
color: var(--
|
|
1851
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
/* Snackbar progress bar — animated timer for auto-dismiss */
|
|
1855
|
+
.snackbar[data-auto-dismiss]::after {
|
|
1856
|
+
content: '';
|
|
1857
|
+
position: absolute;
|
|
1858
|
+
bottom: 0;
|
|
1859
|
+
left: 0;
|
|
1860
|
+
height: 3px;
|
|
1861
|
+
width: 100%;
|
|
1862
|
+
background: rgba(255, 255, 255, 0.35);
|
|
1863
|
+
border-radius: 0 0 var(--kds-radius-md) var(--kds-radius-md);
|
|
1864
|
+
animation: kds-snackbar-timer var(--kds-snackbar-duration, 5s) linear forwards;
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
@keyframes kds-snackbar-timer {
|
|
1868
|
+
from { width: 100%; }
|
|
1869
|
+
to { width: 0; }
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
/* Snackbar close button */
|
|
1873
|
+
.kds-snackbar-close {
|
|
1874
|
+
background: none !important;
|
|
1875
|
+
border: none !important;
|
|
1876
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1877
|
+
cursor: pointer;
|
|
1878
|
+
padding: var(--kds-spacing-0-5) !important;
|
|
1879
|
+
margin: calc(-1 * var(--kds-spacing-0-5)) !important;
|
|
1880
|
+
margin-left: 0 !important;
|
|
1881
|
+
border-radius: var(--kds-radius-full) !important;
|
|
1882
|
+
display: flex;
|
|
1883
|
+
align-items: center;
|
|
1884
|
+
justify-content: center;
|
|
1885
|
+
flex-shrink: 0;
|
|
1886
|
+
opacity: 0.7;
|
|
1887
|
+
transition: opacity 150ms;
|
|
1888
|
+
min-width: auto !important;
|
|
1889
|
+
width: auto !important;
|
|
1890
|
+
height: auto !important;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
.kds-snackbar-close:hover {
|
|
1894
|
+
opacity: 1;
|
|
1895
|
+
background: rgba(255, 255, 255, 0.15) !important;
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
.kds-snackbar-close i {
|
|
1899
|
+
font-size: 18px !important;
|
|
1900
|
+
color: var(--kds-color-primary-contrast) !important;
|
|
1772
1901
|
}
|
|
1773
1902
|
|
|
1774
1903
|
/* ========================================
|
|
@@ -1969,6 +2098,106 @@ a.kds-btn-google:disabled {
|
|
|
1969
2098
|
height: var(--kds-spacing-button-icon-size);
|
|
1970
2099
|
}
|
|
1971
2100
|
|
|
2101
|
+
/* ========================================
|
|
2102
|
+
KDS LINEAR PROGRESS
|
|
2103
|
+
Native <progress> (KdsLinearProgress). Additive over BeerCSS `progress`,
|
|
2104
|
+
scoped to .kds-progress so other consumers are unaffected.
|
|
2105
|
+
======================================== */
|
|
2106
|
+
|
|
2107
|
+
/* `progress` is inline-block by default → leaves a baseline (descender) gap
|
|
2108
|
+
below the bar. Block removes that gap so it sits flush with siblings. */
|
|
2109
|
+
.kds-progress {
|
|
2110
|
+
display: block;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2113
|
+
/* Animate the filled value when it changes (e.g. advancing a step). BeerCSS
|
|
2114
|
+
sets the value background but no transition, so the width jumps abruptly. */
|
|
2115
|
+
.kds-progress::-webkit-progress-value {
|
|
2116
|
+
transition: width var(--kds-transition-standard) var(--kds-easing-standard);
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
.kds-progress::-moz-progress-bar {
|
|
2120
|
+
transition: width var(--kds-transition-standard) var(--kds-easing-standard);
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
/* ========================================
|
|
2124
|
+
KDS SECURE LOADER
|
|
2125
|
+
Loader de espera: anillo circular + candado centrado + frases opcionales.
|
|
2126
|
+
El anillo reutiliza el spinner circular de BeerCSS, escalado.
|
|
2127
|
+
======================================== */
|
|
2128
|
+
|
|
2129
|
+
.kds-secure-loader {
|
|
2130
|
+
display: flex;
|
|
2131
|
+
flex-direction: column;
|
|
2132
|
+
align-items: center;
|
|
2133
|
+
justify-content: center;
|
|
2134
|
+
gap: var(--kds-spacing-4);
|
|
2135
|
+
text-align: center;
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
.kds-secure-loader-text {
|
|
2139
|
+
display: flex;
|
|
2140
|
+
flex-direction: column;
|
|
2141
|
+
gap: var(--kds-spacing-1);
|
|
2142
|
+
}
|
|
2143
|
+
|
|
2144
|
+
.kds-secure-loader-title {
|
|
2145
|
+
margin: 0;
|
|
2146
|
+
font-family: var(--kds-font-family-primary);
|
|
2147
|
+
font-size: var(--kds-font-size-h6);
|
|
2148
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
2149
|
+
line-height: var(--kds-line-height-snug);
|
|
2150
|
+
color: var(--kds-color-text-primary);
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
.kds-secure-loader-message {
|
|
2154
|
+
margin: 0;
|
|
2155
|
+
font-family: var(--kds-font-family-secondary);
|
|
2156
|
+
font-size: var(--kds-font-size-body1);
|
|
2157
|
+
line-height: var(--kds-line-height-normal);
|
|
2158
|
+
color: var(--kds-color-primary-main);
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
/* Caja del spinner con tamaño fijo: la animación no altera el layout */
|
|
2162
|
+
.kds-secure-loader-spinner {
|
|
2163
|
+
position: relative;
|
|
2164
|
+
display: inline-grid;
|
|
2165
|
+
place-items: center;
|
|
2166
|
+
inline-size: var(--kds-secure-loader-size, 7rem);
|
|
2167
|
+
block-size: var(--kds-secure-loader-size, 7rem);
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
/* Anillo: SVG nativo con arco vía stroke-dasharray, rotando. Replica el
|
|
2171
|
+
CircularProgress original (viewBox 44u, thickness 2, arco ~63%, disableShrink). */
|
|
2172
|
+
.kds-secure-loader-ring {
|
|
2173
|
+
inline-size: var(--kds-secure-loader-size, 6.5rem);
|
|
2174
|
+
block-size: var(--kds-secure-loader-size, 6.5rem);
|
|
2175
|
+
animation: kds-secure-loader-spin 1.2s linear infinite;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
.kds-secure-loader-ring circle {
|
|
2179
|
+
fill: none;
|
|
2180
|
+
stroke: var(--kds-color-primary-main);
|
|
2181
|
+
stroke-width: 2;
|
|
2182
|
+
stroke-linecap: round;
|
|
2183
|
+
/* circunferencia ≈ 2π·20.2 ≈ 127; arco visible ≈ 80 (~63%) */
|
|
2184
|
+
stroke-dasharray: 80 127;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
@keyframes kds-secure-loader-spin {
|
|
2188
|
+
to {
|
|
2189
|
+
transform: rotate(360deg);
|
|
2190
|
+
}
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
/* Candado centrado sobre el anillo */
|
|
2194
|
+
.kds-secure-loader-lock {
|
|
2195
|
+
position: absolute;
|
|
2196
|
+
color: var(--kds-color-text-secondary);
|
|
2197
|
+
font-size: calc(var(--kds-secure-loader-size, 7rem) * 0.4);
|
|
2198
|
+
pointer-events: none;
|
|
2199
|
+
}
|
|
2200
|
+
|
|
1972
2201
|
/* ========================================
|
|
1973
2202
|
Link Styles
|
|
1974
2203
|
======================================== */
|
|
@@ -2101,6 +2330,17 @@ body.dark {
|
|
|
2101
2330
|
transition: border-color 0.2s, box-shadow 0.2s, outline-color 0.2s;
|
|
2102
2331
|
}
|
|
2103
2332
|
|
|
2333
|
+
/* === TEXTAREA FIX === */
|
|
2334
|
+
/* BeerCSS base sets minimal block padding; add breathing room for textarea */
|
|
2335
|
+
.field > textarea {
|
|
2336
|
+
padding-block: 0.75rem;
|
|
2337
|
+
resize: vertical;
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
.field.label > textarea {
|
|
2341
|
+
padding-block-start: 1.5rem;
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2104
2344
|
/* ==========================================
|
|
2105
2345
|
NOTCH VISIBILITY (opacity)
|
|
2106
2346
|
========================================== */
|
|
@@ -2188,12 +2428,16 @@ body.dark {
|
|
|
2188
2428
|
Asegurar que el dropdown arrow sea visible
|
|
2189
2429
|
========================================== */
|
|
2190
2430
|
|
|
2191
|
-
/* Select:
|
|
2431
|
+
/* Select: reset nativo + arrow custom via SVG (iOS Safari ignora estilos con appearance:auto) */
|
|
2192
2432
|
.field select {
|
|
2193
|
-
|
|
2194
|
-
appearance:
|
|
2195
|
-
|
|
2196
|
-
-
|
|
2433
|
+
-webkit-appearance: none;
|
|
2434
|
+
-moz-appearance: none;
|
|
2435
|
+
appearance: none;
|
|
2436
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23333' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
|
|
2437
|
+
background-repeat: no-repeat;
|
|
2438
|
+
background-position: right var(--kds-spacing-1) center;
|
|
2439
|
+
background-size: 20px;
|
|
2440
|
+
padding-right: var(--kds-spacing-4) !important;
|
|
2197
2441
|
}
|
|
2198
2442
|
|
|
2199
2443
|
/* ==========================================
|
|
@@ -2325,6 +2569,71 @@ body.dark {
|
|
|
2325
2569
|
display: inline-flex;
|
|
2326
2570
|
}
|
|
2327
2571
|
|
|
2572
|
+
/* ========================================
|
|
2573
|
+
Radix Tooltip (.kds-tooltip)
|
|
2574
|
+
Espejo de `.tooltip` pero para popovers de Radix:
|
|
2575
|
+
bg oscuro, texto blanco, sombra + animación fade/slide direccional.
|
|
2576
|
+
======================================== */
|
|
2577
|
+
|
|
2578
|
+
.kds-tooltip {
|
|
2579
|
+
background-color: var(--kds-color-text-primary);
|
|
2580
|
+
color: var(--kds-color-background-paper);
|
|
2581
|
+
font-family: var(--kds-font-family-primary);
|
|
2582
|
+
font-size: var(--kds-font-size-xs);
|
|
2583
|
+
font-weight: var(--kds-font-weight-medium);
|
|
2584
|
+
line-height: var(--kds-line-height-normal);
|
|
2585
|
+
border-radius: var(--kds-radius-sm);
|
|
2586
|
+
padding: var(--kds-spacing-0-75) var(--kds-spacing-1-5);
|
|
2587
|
+
box-shadow: var(--kds-shadow-4);
|
|
2588
|
+
max-width: 280px;
|
|
2589
|
+
z-index: var(--kds-z-index-tooltip, 1500);
|
|
2590
|
+
user-select: none;
|
|
2591
|
+
/* Animación direccional según Radix data-side — coordinada con copy-row
|
|
2592
|
+
(cubic-bezier 0.2, 0.8, 0.2, 1) para un feel consistente del DS. */
|
|
2593
|
+
animation-duration: 240ms;
|
|
2594
|
+
animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
2595
|
+
will-change: transform, opacity;
|
|
2596
|
+
}
|
|
2597
|
+
|
|
2598
|
+
.kds-tooltip[data-state='closed'] {
|
|
2599
|
+
animation-duration: 140ms;
|
|
2600
|
+
animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
/* Direccional según data-side (Radix añade el attr en runtime).
|
|
2604
|
+
Cada lado entra desde su dirección con ~8px de offset (más visible que 4px). */
|
|
2605
|
+
.kds-tooltip[data-side='top'][data-state='delayed-open'],
|
|
2606
|
+
.kds-tooltip[data-side='top'][data-state='instant-open'] { animation-name: kds-tooltip-in-top; }
|
|
2607
|
+
.kds-tooltip[data-side='bottom'][data-state='delayed-open'],
|
|
2608
|
+
.kds-tooltip[data-side='bottom'][data-state='instant-open'] { animation-name: kds-tooltip-in-bottom; }
|
|
2609
|
+
.kds-tooltip[data-side='left'][data-state='delayed-open'],
|
|
2610
|
+
.kds-tooltip[data-side='left'][data-state='instant-open'] { animation-name: kds-tooltip-in-left; }
|
|
2611
|
+
.kds-tooltip[data-side='right'][data-state='delayed-open'],
|
|
2612
|
+
.kds-tooltip[data-side='right'][data-state='instant-open'] { animation-name: kds-tooltip-in-right; }
|
|
2613
|
+
|
|
2614
|
+
/* Fallback cuando no hay data-side resuelto aún */
|
|
2615
|
+
.kds-tooltip[data-state='delayed-open']:not([data-side]),
|
|
2616
|
+
.kds-tooltip[data-state='instant-open']:not([data-side]) {
|
|
2617
|
+
animation-name: kds-tooltip-in-top;
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
.kds-tooltip[data-state='closed'] { animation-name: kds-tooltip-out; }
|
|
2621
|
+
|
|
2622
|
+
@keyframes kds-tooltip-in-top { from { opacity: 0; transform: translateY(8px) scale(0.96); } to { opacity: 1; transform: none; } }
|
|
2623
|
+
@keyframes kds-tooltip-in-bottom { from { opacity: 0; transform: translateY(-8px) scale(0.96); } to { opacity: 1; transform: none; } }
|
|
2624
|
+
@keyframes kds-tooltip-in-left { from { opacity: 0; transform: translateX(8px) scale(0.96); } to { opacity: 1; transform: none; } }
|
|
2625
|
+
@keyframes kds-tooltip-in-right { from { opacity: 0; transform: translateX(-8px) scale(0.96); } to { opacity: 1; transform: none; } }
|
|
2626
|
+
|
|
2627
|
+
@keyframes kds-tooltip-out {
|
|
2628
|
+
from { opacity: 1; transform: none; }
|
|
2629
|
+
to { opacity: 0; transform: scale(0.96); }
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
/* Arrow (SVG path generado por Radix) */
|
|
2633
|
+
.kds-tooltip-arrow {
|
|
2634
|
+
fill: var(--kds-color-text-primary);
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2328
2637
|
/* ========================================
|
|
2329
2638
|
Material Symbols Icon Sizing
|
|
2330
2639
|
======================================== */
|
|
@@ -2741,7 +3050,8 @@ dialog.modal .field.border:focus-within {
|
|
|
2741
3050
|
padding: var(--kds-spacing-2);
|
|
2742
3051
|
}
|
|
2743
3052
|
|
|
2744
|
-
.snackbar
|
|
3053
|
+
.snackbar,
|
|
3054
|
+
.snackbar.active {
|
|
2745
3055
|
min-width: calc(100% - 32px);
|
|
2746
3056
|
left: 16px;
|
|
2747
3057
|
right: 16px;
|
|
@@ -3040,6 +3350,32 @@ footer > .kds-container-center {
|
|
|
3040
3350
|
color: var(--kds-color-error-dark);
|
|
3041
3351
|
}
|
|
3042
3352
|
|
|
3353
|
+
/* Close button — icon-only, discreto, no usa kds-btn para no romper el flex layout del alert */
|
|
3354
|
+
.kds-alert-close {
|
|
3355
|
+
flex-shrink: 0;
|
|
3356
|
+
display: inline-flex;
|
|
3357
|
+
align-items: center;
|
|
3358
|
+
justify-content: center;
|
|
3359
|
+
width: 28px;
|
|
3360
|
+
height: 28px;
|
|
3361
|
+
padding: 0;
|
|
3362
|
+
background: transparent;
|
|
3363
|
+
border: 0;
|
|
3364
|
+
border-radius: 50%;
|
|
3365
|
+
color: inherit;
|
|
3366
|
+
cursor: pointer;
|
|
3367
|
+
transition: background-color 0.15s ease;
|
|
3368
|
+
}
|
|
3369
|
+
|
|
3370
|
+
.kds-alert-close:hover {
|
|
3371
|
+
background: rgba(0, 0, 0, 0.06);
|
|
3372
|
+
}
|
|
3373
|
+
|
|
3374
|
+
.kds-alert-close i {
|
|
3375
|
+
font-size: 18px;
|
|
3376
|
+
line-height: 1;
|
|
3377
|
+
}
|
|
3378
|
+
|
|
3043
3379
|
/* Lists inside alerts */
|
|
3044
3380
|
.kds-alert ul {
|
|
3045
3381
|
padding-left: var(--kds-spacing-2);
|
|
@@ -4036,6 +4372,14 @@ dialog#surveyModal button.circle {
|
|
|
4036
4372
|
text-align: center;
|
|
4037
4373
|
}
|
|
4038
4374
|
|
|
4375
|
+
.kds-text-left {
|
|
4376
|
+
text-align: left;
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4379
|
+
.kds-text-right {
|
|
4380
|
+
text-align: right;
|
|
4381
|
+
}
|
|
4382
|
+
|
|
4039
4383
|
.kds-text-underline {
|
|
4040
4384
|
text-decoration: underline;
|
|
4041
4385
|
}
|
|
@@ -4052,6 +4396,54 @@ dialog#surveyModal button.circle {
|
|
|
4052
4396
|
font-size: var(--kds-font-size-sm);
|
|
4053
4397
|
}
|
|
4054
4398
|
|
|
4399
|
+
/* ── Font-size scale utilities (additive — opt-in companions to .kds-text-sm) ── */
|
|
4400
|
+
.kds-text-base {
|
|
4401
|
+
font-size: var(--kds-font-size-base);
|
|
4402
|
+
}
|
|
4403
|
+
|
|
4404
|
+
.kds-text-lg {
|
|
4405
|
+
font-size: var(--kds-font-size-lg);
|
|
4406
|
+
}
|
|
4407
|
+
|
|
4408
|
+
.kds-text-xl {
|
|
4409
|
+
font-size: var(--kds-font-size-xl);
|
|
4410
|
+
}
|
|
4411
|
+
|
|
4412
|
+
.kds-text-2xl {
|
|
4413
|
+
font-size: var(--kds-font-size-2xl);
|
|
4414
|
+
}
|
|
4415
|
+
|
|
4416
|
+
/* ── Font-weight utilities ── */
|
|
4417
|
+
.kds-fw-regular {
|
|
4418
|
+
font-weight: var(--kds-font-weight-regular);
|
|
4419
|
+
}
|
|
4420
|
+
|
|
4421
|
+
.kds-fw-medium {
|
|
4422
|
+
font-weight: var(--kds-font-weight-medium);
|
|
4423
|
+
}
|
|
4424
|
+
|
|
4425
|
+
.kds-fw-semibold {
|
|
4426
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
4427
|
+
}
|
|
4428
|
+
|
|
4429
|
+
.kds-fw-bold {
|
|
4430
|
+
font-weight: var(--kds-font-weight-bold);
|
|
4431
|
+
}
|
|
4432
|
+
|
|
4433
|
+
/* ── Text-transform utilities ── */
|
|
4434
|
+
.kds-text-transform-none {
|
|
4435
|
+
text-transform: none;
|
|
4436
|
+
}
|
|
4437
|
+
|
|
4438
|
+
/* ── Soft background utilities (semantic muted backgrounds for callouts) ── */
|
|
4439
|
+
.kds-bg-warning-soft {
|
|
4440
|
+
background-color: var(--kds-color-warning-soft);
|
|
4441
|
+
}
|
|
4442
|
+
|
|
4443
|
+
.kds-bg-info-soft {
|
|
4444
|
+
background-color: var(--kds-color-info-soft);
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4055
4447
|
/* ── Typography variants ── */
|
|
4056
4448
|
.kds-text-display1 {
|
|
4057
4449
|
font-family: var(--kds-font-family-primary, 'Public Sans', sans-serif);
|
|
@@ -4262,7 +4654,9 @@ dialog#surveyModal button.circle {
|
|
|
4262
4654
|
======================================== */
|
|
4263
4655
|
|
|
4264
4656
|
.kds-badge {
|
|
4265
|
-
display: inline-
|
|
4657
|
+
display: inline-flex;
|
|
4658
|
+
align-items: center;
|
|
4659
|
+
gap: 4px;
|
|
4266
4660
|
padding: 2px 8px;
|
|
4267
4661
|
border-radius: var(--kds-radius-sm);
|
|
4268
4662
|
font-size: var(--kds-font-size-xs);
|
|
@@ -4270,6 +4664,40 @@ dialog#surveyModal button.circle {
|
|
|
4270
4664
|
line-height: 1.5;
|
|
4271
4665
|
}
|
|
4272
4666
|
|
|
4667
|
+
/* Icon prefix inside chip — small inline icon */
|
|
4668
|
+
.kds-badge > i.material-symbols-outlined {
|
|
4669
|
+
font-size: 14px;
|
|
4670
|
+
line-height: 1;
|
|
4671
|
+
}
|
|
4672
|
+
|
|
4673
|
+
/* Deletable chip close button — discreto, sin kds-btn (eso lo agrandaba ridículo) */
|
|
4674
|
+
.kds-badge-close {
|
|
4675
|
+
display: inline-flex;
|
|
4676
|
+
align-items: center;
|
|
4677
|
+
justify-content: center;
|
|
4678
|
+
width: 16px;
|
|
4679
|
+
height: 16px;
|
|
4680
|
+
margin-right: -2px;
|
|
4681
|
+
padding: 0;
|
|
4682
|
+
background: transparent;
|
|
4683
|
+
border: 0;
|
|
4684
|
+
border-radius: 50%;
|
|
4685
|
+
color: inherit;
|
|
4686
|
+
cursor: pointer;
|
|
4687
|
+
opacity: 0.7;
|
|
4688
|
+
transition: opacity 0.15s, background-color 0.15s;
|
|
4689
|
+
}
|
|
4690
|
+
|
|
4691
|
+
.kds-badge-close:hover {
|
|
4692
|
+
opacity: 1;
|
|
4693
|
+
background: rgba(0, 0, 0, 0.1);
|
|
4694
|
+
}
|
|
4695
|
+
|
|
4696
|
+
.kds-badge-close i {
|
|
4697
|
+
font-size: 14px;
|
|
4698
|
+
line-height: 1;
|
|
4699
|
+
}
|
|
4700
|
+
|
|
4273
4701
|
.kds-badge.success {
|
|
4274
4702
|
background-color: var(--kds-color-success-container);
|
|
4275
4703
|
color: var(--kds-color-success-dark);
|
|
@@ -4548,6 +4976,11 @@ dialog#surveyModal button.circle {
|
|
|
4548
4976
|
color: var(--kds-color-text-primary);
|
|
4549
4977
|
}
|
|
4550
4978
|
|
|
4979
|
+
/* Opt-in color modifier — switches the value to the LigoPay/khipu-blue tone */
|
|
4980
|
+
.kds-amount-value--info {
|
|
4981
|
+
color: var(--kds-color-info-blue); /* #5A5FE0 */
|
|
4982
|
+
}
|
|
4983
|
+
|
|
4551
4984
|
.kds-amount-value small {
|
|
4552
4985
|
font-size: 18px;
|
|
4553
4986
|
font-weight: 500;
|
|
@@ -4905,7 +5338,7 @@ dialog#surveyModal button.circle {
|
|
|
4905
5338
|
display: flex;
|
|
4906
5339
|
align-items: center;
|
|
4907
5340
|
justify-content: center;
|
|
4908
|
-
gap: var(--kds-spacing-
|
|
5341
|
+
gap: var(--kds-spacing-0-5);
|
|
4909
5342
|
color: var(--kds-color-gray-400);
|
|
4910
5343
|
font-size: var(--kds-font-size-xs);
|
|
4911
5344
|
letter-spacing: var(--kds-letter-spacing-wide);
|
|
@@ -4917,6 +5350,10 @@ dialog#surveyModal button.circle {
|
|
|
4917
5350
|
display: none;
|
|
4918
5351
|
}
|
|
4919
5352
|
|
|
5353
|
+
.kds-screen > form {
|
|
5354
|
+
margin-block-start: 0 !important;
|
|
5355
|
+
}
|
|
5356
|
+
|
|
4920
5357
|
@media (max-width: 767px) {
|
|
4921
5358
|
.kds-card-elevated > .kds-secure-footer {
|
|
4922
5359
|
display: flex;
|
|
@@ -4966,14 +5403,20 @@ dialog#surveyModal button.circle {
|
|
|
4966
5403
|
cursor: pointer;
|
|
4967
5404
|
display: inline-flex;
|
|
4968
5405
|
align-items: center;
|
|
4969
|
-
gap:
|
|
5406
|
+
gap: 0;
|
|
4970
5407
|
}
|
|
4971
5408
|
|
|
4972
|
-
.kds-expand-toggle:hover
|
|
5409
|
+
.kds-expand-toggle:hover,
|
|
5410
|
+
.kds-expand-toggle:focus,
|
|
5411
|
+
.kds-expand-toggle:active {
|
|
4973
5412
|
background: transparent;
|
|
5413
|
+
outline: none;
|
|
5414
|
+
box-shadow: none;
|
|
4974
5415
|
}
|
|
4975
5416
|
|
|
4976
|
-
.kds-expand-toggle:hover span
|
|
5417
|
+
.kds-expand-toggle:hover span,
|
|
5418
|
+
.kds-expand-toggle:focus span,
|
|
5419
|
+
.kds-expand-toggle:active span {
|
|
4977
5420
|
text-decoration: underline;
|
|
4978
5421
|
}
|
|
4979
5422
|
|
|
@@ -5153,11 +5596,11 @@ dialog#surveyModal button.circle {
|
|
|
5153
5596
|
color: var(--kds-color-success-main);
|
|
5154
5597
|
}
|
|
5155
5598
|
|
|
5156
|
-
/* Variant: pending (animated spinner) */
|
|
5599
|
+
/* Variant: pending (animated blue spinner, sin icono interno) */
|
|
5157
5600
|
.kds-status-block[data-status="pending"] .kds-status-block-icon {
|
|
5158
5601
|
background: transparent;
|
|
5159
5602
|
border: 3px solid var(--kds-color-divider);
|
|
5160
|
-
border-top-color: var(--kds-color-
|
|
5603
|
+
border-top-color: var(--kds-color-info-main);
|
|
5161
5604
|
animation: kds-spin 1s linear infinite;
|
|
5162
5605
|
}
|
|
5163
5606
|
|
|
@@ -5175,12 +5618,21 @@ dialog#surveyModal button.circle {
|
|
|
5175
5618
|
color: var(--kds-color-error-main);
|
|
5176
5619
|
}
|
|
5177
5620
|
|
|
5621
|
+
/* Variant: info — usar SIEMPRE con icon "info_i" (i minúscula sin glyph circular)
|
|
5622
|
+
para que solo se vea nuestro círculo decorativo. Iconos como "info" tienen
|
|
5623
|
+
su propio círculo built-in → causarían doble círculo. */
|
|
5624
|
+
.kds-status-block[data-status="info"] .kds-status-block-icon {
|
|
5625
|
+
background: var(--kds-color-info-soft);
|
|
5626
|
+
border: var(--kds-border-width-md) solid var(--kds-color-info-main);
|
|
5627
|
+
color: var(--kds-color-info-main);
|
|
5628
|
+
}
|
|
5629
|
+
|
|
5178
5630
|
/* Inline variant: icon left + text right */
|
|
5179
5631
|
.kds-status-block.inline {
|
|
5180
5632
|
text-align: left;
|
|
5181
5633
|
display: flex;
|
|
5182
5634
|
align-items: center;
|
|
5183
|
-
gap: var(--kds-spacing-
|
|
5635
|
+
gap: var(--kds-spacing-2);
|
|
5184
5636
|
padding: var(--kds-spacing-1) 0;
|
|
5185
5637
|
}
|
|
5186
5638
|
|
|
@@ -5242,6 +5694,40 @@ dialog#surveyModal button.circle {
|
|
|
5242
5694
|
background: var(--kds-color-divider);
|
|
5243
5695
|
}
|
|
5244
5696
|
|
|
5697
|
+
/* Close button — top-right discreto, NO usa kds-btn (rompía el flex layout) */
|
|
5698
|
+
.kds-bottom-sheet-close {
|
|
5699
|
+
position: absolute;
|
|
5700
|
+
top: var(--kds-spacing-1);
|
|
5701
|
+
right: var(--kds-spacing-1);
|
|
5702
|
+
width: 32px;
|
|
5703
|
+
height: 32px;
|
|
5704
|
+
display: inline-flex;
|
|
5705
|
+
align-items: center;
|
|
5706
|
+
justify-content: center;
|
|
5707
|
+
padding: 0;
|
|
5708
|
+
background: transparent;
|
|
5709
|
+
border: 0;
|
|
5710
|
+
border-radius: 50%;
|
|
5711
|
+
color: var(--kds-color-text-secondary);
|
|
5712
|
+
cursor: pointer;
|
|
5713
|
+
transition: background-color 0.15s ease;
|
|
5714
|
+
}
|
|
5715
|
+
|
|
5716
|
+
.kds-bottom-sheet-close:hover {
|
|
5717
|
+
background: rgba(0, 0, 0, 0.06);
|
|
5718
|
+
}
|
|
5719
|
+
|
|
5720
|
+
.kds-bottom-sheet-close i {
|
|
5721
|
+
font-size: 20px;
|
|
5722
|
+
line-height: 1;
|
|
5723
|
+
}
|
|
5724
|
+
|
|
5725
|
+
/* Body container — separa el content del title/actions */
|
|
5726
|
+
.kds-bottom-sheet-body {
|
|
5727
|
+
text-align: left;
|
|
5728
|
+
margin-top: var(--kds-spacing-1);
|
|
5729
|
+
}
|
|
5730
|
+
|
|
5245
5731
|
.kds-bottom-sheet-icon {
|
|
5246
5732
|
font-size: var(--kds-font-size-4xl);
|
|
5247
5733
|
}
|
|
@@ -5571,6 +6057,13 @@ div.kds-invoice-header,
|
|
|
5571
6057
|
align-content: initial;
|
|
5572
6058
|
}
|
|
5573
6059
|
|
|
6060
|
+
/* Mobile collapsed state: center-align so merchant tile aligns with the smaller amount */
|
|
6061
|
+
@media (max-width: 767px) {
|
|
6062
|
+
.kds-invoice-sticky.is-collapsed .kds-invoice-header {
|
|
6063
|
+
align-items: center;
|
|
6064
|
+
}
|
|
6065
|
+
}
|
|
6066
|
+
|
|
5574
6067
|
/* Reset BeerCSS sibling margin on <p> inside invoice header — specificity (0,4,1) ties BeerCSS, wins by source order */
|
|
5575
6068
|
.kds-card-elevated.kds-invoice-sticky .kds-invoice-header p.kds-invoice-amount,
|
|
5576
6069
|
.kds-card-elevated.kds-invoice-sticky .kds-invoice-header p.kds-invoice-code {
|
|
@@ -5578,7 +6071,7 @@ div.kds-invoice-header,
|
|
|
5578
6071
|
}
|
|
5579
6072
|
|
|
5580
6073
|
.kds-invoice-amount {
|
|
5581
|
-
font-weight: var(--kds-font-weight-
|
|
6074
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
5582
6075
|
font-size: var(--kds-font-size-3xl);
|
|
5583
6076
|
line-height: var(--kds-line-height-tight);
|
|
5584
6077
|
letter-spacing: var(--kds-letter-spacing-wide);
|
|
@@ -5599,10 +6092,16 @@ div.kds-invoice-header,
|
|
|
5599
6092
|
color: var(--kds-color-gray-400);
|
|
5600
6093
|
text-transform: uppercase;
|
|
5601
6094
|
margin: 0;
|
|
5602
|
-
margin-
|
|
6095
|
+
margin-block: unset;
|
|
6096
|
+
display: flex;
|
|
6097
|
+
gap: var(--kds-spacing-1-5);
|
|
5603
6098
|
}
|
|
5604
6099
|
|
|
5605
6100
|
.kds-invoice-code-value {
|
|
6101
|
+
color: var(--kds-color-gray-400);
|
|
6102
|
+
}
|
|
6103
|
+
|
|
6104
|
+
.kds-invoice-code-value--lowercase {
|
|
5606
6105
|
text-transform: lowercase;
|
|
5607
6106
|
}
|
|
5608
6107
|
|
|
@@ -5615,6 +6114,9 @@ div.kds-invoice-header,
|
|
|
5615
6114
|
place-items: center;
|
|
5616
6115
|
color: #fff;
|
|
5617
6116
|
flex-shrink: 0;
|
|
6117
|
+
/* Clip the slightly-oversized logo (see `.kds-invoice-merchant img`) to the
|
|
6118
|
+
rounded square so it can fully cover the deep-purple background. */
|
|
6119
|
+
overflow: hidden;
|
|
5618
6120
|
}
|
|
5619
6121
|
|
|
5620
6122
|
.kds-invoice-merchant i {
|
|
@@ -5634,15 +6136,18 @@ div.kds-invoice-header,
|
|
|
5634
6136
|
}
|
|
5635
6137
|
|
|
5636
6138
|
.kds-invoice-merchant img {
|
|
5637
|
-
|
|
5638
|
-
|
|
6139
|
+
/* Slightly larger than the container (+2px, centered by the grid) so the
|
|
6140
|
+
logo overflows under the parent's rounded clip and the deep-purple
|
|
6141
|
+
background never peeks through at the corners when the logo shrinks. */
|
|
6142
|
+
width: calc(100% + 2px);
|
|
6143
|
+
height: calc(100% + 2px);
|
|
5639
6144
|
object-fit: cover;
|
|
5640
6145
|
border-radius: var(--kds-radius-md);
|
|
5641
6146
|
}
|
|
5642
6147
|
|
|
5643
6148
|
/* -- Card Title -- */
|
|
5644
6149
|
.kds-card-title {
|
|
5645
|
-
font-weight:
|
|
6150
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
5646
6151
|
font-size: var(--kds-font-size-base);
|
|
5647
6152
|
line-height: 1.5;
|
|
5648
6153
|
letter-spacing: -0.31px;
|
|
@@ -5650,12 +6155,22 @@ div.kds-invoice-header,
|
|
|
5650
6155
|
margin-bottom: var(--kds-spacing-2) !important;
|
|
5651
6156
|
}
|
|
5652
6157
|
|
|
6158
|
+
/* Opt-in size modifiers (additive — do NOT change default 16/600) */
|
|
6159
|
+
.kds-card-title--lg {
|
|
6160
|
+
font-size: var(--kds-font-size-xl); /* 20px */
|
|
6161
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
6162
|
+
}
|
|
6163
|
+
|
|
6164
|
+
.kds-card-title--xl {
|
|
6165
|
+
font-size: var(--kds-font-size-2xl); /* 24px */
|
|
6166
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
6167
|
+
}
|
|
6168
|
+
|
|
5653
6169
|
/* -- Key-Value Grid -- */
|
|
5654
6170
|
.kds-kv {
|
|
5655
6171
|
display: grid;
|
|
5656
6172
|
grid-template-columns: auto 1fr;
|
|
5657
|
-
|
|
5658
|
-
column-gap: var(--kds-spacing-1-5);
|
|
6173
|
+
column-gap: var(--kds-spacing-1);
|
|
5659
6174
|
align-items: baseline;
|
|
5660
6175
|
}
|
|
5661
6176
|
|
|
@@ -5672,7 +6187,7 @@ div.kds-invoice-header,
|
|
|
5672
6187
|
margin: 0;
|
|
5673
6188
|
font-size: var(--kds-font-size-sm);
|
|
5674
6189
|
line-height: var(--kds-line-height-relaxed);
|
|
5675
|
-
font-weight: var(--kds-font-weight-
|
|
6190
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
5676
6191
|
letter-spacing: normal;
|
|
5677
6192
|
color: var(--kds-color-gray-800);
|
|
5678
6193
|
min-width: 0;
|
|
@@ -5702,7 +6217,13 @@ div.kds-invoice-header,
|
|
|
5702
6217
|
flex-direction: column;
|
|
5703
6218
|
gap: var(--kds-spacing-1-5);
|
|
5704
6219
|
margin: 0;
|
|
5705
|
-
padding: 0
|
|
6220
|
+
padding: 0;
|
|
6221
|
+
}
|
|
6222
|
+
|
|
6223
|
+
@media (max-width: 767px) {
|
|
6224
|
+
.kds-detail-list {
|
|
6225
|
+
padding-bottom: var(--kds-spacing-2);
|
|
6226
|
+
}
|
|
5706
6227
|
}
|
|
5707
6228
|
|
|
5708
6229
|
.kds-detail-group {
|
|
@@ -5718,7 +6239,6 @@ div.kds-invoice-header,
|
|
|
5718
6239
|
letter-spacing: var(--kds-letter-spacing-wide);
|
|
5719
6240
|
color: var(--kds-color-text-hint);
|
|
5720
6241
|
text-transform: uppercase;
|
|
5721
|
-
margin: 0 0 var(--kds-spacing-0-5);
|
|
5722
6242
|
}
|
|
5723
6243
|
|
|
5724
6244
|
.kds-detail-group dd {
|
|
@@ -5787,16 +6307,16 @@ div.kds-invoice-header,
|
|
|
5787
6307
|
font-size: var(--kds-font-size-sm);
|
|
5788
6308
|
}
|
|
5789
6309
|
|
|
5790
|
-
.kds-recap-list .
|
|
6310
|
+
.kds-recap-list .kds-key {
|
|
5791
6311
|
color: var(--kds-color-text-secondary);
|
|
5792
6312
|
}
|
|
5793
6313
|
|
|
5794
|
-
.kds-recap-list .
|
|
6314
|
+
.kds-recap-list .kds-value {
|
|
5795
6315
|
color: var(--kds-color-text-primary);
|
|
5796
6316
|
font-weight: 500;
|
|
5797
6317
|
}
|
|
5798
6318
|
|
|
5799
|
-
.kds-recap-list .
|
|
6319
|
+
.kds-recap-list .kds-value.placeholder {
|
|
5800
6320
|
color: var(--kds-color-text-hint);
|
|
5801
6321
|
}
|
|
5802
6322
|
|
|
@@ -5823,6 +6343,72 @@ a.kds-btn-success:disabled {
|
|
|
5823
6343
|
box-shadow: none;
|
|
5824
6344
|
}
|
|
5825
6345
|
|
|
6346
|
+
/* -- Button Warning (amber CTA) -- */
|
|
6347
|
+
button.kds-btn-warning,
|
|
6348
|
+
a.kds-btn-warning {
|
|
6349
|
+
background: var(--kds-color-warning-main);
|
|
6350
|
+
color: var(--kds-color-warning-contrast);
|
|
6351
|
+
border: none;
|
|
6352
|
+
}
|
|
6353
|
+
|
|
6354
|
+
button.kds-btn-warning:hover:not(:disabled),
|
|
6355
|
+
a.kds-btn-warning:hover:not(:disabled) {
|
|
6356
|
+
background: var(--kds-color-warning-dark);
|
|
6357
|
+
}
|
|
6358
|
+
|
|
6359
|
+
button.kds-btn-warning:active:not(:disabled),
|
|
6360
|
+
button.kds-btn-warning:focus-visible:not(:disabled),
|
|
6361
|
+
a.kds-btn-warning:active:not(:disabled),
|
|
6362
|
+
a.kds-btn-warning:focus-visible:not(:disabled) {
|
|
6363
|
+
background: var(--kds-color-warning-dark);
|
|
6364
|
+
outline: 2px solid var(--kds-color-warning-main);
|
|
6365
|
+
outline-offset: 2px;
|
|
6366
|
+
}
|
|
6367
|
+
|
|
6368
|
+
button.kds-btn-warning:disabled,
|
|
6369
|
+
a.kds-btn-warning:disabled {
|
|
6370
|
+
background-color: var(--kds-color-action-disabled-bg);
|
|
6371
|
+
color: var(--kds-color-action-disabled);
|
|
6372
|
+
box-shadow: none;
|
|
6373
|
+
}
|
|
6374
|
+
|
|
6375
|
+
button.kds-btn-warning::after {
|
|
6376
|
+
display: none;
|
|
6377
|
+
}
|
|
6378
|
+
|
|
6379
|
+
/* -- Button Error (red / destructive CTA) -- */
|
|
6380
|
+
button.kds-btn-error,
|
|
6381
|
+
a.kds-btn-error {
|
|
6382
|
+
background: var(--kds-color-error-main);
|
|
6383
|
+
color: var(--kds-color-error-contrast);
|
|
6384
|
+
border: none;
|
|
6385
|
+
}
|
|
6386
|
+
|
|
6387
|
+
button.kds-btn-error:hover:not(:disabled),
|
|
6388
|
+
a.kds-btn-error:hover:not(:disabled) {
|
|
6389
|
+
background: var(--kds-color-error-dark);
|
|
6390
|
+
}
|
|
6391
|
+
|
|
6392
|
+
button.kds-btn-error:active:not(:disabled),
|
|
6393
|
+
button.kds-btn-error:focus-visible:not(:disabled),
|
|
6394
|
+
a.kds-btn-error:active:not(:disabled),
|
|
6395
|
+
a.kds-btn-error:focus-visible:not(:disabled) {
|
|
6396
|
+
background: var(--kds-color-error-dark);
|
|
6397
|
+
outline: 2px solid var(--kds-color-error-main);
|
|
6398
|
+
outline-offset: 2px;
|
|
6399
|
+
}
|
|
6400
|
+
|
|
6401
|
+
button.kds-btn-error:disabled,
|
|
6402
|
+
a.kds-btn-error:disabled {
|
|
6403
|
+
background-color: var(--kds-color-action-disabled-bg);
|
|
6404
|
+
color: var(--kds-color-action-disabled);
|
|
6405
|
+
box-shadow: none;
|
|
6406
|
+
}
|
|
6407
|
+
|
|
6408
|
+
button.kds-btn-error::after {
|
|
6409
|
+
display: none;
|
|
6410
|
+
}
|
|
6411
|
+
|
|
5826
6412
|
/* -- Field Helper Text -- */
|
|
5827
6413
|
.kds-field-helper {
|
|
5828
6414
|
font-size: var(--kds-font-size-xs);
|
|
@@ -5865,6 +6451,8 @@ button.kds-btn-success::after {
|
|
|
5865
6451
|
/* -- Alert inline (borderless, used inside cards) -- */
|
|
5866
6452
|
.kds-alert-inline {
|
|
5867
6453
|
border: none;
|
|
6454
|
+
padding: var(--kds-spacing-1) var(--kds-spacing-1-5);
|
|
6455
|
+
margin-bottom: var(--kds-spacing-1-5);
|
|
5868
6456
|
}
|
|
5869
6457
|
|
|
5870
6458
|
/* -- Card dimmed (behind overlays) -- */
|
|
@@ -5966,17 +6554,42 @@ button.kds-btn-success::after {
|
|
|
5966
6554
|
}
|
|
5967
6555
|
|
|
5968
6556
|
.kds-bill-description-picture {
|
|
5969
|
-
width:
|
|
5970
|
-
height: 120px;
|
|
6557
|
+
max-width: 100px;
|
|
5971
6558
|
object-fit: contain;
|
|
5972
6559
|
background: var(--kds-color-background-paper);
|
|
5973
|
-
|
|
5974
|
-
border-radius: var(--kds-radius-md);
|
|
5975
|
-
margin-top: var(--kds-spacing-1);
|
|
6560
|
+
margin-top: var(--kds-spacing-1-25);
|
|
5976
6561
|
display: block;
|
|
5977
6562
|
box-sizing: content-box;
|
|
5978
6563
|
}
|
|
5979
6564
|
|
|
6565
|
+
/* -- Bill Attachments -- */
|
|
6566
|
+
.kds-bill-attachments {
|
|
6567
|
+
display: flex;
|
|
6568
|
+
flex-direction: column;
|
|
6569
|
+
gap: var(--kds-spacing-0-75);
|
|
6570
|
+
}
|
|
6571
|
+
|
|
6572
|
+
.kds-bill-attachment {
|
|
6573
|
+
display: inline-flex;
|
|
6574
|
+
align-items: center;
|
|
6575
|
+
justify-content: flex-start;
|
|
6576
|
+
width: fit-content;
|
|
6577
|
+
color: var(--kds-color-info-main);
|
|
6578
|
+
font-size: var(--kds-font-size-sm);
|
|
6579
|
+
font-weight: var(--kds-font-weight-medium);
|
|
6580
|
+
text-decoration: none;
|
|
6581
|
+
}
|
|
6582
|
+
|
|
6583
|
+
.kds-bill-attachment:hover span {
|
|
6584
|
+
text-decoration: underline;
|
|
6585
|
+
}
|
|
6586
|
+
|
|
6587
|
+
.kds-bill-attachment i {
|
|
6588
|
+
font-size: var(--kds-font-size-lg);
|
|
6589
|
+
min-width: unset;
|
|
6590
|
+
justify-content: flex-start;
|
|
6591
|
+
}
|
|
6592
|
+
|
|
5980
6593
|
/* -- Share Card (mustContinue) -- */
|
|
5981
6594
|
.kds-share-card {
|
|
5982
6595
|
margin-top: var(--kds-spacing-2);
|
|
@@ -6089,6 +6702,14 @@ button.kds-btn-success::after {
|
|
|
6089
6702
|
padding-top: 0;
|
|
6090
6703
|
padding-bottom: 0;
|
|
6091
6704
|
}
|
|
6705
|
+
|
|
6706
|
+
/* Reset BeerCSS sibling margin on form/section inside payment cards.
|
|
6707
|
+
BeerCSS sets `:not(.grid,nav,.row) > … + form/section { margin-block-start:1rem }`
|
|
6708
|
+
which adds unwanted spacing inside cards that contain forms. */
|
|
6709
|
+
.kds-payment-flow .kds-card-elevated > form,
|
|
6710
|
+
.kds-payment-flow .kds-card-elevated > section {
|
|
6711
|
+
margin-block-start: 0;
|
|
6712
|
+
}
|
|
6092
6713
|
.kds-payment-flow .kds-card-elevated.kds-invoice-sticky {
|
|
6093
6714
|
padding-top: var(--kds-spacing-1);
|
|
6094
6715
|
padding-bottom: 0;
|
|
@@ -6138,10 +6759,17 @@ button.kds-btn-success::after {
|
|
|
6138
6759
|
padding-bottom: var(--kds-spacing-2);
|
|
6139
6760
|
}
|
|
6140
6761
|
|
|
6141
|
-
/* Invoice sticky card
|
|
6142
|
-
|
|
6762
|
+
/* Invoice sticky card padding (mobile).
|
|
6763
|
+
Top: estático 12px. Bottom: progresivo 20px (expandido) → 8px (colapsado).
|
|
6764
|
+
El padding-bottom animado da breathing room natural cuando expandido y se
|
|
6765
|
+
reduce convencionalmente al colapsar — sin depender de que el clip-path
|
|
6766
|
+
corte el padding abruptamente. */
|
|
6143
6767
|
.kds-payment-flow .kds-card-elevated.kds-invoice-sticky {
|
|
6144
6768
|
padding-top: var(--kds-spacing-1-5);
|
|
6769
|
+
padding-bottom: calc(
|
|
6770
|
+
var(--kds-spacing-2-5)
|
|
6771
|
+
- var(--kds-spacing-1-5) * var(--collapse-progress, 0)
|
|
6772
|
+
);
|
|
6145
6773
|
}
|
|
6146
6774
|
|
|
6147
6775
|
|
|
@@ -6180,7 +6808,8 @@ button.kds-btn-success::after {
|
|
|
6180
6808
|
}
|
|
6181
6809
|
.kds-brand-inner svg,
|
|
6182
6810
|
.kds-brand-inner img {
|
|
6183
|
-
|
|
6811
|
+
width: calc(50px - 16px * var(--collapse-progress, 0));
|
|
6812
|
+
height: auto;
|
|
6184
6813
|
display: block;
|
|
6185
6814
|
}
|
|
6186
6815
|
|
|
@@ -6399,7 +7028,7 @@ button.kds-btn-success::after {
|
|
|
6399
7028
|
inset: 0;
|
|
6400
7029
|
background: var(--kds-modal-backdrop);
|
|
6401
7030
|
display: none;
|
|
6402
|
-
align-items:
|
|
7031
|
+
align-items: flex-start;
|
|
6403
7032
|
justify-content: center;
|
|
6404
7033
|
z-index: var(--kds-z-index-modal, 50);
|
|
6405
7034
|
animation: kds-fade 0.2s ease both;
|
|
@@ -6427,7 +7056,7 @@ button.kds-btn-success::after {
|
|
|
6427
7056
|
display: flex;
|
|
6428
7057
|
align-items: center;
|
|
6429
7058
|
justify-content: space-between;
|
|
6430
|
-
padding: var(--kds-spacing-
|
|
7059
|
+
padding: var(--kds-spacing-1) var(--kds-spacing-2) var(--kds-spacing-1);
|
|
6431
7060
|
}
|
|
6432
7061
|
|
|
6433
7062
|
.kds-bank-modal-header h3 {
|
|
@@ -6574,7 +7203,7 @@ button.kds-btn-success::after {
|
|
|
6574
7203
|
min-width: 0;
|
|
6575
7204
|
}
|
|
6576
7205
|
|
|
6577
|
-
.kds-qr-text .title {
|
|
7206
|
+
.kds-qr-text .kds-qr-title {
|
|
6578
7207
|
font-family: var(--kds-font-family-primary);
|
|
6579
7208
|
font-weight: 600;
|
|
6580
7209
|
font-size: var(--kds-font-size-sm);
|
|
@@ -6582,10 +7211,15 @@ button.kds-btn-success::after {
|
|
|
6582
7211
|
color: var(--kds-color-text-primary);
|
|
6583
7212
|
}
|
|
6584
7213
|
|
|
6585
|
-
.kds-qr-text .
|
|
7214
|
+
.kds-qr-text .kds-qr-subtitle {
|
|
6586
7215
|
font-family: var(--kds-font-family-primary);
|
|
6587
7216
|
font-size: var(--kds-font-size-caption);
|
|
6588
7217
|
color: var(--kds-color-text-secondary);
|
|
7218
|
+
/* Trunca con ellipsis en lugar de wrap a 2 líneas — evita apretar el row
|
|
7219
|
+
cuando el contenedor es angosto (mobile o decorator constrained). */
|
|
7220
|
+
overflow: hidden;
|
|
7221
|
+
text-overflow: ellipsis;
|
|
7222
|
+
white-space: nowrap;
|
|
6589
7223
|
}
|
|
6590
7224
|
|
|
6591
7225
|
/* QR Badge - "Rápido" indicator */
|
|
@@ -6608,46 +7242,26 @@ button.kds-btn-success::after {
|
|
|
6608
7242
|
font-size: 20px;
|
|
6609
7243
|
}
|
|
6610
7244
|
|
|
6611
|
-
/* Mobile responsive:
|
|
7245
|
+
/* Mobile responsive (≤480px): respira más — mantenemos padding/gap/avatar igual
|
|
7246
|
+
que desktop y solo agregamos truncation al subtitle y `flex-shrink: 0` en los
|
|
7247
|
+
ítems que deben mantener su tamaño (avatar, badge, chevron). */
|
|
6612
7248
|
@media (max-width: 480px) {
|
|
6613
|
-
.kds-qr-row {
|
|
6614
|
-
gap: var(--kds-spacing-1-5);
|
|
6615
|
-
padding: var(--kds-spacing-1-5);
|
|
6616
|
-
}
|
|
6617
|
-
|
|
6618
7249
|
.kds-qr-avatar {
|
|
6619
|
-
width: var(--kds-spacing-4-5);
|
|
6620
|
-
height: var(--kds-spacing-4-5);
|
|
6621
7250
|
flex-shrink: 0;
|
|
6622
7251
|
}
|
|
6623
7252
|
|
|
6624
|
-
.kds-qr-avatar .material-symbols-outlined,
|
|
6625
|
-
.kds-qr-avatar .material-icons-round {
|
|
6626
|
-
font-size: var(--kds-font-size-lg);
|
|
6627
|
-
}
|
|
6628
|
-
|
|
6629
|
-
.kds-qr-text .title {
|
|
6630
|
-
font-size: var(--kds-font-size-xs);
|
|
6631
|
-
line-height: var(--kds-line-height-tight);
|
|
6632
|
-
}
|
|
6633
|
-
|
|
6634
7253
|
.kds-qr-text .sub {
|
|
6635
|
-
font-size: var(--kds-font-size-caption);
|
|
6636
|
-
line-height: var(--kds-line-height-tight);
|
|
6637
7254
|
overflow: hidden;
|
|
6638
7255
|
text-overflow: ellipsis;
|
|
6639
7256
|
white-space: nowrap;
|
|
6640
7257
|
}
|
|
6641
7258
|
|
|
6642
7259
|
.kds-qr-badge {
|
|
6643
|
-
font-size: var(--kds-font-size-caption);
|
|
6644
|
-
padding: var(--kds-spacing-0-25) var(--kds-spacing-0-75);
|
|
6645
7260
|
flex-shrink: 0;
|
|
6646
7261
|
}
|
|
6647
7262
|
|
|
6648
7263
|
.kds-qr-row .material-symbols-outlined:last-child,
|
|
6649
7264
|
.kds-qr-row .material-icons-round:last-child {
|
|
6650
|
-
font-size: var(--kds-font-size-base);
|
|
6651
7265
|
flex-shrink: 0;
|
|
6652
7266
|
}
|
|
6653
7267
|
}
|
|
@@ -6676,7 +7290,11 @@ button.kds-btn-success::after {
|
|
|
6676
7290
|
border-radius: var(--kds-spacing-0-75);
|
|
6677
7291
|
font-size: var(--kds-font-size-sm);
|
|
6678
7292
|
cursor: pointer;
|
|
6679
|
-
|
|
7293
|
+
/* Transición más amplia y suave: bg + color + border ease-out */
|
|
7294
|
+
transition:
|
|
7295
|
+
background-color 280ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
7296
|
+
color 280ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
7297
|
+
border-top-color 280ms ease-out;
|
|
6680
7298
|
position: relative;
|
|
6681
7299
|
user-select: none;
|
|
6682
7300
|
}
|
|
@@ -6685,19 +7303,21 @@ button.kds-btn-success::after {
|
|
|
6685
7303
|
border-top: 0;
|
|
6686
7304
|
}
|
|
6687
7305
|
|
|
6688
|
-
|
|
7306
|
+
/* Hover NO aplica mientras la row esté en `.copied` o `.settling`
|
|
7307
|
+
(evita el flicker del hover state al desaparecer el verde de "copiado") */
|
|
7308
|
+
.kds-copyable-table-row:not(.copied):not(.settling):hover {
|
|
6689
7309
|
background: var(--kds-color-primary-faint);
|
|
6690
7310
|
}
|
|
6691
7311
|
|
|
6692
|
-
.kds-copyable-table-row:hover + .kds-copyable-table-row {
|
|
7312
|
+
.kds-copyable-table-row:not(.copied):not(.settling):hover + .kds-copyable-table-row {
|
|
6693
7313
|
border-top-color: transparent;
|
|
6694
7314
|
}
|
|
6695
7315
|
|
|
6696
|
-
.kds-copyable-table-row:active {
|
|
7316
|
+
.kds-copyable-table-row:not(.copied):not(.settling):active {
|
|
6697
7317
|
background: var(--kds-color-primary-selected);
|
|
6698
7318
|
}
|
|
6699
7319
|
|
|
6700
|
-
.kds-copyable-table-row .
|
|
7320
|
+
.kds-copyable-table-row .kds-key {
|
|
6701
7321
|
color: var(--kds-color-text-secondary);
|
|
6702
7322
|
font-size: var(--kds-font-size-caption);
|
|
6703
7323
|
letter-spacing: 0.3px;
|
|
@@ -6706,7 +7326,7 @@ button.kds-btn-success::after {
|
|
|
6706
7326
|
flex: 0 0 auto;
|
|
6707
7327
|
}
|
|
6708
7328
|
|
|
6709
|
-
.kds-copyable-table-row .
|
|
7329
|
+
.kds-copyable-table-row .kds-value {
|
|
6710
7330
|
color: var(--kds-color-text-primary);
|
|
6711
7331
|
font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace;
|
|
6712
7332
|
font-weight: var(--kds-font-weight-medium);
|
|
@@ -6722,17 +7342,18 @@ button.kds-btn-success::after {
|
|
|
6722
7342
|
flex: 1 1 auto;
|
|
6723
7343
|
}
|
|
6724
7344
|
|
|
6725
|
-
.kds-copyable-table-row .
|
|
7345
|
+
.kds-copyable-table-row .kds-value::after {
|
|
6726
7346
|
content: 'content_copy';
|
|
6727
7347
|
font-family: 'Material Symbols Outlined';
|
|
6728
7348
|
font-size: var(--kds-font-size-sm);
|
|
6729
7349
|
color: var(--kds-color-primary-main);
|
|
6730
7350
|
opacity: 0;
|
|
6731
|
-
|
|
7351
|
+
/* Transición coordinada con la row */
|
|
7352
|
+
transition: opacity 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
6732
7353
|
flex: 0 0 auto;
|
|
6733
7354
|
}
|
|
6734
7355
|
|
|
6735
|
-
.kds-copyable-table-row:hover .
|
|
7356
|
+
.kds-copyable-table-row:not(.copied):not(.settling):hover .kds-value::after {
|
|
6736
7357
|
opacity: 0.7;
|
|
6737
7358
|
}
|
|
6738
7359
|
|
|
@@ -6740,17 +7361,25 @@ button.kds-btn-success::after {
|
|
|
6740
7361
|
background: var(--kds-color-success-soft);
|
|
6741
7362
|
}
|
|
6742
7363
|
|
|
6743
|
-
.kds-copyable-table-row.copied .
|
|
7364
|
+
.kds-copyable-table-row.copied .kds-value {
|
|
6744
7365
|
color: var(--kds-color-success-dark);
|
|
6745
7366
|
}
|
|
6746
7367
|
|
|
6747
|
-
.kds-copyable-table-row.copied .
|
|
7368
|
+
.kds-copyable-table-row.copied .kds-value::after {
|
|
6748
7369
|
content: 'check';
|
|
6749
7370
|
font-family: 'Material Symbols Outlined';
|
|
6750
7371
|
color: var(--kds-color-success-dark);
|
|
6751
7372
|
opacity: 1;
|
|
6752
7373
|
}
|
|
6753
7374
|
|
|
7375
|
+
/* `.settling`: estado de "recién copiado" — la row vuelve al normal sin
|
|
7376
|
+
activar hover. Dura lo mismo que la transición (~300ms) y se aplica
|
|
7377
|
+
desde React tras quitar `.copied`. */
|
|
7378
|
+
.kds-copyable-table-row.settling .kds-value::after {
|
|
7379
|
+
/* Mantén el check con opacity 0 mientras settling, fade out suave */
|
|
7380
|
+
opacity: 0;
|
|
7381
|
+
}
|
|
7382
|
+
|
|
6754
7383
|
/* Disable BeerCSS ripple on copyable table rows */
|
|
6755
7384
|
.kds-copyable-table-row::after {
|
|
6756
7385
|
display: none;
|
|
@@ -6813,6 +7442,14 @@ a.kds-copy-all-btn.copied:hover {
|
|
|
6813
7442
|
min-height: unset;
|
|
6814
7443
|
}
|
|
6815
7444
|
|
|
7445
|
+
/* Severity variants — default stays warning (backward-compatible) */
|
|
7446
|
+
.kds-section-note.kds-info { color: var(--kds-color-info-dark); }
|
|
7447
|
+
.kds-section-note.kds-info > i { color: var(--kds-color-info-dark); }
|
|
7448
|
+
.kds-section-note.kds-success { color: var(--kds-color-success-dark); }
|
|
7449
|
+
.kds-section-note.kds-success > i { color: var(--kds-color-success-dark); }
|
|
7450
|
+
.kds-section-note.kds-error { color: var(--kds-color-error-dark); }
|
|
7451
|
+
.kds-section-note.kds-error > i { color: var(--kds-color-error-dark); }
|
|
7452
|
+
|
|
6816
7453
|
/* ========================================
|
|
6817
7454
|
INFO TOOLTIP (.kds-info-tip)
|
|
6818
7455
|
Inline info button with hover/click tooltip bubble.
|
|
@@ -6908,7 +7545,7 @@ a.kds-copy-all-btn.copied:hover {
|
|
|
6908
7545
|
.kds-monto-row {
|
|
6909
7546
|
display: flex;
|
|
6910
7547
|
justify-content: space-between;
|
|
6911
|
-
align-items: flex-
|
|
7548
|
+
align-items: flex-start;
|
|
6912
7549
|
padding: var(--kds-spacing-1-75) 0 var(--kds-spacing-1);
|
|
6913
7550
|
border-top: 1px dashed var(--kds-color-divider);
|
|
6914
7551
|
margin-top: var(--kds-spacing-1-75);
|
|
@@ -6932,3 +7569,191 @@ a.kds-copy-all-btn.copied:hover {
|
|
|
6932
7569
|
color: var(--kds-color-text-primary);
|
|
6933
7570
|
}
|
|
6934
7571
|
|
|
7572
|
+
/* ========================================
|
|
7573
|
+
PAYMENT TOTAL (.kds-payment-total)
|
|
7574
|
+
Bloque "monto a pagar" para QR view y email templates.
|
|
7575
|
+
Portado desde paylink-ligopay → <kh:paymentTotal> + materialize-config.css.
|
|
7576
|
+
Variantes:
|
|
7577
|
+
- default: amount grande (3rem) en color primario Khipu.
|
|
7578
|
+
- email: amount compacto (1.5rem) en color texto primario.
|
|
7579
|
+
Responsive (default): mobile (≤ 1024px) centra y oculta titleMobile.
|
|
7580
|
+
======================================== */
|
|
7581
|
+
|
|
7582
|
+
.kds-payment-total {
|
|
7583
|
+
/* Component-scoped tokens — overrideables sin tocar el CSS global. */
|
|
7584
|
+
--kds-payment-total-title-size: var(--kds-font-size-2xl); /* 24px */
|
|
7585
|
+
--kds-payment-total-label-size: var(--kds-font-size-xl); /* 20px */
|
|
7586
|
+
--kds-payment-amount-size: 3rem; /* 48px — destacado */
|
|
7587
|
+
--kds-payment-amount-line-height: var(--kds-line-height-snug);
|
|
7588
|
+
--kds-payment-amount-color: var(--kds-color-primary-main);
|
|
7589
|
+
--kds-payment-amount-weight: var(--kds-font-weight-medium);
|
|
7590
|
+
|
|
7591
|
+
text-align: left;
|
|
7592
|
+
}
|
|
7593
|
+
|
|
7594
|
+
.kds-payment-total-title,
|
|
7595
|
+
.kds-payment-total-title-mobile {
|
|
7596
|
+
font-size: var(--kds-payment-total-title-size);
|
|
7597
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
7598
|
+
color: var(--kds-color-text-primary);
|
|
7599
|
+
margin-bottom: var(--kds-spacing-4);
|
|
7600
|
+
}
|
|
7601
|
+
|
|
7602
|
+
.kds-payment-total-title-mobile {
|
|
7603
|
+
display: none;
|
|
7604
|
+
}
|
|
7605
|
+
|
|
7606
|
+
.kds-payment-total .kds-payment-label {
|
|
7607
|
+
font-size: var(--kds-payment-total-label-size);
|
|
7608
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
7609
|
+
color: var(--kds-color-text-primary);
|
|
7610
|
+
margin-bottom: var(--kds-spacing-1);
|
|
7611
|
+
padding-top: 0;
|
|
7612
|
+
}
|
|
7613
|
+
|
|
7614
|
+
.kds-payment-total .kds-payment-amount {
|
|
7615
|
+
font-size: var(--kds-payment-amount-size);
|
|
7616
|
+
font-weight: var(--kds-payment-amount-weight);
|
|
7617
|
+
line-height: var(--kds-payment-amount-line-height);
|
|
7618
|
+
color: var(--kds-payment-amount-color);
|
|
7619
|
+
margin-bottom: var(--kds-spacing-4);
|
|
7620
|
+
}
|
|
7621
|
+
|
|
7622
|
+
.kds-payment-total .kds-payment-amount .kds-payment-total-decimal-sup,
|
|
7623
|
+
.kds-invoice-amount .kds-payment-total-decimal-sup {
|
|
7624
|
+
font-size: var(--kds-font-size-decimal-sup);
|
|
7625
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
7626
|
+
position: relative;
|
|
7627
|
+
top: 0;
|
|
7628
|
+
}
|
|
7629
|
+
|
|
7630
|
+
/* Variante email: amount compacto en color texto primario, alineación izquierda fija */
|
|
7631
|
+
.kds-payment-total--email {
|
|
7632
|
+
--kds-payment-amount-size: var(--kds-font-size-2xl); /* 24px */
|
|
7633
|
+
--kds-payment-amount-line-height: var(--kds-line-height-snug);
|
|
7634
|
+
--kds-payment-amount-color: var(--kds-color-text-primary);
|
|
7635
|
+
--kds-payment-amount-weight: var(--kds-font-weight-semibold);
|
|
7636
|
+
}
|
|
7637
|
+
|
|
7638
|
+
/* Tone modifier: swaps the amount color to the khipu-blue / LigoPay info blue.
|
|
7639
|
+
Combinable with --email or with the default variant. */
|
|
7640
|
+
.kds-payment-total--tone-info {
|
|
7641
|
+
--kds-payment-amount-color: var(--kds-color-info-blue); /* #5A5FE0 */
|
|
7642
|
+
}
|
|
7643
|
+
|
|
7644
|
+
/* Centered modifier: removes the asymmetric desktop padding (which exists for
|
|
7645
|
+
LigoPay QR view) and centers all internal text. Composable with --email and
|
|
7646
|
+
--tone-info. */
|
|
7647
|
+
.kds-payment-total--centered {
|
|
7648
|
+
padding-left: 0;
|
|
7649
|
+
padding-top: 0;
|
|
7650
|
+
text-align: center;
|
|
7651
|
+
}
|
|
7652
|
+
.kds-payment-total--centered .kds-payment-total-title,
|
|
7653
|
+
.kds-payment-total--centered .kds-payment-total-title-mobile,
|
|
7654
|
+
.kds-payment-total--centered .kds-payment-label,
|
|
7655
|
+
.kds-payment-total--centered .kds-payment-amount {
|
|
7656
|
+
text-align: center;
|
|
7657
|
+
}
|
|
7658
|
+
|
|
7659
|
+
/* Responsive: mobile ≤ 1024px — centra y conmuta los títulos (sólo variante default) */
|
|
7660
|
+
@media (max-width: 1024px) {
|
|
7661
|
+
.kds-payment-total {
|
|
7662
|
+
text-align: center;
|
|
7663
|
+
}
|
|
7664
|
+
|
|
7665
|
+
.kds-payment-total .kds-payment-total-title {
|
|
7666
|
+
display: none;
|
|
7667
|
+
}
|
|
7668
|
+
|
|
7669
|
+
.kds-payment-total .kds-payment-total-title-mobile {
|
|
7670
|
+
display: block;
|
|
7671
|
+
text-align: center;
|
|
7672
|
+
}
|
|
7673
|
+
|
|
7674
|
+
.kds-payment-total .kds-payment-label,
|
|
7675
|
+
.kds-payment-total .kds-payment-amount {
|
|
7676
|
+
text-align: center;
|
|
7677
|
+
}
|
|
7678
|
+
|
|
7679
|
+
/* Email mantiene alineación izquierda incluso en mobile (matchea email clients) */
|
|
7680
|
+
.kds-payment-total--email,
|
|
7681
|
+
.kds-payment-total--email .kds-payment-label,
|
|
7682
|
+
.kds-payment-total--email .kds-payment-amount {
|
|
7683
|
+
text-align: left;
|
|
7684
|
+
}
|
|
7685
|
+
}
|
|
7686
|
+
|
|
7687
|
+
/* ==========================================================================
|
|
7688
|
+
GRID UTILITIES — semantic aliases for BeerCSS .grid / .s* / .m* / .l*
|
|
7689
|
+
|
|
7690
|
+
Estas utilidades son ALIAS de las clases cortas de BeerCSS para que
|
|
7691
|
+
consumers (payment, LigoPay, Grails legacy) puedan escribir markup con
|
|
7692
|
+
nombres descriptivos sin renunciar al grid de 12 columnas de BeerCSS.
|
|
7693
|
+
|
|
7694
|
+
Convención (estilo Bootstrap responsive):
|
|
7695
|
+
- kds-grid → .grid (12-col CSS grid + 1rem gap)
|
|
7696
|
+
- kds-col-sm-{1..12} → .s{1..12} (mobile, siempre aplica)
|
|
7697
|
+
- kds-col-md-{1..12} → .m{1..12} (>=601px)
|
|
7698
|
+
- kds-col-lg-{1..12} → .l{1..12} (>=993px)
|
|
7699
|
+
|
|
7700
|
+
Las definiciones originales de BeerCSS NO se tocan; estas son aditivas.
|
|
7701
|
+
========================================================================== */
|
|
7702
|
+
|
|
7703
|
+
.kds-grid {
|
|
7704
|
+
--_gap: 1rem;
|
|
7705
|
+
display: grid;
|
|
7706
|
+
grid-template-columns: repeat(12, 1fr);
|
|
7707
|
+
gap: var(--_gap);
|
|
7708
|
+
block-size: auto;
|
|
7709
|
+
}
|
|
7710
|
+
|
|
7711
|
+
.kds-grid.kds-grid-no-space { --_gap: 0rem; }
|
|
7712
|
+
.kds-grid.kds-grid-medium-space { --_gap: 1.5rem; }
|
|
7713
|
+
.kds-grid.kds-grid-large-space { --_gap: 2rem; }
|
|
7714
|
+
|
|
7715
|
+
.kds-grid > * { margin: 0; }
|
|
7716
|
+
|
|
7717
|
+
.kds-col-sm-1 { grid-area: auto/span 1; }
|
|
7718
|
+
.kds-col-sm-2 { grid-area: auto/span 2; }
|
|
7719
|
+
.kds-col-sm-3 { grid-area: auto/span 3; }
|
|
7720
|
+
.kds-col-sm-4 { grid-area: auto/span 4; }
|
|
7721
|
+
.kds-col-sm-5 { grid-area: auto/span 5; }
|
|
7722
|
+
.kds-col-sm-6 { grid-area: auto/span 6; }
|
|
7723
|
+
.kds-col-sm-7 { grid-area: auto/span 7; }
|
|
7724
|
+
.kds-col-sm-8 { grid-area: auto/span 8; }
|
|
7725
|
+
.kds-col-sm-9 { grid-area: auto/span 9; }
|
|
7726
|
+
.kds-col-sm-10 { grid-area: auto/span 10; }
|
|
7727
|
+
.kds-col-sm-11 { grid-area: auto/span 11; }
|
|
7728
|
+
.kds-col-sm-12 { grid-area: auto/span 12; }
|
|
7729
|
+
|
|
7730
|
+
@media only screen and (min-width: 601px) {
|
|
7731
|
+
.kds-col-md-1 { grid-area: auto/span 1; }
|
|
7732
|
+
.kds-col-md-2 { grid-area: auto/span 2; }
|
|
7733
|
+
.kds-col-md-3 { grid-area: auto/span 3; }
|
|
7734
|
+
.kds-col-md-4 { grid-area: auto/span 4; }
|
|
7735
|
+
.kds-col-md-5 { grid-area: auto/span 5; }
|
|
7736
|
+
.kds-col-md-6 { grid-area: auto/span 6; }
|
|
7737
|
+
.kds-col-md-7 { grid-area: auto/span 7; }
|
|
7738
|
+
.kds-col-md-8 { grid-area: auto/span 8; }
|
|
7739
|
+
.kds-col-md-9 { grid-area: auto/span 9; }
|
|
7740
|
+
.kds-col-md-10 { grid-area: auto/span 10; }
|
|
7741
|
+
.kds-col-md-11 { grid-area: auto/span 11; }
|
|
7742
|
+
.kds-col-md-12 { grid-area: auto/span 12; }
|
|
7743
|
+
}
|
|
7744
|
+
|
|
7745
|
+
@media only screen and (min-width: 993px) {
|
|
7746
|
+
.kds-col-lg-1 { grid-area: auto/span 1; }
|
|
7747
|
+
.kds-col-lg-2 { grid-area: auto/span 2; }
|
|
7748
|
+
.kds-col-lg-3 { grid-area: auto/span 3; }
|
|
7749
|
+
.kds-col-lg-4 { grid-area: auto/span 4; }
|
|
7750
|
+
.kds-col-lg-5 { grid-area: auto/span 5; }
|
|
7751
|
+
.kds-col-lg-6 { grid-area: auto/span 6; }
|
|
7752
|
+
.kds-col-lg-7 { grid-area: auto/span 7; }
|
|
7753
|
+
.kds-col-lg-8 { grid-area: auto/span 8; }
|
|
7754
|
+
.kds-col-lg-9 { grid-area: auto/span 9; }
|
|
7755
|
+
.kds-col-lg-10 { grid-area: auto/span 10; }
|
|
7756
|
+
.kds-col-lg-11 { grid-area: auto/span 11; }
|
|
7757
|
+
.kds-col-lg-12 { grid-area: auto/span 12; }
|
|
7758
|
+
}
|
|
7759
|
+
|