@adamosuiteservices/ui 2.10.0 → 2.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion-rounded.cjs +1 -1
- package/dist/accordion-rounded.js +1 -1
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/card.cjs +7 -7
- package/dist/card.js +35 -23
- package/dist/{checkbox-CFGlO5wt.cjs → checkbox-Bn7H8EaT.cjs} +1 -1
- package/dist/{checkbox-DsN1IQGA.js → checkbox-DmvyFfB3.js} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.js +2 -2
- package/dist/components/ui/card/card.d.ts +3 -1
- package/dist/components/ui/card/card.stories.d.ts +2 -0
- package/dist/context-menu.cjs +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dropdown-menu.cjs +1 -1
- package/dist/dropdown-menu.js +1 -1
- package/dist/{icon-SWksUOv5.cjs → icon-Bg5HV6Ls.cjs} +1 -1
- package/dist/{icon-D0vVkV-A.js → icon-DG_i4bz2.js} +3 -3
- package/dist/icon.cjs +1 -1
- package/dist/icon.js +1 -1
- package/dist/pagination.cjs +1 -1
- package/dist/pagination.js +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-DfRu4ByS.cjs → sheet-IGhaVAfU.cjs} +1 -1
- package/dist/{sheet-DM7b3ckK.js → sheet-mV8cYfd2.js} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sidebar.cjs +1 -1
- package/dist/sidebar.js +2 -2
- package/dist/spinner.cjs +1 -1
- package/dist/spinner.js +1 -1
- package/docs/components/ui/card.md +206 -10
- package/docs/components/ui/icon.md +22 -2
- package/package.json +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# Card
|
|
2
2
|
|
|
3
|
-
Contenedor versátil con bordes redondeados, padding y
|
|
3
|
+
Contenedor versátil con bordes redondeados, padding, sombra y borde configurables para agrupar contenido relacionado. Incluye 6 variantes de color, control de elevación y bordes, y un sistema de layout con grid automático para headers con acciones.
|
|
4
4
|
|
|
5
5
|
## Características Principales
|
|
6
6
|
|
|
7
7
|
- **6 variantes de color**: Default, Primary, Muted, Success, Warning, Destructive
|
|
8
|
+
- **2 variantes de sombra**: Default (con elevación) y None (diseño plano, por defecto)
|
|
9
|
+
- **2 variantes de borde**: Default (visible) y Transparent (invisible pero mantiene espacio)
|
|
8
10
|
- **Composición modular**: 6 subcomponentes (Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter)
|
|
9
11
|
- **Grid automático en header**: Detecta `CardAction` y ajusta layout automáticamente con `has-data-[slot=card-action]:grid-cols-[1fr_auto]`
|
|
10
12
|
- **Container queries**: CardHeader usa `@container/card-header` para layouts responsive
|
|
@@ -104,11 +106,13 @@ Contenedor principal de la card.
|
|
|
104
106
|
|
|
105
107
|
#### Props
|
|
106
108
|
|
|
107
|
-
| Prop | Tipo | Default | Descripción
|
|
108
|
-
| ----------- | ------------------------------------------------------------------------------ | ----------- |
|
|
109
|
-
| `variant` | `"default" \| "primary" \| "muted" \| "success" \| "warning" \| "destructive"` | `"default"` | Variante de color de fondo
|
|
110
|
-
| `
|
|
111
|
-
| `
|
|
109
|
+
| Prop | Tipo | Default | Descripción |
|
|
110
|
+
| ----------- | ------------------------------------------------------------------------------ | ----------- | ---------------------------------------------------------- |
|
|
111
|
+
| `variant` | `"default" \| "primary" \| "muted" \| "success" \| "warning" \| "destructive"` | `"default"` | Variante de color de fondo |
|
|
112
|
+
| `shadow` | `"default" \| "none"` | `"none"` | Control de sombra (none=flat, default=elevación) |
|
|
113
|
+
| `border` | `"default" \| "transparent"` | `"default"` | Control de borde (default=visible, transparent=invisible) |
|
|
114
|
+
| `className` | `string` | - | Clases CSS adicionales |
|
|
115
|
+
| `children` | `ReactNode` | - | Contenido de la card |
|
|
112
116
|
|
|
113
117
|
### CardHeader
|
|
114
118
|
|
|
@@ -335,7 +339,125 @@ Fondo gris claro para información secundaria.
|
|
|
335
339
|
|
|
336
340
|
**Colores**: `bg-muted` con texto `text-muted/90`
|
|
337
341
|
|
|
338
|
-
|
|
342
|
+
## Variantes de Sombra
|
|
343
|
+
|
|
344
|
+
Controla la elevación de las cards con la prop `shadow`. Por defecto, las cards no tienen sombra (`shadow="none"`).
|
|
345
|
+
|
|
346
|
+
### Sin Sombra (Default)
|
|
347
|
+
|
|
348
|
+
Card plana sin elevación para diseños limpios y modernos.
|
|
349
|
+
|
|
350
|
+
```tsx
|
|
351
|
+
<Card className="w-[350px]">
|
|
352
|
+
<CardHeader>
|
|
353
|
+
<CardTitle>Flat Card</CardTitle>
|
|
354
|
+
<CardDescription>No elevation, flat design</CardDescription>
|
|
355
|
+
</CardHeader>
|
|
356
|
+
<CardContent>
|
|
357
|
+
<p className="text-sm">
|
|
358
|
+
Default behavior - perfect for modern, clean layouts and dense grids.
|
|
359
|
+
</p>
|
|
360
|
+
</CardContent>
|
|
361
|
+
</Card>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**Uso**: Default para todas las cards. Ideal para diseños modernos, layouts densos, o cuando las cards ya están visualmente separadas por otros elementos.
|
|
365
|
+
|
|
366
|
+
### Con Sombra
|
|
367
|
+
|
|
368
|
+
Card con sombra sutil para crear profundidad cuando se necesita énfasis.
|
|
369
|
+
|
|
370
|
+
```tsx
|
|
371
|
+
<Card shadow="default" className="w-[350px]">
|
|
372
|
+
<CardHeader>
|
|
373
|
+
<CardTitle>Card with Shadow</CardTitle>
|
|
374
|
+
<CardDescription>Subtle elevation effect</CardDescription>
|
|
375
|
+
</CardHeader>
|
|
376
|
+
<CardContent>
|
|
377
|
+
<p className="text-sm">
|
|
378
|
+
Use shadow="default" when you need elevation to make cards stand out.
|
|
379
|
+
</p>
|
|
380
|
+
</CardContent>
|
|
381
|
+
</Card>
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**Uso**: Usa cuando necesites que cards individuales se destaquen o floten sobre el contenido de fondo.
|
|
385
|
+
|
|
386
|
+
### Combinando con Variantes de Color
|
|
387
|
+
|
|
388
|
+
La prop `shadow` funciona con todas las variantes de color.
|
|
389
|
+
|
|
390
|
+
```tsx
|
|
391
|
+
{/* Flat colored cards */}
|
|
392
|
+
<Card variant="primary" shadow="none" className="w-[350px]">
|
|
393
|
+
<CardHeader>
|
|
394
|
+
<CardTitle>Flat Primary</CardTitle>
|
|
395
|
+
<CardDescription>Primary color without shadow</CardDescription>
|
|
396
|
+
</CardHeader>
|
|
397
|
+
<CardContent>
|
|
398
|
+
<p className="text-sm">
|
|
399
|
+
Combines color variant with flat design for modern appearance.
|
|
400
|
+
</p>
|
|
401
|
+
</CardContent>
|
|
402
|
+
</Card>
|
|
403
|
+
|
|
404
|
+
{/* Elevated colored cards */}
|
|
405
|
+
<Card variant="success" shadow="default" className="w-[350px]">
|
|
406
|
+
<CardHeader>
|
|
407
|
+
<CardTitle>Elevated Success</CardTitle>
|
|
408
|
+
<CardDescription>Success color with shadow</CardDescription>
|
|
409
|
+
</CardHeader>
|
|
410
|
+
<CardContent>
|
|
411
|
+
<p className="text-sm">
|
|
412
|
+
Shadow adds depth to colored variants for emphasis.
|
|
413
|
+
</p>
|
|
414
|
+
</CardContent>
|
|
415
|
+
</Card>
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
**Nota**: Experimenta con `shadow="none"` en grids de cards o layouts densos para un look más limpio.
|
|
419
|
+
|
|
420
|
+
## Variantes de Borde
|
|
421
|
+
|
|
422
|
+
El Card ofrece dos opciones de borde a través de la prop `border`:
|
|
423
|
+
|
|
424
|
+
### Con Borde (Default)
|
|
425
|
+
|
|
426
|
+
Por defecto, las cards tienen un borde visible que define claramente sus límites:
|
|
427
|
+
|
|
428
|
+
```tsx
|
|
429
|
+
<Card border="default" variant="primary">
|
|
430
|
+
<CardHeader>
|
|
431
|
+
<CardTitle>Card con Borde</CardTitle>
|
|
432
|
+
<CardDescription>Borde visible para definición clara</CardDescription>
|
|
433
|
+
</CardHeader>
|
|
434
|
+
<CardContent>
|
|
435
|
+
<p className="text-sm">
|
|
436
|
+
El borde ayuda a separar la card del fondo y de otros elementos.
|
|
437
|
+
</p>
|
|
438
|
+
</CardContent>
|
|
439
|
+
</Card>
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Sin Borde
|
|
443
|
+
|
|
444
|
+
Usa `border="transparent"` para ocultar el borde mientras mantienes el espaciado:
|
|
445
|
+
|
|
446
|
+
```tsx
|
|
447
|
+
<Card border="transparent" variant="primary">
|
|
448
|
+
<CardHeader>
|
|
449
|
+
<CardTitle>Card sin Borde</CardTitle>
|
|
450
|
+
<CardDescription>Diseño más limpio y minimalista</CardDescription>
|
|
451
|
+
</CardHeader>
|
|
452
|
+
<CardContent>
|
|
453
|
+
<p className="text-sm">
|
|
454
|
+
Sin borde para un look más integrado con el fondo.
|
|
455
|
+
</p>
|
|
456
|
+
</CardContent>
|
|
457
|
+
</Card>
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**Nota**: `border="transparent"` mantiene el espacio del borde en el layout, a diferencia de removerlo completamente. Esto asegura consistencia en el espaciado.
|
|
339
461
|
|
|
340
462
|
## Patrones Avanzados
|
|
341
463
|
|
|
@@ -892,6 +1014,37 @@ Diferentes arreglos de botones.
|
|
|
892
1014
|
</Card>
|
|
893
1015
|
```
|
|
894
1016
|
|
|
1017
|
+
### Uso de Sombras y Bordes
|
|
1018
|
+
|
|
1019
|
+
```tsx
|
|
1020
|
+
{/* ✅ Correcto - Default sin sombra para diseño plano */}
|
|
1021
|
+
<Card>
|
|
1022
|
+
<CardContent>Clean, flat design</CardContent>
|
|
1023
|
+
</Card>
|
|
1024
|
+
|
|
1025
|
+
{/* ✅ Correcto - Shadow para cards flotantes o destacadas */}
|
|
1026
|
+
<Card shadow="default">
|
|
1027
|
+
<CardContent>Elevated card with depth</CardContent>
|
|
1028
|
+
</Card>
|
|
1029
|
+
|
|
1030
|
+
{/* ✅ Correcto - Border transparent para integración con fondo */}
|
|
1031
|
+
<Card border="transparent" variant="muted">
|
|
1032
|
+
<CardContent>Blends with background</CardContent>
|
|
1033
|
+
</Card>
|
|
1034
|
+
|
|
1035
|
+
{/* ⚠️ Evitar - Shadow sin propósito específico */}
|
|
1036
|
+
<Card shadow="default">
|
|
1037
|
+
<CardContent>Unnecessary elevation</CardContent>
|
|
1038
|
+
</Card>
|
|
1039
|
+
```
|
|
1040
|
+
|
|
1041
|
+
**Recomendaciones**:
|
|
1042
|
+
|
|
1043
|
+
- Usa `shadow="none"` (default) para layouts densos y diseños modernos
|
|
1044
|
+
- Aplica `shadow="default"` para destacar cards importantes o flotantes
|
|
1045
|
+
- Usa `border="transparent"` en cards sobre fondos de color similar
|
|
1046
|
+
- Mantén `border="default"` para máxima claridad y separación
|
|
1047
|
+
|
|
895
1048
|
### Estructura de Header Completa
|
|
896
1049
|
|
|
897
1050
|
```tsx
|
|
@@ -1023,17 +1176,60 @@ Diferentes arreglos de botones.
|
|
|
1023
1176
|
</CardHeader>;
|
|
1024
1177
|
```
|
|
1025
1178
|
|
|
1179
|
+
### Uso de Shadow
|
|
1180
|
+
|
|
1181
|
+
```tsx
|
|
1182
|
+
{/* ✅ Correcto - Shadow para cards individuales o destacadas */}
|
|
1183
|
+
<Card shadow="default" className="w-[350px]">
|
|
1184
|
+
<CardContent>
|
|
1185
|
+
Stands out with subtle elevation
|
|
1186
|
+
</CardContent>
|
|
1187
|
+
</Card>
|
|
1188
|
+
|
|
1189
|
+
{/* ✅ Correcto - Sin shadow para grids densos */}
|
|
1190
|
+
<div className="grid gap-4 md:grid-cols-3">
|
|
1191
|
+
<Card shadow="none">
|
|
1192
|
+
<CardContent>Flat design in dense layout</CardContent>
|
|
1193
|
+
</Card>
|
|
1194
|
+
<Card shadow="none">
|
|
1195
|
+
<CardContent>Flat design in dense layout</CardContent>
|
|
1196
|
+
</Card>
|
|
1197
|
+
<Card shadow="none">
|
|
1198
|
+
<CardContent>Flat design in dense layout</CardContent>
|
|
1199
|
+
</Card>
|
|
1200
|
+
</div>
|
|
1201
|
+
|
|
1202
|
+
{/* ✅ Correcto - Sin shadow cuando ya hay separación visual */}
|
|
1203
|
+
<div className="space-y-4">
|
|
1204
|
+
<Card shadow="none">
|
|
1205
|
+
<CardContent>Spacing provides separation</CardContent>
|
|
1206
|
+
</Card>
|
|
1207
|
+
<Card shadow="none">
|
|
1208
|
+
<CardContent>No shadow needed here</CardContent>
|
|
1209
|
+
</Card>
|
|
1210
|
+
</div>
|
|
1211
|
+
|
|
1212
|
+
{/* ⚠️ Considerar - Mucha sombra en layouts densos */}
|
|
1213
|
+
<div className="grid gap-2 md:grid-cols-4">
|
|
1214
|
+
<Card shadow="default">...</Card> {/* Puede verse pesado */}
|
|
1215
|
+
<Card shadow="default">...</Card>
|
|
1216
|
+
<Card shadow="default">...</Card>
|
|
1217
|
+
<Card shadow="default">...</Card>
|
|
1218
|
+
</div>
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1026
1221
|
## Notas de Implementación
|
|
1027
1222
|
|
|
1028
|
-
- **Basado en CVA**: Usa `class-variance-authority` para variantes de color
|
|
1223
|
+
- **Basado en CVA**: Usa `class-variance-authority` para variantes de color, sombra y borde
|
|
1029
1224
|
- **Data Slots**: Cada componente tiene `data-slot` para CSS targeting específico (`data-slot="card"`, `data-slot="card-header"`, etc.)
|
|
1030
1225
|
- **Grid Automático**: CardHeader usa `has-data-[slot=card-action]:grid-cols-[1fr_auto]` para detectar CardAction y ajustar layout
|
|
1031
1226
|
- **Container Queries**: CardHeader tiene `@container/card-header` para responsive interno (requiere Tailwind CSS container queries)
|
|
1032
1227
|
- **Spacing Consistente**: `gap-6` entre secciones (header, content, footer), `px-6` horizontal en todas las secciones
|
|
1033
1228
|
- **Padding Condicional**: `.border-b` y `.border-t` triggers automáticos para `pb-6` y `pt-6` respectivamente
|
|
1034
1229
|
- **Variantes de Color**: Cada variante ajusta `bg-*-50` y `text-*-foreground`, con ajustes para iconos SVG (`[&>svg]:text-current`)
|
|
1035
|
-
- **
|
|
1036
|
-
- **
|
|
1230
|
+
- **Variantes de Sombra**: Dos opciones (`default` con `shadow-xs`, `none` sin sombra por defecto) para control de elevación
|
|
1231
|
+
- **Variantes de Borde**: Dos opciones (`default` con borde visible, `transparent` con borde invisible pero mantiene espaciado)
|
|
1232
|
+
- **Rounded Corners**: `rounded-3xl` por defecto para esquinas suaves
|
|
1037
1233
|
- **Flex Column**: Card root usa `flex flex-col gap-6` para layout vertical automático
|
|
1038
1234
|
|
|
1039
1235
|
## Accesibilidad
|
|
@@ -8,11 +8,13 @@ Componente para mostrar **iconos Material Symbols Outlined** con configuración
|
|
|
8
8
|
|
|
9
9
|
- ✅ Material Symbols Outlined con fuente local para mejor rendimiento
|
|
10
10
|
- ✅ Tamaños controlados por clases Tailwind: `text-lg`, `text-2xl`, `text-4xl`, `text-5xl`
|
|
11
|
+
- ✅ Tamaño por defecto: `text-2xl` (~24px) para uso general
|
|
11
12
|
- ✅ 7 pesos tipográficos: 100-700 (default: 300)
|
|
12
13
|
- ✅ Fill modes: outlined (0) y filled (1)
|
|
13
14
|
- ✅ 3 grados ópticos: -25, 0 (default), 200
|
|
14
15
|
- ✅ 4 tamaños ópticos: 20, 24 (default), 40, 48
|
|
15
16
|
- ✅ Configuración via CSS font-variation-settings
|
|
17
|
+
- ✅ Data slot `data-slot="icon"` para CSS targeting específico
|
|
16
18
|
- ✅ Tipos exportados: IconProps para extensibilidad
|
|
17
19
|
- ✅ Extensión de ComponentProps<"span"> para máxima flexibilidad
|
|
18
20
|
- ✅ Soporte completo para className y style customizados
|
|
@@ -479,12 +481,12 @@ La fuente se carga localmente desde `assets/icons/`:
|
|
|
479
481
|
|
|
480
482
|
```css
|
|
481
483
|
.material-symbols-outlined {
|
|
482
|
-
font-variation-settings: "FILL" 0, "wght"
|
|
484
|
+
font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
|
|
483
485
|
/* ... otros estilos de optimización */
|
|
484
486
|
}
|
|
485
487
|
```
|
|
486
488
|
|
|
487
|
-
**Nota**: Tanto el CSS como el componente React usan
|
|
489
|
+
**Nota**: Tanto el CSS como el componente React usan 300 como peso por defecto para un aspecto ligero y moderno.
|
|
488
490
|
|
|
489
491
|
### TypeScript Interface
|
|
490
492
|
|
|
@@ -500,6 +502,24 @@ export type IconProps = ComponentProps<"span"> & {
|
|
|
500
502
|
|
|
501
503
|
**Tipos Exportados**: Usa `IconProps` para crear componentes custom. Los tamaños ahora se controlan via `className` con clases Tailwind.
|
|
502
504
|
|
|
505
|
+
### Component Structure
|
|
506
|
+
|
|
507
|
+
El componente renderiza un `<span>` con las siguientes características:
|
|
508
|
+
|
|
509
|
+
```tsx
|
|
510
|
+
<span
|
|
511
|
+
data-slot="icon"
|
|
512
|
+
className="material-symbols-outlined adm:inline-block adm:text-2xl"
|
|
513
|
+
style={{ fontVariationSettings: '...' }}
|
|
514
|
+
>
|
|
515
|
+
{symbol}
|
|
516
|
+
</span>
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
- **data-slot="icon"**: Permite targeting CSS específico, útil para estilos contextuales (ej: `[&>[data-slot=icon]]:text-current`)
|
|
520
|
+
- **className base**: `material-symbols-outlined adm:inline-block adm:text-2xl` (puede ser extendido via prop `className`)
|
|
521
|
+
- **style**: Genera `font-variation-settings` dinámicamente según props
|
|
522
|
+
|
|
503
523
|
## Recursos
|
|
504
524
|
|
|
505
525
|
### Material Symbols
|