@klu_dev/ui-klu-green 1.2.14 → 1.2.16

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/README.md CHANGED
@@ -998,4 +998,61 @@ export default BadgeContainer;
998
998
  | Prop | Tipo | Por Defecto | Descripción |
999
999
  | :--- | :--- | :--- | :--- |
1000
1000
  | `icon` | `React.ReactElement<{ className?: string }>` | *Requerido* | El elemento del icono a renderizar en formato JSX (ej: `<Icons.SEAL />`). Recibe de forma transparente las utilidades de tamaño asignadas por el contenedor. |
1001
- | `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` | Define las dimensiones fijas en píxeles tanto del contenedor circular como del icono interior (`sm`: 24px/14px, `md`: 30px/20px, `lg`: 36px/26px). |
1001
+ | `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` | Define las dimensiones fijas en píxeles tanto del contenedor circular como del icono interior (`sm`: 24px/14px, `md`: 30px/20px, `lg`: 36px/26px). |
1002
+
1003
+
1004
+
1005
+ ## Uso de DetailCard
1006
+ El componente DetailCard es una tarjeta de estado versátil y responsiva diseñada para mostrar resúmenes detallados de transacciones financieras o flujos operativos, soportando de forma dinámica los estados de éxito (Success) y error. Modifica su estructura visual de manera inteligente: en caso de éxito, oculta la descripción secundaria e integra una sección de "Comprobante de la transacción" con una liga de seguimiento copiable y un botón de descarga; en caso de error, renderiza un mensaje descriptivo formateado y adapta las acciones primarias para reintentar el proceso.
1007
+
1008
+ ```tsx
1009
+ import React from 'react';
1010
+ import { DetailCard } from './components/DetailCard';
1011
+
1012
+ const MyTransactionScreen = () => {
1013
+ const handlePrimary = () => console.log('Acción primaria ejecutada');
1014
+ const handleSecondary = () => console.log('Regresando al inicio');
1015
+
1016
+ const summaryData = [
1017
+ { label: 'Categoría:', value: 'Telefonía' },
1018
+ { label: 'Servicio:', value: 'Telcel' },
1019
+ { label: 'Comisión:', value: '$0.00' },
1020
+ { label: 'Monto total:', value: '$100.00' },
1021
+ { label: 'Fecha y Hora:', value: '24/06/2026 - 19:15 hrs' },
1022
+ { label: 'Número:', value: '+52 55 0000 0000' },
1023
+ ];
1024
+
1025
+ return (
1026
+ <div className="uiklu-p-6">
1027
+ {/* Ejemplo en Estado de Error */}
1028
+ <DetailCard
1029
+ type="error"
1030
+ title="¡Error de pago de servicio!"
1031
+ amount="$100.00"
1032
+ message={`Por el momento no pudimos realizar el pago del servicio solicitado.\nPor favor, inténtalo de nuevo.`}
1033
+ summaryItems={summaryData}
1034
+ onPrimaryAction={handlePrimary}
1035
+ onSecondaryAction={handleSecondary}
1036
+ />
1037
+ </div>
1038
+ );
1039
+ };
1040
+
1041
+ export default MyTransactionScreen;
1042
+ ```
1043
+
1044
+ ### Props de DetailCard
1045
+
1046
+ | Prop | Tipo | Por Defecto | Descripción |
1047
+ | :--- | :--- | :--- | :--- |
1048
+ | `type` | `'success' \| 'error'` | *Requerido* | Define el estado operativo del componente. Cambia el color del avatar circular superior, los textos por defecto de las acciones y habilita de forma condicionada los bloques de mensaje o liga de seguimiento. |
1049
+ | `title` | `string` | *Requerido* | Encabezado principal del estado del servicio que se renderiza debajo del icono (ej: "¡Pago de servicio realizado!"). |
1050
+ | `amount` | `string` | *Requerido* | El monto numérico formateado con divisa que protagoniza la tarjeta, destacado visualmente en un tamaño tipográfico dominante (40px). |
1051
+ | `message` | `string` | `undefined` | *Opcional.* Descripción detallada del suceso. Se muestra únicamente cuando `type="error"`. Soporta saltos de línea físicos mediante la propiedad de renderizado `pre-line`. |
1052
+ | `summaryTitle` | `string` | `'Resumen'` | Título secundario para la sección que encabeza el recuadro contenedor de datos descriptivos. |
1053
+ | `summaryItems` | `DetailCardItem[]` | *Requerido* | Colección de objetos con estructura `{ label: string; value: string }` que se listan ordenadamente dentro del contenedor asimétrico central. |
1054
+ | `trackingUrl` | `string` | `undefined` | *Opcional.* URL de la pasarela o folio de seguimiento de la operación. Habilita de manera condicionada el bloque interactivo de "Comprobante de la transacción" y la acción de copiar al portapapeles solo si `type="success"`. |
1055
+ | `primaryButtonText` | `string` | *Dinámico* | Texto del botón de acción principal. Si no se provee, se autoajusta a "Descargar comprobante" para casos exitosos o "Intentarlo nuevamente" para flujos con error. |
1056
+ | `secondaryButtonText`| `string` | `'Ir al inicio'` | Texto del botón secundario de contorno que permite la navegación de retorno o salida del flujo. |
1057
+ | `onPrimaryAction` | `() => void` | *Requerido* | Función callback disparada al hacer clic en el botón de acción principal (Descarga / Reintento). |
1058
+ | `onSecondaryAction` | `() => void` | *Requerido* | Función callback disparada al hacer clic en el botón de salida secundario. |
package/dist/index.css CHANGED
@@ -161,6 +161,7 @@
161
161
  --uiklu-warningbg: 44 100% 96%;
