@klu_dev/ui-klu-green 1.0.13 → 1.1.1
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 +205 -22
- package/dist/index.css +187 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +6 -10
package/README.md
CHANGED
|
@@ -2,52 +2,69 @@
|
|
|
2
2
|
|
|
3
3
|
Librería de componentes UI desarrollada con React + TypeScript + TailwindCSS.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Instalación
|
|
6
6
|
npm install @klu_dev/ui-klu-green
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Requisitos
|
|
9
9
|
- React 18+
|
|
10
10
|
- TailwindCSS
|
|
11
11
|
- PostCSS
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Componentes disponibles
|
|
14
14
|
- Input
|
|
15
15
|
- Button
|
|
16
16
|
- BackButton
|
|
17
|
+
- Select
|
|
18
|
+
- Typography
|
|
17
19
|
|
|
18
20
|
## Antes de comenzar a agregar componentes
|
|
21
|
+
|
|
22
|
+
Importa el archivo de estilos globales en el punto de entrada de tu aplicación (ej. main.tsx o _app.tsx):
|
|
23
|
+
|
|
19
24
|
```tsx
|
|
20
25
|
import "@klu_dev/ui-klu-green/style.css";
|
|
21
26
|
```
|
|
22
27
|
|
|
23
|
-
##
|
|
28
|
+
## Uso Input
|
|
29
|
+
|
|
30
|
+
Componente de entrada de texto con soporte para validación, diferentes tamaños y modo password.
|
|
24
31
|
|
|
25
32
|
```tsx
|
|
26
33
|
import { Input } from "@klu_dev/ui-klu-green"
|
|
27
34
|
|
|
28
|
-
export default function
|
|
29
|
-
return
|
|
35
|
+
export default function InputExamples() {
|
|
36
|
+
return (
|
|
37
|
+
<div className="uiklu-flex uiklu-flex-col uiklu-gap-4">
|
|
38
|
+
{/* Escala de anchos */}
|
|
39
|
+
<Input size="sm" placeholder="Pequeño (150px)" />
|
|
40
|
+
<Input size="md" placeholder="Mediano (250px)" />
|
|
41
|
+
<Input size="lg" placeholder="Grande (Máx 350px)" />
|
|
42
|
+
|
|
43
|
+
{/* Input en Layout de Formulario (Full) */}
|
|
44
|
+
<div className="uiklu-w-full uiklu-max-w-[600px]">
|
|
45
|
+
<Input size="full" placeholder="Input que llena el formulario" />
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
)
|
|
30
49
|
}
|
|
31
50
|
```
|
|
32
51
|
|
|
33
52
|
- **Input con validación:**
|
|
34
53
|
|
|
35
54
|
```tsx
|
|
36
|
-
|
|
37
55
|
import { Input } from "@klu_dev/ui-klu-green"
|
|
38
56
|
import { useState } from "react"
|
|
39
57
|
|
|
40
|
-
export default function
|
|
58
|
+
export default function LiveValidation() {
|
|
41
59
|
const [value, setValue] = useState("")
|
|
42
60
|
const [error, setError] = useState("")
|
|
43
61
|
|
|
44
62
|
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
45
63
|
const val = e.target.value
|
|
46
64
|
setValue(val)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
setError("Solo se permiten números")
|
|
65
|
+
|
|
66
|
+
if (val.length > 0 && val.length < 3) {
|
|
67
|
+
setError("Mínimo 3 caracteres")
|
|
51
68
|
} else {
|
|
52
69
|
setError("")
|
|
53
70
|
}
|
|
@@ -55,39 +72,205 @@ export default function Example() {
|
|
|
55
72
|
|
|
56
73
|
return (
|
|
57
74
|
<Input
|
|
75
|
+
type="text"
|
|
76
|
+
placeholder="Validando..."
|
|
58
77
|
value={value}
|
|
59
78
|
onChange={handleChange}
|
|
60
79
|
error={error}
|
|
61
|
-
placeholder="Ingresa solo números"
|
|
62
80
|
/>
|
|
63
81
|
)
|
|
64
82
|
}
|
|
65
83
|
```
|
|
66
84
|
|
|
67
|
-
|
|
85
|
+
- **Input numérico estricto:**
|
|
86
|
+
Ejemplo para forzar solo entrada de números mediante el evento onChange:
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<Input
|
|
90
|
+
placeholder="Solo números"
|
|
91
|
+
inputMode="numeric"
|
|
92
|
+
onChange={(e) => {
|
|
93
|
+
e.target.value = e.target.value.replace(/[^0-9]/g, "");
|
|
94
|
+
}}
|
|
95
|
+
/>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
## Uso Button
|
|
100
|
+
|
|
101
|
+
Botones con múltiples variantes de color y escalas adaptativas.
|
|
68
102
|
|
|
69
103
|
|
|
70
104
|
```tsx
|
|
71
105
|
import { Button } from "@klu_dev/ui-klu-green"
|
|
72
106
|
|
|
73
|
-
export default function
|
|
74
|
-
return
|
|
107
|
+
export default function ButtonExamples() {
|
|
108
|
+
return (
|
|
109
|
+
<div className="uiklu-flex uiklu-flex-col uiklu-gap-6">
|
|
110
|
+
{/* Tamaños con Anchos Fijos */}
|
|
111
|
+
<Button size="sm">Small (150px)</Button>
|
|
112
|
+
<Button size="md">Medium (250px)</Button>
|
|
113
|
+
<Button size="lg">Large (350px)</Button>
|
|
114
|
+
<Button size="xl">Extra Large (450px)</Button>
|
|
115
|
+
|
|
116
|
+
{/* Botón Adaptativo (Full Width) */}
|
|
117
|
+
<div className="uiklu-w-[550px] uiklu-border-2 uiklu-p-4">
|
|
118
|
+
<p>Contenedor de 550px:</p>
|
|
119
|
+
<Button variant="secondary" size="full">
|
|
120
|
+
Ocupa el 100% del contenedor
|
|
121
|
+
</Button>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
)
|
|
75
125
|
}
|
|
76
126
|
```
|
|
127
|
+
- **Botón Adaptativo (Ancho Completo):**
|
|
77
128
|
|
|
129
|
+
```tsx
|
|
130
|
+
<Button variant="secondary" size="full">
|
|
131
|
+
Botón que ocupa el 100% del ancho
|
|
132
|
+
</Button>
|
|
133
|
+
```
|
|
78
134
|
|
|
79
|
-
##
|
|
135
|
+
## Uso BackButton
|
|
136
|
+
|
|
137
|
+
Botón de navegación simplificado ideal para encabezados.
|
|
80
138
|
|
|
81
139
|
```tsx
|
|
82
140
|
import { BackButton } from "@klu_dev/ui-klu-green"
|
|
83
141
|
|
|
84
|
-
export default function
|
|
142
|
+
export default function Navigation() {
|
|
85
143
|
return (
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
144
|
+
<div className="uiklu-bg-primary uiklu-p-4">
|
|
145
|
+
<BackButton
|
|
146
|
+
size="md"
|
|
147
|
+
onClick={() => window.history.back()}
|
|
148
|
+
/>
|
|
149
|
+
</div>
|
|
89
150
|
)
|
|
90
151
|
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Uso Typography
|
|
155
|
+
Componente versátil para el manejo de textos, títulos y etiquetas con soporte para puntos decorativos (showDot).
|
|
156
|
+
|
|
157
|
+
```tsx
|
|
158
|
+
import { Typography } from "@klu_dev/ui-klu-green"
|
|
159
|
+
|
|
160
|
+
export default function TypographyExamples() {
|
|
161
|
+
return (
|
|
162
|
+
<div className="uiklu-flex uiklu-flex-col uiklu-gap-6 uiklu-p-8 uiklu-bg-black">
|
|
163
|
+
{/* Título principal con punto decorativo */}
|
|
164
|
+
<Typography size="xxxl" color="white" align="center" showDot>
|
|
165
|
+
BIENVENIDO A KLU
|
|
166
|
+
</Typography>
|
|
167
|
+
|
|
168
|
+
{/* Subtítulo alineado a la izquierda */}
|
|
169
|
+
<Typography size="xxl" color="primary" align="left">
|
|
170
|
+
Tu banca digital
|
|
171
|
+
</Typography>
|
|
172
|
+
|
|
173
|
+
{/* Cuerpo de texto con color base */}
|
|
174
|
+
<Typography size="md" color="white" align="left">
|
|
175
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
176
|
+
Sed do eiusmod tempor incididunt ut labore.
|
|
177
|
+
</Typography>
|
|
178
|
+
|
|
179
|
+
{/* Nota pequeña alineada a la derecha */}
|
|
180
|
+
<Typography size="xs" color="white" align="right">
|
|
181
|
+
Versión 2.0.0
|
|
182
|
+
</Typography>
|
|
183
|
+
</div>
|
|
184
|
+
)
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
- **Props de Typography:**
|
|
188
|
+
|
|
189
|
+
| Prop | Tipo | Descripción |
|
|
190
|
+
| :--- | :--- | :--- |
|
|
191
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl' \| 'xxxl'` | Escala de tamaño de fuente. |
|
|
192
|
+
| `color` | `'primary' \| 'white' \| 'black'` | Paleta de colores predefinida. |
|
|
193
|
+
| `align` | `'left' \| 'center' \| 'right'` | Alineación horizontal del texto. |
|
|
194
|
+
| `showDot` | `boolean` | Si es `true`, agrega un punto decorativo al final. |
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## Uso Select
|
|
199
|
+
Componente de selección desplegable basado en Radix UI, con soporte para tamaños fijos, estado de error y scroll automático.
|
|
200
|
+
- **Ejemplo básico:**
|
|
201
|
+
```tsx
|
|
202
|
+
import {
|
|
203
|
+
Select,
|
|
204
|
+
SelectTrigger,
|
|
205
|
+
SelectValue,
|
|
206
|
+
SelectContent,
|
|
207
|
+
SelectItem
|
|
208
|
+
} from "@klu_dev/ui-klu-green"
|
|
209
|
+
|
|
210
|
+
export default function BasicSelect() {
|
|
211
|
+
return (
|
|
212
|
+
<Select>
|
|
213
|
+
<SelectTrigger size="md">
|
|
214
|
+
<SelectValue placeholder="Selecciona un país" />
|
|
215
|
+
</SelectTrigger>
|
|
216
|
+
<SelectContent>
|
|
217
|
+
<SelectItem value="mx">México</SelectItem>
|
|
218
|
+
<SelectItem value="us">Estados Unidos</SelectItem>
|
|
219
|
+
<SelectItem value="es">España</SelectItem>
|
|
220
|
+
</SelectContent>
|
|
221
|
+
</Select>
|
|
222
|
+
)
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
- **Validación y mensajes de error:**
|
|
226
|
+
```tsx
|
|
227
|
+
import {
|
|
228
|
+
Select,
|
|
229
|
+
SelectTrigger,
|
|
230
|
+
SelectValue,
|
|
231
|
+
SelectContent,
|
|
232
|
+
SelectItem,
|
|
233
|
+
SelectErrorMessage
|
|
234
|
+
} from "@klu_dev/ui-klu-green"
|
|
235
|
+
import { useState } from "react"
|
|
236
|
+
|
|
237
|
+
export default function FormSelect() {
|
|
238
|
+
const [value, setValue] = useState("")
|
|
239
|
+
const [error, setError] = useState("")
|
|
240
|
+
|
|
241
|
+
const handleValidation = () => {
|
|
242
|
+
if (!value) setError("Debes seleccionar una opción para continuar")
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return (
|
|
246
|
+
<div className="uiklu-flex uiklu-flex-col uiklu-gap-2">
|
|
247
|
+
<Select value={value} onValueChange={(val) => { setValue(val); setError(""); }}>
|
|
248
|
+
<SelectTrigger error={!!error} size="lg">
|
|
249
|
+
<SelectValue placeholder="Selecciona una opción" />
|
|
250
|
+
</SelectTrigger>
|
|
251
|
+
<SelectContent>
|
|
252
|
+
<SelectItem value="1">Plan Básico</SelectItem>
|
|
253
|
+
<SelectItem value="2">Plan Premium</SelectItem>
|
|
254
|
+
</SelectContent>
|
|
255
|
+
</Select>
|
|
256
|
+
|
|
257
|
+
{/* Mensaje de error dedicado */}
|
|
258
|
+
<SelectErrorMessage message={error} />
|
|
259
|
+
|
|
260
|
+
<button onClick={handleValidation} className="uiklu-mt-4">
|
|
261
|
+
Validar
|
|
262
|
+
</button>
|
|
263
|
+
</div>
|
|
264
|
+
)
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
- **Props de Select:**
|
|
91
269
|
|
|
92
270
|
|
|
93
|
-
|
|
271
|
+
| Size | Ancho (Width) | Clase CSS (uiklu) |
|
|
272
|
+
| :--- | :--- | :--- |
|
|
273
|
+
| `sm` | `150px` | `uiklu-w-[150px]` |
|
|
274
|
+
| `md` | `250px` | `uiklu-w-[250px]` |
|
|
275
|
+
| `lg` | `350px` | `uiklu-w-[350px]` |
|
|
276
|
+
| `full` | `100%` | `uiklu-w-full` |
|
package/dist/index.css
CHANGED
|
@@ -145,6 +145,9 @@ button,
|
|
|
145
145
|
.uiklu-relative{
|
|
146
146
|
position: relative;
|
|
147
147
|
}
|
|
148
|
+
.uiklu-left-3{
|
|
149
|
+
left: 0.75rem;
|
|
150
|
+
}
|
|
148
151
|
.uiklu-right-6{
|
|
149
152
|
right: 1.5rem;
|
|
150
153
|
}
|
|
@@ -154,12 +157,18 @@ button,
|
|
|
154
157
|
.uiklu-z-10{
|
|
155
158
|
z-index: 10;
|
|
156
159
|
}
|
|
160
|
+
.uiklu-z-50{
|
|
161
|
+
z-index: 50;
|
|
162
|
+
}
|
|
157
163
|
.uiklu-m-0{
|
|
158
164
|
margin: 0px;
|
|
159
165
|
}
|
|
160
166
|
.uiklu-mb-2{
|
|
161
167
|
margin-bottom: 0.5rem;
|
|
162
168
|
}
|
|
169
|
+
.uiklu-ml-2{
|
|
170
|
+
margin-left: 0.5rem;
|
|
171
|
+
}
|
|
163
172
|
.uiklu-mt-1{
|
|
164
173
|
margin-top: 0.25rem;
|
|
165
174
|
}
|
|
@@ -175,6 +184,9 @@ button,
|
|
|
175
184
|
.uiklu-inline-flex{
|
|
176
185
|
display: inline-flex;
|
|
177
186
|
}
|
|
187
|
+
.uiklu-h-3\.5{
|
|
188
|
+
height: 0.875rem;
|
|
189
|
+
}
|
|
178
190
|
.uiklu-h-4{
|
|
179
191
|
height: 1rem;
|
|
180
192
|
}
|
|
@@ -199,9 +211,21 @@ button,
|
|
|
199
211
|
.uiklu-h-full{
|
|
200
212
|
height: 100%;
|
|
201
213
|
}
|
|
214
|
+
.uiklu-max-h-96{
|
|
215
|
+
max-height: 24rem;
|
|
216
|
+
}
|
|
202
217
|
.uiklu-max-h-\[60px\]{
|
|
203
218
|
max-height: 60px;
|
|
204
219
|
}
|
|
220
|
+
.uiklu-min-h-\[500px\]{
|
|
221
|
+
min-height: 500px;
|
|
222
|
+
}
|
|
223
|
+
.uiklu-min-h-screen{
|
|
224
|
+
min-height: 100vh;
|
|
225
|
+
}
|
|
226
|
+
.uiklu-w-3\.5{
|
|
227
|
+
width: 0.875rem;
|
|
228
|
+
}
|
|
205
229
|
.uiklu-w-4{
|
|
206
230
|
width: 1rem;
|
|
207
231
|
}
|
|
@@ -229,6 +253,9 @@ button,
|
|
|
229
253
|
.uiklu-w-\[600px\]{
|
|
230
254
|
width: 600px;
|
|
231
255
|
}
|
|
256
|
+
.uiklu-w-\[var\(--radix-select-trigger-width\)\]{
|
|
257
|
+
width: var(--radix-select-trigger-width);
|
|
258
|
+
}
|
|
232
259
|
.uiklu-w-fit{
|
|
233
260
|
width: -moz-fit-content;
|
|
234
261
|
width: fit-content;
|
|
@@ -236,15 +263,39 @@ button,
|
|
|
236
263
|
.uiklu-w-full{
|
|
237
264
|
width: 100%;
|
|
238
265
|
}
|
|
266
|
+
.uiklu-min-w-\[150px\]{
|
|
267
|
+
min-width: 150px;
|
|
268
|
+
}
|
|
269
|
+
.uiklu-min-w-\[250px\]{
|
|
270
|
+
min-width: 250px;
|
|
271
|
+
}
|
|
272
|
+
.uiklu-min-w-\[350px\]{
|
|
273
|
+
min-width: 350px;
|
|
274
|
+
}
|
|
275
|
+
.uiklu-min-w-\[var\(--radix-select-trigger-width\)\]{
|
|
276
|
+
min-width: var(--radix-select-trigger-width);
|
|
277
|
+
}
|
|
239
278
|
.uiklu-max-w-\[600px\]{
|
|
240
279
|
max-width: 600px;
|
|
241
280
|
}
|
|
242
281
|
.uiklu-flex-shrink-0{
|
|
243
282
|
flex-shrink: 0;
|
|
244
283
|
}
|
|
284
|
+
.uiklu-shrink-0{
|
|
285
|
+
flex-shrink: 0;
|
|
286
|
+
}
|
|
287
|
+
.uiklu-translate-y-1{
|
|
288
|
+
--tw-translate-y: 0.25rem;
|
|
289
|
+
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));
|
|
290
|
+
}
|
|
245
291
|
.uiklu-cursor-pointer{
|
|
246
292
|
cursor: pointer;
|
|
247
293
|
}
|
|
294
|
+
.uiklu-select-none{
|
|
295
|
+
-webkit-user-select: none;
|
|
296
|
+
-moz-user-select: none;
|
|
297
|
+
user-select: none;
|
|
298
|
+
}
|
|
248
299
|
.uiklu-appearance-none{
|
|
249
300
|
-webkit-appearance: none;
|
|
250
301
|
-moz-appearance: none;
|
|
@@ -262,12 +313,18 @@ button,
|
|
|
262
313
|
.uiklu-justify-center{
|
|
263
314
|
justify-content: center;
|
|
264
315
|
}
|
|
316
|
+
.uiklu-justify-between{
|
|
317
|
+
justify-content: space-between;
|
|
318
|
+
}
|
|
265
319
|
.uiklu-gap-1{
|
|
266
320
|
gap: 0.25rem;
|
|
267
321
|
}
|
|
268
322
|
.uiklu-gap-1\.5{
|
|
269
323
|
gap: 0.375rem;
|
|
270
324
|
}
|
|
325
|
+
.uiklu-gap-10{
|
|
326
|
+
gap: 2.5rem;
|
|
327
|
+
}
|
|
271
328
|
.uiklu-gap-2{
|
|
272
329
|
gap: 0.5rem;
|
|
273
330
|
}
|
|
@@ -286,6 +343,11 @@ button,
|
|
|
286
343
|
.uiklu-overflow-hidden{
|
|
287
344
|
overflow: hidden;
|
|
288
345
|
}
|
|
346
|
+
.uiklu-truncate{
|
|
347
|
+
overflow: hidden;
|
|
348
|
+
text-overflow: ellipsis;
|
|
349
|
+
white-space: nowrap;
|
|
350
|
+
}
|
|
289
351
|
.uiklu-text-ellipsis{
|
|
290
352
|
text-overflow: ellipsis;
|
|
291
353
|
}
|
|
@@ -295,12 +357,21 @@ button,
|
|
|
295
357
|
.uiklu-rounded-2xl{
|
|
296
358
|
border-radius: 1rem;
|
|
297
359
|
}
|
|
360
|
+
.uiklu-rounded-\[20px\]{
|
|
361
|
+
border-radius: 20px;
|
|
362
|
+
}
|
|
298
363
|
.uiklu-rounded-\[48px\]{
|
|
299
364
|
border-radius: 48px;
|
|
300
365
|
}
|
|
301
366
|
.uiklu-rounded-\[50px\]{
|
|
302
367
|
border-radius: 50px;
|
|
303
368
|
}
|
|
369
|
+
.uiklu-rounded-full{
|
|
370
|
+
border-radius: 9999px;
|
|
371
|
+
}
|
|
372
|
+
.uiklu-rounded-none{
|
|
373
|
+
border-radius: 0px;
|
|
374
|
+
}
|
|
304
375
|
.uiklu-rounded-xl{
|
|
305
376
|
border-radius: 0.75rem;
|
|
306
377
|
}
|
|
@@ -313,8 +384,8 @@ button,
|
|
|
313
384
|
.uiklu-border-\[1px\]{
|
|
314
385
|
border-width: 1px;
|
|
315
386
|
}
|
|
316
|
-
.uiklu-border-\[
|
|
317
|
-
border-width:
|
|
387
|
+
.uiklu-border-\[2px\]{
|
|
388
|
+
border-width: 2px;
|
|
318
389
|
}
|
|
319
390
|
.uiklu-border-solid{
|
|
320
391
|
border-style: solid;
|
|
@@ -345,6 +416,10 @@ button,
|
|
|
345
416
|
--tw-border-opacity: 1;
|
|
346
417
|
border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
|
|
347
418
|
}
|
|
419
|
+
.uiklu-border-gray-700{
|
|
420
|
+
--tw-border-opacity: 1;
|
|
421
|
+
border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
|
|
422
|
+
}
|
|
348
423
|
.uiklu-border-outlinesecondary{
|
|
349
424
|
--tw-border-opacity: 1;
|
|
350
425
|
border-color: hsl(var(--uiklu-outlinesecondary) / var(--tw-border-opacity, 1));
|
|
@@ -356,10 +431,22 @@ button,
|
|
|
356
431
|
.uiklu-border-transparent{
|
|
357
432
|
border-color: transparent;
|
|
358
433
|
}
|
|
434
|
+
.uiklu-bg-\[\#050a0a\]{
|
|
435
|
+
--tw-bg-opacity: 1;
|
|
436
|
+
background-color: rgb(5 10 10 / var(--tw-bg-opacity, 1));
|
|
437
|
+
}
|
|
359
438
|
.uiklu-bg-background{
|
|
360
439
|
--tw-bg-opacity: 1;
|
|
361
440
|
background-color: hsl(var(--uiklu-background) / var(--tw-bg-opacity, 1));
|
|
362
441
|
}
|
|
442
|
+
.uiklu-bg-destructive{
|
|
443
|
+
--tw-bg-opacity: 1;
|
|
444
|
+
background-color: hsl(var(--uiklu-destructive) / var(--tw-bg-opacity, 1));
|
|
445
|
+
}
|
|
446
|
+
.uiklu-bg-gray-200{
|
|
447
|
+
--tw-bg-opacity: 1;
|
|
448
|
+
background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
|
|
449
|
+
}
|
|
363
450
|
.uiklu-bg-green-100{
|
|
364
451
|
--tw-bg-opacity: 1;
|
|
365
452
|
background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
|
|
@@ -405,9 +492,18 @@ button,
|
|
|
405
492
|
.uiklu-p-0{
|
|
406
493
|
padding: 0px;
|
|
407
494
|
}
|
|
495
|
+
.uiklu-p-1{
|
|
496
|
+
padding: 0.25rem;
|
|
497
|
+
}
|
|
408
498
|
.uiklu-p-10{
|
|
409
499
|
padding: 2.5rem;
|
|
410
500
|
}
|
|
501
|
+
.uiklu-p-20{
|
|
502
|
+
padding: 5rem;
|
|
503
|
+
}
|
|
504
|
+
.uiklu-p-4{
|
|
505
|
+
padding: 1rem;
|
|
506
|
+
}
|
|
411
507
|
.uiklu-p-6{
|
|
412
508
|
padding: 1.5rem;
|
|
413
509
|
}
|
|
@@ -418,6 +514,10 @@ button,
|
|
|
418
514
|
padding-left: 0.5rem;
|
|
419
515
|
padding-right: 0.5rem;
|
|
420
516
|
}
|
|
517
|
+
.uiklu-px-3{
|
|
518
|
+
padding-left: 0.75rem;
|
|
519
|
+
padding-right: 0.75rem;
|
|
520
|
+
}
|
|
421
521
|
.uiklu-px-4{
|
|
422
522
|
padding-left: 1rem;
|
|
423
523
|
padding-right: 1rem;
|
|
@@ -446,12 +546,31 @@ button,
|
|
|
446
546
|
padding-top: 0.25rem;
|
|
447
547
|
padding-bottom: 0.25rem;
|
|
448
548
|
}
|
|
549
|
+
.uiklu-py-2\.5{
|
|
550
|
+
padding-top: 0.625rem;
|
|
551
|
+
padding-bottom: 0.625rem;
|
|
552
|
+
}
|
|
553
|
+
.uiklu-pl-10{
|
|
554
|
+
padding-left: 2.5rem;
|
|
555
|
+
}
|
|
449
556
|
.uiklu-pr-14{
|
|
450
557
|
padding-right: 3.5rem;
|
|
451
558
|
}
|
|
559
|
+
.uiklu-pr-4{
|
|
560
|
+
padding-right: 1rem;
|
|
561
|
+
}
|
|
562
|
+
.uiklu-text-left{
|
|
563
|
+
text-align: left;
|
|
564
|
+
}
|
|
452
565
|
.uiklu-text-center{
|
|
453
566
|
text-align: center;
|
|
454
567
|
}
|
|
568
|
+
.uiklu-text-right{
|
|
569
|
+
text-align: right;
|
|
570
|
+
}
|
|
571
|
+
.uiklu-text-justify{
|
|
572
|
+
text-align: justify;
|
|
573
|
+
}
|
|
455
574
|
.uiklu-font-mono{
|
|
456
575
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
457
576
|
}
|
|
@@ -476,6 +595,15 @@ button,
|
|
|
476
595
|
.uiklu-text-\[18px\]{
|
|
477
596
|
font-size: 18px;
|
|
478
597
|
}
|
|
598
|
+
.uiklu-text-\[24px\]{
|
|
599
|
+
font-size: 24px;
|
|
600
|
+
}
|
|
601
|
+
.uiklu-text-\[32px\]{
|
|
602
|
+
font-size: 32px;
|
|
603
|
+
}
|
|
604
|
+
.uiklu-text-\[40px\]{
|
|
605
|
+
font-size: 40px;
|
|
606
|
+
}
|
|
479
607
|
.uiklu-text-base{
|
|
480
608
|
font-size: 1rem;
|
|
481
609
|
line-height: 1.5rem;
|
|
@@ -496,21 +624,44 @@ button,
|
|
|
496
624
|
font-size: 0.75rem;
|
|
497
625
|
line-height: 1rem;
|
|
498
626
|
}
|
|
627
|
+
.uiklu-font-\[600\]{
|
|
628
|
+
font-weight: 600;
|
|
629
|
+
}
|
|
630
|
+
.uiklu-font-\[700\]{
|
|
631
|
+
font-weight: 700;
|
|
632
|
+
}
|
|
499
633
|
.uiklu-font-bold{
|
|
500
634
|
font-weight: 700;
|
|
501
635
|
}
|
|
502
636
|
.uiklu-font-medium{
|
|
503
637
|
font-weight: 500;
|
|
504
638
|
}
|
|
639
|
+
.uiklu-font-normal{
|
|
640
|
+
font-weight: 400;
|
|
641
|
+
}
|
|
505
642
|
.uiklu-uppercase{
|
|
506
643
|
text-transform: uppercase;
|
|
507
644
|
}
|
|
508
645
|
.uiklu-leading-none{
|
|
509
646
|
line-height: 1;
|
|
510
647
|
}
|
|
648
|
+
.uiklu-leading-normal{
|
|
649
|
+
line-height: 1.5;
|
|
650
|
+
}
|
|
511
651
|
.uiklu-leading-tight{
|
|
512
652
|
line-height: 1.25;
|
|
513
653
|
}
|
|
654
|
+
.uiklu-tracking-wider{
|
|
655
|
+
letter-spacing: 0.05em;
|
|
656
|
+
}
|
|
657
|
+
.uiklu-text-\[\#F99B1C\]{
|
|
658
|
+
--tw-text-opacity: 1;
|
|
659
|
+
color: rgb(249 155 28 / var(--tw-text-opacity, 1));
|
|
660
|
+
}
|
|
661
|
+
.uiklu-text-baseblack{
|
|
662
|
+
--tw-text-opacity: 1;
|
|
663
|
+
color: hsl(var(--uiklu-baseblack) / var(--tw-text-opacity, 1));
|
|
664
|
+
}
|
|
514
665
|
.uiklu-text-basewhite{
|
|
515
666
|
--tw-text-opacity: 1;
|
|
516
667
|
color: hsl(var(--uiklu-basewhite) / var(--tw-text-opacity, 1));
|
|
@@ -527,6 +678,10 @@ button,
|
|
|
527
678
|
--tw-text-opacity: 1;
|
|
528
679
|
color: rgb(107 114 128 / var(--tw-text-opacity, 1));
|
|
529
680
|
}
|
|
681
|
+
.uiklu-text-gray-600{
|
|
682
|
+
--tw-text-opacity: 1;
|
|
683
|
+
color: rgb(75 85 99 / var(--tw-text-opacity, 1));
|
|
684
|
+
}
|
|
530
685
|
.uiklu-text-green-700{
|
|
531
686
|
--tw-text-opacity: 1;
|
|
532
687
|
color: rgb(21 128 61 / var(--tw-text-opacity, 1));
|
|
@@ -546,13 +701,26 @@ button,
|
|
|
546
701
|
--tw-text-opacity: 1;
|
|
547
702
|
color: hsl(var(--uiklu-primary-foreground) / var(--tw-text-opacity, 1));
|
|
548
703
|
}
|
|
704
|
+
.uiklu-text-secondary{
|
|
705
|
+
--tw-text-opacity: 1;
|
|
706
|
+
color: hsl(var(--uiklu-secondary) / var(--tw-text-opacity, 1));
|
|
707
|
+
}
|
|
549
708
|
.uiklu-text-white{
|
|
550
709
|
--tw-text-opacity: 1;
|
|
551
710
|
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
|
552
711
|
}
|
|
712
|
+
.uiklu-antialiased{
|
|
713
|
+
-webkit-font-smoothing: antialiased;
|
|
714
|
+
-moz-osx-font-smoothing: grayscale;
|
|
715
|
+
}
|
|
553
716
|
.uiklu-opacity-70{
|
|
554
717
|
opacity: 0.7;
|
|
555
718
|
}
|
|
719
|
+
.uiklu-shadow-md{
|
|
720
|
+
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
721
|
+
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
|
722
|
+
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
723
|
+
}
|
|
556
724
|
.uiklu-outline-none{
|
|
557
725
|
outline: 2px solid transparent;
|
|
558
726
|
outline-offset: 2px;
|
|
@@ -567,6 +735,10 @@ button,
|
|
|
567
735
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
568
736
|
transition-duration: 150ms;
|
|
569
737
|
}
|
|
738
|
+
.hover\:uiklu-bg-gray-300:hover{
|
|
739
|
+
--tw-bg-opacity: 1;
|
|
740
|
+
background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
|
|
741
|
+
}
|
|
570
742
|
.hover\:uiklu-bg-outlinesecondary\/10:hover{
|
|
571
743
|
background-color: hsl(var(--uiklu-outlinesecondary) / 0.1);
|
|
572
744
|
}
|
|
@@ -579,6 +751,9 @@ button,
|
|
|
579
751
|
.hover\:uiklu-opacity-100:hover{
|
|
580
752
|
opacity: 1;
|
|
581
753
|
}
|
|
754
|
+
.hover\:uiklu-opacity-80:hover{
|
|
755
|
+
opacity: 0.8;
|
|
756
|
+
}
|
|
582
757
|
.hover\:uiklu-opacity-90:hover{
|
|
583
758
|
opacity: 0.9;
|
|
584
759
|
}
|
|
@@ -593,6 +768,13 @@ button,
|
|
|
593
768
|
--tw-border-opacity: 1;
|
|
594
769
|
border-color: hsl(var(--uiklu-destructive) / var(--tw-border-opacity, 1));
|
|
595
770
|
}
|
|
771
|
+
.focus\:uiklu-bg-primary\/10:focus{
|
|
772
|
+
background-color: hsl(var(--uiklu-primary) / 0.1);
|
|
773
|
+
}
|
|
774
|
+
.focus\:uiklu-text-primary:focus{
|
|
775
|
+
--tw-text-opacity: 1;
|
|
776
|
+
color: hsl(var(--uiklu-primary) / var(--tw-text-opacity, 1));
|
|
777
|
+
}
|
|
596
778
|
.active\:uiklu-opacity-70:active{
|
|
597
779
|
opacity: 0.7;
|
|
598
780
|
}
|
|
@@ -602,4 +784,7 @@ button,
|
|
|
602
784
|
.disabled\:uiklu-opacity-50:disabled{
|
|
603
785
|
opacity: 0.5;
|
|
604
786
|
}
|
|
787
|
+
.data-\[placeholder\]\:uiklu-opacity-40[data-placeholder]{
|
|
788
|
+
opacity: 0.4;
|
|
789
|
+
}
|
|
605
790
|
|
package/dist/index.js
CHANGED
|
@@ -159,8 +159,8 @@ var buttonVariants = cva(
|
|
|
159
159
|
sm: "uiklu-h-[40px] uiklu-w-[150px] uiklu-px-4 uiklu-text-sm uiklu-border",
|
|
160
160
|
md: "uiklu-h-[40px] uiklu-w-[250px] uiklu-px-6 uiklu-text-base uiklu-border-2",
|
|
161
161
|
lg: "uiklu-h-[50px] uiklu-w-[350px] uiklu-px-[32px] uiklu-text-base uiklu-border-2",
|
|
162
|
-
xl: "uiklu-h-[60px] uiklu-w-[450px] uiklu-px-[40px] uiklu-text-lg uiklu-border-[
|
|
163
|
-
full: "uiklu-w-full uiklu-h-[50px] uiklu-max-h-[60px] uiklu-px-[48px] uiklu-text-lg uiklu-font-bold uiklu-border-[
|
|
162
|
+
xl: "uiklu-h-[60px] uiklu-w-[450px] uiklu-px-[40px] uiklu-text-lg uiklu-border-[2px]",
|
|
163
|
+
full: "uiklu-w-full uiklu-h-[50px] uiklu-max-h-[60px] uiklu-px-[48px] uiklu-text-lg uiklu-font-bold uiklu-border-[2px]"
|
|
164
164
|
}
|
|
165
165
|
// ...
|
|
166
166
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/input.tsx","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/backButton.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cn } from \"../../lib/utils.js\"\n\ntype InputSize = \"sm\" | \"md\" | \"lg\" | \"full\"\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n size?: InputSize\n error?: string\n}\n\nconst inputSizes: Record<InputSize, string> = {\n sm: \"uiklu-h-[40px] uiklu-w-[150px] uiklu-px-4 uiklu-text-sm\",\n md: \"uiklu-h-[40px] uiklu-w-[250px] uiklu-px-5 uiklu-text-md\",\n lg: \"uiklu-h-[50px] uiklu-w-[350px] uiklu-px-5 uiklu-text-lg\",\n full: \"uiklu-h-[50px] uiklu-w-full uiklu-px-5 uiklu-text-lg\",\n}\nconst iconSizes = {\n sm: { w: \"18\", h: \"14\" },\n md: { w: \"20\", h: \"16\" },\n lg: { w: \"22.5\", h: \"18\" },\n full: { w: \"22.5\", h: \"18\" },\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", size = \"lg\", error, ...props }, ref) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const isPassword = type === \"password\"\n const inputType = isPassword && showPassword ? \"text\" : type\n\n return (\n <div className={cn(\n \"uiklu-flex uiklu-flex-col uiklu-gap-1.5\",\n size === \"full\" ? \"uiklu-w-full\" : \"uiklu-w-fit\"\n )}>\n <div className={cn(\"uiklu-relative\", size === \"full\" ? \"uiklu-w-full\" : \"uiklu-w-fit\")}>\n <input\n {...props}\n ref={ref}\n type={inputType}\n className={cn(\n \"uiklu-flex uiklu-box-border uiklu-appearance-none uiklu-outline-none uiklu-transition-all\",\n \"uiklu-rounded-[50px] uiklu-border-[1px] uiklu-border-solid uiklu-bg-background uiklu-font-sans\",\n \"uiklu-overflow-hidden uiklu-text-ellipsis uiklu-placeholder:uiklu-opacity-40\",\n \"disabled:uiklu-cursor-not-allowed disabled:uiklu-opacity-50\",\n\n !error\n ? [\n \"uiklu-border-border uiklu-text-inputtext\",\n \"focus:uiklu-border-baseblack focus:uiklu-border-[1px]\"\n ]\n : [\n \"uiklu-border-destructive uiklu-text-destructive\",\n \"focus:uiklu-border-destructive focus:uiklu-border-[1px]\"\n ],\n\n isPassword && \"uiklu-pr-14\",\n inputSizes[size],\n className\n )}\n />\n {isPassword && (\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"uiklu-absolute uiklu-right-6 uiklu-top-0 uiklu-h-full uiklu-flex uiklu-items-center uiklu-justify-center uiklu-bg-transparent uiklu-border-none uiklu-p-0 uiklu-cursor-pointer uiklu-z-10\"\n >\n <div className=\"uiklu-flex uiklu-items-center uiklu-justify-center uiklu-opacity-70 hover:uiklu-opacity-100 uiklu-transition-opacity\">\n {showPassword ? (\n <svg\n width={iconSizes[size].w}\n height={iconSizes[size].h}\n viewBox=\"0 3 24 18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={!error ? \"uiklu-stroke-inputtext\" : \"uiklu-stroke-destructive\"}\n >\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n ) : (\n <svg\n width={iconSizes[size].w}\n height={iconSizes[size].h}\n viewBox=\"0 3 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.05499 3.24557C4.98913 3.17132 4.90918 3.11089 4.81979 3.06777C4.7304 3.02465 4.63334 2.9997 4.53423 2.99437C4.43513 2.98904 4.33595 3.00343 4.24245 3.03671C4.14895 3.06999 4.06298 3.12150 3.98953 3.18825C3.91608 3.255 3.85661 3.33566 3.81457 3.42556C3.77252 3.51546 3.74874 3.61282 3.7446 3.71198C3.74045 3.81114 3.75603 3.91014 3.79043 4.00323C3.82483 4.09633 3.87737 4.18167 3.94499 4.25432L5.74874 6.23906C2.34374 8.32869 0.879366 11.5499 0.814679 11.6962C0.772035 11.7921 0.75 11.8959 0.75 12.0009C0.75 12.1058 0.772035 12.2096 0.814679 12.3056C0.847491 12.3796 1.64155 14.1403 3.40687 15.9056C5.75905 18.2568 8.72999 19.4999 12 19.4999C13.6806 19.5095 15.3442 19.1635 16.8816 18.4846L18.9441 20.7543C19.0099 20.8286 19.0899 20.8890 19.1793 20.9321C19.2686 20.9752 19.3657 21.0002 19.4648 21.0055C19.5639 21.0108 19.6631 20.9965 19.7566 20.9632C19.8501 20.9299 19.9361 20.8784 20.0095 20.8116C20.083 20.7449 20.1424 20.6642 20.1845 20.5743C20.2265 20.4844 20.2503 20.3871 20.2544 20.2879C20.2586 20.1887 20.243 20.0897 20.2086 19.9966C20.1742 19.9036 20.1217 19.8182 20.0541 19.7456L5.05499 3.24557ZM9.49218 10.3556L13.3987 14.6540C12.8105 14.9635 12.136 15.0688 11.4814 14.9535C10.8268 14.8381 10.229 14.5086 9.78189 14.0167C9.33481 13.5248 9.06377 12.8983 9.01134 12.2356C8.9589 11.573 9.12803 10.9117 9.49218 10.3556ZM12 17.9999C9.11437 17.9999 6.59343 16.9509 4.50655 14.8828C3.64997 14.0315 2.92145 13.0604 2.34374 11.9999C2.78343 11.1759 4.18687 8.86963 6.7828 7.37057L8.4703 9.22213C7.81699 10.0589 7.48052 11.0996 7.52036 12.1604C7.56021 13.2212 7.97379 14.2338 8.68802 15.0192C9.40225 15.8045 10.3711 16.3121 11.4234 16.4522C12.4757 16.5923 13.5436 16.3558 14.4384 15.7846L15.8194 17.3034C14.6006 17.771 13.3053 18.0072 12 17.9999ZM12.5625 9.05338C12.3671 9.01608 12.1944 8.90268 12.0826 8.73812C11.9708 8.57355 11.9289 8.37131 11.9662 8.17588C12.0035 7.98045 12.1169 7.80784 12.2815 7.69602C12.4461 7.58420 12.6483 7.54233 12.8437 7.57963C13.7996 7.76494 14.67 8.25430 15.325 8.97471C15.98 9.69512 16.3846 10.608 16.4784 11.5771C16.4969 11.7752 16.436 11.9725 16.3091 12.1256C16.1822 12.2787 15.9996 12.3752 15.8016 12.3937C15.7781 12.3951 15.7547 12.3951 15.7312 12.3937C15.5438 12.3945 15.3628 12.3251 15.224 12.1991C15.0852 12.0731 14.9986 11.8997 14.9812 11.7131C14.9181 11.0684 14.6486 10.4614 14.2128 9.98220C13.7771 9.50301 13.1982 9.17725 12.5625 9.05338ZM23.1825 12.3056C23.1431 12.3937 22.1934 14.4965 20.055 16.4118C19.9819 16.4793 19.8961 16.5317 19.8027 16.5657C19.7092 16.5998 19.6099 16.6149 19.5105 16.6102C19.4111 16.6055 19.3136 16.5810 19.2238 16.5383C19.1339 16.4956 19.0535 16.4354 18.9871 16.3612C18.9208 16.2871 18.8698 16.2005 18.8373 16.1065C18.8047 16.0125 18.7912 15.9129 18.7975 15.8136C18.8037 15.7143 18.8297 15.6173 18.8739 15.5281C18.918 15.4390 18.9795 15.3595 19.0547 15.2943C20.1038 14.3518 20.9851 13.2378 21.6609 11.9999C21.0819 10.9385 20.3518 9.96677 19.4934 9.11525C17.4066 7.049 14.8856 5.99994 12 5.99994C11.392 5.99920 10.7849 6.04843 10.185 6.14713C10.0874 6.16438 9.98741 6.16213 9.89073 6.14051C9.79404 6.11889 9.70259 6.07833 9.62167 6.02117C9.54074 5.96401 9.47195 5.89138 9.41925 5.80747C9.36656 5.72357 9.33101 5.63006 9.31466 5.53234C9.29832 5.43463 9.30149 5.33464 9.32401 5.23815C9.34652 5.14167 9.38793 5.05060 9.44584 4.97021C9.50375 4.88982 9.57702 4.82170 9.6614 4.76979C9.74579 4.71787 9.83963 4.68320 9.93749 4.66775C10.6192 4.55519 11.309 4.49906 12 4.49994C15.27 4.49994 18.2409 5.74307 20.5931 8.09525C22.3584 9.86057 23.1525 11.6221 23.1853 11.6962C23.2279 11.7921 23.25 11.8959 23.25 12.0009C23.25 12.1058 23.2279 12.2096 23.1853 12.3056H23.1825Z\"\n fill=\"currentColor\"\n className={!error ? \"uiklu-fill-inputtext\" : \"uiklu-fill-destructive\"}\n />\n </svg>\n )}\n </div>\n </button>\n )}\n </div>\n\n {error && (\n <p className=\"uiklu-mt-1 uiklu-px-4 uiklu-text-[12px] uiklu-leading-tight uiklu-text-destructive uiklu-font-sans uiklu-m-0\">\n {error}\n </p>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = \"Input\"\n\nexport { Input }","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"uiklu-box-border uiklu-flex uiklu-items-center uiklu-justify-center uiklu-border-2 uiklu-font-medium uiklu-transition-all uiklu-outline-none disabled:uiklu-opacity-50\", {\n variants: {\n variant: {\n primary: `\n uiklu-bg-primary\n uiklu-text-primary-foreground\n hover:uiklu-bg-primary/90\n uiklu-rounded-[48px]\n uiklu-border-transparent\n `,\n secondary: `\n uiklu-bg-gradient-to-r\n uiklu-from-[#FBA022]\n uiklu-to-[#157C70]\n uiklu-text-white\n hover:uiklu-opacity-90\n uiklu-rounded-[48px]\n uiklu-border-transparent\n `,\n outline: \"uiklu-border-border uiklu-bg-transparent hover:uiklu-bg-muted uiklu-rounded-[48px]\",\n outlinePrimary: `\n uiklu-bg-transparent \n uiklu-border-2 \n uiklu-border-primary \n uiklu-text-primary \n uiklu-rounded-[48px]\n `,\n outlineSecondary: `\n uiklu-bg-transparent\n uiklu-border-2\n uiklu-border-outlinesecondary\n uiklu-text-outlinesecondary\n uiklu-rounded-[48px]\n hover:uiklu-bg-outlinesecondary/10\n `,\n outlineWhite: `\n uiklu-bg-transparent \n uiklu-border-2 \n uiklu-border-basewhite \n uiklu-text-basewhite \n uiklu-rounded-[48px]\n `,\n },\n size: {\n sm: \"uiklu-h-[40px] uiklu-w-[150px] uiklu-px-4 uiklu-text-sm uiklu-border\",\n md: \"uiklu-h-[40px] uiklu-w-[250px] uiklu-px-6 uiklu-text-base uiklu-border-2\",\n lg: \"uiklu-h-[50px] uiklu-w-[350px] uiklu-px-[32px] uiklu-text-base uiklu-border-2\",\n xl: \"uiklu-h-[60px] uiklu-w-[450px] uiklu-px-[40px] uiklu-text-lg uiklu-border-[3px]\",\n full: \"uiklu-w-full uiklu-h-[50px] uiklu-max-h-[60px] uiklu-px-[48px] uiklu-text-lg uiklu-font-bold uiklu-border-[3px]\",\n },\n// ...\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n}\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }","import * as React from \"react\"\nimport { cn } from \"../../lib/utils.js\"\n\ntype BackButtonSize = \"ch\" | \"md\" | \"lg\"\n\ninterface BackButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n size?: BackButtonSize\n}\n\nconst buttonSizes: Record<BackButtonSize, string> = {\n ch: \"uiklu-text-[14px] uiklu-gap-1\",\n md: \"uiklu-text-[16px] uiklu-gap-2\",\n lg: \"uiklu-text-[18px] uiklu-gap-2.5\",\n}\n\nconst svgSizes: Record<BackButtonSize, string> = {\n ch: \"uiklu-w-4 uiklu-h-4\",\n md: \"uiklu-w-5 uiklu-h-5\",\n lg: \"uiklu-w-6 uiklu-h-6\",\n}\n\n// Cambiamos la declaración para que el parser no se confunda\nconst BackButtonRender: React.ForwardRefRenderFunction<HTMLButtonElement, BackButtonProps> = (\n props,\n ref\n) => {\n const { className, size = \"lg\", children = \"Regresar\", ...rest } = props;\n\n return (\n <button\n ref={ref}\n className={cn(\n \"uiklu-inline-flex uiklu-items-center uiklu-w-fit uiklu-border-none uiklu-bg-transparent uiklu-font-sans uiklu-font-medium uiklu-text-basewhite uiklu-text-center uiklu-leading-none uiklu-cursor-pointer hover:uiklu-underline uiklu-transition-all uiklu-outline-none active:uiklu-opacity-70 disabled:uiklu-opacity-50 disabled:uiklu-cursor-not-allowed\",\n buttonSizes[size],\n className\n )}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n className={cn(\"uiklu-flex-shrink-0 uiklu-block\", svgSizes[size])}\n style={{ width: size === 'ch' ? '16px' : size === 'md' ? '20px' : '24px', height: 'auto' }}\n >\n <path\n d=\"M21.0001 11.9999C21.0001 12.1988 20.9211 12.3896 20.7804 12.5303C20.6398 12.6709 20.449 12.7499 20.2501 12.7499H5.56041L11.0307 18.2193C11.1004 18.289 11.1557 18.3717 11.1934 18.4628C11.2311 18.5538 11.2505 18.6514 11.2505 18.7499C11.2505 18.8485 11.2311 18.9461 11.1934 19.0371C11.1557 19.1281 11.1004 19.2109 11.0307 19.2806C10.961 19.3502 10.8783 19.4055 10.7873 19.4432C10.6962 19.4809 10.5986 19.5003 10.5001 19.5003C10.4016 19.5003 10.304 19.4809 10.2129 19.4432C10.1219 19.4055 10.0392 19.3502 9.96948 19.2806L3.21948 12.5306C3.14974 12.4609 3.09443 12.3782 3.05668 12.2871C3.01894 12.1961 2.99951 12.0985 2.99951 11.9999C2.99951 11.9014 3.01894 11.8038 3.05668 11.7127C3.09443 11.6217 3.14974 11.539 3.21948 11.4693L9.96948 4.7193C10.1102 4.57857 10.3011 4.49951 10.5001 4.49951C10.6991 4.49951 10.89 4.57857 11.0307 4.7193C11.1715 4.86003 11.2505 5.05091 11.2505 5.24993C11.2505 5.44895 11.1715 5.63982 11.0307 5.78055L5.56041 11.2499H20.2501C20.449 11.2499 20.6398 11.3289 20.7804 11.4696C20.9211 11.6103 21.0001 11.801 21.0001 11.9999Z\"\n fill=\"currentColor\"\n />\n </svg>\n <span>{children}</span>\n </button>\n );\n};\n\nexport const BackButton = React.forwardRef(BackButtonRender);\n\nBackButton.displayName = \"BackButton\""],"mappings":"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","names":["jsx","React","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/input.tsx","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/backButton.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cn } from \"../../lib/utils.js\"\n\ntype InputSize = \"sm\" | \"md\" | \"lg\" | \"full\"\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n size?: InputSize\n error?: string\n}\n\nconst inputSizes: Record<InputSize, string> = {\n sm: \"uiklu-h-[40px] uiklu-w-[150px] uiklu-px-4 uiklu-text-sm\",\n md: \"uiklu-h-[40px] uiklu-w-[250px] uiklu-px-5 uiklu-text-md\",\n lg: \"uiklu-h-[50px] uiklu-w-[350px] uiklu-px-5 uiklu-text-lg\",\n full: \"uiklu-h-[50px] uiklu-w-full uiklu-px-5 uiklu-text-lg\",\n}\nconst iconSizes = {\n sm: { w: \"18\", h: \"14\" },\n md: { w: \"20\", h: \"16\" },\n lg: { w: \"22.5\", h: \"18\" },\n full: { w: \"22.5\", h: \"18\" },\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", size = \"lg\", error, ...props }, ref) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const isPassword = type === \"password\"\n const inputType = isPassword && showPassword ? \"text\" : type\n\n return (\n <div className={cn(\n \"uiklu-flex uiklu-flex-col uiklu-gap-1.5\",\n size === \"full\" ? \"uiklu-w-full\" : \"uiklu-w-fit\"\n )}>\n <div className={cn(\"uiklu-relative\", size === \"full\" ? \"uiklu-w-full\" : \"uiklu-w-fit\")}>\n <input\n {...props}\n ref={ref}\n type={inputType}\n className={cn(\n \"uiklu-flex uiklu-box-border uiklu-appearance-none uiklu-outline-none uiklu-transition-all\",\n \"uiklu-rounded-[50px] uiklu-border-[1px] uiklu-border-solid uiklu-bg-background uiklu-font-sans\",\n \"uiklu-overflow-hidden uiklu-text-ellipsis uiklu-placeholder:uiklu-opacity-40\",\n \"disabled:uiklu-cursor-not-allowed disabled:uiklu-opacity-50\",\n\n !error\n ? [\n \"uiklu-border-border uiklu-text-inputtext\",\n \"focus:uiklu-border-baseblack focus:uiklu-border-[1px]\"\n ]\n : [\n \"uiklu-border-destructive uiklu-text-destructive\",\n \"focus:uiklu-border-destructive focus:uiklu-border-[1px]\"\n ],\n\n isPassword && \"uiklu-pr-14\",\n inputSizes[size],\n className\n )}\n />\n {isPassword && (\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"uiklu-absolute uiklu-right-6 uiklu-top-0 uiklu-h-full uiklu-flex uiklu-items-center uiklu-justify-center uiklu-bg-transparent uiklu-border-none uiklu-p-0 uiklu-cursor-pointer uiklu-z-10\"\n >\n <div className=\"uiklu-flex uiklu-items-center uiklu-justify-center uiklu-opacity-70 hover:uiklu-opacity-100 uiklu-transition-opacity\">\n {showPassword ? (\n <svg\n width={iconSizes[size].w}\n height={iconSizes[size].h}\n viewBox=\"0 3 24 18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={!error ? \"uiklu-stroke-inputtext\" : \"uiklu-stroke-destructive\"}\n >\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n ) : (\n <svg\n width={iconSizes[size].w}\n height={iconSizes[size].h}\n viewBox=\"0 3 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.05499 3.24557C4.98913 3.17132 4.90918 3.11089 4.81979 3.06777C4.7304 3.02465 4.63334 2.9997 4.53423 2.99437C4.43513 2.98904 4.33595 3.00343 4.24245 3.03671C4.14895 3.06999 4.06298 3.12150 3.98953 3.18825C3.91608 3.255 3.85661 3.33566 3.81457 3.42556C3.77252 3.51546 3.74874 3.61282 3.7446 3.71198C3.74045 3.81114 3.75603 3.91014 3.79043 4.00323C3.82483 4.09633 3.87737 4.18167 3.94499 4.25432L5.74874 6.23906C2.34374 8.32869 0.879366 11.5499 0.814679 11.6962C0.772035 11.7921 0.75 11.8959 0.75 12.0009C0.75 12.1058 0.772035 12.2096 0.814679 12.3056C0.847491 12.3796 1.64155 14.1403 3.40687 15.9056C5.75905 18.2568 8.72999 19.4999 12 19.4999C13.6806 19.5095 15.3442 19.1635 16.8816 18.4846L18.9441 20.7543C19.0099 20.8286 19.0899 20.8890 19.1793 20.9321C19.2686 20.9752 19.3657 21.0002 19.4648 21.0055C19.5639 21.0108 19.6631 20.9965 19.7566 20.9632C19.8501 20.9299 19.9361 20.8784 20.0095 20.8116C20.083 20.7449 20.1424 20.6642 20.1845 20.5743C20.2265 20.4844 20.2503 20.3871 20.2544 20.2879C20.2586 20.1887 20.243 20.0897 20.2086 19.9966C20.1742 19.9036 20.1217 19.8182 20.0541 19.7456L5.05499 3.24557ZM9.49218 10.3556L13.3987 14.6540C12.8105 14.9635 12.136 15.0688 11.4814 14.9535C10.8268 14.8381 10.229 14.5086 9.78189 14.0167C9.33481 13.5248 9.06377 12.8983 9.01134 12.2356C8.9589 11.573 9.12803 10.9117 9.49218 10.3556ZM12 17.9999C9.11437 17.9999 6.59343 16.9509 4.50655 14.8828C3.64997 14.0315 2.92145 13.0604 2.34374 11.9999C2.78343 11.1759 4.18687 8.86963 6.7828 7.37057L8.4703 9.22213C7.81699 10.0589 7.48052 11.0996 7.52036 12.1604C7.56021 13.2212 7.97379 14.2338 8.68802 15.0192C9.40225 15.8045 10.3711 16.3121 11.4234 16.4522C12.4757 16.5923 13.5436 16.3558 14.4384 15.7846L15.8194 17.3034C14.6006 17.771 13.3053 18.0072 12 17.9999ZM12.5625 9.05338C12.3671 9.01608 12.1944 8.90268 12.0826 8.73812C11.9708 8.57355 11.9289 8.37131 11.9662 8.17588C12.0035 7.98045 12.1169 7.80784 12.2815 7.69602C12.4461 7.58420 12.6483 7.54233 12.8437 7.57963C13.7996 7.76494 14.67 8.25430 15.325 8.97471C15.98 9.69512 16.3846 10.608 16.4784 11.5771C16.4969 11.7752 16.436 11.9725 16.3091 12.1256C16.1822 12.2787 15.9996 12.3752 15.8016 12.3937C15.7781 12.3951 15.7547 12.3951 15.7312 12.3937C15.5438 12.3945 15.3628 12.3251 15.224 12.1991C15.0852 12.0731 14.9986 11.8997 14.9812 11.7131C14.9181 11.0684 14.6486 10.4614 14.2128 9.98220C13.7771 9.50301 13.1982 9.17725 12.5625 9.05338ZM23.1825 12.3056C23.1431 12.3937 22.1934 14.4965 20.055 16.4118C19.9819 16.4793 19.8961 16.5317 19.8027 16.5657C19.7092 16.5998 19.6099 16.6149 19.5105 16.6102C19.4111 16.6055 19.3136 16.5810 19.2238 16.5383C19.1339 16.4956 19.0535 16.4354 18.9871 16.3612C18.9208 16.2871 18.8698 16.2005 18.8373 16.1065C18.8047 16.0125 18.7912 15.9129 18.7975 15.8136C18.8037 15.7143 18.8297 15.6173 18.8739 15.5281C18.918 15.4390 18.9795 15.3595 19.0547 15.2943C20.1038 14.3518 20.9851 13.2378 21.6609 11.9999C21.0819 10.9385 20.3518 9.96677 19.4934 9.11525C17.4066 7.049 14.8856 5.99994 12 5.99994C11.392 5.99920 10.7849 6.04843 10.185 6.14713C10.0874 6.16438 9.98741 6.16213 9.89073 6.14051C9.79404 6.11889 9.70259 6.07833 9.62167 6.02117C9.54074 5.96401 9.47195 5.89138 9.41925 5.80747C9.36656 5.72357 9.33101 5.63006 9.31466 5.53234C9.29832 5.43463 9.30149 5.33464 9.32401 5.23815C9.34652 5.14167 9.38793 5.05060 9.44584 4.97021C9.50375 4.88982 9.57702 4.82170 9.6614 4.76979C9.74579 4.71787 9.83963 4.68320 9.93749 4.66775C10.6192 4.55519 11.309 4.49906 12 4.49994C15.27 4.49994 18.2409 5.74307 20.5931 8.09525C22.3584 9.86057 23.1525 11.6221 23.1853 11.6962C23.2279 11.7921 23.25 11.8959 23.25 12.0009C23.25 12.1058 23.2279 12.2096 23.1853 12.3056H23.1825Z\"\n fill=\"currentColor\"\n className={!error ? \"uiklu-fill-inputtext\" : \"uiklu-fill-destructive\"}\n />\n </svg>\n )}\n </div>\n </button>\n )}\n </div>\n\n {error && (\n <p className=\"uiklu-mt-1 uiklu-px-4 uiklu-text-[12px] uiklu-leading-tight uiklu-text-destructive uiklu-font-sans uiklu-m-0\">\n {error}\n </p>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = \"Input\"\n\nexport { Input }","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"uiklu-box-border uiklu-flex uiklu-items-center uiklu-justify-center uiklu-border-2 uiklu-font-medium uiklu-transition-all uiklu-outline-none disabled:uiklu-opacity-50\", {\n variants: {\n variant: {\n primary: `\n uiklu-bg-primary\n uiklu-text-primary-foreground\n hover:uiklu-bg-primary/90\n uiklu-rounded-[48px]\n uiklu-border-transparent\n `,\n secondary: `\n uiklu-bg-gradient-to-r\n uiklu-from-[#FBA022]\n uiklu-to-[#157C70]\n uiklu-text-white\n hover:uiklu-opacity-90\n uiklu-rounded-[48px]\n uiklu-border-transparent\n `,\n outline: \"uiklu-border-border uiklu-bg-transparent hover:uiklu-bg-muted uiklu-rounded-[48px]\",\n outlinePrimary: `\n uiklu-bg-transparent \n uiklu-border-2 \n uiklu-border-primary \n uiklu-text-primary \n uiklu-rounded-[48px]\n `,\n outlineSecondary: `\n uiklu-bg-transparent\n uiklu-border-2\n uiklu-border-outlinesecondary\n uiklu-text-outlinesecondary\n uiklu-rounded-[48px]\n hover:uiklu-bg-outlinesecondary/10\n `,\n outlineWhite: `\n uiklu-bg-transparent \n uiklu-border-2 \n uiklu-border-basewhite \n uiklu-text-basewhite \n uiklu-rounded-[48px]\n `,\n },\n size: {\n sm: \"uiklu-h-[40px] uiklu-w-[150px] uiklu-px-4 uiklu-text-sm uiklu-border\",\n md: \"uiklu-h-[40px] uiklu-w-[250px] uiklu-px-6 uiklu-text-base uiklu-border-2\",\n lg: \"uiklu-h-[50px] uiklu-w-[350px] uiklu-px-[32px] uiklu-text-base uiklu-border-2\",\n xl: \"uiklu-h-[60px] uiklu-w-[450px] uiklu-px-[40px] uiklu-text-lg uiklu-border-[2px]\",\n full: \"uiklu-w-full uiklu-h-[50px] uiklu-max-h-[60px] uiklu-px-[48px] uiklu-text-lg uiklu-font-bold uiklu-border-[2px]\",\n },\n// ...\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n}\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }","import * as React from \"react\"\nimport { cn } from \"../../lib/utils.js\"\n\ntype BackButtonSize = \"ch\" | \"md\" | \"lg\"\n\ninterface BackButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n size?: BackButtonSize\n}\n\nconst buttonSizes: Record<BackButtonSize, string> = {\n ch: \"uiklu-text-[14px] uiklu-gap-1\",\n md: \"uiklu-text-[16px] uiklu-gap-2\",\n lg: \"uiklu-text-[18px] uiklu-gap-2.5\",\n}\n\nconst svgSizes: Record<BackButtonSize, string> = {\n ch: \"uiklu-w-4 uiklu-h-4\",\n md: \"uiklu-w-5 uiklu-h-5\",\n lg: \"uiklu-w-6 uiklu-h-6\",\n}\n\n// Cambiamos la declaración para que el parser no se confunda\nconst BackButtonRender: React.ForwardRefRenderFunction<HTMLButtonElement, BackButtonProps> = (\n props,\n ref\n) => {\n const { className, size = \"lg\", children = \"Regresar\", ...rest } = props;\n\n return (\n <button\n ref={ref}\n className={cn(\n \"uiklu-inline-flex uiklu-items-center uiklu-w-fit uiklu-border-none uiklu-bg-transparent uiklu-font-sans uiklu-font-medium uiklu-text-basewhite uiklu-text-center uiklu-leading-none uiklu-cursor-pointer hover:uiklu-underline uiklu-transition-all uiklu-outline-none active:uiklu-opacity-70 disabled:uiklu-opacity-50 disabled:uiklu-cursor-not-allowed\",\n buttonSizes[size],\n className\n )}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n className={cn(\"uiklu-flex-shrink-0 uiklu-block\", svgSizes[size])}\n style={{ width: size === 'ch' ? '16px' : size === 'md' ? '20px' : '24px', height: 'auto' }}\n >\n <path\n d=\"M21.0001 11.9999C21.0001 12.1988 20.9211 12.3896 20.7804 12.5303C20.6398 12.6709 20.449 12.7499 20.2501 12.7499H5.56041L11.0307 18.2193C11.1004 18.289 11.1557 18.3717 11.1934 18.4628C11.2311 18.5538 11.2505 18.6514 11.2505 18.7499C11.2505 18.8485 11.2311 18.9461 11.1934 19.0371C11.1557 19.1281 11.1004 19.2109 11.0307 19.2806C10.961 19.3502 10.8783 19.4055 10.7873 19.4432C10.6962 19.4809 10.5986 19.5003 10.5001 19.5003C10.4016 19.5003 10.304 19.4809 10.2129 19.4432C10.1219 19.4055 10.0392 19.3502 9.96948 19.2806L3.21948 12.5306C3.14974 12.4609 3.09443 12.3782 3.05668 12.2871C3.01894 12.1961 2.99951 12.0985 2.99951 11.9999C2.99951 11.9014 3.01894 11.8038 3.05668 11.7127C3.09443 11.6217 3.14974 11.539 3.21948 11.4693L9.96948 4.7193C10.1102 4.57857 10.3011 4.49951 10.5001 4.49951C10.6991 4.49951 10.89 4.57857 11.0307 4.7193C11.1715 4.86003 11.2505 5.05091 11.2505 5.24993C11.2505 5.44895 11.1715 5.63982 11.0307 5.78055L5.56041 11.2499H20.2501C20.449 11.2499 20.6398 11.3289 20.7804 11.4696C20.9211 11.6103 21.0001 11.801 21.0001 11.9999Z\"\n fill=\"currentColor\"\n />\n </svg>\n <span>{children}</span>\n </button>\n );\n};\n\nexport const BackButton = React.forwardRef(BackButtonRender);\n\nBackButton.displayName = \"BackButton\""],"mappings":"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","names":["jsx","React","jsx","jsxs"]}
|
package/package.json
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@klu_dev/ui-klu-green",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Librería de componentes UI",
|
|
5
5
|
"type": "module",
|
|
6
|
-
|
|
7
6
|
"main": "./dist/index.js",
|
|
8
7
|
"module": "./dist/index.js",
|
|
9
8
|
"types": "./dist/index.d.ts",
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
13
12
|
"exports": {
|
|
14
13
|
".": {
|
|
15
14
|
"types": "./dist/index.d.ts",
|
|
@@ -20,12 +19,10 @@
|
|
|
20
19
|
"import": "./dist/index.css"
|
|
21
20
|
}
|
|
22
21
|
},
|
|
23
|
-
|
|
24
22
|
"peerDependencies": {
|
|
25
23
|
"react": "^18 || ^19",
|
|
26
24
|
"react-dom": "^18 || ^19"
|
|
27
25
|
},
|
|
28
|
-
|
|
29
26
|
"scripts": {
|
|
30
27
|
"build": "tsup && npm run build:css",
|
|
31
28
|
"build:css": "postcss src/index.css -o dist/index.css",
|
|
@@ -33,11 +30,11 @@
|
|
|
33
30
|
"build-storybook": "storybook build",
|
|
34
31
|
"dev": "vite"
|
|
35
32
|
},
|
|
36
|
-
|
|
37
33
|
"dependencies": {
|
|
38
34
|
"@fontsource-variable/geist": "^5.2.8",
|
|
39
35
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
40
36
|
"@radix-ui/react-label": "^2.1.8",
|
|
37
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
41
38
|
"@radix-ui/react-slot": "^1.2.4",
|
|
42
39
|
"@radix-ui/react-toast": "^1.2.15",
|
|
43
40
|
"class-variance-authority": "^0.7.1",
|
|
@@ -46,7 +43,6 @@
|
|
|
46
43
|
"tailwind-merge": "^3.5.0",
|
|
47
44
|
"tw-animate-css": "^1.4.0"
|
|
48
45
|
},
|
|
49
|
-
|
|
50
46
|
"devDependencies": {
|
|
51
47
|
"@chromatic-com/storybook": "^5.1.1",
|
|
52
48
|
"@eslint/js": "^9.39.4",
|
|
@@ -68,4 +64,4 @@
|
|
|
68
64
|
"vite": "^8.0.4",
|
|
69
65
|
"vite-plugin-dts": "^4.5.4"
|
|
70
66
|
}
|
|
71
|
-
}
|
|
67
|
+
}
|