@ajuarezso/sui-design-system 0.24.1 → 0.25.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/docs/sui-accordion/README.md +4 -4
- package/docs/sui-activity-feed/README.md +11 -11
- package/docs/sui-activity-filter/README.md +5 -5
- package/docs/sui-app-store-badge/README.md +7 -7
- package/docs/sui-avatar/README.md +26 -23
- package/docs/sui-avatar-group/README.md +11 -7
- package/docs/sui-badge/README.md +7 -7
- package/docs/sui-banner/README.md +15 -15
- package/docs/sui-brand-logo/README.md +24 -23
- package/docs/sui-breadcrumb-item/README.md +3 -3
- package/docs/sui-breadcrumbs/README.md +6 -6
- package/docs/sui-button/README.md +9 -7
- package/docs/sui-button-group/README.md +25 -22
- package/docs/sui-button-group-item/README.md +16 -13
- package/docs/sui-card/README.md +8 -8
- package/docs/sui-chart-legend/README.md +10 -10
- package/docs/sui-chart-legend-dot/README.md +10 -10
- package/docs/sui-checkbox/README.md +4 -4
- package/docs/sui-checkbox-card/README.md +12 -12
- package/docs/sui-checkbox-label/README.md +3 -3
- package/docs/sui-circular-progress-bar/README.md +19 -16
- package/docs/sui-color-dot/README.md +13 -9
- package/docs/sui-color-picker/README.md +9 -9
- package/docs/sui-command-menu-footer/README.md +1 -1
- package/docs/sui-command-menu-item/README.md +13 -12
- package/docs/sui-command-menu-search/README.md +3 -2
- package/docs/sui-compact-avatar-group/README.md +14 -11
- package/docs/sui-compact-button/README.md +16 -11
- package/docs/sui-compact-select/README.md +5 -5
- package/docs/sui-compact-select-for-input/README.md +1 -1
- package/docs/sui-content-card/README.md +12 -12
- package/docs/sui-content-divider/README.md +18 -15
- package/docs/sui-content-label/README.md +17 -17
- package/docs/sui-counter-input/README.md +12 -12
- package/docs/sui-date-selector/README.md +8 -8
- package/docs/sui-datepicker/README.md +14 -14
- package/docs/sui-day-cell/README.md +15 -14
- package/docs/sui-day-label/README.md +4 -4
- package/docs/sui-divider/README.md +9 -6
- package/docs/sui-drawer-header/README.md +9 -9
- package/docs/sui-dropdown-caption/README.md +5 -5
- package/docs/sui-dropdown-item/README.md +5 -5
- package/docs/sui-dropdown-menu/README.md +10 -10
- package/docs/sui-dropdown-search/README.md +3 -3
- package/docs/sui-emoji/README.md +13 -13
- package/docs/sui-empty-state/README.md +4 -4
- package/docs/sui-fancy-button/README.md +15 -13
- package/docs/sui-file-icon/README.md +14 -11
- package/docs/sui-file-upload/README.md +10 -10
- package/docs/sui-file-upload-card/README.md +11 -10
- package/docs/sui-filter/README.md +12 -12
- package/docs/sui-flag/README.md +11 -7
- package/docs/sui-form-hint/README.md +2 -2
- package/docs/sui-form-label/README.md +4 -4
- package/docs/sui-icon/README.md +19 -16
- package/docs/sui-image-upload/README.md +20 -19
- package/docs/sui-image-upload-profile/README.md +12 -11
- package/docs/sui-img-retry/README.md +1 -1
- package/docs/sui-inline-input/README.md +6 -6
- package/docs/sui-inline-select/README.md +2 -2
- package/docs/sui-input/README.md +14 -14
- package/docs/sui-integration-switch/README.md +15 -15
- package/docs/sui-kbd/README.md +3 -3
- package/docs/sui-key-icon/README.md +22 -19
- package/docs/sui-link-button/README.md +21 -18
- package/docs/sui-logo/README.md +20 -19
- package/docs/sui-modal/README.md +11 -11
- package/docs/sui-modal-footer/README.md +3 -3
- package/docs/sui-modal-header/README.md +1 -1
- package/docs/sui-modal-sheet/README.md +4 -4
- package/docs/sui-notification/README.md +11 -11
- package/docs/sui-notification-footer/README.md +4 -4
- package/docs/sui-notification-tab-menu/README.md +4 -4
- package/docs/sui-otp-input/README.md +5 -5
- package/docs/sui-page-header/README.md +14 -12
- package/docs/sui-pagination/README.md +13 -13
- package/docs/sui-payment-icon/README.md +16 -13
- package/docs/sui-period-range/README.md +5 -5
- package/docs/sui-popover/README.md +10 -10
- package/docs/sui-product-card/README.md +15 -15
- package/docs/sui-progress-bar/README.md +12 -9
- package/docs/sui-progress-bar-label/README.md +14 -10
- package/docs/sui-radio/README.md +2 -2
- package/docs/sui-radio-card/README.md +12 -12
- package/docs/sui-radio-label/README.md +3 -3
- package/docs/sui-rating/README.md +22 -19
- package/docs/sui-rich-editor/README.md +2 -2
- package/docs/sui-segmented-control/README.md +9 -9
- package/docs/sui-select/README.md +9 -9
- package/docs/sui-sidebar/README.md +7 -7
- package/docs/sui-slider/README.md +7 -7
- package/docs/sui-social-button/README.md +8 -8
- package/docs/sui-status-badge/README.md +13 -10
- package/docs/sui-stepper/README.md +18 -18
- package/docs/sui-store-card/README.md +16 -16
- package/docs/sui-switch/README.md +2 -2
- package/docs/sui-switch-card/README.md +10 -10
- package/docs/sui-switch-label/README.md +1 -1
- package/docs/sui-tab-chips/README.md +17 -15
- package/docs/sui-tab-menu-horizontal/README.md +6 -6
- package/docs/sui-tab-menu-vertical/README.md +8 -8
- package/docs/sui-table/README.md +13 -13
- package/docs/sui-tag/README.md +14 -11
- package/docs/sui-tag-input/README.md +6 -6
- package/docs/sui-textarea/README.md +8 -8
- package/docs/sui-time-picker/README.md +25 -25
- package/docs/sui-toast/README.md +16 -15
- package/docs/sui-tooltip/README.md +19 -18
- package/docs/sui-topbar/README.md +7 -7
- package/docs/sui-topbar-button/README.md +4 -4
- package/docs/sui-topbar-item/README.md +7 -7
- package/docs/sui-topbar-user/README.md +5 -5
- package/fesm2022/ajuarezso-sui-design-system.mjs +15 -10
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +26 -22
|
@@ -45,9 +45,9 @@ de cambios de una versión.
|
|
|
45
45
|
|
|
46
46
|
| valor | cuándo | ejemplo real de la app | fuente |
|
|
47
47
|
|---|---|---|---|
|
|
48
|
-
| `[leftIcon]="false"` | el caso normal: el título se explica solo | `pages/envios/envios.html:412` («Más detalles (opcional)») |
|
|
48
|
+
| `[leftIcon]="false"` | el caso normal: el título se explica solo | `pages/envios/envios.html:412` («Más detalles (opcional)») | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
49
49
|
| `true` (default, `question-line`) | **solo** si el título es una pregunta de ayuda | `pages/driver/driver-profile/driver-profile.html:156` («¿Por qué no me llegan pedidos?») | propuesta |
|
|
50
|
-
| un nombre de ícono | el ícono dice de qué es la sección y hay varias juntas | `pages/notifications/notifications.html:72` (`settings-3-line`) |
|
|
50
|
+
| un nombre de ícono | el ícono dice de qué es la sección y hay varias juntas | `pages/notifications/notifications.html:72` (`settings-3-line`) | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
51
51
|
|
|
52
52
|
Hoy: 16 en `false`, 2 con el default (las dos son preguntas de ayuda) y 1 con ícono propio. El
|
|
53
53
|
default del componente es el caso raro: **casi siempre hay que apagarlo**.
|
|
@@ -61,7 +61,7 @@ son preguntas y van sin ícono; las dos de ayuda dentro de la app, con. Elegir u
|
|
|
61
61
|
| qué | cuándo | fuente |
|
|
62
62
|
|---|---|---|
|
|
63
63
|
| `description` | **una respuesta corta en texto** (FAQ): aparece al abrir, alineada con el título | según el Figma del DS |
|
|
64
|
-
| contenido proyectado | cualquier otra cosa: campos, listas, cards, tablas |
|
|
64
|
+
| contenido proyectado | cualquier otra cosa: campos, listas, cards, tablas | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
65
65
|
|
|
66
66
|
**A revisar:** 4 accordions pasan un **resumen** en `description` (`resumenReto()`,
|
|
67
67
|
`resumenVotaciones()`, `resumenDetalles()`…) que, por cómo funciona el componente, **solo se ve
|
|
@@ -87,7 +87,7 @@ con el accordion abierto**. Si la idea era ver el resumen cerrado, hoy no se ve:
|
|
|
87
87
|
| input | cuándo | fuente |
|
|
88
88
|
|---|---|---|
|
|
89
89
|
| `flipIcon="on"` | listas largas donde el «+» a la izquierda se escanea mejor que a la derecha. 0 usos hoy | según el Figma del DS (la variante existe) |
|
|
90
|
-
| `badge` | marcar una sección como nueva o actualizada («Nuevo»). Extensión de SUI; 0 usos hoy |
|
|
90
|
+
| `badge` | marcar una sección como nueva o actualizada («Nuevo»). Extensión de SUI; 0 usos hoy | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
91
91
|
|
|
92
92
|
## Tamaño en mobile y en web
|
|
93
93
|
|
|
@@ -29,28 +29,28 @@ Regla corta: **quién hizo qué → activity feed · avisos para mí → notific
|
|
|
29
29
|
|
|
30
30
|
> **La guía del DS no tiene página del activity feed.** El componente sale del Figma de SUI
|
|
31
31
|
> (Activity Feed [1.1], frame 166035:46833). Uso medido el 03-10-2026 en `master-pedidos/src/app`:
|
|
32
|
-
> **0 usos**.
|
|
32
|
+
> **0 usos**. Lo marcado canon está aprobado; lo que sigue en **propuesta** espera decisión.
|
|
33
33
|
|
|
34
34
|
El tipo de fila lo decide `type` de cada item (una unión discriminada): lo que cuelga debajo de
|
|
35
35
|
la línea de texto.
|
|
36
36
|
|
|
37
37
|
| `type` | cuándo | ejemplo posible en la app | fuente |
|
|
38
38
|
|---|---|---|---|
|
|
39
|
-
| `default` | La acción se entiende sola con la línea. Es el caso normal. | «Ana aprobó la recarga de Luis» |
|
|
40
|
-
| `file` | La acción dejó archivos que se pueden bajar. | «Luis subió su comprobante de Yape» |
|
|
41
|
-
| `comment` | La acción fue escribir algo y el texto importa. | «El local dejó una nota en el pedido» |
|
|
42
|
-
| `avatar-group` | La acción involucró a varias personas. | «Se asignaron 3 repartidores a la zona» |
|
|
43
|
-
| `tasks` | La acción tuvo un resultado por partes (hechas, pendientes, con error). | «Se importó la carta: 40 productos, 2 con error» |
|
|
39
|
+
| `default` | La acción se entiende sola con la línea. Es el caso normal. | «Ana aprobó la recarga de Luis» | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
40
|
+
| `file` | La acción dejó archivos que se pueden bajar. | «Luis subió su comprobante de Yape» | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
41
|
+
| `comment` | La acción fue escribir algo y el texto importa. | «El local dejó una nota en el pedido» | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
42
|
+
| `avatar-group` | La acción involucró a varias personas. | «Se asignaron 3 repartidores a la zona» | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
43
|
+
| `tasks` | La acción tuvo un resultado por partes (hechas, pendientes, con error). | «Se importó la carta: 40 productos, 2 con error» | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
44
44
|
|
|
45
45
|
| pieza del item | regla | fuente |
|
|
46
46
|
|---|---|---|
|
|
47
|
-
| leading | `avatar` cuando lo hizo una persona; `icon` cuando lo hizo el sistema (una Cloud Function, un cobro automático). |
|
|
47
|
+
| leading | `avatar` cuando lo hizo una persona; `icon` cuando lo hizo el sistema (una Cloud Function, un cobro automático). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
48
48
|
| `avatar.src` | La foto de **otra** persona va denormalizada y pasada por `fotoDeStorage()`, nunca la URL de Google. | canon (CLAUDE.md, «Fotos de otra persona») |
|
|
49
49
|
| `avatar.color` | Para iniciales sin foto, `color` del set de SUI. `bgColor` solo como escape: no ajusta el color del texto. | canon del componente |
|
|
50
50
|
| `userName` / `target` | Nombres, nunca IDs. | canon (CLAUDE.md, «Pasada de UX/UI»: un identificador nunca es el título de nada) |
|
|
51
|
-
| `verb` | En pasado y en minúscula: «aprobó», «subió». |
|
|
52
|
-
| `timestamp` | Relativo y corto: «hace 4 min», «ayer». Lo formateas tú. |
|
|
53
|
-
| `showAction` | `false` salvo que haya un menú real detrás de los tres puntos. |
|
|
51
|
+
| `verb` | En pasado y en minúscula: «aprobó», «subió». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
52
|
+
| `timestamp` | Relativo y corto: «hace 4 min», «ayer». Lo formateas tú. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
53
|
+
| `showAction` | `false` salvo que haya un menú real detrás de los tres puntos. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
54
54
|
|
|
55
55
|
**Carga:** un historial crece sin techo. Se pide por páginas con cursor (`getCollectionPage`
|
|
56
56
|
ordenado por fecha) y un «Cargar más» al final, nunca la colección entera. Canon
|
|
@@ -136,7 +136,7 @@ interface SuiActivityTask { state: 'success' | 'warning' | 'pending' | 'error';
|
|
|
136
136
|
<sui-card>
|
|
137
137
|
<sui-activity-feed [items]="historial()" (fileDownload)="descargar($event.file)" />
|
|
138
138
|
@if (hayMas()) {
|
|
139
|
-
<sui-button variant="stroke" color="neutral" [size]="bp.isMobile() ? 'large' : '
|
|
139
|
+
<sui-button variant="stroke" color="neutral" [size]="bp.isMobile() ? 'large' : 'medium'"
|
|
140
140
|
(click)="cargarMas()">Cargar más</sui-button>
|
|
141
141
|
}
|
|
142
142
|
</sui-card>
|
|
@@ -28,16 +28,16 @@ Regla corta: **filtros del activity feed → activity filter · cualquier otra l
|
|
|
28
28
|
|
|
29
29
|
> **La guía del DS no tiene página de este filtro.** Sale del Figma de SUI (Activity Feed Selected
|
|
30
30
|
> Filter [1.1], frame 165967:3881: Default, Hover, Active). Uso medido el 03-10-2026 en
|
|
31
|
-
> `master-pedidos/src/app`: **0 usos**. Lo
|
|
31
|
+
> `master-pedidos/src/app`: **0 usos**. Lo marcado canon está aprobado; lo que sigue en **propuesta** espera decisión.
|
|
32
32
|
|
|
33
33
|
| prop | cuándo | fuente |
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `active` | El filtro que está aplicado (fondo naranja al 10 %, texto e ícono naranja). | Figma (State=Active) |
|
|
36
|
-
| `icon` | Un ícono que diga el tipo: `file-list-2-line` archivos, `chat-3-line` comentarios, `task-line` tareas. |
|
|
37
|
-
| `icon` en `null` | «Todos»: el chip que limpia el filtro va sin ícono. |
|
|
36
|
+
| `icon` | Un ícono que diga el tipo: `file-list-2-line` archivos, `chat-3-line` comentarios, `task-line` tareas. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
37
|
+
| `icon` en `null` | «Todos»: el chip que limpia el filtro va sin ícono. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
38
38
|
| `disabled` | Un tipo que no tiene ninguna actividad en el rango elegido. Mejor que esconderlo: la fila no salta. | propuesta, falta aprobación (el disabled no está en el Figma) |
|
|
39
39
|
|
|
40
|
-
¿Uno o varios a la vez? El componente no lo decide.
|
|
40
|
+
¿Uno o varios a la vez? El componente no lo decide. Canon (aprobado por el dueño, 05-10-2026, bloque B8): **uno a la vez, con «Todos»**,
|
|
41
41
|
igual que `sui-tab-chips`; así nadie se queda con un historial vacío por combinar filtros.
|
|
42
42
|
|
|
43
43
|
## Tamaño en mobile y en web
|
|
@@ -46,7 +46,7 @@ igual que `sui-tab-chips`; así nadie se queda con un historial vacío por combi
|
|
|
46
46
|
|
|
47
47
|
| uso | mobile | web | fuente |
|
|
48
48
|
|---|---|---|---|
|
|
49
|
-
| filtros del activity feed | no usar: 30 no llega al dedo; usar `sui-tab-chips` en `
|
|
49
|
+
| filtros del activity feed | no usar: 30 no llega al dedo; usar `sui-tab-chips` en `xlarge` (44) | `sui-activity-filter` | canon (aprobado por el dueño, 05-10-2026, bloque B13) |
|
|
50
50
|
|
|
51
51
|
La fila de chips la arma la pantalla: el componente no trae contenedor ni scroll lateral.
|
|
52
52
|
|
|
@@ -25,7 +25,7 @@ Google Play, en ese orden.
|
|
|
25
25
|
## Qué variante usar
|
|
26
26
|
|
|
27
27
|
> **La guía del DS no tiene página para este componente.** Todo lo de abajo es **canon (aprobado
|
|
28
|
-
> por el dueño, 03-10-2026)** o propuesta. Los sellos son los oficiales de cada tienda (cada una
|
|
28
|
+
> por el dueño, 03-10-2026 o 05-10-2026)** o propuesta. Los sellos son los oficiales de cada tienda (cada una
|
|
29
29
|
> pide usar el suyo tal cual, sin recolorear ni tocar el logo).
|
|
30
30
|
>
|
|
31
31
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: 10 sellos en 4 archivos, sin contar
|
|
@@ -55,12 +55,12 @@ Google Play, en ese orden.
|
|
|
55
55
|
|
|
56
56
|
| prop | cuándo | fuente |
|
|
57
57
|
|---|---|---|
|
|
58
|
-
| `height` (40, default) | 40 en
|
|
58
|
+
| `height` (40, default) | 40 en web; el footer en mobile va a 44. El ancho sale solo de la proporción de cada sello. | canon (aprobado por el dueño, 05-10-2026, bloque B13) |
|
|
59
59
|
| `height` 48 | En el hero de una landing en mobile, si los sellos son el CTA principal. Los dos sellos siempre a la misma altura. | propuesta |
|
|
60
|
-
| `href` | Siempre: el link de la ficha de la tienda (`apps.apple.com/pe/app/master-pedidos/…`, `play.google.com/store/apps/details?id=com.masterpedidos.app`). Sin `href` el sello no es un link. |
|
|
61
|
-
| `target="_blank"` | Siempre que hay `href`: el `rel="noopener"` se aplica solo en ese caso. |
|
|
62
|
-
| `ariaLabel` | Siempre, en español: «Descargar Master Pedidos en App Store». Sin él, el texto alternativo es genérico («Descargar en App Store», en español desde el 04-10-2026). |
|
|
63
|
-
| `disabled` | Sin caso: si la app no está en una tienda, no se muestra su sello. |
|
|
60
|
+
| `href` | Siempre: el link de la ficha de la tienda (`apps.apple.com/pe/app/master-pedidos/…`, `play.google.com/store/apps/details?id=com.masterpedidos.app`). Sin `href` el sello no es un link. | canon (aprobado por el dueño, 05-10-2026, bloque B10) (es la práctica de los 10 usos de hoy) |
|
|
61
|
+
| `target="_blank"` | Siempre que hay `href`: el `rel="noopener"` se aplica solo en ese caso. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
62
|
+
| `ariaLabel` | Siempre, en español: «Descargar Master Pedidos en App Store». Sin él, el texto alternativo es genérico («Descargar en App Store», en español desde el 04-10-2026). | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
63
|
+
| `disabled` | Sin caso: si la app no está en una tienda, no se muestra su sello. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
64
64
|
|
|
65
65
|
## Tamaño en mobile y en web
|
|
66
66
|
|
|
@@ -74,7 +74,7 @@ Regla del dueño, 03-10-2026.
|
|
|
74
74
|
| uso | mobile | web | fuente |
|
|
75
75
|
|---|---|---|---|
|
|
76
76
|
| hero de una landing, cuando los sellos son el CTA | `[height]="48"` | `[height]="40"` | propuesta |
|
|
77
|
-
| footer de las landings, «Descarga la app» | `[height]="44"` | `[height]="40"` (default) | propuesta |
|
|
77
|
+
| footer de las landings, «Descarga la app» | `[height]="44"` | `[height]="40"` (default) | mobile: canon (decisión del dueño 04-10-2026, piso táctil 44) · web: propuesta |
|
|
78
78
|
|
|
79
79
|
```html
|
|
80
80
|
<sui-app-store-badge company="app-store" [height]="bp.isMobile() ? 48 : 40" href="…" target="_blank"
|
|
@@ -29,7 +29,7 @@ Regla corta: **es alguien → avatar · es una cosa → key-icon · son varios
|
|
|
29
29
|
|
|
30
30
|
> **La guía del DS dice qué es y qué opciones tiene, no cuándo usar cada una.** Lo marcado
|
|
31
31
|
> «según la guía del DS» sale de su texto o de su código publicado; lo marcado «canon» ya es
|
|
32
|
-
> regla escrita del proyecto (`CLAUDE.md`); el resto es **propuesta, falta aprobación**.
|
|
32
|
+
> regla escrita del proyecto (`CLAUDE.md`) o lo aprobó el dueño; el resto es **propuesta, falta aprobación**.
|
|
33
33
|
>
|
|
34
34
|
> Uso medido el 04-10-2026 en `master-pedidos/src/app`: 55 avatares en los templates, sin contar
|
|
35
35
|
> prototipos ni vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`,
|
|
@@ -58,21 +58,21 @@ la foto falla al cargar, cae sola a las iniciales.
|
|
|
58
58
|
|---|---|---|
|
|
59
59
|
| foto (`src`) | Siempre que exista. Si es la foto **de otra persona**, es su `avatarUrl` de nuestro Storage, denormalizada en el documento por la Cloud Function y filtrada por `fotoDeStorage()`. **Nunca `photoURL` de Google**: solo carga en el navegador del dueño de esa cuenta. | canon (`CLAUDE.md`, «Fotos de otra persona») |
|
|
60
60
|
| `initials` | Sin foto. Pasa el **nombre completo**: el componente saca las iniciales. | según la guía del DS |
|
|
61
|
-
| `icon` | Solo para «todavía no hay nadie»: pedido sin repartidor (`e-bike-2-line`), envío sin destinatario (`user-3-line`). Va con `color="gray"`. Extensión de SUI. |
|
|
61
|
+
| `icon` | Solo para «todavía no hay nadie»: pedido sin repartidor (`e-bike-2-line`), envío sin destinatario (`user-3-line`). Va con `color="gray"`. Extensión de SUI. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
62
62
|
| silueta | Cae sola cuando no hay ni nombre. No se pide a propósito. | según la guía del DS |
|
|
63
63
|
|
|
64
64
|
### `size`
|
|
65
65
|
|
|
66
66
|
| size | px | cuándo | ejemplo real de la app | fuente |
|
|
67
67
|
|---|---|---|---|---|
|
|
68
|
-
| `xs` | 20 | Pegado a un texto en la misma línea. | `components/sidebar/sidebar.html:77` (selector de local) · `pages/envios/envios.html:250` |
|
|
69
|
-
| `sm` | 24 | Chips y filas compactas. | `pages/driver/driver-dashboard/driver-dashboard.html:1047` (quién tomó el pedido) |
|
|
70
|
-
| `md` (default SUI) | 32 | Filas de listas y tablas. | `pages/super-admin/master-orders/master-orders.html:197` |
|
|
71
|
-
| `lg` | 40 | La tarjeta de una persona o de un local. | `pages/customer/order-tracking/order-tracking.html:348` (tu repartidor) |
|
|
72
|
-
| `xl` | 48 | Cabecera de un panel. | `pages/driver/driver-dashboard/driver-dashboard.html:19` (tu foto) |
|
|
73
|
-
| `2xl` | 56 | Cabecera de una ficha. | `pages/super-admin/master-users/master-user-sheet.html:21` |
|
|
74
|
-
| `3xl` | 64 | Tu propia foto al registrarte. | `pages/driver-onboarding/step-info/step-info.html:31` |
|
|
75
|
-
| `4xl` / `5xl` | 72 / 80 | No usar hoy (ver «No usar»). | — |
|
|
68
|
+
| `xs` | 20 | Pegado a un texto en la misma línea. | `components/sidebar/sidebar.html:77` (selector de local) · `pages/envios/envios.html:250` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
69
|
+
| `sm` | 24 | Chips y filas compactas. | `pages/driver/driver-dashboard/driver-dashboard.html:1047` (quién tomó el pedido) | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
70
|
+
| `md` (default SUI) | 32 | Filas de listas y tablas. | `pages/super-admin/master-orders/master-orders.html:197` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
71
|
+
| `lg` | 40 | La tarjeta de una persona o de un local. | `pages/customer/order-tracking/order-tracking.html:348` (tu repartidor) | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
72
|
+
| `xl` | 48 | Cabecera de un panel. | `pages/driver/driver-dashboard/driver-dashboard.html:19` (tu foto) | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
73
|
+
| `2xl` | 56 | Cabecera de una ficha. | `pages/super-admin/master-users/master-user-sheet.html:21` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
74
|
+
| `3xl` | 64 | Tu propia foto al registrarte. | `pages/driver-onboarding/step-info/step-info.html:31` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
75
|
+
| `4xl` / `5xl` | 72 / 80 | No usar hoy (ver «No usar»). | — | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
76
76
|
|
|
77
77
|
Hasta `md` (32 px) se ve **una** inicial; desde `lg` (40 px), dos. Es del Figma: en chico dos
|
|
78
78
|
letras no entran.
|
|
@@ -113,11 +113,11 @@ logueada sigue en el default.
|
|
|
113
113
|
|
|
114
114
|
| status | cuándo | fuente |
|
|
115
115
|
|---|---|---|
|
|
116
|
-
| `online` | Conectado **ahora** (repartidor en línea). No significa «cuenta activa». |
|
|
117
|
-
| `away` | En pausa: conectado pero sin recibir pedidos. |
|
|
118
|
-
| `busy` | Ocupado: ya lleva un pedido. |
|
|
119
|
-
| `offline` | Desconectado. Si en esa lista todos estarían `offline` casi siempre, mejor sin punto. |
|
|
120
|
-
| `company` | Repartidor propio de un local: el logo del local abajo (con `companyLogoSrc`). |
|
|
116
|
+
| `online` | Conectado **ahora** (repartidor en línea). No significa «cuenta activa». | canon (aprobado por el dueño, 05-10-2026, bloque B2) (el valor es de la guía) |
|
|
117
|
+
| `away` | En pausa: conectado pero sin recibir pedidos. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (el valor es de la guía) |
|
|
118
|
+
| `busy` | Ocupado: ya lleva un pedido. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (el valor es de la guía) |
|
|
119
|
+
| `offline` | Desconectado. Si en esa lista todos estarían `offline` casi siempre, mejor sin punto. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (el valor es de la guía) |
|
|
120
|
+
| `company` | Repartidor propio de un local: el logo del local abajo (con `companyLogoSrc`). | canon (aprobado por el dueño, 05-10-2026, bloque B2) (la guía lo muestra como «con logo de marca») |
|
|
121
121
|
|
|
122
122
|
**Usos de hoy que rompen la regla: 2.** Los dos usan el punto para el **estado de la cuenta**,
|
|
123
123
|
no para la presencia: `pages/settings/team/team.html:99` (activo/pendiente/inactivo →
|
|
@@ -128,9 +128,9 @@ online/away/offline, mapeo en `pages/settings/team/team.ts:99`) y `pages/employe
|
|
|
128
128
|
|
|
129
129
|
| topBadge | cuándo | fuente |
|
|
130
130
|
|---|---|---|
|
|
131
|
-
| `verified` | Identidad revisada (repartidor aprobado). |
|
|
132
|
-
| `notification` | Tiene algo sin leer. |
|
|
133
|
-
| `favorite`, `pin`, `add`, `remove` | No usar hoy (ver «No usar»). |
|
|
131
|
+
| `verified` | Identidad revisada (repartidor aprobado). | canon (aprobado por el dueño, 05-10-2026, bloque B2) (la guía muestra un sello de verificado arriba) |
|
|
132
|
+
| `notification` | Tiene algo sin leer. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (el punto rojo arriba es de la guía) |
|
|
133
|
+
| `favorite`, `pin`, `add`, `remove` | No usar hoy (ver «No usar»). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
134
134
|
|
|
135
135
|
Hoy no hay ningún `topBadge` en la app.
|
|
136
136
|
|
|
@@ -138,10 +138,10 @@ Hoy no hay ningún `topBadge` en la app.
|
|
|
138
138
|
|
|
139
139
|
| input | cuándo | fuente |
|
|
140
140
|
|---|---|---|
|
|
141
|
-
| `alt` | **Siempre** el nombre de quien es. Con foto va en el `<img>`; con iniciales, ícono o silueta el host pasa a `role="img"` con `aria-label` = `alt` (desde el 04-10-2026; antes el lector leía la letra suelta). Sin `alt`, el lector no dice nada. |
|
|
142
|
-
| `companyLogoSrc` | Solo con `status="company"`. |
|
|
143
|
-
| `memojiSrc`, `illustrationSrc` | No usar hoy. |
|
|
144
|
-
| `bgColor` | No usar (ver abajo). |
|
|
141
|
+
| `alt` | **Siempre** el nombre de quien es. Con foto va en el `<img>`; con iniciales, ícono o silueta el host pasa a `role="img"` con `aria-label` = `alt` (desde el 04-10-2026; antes el lector leía la letra suelta). Sin `alt`, el lector no dice nada. | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
142
|
+
| `companyLogoSrc` | Solo con `status="company"`. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
143
|
+
| `memojiSrc`, `illustrationSrc` | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
144
|
+
| `bgColor` | No usar (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
145
145
|
|
|
146
146
|
**Usos de hoy sin `alt`: 9** (más uno decorativo que está bien sin él,
|
|
147
147
|
`pages/super-admin/master-orders/master-orders.html:586`). Ejemplos:
|
|
@@ -168,7 +168,10 @@ disfrazado. Todos pasaron a `color` por rol.
|
|
|
168
168
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
169
169
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
170
170
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
171
|
-
el celular (cliente, repartidor) va directo el valor de mobile.
|
|
171
|
+
el celular (cliente, repartidor) va directo el valor de mobile. No se toca, así que la tablet va
|
|
172
|
+
con el valor de web, y el celular chico (< 380 px) también (D16).
|
|
173
|
+
Es **canon (dueño, 05-10-2026, P1 b)**: un paso más grande en el celular que en computadora, y
|
|
174
|
+
se migra todo ahora, no solo al tocar cada pantalla.
|
|
172
175
|
|
|
173
176
|
| uso | mobile | web |
|
|
174
177
|
|---|---|---|
|
|
@@ -23,7 +23,8 @@ conectados en una zona. Cada persona se ve chica; el grupo es lo que cuenta.
|
|
|
23
23
|
## Qué variante usar
|
|
24
24
|
|
|
25
25
|
> **La guía del DS dice qué es y sus tamaños, no cuándo usarlo.** Lo marcado «según la guía
|
|
26
|
-
> del DS» sale de su texto o de su código; el resto es
|
|
26
|
+
> del DS» sale de su texto o de su código; lo marcado «canon» ya lo aprobó el dueño; el resto es
|
|
27
|
+
> **propuesta, falta aprobación**.
|
|
27
28
|
>
|
|
28
29
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. En el DS no lo
|
|
29
30
|
> monta ningún componente: `sui-table` solo lo nombra como contenido que se proyecta en una celda.
|
|
@@ -39,11 +40,11 @@ conectados en una zona. Cada persona se ve chica; el grupo es lo que cuenta.
|
|
|
39
40
|
|
|
40
41
|
| input | valor | cuándo | fuente |
|
|
41
42
|
|---|---|---|---|
|
|
42
|
-
| `size` | `sm` (24) | Dentro de una fila: «los que tomaron pedidos hoy». |
|
|
43
|
-
| `size` | `md` (32, default SUI) | La card del equipo de un local. |
|
|
44
|
-
| `size` | `lg` (40) | La cabecera de un panel (repartidores en la zona). |
|
|
45
|
-
| `size` | `xs`, `xl` a `5xl` | No usar hoy: en `xs` el «+N» no se lee; desde `xl` ya no es un resumen. |
|
|
46
|
-
| `max` | `3` | Tres visibles y el «+N», como el ejemplo de la guía. El default de SUI es `4`. |
|
|
43
|
+
| `size` | `sm` (24) | Dentro de una fila: «los que tomaron pedidos hoy». | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
44
|
+
| `size` | `md` (32, default SUI) | La card del equipo de un local. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
45
|
+
| `size` | `lg` (40) | La cabecera de un panel (repartidores en la zona). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
46
|
+
| `size` | `xs`, `xl` a `5xl` | No usar hoy: en `xs` el «+N» no se lee; desde `xl` ya no es un resumen. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
47
|
+
| `max` | `3` | Tres visibles y el «+N», como el ejemplo de la guía. El default de SUI es `4`. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
47
48
|
| `items` | — | Cada item es `{ src, initials, color, alt }`. Las reglas de foto y color son las de `sui-avatar`: la foto de otra persona es su `avatarUrl` de Storage, y el `color` va **siempre** explícito por rol (sin `color` el item cae a `slate`). | canon (`CLAUDE.md`, «Fotos de otra persona») · canon (aprobado por el dueño, 03-10-2026: naranja local, verde repartidor, azul cliente) |
|
|
48
49
|
|
|
49
50
|
Usos de hoy que rompen la regla: **0** (no hay usos).
|
|
@@ -53,7 +54,10 @@ Usos de hoy que rompen la regla: **0** (no hay usos).
|
|
|
53
54
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
54
55
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
55
56
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
56
|
-
el celular (cliente, repartidor) va directo el valor de mobile.
|
|
57
|
+
el celular (cliente, repartidor) va directo el valor de mobile. No se toca, así que la tablet va
|
|
58
|
+
con el valor de web, y el celular chico (< 380 px) también (D16).
|
|
59
|
+
Es **canon (dueño, 05-10-2026, P1 b)**: un paso más grande en el celular que en computadora, y
|
|
60
|
+
se migra todo ahora, no solo al tocar cada pantalla.
|
|
57
61
|
|
|
58
62
|
| uso | mobile | web |
|
|
59
63
|
|---|---|---|
|
package/docs/sui-badge/README.md
CHANGED
|
@@ -127,8 +127,8 @@ un paso más fuerte con texto **oscuro**; `filled` = fondo saturado con texto bl
|
|
|
127
127
|
| eje | valor | cuándo | fuente |
|
|
128
128
|
|---|---|---|---|
|
|
129
129
|
| `size` | `small` (default, 16 px) | Lo normal. **Va en MAYÚSCULAS.** | según la guía del DS (mayúsculas y default) |
|
|
130
|
-
| `size` | `small` |
|
|
131
|
-
| `size` | `medium` (20 px) |
|
|
130
|
+
| `size` | `small` | No usar: es chico (D16). Hasta el 05-10-2026 era el normal de web, en mayúsculas. | canon (dueño, 05-10-2026, D16); reemplaza la regla del 03-10-2026 |
|
|
131
|
+
| `size` | `medium` (20 px) | **Lo normal en la computadora, la tablet y el celular chico** (el badge no se toca), sin mayúsculas. En el celular, `large` o `xlarge` (ver «Tamaño»). | canon (dueño, 05-10-2026, D16); antes, canon del 03-10-2026 solo para nombres, montos y títulos grandes |
|
|
132
132
|
| `type` | `number` | **Números**: queda cuadrado/circular. | según la guía del DS |
|
|
133
133
|
| `type` | `number` | Va con `filled` cuando el conteo pide acción. | canon (aprobado por el dueño, 03-10-2026) |
|
|
134
134
|
| `type` | `with-dot` | Un estado **vivo** que cambia solo (abierto, en línea, en curso). La guía lo muestra pero no dice cuándo. | canon (aprobado por el dueño, 03-10-2026) |
|
|
@@ -156,7 +156,7 @@ pedidos con muchos estados (`pages/orders/orders.html:113`) se quedan como badge
|
|
|
156
156
|
|
|
157
157
|
## Tamaño en mobile y en web
|
|
158
158
|
|
|
159
|
-
En mobile el badge se lee de más lejos y al lado de textos de 16 px; en
|
|
159
|
+
En mobile el badge se lee de más lejos y al lado de textos de 16 px; en la computadora, la tablet y el celular chico va `medium`, un paso más chico (P1 b), y nunca `small` (D16).
|
|
160
160
|
`large` (24) y `xlarge` (28) son extensión SUI del 03-10-2026.
|
|
161
161
|
|
|
162
162
|
| size | alto | texto | ícono del slot |
|
|
@@ -175,16 +175,16 @@ canon (dueño, 04-10-2026):** el badge mantiene su escala propia 12 / 14 / 16 (`
|
|
|
175
175
|
|
|
176
176
|
| uso | mobile | web | fuente |
|
|
177
177
|
|---|---|---|---|
|
|
178
|
-
| estado en una lista o card | `large` (24) | `
|
|
179
|
-
| junto a un título o un monto | `xlarge` (28) | `medium` (20) |
|
|
180
|
-
| conteo (`type="number"`) | `large` (24) | `
|
|
178
|
+
| estado en una lista o card | `large` (24) | `medium` (20) | mobile: canon (aprobado por el dueño, 03-10-2026) · web: canon (dueño, 05-10-2026, D16), antes `small` (03-10-2026) · un paso de diferencia: canon (dueño, 05-10-2026, P1 b) |
|
|
179
|
+
| junto a un título o un monto | `xlarge` (28) | `medium` (20) | canon (dueño, 05-10-2026, P1 b) |
|
|
180
|
+
| conteo (`type="number"`) | `large` (24) | `medium` (20) | canon (dueño, 05-10-2026, P1 b); web `medium`: canon (dueño, 05-10-2026, D16) · antes de migrar, ver en captura que el contador de 24 no tape el ícono de la barra inferior |
|
|
181
181
|
|
|
182
182
|
Patrón (`bp` = `BreakpointsService`, mobile hasta 767 px). Medido el 04-10-2026: solo 6 de los
|
|
183
183
|
214 badges de la app lo aplican (`pages/customer/cart/cart.html:71`,
|
|
184
184
|
`pages/customer/order-history/order-history.html:176`…); el resto va con `size` fijo:
|
|
185
185
|
|
|
186
186
|
```html
|
|
187
|
-
<sui-badge [size]="bp.isMobile() ? 'large' : '
|
|
187
|
+
<sui-badge [size]="bp.isMobile() ? 'large' : 'medium'" …/>
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
## API
|
|
@@ -44,7 +44,7 @@ puesto.
|
|
|
44
44
|
|
|
45
45
|
> La guía del DS dice **para qué** es el banner, pero no cuándo va cada relleno ni cada tipo. Lo
|
|
46
46
|
> marcado «según la guía del DS» sale de su texto o de sus ejemplos publicados; lo marcado
|
|
47
|
-
> «canon» ya lo aprobó el dueño en el README de `sui-alert
|
|
47
|
+
> «canon» ya lo aprobó el dueño (en el README de `sui-alert` o el 05-10-2026); el resto es **propuesta** y falta su ok.
|
|
48
48
|
>
|
|
49
49
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`, sin contar prototipos ni vitrinas
|
|
50
50
|
> (`master-preview`, `master-prototipos`, `mockup-*`, `dx/*`, `_guia-*`, `master-rutina`,
|
|
@@ -67,10 +67,10 @@ Los mismos cinco tipos que `sui-alert`, con el mismo significado.
|
|
|
67
67
|
|
|
68
68
|
| variant | cuándo | ejemplo real de la app | fuente |
|
|
69
69
|
|---|---|---|---|
|
|
70
|
-
| `info` (default) | Un dato de toda la app que conviene saber y no pide nada: hay una versión nueva, estás viendo datos de prueba. | (sin uso hoy) |
|
|
71
|
-
| `success` | Un estado bueno que dura y afecta a todo: «Tu local ya está publicado». Si es la confirmación de un clic, es toast. | (sin uso hoy) |
|
|
72
|
-
| `warning` | Hay que hacer algo pronto o lo que hagas tiene consecuencia para toda la cuenta: el plan vence, estás administrando un local que no es tuyo. | `components/subscription-banner/subscription-banner.html:5` («Tu plan vence en 3 días») · candidato: `components/impersonation-banner/impersonation-banner.ts:17` |
|
|
73
|
-
| `error` | Algo ya pasó y afecta a toda la cuenta. | `components/subscription-banner/subscription-banner.html:5` («Tu plan venció») |
|
|
70
|
+
| `info` (default) | Un dato de toda la app que conviene saber y no pide nada: hay una versión nueva, estás viendo datos de prueba. | (sin uso hoy) | canon (aprobado por el dueño, 05-10-2026, bloque B3) (sigue la regla canon del alert) |
|
|
71
|
+
| `success` | Un estado bueno que dura y afecta a todo: «Tu local ya está publicado». Si es la confirmación de un clic, es toast. | (sin uso hoy) | canon (aprobado por el dueño, 05-10-2026, bloque B3) (sigue la regla canon del alert) |
|
|
72
|
+
| `warning` | Hay que hacer algo pronto o lo que hagas tiene consecuencia para toda la cuenta: el plan vence, estás administrando un local que no es tuyo. | `components/subscription-banner/subscription-banner.html:5` («Tu plan vence en 3 días») · candidato: `components/impersonation-banner/impersonation-banner.ts:17` | canon (aprobado por el dueño, 05-10-2026, bloque B3) (sigue la regla canon del alert) |
|
|
73
|
+
| `error` | Algo ya pasó y afecta a toda la cuenta. | `components/subscription-banner/subscription-banner.html:5` («Tu plan venció») | canon (aprobado por el dueño, 05-10-2026, bloque B3) (sigue la regla canon del alert) |
|
|
74
74
|
| `feature` | Novedad que alcanza a toda la app. **Aquí es gris**, no morado como en el alert. | (sin uso hoy) | canon (decisión documentada en el `.ts`, recogida en el README del alert) |
|
|
75
75
|
|
|
76
76
|
### `variantStyle` — el peso visual
|
|
@@ -79,20 +79,20 @@ Misma pregunta que en el alert: **¿este aviso tiene que ganarle a todo lo demá
|
|
|
79
79
|
|
|
80
80
|
| variantStyle | cuándo | ejemplo real de la app | fuente |
|
|
81
81
|
|---|---|---|---|
|
|
82
|
-
| `lighter` | El aviso **acompaña**: hay que tenerlo presente, pero se puede seguir trabajando. Es el caso normal. | `subscription-banner.html:7` en el caso «vence en N días» (hoy en `light`) |
|
|
83
|
-
| `filled` (default de la guía) | Hay que **actuar ya**, o la app está en un **modo que cambia lo que haces**: el plan venció, estás administrando otro local. Uno a la vez. | `subscription-banner.html:7` («Tu plan venció») |
|
|
84
|
-
| `light` | No usar hoy, como en el alert. **Cuándo sí:** un banner dentro de una zona ya teñida, donde `lighter` se pierde. | — |
|
|
85
|
-
| `stroke` (default SUI) | No usar hoy: un banner blanco con borde se confunde con la barra superior. **Cuándo sí:** arriba de una pantalla a sangre (un mapa o una foto), donde la banda blanca sí se distingue. | — |
|
|
82
|
+
| `lighter` | El aviso **acompaña**: hay que tenerlo presente, pero se puede seguir trabajando. Es el caso normal. | `subscription-banner.html:7` en el caso «vence en N días» (hoy en `light`) | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
83
|
+
| `filled` (default de la guía) | Hay que **actuar ya**, o la app está en un **modo que cambia lo que haces**: el plan venció, estás administrando otro local. Uno a la vez. | `subscription-banner.html:7` («Tu plan venció») | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
84
|
+
| `light` | No usar hoy, como en el alert. **Cuándo sí:** un banner dentro de una zona ya teñida, donde `lighter` se pierde. | — | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
85
|
+
| `stroke` (default SUI) | No usar hoy: un banner blanco con borde se confunde con la barra superior. **Cuándo sí:** arriba de una pantalla a sangre (un mapa o una foto), donde la banda blanca sí se distingue. | — | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
86
86
|
|
|
87
87
|
### `dismissible`, `showIcon`, acción y título
|
|
88
88
|
|
|
89
89
|
| prop | valor | cuándo | fuente |
|
|
90
90
|
|---|---|---|---|
|
|
91
|
-
| `dismissible` | `true` | Solo si el aviso se puede ignorar sin problema (versión nueva, novedad). La guía lo muestra en todos sus ejemplos. | según la guía del DS (que exista) ·
|
|
92
|
-
| `dismissible` | `false` (default) | Todo `filled` y todo aviso que tiene que seguir ahí: plan vencido, administrando otro local. Cerrarlo no arregla nada. |
|
|
93
|
-
| `showIcon` | `true` (default) | Siempre: el ícono es la mitad del significado del tipo. |
|
|
94
|
-
| `showIcon` | `false` | No usar hoy. **Cuándo sí:** cuando se proyecta un avatar o logo en `slot="icon"` (ver abajo), que ya ocupa ese lugar. |
|
|
95
|
-
| `slot="icon"` | avatar o logo | Reemplaza al ícono del tipo: el logo del local que estás administrando. |
|
|
91
|
+
| `dismissible` | `true` | Solo si el aviso se puede ignorar sin problema (versión nueva, novedad). La guía lo muestra en todos sus ejemplos. | según la guía del DS (que exista) · canon (aprobado por el dueño, 05-10-2026, bloque B8) (cuándo) |
|
|
92
|
+
| `dismissible` | `false` (default) | Todo `filled` y todo aviso que tiene que seguir ahí: plan vencido, administrando otro local. Cerrarlo no arregla nada. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
93
|
+
| `showIcon` | `true` (default) | Siempre: el ícono es la mitad del significado del tipo. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
94
|
+
| `showIcon` | `false` | No usar hoy. **Cuándo sí:** cuando se proyecta un avatar o logo en `slot="icon"` (ver abajo), que ya ocupa ese lugar. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
95
|
+
| `slot="icon"` | avatar o logo | Reemplaza al ícono del tipo: el logo del local que estás administrando. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
96
96
|
| `slot="action"` | **un** `sui-link-button` `variant="modifiable"` con `[underline]="true"` | La única acción del banner: «Renovar plan», «Salir», «Actualizar». Nunca un `sui-button`, nunca dos. | según la guía del DS |
|
|
97
97
|
| `title` | frase corta | Lo que pasa, en sentence case y sin punto final. | canon (copy de la app) |
|
|
98
98
|
| `description` | complemento | Qué hacer o hasta cuándo. Una línea en web; en mobile se envuelve. | según la guía del DS (una línea) |
|
|
@@ -106,7 +106,7 @@ Misma pregunta que en el alert: **¿este aviso tiene que ganarle a todo lo demá
|
|
|
106
106
|
- **Barra hecha a mano que es un banner — 1:** `components/impersonation-banner/impersonation-banner.ts:17`
|
|
107
107
|
(«Estás administrando … como super admin» + botón «Salir»), con `#fff` y `rgb()` sueltos. Pasaría a
|
|
108
108
|
`<sui-banner variant="warning" variantStyle="filled">` con un link «Salir».
|
|
109
|
-
- **
|
|
109
|
+
- **Rompe el canon (aprobado por el dueño, 05-10-2026, bloque B2) — 1 `light` → `lighter`:** `components/subscription-banner/subscription-banner.html:7`
|
|
110
110
|
(el caso «vence en N días»).
|
|
111
111
|
- No confundir: `components/upgrade-banner/` (6 pantallas) se llama «banner» pero es un aviso dentro
|
|
112
112
|
de una sección; su destino es `sui-alert`, ya anotado en `docs/CANON-SUI.md`.
|
|
@@ -25,8 +25,8 @@ Regla corta: **la marca es lo que se muestra → brand-logo · es un ícono más
|
|
|
25
25
|
|
|
26
26
|
## Qué variante usar
|
|
27
27
|
|
|
28
|
-
> **La guía del DS no tiene página para este componente.**
|
|
29
|
-
>
|
|
28
|
+
> **La guía del DS no tiene página para este componente.** Lo marcado canon está
|
|
29
|
+
> aprobado; lo que sigue en **propuesta** espera decisión.
|
|
30
30
|
>
|
|
31
31
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. Lo usan por dentro
|
|
32
32
|
> `sui-content-card` (`type="brand"`), `sui-social-button`, `sui-content-label`,
|
|
@@ -37,10 +37,10 @@ Regla corta: **la marca es lo que se muestra → brand-logo · es un ícono más
|
|
|
37
37
|
|
|
38
38
|
| valor | cuándo | fuente |
|
|
39
39
|
|---|---|---|
|
|
40
|
-
| `whatsapp` | Soporte y contacto con el negocio. |
|
|
41
|
-
| `google`, `apple` | Entrar con esa cuenta (vía `sui-social-button`). |
|
|
42
|
-
| `instagram`, `facebook` | Las redes del negocio o de la app. |
|
|
43
|
-
| las otras 23 (`adobe`, `notion`, `slack`, `stripe`…) | No usar hoy. |
|
|
40
|
+
| `whatsapp` | Soporte y contacto con el negocio. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
41
|
+
| `google`, `apple` | Entrar con esa cuenta (vía `sui-social-button`). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
42
|
+
| `instagram`, `facebook` | Las redes del negocio o de la app. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
43
|
+
| las otras 23 (`adobe`, `notion`, `slack`, `stripe`…) | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
44
44
|
|
|
45
45
|
**No hay TikTok** en el catálogo (son 28 marcas), aunque la app hace publicidad ahí.
|
|
46
46
|
|
|
@@ -48,28 +48,28 @@ Regla corta: **la marca es lo que se muestra → brand-logo · es un ícono más
|
|
|
48
48
|
|
|
49
49
|
| valor | cuándo | fuente |
|
|
50
50
|
|---|---|---|
|
|
51
|
-
| `original` (default) | El normal: sobre fondo claro, con su color oficial. |
|
|
52
|
-
| `white` | Sobre fondo oscuro o sobre foto. |
|
|
53
|
-
| `black` | No usar hoy. |
|
|
51
|
+
| `original` (default) | El normal: sobre fondo claro, con su color oficial. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
52
|
+
| `white` | Sobre fondo oscuro o sobre foto. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
53
|
+
| `black` | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
54
54
|
|
|
55
55
|
### `size`
|
|
56
56
|
|
|
57
57
|
| valor | px | cuándo | fuente |
|
|
58
58
|
|---|---|---|---|
|
|
59
|
-
| `xs` | 16 | Dentro de un texto o de un tag. |
|
|
60
|
-
| `sm` | 20 | Dentro de un botón (lo usa `sui-social-button`). |
|
|
61
|
-
| `md` (default) | 24 | Fila de una lista. |
|
|
62
|
-
| `lg` | 32 | Tarjeta de contacto (el tamaño del Figma). |
|
|
63
|
-
| `xl` | 40 | Tarjeta grande. |
|
|
64
|
-
| `2xl` | 48 | Lo pide `sui-content-label` en tamaño grande. |
|
|
59
|
+
| `xs` | 16 | Dentro de un texto o de un tag. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
60
|
+
| `sm` | 20 | Dentro de un botón (lo usa `sui-social-button`). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
61
|
+
| `md` (default) | 24 | Fila de una lista. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
62
|
+
| `lg` | 32 | Tarjeta de contacto (el tamaño del Figma). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
63
|
+
| `xl` | 40 | Tarjeta grande. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
64
|
+
| `2xl` | 48 | Lo pide `sui-content-label` en tamaño grande. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
65
65
|
|
|
66
66
|
### `href`, `target`, `rel`, `disabled`, `ariaLabel`
|
|
67
67
|
|
|
68
68
|
| input | cuándo | fuente |
|
|
69
69
|
|---|---|---|
|
|
70
|
-
| `href` + `target="_blank"` | El logo lleva a la red social. `rel` ya viene en `noopener noreferrer`. |
|
|
71
|
-
| `ariaLabel` | Con `href`, siempre: «Síguenos en Instagram». Sin `href`, el default («Logo de Instagram») alcanza. |
|
|
72
|
-
| `disabled` | No usar hoy. |
|
|
70
|
+
| `href` + `target="_blank"` | El logo lleva a la red social. `rel` ya viene en `noopener noreferrer`. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
71
|
+
| `ariaLabel` | Con `href`, siempre: «Síguenos en Instagram». Sin `href`, el default («Logo de Instagram») alcanza. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
72
|
+
| `disabled` | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
73
73
|
|
|
74
74
|
Usos de hoy que rompen la regla: **0**.
|
|
75
75
|
|
|
@@ -78,12 +78,13 @@ Usos de hoy que rompen la regla: **0**.
|
|
|
78
78
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
79
79
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
80
80
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
81
|
-
el celular (cliente, repartidor) va directo el valor de mobile. Todo es **propuesta
|
|
81
|
+
el celular (cliente, repartidor) va directo el valor de mobile. Todo es **propuesta**, salvo lo
|
|
82
|
+
marcado canon.
|
|
82
83
|
|
|
83
|
-
| uso | mobile | web |
|
|
84
|
-
|
|
85
|
-
| tarjeta de contacto, fila | `lg` (32) | `md` (24) |
|
|
86
|
-
| como link (con `href`, se toca) | `2xl` (48) | `lg` (32) |
|
|
84
|
+
| uso | mobile | web | fuente |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| tarjeta de contacto, fila | `lg` (32) | `md` (24) | canon (dueño, 05-10-2026, P1 b) |
|
|
87
|
+
| como link (con `href`, se toca) | `2xl` (48) | `lg` (32) | mobile: canon (decisión del dueño 04-10-2026, piso táctil 44: `2xl` es el único size que llega) · web: propuesta |
|
|
87
88
|
|
|
88
89
|
```html
|
|
89
90
|
<sui-brand-logo company="instagram" [size]="bp.isMobile() ? '2xl' : 'lg'" [href]="url" target="_blank"
|
|
@@ -31,11 +31,11 @@ desplegable al lado o un separador propio. Hoy no hay ningún caso.
|
|
|
31
31
|
| input | valor | cuándo | fuente |
|
|
32
32
|
|---|---|---|---|
|
|
33
33
|
| `label` | texto | El nombre del nivel. | según la guía del DS |
|
|
34
|
-
| `icon` | nombre RemixIcon | Solo el primer nivel (inicio), y con `ariaLabel` si va sin texto. | según la guía del DS (el ícono existe); el cuándo
|
|
34
|
+
| `icon` | nombre RemixIcon | Solo el primer nivel (inicio), y con `ariaLabel` si va sin texto. | según la guía del DS (el ícono existe); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
35
35
|
| `href` | ruta | Con ruta: dibuja un `<a>`; una ruta interna (`/…`) navega con el router sin recargar. | según la guía del DS (como enlace) |
|
|
36
36
|
| `href` | vacío | Dibuja un `<button>` y avisa por `(clicked)`. | según el código |
|
|
37
37
|
| `active` | `true` | La página actual: no es clicable, va en negro y lleva `aria-current="page"`. | según la guía del DS |
|
|
38
|
-
| `ariaLabel` | texto | Obligatorio cuando va solo el ícono. |
|
|
38
|
+
| `ariaLabel` | texto | Obligatorio cuando va solo el ícono. | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
39
39
|
|
|
40
40
|
Usos de hoy que rompen las reglas: **0** (no se usa).
|
|
41
41
|
|
|
@@ -46,7 +46,7 @@ no se usa en mobile.
|
|
|
46
46
|
|
|
47
47
|
| uso | mobile | web | fuente |
|
|
48
48
|
|---|---|---|---|
|
|
49
|
-
| miga | no se usa | el componente (dentro de `sui-breadcrumbs`) |
|
|
49
|
+
| miga | no se usa | el componente (dentro de `sui-breadcrumbs`) | canon (aprobado por el dueño, 05-10-2026, bloque B7) |
|
|
50
50
|
|
|
51
51
|
```html
|
|
52
52
|
@if (!bp.isMobile()) { <sui-breadcrumbs [items]="ruta()" /> }
|
|
@@ -38,17 +38,17 @@ Regla corta: **3+ niveles en web → breadcrumbs · mobile o 1-2 niveles → fle
|
|
|
38
38
|
| divider | cuándo | fuente |
|
|
39
39
|
|---|---|---|
|
|
40
40
|
| `arrow` (default) | Siempre en la app. | según la guía del DS (es su default) |
|
|
41
|
-
| `slash` | No: misma función que la flecha; dos estilos en la misma app se leen como dos cosas. | según la guía del DS (la forma existe); el no
|
|
42
|
-
| `dot` | No: el punto separa metadatos («12 min · S/ 4.50»), no niveles. Extensión de SUI. |
|
|
41
|
+
| `slash` | No: misma función que la flecha; dos estilos en la misma app se leen como dos cosas. | según la guía del DS (la forma existe); el no: canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
42
|
+
| `dot` | No: el punto separa metadatos («12 min · S/ 4.50»), no niveles. Extensión de SUI. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
43
43
|
|
|
44
44
|
### Ítems (`items`)
|
|
45
45
|
|
|
46
46
|
| qué | cuándo | fuente |
|
|
47
47
|
|---|---|---|
|
|
48
48
|
| `label` | Siempre el nombre real del nivel («Hamburguesas», no «Categoría»). Un id nunca es el nombre. | canon (CLAUDE.md, «un identificador nunca es el título de nada») |
|
|
49
|
-
| `href` | Cada nivel anterior con su ruta interna (`/empresa/productos`): navega con el router, sin recargar. |
|
|
50
|
-
| sin `href` + `(navigate)` | Cuando volver no es una ruta (cerrar un panel, limpiar un filtro). |
|
|
51
|
-
| `icon` solo en el primero | El inicio como casa (`home-5-line`) con `ariaLabel`. | según la guía del DS (ítems con ícono); el cuándo
|
|
49
|
+
| `href` | Cada nivel anterior con su ruta interna (`/empresa/productos`): navega con el router, sin recargar. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
50
|
+
| sin `href` + `(navigate)` | Cuando volver no es una ruta (cerrar un panel, limpiar un filtro). | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
51
|
+
| `icon` solo en el primero | El inicio como casa (`home-5-line`) con `ariaLabel`. | según la guía del DS (ítems con ícono); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
52
52
|
| `active` | No hace falta: el último ya es el activo. Solo si la página actual no va al final (raro). | según el código |
|
|
53
53
|
|
|
54
54
|
Usos de hoy que rompen las reglas: **0** (no se usa).
|
|
@@ -59,7 +59,7 @@ Alto fijo de **20 px** (texto 14, ícono 20), sin `size`. **No tiene tamaño par
|
|
|
59
59
|
|
|
60
60
|
| uso | mobile | web | fuente |
|
|
61
61
|
|---|---|---|---|
|
|
62
|
-
| ruta de 3+ niveles | no se usa: flecha de volver | `sui-breadcrumbs` |
|
|
62
|
+
| ruta de 3+ niveles | no se usa: flecha de volver | `sui-breadcrumbs` | canon (aprobado por el dueño, 05-10-2026, bloque B7) |
|
|
63
63
|
|
|
64
64
|
```html
|
|
65
65
|
@if (!bp.isMobile()) {
|
|
@@ -98,9 +98,9 @@ Uso medido el 04-10-2026: 123 `large`, 93 `small`, 58 `medium` (5 por default),
|
|
|
98
98
|
| size | cuándo | fuente |
|
|
99
99
|
|---|---|---|
|
|
100
100
|
| `large` (48 px) | Footers de modal y CTA táctiles en mobile. | ya es canon (default de sui-modal-footer); extensión de SUI, la guía no lo tiene |
|
|
101
|
-
| `medium` (40 px, default) |
|
|
102
|
-
| `small` (36) / `xsmall` (32) |
|
|
103
|
-
| `2xsmall` (28) |
|
|
101
|
+
| `medium` (40 px, default) | Todo botón en la computadora: CTA, formularios, acciones de cards, filas, cabeceras y tablas. En el celular chico (< 380 px), a la vista, con el área de 44. La tablet va como el celular. | default según la guía del DS; el «cuándo»: canon (aprobado por el dueño, 05-10-2026, bloque B1) y, para filas, cabeceras y tablas, canon (dueño, 05-10-2026, D16); solo en web (en el teléfono manda el piso táctil de 44) |
|
|
102
|
+
| `small` (36) / `xsmall` (32) | No usar: son chicos. Las acciones de cards, filas y cabeceras van en `medium` en web y `large` en el teléfono. | escala según la guía del DS; no usarlos: canon (dueño, 05-10-2026, D16), reemplaza el «cuándo» del bloque B13 |
|
|
103
|
+
| `2xsmall` (28) | No usar: es chico. Las acciones de ícono en tablas van en `medium` `onlyIcon`; si de verdad no entra, `sui-compact-button`. | escala según la guía del DS; no usarlo: canon (dueño, 05-10-2026, D16), reemplaza el «cuándo» del bloque B13 |
|
|
104
104
|
| `xlarge` (52) | Extensión de SUI. Sin uso hoy. | canon (aprobado por el dueño, 03-10-2026) |
|
|
105
105
|
|
|
106
106
|
En la app el patrón responsive ya es `[size]="bp.isMobile() ? 'large' : 'medium'"` (o
|
|
@@ -127,13 +127,15 @@ flujo nuevo cae en la columna de la derecha, se usa (aprobado por el dueño, 03-
|
|
|
127
127
|
## Tamaño en mobile y en web
|
|
128
128
|
|
|
129
129
|
En mobile se toca con el dedo: **44 px como mínimo** (piso táctil, canon del dueño 04-10-2026) y 48
|
|
130
|
-
en la acción principal. En
|
|
130
|
+
en la acción principal. En la computadora, `medium` (40); la tablet va como el celular; en el celular chico
|
|
131
|
+
(< 380 px), `medium` a la vista con el área de 44. Nada en `small`, `xsmall` ni `2xsmall` (canon, dueño,
|
|
132
|
+
05-10-2026, D16).
|
|
131
133
|
|
|
132
134
|
| uso | mobile | web | fuente |
|
|
133
135
|
|---|---|---|---|
|
|
134
136
|
| acción principal de la pantalla o footer de modal | `large` (48) | `medium` (40) | canon (aprobado por el dueño, 03-10-2026) (footer de modal siempre `large`) |
|
|
135
|
-
| acción dentro de una card o una fila | `large` (48) | `
|
|
136
|
-
| acción en una tabla
|
|
137
|
+
| acción dentro de una card o una fila | `large` (48) | `medium` (40) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono — antes `medium` (40), que no llega · web: canon (dueño, 05-10-2026, D16), antes `small` / `xsmall` |
|
|
138
|
+
| acción en una tabla | — (no hay tablas en mobile) | `medium` (40) | canon (dueño, 05-10-2026, D16), antes `2xsmall` (03-10-2026) |
|
|
137
139
|
| CTA de landing | `xlarge` (52) | `large` (48) | propuesta, falta aprobación |
|
|
138
140
|
|
|
139
141
|
Patrón (`bp` = `BreakpointsService`, mobile hasta 767 px). Medido el 04-10-2026: 9 `sui-button` con este
|
|
@@ -247,6 +249,6 @@ interface SuiFooterButtonConfig {
|
|
|
247
249
|
</sui-button>
|
|
248
250
|
|
|
249
251
|
<!-- Solo ícono -->
|
|
250
|
-
<sui-button variant="ghost" color="neutral" size="
|
|
252
|
+
<sui-button variant="ghost" color="neutral" [size]="bp.isMobile() ? 'large' : 'medium'" leftIcon="pencil-line" [onlyIcon]="true"
|
|
251
253
|
aria-label="Editar" (click)="editar()" />
|
|
252
254
|
```
|