@klu_dev/ui-klu-green 1.2.2 → 1.2.4
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 +82 -1
- package/dist/index.css +118 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +71 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -654,4 +654,85 @@ export default function NavigationDashboard() {
|
|
|
654
654
|
| `id` | `string` | Identificador único de la pestaña. |
|
|
655
655
|
| `label` | `string` | Texto descriptivo de la opción que verá el usuario. |
|
|
656
656
|
| `icon` | `ReactNode` | Elemento gráfico/ícono extraído del objeto `Icons`. |
|
|
657
|
-
| `content` | `ReactNode` | (Opcional) Componente o vista que se renderizará automáticamente al activar la pestaña. |
|
|
657
|
+
| `content` | `ReactNode` | (Opcional) Componente o vista que se renderizará automáticamente al activar la pestaña. |
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
## Uso de MobileMenuDrawer
|
|
661
|
+
|
|
662
|
+
Componente presentacional ("tonto") diseñado para desplegar la barra de navegación en vistas responsivas móviles. Al cambiar de pestaña, delega el control de la acción a la aplicación contenedora para poder mutar layouts completos de forma dinámica mediante un Mapeo de Componentes.
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
```tsx
|
|
667
|
+
import { useState } from 'react'
|
|
668
|
+
import { MobileMenuDrawer, Button, Icons } from '@klu_dev/ui-klu-green'
|
|
669
|
+
import { MoreHorizontal } from 'lucide-react'
|
|
670
|
+
|
|
671
|
+
// 1. Importa tus componentes/vistas completos del proyecto
|
|
672
|
+
import { MiVistaInicio } from './views/MiVistaInicio'
|
|
673
|
+
import { MiVistaTarjeta } from './views/MiVistaTarjeta'
|
|
674
|
+
import { MiVistaMovimientos } from './views/MiVistaMovimientos'
|
|
675
|
+
|
|
676
|
+
export function AppMobileLayout() {
|
|
677
|
+
const [isMenuOpen, setIsMenuOpen] = useState(false)
|
|
678
|
+
const [activeTab, setActiveTab] = useState('inicio')
|
|
679
|
+
|
|
680
|
+
// Opciones compartidas con el menú
|
|
681
|
+
const opcionesMenu = [
|
|
682
|
+
{ id: 'inicio', label: 'Inicio', icon: Icons.HOME },
|
|
683
|
+
{ id: 'tarjeta', label: 'Mi Tarjeta', icon: Icons.MYCARD },
|
|
684
|
+
{ id: 'movimientos', label: 'Movimientos', icon: Icons.MOVEMENTS },
|
|
685
|
+
]
|
|
686
|
+
|
|
687
|
+
// 2. Diccionario de mapeo: Asocia cada ID string con su respectiva vista
|
|
688
|
+
const rendersDeVistas: Record<string, React.ReactNode> = {
|
|
689
|
+
inicio: <MiVistaInicio />,
|
|
690
|
+
tarjeta: <MiVistaTarjeta />,
|
|
691
|
+
movimientos: <MiVistaMovimientos />,
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
return (
|
|
695
|
+
<div className="uiklu-w-full uiklu-min-h-screen uiklu-bg-gray-50 uiklu-flex uiklu-flex-col">
|
|
696
|
+
<header className="uiklu-bg-white uiklu-p-4 uiklu-flex uiklu-justify-between uiklu-items-center uiklu-border-b">
|
|
697
|
+
<span>Mi Banca Web</span>
|
|
698
|
+
|
|
699
|
+
{/* Botón para abrir el drawer */}
|
|
700
|
+
<Button
|
|
701
|
+
variant="iconCircle"
|
|
702
|
+
size="iconOnly"
|
|
703
|
+
onClick={() => setIsMenuOpen(true)}
|
|
704
|
+
icon={<MoreHorizontal style={{ width: '20px', height: '20px', color: '#FFF' }} />}
|
|
705
|
+
/>
|
|
706
|
+
</header>
|
|
707
|
+
|
|
708
|
+
{/* 3. Contenedor Dinámico: Se monta la vista completa en base al ID seleccionado */}
|
|
709
|
+
<main className="uiklu-p-4 uiklu-flex-1">
|
|
710
|
+
{rendersDeVistas[activeTab] || <MiVistaInicio />}
|
|
711
|
+
</main>
|
|
712
|
+
|
|
713
|
+
{/* Render del Drawer Mobile */}
|
|
714
|
+
<MobileMenuDrawer
|
|
715
|
+
isOpen={isMenuOpen}
|
|
716
|
+
onClose={() => setIsMenuOpen(false)}
|
|
717
|
+
items={opcionesMenu}
|
|
718
|
+
activeTab={activeTab}
|
|
719
|
+
onTabChange={setActiveTab}
|
|
720
|
+
/>
|
|
721
|
+
</div>
|
|
722
|
+
)
|
|
723
|
+
}
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
### Props de MobileMenuDrawer
|
|
728
|
+
### Props de MobileMenuDrawer
|
|
729
|
+
|
|
730
|
+
| Prop | Tipo | Descripción |
|
|
731
|
+
| :--- | :--- | :--- |
|
|
732
|
+
| `isOpen` | `boolean` | Controla la visibilidad en pantalla del menú desplegable. |
|
|
733
|
+
| `onClose` | `() => void` | Callback ejecutado al presionar el botón de cerrar (`X`) o seleccionar una pestaña. |
|
|
734
|
+
| `items` | `NavItem[]` | Array de opciones con estructura `{ id, label, icon, hasDivider? }`. |
|
|
735
|
+
| `activeTab` | `string` | ID de la pestaña seleccionada actualmente. |
|
|
736
|
+
| `onTabChange` | `(id: string) => void` | Callback gatillado al pulsar una nueva opción del menú. Devuelve el `id`. |
|
|
737
|
+
|
|
738
|
+
|
package/dist/index.css
CHANGED
|
@@ -266,6 +266,10 @@ button,
|
|
|
266
266
|
.uiklu-m-0{
|
|
267
267
|
margin: 0px;
|
|
268
268
|
}
|
|
269
|
+
.uiklu-mx-auto{
|
|
270
|
+
margin-left: auto;
|
|
271
|
+
margin-right: auto;
|
|
272
|
+
}
|
|
269
273
|
.uiklu-my-2{
|
|
270
274
|
margin-top: 0.5rem;
|
|
271
275
|
margin-bottom: 0.5rem;
|
|
@@ -342,6 +346,9 @@ button,
|
|
|
342
346
|
.uiklu-block{
|
|
343
347
|
display: block;
|
|
344
348
|
}
|
|
349
|
+
.uiklu-inline-block{
|
|
350
|
+
display: inline-block;
|
|
351
|
+
}
|
|
345
352
|
.uiklu-flex{
|
|
346
353
|
display: flex;
|
|
347
354
|
}
|
|
@@ -363,6 +370,9 @@ button,
|
|
|
363
370
|
.uiklu-h-4{
|
|
364
371
|
height: 1rem;
|
|
365
372
|
}
|
|
373
|
+
.uiklu-h-44{
|
|
374
|
+
height: 11rem;
|
|
375
|
+
}
|
|
366
376
|
.uiklu-h-5{
|
|
367
377
|
height: 1.25rem;
|
|
368
378
|
}
|
|
@@ -402,6 +412,9 @@ button,
|
|
|
402
412
|
.uiklu-h-\[6px\]{
|
|
403
413
|
height: 6px;
|
|
404
414
|
}
|
|
415
|
+
.uiklu-h-auto{
|
|
416
|
+
height: auto;
|
|
417
|
+
}
|
|
405
418
|
.uiklu-h-full{
|
|
406
419
|
height: 100%;
|
|
407
420
|
}
|
|
@@ -423,9 +436,6 @@ button,
|
|
|
423
436
|
.uiklu-min-h-\[20px\]{
|
|
424
437
|
min-height: 20px;
|
|
425
438
|
}
|
|
426
|
-
.uiklu-min-h-\[350px\]{
|
|
427
|
-
min-height: 350px;
|
|
428
|
-
}
|
|
429
439
|
.uiklu-min-h-\[400px\]{
|
|
430
440
|
min-height: 400px;
|
|
431
441
|
}
|
|
@@ -435,6 +445,9 @@ button,
|
|
|
435
445
|
.uiklu-min-h-screen{
|
|
436
446
|
min-height: 100vh;
|
|
437
447
|
}
|
|
448
|
+
.uiklu-w-12{
|
|
449
|
+
width: 3rem;
|
|
450
|
+
}
|
|
438
451
|
.uiklu-w-2{
|
|
439
452
|
width: 0.5rem;
|
|
440
453
|
}
|
|
@@ -483,6 +496,9 @@ button,
|
|
|
483
496
|
.uiklu-w-\[383px\]{
|
|
484
497
|
width: 383px;
|
|
485
498
|
}
|
|
499
|
+
.uiklu-w-\[40px\]{
|
|
500
|
+
width: 40px;
|
|
501
|
+
}
|
|
486
502
|
.uiklu-w-\[450px\]{
|
|
487
503
|
width: 450px;
|
|
488
504
|
}
|
|
@@ -532,6 +548,9 @@ button,
|
|
|
532
548
|
.uiklu-min-w-\[383px\]{
|
|
533
549
|
min-width: 383px;
|
|
534
550
|
}
|
|
551
|
+
.uiklu-min-w-\[40px\]{
|
|
552
|
+
min-width: 40px;
|
|
553
|
+
}
|
|
535
554
|
.uiklu-min-w-\[75px\]{
|
|
536
555
|
min-width: 75px;
|
|
537
556
|
}
|
|
@@ -562,6 +581,9 @@ button,
|
|
|
562
581
|
.uiklu-max-w-\[400px\]{
|
|
563
582
|
max-width: 400px;
|
|
564
583
|
}
|
|
584
|
+
.uiklu-max-w-\[40px\]{
|
|
585
|
+
max-width: 40px;
|
|
586
|
+
}
|
|
565
587
|
.uiklu-max-w-\[450px\]{
|
|
566
588
|
max-width: 450px;
|
|
567
589
|
}
|
|
@@ -630,6 +652,9 @@ button,
|
|
|
630
652
|
.uiklu-grid-cols-1{
|
|
631
653
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
632
654
|
}
|
|
655
|
+
.uiklu-grid-cols-2{
|
|
656
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
657
|
+
}
|
|
633
658
|
.uiklu-flex-row{
|
|
634
659
|
flex-direction: row;
|
|
635
660
|
}
|
|
@@ -710,17 +735,39 @@ button,
|
|
|
710
735
|
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
|
|
711
736
|
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
|
|
712
737
|
}
|
|
738
|
+
.uiklu-space-y-3 > :not([hidden]) ~ :not([hidden]){
|
|
739
|
+
--tw-space-y-reverse: 0;
|
|
740
|
+
margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
|
|
741
|
+
margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
|
|
742
|
+
}
|
|
743
|
+
.uiklu-space-y-4 > :not([hidden]) ~ :not([hidden]){
|
|
744
|
+
--tw-space-y-reverse: 0;
|
|
745
|
+
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
|
|
746
|
+
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
|
|
747
|
+
}
|
|
713
748
|
.uiklu-space-y-6 > :not([hidden]) ~ :not([hidden]){
|
|
714
749
|
--tw-space-y-reverse: 0;
|
|
715
750
|
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
|
|
716
751
|
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
|
|
717
752
|
}
|
|
753
|
+
.uiklu-divide-y > :not([hidden]) ~ :not([hidden]){
|
|
754
|
+
--tw-divide-y-reverse: 0;
|
|
755
|
+
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
|
756
|
+
border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
|
|
757
|
+
}
|
|
758
|
+
.uiklu-divide-gray-100 > :not([hidden]) ~ :not([hidden]){
|
|
759
|
+
--tw-divide-opacity: 1;
|
|
760
|
+
border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
|
|
761
|
+
}
|
|
718
762
|
.uiklu-self-center{
|
|
719
763
|
align-self: center;
|
|
720
764
|
}
|
|
721
765
|
.uiklu-overflow-hidden{
|
|
722
766
|
overflow: hidden;
|
|
723
767
|
}
|
|
768
|
+
.uiklu-overflow-y-auto{
|
|
769
|
+
overflow-y: auto;
|
|
770
|
+
}
|
|
724
771
|
.uiklu-truncate{
|
|
725
772
|
overflow: hidden;
|
|
726
773
|
text-overflow: ellipsis;
|
|
@@ -795,6 +842,9 @@ button,
|
|
|
795
842
|
.uiklu-border-\[1px\]{
|
|
796
843
|
border-width: 1px;
|
|
797
844
|
}
|
|
845
|
+
.uiklu-border-b{
|
|
846
|
+
border-bottom-width: 1px;
|
|
847
|
+
}
|
|
798
848
|
.uiklu-border-b-\[1px\]{
|
|
799
849
|
border-bottom-width: 1px;
|
|
800
850
|
}
|
|
@@ -830,6 +880,10 @@ button,
|
|
|
830
880
|
--tw-border-opacity: 1;
|
|
831
881
|
border-color: hsl(var(--uiklu-destructive) / var(--tw-border-opacity, 1));
|
|
832
882
|
}
|
|
883
|
+
.uiklu-border-gray-100{
|
|
884
|
+
--tw-border-opacity: 1;
|
|
885
|
+
border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
|
|
886
|
+
}
|
|
833
887
|
.uiklu-border-gray-200{
|
|
834
888
|
--tw-border-opacity: 1;
|
|
835
889
|
border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
|
|
@@ -946,6 +1000,10 @@ button,
|
|
|
946
1000
|
--tw-bg-opacity: 1;
|
|
947
1001
|
background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
|
|
948
1002
|
}
|
|
1003
|
+
.uiklu-bg-green-50{
|
|
1004
|
+
--tw-bg-opacity: 1;
|
|
1005
|
+
background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
|
|
1006
|
+
}
|
|
949
1007
|
.uiklu-bg-orange{
|
|
950
1008
|
--tw-bg-opacity: 1;
|
|
951
1009
|
background-color: hsl(var(--uiklu-orange) / var(--tw-bg-opacity, 1));
|
|
@@ -978,6 +1036,10 @@ button,
|
|
|
978
1036
|
--tw-bg-opacity: 1;
|
|
979
1037
|
background-color: hsl(var(--uiklu-primary-light) / var(--tw-bg-opacity, 1));
|
|
980
1038
|
}
|
|
1039
|
+
.uiklu-bg-red-50{
|
|
1040
|
+
--tw-bg-opacity: 1;
|
|
1041
|
+
background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
|
|
1042
|
+
}
|
|
981
1043
|
.uiklu-bg-slate-50{
|
|
982
1044
|
--tw-bg-opacity: 1;
|
|
983
1045
|
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
|
|
@@ -990,6 +1052,10 @@ button,
|
|
|
990
1052
|
--tw-bg-opacity: 1;
|
|
991
1053
|
background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1));
|
|
992
1054
|
}
|
|
1055
|
+
.uiklu-bg-teal-700{
|
|
1056
|
+
--tw-bg-opacity: 1;
|
|
1057
|
+
background-color: rgb(15 118 110 / var(--tw-bg-opacity, 1));
|
|
1058
|
+
}
|
|
993
1059
|
.uiklu-bg-transparent{
|
|
994
1060
|
background-color: transparent;
|
|
995
1061
|
}
|
|
@@ -1016,6 +1082,11 @@ button,
|
|
|
1016
1082
|
--tw-gradient-to: rgb(251 160 34 / 0) var(--tw-gradient-to-position);
|
|
1017
1083
|
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
1018
1084
|
}
|
|
1085
|
+
.uiklu-from-teal-600{
|
|
1086
|
+
--tw-gradient-from: #0d9488 var(--tw-gradient-from-position);
|
|
1087
|
+
--tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position);
|
|
1088
|
+
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
1089
|
+
}
|
|
1019
1090
|
.uiklu-via-\[\#225c4e\]{
|
|
1020
1091
|
--tw-gradient-to: rgb(34 92 78 / 0) var(--tw-gradient-to-position);
|
|
1021
1092
|
--tw-gradient-stops: var(--tw-gradient-from), #225c4e var(--tw-gradient-via-position), var(--tw-gradient-to);
|
|
@@ -1026,6 +1097,9 @@ button,
|
|
|
1026
1097
|
.uiklu-to-\[\#d9a041\]{
|
|
1027
1098
|
--tw-gradient-to: #d9a041 var(--tw-gradient-to-position);
|
|
1028
1099
|
}
|
|
1100
|
+
.uiklu-to-teal-700{
|
|
1101
|
+
--tw-gradient-to: #0f766e var(--tw-gradient-to-position);
|
|
1102
|
+
}
|
|
1029
1103
|
.uiklu-bg-cover{
|
|
1030
1104
|
background-size: cover;
|
|
1031
1105
|
}
|
|
@@ -1054,6 +1128,9 @@ button,
|
|
|
1054
1128
|
.uiklu-p-10{
|
|
1055
1129
|
padding: 2.5rem;
|
|
1056
1130
|
}
|
|
1131
|
+
.uiklu-p-2{
|
|
1132
|
+
padding: 0.5rem;
|
|
1133
|
+
}
|
|
1057
1134
|
.uiklu-p-2\.5{
|
|
1058
1135
|
padding: 0.625rem;
|
|
1059
1136
|
}
|
|
@@ -1143,6 +1220,9 @@ button,
|
|
|
1143
1220
|
padding-top: 0.75rem;
|
|
1144
1221
|
padding-bottom: 0.75rem;
|
|
1145
1222
|
}
|
|
1223
|
+
.uiklu-pb-4{
|
|
1224
|
+
padding-bottom: 1rem;
|
|
1225
|
+
}
|
|
1146
1226
|
.uiklu-pb-\[20px\]{
|
|
1147
1227
|
padding-bottom: 20px;
|
|
1148
1228
|
}
|
|
@@ -1189,6 +1269,10 @@ button,
|
|
|
1189
1269
|
font-size: 16px;
|
|
1190
1270
|
line-height: 28px;
|
|
1191
1271
|
}
|
|
1272
|
+
.uiklu-text-3xl{
|
|
1273
|
+
font-size: 18px;
|
|
1274
|
+
line-height: 28px;
|
|
1275
|
+
}
|
|
1192
1276
|
.uiklu-text-4xl{
|
|
1193
1277
|
font-size: 20px;
|
|
1194
1278
|
line-height: 22px;
|
|
@@ -1286,6 +1370,9 @@ button,
|
|
|
1286
1370
|
.uiklu-tracking-wider{
|
|
1287
1371
|
letter-spacing: 0.05em;
|
|
1288
1372
|
}
|
|
1373
|
+
.uiklu-tracking-widest{
|
|
1374
|
+
letter-spacing: 0.1em;
|
|
1375
|
+
}
|
|
1289
1376
|
.\!uiklu-text-destructive{
|
|
1290
1377
|
--tw-text-opacity: 1 !important;
|
|
1291
1378
|
color: hsl(var(--uiklu-destructive) / var(--tw-text-opacity, 1)) !important;
|
|
@@ -1350,6 +1437,14 @@ button,
|
|
|
1350
1437
|
--tw-text-opacity: 1;
|
|
1351
1438
|
color: hsl(var(--uiklu-gray-900) / var(--tw-text-opacity, 1));
|
|
1352
1439
|
}
|
|
1440
|
+
.uiklu-text-green-500{
|
|
1441
|
+
--tw-text-opacity: 1;
|
|
1442
|
+
color: rgb(34 197 94 / var(--tw-text-opacity, 1));
|
|
1443
|
+
}
|
|
1444
|
+
.uiklu-text-green-600{
|
|
1445
|
+
--tw-text-opacity: 1;
|
|
1446
|
+
color: rgb(22 163 74 / var(--tw-text-opacity, 1));
|
|
1447
|
+
}
|
|
1353
1448
|
.uiklu-text-green-700{
|
|
1354
1449
|
--tw-text-opacity: 1;
|
|
1355
1450
|
color: rgb(21 128 61 / var(--tw-text-opacity, 1));
|
|
@@ -1394,10 +1489,30 @@ button,
|
|
|
1394
1489
|
--tw-text-opacity: 1;
|
|
1395
1490
|
color: hsl(var(--uiklu-primary-900) / var(--tw-text-opacity, 1));
|
|
1396
1491
|
}
|
|
1492
|
+
.uiklu-text-red-500{
|
|
1493
|
+
--tw-text-opacity: 1;
|
|
1494
|
+
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
|
|
1495
|
+
}
|
|
1496
|
+
.uiklu-text-red-600{
|
|
1497
|
+
--tw-text-opacity: 1;
|
|
1498
|
+
color: rgb(220 38 38 / var(--tw-text-opacity, 1));
|
|
1499
|
+
}
|
|
1397
1500
|
.uiklu-text-secondary{
|
|
1398
1501
|
--tw-text-opacity: 1;
|
|
1399
1502
|
color: hsl(var(--uiklu-secondary) / var(--tw-text-opacity, 1));
|
|
1400
1503
|
}
|
|
1504
|
+
.uiklu-text-teal-400{
|
|
1505
|
+
--tw-text-opacity: 1;
|
|
1506
|
+
color: rgb(45 212 191 / var(--tw-text-opacity, 1));
|
|
1507
|
+
}
|
|
1508
|
+
.uiklu-text-teal-600{
|
|
1509
|
+
--tw-text-opacity: 1;
|
|
1510
|
+
color: rgb(13 148 136 / var(--tw-text-opacity, 1));
|
|
1511
|
+
}
|
|
1512
|
+
.uiklu-text-teal-700{
|
|
1513
|
+
--tw-text-opacity: 1;
|
|
1514
|
+
color: rgb(15 118 110 / var(--tw-text-opacity, 1));
|
|
1515
|
+
}
|
|
1401
1516
|
.uiklu-text-white{
|
|
1402
1517
|
--tw-text-opacity: 1;
|
|
1403
1518
|
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
package/dist/index.d.ts
CHANGED
|
@@ -16,8 +16,8 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
|
|
|
16
16
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
17
17
|
|
|
18
18
|
declare const buttonVariants: (props?: ({
|
|
19
|
-
variant?: "primary" | "primaryOrange" | "secondary" | "outline" | "outlinePrimary" | "outlineSecondary" | "outlineWhite" | null | undefined;
|
|
20
|
-
size?: "sm" | "md" | "lg" | "full" | "xl" | "fullh" | null | undefined;
|
|
19
|
+
variant?: "primary" | "primaryOrange" | "secondary" | "outline" | "outlinePrimary" | "outlineSecondary" | "outlineWhite" | "iconCircle" | null | undefined;
|
|
20
|
+
size?: "sm" | "md" | "lg" | "full" | "xl" | "fullh" | "iconOnly" | null | undefined;
|
|
21
21
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
22
22
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
23
23
|
asChild?: boolean;
|
|
@@ -36,7 +36,7 @@ declare const Select: React.FC<SelectPrimitive.SelectProps>;
|
|
|
36
36
|
|
|
37
37
|
declare const typographyVariants: (props?: ({
|
|
38
38
|
size?: "sm" | "md" | "xl" | "xxxl" | "xxl" | null | undefined;
|
|
39
|
-
color?: "primary" | "secondary" | "
|
|
39
|
+
color?: "primary" | "secondary" | "black" | "orange" | "white" | null | undefined;
|
|
40
40
|
align?: "left" | "right" | "center" | "justify" | null | undefined;
|
|
41
41
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
42
42
|
interface TypographyProps extends Omit<React.HTMLAttributes<HTMLParagraphElement>, "color">, VariantProps<typeof typographyVariants> {
|
|
@@ -155,6 +155,8 @@ declare const Icons: {
|
|
|
155
155
|
MOVEMENTS: react_jsx_runtime.JSX.Element;
|
|
156
156
|
SERVICES: react_jsx_runtime.JSX.Element;
|
|
157
157
|
BOXES: react_jsx_runtime.JSX.Element;
|
|
158
|
+
MENU: react_jsx_runtime.JSX.Element;
|
|
159
|
+
CIRCLE_MOVEMENTS: react_jsx_runtime.JSX.Element;
|
|
158
160
|
};
|
|
159
161
|
|
|
160
162
|
export { BackButton, BalanceInfo, Button, Icons, Input, LoadingScreen, Modal, PromoBanner, Select, SidebarTabs, ToastAction, Toaster, Typography, useToast };
|
package/dist/index.js
CHANGED
|
@@ -202,6 +202,14 @@ var buttonVariants = cva(
|
|
|
202
202
|
uiklu-text-basewhite
|
|
203
203
|
uiklu-rounded-[48px]
|
|
204
204
|
hover:uiklu-bg-white/10
|
|
205
|
+
`,
|
|
206
|
+
iconCircle: `
|
|
207
|
+
uiklu-bg-primary900
|
|
208
|
+
uiklu-text-white
|
|
209
|
+
hover:uiklu-bg-primary900/90
|
|
210
|
+
uiklu-rounded-full
|
|
211
|
+
uiklu-border-transparent
|
|
212
|
+
uiklu-p-0
|
|
205
213
|
`
|
|
206
214
|
},
|
|
207
215
|
size: {
|
|
@@ -210,7 +218,8 @@ var buttonVariants = cva(
|
|
|
210
218
|
lg: "uiklu-h-[50px] uiklu-w-[350px] uiklu-px-[32px] uiklu-text-2xl",
|
|
211
219
|
xl: "uiklu-h-[60px] uiklu-w-[450px] uiklu-px-[40px] uiklu-text-2xl",
|
|
212
220
|
full: "uiklu-w-full uiklu-h-[50px] uiklu-max-h-[60px] uiklu-px-[48px] uiklu-text-2xl uiklu-font-bold",
|
|
213
|
-
fullh: "uiklu-w-full uiklu-h-[40px] uiklu-max-h-[40px] uiklu-px-[40px] uiklu-text-xl uiklu-font-medium"
|
|
221
|
+
fullh: "uiklu-w-full uiklu-h-[40px] uiklu-max-h-[40px] uiklu-px-[40px] uiklu-text-xl uiklu-font-medium",
|
|
222
|
+
iconOnly: "uiklu-h-[40px] uiklu-w-[40px] uiklu-min-w-[40px] uiklu-max-w-[40px]"
|
|
214
223
|
}
|
|
215
224
|
},
|
|
216
225
|
defaultVariants: {
|
|
@@ -220,8 +229,9 @@ var buttonVariants = cva(
|
|
|
220
229
|
}
|
|
221
230
|
);
|
|
222
231
|
var Button = React2.forwardRef(
|
|
223
|
-
({ className, variant, size, asChild = false, icon, iconAlign = "left", children, ...props }, ref) => {
|
|
232
|
+
({ className, variant, size, asChild = false, icon, iconAlign = "left", children, style, ...props }, ref) => {
|
|
224
233
|
const Comp = asChild ? Slot : "button";
|
|
234
|
+
const isIconCircle = variant === "iconCircle";
|
|
225
235
|
return /* @__PURE__ */ jsxs2(
|
|
226
236
|
Comp,
|
|
227
237
|
{
|
|
@@ -231,6 +241,17 @@ var Button = React2.forwardRef(
|
|
|
231
241
|
className
|
|
232
242
|
),
|
|
233
243
|
ref,
|
|
244
|
+
style: {
|
|
245
|
+
...isIconCircle && {
|
|
246
|
+
borderRadius: "50%",
|
|
247
|
+
aspectRatio: "1 / 1",
|
|
248
|
+
padding: 0,
|
|
249
|
+
display: "flex",
|
|
250
|
+
alignItems: "center",
|
|
251
|
+
justifyContent: "center"
|
|
252
|
+
},
|
|
253
|
+
...style
|
|
254
|
+
},
|
|
234
255
|
...props,
|
|
235
256
|
children: [
|
|
236
257
|
icon && /* @__PURE__ */ jsx2("span", { className: "uiklu-flex uiklu-items-center uiklu-justify-center uiklu-shrink-0", children: icon }),
|
|
@@ -666,6 +687,50 @@ var SettingsIcon = ({ className }) => /* @__PURE__ */ jsx7("svg", { xmlns: "http
|
|
|
666
687
|
fill: "currentColor"
|
|
667
688
|
}
|
|
668
689
|
) });
|
|
690
|
+
var IconMenu = ({ className }) => /* @__PURE__ */ jsx7("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", className, children: /* @__PURE__ */ jsx7(
|
|
691
|
+
"path",
|
|
692
|
+
{
|
|
693
|
+
d: "M12 9C11.4067 9 10.8266 9.17595 10.3333 9.50559C9.83994 9.83524 9.45543 10.3038 9.22836 10.8519C9.0013 11.4001 8.94189 12.0033 9.05765 12.5853C9.1734 13.1672 9.45912 13.7018 9.87868 14.1213C10.2982 14.5409 10.8328 14.8266 11.4147 14.9424C11.9967 15.0581 12.5999 14.9987 13.1481 14.7716C13.6962 14.5446 14.1648 14.1601 14.4944 13.6667C14.8241 13.1734 15 12.5933 15 12C15 11.2044 14.6839 10.4413 14.1213 9.87868C13.5587 9.31607 12.7957 9 12 9ZM12 13.5C11.7033 13.5 11.4133 13.412 11.1666 13.2472C10.92 13.0824 10.7277 12.8481 10.6142 12.574C10.5007 12.2999 10.4709 11.9983 10.5288 11.7074C10.5867 11.4164 10.7296 11.1491 10.9393 10.9393C11.1491 10.7296 11.4164 10.5867 11.7074 10.5288C11.9983 10.4709 12.2999 10.5006 12.574 10.6142C12.8481 10.7277 13.0824 10.92 13.2472 11.1666C13.412 11.4133 13.5 11.7033 13.5 12C13.5 12.3978 13.342 12.7794 13.0607 13.0607C12.7794 13.342 12.3978 13.5 12 13.5ZM4.5 9C3.90666 9 3.32664 9.17595 2.83329 9.50559C2.33994 9.83524 1.95543 10.3038 1.72836 10.8519C1.5013 11.4001 1.44189 12.0033 1.55765 12.5853C1.6734 13.1672 1.95912 13.7018 2.37868 14.1213C2.79824 14.5409 3.33279 14.8266 3.91473 14.9424C4.49667 15.0581 5.09987 14.9987 5.64805 14.7716C6.19623 14.5446 6.66477 14.1601 6.99441 13.6667C7.32405 13.1734 7.5 12.5933 7.5 12C7.5 11.2044 7.18393 10.4413 6.62132 9.87868C6.05871 9.31607 5.29565 9 4.5 9ZM4.5 13.5C4.20333 13.5 3.91332 13.412 3.66665 13.2472C3.41997 13.0824 3.22771 12.8481 3.11418 12.574C3.00065 12.2999 2.97095 11.9983 3.02882 11.7074C3.0867 11.4164 3.22956 11.1491 3.43934 10.9393C3.64912 10.7296 3.91639 10.5867 4.20737 10.5288C4.49834 10.4709 4.79994 10.5006 5.07403 10.6142C5.34812 10.7277 5.58238 10.92 5.74721 11.1666C5.91203 11.4133 6 11.7033 6 12C6 12.3978 5.84197 12.7794 5.56066 13.0607C5.27936 13.342 4.89783 13.5 4.5 13.5ZM19.5 9C18.9067 9 18.3266 9.17595 17.8333 9.50559C17.3399 9.83524 16.9554 10.3038 16.7284 10.8519C16.5013 11.4001 16.4419 12.0033 16.5576 12.5853C16.6734 13.1672 16.9591 13.7018 17.3787 14.1213C17.7982 14.5409 18.3328 14.8266 18.9147 14.9424C19.4967 15.0581 20.0999 14.9987 20.6481 14.7716C21.1962 14.5446 21.6648 14.1601 21.9944 13.6667C22.3241 13.1734 22.5 12.5933 22.5 12C22.5 11.2044 22.1839 10.4413 21.6213 9.87868C21.0587 9.31607 20.2957 9 19.5 9ZM19.5 13.5C19.2033 13.5 18.9133 13.412 18.6666 13.2472C18.42 13.0824 18.2277 12.8481 18.1142 12.574C18.0007 12.2999 17.9709 11.9983 18.0288 11.7074C18.0867 11.4164 18.2296 11.1491 18.4393 10.9393C18.6491 10.7296 18.9164 10.5867 19.2074 10.5288C19.4983 10.4709 19.7999 10.5006 20.074 10.6142C20.3481 10.7277 20.5824 10.92 20.7472 11.1666C20.912 11.4133 21 11.7033 21 12C21 12.3978 20.842 12.7794 20.5607 13.0607C20.2794 13.342 19.8978 13.5 19.5 13.5Z",
|
|
694
|
+
fill: "currentColor"
|
|
695
|
+
}
|
|
696
|
+
) });
|
|
697
|
+
var MovementsIconCircle = ({ className }) => /* @__PURE__ */ jsxs7(
|
|
698
|
+
"svg",
|
|
699
|
+
{
|
|
700
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
701
|
+
width: "24",
|
|
702
|
+
height: "24",
|
|
703
|
+
viewBox: "0 0 24 24",
|
|
704
|
+
fill: "none",
|
|
705
|
+
className,
|
|
706
|
+
style: {
|
|
707
|
+
display: "flex",
|
|
708
|
+
width: "24px",
|
|
709
|
+
height: "24px",
|
|
710
|
+
justifyContent: "center",
|
|
711
|
+
alignItems: "center",
|
|
712
|
+
aspectRatio: "1/1"
|
|
713
|
+
},
|
|
714
|
+
children: [
|
|
715
|
+
/* @__PURE__ */ jsx7(
|
|
716
|
+
"rect",
|
|
717
|
+
{
|
|
718
|
+
width: "24",
|
|
719
|
+
height: "24",
|
|
720
|
+
rx: "24",
|
|
721
|
+
fill: "var(--Paleta-Verde-Bosque-Oscuro-Key-Verde-Bosque-Oscuro-300, #49A6A4)"
|
|
722
|
+
}
|
|
723
|
+
),
|
|
724
|
+
/* @__PURE__ */ jsx7("g", { transform: "translate(4.2, 4.2) scale(0.975)", children: /* @__PURE__ */ jsx7(
|
|
725
|
+
"path",
|
|
726
|
+
{
|
|
727
|
+
d: "M7.35375 10.6462C7.40024 10.6462 7.43712 10.7478 7.46228 10.8085C7.48745 10.8692 7.5004 10.9343 7.5004 11C7.5004 11.0657 7.48745 11.1308 7.46228 11.1915C7.43712 11.2522 7.40024 11.3073 7.35375 11.3537L5.35375 13.3537C5.30732 13.4002 5.25217 13.4371 5.19147 13.4623C5.13077 13.4874 5.06571 13.5004 5 13.5004C4.9343 13.5004 4.86923 13.4874 4.80853 13.4623C4.74783 13.4371 4.69269 13.4002 4.64625 13.3537L2.64625 11.3537C2.5998 11.3073 2.56295 11.2521 2.53781 11.1914C2.51267 11.1307 2.49973 11.0657 2.49973 11C2.49973 10.9343 2.51267 10.8692 2.53781 10.8085C2.56295 10.7479 2.5998 10.6927 2.64625 10.6462C2.74007 10.5524 2.86732 10.4997 3 10.4997C3.0657 10.4997 3.13076 10.5127 3.19145 10.5378C3.25215 10.5629 3.3073 10.5998 3.35375 10.6462L4.5 11.7931V3C4.5 2.86739 4.55268 2.74021 4.64645 2.64644C4.74022 2.55268 4.8674 2.5 5 2.5C5.13261 2.5 5.25979 2.55268 5.35356 2.64644C5.44732 2.74021 5.5 2.86739 5.5 3V11.7931L6.64625 10.6462C6.69269 10.5998 6.74783 10.5629 6.80853 10.5377C6.86923 10.5126 6.9343 10.4996 7 10.4996C7.06571 10.4996 7.13077 10.5126 7.19147 10.5377C7.25217 10.5629 7.30732 10.5998 7.35375 10.6462ZM13.3538 4.64625L11.3538 2.64625C11.3073 2.59976 11.2522 2.56288 11.1915 2.53772C11.1308 2.51255 11.0657 2.4996 11 2.4996C10.9343 2.4996 10.8692 2.51255 10.8085 2.53772C10.7478 2.56288 10.6927 2.59976 10.6463 2.64625L8.64625 4.64625C8.55243 4.74007 8.49972 4.86731 8.49972 5C8.49972 5.13268 8.55243 5.25993 8.64625 5.35375C8.74007 5.44757 8.86732 5.50027 9 5.50027C9.13269 5.50027 9.25993 5.44757 9.35375 5.35375L10.5 4.20687V13C10.5 13.1326 10.5527 13.2598 10.6465 13.3535C10.7402 13.4473 10.8674 13.5 11 13.5C11.1326 13.5 11.2598 13.4473 11.3536 13.3535C11.4473 13.2598 11.5 13.1326 11.5 13V4.20687L12.6463 5.35375C12.7401 5.44757 12.8673 5.50027 13 5.50027C13.1327 5.50027 13.2599 5.44757 13.3538 5.35375C13.4476 5.25993 13.5003 5.13268 13.5003 5C13.5003 4.86731 13.4476 4.74007 13.3538 4.64625Z",
|
|
728
|
+
fill: "white"
|
|
729
|
+
}
|
|
730
|
+
) })
|
|
731
|
+
]
|
|
732
|
+
}
|
|
733
|
+
);
|
|
669
734
|
var Icons = {
|
|
670
735
|
CARD: /* @__PURE__ */ jsx7(CardIcon, {}),
|
|
671
736
|
TICKET: /* @__PURE__ */ jsx7(TicketIcon, {}),
|
|
@@ -689,7 +754,9 @@ var Icons = {
|
|
|
689
754
|
MYCARD: /* @__PURE__ */ jsx7(MyCardIcon, {}),
|
|
690
755
|
MOVEMENTS: /* @__PURE__ */ jsx7(MovementsIcon, {}),
|
|
691
756
|
SERVICES: /* @__PURE__ */ jsx7(ServicesPayIcon, {}),
|
|
692
|
-
BOXES: /* @__PURE__ */ jsx7(BoxesIcon, {})
|
|
757
|
+
BOXES: /* @__PURE__ */ jsx7(BoxesIcon, {}),
|
|
758
|
+
MENU: /* @__PURE__ */ jsx7(IconMenu, {}),
|
|
759
|
+
CIRCLE_MOVEMENTS: /* @__PURE__ */ jsx7(MovementsIconCircle, {})
|
|
693
760
|
};
|
|
694
761
|
|
|
695
762
|
// src/components/ui/modal.tsx
|
|
@@ -1208,7 +1275,7 @@ function PromoBanner({
|
|
|
1208
1275
|
}) {
|
|
1209
1276
|
return /* @__PURE__ */ jsxs12("div", { className: cn(
|
|
1210
1277
|
"uiklu-relative uiklu-overflow-hidden uiklu-rounded-2xl uiklu-p-8 uiklu-text-white uiklu-font-sans uiklu-box-border",
|
|
1211
|
-
"uiklu-w-full uiklu-
|
|
1278
|
+
"uiklu-w-full uiklu-h-auto uiklu-gap-6 uiklu-flex uiklu-flex-col uiklu-items-center uiklu-justify-between",
|
|
1212
1279
|
"uiklu-bg-[#06372D]",
|
|
1213
1280
|
className
|
|
1214
1281
|
), children: [
|