@ajuarezso/sui-design-system 0.24.0 → 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 +17 -12
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +27 -23
|
@@ -22,8 +22,8 @@ modal, el resultado de una acción («Cuenta bloqueada», «Gracias por califica
|
|
|
22
22
|
|
|
23
23
|
## Qué variante usar
|
|
24
24
|
|
|
25
|
-
> **La guía del DS no tiene página para este componente.**
|
|
26
|
-
>
|
|
25
|
+
> **La guía del DS no tiene página para este componente.** Las reglas marcadas canon están
|
|
26
|
+
> aprobadas (05-10-2026); los tamaños quedaron en canon el 05-10-2026 (P1 b).
|
|
27
27
|
>
|
|
28
28
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. Lo usan por dentro
|
|
29
29
|
> `sui-content-label` y `sui-payment-icon`.
|
|
@@ -32,8 +32,8 @@ modal, el resultado de una acción («Cuenta bloqueada», «Gracias por califica
|
|
|
32
32
|
|
|
33
33
|
| valor | cuándo | fuente |
|
|
34
34
|
|---|---|---|
|
|
35
|
-
| `lighter` | El ícono dice un estado: el color del fondo **es** el significado («Cuenta bloqueada» en rojo, «Calificación enviada» en verde). |
|
|
36
|
-
| `stroke` (default) | Ícono neutro al inicio de una fila, sobre fondo blanco. **Siempre con `color="gray"`.** |
|
|
35
|
+
| `lighter` | El ícono dice un estado: el color del fondo **es** el significado («Cuenta bloqueada» en rojo, «Calificación enviada» en verde). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
36
|
+
| `stroke` (default) | Ícono neutro al inicio de una fila, sobre fondo blanco. **Siempre con `color="gray"`.** | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
37
37
|
|
|
38
38
|
### `color` — mismo significado que el badge, salvo `teal`
|
|
39
39
|
|
|
@@ -43,25 +43,25 @@ ni un color para stable.
|
|
|
43
43
|
|
|
44
44
|
| valor | estado de la paleta | cuándo | fuente |
|
|
45
45
|
|---|---|---|---|
|
|
46
|
-
| `gray` (default) | faded | Neutro. El único color para `stroke`. |
|
|
47
|
-
| `blue` | information | Información. |
|
|
48
|
-
| `orange` | warning | Pendiente, pide atención. |
|
|
49
|
-
| `red` | error | Error, bloqueado, rechazado. |
|
|
50
|
-
| `green` | success | Bien, listo, aprobado. |
|
|
51
|
-
| `yellow` | away | En pausa. |
|
|
52
|
-
| `purple` | feature | Novedad. |
|
|
53
|
-
| `pink` | highlighted | Destacado. |
|
|
54
|
-
| `teal` | verified | Verificado. |
|
|
46
|
+
| `gray` (default) | faded | Neutro. El único color para `stroke`. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
47
|
+
| `blue` | information | Información. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
48
|
+
| `orange` | warning | Pendiente, pide atención. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
49
|
+
| `red` | error | Error, bloqueado, rechazado. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
50
|
+
| `green` | success | Bien, listo, aprobado. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
51
|
+
| `yellow` | away | En pausa. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
52
|
+
| `purple` | feature | Novedad. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
53
|
+
| `pink` | highlighted | Destacado. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
54
|
+
| `teal` | verified | Verificado. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
55
55
|
|
|
56
56
|
### `size`
|
|
57
57
|
|
|
58
58
|
| valor | ícono | cuándo | fuente |
|
|
59
59
|
|---|---|---|---|
|
|
60
|
-
| `32` | 20 | Filas densas. |
|
|
61
|
-
| `40` (default) | 20 | Filas de una lista. |
|
|
62
|
-
| `48` | 24 | Cards. |
|
|
63
|
-
| `56` | 28 | Cabecera de un modal. |
|
|
64
|
-
| `64` | 32 | El resultado de un modal: cuenta bloqueada, calificación enviada. |
|
|
60
|
+
| `32` | 20 | Filas densas. | canon (dueño, 05-10-2026, P1 b) |
|
|
61
|
+
| `40` (default) | 20 | Filas de una lista. | canon (dueño, 05-10-2026, P1 b) |
|
|
62
|
+
| `48` | 24 | Cards. | canon (dueño, 05-10-2026, P1 b) |
|
|
63
|
+
| `56` | 28 | Cabecera de un modal. | canon (dueño, 05-10-2026, P1 b) |
|
|
64
|
+
| `64` | 32 | El resultado de un modal: cuenta bloqueada, calificación enviada. | canon (dueño, 05-10-2026, P1 b) |
|
|
65
65
|
|
|
66
66
|
**Usos de hoy que romperían la propuesta: 7 círculos con ícono hechos a mano.** Dos son un
|
|
67
67
|
`sui-key-icon` `lighter` exacto: `components/cuenta-bloqueada/cuenta-bloqueada.html:4` (64 px,
|
|
@@ -77,7 +77,10 @@ Se encontraron buscando reglas `*icon*` con `border-radius: 50%`, fondo y 32–6
|
|
|
77
77
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
78
78
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
79
79
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
80
|
-
el celular (cliente, repartidor) va directo el valor de mobile.
|
|
80
|
+
el celular (cliente, repartidor) va directo el valor de mobile. No se toca, así que la tablet va
|
|
81
|
+
con el valor de web, y el celular chico (< 380 px) también (D16).
|
|
82
|
+
Es **canon (dueño, 05-10-2026, P1 b)**: un paso más grande en el celular que en computadora, y
|
|
83
|
+
se migra todo ahora, no solo al tocar cada pantalla.
|
|
81
84
|
|
|
82
85
|
| uso | mobile | web |
|
|
83
86
|
|---|---|---|
|
|
@@ -73,7 +73,7 @@ Es el reemplazo del `sui-button` `ghost` `primary`.
|
|
|
73
73
|
|---|---|---|
|
|
74
74
|
| `large` (24 px, texto 16, ícono 20) | Mobile, donde se lee y se toca con el dedo: el link suelto de una pantalla de teléfono. | propuesta: el tamaño es extensión SUI aprobada (03-10-2026); el «cuándo» falta aprobarlo |
|
|
75
75
|
| `medium` (20 px, default) | Lo normal: cabeceras de sección, párrafos, acciones sueltas. | default según la guía del DS; el «cuándo» es canon (aprobado por el dueño, 03-10-2026) |
|
|
76
|
-
| `small` (16 px) | Junto a un dato en una fila
|
|
76
|
+
| `small` (16 px) | No usar: es chico. Junto a un dato en una fila («Cambiar», «Mi billetera») va `medium` en web. | canon (dueño, 05-10-2026, D16), reemplaza la regla del 03-10-2026 |
|
|
77
77
|
|
|
78
78
|
### `underline`
|
|
79
79
|
|
|
@@ -87,8 +87,8 @@ Es el reemplazo del `sui-button` `ghost` `primary`.
|
|
|
87
87
|
| prop | cuándo | fuente |
|
|
88
88
|
|---|---|---|
|
|
89
89
|
| `rightIcon` (`arrow-right-s-line`) | Cuando el link lleva a otra pantalla: «Ver la carta», «Mi billetera». | canon (aprobado por el dueño, 03-10-2026) |
|
|
90
|
-
| `leftIcon` | Cuando el ícono dice la acción: descargar, editar, agregar, ver. «Descargar la app», «Agregar nota para el conductor». |
|
|
91
|
-
| los dos a la vez | No: con dos íconos el link deja de leerse como texto. |
|
|
90
|
+
| `leftIcon` | Cuando el ícono dice la acción: descargar, editar, agregar, ver. «Descargar la app», «Agregar nota para el conductor». | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
91
|
+
| los dos a la vez | No: con dos íconos el link deja de leerse como texto. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
92
92
|
|
|
93
93
|
Los íconos son nombres RemixIcon sin el prefijo `ri-`. Miden 20 px en `large` y `medium`, y 16 px en `small`.
|
|
94
94
|
|
|
@@ -96,7 +96,7 @@ Los íconos son nombres RemixIcon sin el prefijo `ri-`. Miden 20 px en `large` y
|
|
|
96
96
|
|
|
97
97
|
| disabled | cuándo | fuente |
|
|
98
98
|
|---|---|---|
|
|
99
|
-
| `true` | La acción existe pero ahora no se puede: mientras se guarda, mientras se procesa otra acción. Mejor que esconderla si la persona la espera en ese lugar. | cómo se ve: según la guía del DS · cuándo:
|
|
99
|
+
| `true` | La acción existe pero ahora no se puede: mientras se guarda, mientras se procesa otra acción. Mejor que esconderla si la persona la espera en ese lugar. | cómo se ve: según la guía del DS · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
100
100
|
|
|
101
101
|
Ejemplos: `components/add-product-modal/add-product-modal.html:339` («Vista previa» mientras guarda),
|
|
102
102
|
`pages/orders/orders.html:233`.
|
|
@@ -105,18 +105,21 @@ Ejemplos: `components/add-product-modal/add-product-modal.html:339` («Vista pre
|
|
|
105
105
|
|
|
106
106
|
| prop | cuándo | fuente |
|
|
107
107
|
|---|---|---|
|
|
108
|
-
| `href` | Navegar, sin otra acción: el componente pinta un `<a>` real. Las rutas internas (`/cliente/…`) navegan con el Router, sin recargar. |
|
|
109
|
-
| `target="_blank"` | Solo para destinos externos: la descarga, un documento, WhatsApp. **Pon también `rel="noopener noreferrer"`**: aquí el default de `rel` es `null`. |
|
|
110
|
-
| `type="submit"` | Solo dentro de un `<form>`. El resto, `button` (default). |
|
|
111
|
-
| `ariaLabel` | Cuando el texto visible no basta fuera de contexto: «Descargar la app» → «Descargar la app de Master Pedidos». |
|
|
108
|
+
| `href` | Navegar, sin otra acción: el componente pinta un `<a>` real. Las rutas internas (`/cliente/…`) navegan con el Router, sin recargar. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
109
|
+
| `target="_blank"` | Solo para destinos externos: la descarga, un documento, WhatsApp. **Pon también `rel="noopener noreferrer"`**: aquí el default de `rel` es `null`. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
110
|
+
| `type="submit"` | Solo dentro de un `<form>`. El resto, `button` (default). | canon (aprobado por el dueño, 05-10-2026, bloque B10) (mismo criterio que `sui-button`) |
|
|
111
|
+
| `ariaLabel` | Cuando el texto visible no basta fuera de contexto: «Descargar la app» → «Descargar la app de Master Pedidos». | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
112
112
|
|
|
113
113
|
## Tamaño en mobile y en web
|
|
114
114
|
|
|
115
|
-
En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En
|
|
116
|
-
va
|
|
117
|
-
(`
|
|
118
|
-
|
|
119
|
-
|
|
115
|
+
En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En la tablet
|
|
116
|
+
(`pointer: coarse`) va igual que en el celular, porque también se toca; en la computadora
|
|
117
|
+
(`pointer: fine`), `medium`; en el celular chico (< 380 px), `medium` a la vista sin bajar el área de 44.
|
|
118
|
+
Nada en `small` ni `xsmall` (canon, dueño, 05-10-2026, D16; reemplaza al «tamaño por plataforma» del
|
|
119
|
+
03-10-2026, que bajaba la web a `small`). Hoy la app lo resuelve con `BreakpointsService`
|
|
120
|
+
(`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px): `[size]="bp.isMobile() ? 'large' : 'medium'"`,
|
|
121
|
+
que todavía deja la tablet en `medium` (el helper de D16 está propuesto en la hoja de decisiones). Medido el 04-10-2026 en `master-pedidos`: 166 `[size]`
|
|
122
|
+
con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`); los 24 que bajan de `medium` se migran.
|
|
120
123
|
|
|
121
124
|
| size | alto | texto | ícono |
|
|
122
125
|
|---|---|---|---|
|
|
@@ -130,17 +133,17 @@ con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`). Regla
|
|
|
130
133
|
| uso | mobile | web | fuente |
|
|
131
134
|
|---|---|---|---|
|
|
132
135
|
| link suelto (cabecera de sección, «Omitir», «Ver todas») | `large` (24) | `medium` (20) | web: canon (aprobado por el dueño, 03-10-2026) · mobile `large`: propuesta: el tamaño es extensión SUI aprobada (03-10-2026); el «cuándo» falta aprobarlo (antes era `medium`) |
|
|
133
|
-
| junto a un dato en una fila («Cambiar», «Mi billetera») | `medium` (20) | `
|
|
134
|
-
| dentro de un párrafo | el del texto que lo rodea | el del texto que lo rodea |
|
|
136
|
+
| junto a un dato en una fila («Cambiar», «Mi billetera») | `medium` (20) | `medium` (20) | web: canon (dueño, 05-10-2026, D16), antes `small` · mobile `medium`: canon (aprobado por el dueño, 03-10-2026); D16 lo llevaría a `large`, pero el tamaño del link en el teléfono espera P8 |
|
|
137
|
+
| dentro de un párrafo | el del texto que lo rodea | el del texto que lo rodea | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
135
138
|
|
|
136
139
|
```html
|
|
137
140
|
<sui-link-button variant="primary" [size]="bp.isMobile() ? 'large' : 'medium'" rightIcon="arrow-right-s-line">Ver todas</sui-link-button>
|
|
138
|
-
<sui-link-button variant="gray"
|
|
141
|
+
<sui-link-button variant="gray" size="medium" rightIcon="arrow-right-s-line">Mi billetera</sui-link-button>
|
|
139
142
|
```
|
|
140
143
|
|
|
141
144
|
**Ningún tamaño llega a 44 px**: el link mide 16–24 de alto y no tiene padding. En mobile el área
|
|
142
145
|
táctil la pone el contenedor: la fila o el bloque donde vive tiene que medir 44 px o más de alto, o
|
|
143
|
-
dejar aire alrededor del link. `small` (16) no va en
|
|
146
|
+
dejar aire alrededor del link. `small` (16) no va en ningún lado (D16, 05-10-2026). Medido el 04-10-2026: los 4 de
|
|
144
147
|
repartidor y cliente ya usan `[size]="bp.isMobile() ? 'medium' : 'small'"`
|
|
145
148
|
(`pages/driver/driver-profile/driver-profile.html:258` y `:264`,
|
|
146
149
|
`pages/driver/driver-dashboard/driver-dashboard.html:1092`,
|
|
@@ -208,7 +211,7 @@ Slots: `<ng-content>` (el texto).
|
|
|
208
211
|
<sui-link-button variant="primary" (clicked)="verTodas()">Ver todas</sui-link-button>
|
|
209
212
|
|
|
210
213
|
<!-- Junto a un dato, lleva a otra pantalla -->
|
|
211
|
-
<sui-link-button variant="gray"
|
|
214
|
+
<sui-link-button variant="gray" rightIcon="arrow-right-s-line" (clicked)="irABilletera()">
|
|
212
215
|
Mi billetera
|
|
213
216
|
</sui-link-button>
|
|
214
217
|
|
package/docs/sui-logo/README.md
CHANGED
|
@@ -27,7 +27,8 @@ uno solo.
|
|
|
27
27
|
## Qué variante usar
|
|
28
28
|
|
|
29
29
|
> **La guía del DS no tiene este componente**: es propio de SUI, porque es la marca de la app.
|
|
30
|
-
> Todo lo de abajo es **
|
|
30
|
+
> Todo lo de abajo es **canon** (aprobado por el dueño el 05-10-2026, o la decisión que cita cada fila); los ejemplos salen
|
|
31
|
+
> de cómo se usa hoy.
|
|
31
32
|
>
|
|
32
33
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: 10 logos en 8 archivos, sin contar
|
|
33
34
|
> prototipos ni vitrinas. 4 `horizontal`, 3 `stacked`, 3 `markOnly`; 7 con `[height]` y 3 con `size`.
|
|
@@ -36,9 +37,9 @@ uno solo.
|
|
|
36
37
|
|
|
37
38
|
| valor | cuándo | ejemplo real de la app | fuente |
|
|
38
39
|
|---|---|---|---|
|
|
39
|
-
| `horizontal` (default) | Barras y cabeceras: la M a la izquierda y la palabra en dos líneas. | `layouts/public/public-layout.html:4` · `pages/public/pedido-en-vivo/pedido-en-vivo.html:72` · `pages/role-selector/role-selector.html:10` |
|
|
40
|
-
| `stacked` | Pantallas de marca centradas: la M arriba y la palabra abajo. | `pages/empresa/about/about.html:12` · `components/ota-update/ota-update.html:118` |
|
|
41
|
-
| `[markOnly]="true"` | Donde la palabra no entra o ya está escrita al lado: nav mobile, login. | `layouts/public/public-layout.html:6` · `pages/auth/login/login.html:3` |
|
|
40
|
+
| `horizontal` (default) | Barras y cabeceras: la M a la izquierda y la palabra en dos líneas. | `layouts/public/public-layout.html:4` · `pages/public/pedido-en-vivo/pedido-en-vivo.html:72` · `pages/role-selector/role-selector.html:10` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
41
|
+
| `stacked` | Pantallas de marca centradas: la M arriba y la palabra abajo. | `pages/empresa/about/about.html:12` · `components/ota-update/ota-update.html:118` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
42
|
+
| `[markOnly]="true"` | Donde la palabra no entra o ya está escrita al lado: nav mobile, login. | `layouts/public/public-layout.html:6` · `pages/auth/login/login.html:3` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
42
43
|
|
|
43
44
|
No existe la versión de una sola línea («Master Pedidos» en un renglón): es otro dibujo.
|
|
44
45
|
|
|
@@ -48,14 +49,14 @@ No existe la versión de una sola línea («Master Pedidos» en un renglón): es
|
|
|
48
49
|
|
|
49
50
|
| valor | alto | cuándo | fuente |
|
|
50
51
|
|---|---|---|---|
|
|
51
|
-
| `xs` / `sm` | 16 / 20 | No usar hoy: la palabra no se lee (con `markOnly` sí sirve). |
|
|
52
|
-
| `md` (default) | 24 | Barra de una página pública. |
|
|
53
|
-
| `lg` | 32 | Nav pública, login. |
|
|
54
|
-
| `xl` | 40 | Pantalla de actualización. |
|
|
55
|
-
| `2xl` | 48 | Selector de rol. |
|
|
56
|
-
| `height` | libre | **Solo para más de 48 px**: el apilado de 120 en «Acerca de» y en la actualización. |
|
|
57
|
-
|
|
58
|
-
**Usos de hoy que romperían la
|
|
52
|
+
| `xs` / `sm` | 16 / 20 | No usar hoy: la palabra no se lee (con `markOnly` sí sirve). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
53
|
+
| `md` (default) | 24 | Barra de una página pública. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
54
|
+
| `lg` | 32 | Nav pública, login. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
55
|
+
| `xl` | 40 | Pantalla de actualización. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
56
|
+
| `2xl` | 48 | Selector de rol. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
57
|
+
| `height` | libre | **Solo para más de 48 px**: el apilado de 120 en «Acerca de» y en la actualización. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
58
|
+
|
|
59
|
+
**Usos de hoy que romperían la regla: 4 `[height]` que van a la escala.**
|
|
59
60
|
`components/ota-update/ota-update.html:17` (`40` → `size="xl"`),
|
|
60
61
|
`pages/public/pedido-en-vivo/pedido-en-vivo.html:72` (`22` → `md`),
|
|
61
62
|
`layouts/public/public-layout.html:6` (`28` → `lg`), `pages/customer/about/about.html:19` (`44` → `xl` o `2xl`).
|
|
@@ -64,10 +65,10 @@ No existe la versión de una sola línea («Master Pedidos» en un renglón): es
|
|
|
64
65
|
|
|
65
66
|
| combinación | cuándo | fuente |
|
|
66
67
|
|---|---|---|
|
|
67
|
-
| de marca (default): M `--sui-primary-base` + palabra `--sui-text-strong-950` | Sobre fondo claro. **No hace falta pasar los colores**: ya son el default. |
|
|
68
|
-
| monocromo: todo `--sui-text-strong-950` | Login y nav pública, donde el naranja ya está en el botón principal. |
|
|
69
|
-
| blanco: todo `--sui-static-white` | Sobre naranja o sobre foto. `static-white` no cambia con el tema. |
|
|
70
|
-
| cualquier otro color | No usar. |
|
|
68
|
+
| de marca (default): M `--sui-primary-base` + palabra `--sui-text-strong-950` | Sobre fondo claro. **No hace falta pasar los colores**: ya son el default. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
69
|
+
| monocromo: todo `--sui-text-strong-950` | Login y nav pública, donde el naranja ya está en el botón principal. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
70
|
+
| blanco: todo `--sui-static-white` | Sobre naranja o sobre foto. `static-white` no cambia con el tema. | canon (decisión del dueño, regla de tres blancos del modo oscuro: `static-white` sobre fondo fijo) |
|
|
71
|
+
| cualquier otro color | No usar. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
71
72
|
|
|
72
73
|
**Usos de hoy redundantes: 6** pasan a mano los colores que ya son el default (no rompen nada,
|
|
73
74
|
sobran): `components/ota-update/ota-update.html:17`, `pages/role-selector/role-selector.html:10`,
|
|
@@ -80,15 +81,15 @@ sobran): `components/ota-update/ota-update.html:17`, `pages/role-selector/role-s
|
|
|
80
81
|
|
|
81
82
|
| input | cuándo | fuente |
|
|
82
83
|
|---|---|---|
|
|
83
|
-
| `[decorative]="true"` | Cuando al lado ya está escrito «Master Pedidos» (el título de «Acerca de»): así el lector de pantalla no lo dice dos veces. |
|
|
84
|
-
| `ariaLabel` | No tocar: ya dice «Master Pedidos». |
|
|
84
|
+
| `[decorative]="true"` | Cuando al lado ya está escrito «Master Pedidos» (el título de «Acerca de»): así el lector de pantalla no lo dice dos veces. | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
85
|
+
| `ariaLabel` | No tocar: ya dice «Master Pedidos». | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
85
86
|
|
|
86
87
|
## Tamaño en mobile y en web
|
|
87
88
|
|
|
88
89
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
89
90
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
90
91
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
91
|
-
el celular (cliente, repartidor) va directo el valor de mobile.
|
|
92
|
+
el celular (cliente, repartidor) va directo el valor de mobile. Es **canon (aprobado por el dueño, 05-10-2026, bloque B1)**.
|
|
92
93
|
|
|
93
94
|
| uso | mobile | web |
|
|
94
95
|
|---|---|---|
|
package/docs/sui-modal/README.md
CHANGED
|
@@ -38,7 +38,7 @@ es en desktop** (`size`) y **qué cabecera lleva** (`iconVariant` / `headerIcon`
|
|
|
38
38
|
> trae el header (nodo 466:4778, tipos Basic / Left Icon / Error / Warning / Success / Info en
|
|
39
39
|
> tamaños Small 56 y Medium 80), el footer (472:566), los Status Modals (480:1372) y el overlay
|
|
40
40
|
> (480:2474). No trae do/don't. Lo marcado **canon** sale de `master-pedidos/CLAUDE.md` y
|
|
41
|
-
> `docs/CANON-SUI.md
|
|
41
|
+
> `docs/CANON-SUI.md` o de la aprobación del dueño del 05-10-2026; lo marcado **propuesta** falta aprobar.
|
|
42
42
|
>
|
|
43
43
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: 128 modales, sin contar prototipos ni
|
|
44
44
|
> vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`, `master-rutina`,
|
|
@@ -93,10 +93,10 @@ pantalla entera (fullscreen). Elegirlo es una decisión de desktop.
|
|
|
93
93
|
|
|
94
94
|
| size | cuándo | ejemplo real de la app | fuente |
|
|
95
95
|
|---|---|---|---|
|
|
96
|
-
| `small` (400) | confirmación o aviso: título, una o dos frases y los botones | `pages/customer/order-tracking/order-tracking.html:756` |
|
|
97
|
-
| `medium` (440, default) | formulario corto (hasta ~5 campos) o un detalle simple | `pages/discounts/discounts.html:122` («Crear descuento») |
|
|
98
|
-
| `large` (560) | detalle con tabla o imagen: comprobantes, el detalle de un pedido | `pages/orders/orders.html:146` · `pages/super-admin/master-drivers/master-drivers.html:685` |
|
|
99
|
-
| `xlarge` (720) | mapa, formularios de dos columnas, listas largas de opciones | `components/address-picker-modal/address-picker-modal.html:1` · `pages/customer/checkout/checkout.html:1` |
|
|
96
|
+
| `small` (400) | confirmación o aviso: título, una o dos frases y los botones | `pages/customer/order-tracking/order-tracking.html:756` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
97
|
+
| `medium` (440, default) | formulario corto (hasta ~5 campos) o un detalle simple | `pages/discounts/discounts.html:122` («Crear descuento») | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
98
|
+
| `large` (560) | detalle con tabla o imagen: comprobantes, el detalle de un pedido | `pages/orders/orders.html:146` · `pages/super-admin/master-drivers/master-drivers.html:685` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
99
|
+
| `xlarge` (720) | mapa, formularios de dos columnas, listas largas de opciones | `components/address-picker-modal/address-picker-modal.html:1` · `pages/customer/checkout/checkout.html:1` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
100
100
|
|
|
101
101
|
Hoy: 45 `small`, 63 `medium` (50 explícitos + 13 por default), 5 `large`, 14 `xlarge` y 1 que cambia según el caso.
|
|
102
102
|
|
|
@@ -104,9 +104,9 @@ Hoy: 45 `small`, 63 `medium` (50 explícitos + 13 por default), 5 `large`, 14 `x
|
|
|
104
104
|
|
|
105
105
|
| input | qué dibuja | cuándo | fuente |
|
|
106
106
|
|---|---|---|---|
|
|
107
|
-
| ninguno (Basic) | solo título (+ descripción) y la X | el caso normal: un formulario o un detalle |
|
|
108
|
-
| `iconVariant` | círculo de color con el ícono del estado (`info`, `success`, `warning`, `error`) | el modal **es** un aviso de ese tipo: «Eliminar usuario» (`error`), «Estás a punto de cambiar de local» (`warning`) |
|
|
109
|
-
| `headerIcon` | círculo gris con un ícono propio (Remix) | identifica **qué se está editando**: `edit-line`, `user-add-line`, `time-line`. Gana sobre `iconVariant` |
|
|
107
|
+
| ninguno (Basic) | solo título (+ descripción) y la X | el caso normal: un formulario o un detalle | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
108
|
+
| `iconVariant` | círculo de color con el ícono del estado (`info`, `success`, `warning`, `error`) | el modal **es** un aviso de ese tipo: «Eliminar usuario» (`error`), «Estás a punto de cambiar de local» (`warning`) | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
109
|
+
| `headerIcon` | círculo gris con un ícono propio (Remix) | identifica **qué se está editando**: `edit-line`, `user-add-line`, `time-line`. Gana sobre `iconVariant` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
110
110
|
| `statusAlignment` | quita el header y pone ícono + texto dentro del body (`vertical` centrado, `horizontal` en fila) | pantallas de resultado («Pedido enviado») o confirmaciones con más peso visual. Requiere `iconVariant` o `headerIcon`. 0 usos hoy | según el Figma del DS (Status Modals) |
|
|
111
111
|
|
|
112
112
|
**Usos de hoy que rompen el copy canon** (CANON-SUI: títulos en sentence case):
|
|
@@ -117,9 +117,9 @@ Hoy: 45 `small`, 63 `medium` (50 explícitos + 13 por default), 5 `large`, 14 `x
|
|
|
117
117
|
|
|
118
118
|
| input | default | cuándo cambiarlo | fuente |
|
|
119
119
|
|---|---|---|---|
|
|
120
|
-
| `closeOnBackdrop` | `true` | `false` si el modal tiene un formulario a medio llenar o una operación en curso (`[closeOnBackdrop]="!guardando()"`): un toque fuera no debe tirar lo escrito. Hoy 42 en `false` y 5 dinámicos |
|
|
121
|
-
| `showClose` | `true` | `false` solo cuando la persona **tiene** que elegir un botón (actualización obligatoria, oferta de pedido al repartidor). Hoy 8 |
|
|
122
|
-
| `closeOnEscape` | `true` |
|
|
120
|
+
| `closeOnBackdrop` | `true` | `false` si el modal tiene un formulario a medio llenar o una operación en curso (`[closeOnBackdrop]="!guardando()"`): un toque fuera no debe tirar lo escrito. Hoy 42 en `false` y 5 dinámicos | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
121
|
+
| `showClose` | `true` | `false` solo cuando la persona **tiene** que elegir un botón (actualización obligatoria, oferta de pedido al repartidor). Hoy 8 | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
122
|
+
| `closeOnEscape` | `true` | `false` solo junto con `showClose` `false`, o mientras corre una operación; el resto, `true`: es la salida por teclado en desktop | canon (aprobado por el dueño, 05-10-2026, bloque B13) |
|
|
123
123
|
|
|
124
124
|
### `fullBody` — contenido a sangre
|
|
125
125
|
|
|
@@ -79,8 +79,8 @@ Con `stretch` y algo en el slot izquierdo, se reparte 50 % slot / 50 % botones.
|
|
|
79
79
|
| `false` (default) | modal centrado en desktop: botones a la derecha, del ancho de su texto | según el Figma del DS (tipo Basic) |
|
|
80
80
|
|
|
81
81
|
El componente **no tiene `@media`**: `stretch` se ve igual en las dos plataformas. Hoy 95 de 121
|
|
82
|
-
lo pasan fijo en `true`, así que también en desktop los botones van 50/50. Propuesta
|
|
83
|
-
`[stretch]="bp.isMobile()"` para que desktop vuelva al tipo Basic.
|
|
82
|
+
lo pasan fijo en `true`, así que también en desktop los botones van 50/50. Propuesta, falta
|
|
83
|
+
aprobación: `[stretch]="bp.isMobile()"` para que desktop vuelva al tipo Basic.
|
|
84
84
|
|
|
85
85
|
**Usos de hoy que rompen el canon:**
|
|
86
86
|
|
|
@@ -97,7 +97,7 @@ lo pasan fijo en `true`, así que también en desktop los botones van 50/50. Pro
|
|
|
97
97
|
| uso | mobile | web | fuente |
|
|
98
98
|
|---|---|---|---|
|
|
99
99
|
| botones | `large` (48) | `large` (48) | canon (CLAUDE.md, decisión de marca 2026-07-23; el Figma dibuja `small`) |
|
|
100
|
-
| reparto | `[stretch]="true"`, 50/50 | botones a la derecha | canon en mobile (CANON-SUI §6.3), propuesta en web |
|
|
100
|
+
| reparto | `[stretch]="true"`, 50/50 | botones a la derecha | canon en mobile (CANON-SUI §6.3), propuesta en web (falta aprobación) |
|
|
101
101
|
| borde de arriba | sin borde en el modal a pantalla completa | con borde | componente (`sui-modal.scss`) |
|
|
102
102
|
|
|
103
103
|
`buttonSize` existe para un caso puntual, no para «achicar porque se ve grande». Hoy 0 usos.
|
|
@@ -51,7 +51,7 @@ componente **no la aplica solo**: si lo usas suelto, elige tú.
|
|
|
51
51
|
|---|---|---|---|
|
|
52
52
|
| ninguno | Basic: solo texto | el caso normal | según el Figma del DS |
|
|
53
53
|
| `iconVariant` | ícono del estado en un círculo de su color | el panel **es** un aviso de error, advertencia, éxito o información | propuesta |
|
|
54
|
-
| `icon` | ícono propio (Remix) en un círculo gris | identifica qué se edita (`edit-line`, `user-add-line`). Gana sobre `iconVariant` |
|
|
54
|
+
| `icon` | ícono propio (Remix) en un círculo gris | identifica qué se edita (`edit-line`, `user-add-line`). Gana sobre `iconVariant` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
55
55
|
|
|
56
56
|
## Tamaño en mobile y en web
|
|
57
57
|
|
|
@@ -29,7 +29,7 @@ Story: [Organisms/Modal/Modal Sheet](https://sui-design-system.web.app/?path=/do
|
|
|
29
29
|
|
|
30
30
|
> **No está en la guía del DS: es extensión de SUI**, inspirada en el `ion-modal` en modo sheet
|
|
31
31
|
> de Ionic y en las hojas de Apple Maps. No hay Figma que la legisle. Lo marcado **canon** sale
|
|
32
|
-
> de `master-pedidos/CLAUDE.md
|
|
32
|
+
> de `master-pedidos/CLAUDE.md` o de la aprobación del dueño (05-10-2026); lo demás es **propuesta** sacada del uso real.
|
|
33
33
|
>
|
|
34
34
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: 13 sheets, sin contar prototipos ni
|
|
35
35
|
> vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`, `master-rutina`,
|
|
@@ -47,8 +47,8 @@ conviene copiar una de las dos en vez de inventar otra.
|
|
|
47
47
|
|
|
48
48
|
| patrón | `breakpoints` | `initialBreakpoint` | `backdropBreakpoint` | cuándo | ejemplo real de la app | fuente |
|
|
49
49
|
|---|---|---|---|---|---|---|
|
|
50
|
-
| **Sobre un mapa** | `[0.25, 0.5, 0.7, 1]` (sin `0`) | `0.5` | `1` | el seguimiento: el mapa se usa a cualquier altura y la hoja no se puede cerrar | `pages/customer/order-tracking/order-tracking.html:130` · `pages/driver/driver-order-detail/driver-order-detail.html:60` |
|
|
51
|
-
| **Hoja de lectura** | `[0, 0.92]` | `0.92` | `0` | una lista o detalle que se abre y se cierra deslizando, con el fondo apagado | `pages/customer/order-tracking/order-tracking.html:809` (reseñas) · `pages/customer/checkout/checkout.html:448` (hora) |
|
|
50
|
+
| **Sobre un mapa** | `[0.25, 0.5, 0.7, 1]` (sin `0`) | `0.5` | `1` | el seguimiento: el mapa se usa a cualquier altura y la hoja no se puede cerrar | `pages/customer/order-tracking/order-tracking.html:130` · `pages/driver/driver-order-detail/driver-order-detail.html:60` | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
51
|
+
| **Hoja de lectura** | `[0, 0.92]` | `0.92` | `0` | una lista o detalle que se abre y se cierra deslizando, con el fondo apagado | `pages/customer/order-tracking/order-tracking.html:809` (reseñas) · `pages/customer/checkout/checkout.html:448` (hora) | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
52
52
|
|
|
53
53
|
Hoy: 4 «sobre un mapa» (más 2 variantes con alturas propias: `pages/envios/envios.html:578` y
|
|
54
54
|
`pages/customer/viaje/viaje.html:24`), 5 hojas de lectura en `0.92`–`0.96`, 2 en `[0, 1]` y 1 en
|
|
@@ -60,7 +60,7 @@ Hoy: 4 «sobre un mapa» (más 2 variantes con alturas propias: `pages/envios/en
|
|
|
60
60
|
| `initialBreakpoint` | Tiene que estar en `breakpoints`. | componente |
|
|
61
61
|
| `backdropBreakpoint` | `0` = fondo apagado desde que abre. `1` = **nunca hay backdrop**: el mapa de atrás se toca siempre. | componente |
|
|
62
62
|
| tope en las hojas de lectura | `0.92`, no `1`: deja ver arriba un borde de la pantalla de atrás, que es lo que dice «esto es una hoja». | propuesta |
|
|
63
|
-
| `showHandle` | Déjalo en `true` siempre que la hoja se arrastre. Hoy nadie lo apaga. |
|
|
63
|
+
| `showHandle` | Déjalo en `true` siempre que la hoja se arrastre. Hoy nadie lo apaga. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
64
64
|
| `fullBody` | Solo para contenido a sangre (una foto, un mapa dentro de la hoja). | canon (CLAUDE.md, 2026-07-21) |
|
|
65
65
|
|
|
66
66
|
**Usos de hoy a revisar:**
|
|
@@ -53,30 +53,30 @@ toast · bandeja → notification.**
|
|
|
53
53
|
| `avatar` | `{ initials }` | Solo si no hay foto. Ojo: sale en un círculo negro, **no** con el color por rol (ver Trampas). | según el componente |
|
|
54
54
|
| `avatar` | el isotipo de la app | Avisos **del sistema** sin una persona detrás («Tu plan vence en 3 días»): así toda la bandeja queda en filas iguales. | propuesta |
|
|
55
55
|
| `title` | frase corta | Qué pasó: «Tu pedido llegó». Sentence case, sin punto final. | canon (copy de la app) |
|
|
56
|
-
| `description` | una o dos frases | El detalle que decide si abrirla: «Pollería El Dorado · S/ 42.50». |
|
|
57
|
-
| `timestamp` | texto ya formateado | **Siempre**: la hora es lo que hace bandeja a la bandeja. «Hace 5 min», «Ayer 18:40». | canon (bandeja con hora) · formato: propuesta |
|
|
56
|
+
| `description` | una o dos frases | El detalle que decide si abrirla: «Pollería El Dorado · S/ 42.50». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
57
|
+
| `timestamp` | texto ya formateado | **Siempre**: la hora es lo que hace bandeja a la bandeja. «Hace 5 min», «Ayer 18:40». | canon (bandeja con hora) · formato relativo: canon (CANON-SUI §5.5, «hace 4 min», nunca «4 min atrás») · «Ayer 18:40»: propuesta |
|
|
58
58
|
| `unread` | `true` | Hasta que la persona la abre. El punto es naranja (el primario de la app). | según el componente |
|
|
59
|
-
| `showMore` | `true` | No usar hoy: el botón ⋮ solo aparece con el mouse encima. **Cuándo sí:** en web, acciones por fila (marcar como leída, archivar). |
|
|
60
|
-
| `active` | `true` | No usar hoy: pinta la fila como si tuviera el mouse encima. **Cuándo sí:** navegar la bandeja con las flechas del teclado (ver `sui-notification-footer`). |
|
|
61
|
-
| `dismissible` | `true` | No usar hoy: los avisos de la bandeja se leen, no se cierran. **Cuándo sí:** una bandeja donde se borran avisos uno por uno. |
|
|
59
|
+
| `showMore` | `true` | No usar hoy: el botón ⋮ solo aparece con el mouse encima. **Cuándo sí:** en web, acciones por fila (marcar como leída, archivar). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
60
|
+
| `active` | `true` | No usar hoy: pinta la fila como si tuviera el mouse encima. **Cuándo sí:** navegar la bandeja con las flechas del teclado (ver `sui-notification-footer`). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
61
|
+
| `dismissible` | `true` | No usar hoy: los avisos de la bandeja se leen, no se cierran. **Cuándo sí:** una bandeja donde se borran avisos uno por uno. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
62
62
|
|
|
63
63
|
### `type` — el cuerpo de la fila
|
|
64
64
|
|
|
65
65
|
| type | cuándo | fuente |
|
|
66
66
|
|---|---|---|
|
|
67
67
|
| `basic` (default) | Todas las de hoy: título, descripción y hora. | según el componente |
|
|
68
|
-
| `button` | No usar hoy. **Cuándo sí:** una solicitud que se resuelve desde la misma bandeja, con «Rechazar» / «Aprobar» en `slot="actions"` (por ejemplo, una invitación a un equipo). Secundario a la izquierda, primario a la derecha. |
|
|
69
|
-
| `message` | No usar hoy. **Cuándo sí:** el aviso trae lo que escribió otra persona (la nota del cliente, un mensaje del repartidor), en la burbuja. |
|
|
70
|
-
| `file` | No usar hoy: la app no manda adjuntos. **Cuándo sí:** un comprobante o una boleta adjunta. |
|
|
68
|
+
| `button` | No usar hoy. **Cuándo sí:** una solicitud que se resuelve desde la misma bandeja, con «Rechazar» / «Aprobar» en `slot="actions"` (por ejemplo, una invitación a un equipo). Secundario a la izquierda, primario a la derecha. | canon (aprobado por el dueño, 05-10-2026, bloque B2) · orden: canon |
|
|
69
|
+
| `message` | No usar hoy. **Cuándo sí:** el aviso trae lo que escribió otra persona (la nota del cliente, un mensaje del repartidor), en la burbuja. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
70
|
+
| `file` | No usar hoy: la app no manda adjuntos. **Cuándo sí:** un comprobante o una boleta adjunta. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
71
71
|
|
|
72
72
|
### `variant` y `variantStyle` — el modelo de alert
|
|
73
73
|
|
|
74
74
|
| prop | valor | cuándo | fuente |
|
|
75
75
|
|---|---|---|---|
|
|
76
76
|
| `variant` | `default` (default) | **Siempre** en la bandeja: el tipo lo dice la foto y el texto, no un color. | propuesta |
|
|
77
|
-
| `variant` | `info` · `success` · `warning` · `error` · `feature` | No usar: con tipo y sin foto, la fila se vuelve un alert con borde y sombra. **Cuándo sí:** ninguno; ese aviso es un `sui-alert`. |
|
|
77
|
+
| `variant` | `info` · `success` · `warning` · `error` · `feature` | No usar: con tipo y sin foto, la fila se vuelve un alert con borde y sombra. **Cuándo sí:** ninguno; ese aviso es un `sui-alert`. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
78
78
|
| `variantStyle` | `stroke` (default) | Siempre. Con foto, la fila es plana: sin borde ni sombra. | según el componente |
|
|
79
|
-
| `variantStyle` | `filled` · `light` · `lighter` | No usar: pintan la fila de color, que es lo que hace el alert. **Cuándo sí:** ninguno. |
|
|
79
|
+
| `variantStyle` | `filled` · `light` · `lighter` | No usar: pintan la fila de color, que es lo que hace el alert. **Cuándo sí:** ninguno. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
80
80
|
| `showIcon` | `true` (default) | No cambia nada con foto; el ícono de tipo solo sale en el modelo de alert. | según el componente |
|
|
81
81
|
|
|
82
82
|
### Slots
|
|
@@ -103,7 +103,7 @@ La fila **no tiene `size`**: foto de 40 px, 12 px de relleno, texto de 14.
|
|
|
103
103
|
| la fila | toda la fila se toca para abrirla: mide 64 px o más | igual | según el componente |
|
|
104
104
|
| ⋮ (`showMore`) | se ve de 24 y se toca en 44 × 44 cuando está visible (foco o fila activa); oculto no recibe toques | 24 px | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono |
|
|
105
105
|
| la X (`dismissible`) | se ve de 20 px; **se toca en 44 × 44** | se ve de 20; se toca en 40 × 40 | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono (antes 40, pedido del dueño 03-10-2026): área táctil invisible, extensión SUI |
|
|
106
|
-
| botones de `type="button"` | los pone quien la usa: `[size]="bp.isMobile() ? 'large' : '
|
|
106
|
+
| botones de `type="button"` | los pone quien la usa: `[size]="bp.isMobile() ? 'large' : 'medium'"` | `medium` | mobile `large`: canon (decisión del dueño 04-10-2026, piso táctil 44) · web `medium`: canon (dueño, 05-10-2026, D16), reemplaza el `xsmall` del bloque B1 |
|
|
107
107
|
|
|
108
108
|
## «No usar»: por qué no hoy y cuándo sí
|
|
109
109
|
|
|
@@ -25,7 +25,7 @@ la barra superior, con filas `sui-notification` y la cabecera `sui-notification-
|
|
|
25
25
|
## Qué variante usar
|
|
26
26
|
|
|
27
27
|
> La guía del DS no tiene página para este componente: sale del Figma del DS (pie del panel de
|
|
28
|
-
> notificaciones).
|
|
28
|
+
> notificaciones). Lo marcado **canon** está aprobado; lo que sigue en **propuesta** espera decisión, y «según el componente» describe lo que el código ya hace.
|
|
29
29
|
>
|
|
30
30
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos**. La app no tiene panel
|
|
31
31
|
> desplegable de campana: su bandeja es una pantalla (`pages/notifications/`).
|
|
@@ -33,10 +33,10 @@ la barra superior, con filas `sui-notification` y la cabecera `sui-notification-
|
|
|
33
33
|
| prop | valor | cuándo | fuente |
|
|
34
34
|
|---|---|---|---|
|
|
35
35
|
| `usePrefix` · `useSuffix` | `'Usa'` · `'para moverte'` | Ya son los defaults (03-10-2026); no hace falta pasarlos. | canon (copy de la app: tuteo, español) |
|
|
36
|
-
| `manage` | `'Ajustes de notificaciones'` | El link a los ajustes. Emite `(manageClick)`. |
|
|
36
|
+
| `manage` | `'Ajustes de notificaciones'` | El link a los ajustes. Emite `(manageClick)`. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
37
37
|
| `manage` | `{ label, href }` | Cuando los ajustes son otra ruta: se dibuja un `<a>` de verdad. | según el componente |
|
|
38
38
|
| `manage` | `true` (default) | Dice «Administrar notificaciones» (en español desde 03-10-2026). | propuesta |
|
|
39
|
-
| `manage` | `false` · `null` | Cuando los ajustes ya están a la vista en el mismo panel. |
|
|
39
|
+
| `manage` | `false` · `null` | Cuando los ajustes ya están a la vista en el mismo panel. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
40
40
|
|
|
41
41
|
## Tamaño en mobile y en web
|
|
42
42
|
|
|
@@ -44,7 +44,7 @@ la barra superior, con filas `sui-notification` y la cabecera `sui-notification-
|
|
|
44
44
|
|
|
45
45
|
| uso | mobile | web | fuente |
|
|
46
46
|
|---|---|---|---|
|
|
47
|
-
| el pie entero | no aplica: es ayuda de teclado; en mobile no se muestra (el componente no se oculta solo: lo esconde quien lo usa) | 48 px de alto (14 + 20 de la tecla + 14) | alto: según el componente · ocultarlo en mobile:
|
|
47
|
+
| el pie entero | no aplica: es ayuda de teclado; en mobile no se muestra (el componente no se oculta solo: lo esconde quien lo usa) | 48 px de alto (14 + 20 de la tecla + 14) | alto: según el componente · ocultarlo en mobile: canon (aprobado por el dueño, 05-10-2026, bloque B7) |
|
|
48
48
|
| el link de ajustes | si hiciera falta, un `sui-link-button` `large` suelto | `small` (16 px) | propuesta |
|
|
49
49
|
|
|
50
50
|
```html
|
|
@@ -23,18 +23,18 @@ Archivadas» con el filtro a la derecha, encima de las filas `sui-notification`.
|
|
|
23
23
|
## Qué variante usar
|
|
24
24
|
|
|
25
25
|
> La guía del DS no tiene página para este componente: sale del Figma del DS (cabecera del panel
|
|
26
|
-
> de notificaciones).
|
|
26
|
+
> de notificaciones). Lo marcado **canon** está aprobado por el dueño; «según el componente» describe lo que el código ya hace.
|
|
27
27
|
>
|
|
28
28
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos** (no hay panel de campana).
|
|
29
29
|
|
|
30
30
|
| prop | valor | cuándo | fuente |
|
|
31
31
|
|---|---|---|---|
|
|
32
|
-
| `tabs` | 2 a 4 pestañas | «Todas» primero, luego «No leídas» y los grupos del rol (Pedidos, Promos, Encargos…). Más de 4 no caben en el panel. |
|
|
32
|
+
| `tabs` | 2 a 4 pestañas | «Todas» primero, luego «No leídas» y los grupos del rol (Pedidos, Promos, Encargos…). Más de 4 no caben en el panel. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
33
33
|
| `tabs[].badge` | número > 0 | El conteo de **no leídas**, solo en la pestaña donde importa. Es un `sui-badge` rojo lleno: un conteo que pide acción. | según el componente · regla de badge: canon |
|
|
34
34
|
| `tabs[].dividerBefore` | `true` | Separa lo que no es bandeja activa: «Archivadas» al final. | según el componente (Figma) |
|
|
35
35
|
| `[(active)]` | el `value` de la pestaña | Siempre enlazado: es un model de dos vías. | según el componente |
|
|
36
|
-
| `showFilter` | `true` (default) | Solo si el panel tiene filtros de verdad (por local, por fecha). |
|
|
37
|
-
| `showFilter` | `false` | Lo normal: sin filtros, un botón que no hace nada estorba. |
|
|
36
|
+
| `showFilter` | `true` (default) | Solo si el panel tiene filtros de verdad (por local, por fecha). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
37
|
+
| `showFilter` | `false` | Lo normal: sin filtros, un botón que no hace nada estorba. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
38
38
|
| `filterLabel` | texto | El nombre del botón de filtro para el lector de pantalla. Default «Filtrar». | según el componente |
|
|
39
39
|
|
|
40
40
|
## Tamaño en mobile y en web
|
|
@@ -36,12 +36,12 @@ Regla corta: **código corto que llega por otro canal → otp · cupón o clave
|
|
|
36
36
|
| prop / evento | cuándo | fuente |
|
|
37
37
|
|---|---|---|
|
|
38
38
|
| `type="number"` (default) | Códigos numéricos: teclado de números. | según la guía del DS (códigos numéricos) |
|
|
39
|
-
| `type="text"` | No usar hoy: un código con letras se tipea mejor en un `sui-input`. |
|
|
39
|
+
| `type="text"` | No usar hoy: un código con letras se tipea mejor en un `sui-input`. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
40
40
|
| `length` | `6` para un SMS (lo que manda Firebase); `4` para un código de entrega dictado en voz alta. | propuesta, falta aprobación |
|
|
41
41
|
| `error` | El código no coincide. Pinta todas las celdas; el mensaje va aparte, debajo. | según la guía del DS (ejemplo con error) |
|
|
42
42
|
| `disabled` | Mientras se verifica el código. | según la guía del DS (ejemplo deshabilitado) |
|
|
43
|
-
| `ariaLabel` | Qué código es: «Código que te llegó por SMS». El default es «Código de verificación». |
|
|
44
|
-
| `(completed)` | Verificar apenas se llena, sin botón «Continuar». |
|
|
43
|
+
| `ariaLabel` | Qué código es: «Código que te llegó por SMS». El default es «Código de verificación». | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
44
|
+
| `(completed)` | Verificar apenas se llena, sin botón «Continuar». | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
45
45
|
|
|
46
46
|
## Tamaño en mobile y en web
|
|
47
47
|
|
|
@@ -62,8 +62,8 @@ de seguridad, no el tamaño a elegir: se ve angosto y alto.
|
|
|
62
62
|
|
|
63
63
|
| uso | mobile (390) | web | fuente |
|
|
64
64
|
|---|---|---|---|
|
|
65
|
-
| código de 6 dígitos | `medium` | `large` |
|
|
66
|
-
| código de 4 dígitos | `large` (344 px, entra) | `large` |
|
|
65
|
+
| código de 6 dígitos | `medium` | `large` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
66
|
+
| código de 4 dígitos | `large` (344 px, entra) | `large` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
67
67
|
|
|
68
68
|
```html
|
|
69
69
|
<sui-otp-input [length]="6" [size]="bp.isMobile() ? 'medium' : 'large'" [(value)]="codigo" />
|
|
@@ -27,8 +27,8 @@ toda la pantalla («Agregar», «Exportar»).
|
|
|
27
27
|
## Qué variante usar
|
|
28
28
|
|
|
29
29
|
> **No está en la guía del DS: es extensión de SUI.** Nació como el título de las pantallas del
|
|
30
|
-
> panel de empresa y no tiene Figma. Lo marcado **canon** sale de `master-pedidos/docs/CANON-SUI.md
|
|
31
|
-
> lo
|
|
30
|
+
> panel de empresa y no tiene Figma. Lo marcado **canon** sale de `master-pedidos/docs/CANON-SUI.md` o de la aprobación del dueño (05-10-2026);
|
|
31
|
+
> lo marcado «componente» describe lo que el código ya hace. No queda nada en propuesta.
|
|
32
32
|
>
|
|
33
33
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: 64 page headers, sin contar prototipos ni
|
|
34
34
|
> vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`, `master-rutina`,
|
|
@@ -45,8 +45,8 @@ escala del DS** (CANON-SUI §7): si se homologa, sería `title-h5`.
|
|
|
45
45
|
| pieza | regla | ejemplo real de la app | fuente |
|
|
46
46
|
|---|---|---|---|
|
|
47
47
|
| `title` | El nombre de la pantalla, el mismo que en el menú. Sentence case, sin punto. Nunca un ID. | `pages/discounts/discounts.html:2` | canon (CANON-SUI, copy) |
|
|
48
|
-
| `subtitle` | Una línea que dice **qué se hace aquí**, no que repite el título. | `pages/super-admin/master-orders/master-orders.html:1` |
|
|
49
|
-
| acciones | Las que valen para toda la pantalla: una `filled` como máximo (la principal) y el resto `stroke`. Hoy: 9 `filled`, 7 `stroke`. | `pages/drivers/drivers.html:2` | canon
|
|
48
|
+
| `subtitle` | Una línea que dice **qué se hace aquí**, no que repite el título. | `pages/super-admin/master-orders/master-orders.html:1` | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
49
|
+
| acciones | Las que valen para toda la pantalla: una `filled` como máximo (la principal) y el resto `stroke`. Hoy: 9 `filled`, 7 `stroke`. | `pages/drivers/drivers.html:2` | canon (CANON-SUI §6.2: una sola primaria por pantalla; CLAUDE.md «Botones — composición y orden», 27-07-2026: uno solo `filled`, el secundario `stroke` `neutral`) |
|
|
50
50
|
|
|
51
51
|
**Usos de hoy que rompen el copy canon** (sentence case en botones): `pages/drivers/drivers.html:8`
|
|
52
52
|
(«Nuevo Repartidor»).
|
|
@@ -55,8 +55,8 @@ escala del DS** (CANON-SUI §7): si se homologa, sería `title-h5`.
|
|
|
55
55
|
|
|
56
56
|
| valor | cuándo | fuente |
|
|
57
57
|
|---|---|---|
|
|
58
|
-
| `false` (default) | el caso normal: el título se va con el scroll |
|
|
59
|
-
| `true` | listas largas donde las acciones del header se usan mientras se recorre (filtros, «Agregar»). Le pone fondo blanco. 0 usos hoy |
|
|
58
|
+
| `false` (default) | el caso normal: el título se va con el scroll | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
59
|
+
| `true` | listas largas donde las acciones del header se usan mientras se recorre (filtros, «Agregar»). Le pone fondo blanco. 0 usos hoy | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
60
60
|
|
|
61
61
|
## Tamaño en mobile y en web
|
|
62
62
|
|
|
@@ -68,15 +68,17 @@ El page header **no tiene `size`**. Cambia solo en 767 px:
|
|
|
68
68
|
| disposición | título y subtítulo arriba, acciones **debajo** | título a la izquierda, acciones a la derecha, alineadas abajo | componente |
|
|
69
69
|
| padding vertical | 24 arriba y abajo | 32 arriba, 16 abajo | componente |
|
|
70
70
|
| padding lateral | ninguno: lo pone el contenedor del layout | igual | componente |
|
|
71
|
-
| botones de las acciones | `large` (48) | `
|
|
71
|
+
| botones de las acciones | `large` (48) | `medium` (40) | mobile `large`: canon (decisión del dueño 04-10-2026, piso táctil 44) · web `medium`: canon (dueño, 05-10-2026, D16), reemplaza el `small` del bloque B1 |
|
|
72
72
|
|
|
73
73
|
Los botones de las acciones hoy: 10 `small` fijos, 2 `bp.isMobile() ? 'large' : 'small'`, 2
|
|
74
|
-
`bp.controlSize()` (`large`/`xlarge`), 2 `large`, 1 `medium`.
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
`bp.controlSize()` (`large`/`xlarge`), 2 `large`, 1 `medium`. En mobile, `large` es canon (piso táctil
|
|
75
|
+
44, 04-10-2026: `small` y `medium` no llegan); en la computadora va `medium` y la tablet va como el celular (canon, dueño,
|
|
76
|
+
05-10-2026, D16; reemplaza el `small` del bloque B1): en mobile las acciones bajan a su fila y tienen
|
|
77
|
+
sitio para 48 px; en desktop van al lado del título de 28. Los 10 `small` fijos y los 2 pares con
|
|
78
|
+
`small` se migran.
|
|
77
79
|
|
|
78
80
|
```html
|
|
79
|
-
<sui-button [size]="bp.isMobile() ? 'large' : '
|
|
81
|
+
<sui-button [size]="bp.isMobile() ? 'large' : 'medium'" slot="actions">Agregar</sui-button>
|
|
80
82
|
```
|
|
81
83
|
|
|
82
84
|
## API
|
|
@@ -116,7 +118,7 @@ Slot: `slot="actions"`, a la derecha (desktop) o debajo (mobile), gap 8. No hay
|
|
|
116
118
|
```html
|
|
117
119
|
<sui-page-header title="Descuentos" subtitle="Promociones y campañas activas de tu negocio.">
|
|
118
120
|
<sui-button slot="actions" variant="filled"
|
|
119
|
-
[size]="bp.isMobile() ? 'large' : '
|
|
121
|
+
[size]="bp.isMobile() ? 'large' : 'medium'" (click)="crear()">
|
|
120
122
|
Crear descuento
|
|
121
123
|
</sui-button>
|
|
122
124
|
</sui-page-header>
|