@klu_dev/ui-klu-green 1.1.2 → 1.1.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 +114 -11
- package/dist/index.css +472 -204
- package/dist/index.d.ts +2 -0
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ npm install @klu_dev/ui-klu-green
|
|
|
16
16
|
- BackButton
|
|
17
17
|
- Select
|
|
18
18
|
- Typography
|
|
19
|
+
- Modal
|
|
19
20
|
|
|
20
21
|
## Antes de comenzar a agregar componentes
|
|
21
22
|
|
|
@@ -134,25 +135,20 @@ export default function ButtonExamples() {
|
|
|
134
135
|
|
|
135
136
|
- **Botón con ícono:**
|
|
136
137
|
```tsx
|
|
137
|
-
import { Button,
|
|
138
|
+
import { Button, Icons } from "@klu_dev/ui-klu-green"
|
|
138
139
|
|
|
139
140
|
export default function ButtonExamples() {
|
|
140
141
|
return (
|
|
141
142
|
<div className="uiklu-flex uiklu-flex-col uiklu-gap-6">
|
|
142
|
-
{/* Botón con
|
|
143
|
-
<Button variant="primary" icon={
|
|
143
|
+
{/* Botón con ícono usando el objeto Icons */}
|
|
144
|
+
<Button variant="primary" icon={Icons.CARD}>
|
|
144
145
|
Pagar con Tarjeta
|
|
145
146
|
</Button>
|
|
146
147
|
|
|
147
|
-
{/* Botón con
|
|
148
|
-
<Button variant="outlinePrimary" icon={
|
|
148
|
+
{/* Botón con ícono a la derecha */}
|
|
149
|
+
<Button variant="outlinePrimary" icon={Icons.CHEVRON_RIGHT} iconAlign="right">
|
|
149
150
|
Continuar
|
|
150
151
|
</Button>
|
|
151
|
-
|
|
152
|
-
{/* Botón con gradiente e icono (el icono se adapta a blanco automáticamente) */}
|
|
153
|
-
<Button variant="secondary" size="lg" icon={<CardIcon />}>
|
|
154
|
-
Confirmar Transacción
|
|
155
|
-
</Button>
|
|
156
152
|
</div>
|
|
157
153
|
)
|
|
158
154
|
}
|
|
@@ -310,4 +306,111 @@ export default function FormSelect() {
|
|
|
310
306
|
| `sm` | `150px` | `uiklu-w-[150px]` |
|
|
311
307
|
| `md` | `250px` | `uiklu-w-[250px]` |
|
|
312
308
|
| `lg` | `350px` | `uiklu-w-[350px]` |
|
|
313
|
-
| `full` | `100%` | `uiklu-w-full` |
|
|
309
|
+
| `full` | `100%` | `uiklu-w-full` |
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
## Uso Modal
|
|
314
|
+
Componente de diálogo flexible basado en Radix UI. Permite encabezados con íconos, contenido personalizado y un pie con botones configurables que usan las variantes de la librería.
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
- **Modal Autorización:**
|
|
318
|
+
|
|
319
|
+
```tsx
|
|
320
|
+
import { Modal, Button, Input, Icons } from "@klu_dev/ui-klu-green"
|
|
321
|
+
import { useState } from "react"
|
|
322
|
+
|
|
323
|
+
export default function AuthExample() {
|
|
324
|
+
const [isOpen, setIsOpen] = useState(false)
|
|
325
|
+
|
|
326
|
+
return (
|
|
327
|
+
<>
|
|
328
|
+
<Button onClick={() => setIsOpen(true)}>Abrir Autorización</Button>
|
|
329
|
+
|
|
330
|
+
<Modal
|
|
331
|
+
open={isOpen}
|
|
332
|
+
onOpenChange={setIsOpen}
|
|
333
|
+
title="Autorización"
|
|
334
|
+
icon={Icons.SHIELD_CHECK}
|
|
335
|
+
footerButtons={[
|
|
336
|
+
{
|
|
337
|
+
label: "Cancelar",
|
|
338
|
+
variant: "outlinePrimary",
|
|
339
|
+
onClick: () => setIsOpen(false)
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
label: "Verificar código",
|
|
343
|
+
variant: "primary",
|
|
344
|
+
onClick: () => console.log("Validando...")
|
|
345
|
+
}
|
|
346
|
+
]}
|
|
347
|
+
>
|
|
348
|
+
<div className="uiklu-space-y-6">
|
|
349
|
+
<p className="uiklu-text-balance-slate-600 uiklu-text-[14px]">
|
|
350
|
+
Este movimiento esta protegido con la aplicación de autenticación.
|
|
351
|
+
</p>
|
|
352
|
+
<div className="uiklu-space-y-2">
|
|
353
|
+
<label className="uiklu-text-balance-slate-600 uiklu-text-[14px] uiklu-font-medium">
|
|
354
|
+
Código de autenticación
|
|
355
|
+
</label>
|
|
356
|
+
<Input type="password" placeholder="**********" size="full" />
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</Modal>
|
|
360
|
+
</>
|
|
361
|
+
)
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
- **Modal Mensaje informativo:**
|
|
368
|
+
Ideal para confirmaciones de éxito o avisos rápidos donde solo se requiere un botón de acción.
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
```tsx
|
|
372
|
+
import { Modal, Icons } from "@klu_dev/ui-klu-green"
|
|
373
|
+
import { useState } from "react"
|
|
374
|
+
|
|
375
|
+
export default function SuccessMessage() {
|
|
376
|
+
const [isOpen, setIsOpen] = useState(false)
|
|
377
|
+
|
|
378
|
+
return (
|
|
379
|
+
<>
|
|
380
|
+
<button onClick={() => setIsOpen(true)}>Actualizar Contraseña</button>
|
|
381
|
+
|
|
382
|
+
<Modal
|
|
383
|
+
open={isOpen}
|
|
384
|
+
onOpenChange={setIsOpen}
|
|
385
|
+
title="Cambio Exitoso"
|
|
386
|
+
icon={Icons.SHIELD_CHECK}
|
|
387
|
+
footerButtons={[
|
|
388
|
+
{
|
|
389
|
+
label: "Entendido",
|
|
390
|
+
variant: "primary",
|
|
391
|
+
onClick: () => setIsOpen(false)
|
|
392
|
+
}
|
|
393
|
+
]}
|
|
394
|
+
>
|
|
395
|
+
<p className="uiklu-text-balance-slate-600 uiklu-text-[14px] uiklu-leading-relaxed">
|
|
396
|
+
Tu contraseña se ha actualizado correctamente. Te recomendamos no compartirla con nadie por seguridad.
|
|
397
|
+
</p>
|
|
398
|
+
</Modal>
|
|
399
|
+
</>
|
|
400
|
+
)
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
- **Props de Modal:**
|
|
406
|
+
|
|
407
|
+
| Prop | Tipo | Descripción |
|
|
408
|
+
| :--- | :--- | :--- |
|
|
409
|
+
| `open` | `boolean` | Controla si el modal está visible. |
|
|
410
|
+
| `onOpenChange` | `function` | Función para actualizar el estado de apertura. |
|
|
411
|
+
| `title` | `string` | Título que aparece en el encabezado. |
|
|
412
|
+
| `icon` | `ReactNode` | Icono decorativo al lado del título. |
|
|
413
|
+
| `children` | `ReactNode` | Contenido principal (cuerpo) del modal. |
|
|
414
|
+
| `footerButtons` | `array` | Configuración de botones (label, onClick, variant). |
|
|
415
|
+
| `sm:max-w` | `500px` | Ancho máximo en pantallas pequeñas: `uiklu-sm:max-w-[500px]` |
|
|
416
|
+
|