162
162
  --uiklu-warningborder: 4 98% 89%;
163
163
  --uiklu-warningtext: 32 92% 53%;
164
+ --uiklu-errorbg: 4 100% 68%;
164
165
 
165
166
  }
166
167
  .uiklu-mask-content {
@@ -219,6 +220,10 @@ button,
219
220
  .uiklu-bottom-full{
220
221
  bottom: 100%;
221
222
 
223
+ }
224
+ .uiklu-left-0{
225
+ left: 0px;
226
+
222
227
  }
223
228
  .uiklu-left-3{
224
229
  left: 0.75rem;
@@ -259,6 +264,10 @@ button,
259
264
  .uiklu-top-8{
260
265
  top: 2rem;
261
266
 
267
+ }
268
+ .uiklu-top-\[2px\]{
269
+ top: 2px;
270
+
262
271
  }
263
272
  .uiklu-top-\[50\%\]{
264
273
  top: 50%;
@@ -302,6 +311,11 @@ button,
302
311
  margin-top: 0.5rem;
303
312
  margin-bottom: 0.5rem;
304
313
 
314
+ }
315
+ .uiklu-my-\[20px\]{
316
+ margin-top: 20px;
317
+ margin-bottom: 20px;
318
+
305
319
  }
306
320
  .uiklu-mb-1{
307
321
  margin-bottom: 0.25rem;
@@ -318,6 +332,10 @@ button,
318
332
  .uiklu-mb-4{
319
333
  margin-bottom: 1rem;
320
334
 
335
+ }
336
+ .uiklu-mb-5{
337
+ margin-bottom: 1.25rem;
338
+
321
339
  }
322
340
  .uiklu-mb-6{
323
341
  margin-bottom: 1.5rem;
@@ -338,6 +356,10 @@ button,
338
356
  .uiklu-mb-\[18px\]{
339
357
  margin-bottom: 18px;
340
358
 
359
+ }
360
+ .uiklu-mb-\[20px\]{
361
+ margin-bottom: 20px;
362
+
341
363
  }
342
364
  .uiklu-mb-\[8px\]{
343
365
  margin-bottom: 8px;
@@ -354,6 +376,10 @@ button,
354
376
  .uiklu-ml-5{
355
377
  margin-left: 1.25rem;
356
378
 
379
+ }
380
+ .uiklu-ml-\[-10px\]{
381
+ margin-left: -10px;
382
+
357
383
  }
358
384
  .uiklu-ml-\[1px\]{
359
385
  margin-left: 1px;
@@ -394,6 +420,10 @@ button,
394
420
  .uiklu-mt-3{
395
421
  margin-top: 0.75rem;
396
422
 
423
+ }
424
+ .uiklu-mt-4{
425
+ margin-top: 1rem;
426
+
397
427
  }
398
428
  .uiklu-mt-6{
399
429
  margin-top: 1.5rem;
@@ -434,10 +464,18 @@ button,
434
464
  .uiklu-h-2{
435
465
  height: 0.5rem;
436
466
 
467
+ }
468
+ .uiklu-h-3{
469
+ height: 0.75rem;
470
+
437
471
  }
438
472
  .uiklu-h-3\.5{
439
473
  height: 0.875rem;
440
474
 
475
+ }
476
+ .uiklu-h-36{
477
+ height: 9rem;
478
+
441
479
  }
442
480
  .uiklu-h-4{
443
481
  height: 1rem;
@@ -454,6 +492,10 @@ button,
454
492
  .uiklu-h-6{
455
493
  height: 1.5rem;
456
494
 
495
+ }
496
+ .uiklu-h-7{
497
+ height: 1.75rem;
498
+
457
499
  }
458
500
  .uiklu-h-8{
459
501
  height: 2rem;
@@ -482,6 +524,10 @@ button,
482
524
  .uiklu-h-\[26px\]{
483
525
  height: 26px;
484
526
 
527
+ }
528
+ .uiklu-h-\[28px\]{
529
+ height: 28px;
530
+
485
531
  }
486
532
  .uiklu-h-\[30px\]{
487
533
  height: 30px;
@@ -506,6 +552,10 @@ button,
506
552
  .uiklu-h-\[44px\]{
507
553
  height: 44px;
508
554
 
555
+ }
556
+ .uiklu-h-\[45\.5px\]{
557
+ height: 45.5px;
558
+
509
559
  }
510
560
  .uiklu-h-\[4px\]{
511
561
  height: 4px;
@@ -514,6 +564,10 @@ button,
514
564
  .uiklu-h-\[50px\]{
515
565
  height: 50px;
516
566
 
567
+ }
568
+ .uiklu-h-\[56px\]{
569
+ height: 56px;
570
+
517
571
  }
518
572
  .uiklu-h-\[60px\]{
519
573
  height: 60px;
@@ -526,6 +580,10 @@ button,
526
580
  .uiklu-h-\[70px\]{
527
581
  height: 70px;
528
582
 
583
+ }
584
+ .uiklu-h-\[80px\]{
585
+ height: 80px;
586
+
529
587
  }
530
588
  .uiklu-h-auto{
531
589
  height: auto;
@@ -574,6 +632,10 @@ button,
574
632
  .uiklu-min-h-screen{
575
633
  min-height: 100vh;
576
634
 
635
+ }
636
+ .uiklu-w-11{
637
+ width: 2.75rem;
638
+
577
639
  }
578
640
  .uiklu-w-12{
579
641
  width: 3rem;
@@ -594,14 +656,26 @@ button,
594
656
  .uiklu-w-5{
595
657
  width: 1.25rem;
596
658
 
659
+ }
660
+ .uiklu-w-56{
661
+ width: 14rem;
662
+
597
663
  }
598
664
  .uiklu-w-6{
599
665
  width: 1.5rem;
600
666
 
667
+ }
668
+ .uiklu-w-7{
669
+ width: 1.75rem;
670
+
601
671
  }
602
672
  .uiklu-w-8{
603
673
  width: 2rem;
604
674
 
675
+ }
676
+ .uiklu-w-\[140px\]{
677
+ width: 140px;
678
+
605
679
  }
606
680
  .uiklu-w-\[141px\]{
607
681
  width: 141px;
@@ -674,14 +748,26 @@ button,
674
748
  .uiklu-w-\[40px\]{
675
749
  width: 40px;
676
750
 
751
+ }
752
+ .uiklu-w-\[45\.5px\]{
753
+ width: 45.5px;
754
+
677
755
  }
678
756
  .uiklu-w-\[450px\]{
679
757
  width: 450px;
680
758
 
759
+ }
760
+ .uiklu-w-\[516px\]{
761
+ width: 516px;
762
+
681
763
  }
682
764
  .uiklu-w-\[550px\]{
683
765
  width: 550px;
684
766
 
767
+ }
768
+ .uiklu-w-\[56px\]{
769
+ width: 56px;
770
+
685
771
  }
686
772
  .uiklu-w-\[600px\]{
687
773
  width: 600px;
@@ -694,10 +780,18 @@ button,
694
780
  .uiklu-w-\[75px\]{
695
781
  width: 75px;
696
782
 
783
+ }
784
+ .uiklu-w-\[80px\]{
785
+ width: 80px;
786
+
697
787
  }
698
788
  .uiklu-w-\[var\(--radix-select-trigger-width\)\]{
699
789
  width: var(--radix-select-trigger-width);
700
790
 
791
+ }
792
+ .uiklu-w-auto{
793
+ width: auto;
794
+
701
795
  }
702
796
  .uiklu-w-fit{
703
797
  width: -moz-fit-content;
@@ -819,6 +913,10 @@ button,
819
913
  .uiklu-max-w-md{
820
914
  max-width: 28rem;
821
915
 
916
+ }
917
+ .uiklu-max-w-xl{
918
+ max-width: 36rem;
919
+
822
920
  }
823
921
  .uiklu-flex-1{
824
922
  flex: 1 1 0%;
@@ -836,6 +934,16 @@ button,
836
934
  --tw-translate-y: -50%;
837
935
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
838
936
 
937
+ }
938
+ .uiklu-translate-x-1{
939
+ --tw-translate-x: 0.25rem;
940
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
941
+
942
+ }
943
+ .uiklu-translate-x-6{
944
+ --tw-translate-x: 1.5rem;
945
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
946
+
839
947
  }
840
948
  .uiklu-translate-x-\[-50\%\]{
841
949
  --tw-translate-x: -50%;
@@ -851,6 +959,10 @@ button,
851
959
  --tw-translate-y: -50%;
852
960
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
853
961
 
962
+ }
963
+ .uiklu-transform{
964
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
965
+
854
966
  }
855
967
  .uiklu-cursor-default{
856
968
  cursor: default;
@@ -959,6 +1071,10 @@ button,
959
1071
  .uiklu-gap-4{
960
1072
  gap: 1rem;
961
1073
 
1074
+ }
1075
+ .uiklu-gap-5{
1076
+ gap: 1.25rem;
1077
+
962
1078
  }
963
1079
  .uiklu-gap-6{
964
1080
  gap: 1.5rem;
@@ -967,6 +1083,10 @@ button,
967
1083
  .uiklu-gap-8{
968
1084
  gap: 2rem;
969
1085
 
1086
+ }
1087
+ .uiklu-gap-\[10px\]{
1088
+ gap: 10px;
1089
+
970
1090
  }
971
1091
  .uiklu-gap-\[14px\]{
972
1092
  gap: 14px;
@@ -979,6 +1099,10 @@ button,
979
1099
  .uiklu-gap-\[2px\]{
980
1100
  gap: 2px;
981
1101
 
1102
+ }
1103
+ .uiklu-gap-\[8px\]{
1104
+ gap: 8px;
1105
+
982
1106
  }
983
1107
  .uiklu-gap-x-1\.5{
984
1108
  -moz-column-gap: 0.375rem;
@@ -1033,6 +1157,10 @@ button,
1033
1157
  .uiklu-self-center{
1034
1158
  align-self: center;
1035
1159
 
1160
+ }
1161
+ .uiklu-self-stretch{
1162
+ align-self: stretch;
1163
+
1036
1164
  }
1037
1165
  .uiklu-overflow-hidden{
1038
1166
  overflow: hidden;
@@ -1131,6 +1259,10 @@ button,
1131
1259
  .uiklu-rounded-none{
1132
1260
  border-radius: 0px;
1133
1261
 
1262
+ }
1263
+ .uiklu-rounded-sm{
1264
+ border-radius: 0.125rem;
1265
+
1134
1266
  }
1135
1267
  .uiklu-rounded-xl{
1136
1268
  border-radius: 0.75rem;
@@ -1230,6 +1362,11 @@ button,
1230
1362
  --tw-border-opacity: 1;
1231
1363
  border-color: hsl(var(--uiklu-outlinesecondary) / var(--tw-border-opacity, 1));
1232
1364
 
1365
+ }
1366
+ .uiklu-border-primary{
1367
+ --tw-border-opacity: 1;
1368
+ border-color: hsl(var(--uiklu-primary) / var(--tw-border-opacity, 1));
1369
+
1233
1370
  }
1234
1371
  .uiklu-border-primary100{
1235
1372
  --tw-border-opacity: 1;
@@ -1240,6 +1377,11 @@ button,
1240
1377
  --tw-border-opacity: 1;
1241
1378
  border-color: hsl(var(--uiklu-primary-50) / var(--tw-border-opacity, 1));
1242
1379
 
1380
+ }
1381
+ .uiklu-border-primary500{
1382
+ --tw-border-opacity: 1;
1383
+ border-color: hsl(var(--uiklu-primary-500) / var(--tw-border-opacity, 1));
1384
+
1243
1385
  }
1244
1386
  .uiklu-border-primary900{
1245
1387
  --tw-border-opacity: 1;
@@ -1326,6 +1468,15 @@ button,
1326
1468
  --tw-bg-opacity: 1;
1327
1469
  background-color: hsl(var(--uiklu-destructive) / var(--tw-bg-opacity, 1));
1328
1470
 
1471
+ }
1472
+ .uiklu-bg-destructive\/60{
1473
+ background-color: hsl(var(--uiklu-destructive) / 0.6);
1474
+
1475
+ }
1476
+ .uiklu-bg-errorbg{
1477
+ --tw-bg-opacity: 1;
1478
+ background-color: hsl(var(--uiklu-errorbg) / var(--tw-bg-opacity, 1));
1479
+
1329
1480
  }
1330
1481
  .uiklu-bg-gray-200{
1331
1482
  --tw-bg-opacity: 1;
@@ -1336,6 +1487,11 @@ button,
1336
1487
  --tw-bg-opacity: 1;
1337
1488
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
1338
1489
 
1490
+ }
1491
+ .uiklu-bg-gray300{
1492
+ --tw-bg-opacity: 1;
1493
+ background-color: hsl(var(--uiklu-gray-300) / var(--tw-bg-opacity, 1));
1494
+
1339
1495
  }
1340
1496
  .uiklu-bg-gray50{
1341
1497
  --tw-bg-opacity: 1;
@@ -1356,11 +1512,25 @@ button,
1356
1512
  --tw-bg-opacity: 1;
1357
1513
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
1358
1514
 
1515
+ }
1516
+ .uiklu-bg-orange400{
1517
+ --tw-bg-opacity: 1;
1518
+ background-color: hsl(var(--uiklu-orange-400) / var(--tw-bg-opacity, 1));
1519
+
1520
+ }
1521
+ .uiklu-bg-orange400\/60{
1522
+ background-color: hsl(var(--uiklu-orange-400) / 0.6);
1523
+
1359
1524
  }
1360
1525
  .uiklu-bg-orange500{
1361
1526
  --tw-bg-opacity: 1;
1362
1527
  background-color: hsl(var(--uiklu-orange-500) / var(--tw-bg-opacity, 1));
1363
1528
 
1529
+ }
1530
+ .uiklu-bg-outlinesecondary{
1531
+ --tw-bg-opacity: 1;
1532
+ background-color: hsl(var(--uiklu-outlinesecondary) / var(--tw-bg-opacity, 1));
1533
+
1364
1534
  }
1365
1535
  .uiklu-bg-primary{
1366
1536
  --tw-bg-opacity: 1;
@@ -1525,10 +1695,18 @@ button,
1525
1695
  .uiklu-p-20{
1526
1696
  padding: 5rem;
1527
1697
 
1698
+ }
1699
+ .uiklu-p-3{
1700
+ padding: 0.75rem;
1701
+
1528
1702
  }
1529
1703
  .uiklu-p-4{
1530
1704
  padding: 1rem;
1531
1705
 
1706
+ }
1707
+ .uiklu-p-5{
1708
+ padding: 1.25rem;
1709
+
1532
1710
  }
1533
1711
  .uiklu-p-6{
1534
1712
  padding: 1.5rem;
@@ -1549,6 +1727,10 @@ button,
1549
1727
  .uiklu-p-\[14px\]{
1550
1728
  padding: 14px;
1551
1729
 
1730
+ }
1731
+ .uiklu-p-\[16px\]{
1732
+ padding: 16px;
1733
+
1552
1734
  }
1553
1735
  .uiklu-p-\[6px\]{
1554
1736
  padding: 6px;
@@ -1598,6 +1780,11 @@ button,
1598
1780
  padding-left: 10px;
1599
1781
  padding-right: 10px;
1600
1782
 
1783
+ }
1784
+ .uiklu-px-\[12px\]{
1785
+ padding-left: 12px;
1786
+ padding-right: 12px;
1787
+
1601
1788
  }
1602
1789
  .uiklu-px-\[16px\]{
1603
1790
  padding-left: 16px;
@@ -1643,6 +1830,11 @@ button,
1643
1830
  padding-top: 0.75rem;
1644
1831
  padding-bottom: 0.75rem;
1645
1832
 
1833
+ }
1834
+ .uiklu-py-\[4px\]{
1835
+ padding-top: 4px;
1836
+ padding-bottom: 4px;
1837
+
1646
1838
  }
1647
1839
  .uiklu-pb-4{
1648
1840
  padding-bottom: 1rem;
@@ -1778,6 +1970,10 @@ button,
1778
1970
  .uiklu-text-\[32px\]{
1779
1971
  font-size: 32px;
1780
1972
 
1973
+ }
1974
+ .uiklu-text-\[40px\]{
1975
+ font-size: 40px;
1976
+
1781
1977
  }
1782
1978
  .uiklu-text-\[8px\]{
1783
1979
  font-size: 8px;
@@ -1863,6 +2059,10 @@ button,
1863
2059
  .uiklu-tracking-tight{
1864
2060
  letter-spacing: -0.025em;
1865
2061
 
2062
+ }
2063
+ .uiklu-tracking-wide{
2064
+ letter-spacing: 0.025em;
2065
+
1866
2066
  }
1867
2067
  .uiklu-tracking-wider{
1868
2068
  letter-spacing: 0.05em;
@@ -2006,6 +2206,11 @@ button,
2006
2206
  --tw-text-opacity: 1;
2007
2207
  color: hsl(var(--uiklu-primary-400) / var(--tw-text-opacity, 1));
2008
2208
 
2209
+ }
2210
+ .uiklu-text-primary500{
2211
+ --tw-text-opacity: 1;
2212
+ color: hsl(var(--uiklu-primary-500) / var(--tw-text-opacity, 1));
2213
+
2009
2214
  }
2010
2215
  .uiklu-text-primary600{
2011
2216
  --tw-text-opacity: 1;
@@ -2084,6 +2289,10 @@ button,
2084
2289
  .uiklu-opacity-90{
2085
2290
  opacity: 0.9;
2086
2291
 
2292
+ }
2293
+ .uiklu-mix-blend-screen{
2294
+ mix-blend-mode: screen;
2295
+
2087
2296
  }
2088
2297
  .uiklu-shadow-2xl{
2089
2298
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
@@ -2125,6 +2334,12 @@ button,
2125
2334
  outline: 2px solid transparent;
2126
2335
  outline-offset: 2px;
2127
2336
 
2337
+ }
2338
+ .uiklu-ring-0{
2339
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2340
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2341
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2342
+
2128
2343
  }
2129
2344
  .uiklu-ring-1{
2130
2345
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
@@ -2135,6 +2350,16 @@ button,
2135
2350
  .uiklu-ring-foreground\/10{
2136
2351
  --tw-ring-color: hsl(var(--uiklu-foreground) / 0.1);
2137
2352
 
2353
+ }
2354
+ .uiklu-brightness-0{
2355
+ --tw-brightness: brightness(0);
2356
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2357
+
2358
+ }
2359
+ .uiklu-invert{
2360
+ --tw-invert: invert(100%);
2361
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2362
+
2138
2363
  }
2139
2364
  .uiklu-backdrop-blur-md{
2140
2365
  --tw-backdrop-blur: blur(12px);
@@ -2163,10 +2388,20 @@ button,
2163
2388
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2164
2389
  transition-duration: 150ms;
2165
2390
 
2391
+ }
2392
+ .uiklu-transition-transform{
2393
+ transition-property: transform;
2394
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2395
+ transition-duration: 150ms;
2396
+
2166
2397
  }
2167
2398
  .uiklu-duration-200{
2168
2399
  transition-duration: 200ms;
2169
2400
 
2401
+ }
2402
+ .uiklu-duration-300{
2403
+ transition-duration: 300ms;
2404
+
2170
2405
  }
2171
2406
  .uiklu-duration-500{
2172
2407
  transition-duration: 500ms;
@@ -2276,6 +2511,12 @@ input.uiklu-flex:not(:placeholder-shown) {
2276
2511
 
2277
2512
  }
2278
2513
 
2514
+ .hover\:uiklu-bg-basewhite:hover{
2515
+ --tw-bg-opacity: 1;
2516
+ background-color: hsl(var(--uiklu-basewhite) / var(--tw-bg-opacity, 1));
2517
+
2518
+ }
2519
+
2279
2520
  .hover\:uiklu-bg-gray-100:hover{
2280
2521
  --tw-bg-opacity: 1;
2281
2522
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
@@ -2419,6 +2660,12 @@ input.uiklu-flex:not(:placeholder-shown) {
2419
2660
 
2420
2661
  }
2421
2662
 
2663
+ .focus-visible\:uiklu-outline-none:focus-visible{
2664
+ outline: 2px solid transparent;
2665
+ outline-offset: 2px;
2666
+
2667
+ }
2668
+
2422
2669
  .focus-visible\:uiklu-ring-2:focus-visible{
2423
2670
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2424
2671
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -2426,6 +2673,12 @@ input.uiklu-flex:not(:placeholder-shown) {
2426
2673
 
2427
2674
  }
2428
2675
 
2676
+ .focus-visible\:uiklu-ring-gray400:focus-visible{
2677
+ --tw-ring-opacity: 1;
2678
+ --tw-ring-color: hsl(var(--uiklu-gray-400) / var(--tw-ring-opacity, 1));
2679
+
2680
+ }
2681
+
2429
2682
  .focus-visible\:uiklu-ring-primary300:focus-visible{
2430
2683
  --tw-ring-opacity: 1;
2431
2684
  --tw-ring-color: hsl(var(--uiklu-primary-300) / var(--tw-ring-opacity, 1));
@@ -2481,6 +2734,30 @@ input.uiklu-flex:not(:placeholder-shown) {
2481
2734
 
2482
2735
  }
2483
2736
 
2737
+ .data-\[state\=checked\]\:uiklu-translate-x-5[data-state="checked"]{
2738
+ --tw-translate-x: 1.25rem;
2739
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2740
+
2741
+ }
2742
+
2743
+ .data-\[state\=unchecked\]\:uiklu-translate-x-0[data-state="unchecked"]{
2744
+ --tw-translate-x: 0px;
2745
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2746
+
2747
+ }
2748
+
2749
+ .data-\[state\=checked\]\:uiklu-bg-primary[data-state="checked"]{
2750
+ --tw-bg-opacity: 1;
2751
+ background-color: hsl(var(--uiklu-primary) / var(--tw-bg-opacity, 1));
2752
+
2753
+ }
2754
+
2755
+ .data-\[state\=unchecked\]\:uiklu-bg-gray300[data-state="unchecked"]{
2756
+ --tw-bg-opacity: 1;
2757
+ background-color: hsl(var(--uiklu-gray-300) / var(--tw-bg-opacity, 1));
2758
+
2759
+ }
2760
+
2484
2761
  .data-\[placeholder\]\:uiklu-text-gray500[data-placeholder]{
2485
2762
  --tw-text-opacity: 1;
2486
2763
  color: hsl(var(--uiklu-gray-500) / var(--tw-text-opacity, 1));
@@ -2491,6 +2768,10 @@ input.uiklu-flex:not(:placeholder-shown) {
2491
2768
  .sm\:uiklu-flex-row{
2492
2769
  flex-direction: row;
2493
2770
 
2771
+ }
2772
+ .sm\:uiklu-items-stretch{
2773
+ align-items: stretch;
2774
+
2494
2775
  }
2495
2776
  .sm\:uiklu-justify-end{
2496
2777
  justify-content: flex-end;
package/dist/index.d.ts CHANGED
@@ -195,6 +195,9 @@ declare const Icons: {
195
195
  IZZI: react_jsx_runtime.JSX.Element;
196
196
  XBOX: react_jsx_runtime.JSX.Element;
197
197
  CALIENTE: react_jsx_runtime.JSX.Element;
198
+ WARNING: react_jsx_runtime.JSX.Element;
199
+ CHECK: react_jsx_runtime.JSX.Element;
200
+ DOWNLOAD: react_jsx_runtime.JSX.Element;
198
201
  };
199
202
 
200
203
  declare const searchSelectTriggerVariants: (props?: ({
@@ -268,4 +271,23 @@ interface IconBadgeProps {
268
271
  }
269
272
  declare const IconBadge: React.FC<IconBadgeProps>;
270
273
 
271
- export { BackButton, BalanceInfo, Button, Checkbox, type CheckboxProps, GridCard, IconBadge, type IconBadgeProps, Icons, Input, InputCode, InputPhone, type InputPhoneProps, type LadaOption, LoadingScreen, MobileMenuDrawer, Modal, PromoBanner, SearchSelect, Select, SidebarTabs, ToastAction, Toaster, Typography, useToast };
274
+ interface DetailCardItem {
275
+ label: string;
276
+ value: string;
277
+ }
278
+ interface DetailCardProps {
279
+ type: 'success' | 'error';
280
+ title: string;
281
+ amount: string;
282
+ message?: string;
283
+ summaryTitle?: string;
284
+ summaryItems: DetailCardItem[];
285
+ trackingUrl?: string;
286
+ primaryButtonText?: string;
287
+ secondaryButtonText?: string;
288
+ onPrimaryAction: () => void;
289
+ onSecondaryAction: () => void;
290
+ }
291
+ declare const DetailCard: React__default.FC<DetailCardProps>;
292
+
293
+ export { BackButton, BalanceInfo, Button, Checkbox, type CheckboxProps, DetailCard, type DetailCardItem, type DetailCardProps, GridCard, IconBadge, type IconBadgeProps, Icons, Input, InputCode, InputPhone, type InputPhoneProps, type LadaOption, LoadingScreen, MobileMenuDrawer, Modal, PromoBanner, SearchSelect, Select, SidebarTabs, ToastAction, Toaster, Typography, useToast };