@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
|
@@ -37,7 +37,8 @@ select.** La tabla completa está en el README de `sui-dropdown-menu`.
|
|
|
37
37
|
> **La guía del DS define el command menu como el buscador que deja saltar rápido desde cualquier
|
|
38
38
|
> pantalla**, armado dentro de un diálogo, con input, lista, grupos con título, items y un pie con
|
|
39
39
|
> teclas. El item tiene dos tamaños, `small` (default) y `medium`, y el elegido se marca con fondo
|
|
40
|
-
> `bg-weak-50`. No trae do/don't. Lo
|
|
40
|
+
> `bg-weak-50`. No trae do/don't. Lo marcado canon está aprobado; lo que sigue en **propuesta, falta
|
|
41
|
+
> aprobación** espera decisión.
|
|
41
42
|
>
|
|
42
43
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app` (misma exclusión que `sui-dropdown-menu`):
|
|
43
44
|
> **0 usos**. Solo aparece en la vitrina `master-preview`.
|
|
@@ -46,20 +47,20 @@ select.** La tabla completa está en el README de `sui-dropdown-menu`.
|
|
|
46
47
|
|
|
47
48
|
| type | cuándo | fuente |
|
|
48
49
|
|---|---|---|
|
|
49
|
-
| `left-icon` | Ir a una **pantalla** o una sección: «Pedidos», «Mi negocio», «Recargas». | según la guía del DS (item con ícono); el cuándo
|
|
50
|
-
| `avatar` | Una **persona**: repartidor, cliente, dueño de local (`avatar` con `src` o `initials`). |
|
|
51
|
-
| `company` | Un **local**: su logo en `avatar.src`. |
|
|
52
|
-
| `basic` (default) | Una búsqueda reciente o un resultado sin imagen («Pedido #1234»). |
|
|
53
|
-
| `brand` | Un servicio externo con su logo (Yape, WhatsApp), proyectado en `slot="brand"`. |
|
|
54
|
-
| `country` | No usar hoy: todo es Perú. |
|
|
50
|
+
| `left-icon` | Ir a una **pantalla** o una sección: «Pedidos», «Mi negocio», «Recargas». | según la guía del DS (item con ícono); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
51
|
+
| `avatar` | Una **persona**: repartidor, cliente, dueño de local (`avatar` con `src` o `initials`). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
52
|
+
| `company` | Un **local**: su logo en `avatar.src`. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
53
|
+
| `basic` (default) | Una búsqueda reciente o un resultado sin imagen («Pedido #1234»). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
54
|
+
| `brand` | Un servicio externo con su logo (Yape, WhatsApp), proyectado en `slot="brand"`. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
55
|
+
| `country` | No usar hoy: todo es Perú. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
55
56
|
|
|
56
57
|
### `size` y los extras
|
|
57
58
|
|
|
58
59
|
| prop | cuándo | fuente |
|
|
59
60
|
|---|---|---|
|
|
60
61
|
| `size="small"` (default, 40) | Listas de resultados de una línea (`title` + `sublabel`). | según la guía del DS (default `small`) |
|
|
61
|
-
| `size="medium"` (64) | Cuando el resultado necesita una segunda línea (`description`) para distinguirse: «Pedido #1234» · «Juan Pérez · S/ 45.00». | según la guía del DS (existe); el cuándo
|
|
62
|
-
| `badge` | Un estado corto que ayuda a elegir («Pendiente», «Cerrado»). String = gris `lighter`; objeto `SuiBadgeConfig` para color. |
|
|
62
|
+
| `size="medium"` (64) | Cuando el resultado necesita una segunda línea (`description`) para distinguirse: «Pedido #1234» · «Juan Pérez · S/ 45.00». | según la guía del DS (existe); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
63
|
+
| `badge` | Un estado corto que ayuda a elegir («Pendiente», «Cerrado»). String = gris `lighter`; objeto `SuiBadgeConfig` para color. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
63
64
|
| `shortcut` | El atajo de esa acción (`sui-kbd`). Solo web. | canon (README de `sui-kbd`: en mobile no se pinta) |
|
|
64
65
|
| `showButton` | Una flecha a la derecha cuando el resultado abre otra pantalla. | propuesta |
|
|
65
66
|
|
|
@@ -70,8 +71,8 @@ buscador de mobile, la fila `small` mide 40 y queda debajo de los 44 del dedo.
|
|
|
70
71
|
|
|
71
72
|
| uso | mobile | web | fuente |
|
|
72
73
|
|---|---|---|---|
|
|
73
|
-
| resultado de una línea | `medium` (64) | `small` (40) | propuesta, falta aprobación |
|
|
74
|
-
| resultado con descripción | `medium` (64) | `medium` (64) |
|
|
74
|
+
| resultado de una línea | `medium` (64) | `small` (40) | mobile: canon (decisión del dueño 04-10-2026, piso táctil 44: `small` mide 40, `medium` es el único size que llega) · web: propuesta, falta aprobación |
|
|
75
|
+
| resultado con descripción | `medium` (64) | `medium` (64) | mobile: canon (decisión del dueño 04-10-2026, piso táctil 44) · web: lo impone el código (`description` solo se pinta en `medium`) |
|
|
75
76
|
|
|
76
77
|
```html
|
|
77
78
|
<sui-command-menu-item [size]="bp.isMobile() ? 'medium' : 'small'" … /> <!-- bp = BreakpointsService -->
|
|
@@ -126,7 +127,7 @@ Slot: `[slot=brand]` (solo con `type="brand"`). `avatar` acepta un string (la UR
|
|
|
126
127
|
```html
|
|
127
128
|
<sui-modal [(open)]="buscadorAbierto" size="large" [fullscreen]="true">
|
|
128
129
|
<sui-command-menu-search [(value)]="q" placeholder="Busca pedidos, locales o repartidores…"
|
|
129
|
-
[shortcut]="!bp.isMobile()" />
|
|
130
|
+
[shortcut]="!bp.isMobile()" [button]="!bp.isMobile()" />
|
|
130
131
|
<sui-content-divider type="text" text="Pantallas" />
|
|
131
132
|
@for (p of pantallas(); track p.ruta) {
|
|
132
133
|
<sui-command-menu-item type="left-icon" [icon]="p.icono" [title]="p.nombre"
|
|
@@ -43,7 +43,7 @@ más oscuro) y con texto (lupa naranja, X para limpiar).
|
|
|
43
43
|
|---|---|---|
|
|
44
44
|
| `placeholder` | **Siempre**, en español y diciendo qué se busca: «Busca pedidos, locales o repartidores…». El default genérico es `'Buscar o ir a…'`. | canon (CANON-SUI §5: copy en español, elipsis `…`) |
|
|
45
45
|
| `shortcut` | `true` solo en web; en mobile `false` (no hay teclado físico). | canon (README de `sui-kbd`) |
|
|
46
|
-
| `button` |
|
|
46
|
+
| `button` | La X de limpiar **solo en web** (`true`): ahorra borrar a mano. En mobile, `false` hasta que el DS tenga un size de 44 (la X mide 20). El ícono de info del estado vacío no hace nada. | canon (aprobado por el dueño, 05-10-2026, bloque B13) |
|
|
47
47
|
|
|
48
48
|
## Tamaño en mobile y en web
|
|
49
49
|
|
|
@@ -55,7 +55,7 @@ No tiene tamaños: 48 px de alto (14 + 20 + 13 + 1 de borde), texto 14/20, hasta
|
|
|
55
55
|
|
|
56
56
|
```html
|
|
57
57
|
<sui-command-menu-search [(value)]="q" placeholder="Busca pedidos, locales o repartidores…"
|
|
58
|
-
[shortcut]="!bp.isMobile()" /> <!-- bp = BreakpointsService -->
|
|
58
|
+
[shortcut]="!bp.isMobile()" [button]="!bp.isMobile()" /> <!-- bp = BreakpointsService -->
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
## API
|
|
@@ -101,5 +101,6 @@ No tiene tamaños: 48 px de alto (14 + 20 + 13 + 1 de borde), texto 14/20, hasta
|
|
|
101
101
|
[(value)]="q"
|
|
102
102
|
placeholder="Busca pedidos, locales o repartidores…"
|
|
103
103
|
[shortcut]="!bp.isMobile()"
|
|
104
|
+
[button]="!bp.isMobile()"
|
|
104
105
|
(cleared)="resultados.set([])" />
|
|
105
106
|
```
|
|
@@ -22,8 +22,8 @@ de lista. Es una píldora blanca con los avatares casi pegados y el «+N» como
|
|
|
22
22
|
## Qué variante usar
|
|
23
23
|
|
|
24
24
|
> **La guía del DS dice qué es, sus tamaños y sus dos estilos, no cuándo usar cada uno.** Lo
|
|
25
|
-
> marcado «según la guía del DS» sale de su texto o de su código
|
|
26
|
-
> falta aprobación
|
|
25
|
+
> marcado «según la guía del DS» sale de su texto o de su código. Lo marcado canon está
|
|
26
|
+
> aprobado; lo que sigue en **propuesta, falta aprobación** espera decisión.
|
|
27
27
|
>
|
|
28
28
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. En el DS no lo
|
|
29
29
|
> monta ningún componente: `sui-table` solo lo nombra como contenido que se proyecta en una celda.
|
|
@@ -38,22 +38,25 @@ de lista. Es una píldora blanca con los avatares casi pegados y el «+N» como
|
|
|
38
38
|
|
|
39
39
|
| input | valor | cuándo | fuente |
|
|
40
40
|
|---|---|---|---|
|
|
41
|
-
| `size` | `'24'` | Celda de tabla. |
|
|
42
|
-
| `size` | `'32'` (default SUI) | Fila de una lista. |
|
|
43
|
-
| `size` | `'40'` (default de la guía) | Dentro de una card. |
|
|
44
|
-
| `appearance` | `default` | Sobre un fondo gris o de color: la sombra lo separa. |
|
|
45
|
-
| `appearance` | `stroke` | Sobre blanco, donde la sombra sola no alcanza a marcar el borde. |
|
|
46
|
-
| `max` | `3` (default) | Tres avatares visibles. |
|
|
47
|
-
| `count` | — | Solo si el total no está en `items` (vienen 3 caras pero son 12 personas): `count="+9"`. Si no, se calcula solo. |
|
|
41
|
+
| `size` | `'24'` | Celda de tabla. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
42
|
+
| `size` | `'32'` (default SUI) | Fila de una lista. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
43
|
+
| `size` | `'40'` (default de la guía) | Dentro de una card. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
44
|
+
| `appearance` | `default` | Sobre un fondo gris o de color: la sombra lo separa. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
45
|
+
| `appearance` | `stroke` | Sobre blanco, donde la sombra sola no alcanza a marcar el borde. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
46
|
+
| `max` | `3` (default) | Tres avatares visibles. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
47
|
+
| `count` | — | Solo si el total no está en `items` (vienen 3 caras pero son 12 personas): `count="+9"`. Si no, se calcula solo. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
48
48
|
|
|
49
49
|
Usos de hoy que rompen la regla: **0** (no hay usos).
|
|
50
50
|
|
|
51
51
|
## Tamaño en mobile y en web
|
|
52
52
|
|
|
53
|
-
En mobile
|
|
53
|
+
En mobile va más grande por legibilidad (el grupo no se toca: el área la da la fila); en web, más chico. En las
|
|
54
54
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
55
55
|
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.
|
|
56
|
+
el celular (cliente, repartidor) va directo el valor de mobile. No se toca, así que la tablet va
|
|
57
|
+
con el valor de web, y el celular chico (< 380 px) también (D16).
|
|
58
|
+
Es **canon (dueño, 05-10-2026, P1 b)**: un paso más grande en el celular que en computadora, y
|
|
59
|
+
se migra todo ahora, no solo al tocar cada pantalla.
|
|
57
60
|
|
|
58
61
|
| uso | mobile | web |
|
|
59
62
|
|---|---|---|
|
|
@@ -86,26 +86,31 @@ la tabla de abajo pide `xlarge` (28).
|
|
|
86
86
|
|
|
87
87
|
| fullRadius | cuándo | fuente |
|
|
88
88
|
|---|---|---|
|
|
89
|
-
| `false` (default, radio 6) | Lo normal: filas, cards, cabeceras. | default según la guía del DS · cuándo:
|
|
89
|
+
| `false` (default, radio 6) | Lo normal: filas, cards, cabeceras. | default según la guía del DS · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
90
90
|
| `true` (círculo) | Flotante (`white`) sobre mapa o foto. | canon (aprobado por el dueño, 03-10-2026) |
|
|
91
|
-
| `true` (círculo) | El − / + de una cantidad, para que se lea como un stepper. |
|
|
91
|
+
| `true` (círculo) | El − / + de una cantidad, para que se lea como un stepper. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (es lo que ya hace `product-detail-view`) |
|
|
92
92
|
|
|
93
93
|
### `disabled`, `href`, `ariaLabel`
|
|
94
94
|
|
|
95
95
|
| prop | cuándo | fuente |
|
|
96
96
|
|---|---|---|
|
|
97
|
-
| `disabled` | Se llegó al límite: no hay más stock para sumar, no se puede quitar el último. | cómo se ve: según la guía del DS · cuándo:
|
|
98
|
-
| `href` | Solo si el botón navega sin otra acción (volver a una ruta). Pinta un `<a>`; `rel` ya viene en `'noopener noreferrer'`. |
|
|
99
|
-
| `ariaLabel` (requerido) | Lo que hace, no lo que muestra: «Cerrar», «Quitar opción», «Agregar uno»; nunca «X» ni «Ícono». |
|
|
100
|
-
| `type="submit"` | Solo dentro de un `<form>`. |
|
|
97
|
+
| `disabled` | Se llegó al límite: no hay más stock para sumar, no se puede quitar el último. | cómo se ve: según la guía del DS · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
98
|
+
| `href` | Solo si el botón navega sin otra acción (volver a una ruta). Pinta un `<a>`; `rel` ya viene en `'noopener noreferrer'`. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
99
|
+
| `ariaLabel` (requerido) | Lo que hace, no lo que muestra: «Cerrar», «Quitar opción», «Agregar uno»; nunca «X» ni «Ícono». | canon (aprobado por el dueño, 05-10-2026, bloque B5) (el input es obligatorio) |
|
|
100
|
+
| `type="submit"` | Solo dentro de un `<form>`. | canon (aprobado por el dueño, 05-10-2026, bloque B10) |
|
|
101
101
|
|
|
102
102
|
## Tamaño en mobile y en web
|
|
103
103
|
|
|
104
|
-
En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En
|
|
105
|
-
va
|
|
106
|
-
(`
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En la tablet
|
|
105
|
+
(`pointer: coarse`) va igual que en el celular, porque también se toca; en la computadora
|
|
106
|
+
(`pointer: fine`), `medium`; en el celular chico (< 380 px), `medium` a la vista sin bajar el área de 44.
|
|
107
|
+
Nada en `small` ni `xsmall` (canon, dueño, 05-10-2026, D16; reemplaza al «tamaño por plataforma» del
|
|
108
|
+
03-10-2026, que bajaba la web a `small`). Hoy la app lo resuelve con `BreakpointsService`
|
|
109
|
+
(`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px): `[size]="bp.isMobile() ? 'large' : 'medium'"`,
|
|
110
|
+
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]`
|
|
111
|
+
con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`); los 24 que bajan de `medium` se migran.
|
|
112
|
+
`sui-compact-button` tiene su propia escala (de `medium` 20 a `5xlarge` 44) y no tiene `small`: D16 no
|
|
113
|
+
lo mueve por el nombre; la tabla de abajo sigue igual.
|
|
109
114
|
|
|
110
115
|
| uso | mobile | web | fuente |
|
|
111
116
|
|---|---|---|---|
|
|
@@ -42,7 +42,7 @@ Regla corta: **filtro suelto en una barra, ancho al texto → compact · campo c
|
|
|
42
42
|
| `selected` / `selectedChange` | La opción elegida (objeto entero). O `formControlName`, nunca los dos. | API |
|
|
43
43
|
| `placeholder` | El filtro sin elegir: «Todos». Corto. | propuesta, falta aprobación |
|
|
44
44
|
| `value` / `icon` | Lo que muestra el campo cuando no hay `items` (modo «solo campo», el menú lo arma la pantalla). | API |
|
|
45
|
-
| `error` | No usar hoy: un filtro no tiene error. |
|
|
45
|
+
| `error` | No usar hoy: un filtro no tiene error. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
46
46
|
| `disabled` | Mientras carga la lista. | según la guía del DS |
|
|
47
47
|
| `clicked` | Solo si la pantalla arma su propio menú (sin `items`). | API |
|
|
48
48
|
|
|
@@ -71,11 +71,11 @@ Las opciones del menú siguen al `size` como en `sui-select`: 36 hasta `medium`,
|
|
|
71
71
|
|
|
72
72
|
| uso | mobile | web | fuente |
|
|
73
73
|
|---|---|---|---|
|
|
74
|
-
| filtro de una barra del panel | `large` (48), junto a botones `large` | `
|
|
75
|
-
| paginación al pie de una tabla | no aplica | `
|
|
74
|
+
| filtro de una barra del panel | `large` (48), junto a botones `large` | `medium` (40) | mobile `large`: canon (decisión del dueño 04-10-2026, piso táctil 44: es el único size de 44 o más; texto 16 en large, DS 0.22.0) · web `medium`: canon (dueño, 05-10-2026, D16) |
|
|
75
|
+
| paginación al pie de una tabla | no aplica | `medium` (40) | canon (dueño, 05-10-2026, D16) (la guía del DS lo muestra en `xsmall`) |
|
|
76
76
|
|
|
77
77
|
```html
|
|
78
|
-
<sui-compact-select [size]="bp.isMobile() ? 'large' : '
|
|
78
|
+
<sui-compact-select [size]="bp.isMobile() ? 'large' : 'medium'" placeholder="Todos los roles"
|
|
79
79
|
[items]="roles" [(selected)]="rolElegido" /> <!-- bp = BreakpointsService -->
|
|
80
80
|
```
|
|
81
81
|
|
|
@@ -129,6 +129,6 @@ Implementa `ControlValueAccessor` (el valor es el `value` de la opción).
|
|
|
129
129
|
## Ejemplo
|
|
130
130
|
|
|
131
131
|
```html
|
|
132
|
-
<sui-compact-select size="
|
|
132
|
+
<sui-compact-select [size]="bp.isMobile() ? 'large' : 'medium'" placeholder="Todos los roles" [items]="roles"
|
|
133
133
|
[(selected)]="rolElegido" />
|
|
134
134
|
```
|
|
@@ -61,7 +61,7 @@ en 16/24, igual que el valor del `sui-input` large; el alto no cambia (46 dentro
|
|
|
61
61
|
|
|
62
62
|
| uso | mobile | web | fuente |
|
|
63
63
|
|---|---|---|---|
|
|
64
|
-
| moneda dentro del monto | `sui-input` `large` + este `large` | `sui-input` `medium` + este `medium` |
|
|
64
|
+
| moneda dentro del monto | `sui-input` `large` + este `large` | `sui-input` `medium` + este `medium` | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (dueño, 05-10-2026, D16) |
|
|
65
65
|
|
|
66
66
|
Arreglo del 03-10-2026: antes el selector medía 40/36/32 y empujaba el campo a 42/38/34 (el padding
|
|
67
67
|
de la guía no descontaba el borde del input). Ahora el campo mide exacto.
|
|
@@ -41,24 +41,24 @@ se elige → card de selección.**
|
|
|
41
41
|
|
|
42
42
|
| type | cuándo | fuente |
|
|
43
43
|
|---|---|---|
|
|
44
|
-
| `avatar` (`avatar`) | Una persona o un local con foto. El color de las iniciales va por rol: local `orange`, repartidor `green`, cliente `blue`. | canon (avatar por rol)
|
|
45
|
-
| `left-icon` (`icon`) | La misma fila cuando no hay foto: `store-2-line` para el local sin logo. |
|
|
46
|
-
| `basic` | Ver «No usar». |
|
|
47
|
-
| `company` (`avatar` + `companyLogoSrc`) | Ver «No usar». |
|
|
48
|
-
| `brand` (`brand`) | Ver «No usar». |
|
|
49
|
-
| `card-provider` (`brand`) | Ver «No usar». |
|
|
44
|
+
| `avatar` (`avatar`) | Una persona o un local con foto. El color de las iniciales va por rol: local `orange`, repartidor `green`, cliente `blue`. | canon (avatar por rol) · el uso: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
45
|
+
| `left-icon` (`icon`) | La misma fila cuando no hay foto: `store-2-line` para el local sin logo. | canon (aprobado por el dueño, 05-10-2026, bloque B2; precedente `master-overview.html:224`) |
|
|
46
|
+
| `basic` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
47
|
+
| `company` (`avatar` + `companyLogoSrc`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
48
|
+
| `brand` (`brand`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
49
|
+
| `card-provider` (`brand`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
50
50
|
|
|
51
51
|
### Las piezas
|
|
52
52
|
|
|
53
53
|
| prop | cuándo | fuente |
|
|
54
54
|
|---|---|---|
|
|
55
55
|
| `title` | Siempre. El nombre, nunca un id (regla de la pasada de UX). | canon (CLAUDE.md, «un identificador nunca es el título») |
|
|
56
|
-
| `subtitle` | El dato que se compara entre filas: «214 pedidos este mes», «38 calificaciones». |
|
|
57
|
-
| `badge` | Un dato chico que se compara de un vistazo (la nota). El color sigue el significado del badge: `red` si está mal. |
|
|
58
|
-
| `dismissible` | La X solo cuando quitar la fila ES la acción (sacar a alguien del equipo, borrar una tarjeta). **El default es `true`**: pasa `false` siempre que no. |
|
|
56
|
+
| `subtitle` | El dato que se compara entre filas: «214 pedidos este mes», «38 calificaciones». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
57
|
+
| `badge` | Un dato chico que se compara de un vistazo (la nota). El color sigue el significado del badge: `red` si está mal. | canon (aprobado por el dueño, 05-10-2026, bloque B3; badge: canon de colores) |
|
|
58
|
+
| `dismissible` | La X solo cuando quitar la fila ES la acción (sacar a alguien del equipo, borrar una tarjeta). **El default es `true`**: pasa `false` siempre que no. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
59
59
|
| `dismissAriaLabel` | Siempre que haya X: «Quitar a Rosa del equipo», no el default «Descartar». | propuesta |
|
|
60
|
-
| `sublabel` | Ver «No usar». |
|
|
61
|
-
| `disabled` | Ver «No usar». |
|
|
60
|
+
| `sublabel` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
61
|
+
| `disabled` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
62
62
|
|
|
63
63
|
**Usos de hoy que rompen las reglas:** 0. Las 4 apagan la X a mano: el default de `dismissible`
|
|
64
64
|
no le sirve a ningún uso de hoy.
|
|
@@ -79,7 +79,7 @@ táctil de `large` es de **44** (desde el 04-10-2026; 40 en web).
|
|
|
79
79
|
| uso | mobile | web | fuente |
|
|
80
80
|
|---|---|---|---|
|
|
81
81
|
| fila | 74, sin cambio | 74, sin cambio | medido del `.scss` |
|
|
82
|
-
| X para quitar | `large` (32, área 44) | `medium` (20) |
|
|
82
|
+
| X para quitar | `large` (32, área 44) | `medium` (20) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (aprobado por el dueño, 05-10-2026, bloque B1) (el tamaño `large` es extensión SUI aprobada el 03-10-2026) |
|
|
83
83
|
|
|
84
84
|
```html
|
|
85
85
|
<sui-content-card … [size]="bp.isMobile() ? 'large' : 'medium'" (dismiss)="quitar(item)" />
|
|
@@ -24,8 +24,8 @@ Story: [Atoms/Divider/Content Divider](https://sui-design-system.web.app/?path=/
|
|
|
24
24
|
> **En la guía del DS este componente se llama «Divider»** y trae: línea (default), línea con
|
|
25
25
|
> espacio, línea con texto («OR»), solo texto, texto con fondo («a menudo va en modales») y
|
|
26
26
|
> contenido al centro. Los cuatro tipos con botones vienen del Figma del DS, no de la guía. Lo
|
|
27
|
-
> marcado «según la guía del DS» sale de su texto o de sus ejemplos;
|
|
28
|
-
>
|
|
27
|
+
> marcado «según la guía del DS» sale de su texto o de sus ejemplos; las reglas marcadas canon
|
|
28
|
+
> están aprobadas; lo que sigue en propuesta espera decisión.
|
|
29
29
|
>
|
|
30
30
|
> Uso medido el 04-10-2026 en `master-pedidos/src/app`: **3 content-dividers en 3 archivos**:
|
|
31
31
|
> `pages/auth/login/login.html:61` y `pages/auth/register/register.html:97` (`text-line` «o») y
|
|
@@ -37,21 +37,21 @@ Story: [Atoms/Divider/Content Divider](https://sui-design-system.web.app/?path=/
|
|
|
37
37
|
|---|---|---|---|
|
|
38
38
|
| `text-line` | El «o» entre dos formas de hacer lo mismo. | `text="o"` entre «Continuar con Google» y el formulario de correo | según la guía del DS («OR») |
|
|
39
39
|
| `solid-text` | Cabecera de un grupo dentro de una lista o un modal, con fondo. | «Con pocos pedidos» (`master-drivers.html:192`) | según la guía del DS («a menudo en modales») |
|
|
40
|
-
| `text` | Cabecera de grupo sin fondo, en una lista partida por fecha o por tipo. | «Ayer», «Esta semana» | según la guía del DS (existe) ·
|
|
40
|
+
| `text` | Cabecera de grupo sin fondo, en una lista partida por fecha o por tipo. | «Ayer», «Esta semana» | según la guía del DS (existe) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
41
41
|
| `line` (default) | **No usar** (ver abajo). | — | según la guía del DS (default) |
|
|
42
42
|
| `line-spacing` | **No usar** (ver abajo). | — | según la guía del DS |
|
|
43
|
-
| `icon-button` | **No usar** hoy (ver abajo). | `icon="add-line"` |
|
|
44
|
-
| `text-button` | **No usar** hoy (ver abajo). | «Ver 12 más» |
|
|
45
|
-
| `icon-button-group` | **No usar** hoy (ver abajo). | Subir · agregar · bajar |
|
|
46
|
-
| `text-button-group` | **No usar** hoy (ver abajo). | «Producto» · «Sección» |
|
|
43
|
+
| `icon-button` | **No usar** hoy (ver abajo). | `icon="add-line"` | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
44
|
+
| `text-button` | **No usar** hoy (ver abajo). | «Ver 12 más» | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
45
|
+
| `icon-button-group` | **No usar** hoy (ver abajo). | Subir · agregar · bajar | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
46
|
+
| `text-button-group` | **No usar** hoy (ver abajo). | «Producto» · «Sección» | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
47
47
|
|
|
48
48
|
| propiedad | regla | fuente |
|
|
49
49
|
|---|---|---|
|
|
50
|
-
| `text` | Se escribe en sentence case («o», «Con pocos pedidos»): el componente lo pasa a MAYÚSCULAS. |
|
|
51
|
-
| `icon` | Solo en `icon-button`. Nombre Remix sin `ri-`. |
|
|
52
|
-
| `ariaLabel` | **Obligatorio en `icon-button`**: sin él el lector dice «Acción». |
|
|
50
|
+
| `text` | Se escribe en sentence case («o», «Con pocos pedidos»): el componente lo pasa a MAYÚSCULAS. | canon (CANON-SUI §5.1: sentence case, nunca ALL CAPS a mano) |
|
|
51
|
+
| `icon` | Solo en `icon-button`. Nombre Remix sin `ri-`. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
52
|
+
| `ariaLabel` | **Obligatorio en `icon-button`**: sin él el lector dice «Acción». | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
53
53
|
| `items` | Solo en los `-group`: de 2 a 3, cada uno con `ariaLabel` si es ícono. | propuesta, falta aprobación |
|
|
54
|
-
| `disabled` | El botón existe pero hoy no aplica (lista ya completa). |
|
|
54
|
+
| `disabled` | El botón existe pero hoy no aplica (lista ya completa). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
55
55
|
|
|
56
56
|
**Corregido el 03-10-2026:** los 2 «o» que estaban hechos a mano (login y registro) ya son `type="text-line"`.
|
|
57
57
|
|
|
@@ -66,10 +66,13 @@ Story: [Atoms/Divider/Content Divider](https://sui-design-system.web.app/?path=/
|
|
|
66
66
|
|
|
67
67
|
## Tamaño en mobile y en web
|
|
68
68
|
|
|
69
|
-
Criterio de la app: **
|
|
70
|
-
(
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
Criterio de la app: **D16, tamaño por dispositivo** (canon, dueño, 05-10-2026), que reemplaza al
|
|
70
|
+
«tamaño por plataforma» del 03-10-2026 (mobile grande, web chico). La columna «mobile» es el celular de
|
|
71
|
+
380 px o más y, en lo que se toca, también la tablet (`pointer: coarse`). La columna «web» es la
|
|
72
|
+
computadora (`pointer: fine`) y, en lo que no se toca, también la tablet. En el celular chico
|
|
73
|
+
(< 380 px) va `medium` a la vista, sin achicar el área de 44 de lo que se toca. **Nada en `small` ni
|
|
74
|
+
`xsmall`**, salvo lo que el componente solo tiene en chico. Hoy la app corta con
|
|
75
|
+
`BreakpointsService.isMobile()` (≤ 767 px), que todavía no mira el puntero ni los 380 px.
|
|
73
76
|
|
|
74
77
|
| uso | mobile | web | fuente |
|
|
75
78
|
|---|---|---|---|
|
|
@@ -39,30 +39,30 @@ content-card · ajuste → switch-label.**
|
|
|
39
39
|
|
|
40
40
|
| type | cuándo | fuente |
|
|
41
41
|
|---|---|---|
|
|
42
|
-
| `left-icon` (`icon`) | El ícono dice de qué va la fila: los consejos («Revisa tu zona de cobertura»), «Contactar soporte». Sale en un círculo con borde (`sui-key-icon` stroke). |
|
|
43
|
-
| `basic` | Fila de dato sin cara, casi siempre con badge: «Datos personales → Completados». |
|
|
42
|
+
| `left-icon` (`icon`) | El ícono dice de qué va la fila: los consejos («Revisa tu zona de cobertura»), «Contactar soporte». Sale en un círculo con borde (`sui-key-icon` stroke). | canon (aprobado por el dueño, 05-10-2026, bloque B2; 14 de 18) |
|
|
43
|
+
| `basic` | Fila de dato sin cara, casi siempre con badge: «Datos personales → Completados». | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
44
44
|
| `avatar` (`avatar`) | Una persona o un local. El color de las iniciales va por rol: local `orange`, repartidor `green`, cliente `blue`. | canon (avatar por rol) |
|
|
45
|
-
| `company` (`avatar` + `companyLogoSrc`) | Ver «No usar». |
|
|
46
|
-
| `brand` (`brand`) | Ver «No usar». |
|
|
45
|
+
| `company` (`avatar` + `companyLogoSrc`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
46
|
+
| `brand` (`brand`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
47
47
|
|
|
48
48
|
### `size`
|
|
49
49
|
|
|
50
50
|
| size | cuándo | fuente |
|
|
51
51
|
|---|---|---|
|
|
52
|
-
| `large` (leading 48, título 16) | Consejos y pasos que se leen, con descripción larga (los 13 de hoy). |
|
|
53
|
-
| `medium` (leading 40, título 14, default) | Filas de dato en una lista: el negocio del repartidor, el resumen del registro. |
|
|
52
|
+
| `large` (leading 48, título 16) | Consejos y pasos que se leen, con descripción larga (los 13 de hoy). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
53
|
+
| `medium` (leading 40, título 14, default) | Filas de dato en una lista: el negocio del repartidor, el resumen del registro. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
54
54
|
|
|
55
55
|
### Las piezas
|
|
56
56
|
|
|
57
57
|
| prop | cuándo | fuente |
|
|
58
58
|
|---|---|---|
|
|
59
|
-
| `label` | Siempre. En los consejos, una instrucción («Ponle foto a tus productos»); en los datos, el nombre del dato. |
|
|
60
|
-
| `description` | La explicación o el detalle. En los consejos, el porqué. |
|
|
61
|
-
| `badge` trailing (default) | El estado del dato a la derecha. Pasa el objeto con el color del badge: con string sale naranja. |
|
|
62
|
-
| `badgePlacement="title"` | El badge pegado al nombre, cuando la derecha queda libre o es angosta («Sabores Andinos · Propio»). |
|
|
63
|
-
| `sublabel` | Ver «No usar». |
|
|
64
|
-
| `toggle` / `toggleChecked` | Ver «No usar». |
|
|
65
|
-
| `disabled` | Ver «No usar». |
|
|
59
|
+
| `label` | Siempre. En los consejos, una instrucción («Ponle foto a tus productos»); en los datos, el nombre del dato. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
60
|
+
| `description` | La explicación o el detalle. En los consejos, el porqué. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
61
|
+
| `badge` trailing (default) | El estado del dato a la derecha. Pasa el objeto con el color del badge: con string sale naranja. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
62
|
+
| `badgePlacement="title"` | El badge pegado al nombre, cuando la derecha queda libre o es angosta («Sabores Andinos · Propio»). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
63
|
+
| `sublabel` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
64
|
+
| `toggle` / `toggleChecked` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
65
|
+
| `disabled` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
66
66
|
|
|
67
67
|
**Usos de hoy que rompen las reglas:** 0. A mirar: los 3 badges de
|
|
68
68
|
`pages/driver-onboarding/step-complete/step-complete.html:48`–`:58` dicen estados de ciclo
|
|
@@ -75,16 +75,16 @@ No se toca, así que no tiene que llegar a 44. El `size` es de lectura, no de de
|
|
|
75
75
|
|
|
76
76
|
| uso | mobile | web | fuente |
|
|
77
77
|
|---|---|---|---|
|
|
78
|
-
| consejos y pasos | `large` | `large` |
|
|
79
|
-
| filas de dato | `
|
|
80
|
-
| fila que se toca (soporte) | `large`, o dale a la fila un alto mínimo de 44 | `medium` |
|
|
78
|
+
| consejos y pasos | `large` | `large` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
79
|
+
| filas de dato | `large` | `medium` | canon (dueño, 05-10-2026, D16): grande en el celular; `medium` en la computadora, la tablet y el celular chico (no se toca) |
|
|
80
|
+
| fila que se toca (soporte) | `large`, o dale a la fila un alto mínimo de 44 | `medium` | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
81
81
|
|
|
82
82
|
Alto de la fila, medido: `medium` 40 (máx. entre el leading de 40 y el texto 20 + 4 + 16) y
|
|
83
83
|
`large` 48 (máx. entre 48 y 24 + 4 + 20). Lo que se toca es lo que la envuelve: «Contactar soporte»
|
|
84
84
|
va dentro de un `<a>` con padding 12 y borde 1, que da 66.
|
|
85
85
|
|
|
86
86
|
```html
|
|
87
|
-
<sui-content-label [size]="bp.isMobile() ? 'large' : 'medium'" … /> <!--
|
|
87
|
+
<sui-content-label [size]="bp.isMobile() ? 'large' : 'medium'" … /> <!-- filas de dato y filas que se tocan (D16) -->
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
## «No usar»: por qué no hoy y cuándo sí
|
|
@@ -28,8 +28,8 @@ Regla corta: **se ajusta de a uno y tiene tope → counter · se tipea → input
|
|
|
28
28
|
## Qué variante usar
|
|
29
29
|
|
|
30
30
|
> **La guía del DS lo muestra como un ejemplo de su página del input** (un campo «Counter Input*»
|
|
31
|
-
> con − y + a los lados) y no dice cuándo usarlo.
|
|
32
|
-
>
|
|
31
|
+
> con − y + a los lados) y no dice cuándo usarlo. Las reglas marcadas canon
|
|
32
|
+
> están aprobadas; lo que sigue en propuesta espera decisión.
|
|
33
33
|
>
|
|
34
34
|
> Uso medido el 04-10-2026 en `master-pedidos/src/app` (misma exclusión que `sui-badge`, más
|
|
35
35
|
> `master-ejercicios`): **4 usos en 4 archivos**, todos con `min=1`. Tamaños: 2 `large`, 2
|
|
@@ -37,14 +37,14 @@ Regla corta: **se ajusta de a uno y tiene tope → counter · se tipea → input
|
|
|
37
37
|
|
|
38
38
|
| prop | cuándo | fuente |
|
|
39
39
|
|---|---|---|
|
|
40
|
-
| `min` | `1` en cantidades de compra: en 1 el − se apaga y quitar queda en el tacho (evita borrar por error). |
|
|
41
|
-
| `max` | Siempre el tope real: stock, tope por pedido, cupo del viaje. Sin dato, 99. |
|
|
42
|
-
| `step` | `1`. Otro paso no tiene caso hoy. |
|
|
40
|
+
| `min` | `1` en cantidades de compra: en 1 el − se apaga y quitar queda en el tacho (evita borrar por error). | canon (aprobado por el dueño, 05-10-2026, bloque B9; ya es práctica en los 4 usos: `pages/customer/cart/cart.html:80`) |
|
|
41
|
+
| `max` | Siempre el tope real: stock, tope por pedido, cupo del viaje. Sin dato, 99. | canon (aprobado por el dueño, 05-10-2026, bloque B9; ya es práctica: `pages/customer/restaurant-menu/restaurant-menu.html:479`) |
|
|
42
|
+
| `step` | `1`. Otro paso no tiene caso hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
43
43
|
| `label` | Cuando es un campo de un formulario («Pasajeros»). | según la guía del DS (su ejemplo lleva label) |
|
|
44
|
-
| `hint` | El tope dicho en palabras: «Hasta 4 pasajeros». |
|
|
45
|
-
| `ariaLabel` | **Obligatorio si no hay `label`**: en el carrito o en una fila donde el texto está al lado. «Cantidad de Pollo a la brasa 1/4». |
|
|
46
|
-
| `decrementLabel` / `incrementLabel` | Los defaults («Disminuir», «Aumentar») sirven. Cambiarlos solo si el contexto pide otro verbo («Quitar un pasajero»). | propuesta, falta aprobación |
|
|
47
|
-
| `disabled` | El producto se agotó mientras estaba en el carrito. |
|
|
44
|
+
| `hint` | El tope dicho en palabras: «Hasta 4 pasajeros». | canon (aprobado por el dueño, 05-10-2026, bloque B4; ya es práctica: `components/cambiar-pasajeros/cambiar-pasajeros.html:7`) |
|
|
45
|
+
| `ariaLabel` | **Obligatorio si no hay `label`**: en el carrito o en una fila donde el texto está al lado. «Cantidad de Pollo a la brasa 1/4». | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
46
|
+
| `decrementLabel` / `incrementLabel` | Los defaults («Disminuir», «Aumentar») sirven. Cambiarlos solo si el contexto pide otro verbo («Quitar un pasajero»). | default: canon (CANON-SUI §5.7: `Aumentar`/`Disminuir` se usan tal cual) · cambiarlos: propuesta, falta aprobación |
|
|
47
|
+
| `disabled` | El producto se agotó mientras estaba en el carrito. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
48
48
|
| `error` + `errorMessage` | No usar hoy: el contador no deja salir del rango. | — |
|
|
49
49
|
| `required` · `sublabel` · `tooltip` | No usar hoy: una cantidad siempre tiene valor. | — |
|
|
50
50
|
|
|
@@ -74,8 +74,8 @@ en 40, por debajo del piso; no hace falta un size nuevo porque `xlarge` ya llega
|
|
|
74
74
|
|
|
75
75
|
| uso | mobile | web | fuente |
|
|
76
76
|
|---|---|---|---|
|
|
77
|
-
| cantidad junto al CTA (detalle del producto) | `xlarge` (52, botones de 44) | `large` | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web:
|
|
78
|
-
| cantidad en una fila (carrito, pasajeros) | `xlarge` (52, botones de 44) | `medium` (40) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web:
|
|
77
|
+
| cantidad junto al CTA (detalle del producto) | `xlarge` (52, botones de 44) | `large` | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
78
|
+
| cantidad en una fila (carrito, pasajeros) | `xlarge` (52, botones de 44) | `medium` (40) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
79
79
|
|
|
80
80
|
```html
|
|
81
81
|
<sui-counter-input [size]="bp.isMobile() ? 'xlarge' : 'medium'" … /> <!-- bp = BreakpointsService -->
|
|
@@ -85,7 +85,7 @@ en 40, por debajo del piso; no hace falta un size nuevo porque `xlarge` ya llega
|
|
|
85
85
|
|
|
86
86
|
| qué | por qué no hoy | cuándo sí, en un flujo nuevo |
|
|
87
87
|
|---|---|---|
|
|
88
|
-
| `size` `2xsmall`, `xsmall`, `small` | en la app la cantidad se toca con el dedo | una tabla del panel donde se ajusta el stock
|
|
88
|
+
| `size` `2xsmall`, `xsmall`, `small` | en la app la cantidad se toca con el dedo, y son chicos (D16, 05-10-2026) | nunca: una tabla del panel donde se ajusta el stock también va `medium` |
|
|
89
89
|
| `size="xlarge"` | el CTA de al lado es `large` | si el CTA del detalle pasa a `xlarge` |
|
|
90
90
|
| `step` distinto de 1 | no hay productos que se vendan de a varios | huevos por media docena, gaseosas por pack de 6 |
|
|
91
91
|
| `error` | el contador no deja salir del rango | el stock bajó con el carrito abierto y la cantidad ya no alcanza |
|
|
@@ -24,20 +24,20 @@ del mes, las ganancias del repartidor por mes).
|
|
|
24
24
|
|
|
25
25
|
## Qué variante usar
|
|
26
26
|
|
|
27
|
-
> **La guía del DS no tiene página para este componente** (vive dentro del datepicker).
|
|
28
|
-
>
|
|
27
|
+
> **La guía del DS no tiene página para este componente** (vive dentro del datepicker). Las
|
|
28
|
+
> reglas de uso quedaron aprobadas por el dueño (canon, 05-10-2026).
|
|
29
29
|
>
|
|
30
30
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. Lo usa por dentro
|
|
31
31
|
> `sui-datepicker`.
|
|
32
32
|
|
|
33
33
|
| input | valor | cuándo | fuente |
|
|
34
34
|
|---|---|---|---|
|
|
35
|
-
| `label` | texto | El período visible, con mayúscula inicial y sin abreviar: «Octubre 2026», «Semana del 6 al 12 de octubre». |
|
|
36
|
-
| `leftIcon` + `rightIcon` | `true` / `true` (default) | Lo normal: se puede ir atrás y adelante. |
|
|
37
|
-
| `rightIcon` | `false` | Ya se está en el período actual y no hay futuro que mirar (ganancias, gastos). Mejor que dejar la flecha y que no haga nada. |
|
|
38
|
-
| `leftIcon` | `false` | Ya se está en el primer período con datos (el mes en que se abrió el local). |
|
|
39
|
-
| los dos en `false` | — | No usar: sin flechas es un título; va un texto. |
|
|
40
|
-
| `disabled` | `true` | Mientras carga el período nuevo, para que no se encadenen toques. |
|
|
35
|
+
| `label` | texto | El período visible, con mayúscula inicial y sin abreviar: «Octubre 2026», «Semana del 6 al 12 de octubre». | mayúscula inicial: canon (CANON-SUI §5.1, sentence case) · sin abreviar: canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
36
|
+
| `leftIcon` + `rightIcon` | `true` / `true` (default) | Lo normal: se puede ir atrás y adelante. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
37
|
+
| `rightIcon` | `false` | Ya se está en el período actual y no hay futuro que mirar (ganancias, gastos). Mejor que dejar la flecha y que no haga nada. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
38
|
+
| `leftIcon` | `false` | Ya se está en el primer período con datos (el mes en que se abrió el local). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
39
|
+
| los dos en `false` | — | No usar: sin flechas es un título; va un texto. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
40
|
+
| `disabled` | `true` | Mientras carga el período nuevo, para que no se encadenen toques. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
41
41
|
|
|
42
42
|
Usos de hoy que rompen la regla: **0**.
|
|
43
43
|
|
|
@@ -35,7 +35,7 @@ type="date"` · día + franja de entrega → la hoja del checkout.**
|
|
|
35
35
|
> **Lo que dice la guía del DS** (página del datepicker): sirve para elegir **una fecha o un rango
|
|
36
36
|
> de fechas**, y trae tres ejemplos: **Popover** (se aplica al tocar el día), **Approval** (con
|
|
37
37
|
> Cancelar/Aplicar: la fecha queda en espera hasta confirmar) y **Range** (rango con un solo mes a
|
|
38
|
-
> la vista). No dice cuándo usar cada uno.
|
|
38
|
+
> la vista). No dice cuándo usar cada uno. Las reglas marcadas canon están aprobadas; lo que sigue en propuesta espera decisión.
|
|
39
39
|
>
|
|
40
40
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app` (sin prototipos ni vitrinas): **0 usos**.
|
|
41
41
|
> Las fechas de la app van con `sui-input type="date"` (7) y `type="datetime-local"` (1).
|
|
@@ -45,28 +45,28 @@ type="date"` · día + franja de entrega → la hoja del checkout.**
|
|
|
45
45
|
| valor | cuándo | fuente |
|
|
46
46
|
|---|---|---|
|
|
47
47
|
| `date` (default) | Una fecha cuando el calendario tiene que verse (en línea, con días marcados). Si es un campo de formulario, va `sui-input type="date"`. | guía (una fecha) · el «cuándo» es propuesta |
|
|
48
|
-
| `range` | Un período libre desde–hasta: reportes, filtros de ventas o de gastos con «Personalizado». | guía (rango) · el «cuándo
|
|
48
|
+
| `range` | Un período libre desde–hasta: reportes, filtros de ventas o de gastos con «Personalizado». | guía (rango) · el «cuándo»: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
49
49
|
|
|
50
50
|
### `inline`, `showFooter`, `calendars`
|
|
51
51
|
|
|
52
52
|
| input | valor | cuándo | fuente |
|
|
53
53
|
|---|---|---|---|
|
|
54
54
|
| `inline` | `false` (default) | El campo abre el calendario en un popover. Solo en web. | guía (ejemplo Popover) |
|
|
55
|
-
| `inline` | `true` | El calendario es el contenido: un panel de disponibilidad o el calendario de pedidos del día. También dentro de un `sui-modal` en mobile, para no depender del popover. |
|
|
55
|
+
| `inline` | `true` | El calendario es el contenido: un panel de disponibilidad o el calendario de pedidos del día. También dentro de un `sui-modal` en mobile, para no depender del popover. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
56
56
|
| `showFooter` | `true` (default) | Cancelar/Aplicar: la elección no se guarda hasta confirmar. Úsalo cuando cambiar la fecha recalcula algo caro (un reporte). | guía (ejemplo Approval) |
|
|
57
57
|
| `showFooter` | `false` | Se aplica al tocar el día. Fecha única y nada que recalcular. En `range` no tiene efecto: el rango siempre trae footer. | guía (ejemplo Popover) |
|
|
58
|
-
| `calendars` | `2` (default) | Rango en web: dos meses lado a lado (936 px). |
|
|
58
|
+
| `calendars` | `2` (default) | Rango en web: dos meses lado a lado (936 px). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
59
59
|
| `calendars` | `1` | Rango en un espacio angosto (columna, modal `medium`). En mobile se fuerza a 1 solo. | guía (Range con un mes) |
|
|
60
60
|
|
|
61
61
|
### `min`, `max`, `markedDates`, `presets`, `placeholder`, `disabled`
|
|
62
62
|
|
|
63
63
|
| input | cuándo | fuente |
|
|
64
64
|
|---|---|---|
|
|
65
|
-
| `min` / `max` | Siempre que haya un límite real: un cupón no vence en el pasado (`min` = hoy), un reporte no pasa de hoy (`max` = hoy). Los presets se recortan al límite. |
|
|
66
|
-
| `markedDates` | Días con algo: pedidos programados, gastos cargados. El punto es chico: dice «hay algo», no cuánto. |
|
|
67
|
-
| `presets` | Los 8 de fábrica están en español (Hoy, Últimos 7 días… Todo el tiempo). Recortarlos a los que la pantalla usa: un reporte del local no necesita «Últimos 12 meses» si no hay datos de hace un año. |
|
|
68
|
-
| `placeholder` |
|
|
69
|
-
| `disabled` | Mientras carga lo que depende de la fecha. |
|
|
65
|
+
| `min` / `max` | Siempre que haya un límite real: un cupón no vence en el pasado (`min` = hoy), un reporte no pasa de hoy (`max` = hoy). Los presets se recortan al límite. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
66
|
+
| `markedDates` | Días con algo: pedidos programados, gastos cargados. El punto es chico: dice «hay algo», no cuánto. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
67
|
+
| `presets` | Los 8 de fábrica están en español (Hoy, Últimos 7 días… Todo el tiempo). Recortarlos a los que la pantalla usa: un reporte del local no necesita «Últimos 12 meses» si no hay datos de hace un año. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
68
|
+
| `placeholder` | Sin pasarlo, el campo dice «Elige una fecha» (`mode="date"`) o «Elige el período» (`mode="range"`), en imperativo con tuteo. Cambiarlo solo para decir qué se elige, también en imperativo («Elige desde cuándo»). | canon (dueño, 05-10-2026, P4 a); el default cambió en la 0.25.0 (antes «Seleccionar fecha» en los dos modos). CANON-SUI §5.7 (infinitivo) necesita esta excepción en master-pedidos |
|
|
69
|
+
| `disabled` | Mientras carga lo que depende de la fecha. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
70
70
|
|
|
71
71
|
Usos de hoy que rompen la regla: **0** (no hay datepickers). Los 8 campos de fecha son fechas
|
|
72
72
|
sueltas en formularios y ya usan `sui-input` (líneas del `type`, medidas el 04-10-2026):
|
|
@@ -86,8 +86,8 @@ sueltas en formularios y ya usan `sui-input` (líneas del `type`, medidas el 04-
|
|
|
86
86
|
|
|
87
87
|
En mobile se toca con el dedo: lo que se toca mide **44 px o más** (canon del dueño, 04-10-2026).
|
|
88
88
|
Para eso está **`xlarge`**: con los otros sizes las celdas de día (40) y los presets (36) no llegan.
|
|
89
|
-
En
|
|
90
|
-
de la app (`bp`, en `services/breakpoints.service.ts`).
|
|
89
|
+
En la computadora va `medium`, nunca `small`; la tablet va como el celular (canon, dueño, 05-10-2026, D16). En pantallas de los
|
|
90
|
+
dos se elige con el servicio de breakpoints de la app (`bp`, en `services/breakpoints.service.ts`).
|
|
91
91
|
|
|
92
92
|
Tiene `size` para el campo: `small` (36), `medium` (40, default, el de siempre), **`large` (48)**,
|
|
93
93
|
el mismo alto que `sui-input` y `sui-select` `large`, y **`xlarge` (52)**, el de `sui-input` `xlarge`.
|
|
@@ -122,8 +122,8 @@ campo (y su placeholder) va en 16/24. Con `large` el calendario no cambia (días
|
|
|
122
122
|
|
|
123
123
|
| uso | mobile | web | fuente |
|
|
124
124
|
|---|---|---|---|
|
|
125
|
-
| fecha en un formulario | `xlarge` (días de 44) | `medium` | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono (el
|
|
126
|
-
| filtro de período de un reporte | `xlarge`, en línea dentro de un modal | `medium`, popover | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono (el
|
|
125
|
+
| fecha en un formulario | `xlarge` (días de 44) | `medium` | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
126
|
+
| filtro de período de un reporte | `xlarge`, en línea dentro de un modal | `medium`, popover | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
127
127
|
|
|
128
128
|
## «No usar»: por qué no hoy y cuándo sí
|
|
129
129
|
|
|
@@ -149,7 +149,7 @@ en la columna de la derecha, se usa (aprobado por el dueño, 03-10-2026).
|
|
|
149
149
|
| `calendars` | `1 \| 2` | `2` |
|
|
150
150
|
| `inline` | `boolean` | `false` |
|
|
151
151
|
| `size` | `'small' \| 'medium' \| 'large' \| 'xlarge'` | `'medium'` |
|
|
152
|
-
| `placeholder` | `string` | `
|
|
152
|
+
| `placeholder` | `string \| null` | `null` |
|
|
153
153
|
| `showFooter` | `boolean` | `true` |
|
|
154
154
|
| `disabled` | `boolean` | `false` |
|
|
155
155
|
| `min` | `Date \| null` | `null` |
|