@adamosuiteservices/ui 2.9.15 → 2.10.0
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 +12 -17
- package/dist/accordion-rounded.js +37 -46
- package/dist/accordion.cjs +8 -7
- package/dist/accordion.js +19 -17
- package/dist/alert.cjs +7 -3
- package/dist/alert.js +14 -10
- package/dist/avatar.cjs +2 -0
- package/dist/avatar.js +42 -40
- package/dist/badge.cjs +9 -2
- package/dist/badge.js +19 -12
- package/dist/breadcrumb.cjs +7 -3
- package/dist/breadcrumb.js +30 -24
- package/dist/{button-B7ZP4LZN.js → button-CUNnLccZ.js} +11 -6
- package/dist/{button-D-qFRXiM.cjs → button-CxGyLoeN.cjs} +7 -2
- package/dist/button-group.cjs +2 -0
- package/dist/button-group.js +15 -13
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar.cjs +8 -6
- package/dist/calendar.js +507 -492
- package/dist/card.cjs +9 -4
- package/dist/card.js +8 -3
- package/dist/checkbox-CFGlO5wt.cjs +22 -0
- package/dist/{checkbox-DhBcmKze.js → checkbox-DsN1IQGA.js} +70 -68
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/combobox.cjs +10 -13
- package/dist/combobox.js +90 -99
- package/dist/components/ui/icon/icon.d.ts +1 -3
- package/dist/components/ui/icon/icon.stories.d.ts +0 -5
- package/dist/components/ui/spinner/spinner.d.ts +1 -1
- package/dist/components/ui/tooltip/tooltip.stories.d.ts +0 -1
- package/dist/context-menu.cjs +10 -8
- package/dist/context-menu.js +126 -120
- package/dist/custom-layered-styles.css +1 -1
- package/dist/dialog.cjs +10 -7
- package/dist/dialog.js +43 -40
- package/dist/dropdown-menu.cjs +25 -10
- package/dist/dropdown-menu.js +179 -166
- package/dist/icon-D0vVkV-A.js +35 -0
- package/dist/icon-SWksUOv5.cjs +6 -0
- package/dist/icon.cjs +1 -1
- package/dist/icon.js +1 -1
- package/dist/icons.css +1 -1
- package/dist/input-group.cjs +14 -6
- package/dist/input-group.js +25 -17
- package/dist/kbd.cjs +3 -3
- package/dist/kbd.js +1 -0
- package/dist/pagination.cjs +4 -4
- package/dist/pagination.js +41 -43
- package/dist/radio-group.cjs +5 -5
- package/dist/radio-group.js +44 -42
- package/dist/radius.css +1 -1
- package/dist/select.cjs +12 -13
- package/dist/select.js +182 -187
- package/dist/{sheet-Q3dBOQG-.js → sheet-DM7b3ckK.js} +18 -18
- package/dist/{sheet-CGahUP7F.cjs → sheet-DfRu4ByS.cjs} +4 -4
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sidebar.cjs +6 -11
- package/dist/sidebar.js +38 -49
- package/dist/spinner.cjs +1 -6
- package/dist/spinner.js +10 -16
- package/dist/styles.css +1 -1
- package/dist/tabs-underline.cjs +6 -3
- package/dist/tabs-underline.js +8 -5
- package/dist/tabs.cjs +6 -3
- package/dist/tabs.js +8 -5
- package/dist/toggle.cjs +5 -2
- package/dist/toggle.js +14 -11
- package/docs/components/layout/sidebar.md +18 -23
- package/docs/components/ui/accordion-rounded.md +584 -583
- package/docs/components/ui/accordion.md +3 -1
- package/docs/components/ui/alert.md +650 -671
- package/docs/components/ui/avatar.md +587 -588
- package/docs/components/ui/badge.md +1019 -1024
- package/docs/components/ui/breadcrumb.md +14 -14
- package/docs/components/ui/button-group.md +69 -87
- package/docs/components/ui/button.md +17 -17
- package/docs/components/ui/calendar.md +6 -6
- package/docs/components/ui/card.md +21 -27
- package/docs/components/ui/collapsible.md +16 -13
- package/docs/components/ui/combobox.md +14 -14
- package/docs/components/ui/command.md +6 -6
- package/docs/components/ui/context-menu.md +23 -23
- package/docs/components/ui/dialog.md +16 -16
- package/docs/components/ui/dropdown-menu.md +44 -66
- package/docs/components/ui/hover-card.md +5 -5
- package/docs/components/ui/icon.md +87 -88
- package/docs/components/ui/input-group.md +523 -509
- package/docs/components/ui/kbd.md +8 -8
- package/docs/components/ui/label.md +5 -5
- package/docs/components/ui/pagination.md +5 -5
- package/docs/components/ui/popover.md +14 -14
- package/docs/components/ui/progress.md +2 -2
- package/docs/components/ui/radio-group.md +2 -2
- package/docs/components/ui/select.md +6 -6
- package/docs/components/ui/spinner.md +15 -15
- package/docs/components/ui/switch.md +15 -9
- package/docs/components/ui/tabs-underline.md +4 -4
- package/docs/components/ui/tabs.md +5 -5
- package/docs/components/ui/toggle.md +17 -23
- package/docs/components/ui/tooltip.md +7 -10
- package/package.json +1 -1
- package/dist/check-CLxNVljQ.cjs +0 -6
- package/dist/check-Ci0GjV-B.js +0 -11
- package/dist/checkbox-CdnZ8VFJ.cjs +0 -21
- package/dist/chevron-down-BqEHzml5.cjs +0 -6
- package/dist/chevron-down-CpVS2Z7w.js +0 -11
- package/dist/chevron-left-B8QsBNvc.cjs +0 -6
- package/dist/chevron-left-Eal-WYLp.js +0 -11
- package/dist/chevron-right-BpzggHsr.cjs +0 -6
- package/dist/chevron-right-Cnc2tB4-.js +0 -11
- package/dist/circle-CX7JIirj.cjs +0 -6
- package/dist/circle-DYv-7Qb9.js +0 -11
- package/dist/createLucideIcon-B_8CJpcQ.js +0 -94
- package/dist/createLucideIcon-CAtnV-yz.cjs +0 -21
- package/dist/ellipsis-CryjZKZn.js +0 -15
- package/dist/ellipsis-Ct9VTDOG.cjs +0 -6
- package/dist/icon-DTx6Y_mx.cjs +0 -6
- package/dist/icon-DmU_SEHC.js +0 -36
- package/dist/minus-C0pHPx21.cjs +0 -6
- package/dist/minus-DE-onYs2.js +0 -11
- package/dist/x-CBKgg4YL.cjs +0 -6
- package/dist/x-Dl66o_vF.js +0 -14
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## Descripción
|
|
4
4
|
|
|
5
|
-
Componente para mostrar **iconos Material Symbols Outlined** con configuración avanzada de tipografía variable. Ofrece control granular sobre peso, relleno, grado óptico y tamaño
|
|
5
|
+
Componente para mostrar **iconos Material Symbols Outlined** con configuración avanzada de tipografía variable. Ofrece control granular sobre peso, relleno, grado óptico y tamaño usando **clases de texto Tailwind**, utilizando fuentes locales para mejor rendimiento. Ideal para interfaces modernas con iconografía consistente y personalizable.
|
|
6
6
|
|
|
7
7
|
## Características
|
|
8
8
|
|
|
9
9
|
- ✅ Material Symbols Outlined con fuente local para mejor rendimiento
|
|
10
|
-
- ✅
|
|
11
|
-
- ✅ 7 pesos tipográficos: 100-700 (default:
|
|
10
|
+
- ✅ Tamaños controlados por clases Tailwind: `text-lg`, `text-2xl`, `text-4xl`, `text-5xl`
|
|
11
|
+
- ✅ 7 pesos tipográficos: 100-700 (default: 300)
|
|
12
12
|
- ✅ Fill modes: outlined (0) y filled (1)
|
|
13
13
|
- ✅ 3 grados ópticos: -25, 0 (default), 200
|
|
14
14
|
- ✅ 4 tamaños ópticos: 20, 24 (default), 40, 48
|
|
15
15
|
- ✅ Configuración via CSS font-variation-settings
|
|
16
|
-
- ✅ Tipos exportados:
|
|
16
|
+
- ✅ Tipos exportados: IconProps para extensibilidad
|
|
17
17
|
- ✅ Extensión de ComponentProps<"span"> para máxima flexibilidad
|
|
18
18
|
- ✅ Soporte completo para className y style customizados
|
|
19
19
|
- ✅ Optimización automática con font-display: swap
|
|
@@ -21,25 +21,18 @@ Componente para mostrar **iconos Material Symbols Outlined** con configuración
|
|
|
21
21
|
## Importación
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import {
|
|
25
|
-
Icon,
|
|
26
|
-
type IconSize,
|
|
27
|
-
type IconProps,
|
|
28
|
-
} from "@adamosuiteservices/ui/icon";
|
|
24
|
+
import { Icon, type IconProps } from "@adamosuiteservices/ui/icon";
|
|
29
25
|
```
|
|
30
26
|
|
|
31
27
|
### Usando Types Exportados
|
|
32
28
|
|
|
33
29
|
```tsx
|
|
34
|
-
import { type
|
|
30
|
+
import { type IconProps } from "@adamosuiteservices/ui/icon";
|
|
35
31
|
|
|
36
32
|
// Para crear componentes custom
|
|
37
33
|
function CustomIcon(props: IconProps) {
|
|
38
34
|
return <Icon {...props} className="custom-icon-styles" />;
|
|
39
35
|
}
|
|
40
|
-
|
|
41
|
-
// Para validar tamaños
|
|
42
|
-
const iconSizes: IconSize[] = ["18", "24", "36", "48"];
|
|
43
36
|
```
|
|
44
37
|
|
|
45
38
|
## Uso Básico
|
|
@@ -50,10 +43,10 @@ const iconSizes: IconSize[] = ["18", "24", "36", "48"];
|
|
|
50
43
|
<Icon symbol="home" />
|
|
51
44
|
```
|
|
52
45
|
|
|
53
|
-
### Con Tamaño Personalizado
|
|
46
|
+
### Con Tamaño Personalizado usando Tailwind
|
|
54
47
|
|
|
55
48
|
```tsx
|
|
56
|
-
<Icon symbol="settings"
|
|
49
|
+
<Icon symbol="settings" className="adm:text-4xl" />
|
|
57
50
|
```
|
|
58
51
|
|
|
59
52
|
### Icono Relleno
|
|
@@ -77,19 +70,20 @@ El nombre del icono Material Symbol. Consulta [Google Fonts](https://fonts.googl
|
|
|
77
70
|
<Icon symbol="close" />
|
|
78
71
|
```
|
|
79
72
|
|
|
80
|
-
###
|
|
73
|
+
### className
|
|
81
74
|
|
|
82
|
-
|
|
75
|
+
Usa clases de texto Tailwind para controlar el tamaño del icono. Se pueden combinar con otras clases.
|
|
83
76
|
|
|
84
77
|
```tsx
|
|
85
|
-
// Tamaños
|
|
86
|
-
<Icon symbol="star"
|
|
87
|
-
<Icon symbol="star"
|
|
88
|
-
<Icon symbol="star"
|
|
89
|
-
<Icon symbol="star"
|
|
90
|
-
```
|
|
78
|
+
// Tamaños comunes usando Tailwind
|
|
79
|
+
<Icon symbol="star" className="adm:text-lg" /> {/* ~18px */}
|
|
80
|
+
<Icon symbol="star" className="adm:text-2xl" /> {/* ~24px */}
|
|
81
|
+
<Icon symbol="star" className="adm:text-4xl" /> {/* ~36px */}
|
|
82
|
+
<Icon symbol="star" className="adm:text-5xl" /> {/* ~48px */}
|
|
91
83
|
|
|
92
|
-
|
|
84
|
+
// Combinando tamaño con color
|
|
85
|
+
<Icon symbol="star" className="adm:text-2xl adm:text-yellow-500" />
|
|
86
|
+
```
|
|
93
87
|
|
|
94
88
|
### fill
|
|
95
89
|
|
|
@@ -109,13 +103,13 @@ Grosor de las líneas del icono. Más bajo = más delgado, más alto = más grue
|
|
|
109
103
|
|
|
110
104
|
```tsx
|
|
111
105
|
<Icon symbol="favorite" weight={100} /> {/* Muy delgado */}
|
|
112
|
-
<Icon symbol="favorite" weight={
|
|
106
|
+
<Icon symbol="favorite" weight={300} /> {/* Default - Ligero */}
|
|
113
107
|
<Icon symbol="favorite" weight={400} /> {/* Regular */}
|
|
114
108
|
<Icon symbol="favorite" weight={700} /> {/* Grueso */}
|
|
115
109
|
```
|
|
116
110
|
|
|
117
111
|
**Values**: `100` | `200` | `300` | `400` | `500` | `600` | `700`
|
|
118
|
-
**Default**: `
|
|
112
|
+
**Default**: `300` (ligero y moderno)
|
|
119
113
|
|
|
120
114
|
### grade
|
|
121
115
|
|
|
@@ -151,13 +145,13 @@ Optimización de legibilidad para diferentes tamaños de pantalla.
|
|
|
151
145
|
```tsx
|
|
152
146
|
<div className="adm:flex adm:gap-1">
|
|
153
147
|
<Button variant="ghost" size="icon">
|
|
154
|
-
<Icon symbol="arrow_back"
|
|
148
|
+
<Icon symbol="arrow_back" className="adm:text-2xl" />
|
|
155
149
|
</Button>
|
|
156
150
|
<Button variant="ghost" size="icon">
|
|
157
|
-
<Icon symbol="home"
|
|
151
|
+
<Icon symbol="home" className="adm:text-2xl" />
|
|
158
152
|
</Button>
|
|
159
153
|
<Button variant="ghost" size="icon">
|
|
160
|
-
<Icon symbol="search"
|
|
154
|
+
<Icon symbol="search" className="adm:text-2xl" />
|
|
161
155
|
</Button>
|
|
162
156
|
</div>
|
|
163
157
|
```
|
|
@@ -167,15 +161,15 @@ Optimización de legibilidad para diferentes tamaños de pantalla.
|
|
|
167
161
|
```tsx
|
|
168
162
|
<div className="adm:flex adm:gap-2">
|
|
169
163
|
<Button>
|
|
170
|
-
<Icon symbol="save"
|
|
164
|
+
<Icon symbol="save" className="adm:text-lg" />
|
|
171
165
|
Save
|
|
172
166
|
</Button>
|
|
173
167
|
<Button variant="outline">
|
|
174
|
-
<Icon symbol="edit"
|
|
168
|
+
<Icon symbol="edit" className="adm:text-lg" />
|
|
175
169
|
Edit
|
|
176
170
|
</Button>
|
|
177
171
|
<Button variant="destructive">
|
|
178
|
-
<Icon symbol="delete"
|
|
172
|
+
<Icon symbol="delete" className="adm:text-lg" />
|
|
179
173
|
Delete
|
|
180
174
|
</Button>
|
|
181
175
|
</div>
|
|
@@ -192,7 +186,10 @@ function FavoriteButton() {
|
|
|
192
186
|
<Icon
|
|
193
187
|
symbol="favorite"
|
|
194
188
|
fill={isFavorite ? 1 : 0}
|
|
195
|
-
className={
|
|
189
|
+
className={cn(
|
|
190
|
+
"adm:text-lg",
|
|
191
|
+
isFavorite ? "adm:text-red-500" : "adm:text-gray-400"
|
|
192
|
+
)}
|
|
196
193
|
/>
|
|
197
194
|
{isFavorite ? "Liked" : "Like"}
|
|
198
195
|
</Button>
|
|
@@ -204,10 +201,22 @@ function FavoriteButton() {
|
|
|
204
201
|
|
|
205
202
|
```tsx
|
|
206
203
|
<div className="adm:flex adm:items-center adm:gap-4">
|
|
207
|
-
<Icon symbol="favorite" weight={100} />
|
|
208
|
-
|
|
209
|
-
<Icon symbol="favorite" weight={
|
|
210
|
-
<Icon symbol="favorite" weight={
|
|
204
|
+
<Icon symbol="favorite" weight={100} className="adm:text-2xl" />{" "}
|
|
205
|
+
{/* Delgado */}
|
|
206
|
+
<Icon symbol="favorite" weight={300} className="adm:text-2xl" /> {/* Default */}
|
|
207
|
+
<Icon symbol="favorite" weight={500} className="adm:text-2xl" /> {/* Medio */}
|
|
208
|
+
<Icon symbol="favorite" weight={700} className="adm:text-2xl" /> {/* Grueso */}
|
|
209
|
+
</div>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Diferentes Tamaños con Tailwind
|
|
213
|
+
|
|
214
|
+
```tsx
|
|
215
|
+
<div className="adm:flex adm:items-center adm:gap-4">
|
|
216
|
+
<Icon symbol="favorite" className="adm:text-lg" /> {/* ~18px */}
|
|
217
|
+
<Icon symbol="favorite" className="adm:text-2xl" /> {/* ~24px */}
|
|
218
|
+
<Icon symbol="favorite" className="adm:text-4xl" /> {/* ~36px */}
|
|
219
|
+
<Icon symbol="favorite" className="adm:text-5xl" /> {/* ~48px */}
|
|
211
220
|
</div>
|
|
212
221
|
```
|
|
213
222
|
|
|
@@ -235,7 +244,7 @@ const commonIcons = [
|
|
|
235
244
|
<div className="adm:grid adm:grid-cols-5 adm:gap-4">
|
|
236
245
|
{commonIcons.map((icon) => (
|
|
237
246
|
<div key={icon} className="adm:text-center">
|
|
238
|
-
<Icon symbol={icon}
|
|
247
|
+
<Icon symbol={icon} className="adm:text-2xl" />
|
|
239
248
|
<p className="adm:text-xs adm:mt-1">{icon}</p>
|
|
240
249
|
</div>
|
|
241
250
|
))}
|
|
@@ -249,9 +258,8 @@ const commonIcons = [
|
|
|
249
258
|
```tsx
|
|
250
259
|
<Icon
|
|
251
260
|
symbol="notification"
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
className="adm:text-blue-500 adm:drop-shadow-sm"
|
|
261
|
+
weight={300}
|
|
262
|
+
className="adm:text-2xl adm:text-blue-500 adm:drop-shadow-sm"
|
|
255
263
|
/>
|
|
256
264
|
```
|
|
257
265
|
|
|
@@ -260,8 +268,7 @@ const commonIcons = [
|
|
|
260
268
|
```tsx
|
|
261
269
|
<Icon
|
|
262
270
|
symbol="refresh"
|
|
263
|
-
|
|
264
|
-
className="adm:animate-spin adm:text-blue-500"
|
|
271
|
+
className="adm:text-2xl adm:animate-spin adm:text-blue-500"
|
|
265
272
|
/>
|
|
266
273
|
```
|
|
267
274
|
|
|
@@ -270,8 +277,7 @@ const commonIcons = [
|
|
|
270
277
|
```tsx
|
|
271
278
|
<Icon
|
|
272
279
|
symbol="menu"
|
|
273
|
-
|
|
274
|
-
className="adm:text-gray-600 hover:adm:text-gray-900 adm:transition-colors"
|
|
280
|
+
className="adm:text-2xl adm:text-gray-600 hover:adm:text-gray-900 adm:transition-colors"
|
|
275
281
|
/>
|
|
276
282
|
```
|
|
277
283
|
|
|
@@ -283,7 +289,7 @@ const commonIcons = [
|
|
|
283
289
|
<Card>
|
|
284
290
|
<CardHeader>
|
|
285
291
|
<div className="adm:flex adm:items-center adm:gap-2">
|
|
286
|
-
<Icon symbol="folder"
|
|
292
|
+
<Icon symbol="folder" className="adm:text-2xl adm:text-blue-500" />
|
|
287
293
|
<CardTitle>Documents</CardTitle>
|
|
288
294
|
</div>
|
|
289
295
|
</CardHeader>
|
|
@@ -294,7 +300,7 @@ const commonIcons = [
|
|
|
294
300
|
|
|
295
301
|
```tsx
|
|
296
302
|
<Button disabled>
|
|
297
|
-
<Icon symbol="sync" className="adm:animate-spin"
|
|
303
|
+
<Icon symbol="sync" className="adm:text-lg adm:animate-spin" />
|
|
298
304
|
Loading...
|
|
299
305
|
</Button>
|
|
300
306
|
```
|
|
@@ -323,50 +329,67 @@ const commonIcons = [
|
|
|
323
329
|
```tsx
|
|
324
330
|
<div className="adm:flex adm:gap-1 adm:p-2 adm:border adm:rounded-md">
|
|
325
331
|
<Button variant="ghost" size="icon">
|
|
326
|
-
<Icon symbol="undo"
|
|
332
|
+
<Icon symbol="undo" className="adm:text-xl" />
|
|
327
333
|
</Button>
|
|
328
334
|
<Button variant="ghost" size="icon">
|
|
329
|
-
<Icon symbol="redo"
|
|
335
|
+
<Icon symbol="redo" className="adm:text-xl" />
|
|
330
336
|
</Button>
|
|
331
337
|
<Separator orientation="vertical" className="adm:h-6" />
|
|
332
338
|
<Button variant="ghost" size="icon">
|
|
333
|
-
<Icon symbol="content_copy"
|
|
339
|
+
<Icon symbol="content_copy" className="adm:text-xl" />
|
|
334
340
|
</Button>
|
|
335
341
|
<Button variant="ghost" size="icon">
|
|
336
|
-
<Icon symbol="content_paste"
|
|
342
|
+
<Icon symbol="content_paste" className="adm:text-xl" />
|
|
337
343
|
</Button>
|
|
338
344
|
</div>
|
|
339
345
|
```
|
|
340
346
|
|
|
341
347
|
## Mejores Prácticas
|
|
342
348
|
|
|
343
|
-
### Tamaños Consistentes
|
|
349
|
+
### Tamaños Consistentes con Tailwind
|
|
344
350
|
|
|
345
351
|
```tsx
|
|
346
|
-
{/* ✅ Correcto - Tamaños consistentes por contexto */}
|
|
352
|
+
{/* ✅ Correcto - Tamaños consistentes por contexto usando Tailwind */}
|
|
347
353
|
<Button>
|
|
348
|
-
<Icon symbol="save"
|
|
354
|
+
<Icon symbol="save" className="adm:text-lg" /> {/* text-lg para botones con texto */}
|
|
349
355
|
Save
|
|
350
356
|
</Button>
|
|
351
357
|
|
|
352
358
|
<Button size="icon">
|
|
353
|
-
<Icon symbol="settings"
|
|
359
|
+
<Icon symbol="settings" className="adm:text-2xl" /> {/* text-2xl para botones icon */}
|
|
354
360
|
</Button>
|
|
355
361
|
|
|
356
362
|
{/* ❌ Incorrecto - Tamaños inconsistentes */}
|
|
357
363
|
<Button>
|
|
358
|
-
<Icon symbol="save"
|
|
364
|
+
<Icon symbol="save" className="adm:text-4xl" /> {/* Muy grande para botón con texto */}
|
|
359
365
|
Save
|
|
360
366
|
</Button>
|
|
361
367
|
```
|
|
362
368
|
|
|
369
|
+
### Clases Tailwind Recomendadas por Contexto
|
|
370
|
+
|
|
371
|
+
```tsx
|
|
372
|
+
{/* ✅ Correcto - Tamaños apropiados */}
|
|
373
|
+
// Botones con texto
|
|
374
|
+
<Icon symbol="save" className="adm:text-lg" /> {/* ~18px */}
|
|
375
|
+
|
|
376
|
+
// Botones icon solamente
|
|
377
|
+
<Icon symbol="menu" className="adm:text-2xl" /> {/* ~24px */}
|
|
378
|
+
|
|
379
|
+
// Títulos y encabezados
|
|
380
|
+
<Icon symbol="folder" className="adm:text-4xl" /> {/* ~36px */}
|
|
381
|
+
|
|
382
|
+
// Hero sections o elementos grandes
|
|
383
|
+
<Icon symbol="star" className="adm:text-5xl" /> {/* ~48px */}
|
|
384
|
+
```
|
|
385
|
+
|
|
363
386
|
### Peso Apropiado por Contexto
|
|
364
387
|
|
|
365
388
|
```tsx
|
|
366
389
|
{
|
|
367
390
|
/* ✅ Correcto - Peso ligero para interfaces modernas */
|
|
368
391
|
}
|
|
369
|
-
<Icon symbol="menu" weight={
|
|
392
|
+
<Icon symbol="menu" weight={300} />;
|
|
370
393
|
|
|
371
394
|
{
|
|
372
395
|
/* ✅ Correcto - Peso mayor para énfasis */
|
|
@@ -398,14 +421,14 @@ const commonIcons = [
|
|
|
398
421
|
/* ✅ Correcto - Botones con labels */
|
|
399
422
|
}
|
|
400
423
|
<Button variant="ghost" size="icon" aria-label="Close dialog">
|
|
401
|
-
<Icon symbol="close"
|
|
424
|
+
<Icon symbol="close" className="adm:text-2xl" />
|
|
402
425
|
</Button>;
|
|
403
426
|
|
|
404
427
|
{
|
|
405
428
|
/* ✅ Correcto - Iconos decorativos */
|
|
406
429
|
}
|
|
407
430
|
<div className="adm:flex adm:items-center adm:gap-2">
|
|
408
|
-
<Icon symbol="folder"
|
|
431
|
+
<Icon symbol="folder" className="adm:text-xl" aria-hidden="true" />
|
|
409
432
|
<span>Documents</span>
|
|
410
433
|
</div>;
|
|
411
434
|
```
|
|
@@ -414,7 +437,7 @@ const commonIcons = [
|
|
|
414
437
|
|
|
415
438
|
```tsx
|
|
416
439
|
{/* ✅ Correcto - Reutilizar configuraciones comunes */}
|
|
417
|
-
const iconProps = {
|
|
440
|
+
const iconProps = { weight: 300, className: "adm:text-2xl" } as const;
|
|
418
441
|
|
|
419
442
|
<Icon symbol="home" {...iconProps} />
|
|
420
443
|
<Icon symbol="search" {...iconProps} />
|
|
@@ -426,13 +449,13 @@ const iconProps = { size: "24", weight: 200 } as const;
|
|
|
426
449
|
Ahora tanto el CSS como el componente usan el mismo peso por defecto:
|
|
427
450
|
|
|
428
451
|
```tsx
|
|
429
|
-
{/* ✅ Ambos usan peso
|
|
452
|
+
{/* ✅ Ambos usan peso 300 */}
|
|
430
453
|
<span className="material-symbols-outlined">home</span>
|
|
431
454
|
<Icon symbol="home" />
|
|
432
455
|
|
|
433
456
|
{/* ✅ Ambos se ven idénticos */}
|
|
434
|
-
<Icon symbol="star" weight={
|
|
435
|
-
<Icon symbol="star" /> {/* Sin especificar peso =
|
|
457
|
+
<Icon symbol="star" weight={300} />
|
|
458
|
+
<Icon symbol="star" /> {/* Sin especificar peso = 300 */}
|
|
436
459
|
```
|
|
437
460
|
|
|
438
461
|
## Configuración Técnica
|
|
@@ -466,11 +489,8 @@ La fuente se carga localmente desde `assets/icons/`:
|
|
|
466
489
|
### TypeScript Interface
|
|
467
490
|
|
|
468
491
|
```typescript
|
|
469
|
-
export type IconSize = "18" | "24" | "36" | "48";
|
|
470
|
-
|
|
471
492
|
export type IconProps = ComponentProps<"span"> & {
|
|
472
493
|
symbol: string;
|
|
473
|
-
size?: IconSize;
|
|
474
494
|
fill?: 0 | 1;
|
|
475
495
|
weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;
|
|
476
496
|
grade?: -25 | 0 | 200;
|
|
@@ -478,7 +498,7 @@ export type IconProps = ComponentProps<"span"> & {
|
|
|
478
498
|
};
|
|
479
499
|
```
|
|
480
500
|
|
|
481
|
-
**Tipos Exportados**: Usa `
|
|
501
|
+
**Tipos Exportados**: Usa `IconProps` para crear componentes custom. Los tamaños ahora se controlan via `className` con clases Tailwind.
|
|
482
502
|
|
|
483
503
|
## Recursos
|
|
484
504
|
|
|
@@ -498,27 +518,6 @@ export type IconProps = ComponentProps<"span"> & {
|
|
|
498
518
|
**Usuario**: `person`, `account_circle`, `login`, `logout`, `settings`
|
|
499
519
|
**Comunicación**: `email`, `phone`, `chat`, `notifications`, `message`
|
|
500
520
|
|
|
501
|
-
### Migración desde Otros Sistemas
|
|
502
|
-
|
|
503
|
-
Si migras desde Font Awesome o Heroicons:
|
|
504
|
-
|
|
505
|
-
```tsx
|
|
506
|
-
{
|
|
507
|
-
/* Font Awesome */
|
|
508
|
-
}
|
|
509
|
-
<i className="fas fa-heart"></i>;
|
|
510
|
-
|
|
511
|
-
{
|
|
512
|
-
/* Material Icons (anterior) */
|
|
513
|
-
}
|
|
514
|
-
<span className="material-icons">favorite</span>;
|
|
515
|
-
|
|
516
|
-
{
|
|
517
|
-
/* Icon Component (nuevo) ✅ */
|
|
518
|
-
}
|
|
519
|
-
<Icon symbol="favorite" />;
|
|
520
|
-
```
|
|
521
|
-
|
|
522
521
|
## Solución de Problemas
|
|
523
522
|
|
|
524
523
|
### Icono No Aparece
|