@ajuarezso/sui-design-system 0.24.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/sui-accordion/README.md +4 -4
- package/docs/sui-activity-feed/README.md +11 -11
- package/docs/sui-activity-filter/README.md +5 -5
- package/docs/sui-app-store-badge/README.md +7 -7
- package/docs/sui-avatar/README.md +26 -23
- package/docs/sui-avatar-group/README.md +11 -7
- package/docs/sui-badge/README.md +7 -7
- package/docs/sui-banner/README.md +15 -15
- package/docs/sui-brand-logo/README.md +24 -23
- package/docs/sui-breadcrumb-item/README.md +3 -3
- package/docs/sui-breadcrumbs/README.md +6 -6
- package/docs/sui-button/README.md +9 -7
- package/docs/sui-button-group/README.md +25 -22
- package/docs/sui-button-group-item/README.md +16 -13
- package/docs/sui-card/README.md +8 -8
- package/docs/sui-chart-legend/README.md +10 -10
- package/docs/sui-chart-legend-dot/README.md +10 -10
- package/docs/sui-checkbox/README.md +4 -4
- package/docs/sui-checkbox-card/README.md +12 -12
- package/docs/sui-checkbox-label/README.md +3 -3
- package/docs/sui-circular-progress-bar/README.md +19 -16
- package/docs/sui-color-dot/README.md +13 -9
- package/docs/sui-color-picker/README.md +9 -9
- package/docs/sui-command-menu-footer/README.md +1 -1
- package/docs/sui-command-menu-item/README.md +13 -12
- package/docs/sui-command-menu-search/README.md +3 -2
- package/docs/sui-compact-avatar-group/README.md +14 -11
- package/docs/sui-compact-button/README.md +16 -11
- package/docs/sui-compact-select/README.md +5 -5
- package/docs/sui-compact-select-for-input/README.md +1 -1
- package/docs/sui-content-card/README.md +12 -12
- package/docs/sui-content-divider/README.md +18 -15
- package/docs/sui-content-label/README.md +17 -17
- package/docs/sui-counter-input/README.md +12 -12
- package/docs/sui-date-selector/README.md +8 -8
- package/docs/sui-datepicker/README.md +14 -14
- package/docs/sui-day-cell/README.md +15 -14
- package/docs/sui-day-label/README.md +4 -4
- package/docs/sui-divider/README.md +9 -6
- package/docs/sui-drawer-header/README.md +9 -9
- package/docs/sui-dropdown-caption/README.md +5 -5
- package/docs/sui-dropdown-item/README.md +5 -5
- package/docs/sui-dropdown-menu/README.md +10 -10
- package/docs/sui-dropdown-search/README.md +3 -3
- package/docs/sui-emoji/README.md +13 -13
- package/docs/sui-empty-state/README.md +4 -4
- package/docs/sui-fancy-button/README.md +15 -13
- package/docs/sui-file-icon/README.md +14 -11
- package/docs/sui-file-upload/README.md +10 -10
- package/docs/sui-file-upload-card/README.md +11 -10
- package/docs/sui-filter/README.md +12 -12
- package/docs/sui-flag/README.md +11 -7
- package/docs/sui-form-hint/README.md +2 -2
- package/docs/sui-form-label/README.md +4 -4
- package/docs/sui-icon/README.md +19 -16
- package/docs/sui-image-upload/README.md +20 -19
- package/docs/sui-image-upload-profile/README.md +12 -11
- package/docs/sui-img-retry/README.md +1 -1
- package/docs/sui-inline-input/README.md +6 -6
- package/docs/sui-inline-select/README.md +2 -2
- package/docs/sui-input/README.md +14 -14
- package/docs/sui-integration-switch/README.md +15 -15
- package/docs/sui-kbd/README.md +3 -3
- package/docs/sui-key-icon/README.md +22 -19
- package/docs/sui-link-button/README.md +21 -18
- package/docs/sui-logo/README.md +20 -19
- package/docs/sui-modal/README.md +11 -11
- package/docs/sui-modal-footer/README.md +3 -3
- package/docs/sui-modal-header/README.md +1 -1
- package/docs/sui-modal-sheet/README.md +4 -4
- package/docs/sui-notification/README.md +11 -11
- package/docs/sui-notification-footer/README.md +4 -4
- package/docs/sui-notification-tab-menu/README.md +4 -4
- package/docs/sui-otp-input/README.md +5 -5
- package/docs/sui-page-header/README.md +14 -12
- package/docs/sui-pagination/README.md +13 -13
- package/docs/sui-payment-icon/README.md +16 -13
- package/docs/sui-period-range/README.md +5 -5
- package/docs/sui-popover/README.md +10 -10
- package/docs/sui-product-card/README.md +15 -15
- package/docs/sui-progress-bar/README.md +12 -9
- package/docs/sui-progress-bar-label/README.md +14 -10
- package/docs/sui-radio/README.md +2 -2
- package/docs/sui-radio-card/README.md +12 -12
- package/docs/sui-radio-label/README.md +3 -3
- package/docs/sui-rating/README.md +22 -19
- package/docs/sui-rich-editor/README.md +2 -2
- package/docs/sui-segmented-control/README.md +9 -9
- package/docs/sui-select/README.md +9 -9
- package/docs/sui-sidebar/README.md +7 -7
- package/docs/sui-slider/README.md +7 -7
- package/docs/sui-social-button/README.md +8 -8
- package/docs/sui-status-badge/README.md +13 -10
- package/docs/sui-stepper/README.md +18 -18
- package/docs/sui-store-card/README.md +16 -16
- package/docs/sui-switch/README.md +2 -2
- package/docs/sui-switch-card/README.md +10 -10
- package/docs/sui-switch-label/README.md +1 -1
- package/docs/sui-tab-chips/README.md +17 -15
- package/docs/sui-tab-menu-horizontal/README.md +6 -6
- package/docs/sui-tab-menu-vertical/README.md +8 -8
- package/docs/sui-table/README.md +13 -13
- package/docs/sui-tag/README.md +14 -11
- package/docs/sui-tag-input/README.md +6 -6
- package/docs/sui-textarea/README.md +8 -8
- package/docs/sui-time-picker/README.md +25 -25
- package/docs/sui-toast/README.md +16 -15
- package/docs/sui-tooltip/README.md +19 -18
- package/docs/sui-topbar/README.md +7 -7
- package/docs/sui-topbar-button/README.md +4 -4
- package/docs/sui-topbar-item/README.md +7 -7
- package/docs/sui-topbar-user/README.md +5 -5
- package/fesm2022/ajuarezso-sui-design-system.mjs +15 -10
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +26 -22
|
@@ -46,30 +46,30 @@ Regla corta: **tabla con todo cargado en web → pagination · lista de Firestor
|
|
|
46
46
|
|
|
47
47
|
| type | cuándo | fuente |
|
|
48
48
|
|---|---|---|
|
|
49
|
-
| `basic` (default) | El normal, debajo de una tabla con bordes. | según la guía del DS (es su default); el cuándo
|
|
50
|
-
| `group` | Cuando la tabla va dentro de una card y la paginación se apoya en su borde: un solo bloque se lee como parte de la tabla. | según la guía del DS (la forma existe); el cuándo
|
|
49
|
+
| `basic` (default) | El normal, debajo de una tabla con bordes. | según la guía del DS (es su default); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
50
|
+
| `group` | Cuando la tabla va dentro de una card y la paginación se apoya en su borde: un solo bloque se lee como parte de la tabla. | según la guía del DS (la forma existe); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
51
51
|
| `full-radius` | No: el resto de los controles de la app (botones, inputs) tienen esquinas de 8-10, no círculos. | según la guía del DS (la forma existe); el no es propuesta |
|
|
52
52
|
|
|
53
53
|
### `size`
|
|
54
54
|
|
|
55
55
|
| size | qué mide | cuándo | fuente |
|
|
56
56
|
|---|---|---|---|
|
|
57
|
-
| `medium` (default) | celdas de 32 px | Web, debajo de una tabla. | extensión de SUI (la guía tiene un tamaño); el cuándo
|
|
58
|
-
| `small` | celdas de 28 px |
|
|
57
|
+
| `medium` (default) | celdas de 32 px | Web, siempre: debajo de una tabla y en un modal o panel angosto. | extensión de SUI (la guía tiene un tamaño); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B1) · también en paneles angostos: canon (dueño, 05-10-2026, D16) |
|
|
58
|
+
| `small` | celdas de 28 px | No usar: es chico. En un modal o panel angosto va `medium`. | canon (dueño, 05-10-2026, D16), reemplaza el «cuándo» del bloque B1 |
|
|
59
59
|
|
|
60
60
|
### Botones y texto
|
|
61
61
|
|
|
62
62
|
| input | valor | cuándo | fuente |
|
|
63
63
|
|---|---|---|---|
|
|
64
64
|
| `nextPrevious` | `true` (default) | Siempre. | según la guía del DS |
|
|
65
|
-
| `firstLast` | `false` (default) | Lo normal: con las elipsis ya se ve la primera y la última. |
|
|
66
|
-
| `firstLast` | `true` | Más de 20 páginas, donde ir al final es un caso de uso (la última semana de un export). | según la guía del DS (los botones existen); el cuándo
|
|
67
|
-
| `siblingCount` | `1` (default) | Siempre. Más números a cada lado ensanchan sin ayudar. |
|
|
68
|
-
| `showInfo` | `true` (default) | Con `infoFormat="items"`: «Mostrando 11-20 de 134». |
|
|
65
|
+
| `firstLast` | `false` (default) | Lo normal: con las elipsis ya se ve la primera y la última. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
66
|
+
| `firstLast` | `true` | Más de 20 páginas, donde ir al final es un caso de uso (la última semana de un export). | según la guía del DS (los botones existen); el cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
67
|
+
| `siblingCount` | `1` (default) | Siempre. Más números a cada lado ensanchan sin ayudar. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
68
|
+
| `showInfo` | `true` (default) | Con `infoFormat="items"`: «Mostrando 11-20 de 134». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
69
69
|
| `infoFormat` | `'items'` (default) | «Mostrando 11-20 de 134». | según el código |
|
|
70
|
-
| `infoFormat` | `'pages'` | Imprime «Página 2 de 14» (en español desde 03-10-2026). Cuando no se sabe el total de ítems o no importa. |
|
|
71
|
-
| `pageSizeOptions` | `[]` (default) | Lo normal: sin selector de filas por página. |
|
|
72
|
-
| `pageSizeOptions` | `[10, 25, 50]` | Las opciones dicen «10 / página» (en español desde 03-10-2026). |
|
|
70
|
+
| `infoFormat` | `'pages'` | Imprime «Página 2 de 14» (en español desde 03-10-2026). Cuando no se sabe el total de ítems o no importa. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
71
|
+
| `pageSizeOptions` | `[]` (default) | Lo normal: sin selector de filas por página. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
72
|
+
| `pageSizeOptions` | `[10, 25, 50]` | Las opciones dicen «10 / página» (en español desde 03-10-2026). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
73
73
|
|
|
74
74
|
Usos de hoy que rompen las reglas: **0** (no se usa).
|
|
75
75
|
|
|
@@ -80,8 +80,8 @@ mobile no se usa.
|
|
|
80
80
|
|
|
81
81
|
| uso | mobile | web | fuente |
|
|
82
82
|
|---|---|---|---|
|
|
83
|
-
| debajo de una tabla | no se usa: scroll infinito | `medium` (32) |
|
|
84
|
-
| tabla en un panel angosto | no se usa | `
|
|
83
|
+
| debajo de una tabla | no se usa: scroll infinito | `medium` (32) | canon (aprobado por el dueño, 05-10-2026, bloque B7) |
|
|
84
|
+
| tabla en un panel angosto | no se usa | `medium` (32) | no se usa en mobile: canon (aprobado por el dueño, 05-10-2026, bloque B7) · web: canon (dueño, 05-10-2026, D16), antes `small` |
|
|
85
85
|
|
|
86
86
|
```html
|
|
87
87
|
@if (!bp.isMobile()) {
|
|
@@ -23,8 +23,8 @@ el color ya elegidos.
|
|
|
23
23
|
|
|
24
24
|
## Qué variante usar
|
|
25
25
|
|
|
26
|
-
> **La guía del DS no tiene página para este componente.**
|
|
27
|
-
>
|
|
26
|
+
> **La guía del DS no tiene página para este componente.** Las reglas marcadas canon están
|
|
27
|
+
> aprobadas; lo que sigue en propuesta espera decisión.
|
|
28
28
|
>
|
|
29
29
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos**.
|
|
30
30
|
|
|
@@ -32,21 +32,21 @@ el color ya elegidos.
|
|
|
32
32
|
|
|
33
33
|
| valor | ícono y color | cuándo | fuente |
|
|
34
34
|
|---|---|---|---|
|
|
35
|
-
| `water` | gota, celeste | No usar hoy. |
|
|
36
|
-
| `gas` | fuego, rojo | No usar hoy. |
|
|
37
|
-
| `electricity` | foco, amarillo | No usar hoy. |
|
|
38
|
-
| `donate` | mano con corazón, rosa | No usar hoy. |
|
|
39
|
-
| `internet` | wifi, azul | No usar hoy. |
|
|
40
|
-
| `phone` | celular, naranja | No usar hoy. |
|
|
41
|
-
| `rent` | casa, verde | No usar hoy. |
|
|
42
|
-
| `tax` | documento, morado | No usar hoy. |
|
|
35
|
+
| `water` | gota, celeste | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
36
|
+
| `gas` | fuego, rojo | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
37
|
+
| `electricity` | foco, amarillo | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
38
|
+
| `donate` | mano con corazón, rosa | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
39
|
+
| `internet` | wifi, azul | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
40
|
+
| `phone` | celular, naranja | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
41
|
+
| `rent` | casa, verde | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
42
|
+
| `tax` | documento, morado | No usar hoy. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
43
43
|
|
|
44
44
|
### `size` y `ariaLabel`
|
|
45
45
|
|
|
46
46
|
| input | cuándo | fuente |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
| `size` `40` (default) | El único tamaño del Figma. Los demás (32, 48, 56, 64) heredan la escala de `sui-key-icon`. |
|
|
49
|
-
| `ariaLabel` | Solo si al lado no está escrito el servicio. Si no, es decorativo. |
|
|
48
|
+
| `size` `40` (default) | El único tamaño del Figma. Los demás (32, 48, 56, 64) heredan la escala de `sui-key-icon`. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
49
|
+
| `ariaLabel` | Solo si al lado no está escrito el servicio. Si no, es decorativo. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
50
50
|
|
|
51
51
|
Usos de hoy que rompen la regla: **0**.
|
|
52
52
|
|
|
@@ -55,7 +55,10 @@ Usos de hoy que rompen la regla: **0**.
|
|
|
55
55
|
En mobile se lee y se toca con el dedo, así que va más grande; en web, más chico. En las
|
|
56
56
|
pantallas que se usan en los dos (panel del local, super admin) se elige con el servicio de
|
|
57
57
|
breakpoints de la app (`bp`, en `services/breakpoints.service.ts`); en las que solo existen en
|
|
58
|
-
el celular (cliente, repartidor) va directo el valor de mobile.
|
|
58
|
+
el celular (cliente, repartidor) va directo el valor de mobile. No se toca, así que la tablet va
|
|
59
|
+
con el valor de web, y el celular chico (< 380 px) también (D16).
|
|
60
|
+
Es **canon (dueño, 05-10-2026, P1 b)**: un paso más grande en el celular que en computadora, y
|
|
61
|
+
se migra todo ahora, no solo al tocar cada pantalla.
|
|
59
62
|
|
|
60
63
|
| uso | mobile | web |
|
|
61
64
|
|---|---|---|
|
|
@@ -25,17 +25,17 @@ costado del calendario.
|
|
|
25
25
|
|
|
26
26
|
## Qué variante usar
|
|
27
27
|
|
|
28
|
-
> **La guía del DS no tiene página para este componente** (vive dentro del datepicker).
|
|
29
|
-
>
|
|
28
|
+
> **La guía del DS no tiene página para este componente** (vive dentro del datepicker). Las reglas
|
|
29
|
+
> marcadas canon están aprobadas; lo que sigue en propuesta espera decisión.
|
|
30
30
|
>
|
|
31
31
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos directos**. Lo usa por dentro
|
|
32
32
|
> `sui-datepicker`.
|
|
33
33
|
|
|
34
34
|
| input | valor | cuándo | fuente |
|
|
35
35
|
|---|---|---|---|
|
|
36
|
-
| `label` | texto | El período en palabras de la persona: «Hoy», «Últimos 7 días», «Este mes». Sin fechas: para eso está el calendario al lado. |
|
|
37
|
-
| `active` | `true` | El preset que coincide con el rango elegido. Uno solo; si el rango se tocó a mano, ninguno. |
|
|
38
|
-
| `disabled` | `true` | El período no tiene datos (un local que abrió hace 10 días con «Últimos 3 meses»). Mejor sacarlo de la lista si nunca va a tener datos. |
|
|
36
|
+
| `label` | texto | El período en palabras de la persona: «Hoy», «Últimos 7 días», «Este mes». Sin fechas: para eso está el calendario al lado. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
37
|
+
| `active` | `true` | El preset que coincide con el rango elegido. Uno solo; si el rango se tocó a mano, ninguno. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
38
|
+
| `disabled` | `true` | El período no tiene datos (un local que abrió hace 10 días con «Últimos 3 meses»). Mejor sacarlo de la lista si nunca va a tener datos. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
39
39
|
|
|
40
40
|
Usos de hoy que rompen la regla: **0**.
|
|
41
41
|
|
|
@@ -55,11 +55,11 @@ una función nueva que conviene mostrar donde está («Aquí programas tus pedid
|
|
|
55
55
|
|
|
56
56
|
| prop | valor | cuándo | fuente |
|
|
57
57
|
|---|---|---|---|
|
|
58
|
-
| `doubleButton` | `true` (default) | Desde el segundo paso de un recorrido («Atrás» / «Siguiente»), o un aviso suelto con «Ahora no» / «Probar». |
|
|
59
|
-
| `doubleButton` | `false` | El primer paso de un recorrido o un aviso suelto con una sola salida («Entendido»). |
|
|
58
|
+
| `doubleButton` | `true` (default) | Desde el segundo paso de un recorrido («Atrás» / «Siguiente»), o un aviso suelto con «Ahora no» / «Probar». | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
59
|
+
| `doubleButton` | `false` | El primer paso de un recorrido o un aviso suelto con una sola salida («Entendido»). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
60
60
|
| `backLabel` · `nextLabel` | texto en español | Los defaults ya son «Atrás» y «Siguiente» (03-10-2026); el último paso pasa `nextLabel="Listo"`. | canon (CANON-SUI §5.1 y §5.3: sentence case, tuteo) |
|
|
61
61
|
| orden | secundario a la izquierda, primario a la derecha | Ya lo hace el componente (stroke neutral + filled primary), igual que `sui-modal-footer`. | canon (CLAUDE.md, «Botones — composición y orden») |
|
|
62
|
-
| `step` | `{ current, total }` | Con `stepper`. Sin `step`, el componente asume **1 de 4**. |
|
|
62
|
+
| `step` | `{ current, total }` | Con `stepper`. Sin `step`, el componente asume **1 de 4**. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
63
63
|
|
|
64
64
|
### Flecha, ícono, texto y cierre
|
|
65
65
|
|
|
@@ -71,13 +71,13 @@ una función nueva que conviene mostrar donde está («Aquí programas tus pedid
|
|
|
71
71
|
| `position` | `bottom-*` | El elemento está abajo (la barra de pestañas): el popover va encima. | propuesta |
|
|
72
72
|
| `position` | `left-*` · `right-*` | Elementos de una barra lateral (el sidebar del panel). | propuesta |
|
|
73
73
|
| `position` | `*-left` · `*-center` · `*-right` | Alinea la flecha con el elemento cuando el popover no puede centrarse sobre él (está cerca de un borde). | propuesta |
|
|
74
|
-
| `icon` | el de lo que se explica | Siempre uno que diga el tema (`calendar-schedule-line` para programar). El default es un ícono de persona. |
|
|
75
|
-
| `icon` | `null` | Cuando el texto ya basta y el ícono sería decoración. |
|
|
74
|
+
| `icon` | el de lo que se explica | Siempre uno que diga el tema (`calendar-schedule-line` para programar). El default es un ícono de persona. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
75
|
+
| `icon` | `null` | Cuando el texto ya basta y el ícono sería decoración. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
76
76
|
| `title` | frase corta | Qué es, en sentence case y sin punto final. | canon (CANON-SUI §5.1 y §5.2) |
|
|
77
77
|
| `description` | una o dos frases | Qué hace o por qué importa. | propuesta |
|
|
78
|
-
| `dismissIcon` | `true` (default) | Siempre: un recorrido se puede saltar. |
|
|
79
|
-
| `dismissIcon` | `false` | No usar hoy. **Cuándo sí:** un paso que no se puede saltar porque sin él no funciona lo siguiente. |
|
|
80
|
-
| `[data-slot=body]` | contenido propio | No usar hoy. **Cuándo sí:** el paso necesita una imagen o una lista en vez de título y texto. |
|
|
78
|
+
| `dismissIcon` | `true` (default) | Siempre: un recorrido se puede saltar. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
79
|
+
| `dismissIcon` | `false` | No usar hoy. **Cuándo sí:** un paso que no se puede saltar porque sin él no funciona lo siguiente. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
80
|
+
| `[data-slot=body]` | contenido propio | No usar hoy. **Cuándo sí:** el paso necesita una imagen o una lista en vez de título y texto. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
81
81
|
|
|
82
82
|
## Tamaño en mobile y en web
|
|
83
83
|
|
|
@@ -96,11 +96,11 @@ extensión SUI 03-10-2026).
|
|
|
96
96
|
| uso | mobile | web | fuente |
|
|
97
97
|
|---|---|---|---|
|
|
98
98
|
| el panel | 320 px (cabe desde 352 px de pantalla) | 320 px | según el componente |
|
|
99
|
-
| botones del pie | `large` (48) | `
|
|
99
|
+
| botones del pie | `large` (48) | `medium` (40) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (dueño, 05-10-2026, D16), antes `small` (el default del componente: hay que pasarlo) |
|
|
100
100
|
| la X | se ve de 24, se toca en 40 | igual | canon (aprobado por el dueño, 03-10-2026) |
|
|
101
101
|
|
|
102
102
|
```html
|
|
103
|
-
<sui-popover footer="stretch" [size]="bp.isMobile() ? 'large' : '
|
|
103
|
+
<sui-popover footer="stretch" [size]="bp.isMobile() ? 'large' : 'medium'" … />
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
`large` es el siguiente de la escala del `sui-button` (48, el del footer de los modales). `medium`
|
|
@@ -39,18 +39,18 @@ Regla corta: **producto en la grilla de la carta → product-card · producto en
|
|
|
39
39
|
|
|
40
40
|
| prop | cuándo | fuente |
|
|
41
41
|
|---|---|---|
|
|
42
|
-
| `name`, `price` (obligatorios) | Siempre. El precio sale con 2 decimales y punto: «S/ 35.00». |
|
|
43
|
-
| `description` | Una línea que diga qué trae: «Con hierbas aromáticas y papas nativas». |
|
|
44
|
-
| `image` como objeto `{ url, fallbackUrl, position }` | Lo normal: `url` = la miniatura, `fallbackUrl` = la foto grande por si la miniatura no carga, `position` = encuadre vertical guardado. |
|
|
45
|
-
| `image` como string | Solo la url, sin respaldo. |
|
|
46
|
-
| `image = null` + `fallback` | Sin foto: banda de color con el nombre (default). La carta pasa `{ color }` para variar el color por visita con `SUI_PRODUCT_FALLBACK_COLORS`. |
|
|
47
|
-
| `available=false` + `unavailableLabel` | Agotado o fuera de horario; la etiqueta dice cuál («Agotado», «Desde las 12 m.»). Se atenúa y pierde el «+». |
|
|
48
|
-
| `quantity` | Cuántos hay en el carrito: con más de 0, el «+» pasa a stepper (− / cantidad / +). |
|
|
49
|
-
| `closed` | El local no recibe pedidos: se ve, no se agrega. |
|
|
50
|
-
| `action="add"` (default) | La carta del cliente. |
|
|
51
|
-
| `action="edit"` | La grilla del dueño: lápiz siempre (también en agotado, que es justo el que quiere tocar), nunca stepper. |
|
|
52
|
-
| `currencySymbol` | Default `S/`. No se cambia: la app cobra en soles. |
|
|
53
|
-
| `fallback.variant="icon"` | Ver «No usar». |
|
|
42
|
+
| `name`, `price` (obligatorios) | Siempre. El precio sale con 2 decimales y punto: «S/ 35.00». | canon (CANON-SUI §5.5: «S/ » + espacio, punto decimal y 2 decimales; el precio se pasa como número y el componente formatea) |
|
|
43
|
+
| `description` | Una línea que diga qué trae: «Con hierbas aromáticas y papas nativas». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
44
|
+
| `image` como objeto `{ url, fallbackUrl, position }` | Lo normal: `url` = la miniatura, `fallbackUrl` = la foto grande por si la miniatura no carga, `position` = encuadre vertical guardado. | canon (aprobado por el dueño, 05-10-2026, bloque B9) (así lo hace la carta) |
|
|
45
|
+
| `image` como string | Solo la url, sin respaldo. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
46
|
+
| `image = null` + `fallback` | Sin foto: banda de color con el nombre (default). La carta pasa `{ color }` para variar el color por visita con `SUI_PRODUCT_FALLBACK_COLORS`. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
47
|
+
| `available=false` + `unavailableLabel` | Agotado o fuera de horario; la etiqueta dice cuál («Agotado», «Desde las 12 m.»). Se atenúa y pierde el «+». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
48
|
+
| `quantity` | Cuántos hay en el carrito: con más de 0, el «+» pasa a stepper (− / cantidad / +). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
49
|
+
| `closed` | El local no recibe pedidos: se ve, no se agrega. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
50
|
+
| `action="add"` (default) | La carta del cliente. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
51
|
+
| `action="edit"` | La grilla del dueño: lápiz siempre (también en agotado, que es justo el que quiere tocar), nunca stepper. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
52
|
+
| `currencySymbol` | Default `S/`. No se cambia: la app cobra en soles. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
53
|
+
| `fallback.variant="icon"` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
54
54
|
|
|
55
55
|
Outputs: `openDetail` (toque en la card), `add`, `increment`, `decrement`, `edit`.
|
|
56
56
|
|
|
@@ -77,13 +77,13 @@ lápiz sí siguen al lado del precio.
|
|
|
77
77
|
| uso | mobile | web | fuente |
|
|
78
78
|
|---|---|---|---|
|
|
79
79
|
| grilla de la carta | 2 columnas (`1fr 1fr`, gap 12) | `repeat(auto-fill, minmax(220px, 1fr))` desde 600 px y `minmax(180px, 1fr)` en desktop | lo que hay en la app |
|
|
80
|
-
| botón «+», lápiz, stepper | `large` (44) | `
|
|
80
|
+
| botón «+», lápiz, stepper | `large` (44) | `medium` (40) | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (dueño, 05-10-2026, D16), antes `small` (el default del componente: hay que pasarlo) |
|
|
81
81
|
|
|
82
82
|
```html
|
|
83
|
-
<sui-product-card [size]="bp.isMobile() ? 'large' : '
|
|
83
|
+
<sui-product-card [size]="bp.isMobile() ? 'large' : 'medium'" … />
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
`medium` (40)
|
|
86
|
+
`medium` (40) es el de la computadora (D16); la tablet va como el teléfono, porque se toca.
|
|
87
87
|
|
|
88
88
|
## Precio con descuento
|
|
89
89
|
|
|
@@ -29,8 +29,8 @@ dice qué mide y cuánto.
|
|
|
29
29
|
> y trae cuatro colores (`blue` default, `red`, `orange`, `green`), una sola altura, `value` y
|
|
30
30
|
> `max`. No dice cuándo usar cada color. Cada color apunta a un token de estado
|
|
31
31
|
> (`--sui-state-*`), igual que el badge: de ahí sale su significado, que es el mismo que el del
|
|
32
|
-
> badge aprobado. Lo marcado «según la guía del DS» sale de ahí;
|
|
33
|
-
>
|
|
32
|
+
> badge aprobado. Lo marcado «según la guía del DS» sale de ahí; lo marcado canon está
|
|
33
|
+
> aprobado; lo que sigue en propuesta espera decisión.
|
|
34
34
|
>
|
|
35
35
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **2 barras peladas en 1 pantalla**
|
|
36
36
|
> (`overview-visitors`), sin contar prototipos ni vitrinas (`master-preview`,
|
|
@@ -45,7 +45,7 @@ dice qué mide y cuánto.
|
|
|
45
45
|
| `green` | `success` | Se cumplió o va bien. | Meta cumplida, saldo alto | según la guía del DS (token) · propuesta (cuándo) |
|
|
46
46
|
| `orange` | `warning` | Va en curso y pide atención. | Saldo bajando, meta del día a medias | según la guía del DS (token) · propuesta (cuándo) |
|
|
47
47
|
| `red` | `error` | Se perdió o se acabó. | Meta perdida, saldo agotado | según la guía del DS (token) · propuesta (cuándo) |
|
|
48
|
-
| `purple` | `feature` | **No usar** (ver abajo). Extensión SUI. | — |
|
|
48
|
+
| `purple` | `feature` | **No usar** (ver abajo). Extensión SUI. | — | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
49
49
|
|
|
50
50
|
**Ojo con el naranja**: en este proyecto el `orange` de estado (`--sui-state-warning-base`) es
|
|
51
51
|
el mismo `#fa7319` de la marca. Una barra naranja sin un juicio detrás se lee como «marca», no
|
|
@@ -64,8 +64,8 @@ como «atención».
|
|
|
64
64
|
|
|
65
65
|
| propiedad | regla | fuente |
|
|
66
66
|
|---|---|---|
|
|
67
|
-
| `value` | Siempre de 0 a 100. Si el dato viene como fracción (0,6) o como «3 de 5», se convierte antes. |
|
|
68
|
-
| `ariaLabel` | **
|
|
67
|
+
| `value` | Siempre de 0 a 100. Si el dato viene como fracción (0,6) o como «3 de 5», se convierte antes. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
68
|
+
| `ariaLabel` o `ariaLabelledby` | **Uno de los dos es obligatorio** en la barra pelada: sin título visible, el lector de pantalla no sabe qué mide. `ariaLabelledby` apunta al id de un texto que ya se ve. | canon (aprobado por el dueño, 05-10-2026, bloque B13) |
|
|
69
69
|
|
|
70
70
|
**Usos de hoy que rompen la regla — a discutir, 2:**
|
|
71
71
|
`pages/overview/components/overview-visitors/overview-visitors.html:22` y `:45` pintan en
|
|
@@ -81,10 +81,13 @@ regla va `blue`, o mejor un gráfico. Tampoco llevan `ariaLabel`.
|
|
|
81
81
|
|
|
82
82
|
## Tamaño en mobile y en web
|
|
83
83
|
|
|
84
|
-
Criterio de la app: **
|
|
85
|
-
(
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
Criterio de la app: **D16, tamaño por dispositivo** (canon, dueño, 05-10-2026), que reemplaza al
|
|
85
|
+
«tamaño por plataforma» del 03-10-2026 (mobile grande, web chico). La columna «mobile» es el celular de
|
|
86
|
+
380 px o más y, en lo que se toca, también la tablet (`pointer: coarse`). La columna «web» es la
|
|
87
|
+
computadora (`pointer: fine`) y, en lo que no se toca, también la tablet. En el celular chico
|
|
88
|
+
(< 380 px) va `medium` a la vista, sin achicar el área de 44 de lo que se toca. **Nada en `small` ni
|
|
89
|
+
`xsmall`**, salvo lo que el componente solo tiene en chico. Hoy la app corta con
|
|
90
|
+
`BreakpointsService.isMobile()` (≤ 767 px), que todavía no mira el puntero ni los 380 px.
|
|
88
91
|
|
|
89
92
|
| uso | mobile | web | fuente |
|
|
90
93
|
|---|---|---|---|
|
|
@@ -27,7 +27,8 @@ descripción y link, con el espaciado del DS.
|
|
|
27
27
|
> **La guía del DS no tiene una página propia para esto**: son los ejemplos «With Label» y
|
|
28
28
|
> «Advanced» de la página de la barra de progreso (título + «80%», y debajo un link
|
|
29
29
|
> «Upgrade» con una descripción). No dice cuándo usar cada forma. Lo marcado «según la guía del
|
|
30
|
-
> DS» sale de esos ejemplos;
|
|
30
|
+
> DS» sale de esos ejemplos; lo marcado canon está aprobado; lo que sigue en
|
|
31
|
+
> propuesta espera decisión.
|
|
31
32
|
>
|
|
32
33
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **4 en 3 pantallas** (la descarga del
|
|
33
34
|
> OTA, el saldo y la meta del día en el dashboard del repartidor, el saldo en la billetera), sin
|
|
@@ -41,14 +42,14 @@ que mide** (blue neutro, green cumplido, orange pide atención, red perdido o ag
|
|
|
41
42
|
| propiedad | valor | cuándo | ejemplo real | fuente |
|
|
42
43
|
|---|---|---|---|---|
|
|
43
44
|
| `type` | `on-top` (default) | Título y número arriba, barra abajo. Lo normal. | Las 4 de la app | según la guía del DS («With Label») |
|
|
44
|
-
| `type` | `on-right` | Sin título: barra y número en una línea, dentro de una fila que ya dice qué mide a la izquierda. | Pedidos por distrito en una tabla |
|
|
45
|
+
| `type` | `on-right` | Sin título: barra y número en una línea, dentro de una fila que ya dice qué mide a la izquierda. | Pedidos por distrito en una tabla | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
45
46
|
| `title` | texto | Qué mide, en sentence case, sin punto: «Saldo restante», «Meta del día». | `pages/driver/driver-wallet/driver-wallet.html:43` | según la guía del DS |
|
|
46
47
|
| `percentage` | `true` (default) | El porcentaje es la unidad que importa (una descarga). | `components/ota-update/ota-update.html:132` | según la guía del DS («80%») |
|
|
47
|
-
| `percentage` | texto | Hay una unidad real: entregas, soles. «3 de 5 entregas», «S/ 12.40 de S/ 20.00». | `pages/driver/driver-dashboard/driver-dashboard.html:512` |
|
|
48
|
-
| `percentage` | `false` | El número ya está escrito al lado, o no significa nada. | — |
|
|
48
|
+
| `percentage` | texto | Hay una unidad real: entregas, soles. «3 de 5 entregas», «S/ 12.40 de S/ 20.00». | `pages/driver/driver-dashboard/driver-dashboard.html:512` | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
49
|
+
| `percentage` | `false` | El número ya está escrito al lado, o no significa nada. | — | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
49
50
|
| `showBottom` + `description` | texto | Qué está pasando o qué hacer mientras avanza: «No cierres la app, estamos dejando todo listo.» | `components/ota-update/ota-update.html:132` | según la guía del DS («Advanced») |
|
|
50
|
-
| `link` | texto o `{ label, href }` | La acción que resuelve lo que la barra avisa: «Recargar» cuando el saldo está en rojo. Va con `showBottom`. | — (sin usos) | según la guía del DS («Upgrade») ·
|
|
51
|
-
| `ariaLabel` | texto | Lo que mide, si el título no alcanza («Saldo restante sobre el saldo de cortesía»). | `pages/driver/driver-dashboard/driver-dashboard.html:240` |
|
|
51
|
+
| `link` | texto o `{ label, href }` | La acción que resuelve lo que la barra avisa: «Recargar» cuando el saldo está en rojo. Va con `showBottom`. | — (sin usos) | según la guía del DS («Upgrade») · canon (aprobado por el dueño, 05-10-2026, bloque B9) (cuándo) |
|
|
52
|
+
| `ariaLabel` | texto | Lo que mide, si el título no alcanza («Saldo restante sobre el saldo de cortesía»). | `pages/driver/driver-dashboard/driver-dashboard.html:240` | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
52
53
|
|
|
53
54
|
**Usos de hoy que rompen la regla — a discutir, 1:**
|
|
54
55
|
`components/ota-update/ota-update.html:132` pinta la descarga en `orange`. Una descarga es avance
|
|
@@ -65,10 +66,13 @@ ser una decisión de marca y no un error: decide el dueño. Las de saldo y meta
|
|
|
65
66
|
|
|
66
67
|
## Tamaño en mobile y en web
|
|
67
68
|
|
|
68
|
-
Criterio de la app: **
|
|
69
|
-
(
|
|
70
|
-
|
|
71
|
-
|
|
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.
|
|
72
76
|
|
|
73
77
|
El `size` solo cambia la barra; el título y el número no cambian de tamaño.
|
|
74
78
|
|
package/docs/sui-radio/README.md
CHANGED
|
@@ -43,7 +43,7 @@ Regla corta: **lista densa de texto → radio-label · con peso o en el teléfon
|
|
|
43
43
|
| qué | cuándo | fuente |
|
|
44
44
|
|---|---|---|
|
|
45
45
|
| dentro de `sui-radio-group` + `[value]` | Siempre que haya más de una opción. El grupo hace la exclusión y se enchufa a `[(ngModel)]`. | según la guía del DS (es un radio group) |
|
|
46
|
-
| suelto con `[(standaloneChecked)]` | Solo cuando la exclusión la hace la fila o el padre (la fila de opciones del detalle de producto). **Suelto, al tocarlo se desmarca** como un checkbox. |
|
|
46
|
+
| suelto con `[(standaloneChecked)]` | Solo cuando la exclusión la hace la fila o el padre (la fila de opciones del detalle de producto). **Suelto, al tocarlo se desmarca** como un checkbox. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
47
47
|
| `disabled` | La opción existe pero no aplica ahora (una variante agotada). | según la guía del DS |
|
|
48
48
|
|
|
49
49
|
### `size`
|
|
@@ -52,7 +52,7 @@ Regla corta: **lista densa de texto → radio-label · con peso o en el teléfon
|
|
|
52
52
|
|---|---|---|---|
|
|
53
53
|
| `xlarge` | 28 | Mobile, vía `bp.controlSize()`. | canon (aprobado por el dueño, 28-09-2026: «componentes grandes») |
|
|
54
54
|
| `large` | 24 | Desktop, vía `bp.controlSize()`. | canon (aprobado por el dueño, 28-09-2026) |
|
|
55
|
-
| `medium` (default) | 20 | Solo dentro de un componente que fija su escala (detalle de producto). Es el único tamaño de la guía. | según la guía del DS (único tamaño); el «cuándo» es
|
|
55
|
+
| `medium` (default) | 20 | Solo dentro de un componente que fija su escala (detalle de producto). Es el único tamaño de la guía. | según la guía del DS (único tamaño); el «cuándo» es canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
56
56
|
|
|
57
57
|
**Usos de hoy que rompen la regla:**
|
|
58
58
|
|
|
@@ -41,24 +41,24 @@ checkbox-card.**
|
|
|
41
41
|
|
|
42
42
|
| type | cuándo | fuente |
|
|
43
43
|
|---|---|---|
|
|
44
|
-
| `left-icon` con `icon` | Lo normal: un ícono Remix que dice de qué va la opción (`truck-line` Delivery, `store-2-line` Recojo). |
|
|
45
|
-
| `left-icon` con `iconSrc` | Emoji animado cuando la elección es de las grandes del rol (el vehículo del repartidor, el rol al registrarse, el tipo de mandadito). Los emojis van de `assets/emojis/` o `FLUENT_EMOJI_ANIM`. |
|
|
46
|
-
| `left-icon` con `emoji` | Lo mismo con un nombre de `SuiEmoji` en vez de una URL. Hoy 0 usos; vale igual. |
|
|
47
|
-
| `basic` | Opciones de texto puro: motivos de cancelación, quién paga el envío, los premios de una meta. |
|
|
48
|
-
| `avatar` (`imageUrl`) | El logo redondo de un medio de pago (Yape, Plin, efectivo en el checkout). |
|
|
49
|
-
| `company` (`imageUrl`) | Elegir entre tus locales (cambiar de negocio en mi-negocio). |
|
|
50
|
-
| `brand`, `card-provider` | Ver «No usar». |
|
|
44
|
+
| `left-icon` con `icon` | Lo normal: un ícono Remix que dice de qué va la opción (`truck-line` Delivery, `store-2-line` Recojo). | canon (aprobado por el dueño, 05-10-2026, bloque B2) (práctica de la app) |
|
|
45
|
+
| `left-icon` con `iconSrc` | Emoji animado cuando la elección es de las grandes del rol (el vehículo del repartidor, el rol al registrarse, el tipo de mandadito). Los emojis van de `assets/emojis/` o `FLUENT_EMOJI_ANIM`. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
46
|
+
| `left-icon` con `emoji` | Lo mismo con un nombre de `SuiEmoji` en vez de una URL. Hoy 0 usos; vale igual. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
47
|
+
| `basic` | Opciones de texto puro: motivos de cancelación, quién paga el envío, los premios de una meta. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
48
|
+
| `avatar` (`imageUrl`) | El logo redondo de un medio de pago (Yape, Plin, efectivo en el checkout). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
49
|
+
| `company` (`imageUrl`) | Elegir entre tus locales (cambiar de negocio en mi-negocio). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
50
|
+
| `brand`, `card-provider` | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
51
51
|
|
|
52
52
|
### Las piezas
|
|
53
53
|
|
|
54
54
|
| prop | cuándo | fuente |
|
|
55
55
|
|---|---|---|
|
|
56
|
-
| `value` (obligatorio) | Siempre, aunque no haya grupo. Es lo que emite `selected`. |
|
|
57
|
-
| `label` | Siempre. El nombre de la opción, corto: «Delivery», «Lo antes posible». |
|
|
58
|
-
| `description` | Casi siempre: la consecuencia de elegirla («Lo revisamos y te transferimos. Puede tardar unas horas.»). |
|
|
59
|
-
| `sublabel` | Una precisión corta entre paréntesis («(canal estable)», «(sin OTA)»). Nunca la explicación: eso es `description`. |
|
|
56
|
+
| `value` (obligatorio) | Siempre, aunque no haya grupo. Es lo que emite `selected`. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
57
|
+
| `label` | Siempre. El nombre de la opción, corto: «Delivery», «Lo antes posible». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
58
|
+
| `description` | Casi siempre: la consecuencia de elegirla («Lo revisamos y te transferimos. Puede tardar unas horas.»). | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
59
|
+
| `sublabel` | Una precisión corta entre paréntesis («(canal estable)», «(sin OTA)»). Nunca la explicación: eso es `description`. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
60
60
|
| `badge` | Marca una opción frente a las otras: «Por defecto». Con string sale azul `light`; pasa el objeto con el color que corresponda según el badge (un «Por defecto» es `gray`). | propuesta |
|
|
61
|
-
| `disabled` | La opción existe pero hoy no se puede: di por qué en la `description` («El local está cerrado ahora»). |
|
|
61
|
+
| `disabled` | La opción existe pero hoy no se puede: di por qué en la `description` («El local está cerrado ahora»). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
62
62
|
| `checked` / `[(ngModel)]` / `sui-radio-group` | El estado: `[checked]` + `(selected)` sueltos (lo normal en la app), o `ngModel` con `name` (checkout), o dentro de un `sui-radio-group`. | propuesta |
|
|
63
63
|
|
|
64
64
|
### `size` (el radio de adentro)
|
|
@@ -47,8 +47,8 @@ o con peso → radio-card · muchas → select.**
|
|
|
47
47
|
| `value` | Siempre (es obligatorio). Lo que lee el `sui-radio-group`. | API |
|
|
48
48
|
| `label` | Siempre. La opción en pocas palabras («Dirección no encontrada», «12:00 — 12:30 p. m.»). | según la guía del DS (pieza) |
|
|
49
49
|
| `sublabel` | Precisión corta entre paréntesis: «(recomendado)». | según la guía del DS |
|
|
50
|
-
| `description` | Una frase de qué pasa si se elige. Sube el label a peso medio. Si casi todas las opciones la necesitan, probablemente es `sui-radio-card`. | según la guía del DS (pieza); el «cuándo» es
|
|
51
|
-
| `badge` | Solo novedad. Con string sale naranja `light`: pasa el objeto. | según la guía del DS (pieza «NEW»); el color es
|
|
50
|
+
| `description` | Una frase de qué pasa si se elige. Sube el label a peso medio. Si casi todas las opciones la necesitan, probablemente es `sui-radio-card`. | según la guía del DS (pieza); el «cuándo» es canon (aprobado por el dueño, 05-10-2026, bloque B4) |
|
|
51
|
+
| `badge` | Solo novedad. Con string sale naranja `light`: pasa el objeto. | según la guía del DS (pieza «NEW»); el color es canon (aprobado por el dueño, 05-10-2026, bloque B3) |
|
|
52
52
|
| `link` | «Ver detalle» que no elige la opción. Solo se ve con `description`. | según la guía del DS |
|
|
53
53
|
| `flip` | Círculo a la derecha en listas de opciones tipo hoja (sheet) y de ajustes, donde el texto es lo que se lee y el círculo es el indicador, como las franjas del checkout. En formularios, a la izquierda. | canon (aprobado por el dueño, 03-10-2026) |
|
|
54
54
|
| `disabled` | La opción existe pero no aplica (franja ya llena). | según la guía del DS |
|
|
@@ -76,7 +76,7 @@ dueño, 28-09-2026).
|
|
|
76
76
|
|---|---|---|---|
|
|
77
77
|
| opciones de un formulario o una hoja (franjas horarias, método de entrega) | `2xlarge` (fila de 44 como mínimo, círculo 28, label 16/24) | `large` (círculo 24, label 16/24) | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono; web: canon (aprobado por el dueño, 03-10-2026) |
|
|
78
78
|
| lista densa de desktop | — | `medium` (círculo 20, label 14/20) | propuesta, falta aprobación |
|
|
79
|
-
| opciones con mucho contexto cada una | `sui-radio-card` con `bp.controlSize()` | `sui-radio-card` con `bp.controlSize()` |
|
|
79
|
+
| opciones con mucho contexto cada una | `sui-radio-card` con `bp.controlSize()` | `sui-radio-card` con `bp.controlSize()` | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
80
80
|
|
|
81
81
|
```html
|
|
82
82
|
<sui-radio-label value="recojo" [size]="bp.isMobile() ? '2xlarge' : 'large'" label="Recojo en tienda" />
|
|
@@ -35,8 +35,8 @@ lista cargada, que viene con tope. La fórmula depende de `n`: otro denominador
|
|
|
35
35
|
> el suyo («cada sistema de calificación se comporta distinto»). Los ejemplos son: nota con
|
|
36
36
|
> reseñas («4.5 ∙ 5.2K Ratings · 18 reviews»), celdas, barra de estrellas, barra de corazones,
|
|
37
37
|
> barra de emojis, barra de números del 1 al 5 y barra con área de texto. No trae tamaños, ni
|
|
38
|
-
> do/don't. Lo marcado «según la guía del DS» es que el ejemplo existe; el cuándo
|
|
39
|
-
>
|
|
38
|
+
> do/don't. Lo marcado «según la guía del DS» es que el ejemplo existe; el cuándo está
|
|
39
|
+
> aprobado donde dice «canon»; lo que sigue en propuesta espera decisión.
|
|
40
40
|
>
|
|
41
41
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **23 ratings en 13 pantallas**, sin
|
|
42
42
|
> contar prototipos ni vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`,
|
|
@@ -59,8 +59,8 @@ lista cargada, que viene con tope. La fórmula depende de `n`: otro denominador
|
|
|
59
59
|
|
|
60
60
|
| type | cuándo | fuente |
|
|
61
61
|
|---|---|---|
|
|
62
|
-
| `star` (default) | La nota de un pedido, un local, un repartidor o un cliente: la que entra al promedio. | según la guía del DS (ejemplo) ·
|
|
63
|
-
| `emoji` | Cómo le fue a la persona con la app o con un proceso (no entra a la nota de nadie). Solo en `bar`. Hoy: `components/rate-entity-card/rate-entity-card.html:38`. | según la guía del DS (ejemplo «Single Selectable») ·
|
|
62
|
+
| `star` (default) | La nota de un pedido, un local, un repartidor o un cliente: la que entra al promedio. | según la guía del DS (ejemplo) · canon (aprobado por el dueño, 05-10-2026, bloque B2) (cuándo) |
|
|
63
|
+
| `emoji` | Cómo le fue a la persona con la app o con un proceso (no entra a la nota de nadie). Solo en `bar`. Hoy: `components/rate-entity-card/rate-entity-card.html:38`. | según la guía del DS (ejemplo «Single Selectable») · canon (aprobado por el dueño, 05-10-2026, bloque B2) (cuándo) |
|
|
64
64
|
| `heart` | **No usar** como nota (ver abajo). | según la guía del DS (ejemplo «Rating Bar Heart») |
|
|
65
65
|
| `number` | **No usar** hoy (ver abajo). Solo en `bar`. | según la guía del DS (ejemplo de 1 a 5) |
|
|
66
66
|
|
|
@@ -77,20 +77,20 @@ lista cargada, que viene con tope. La fórmula depende de `n`: otro denominador
|
|
|
77
77
|
|
|
78
78
|
| propiedad | valor | cuándo | fuente |
|
|
79
79
|
|---|---|---|---|
|
|
80
|
-
| `readonly` | `true` | **Todo rating que muestra una nota.** Sin él se puede tocar y cambiar. |
|
|
80
|
+
| `readonly` | `true` | **Todo rating que muestra una nota.** Sin él se puede tocar y cambiar. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
81
81
|
| `halfStep` | `true` | Obligatorio si el valor es un **promedio** (sin él, 4,5 se pinta como 4). Una nota individual es entera y no lo necesita. Solo funciona en `inline` + `readonly`. | según la guía del DS (muestra 4.5) |
|
|
82
|
-
| `value` | `0` | Solo dentro del botón que invita a calificar, junto al texto «Calificar» (`pages/customer/order-history/order-history.html:352`). Suelto, cinco estrellas vacías se leen como «0 estrellas». |
|
|
83
|
-
| `max` | `5` (default) | Siempre 5 en notas: la fórmula de la nota asume 5. |
|
|
84
|
-
| `max` | otro | Solo con `type="number"` (encuesta de 1 a 10). |
|
|
85
|
-
| `alignment` | `inline` (default) | Solo los íconos; el número y el conteo los escribe la pantalla. |
|
|
86
|
-
| `alignment` | `horizontal` | Junto con `reviewLink`. |
|
|
87
|
-
| `alignment` | `vertical` | **No usar** (ver abajo). |
|
|
82
|
+
| `value` | `0` | Solo dentro del botón que invita a calificar, junto al texto «Calificar» (`pages/customer/order-history/order-history.html:352`). Suelto, cinco estrellas vacías se leen como «0 estrellas». | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
83
|
+
| `max` | `5` (default) | Siempre 5 en notas: la fórmula de la nota asume 5. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
84
|
+
| `max` | otro | Solo con `type="number"` (encuesta de 1 a 10). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
85
|
+
| `alignment` | `inline` (default) | Solo los íconos; el número y el conteo los escribe la pantalla. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
86
|
+
| `alignment` | `horizontal` | Junto con `reviewLink`. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
87
|
+
| `alignment` | `vertical` | **No usar** (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
88
88
|
| `reviewLink` | `{ label, href? }` | Link «Ver 128 reseñas» que abre la hoja de reseñas. Hoy sin usos. | según la guía del DS («18 reviews») |
|
|
89
89
|
| `showValue` | `true` | **No usar** (ver abajo). | propuesta, falta aprobación |
|
|
90
|
-
| `reviewCount` | número | **No usar** (ver abajo). |
|
|
91
|
-
| `emojis` | lista | Dejar el default (cinco caras, de triste a feliz). Cambiarlo rompe la lectura de la escala. |
|
|
92
|
-
| `ariaLabel` | texto | Decir qué se califica: «Califica al repartidor», «Nota del local». El default es «Calificación». |
|
|
93
|
-
| `reason` / `reasonPlaceholder` / `reasonRows` | — | Solo en `bar-area`. El placeholder por defecto es «Cuéntanos por qué» (03-10-2026). |
|
|
90
|
+
| `reviewCount` | número | **No usar** (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
91
|
+
| `emojis` | lista | Dejar el default (cinco caras, de triste a feliz). Cambiarlo rompe la lectura de la escala. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
92
|
+
| `ariaLabel` | texto | Decir qué se califica: «Califica al repartidor», «Nota del local». El default es «Calificación». | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
|
|
93
|
+
| `reason` / `reasonPlaceholder` / `reasonRows` | — | Solo en `bar-area`. El placeholder por defecto es «Cuéntanos por qué» (03-10-2026). | según el código |
|
|
94
94
|
|
|
95
95
|
**Usos de hoy que rompen la regla:**
|
|
96
96
|
|
|
@@ -115,10 +115,13 @@ lista cargada, que viene con tope. La fórmula depende de `n`: otro denominador
|
|
|
115
115
|
|
|
116
116
|
## Tamaño en mobile y en web
|
|
117
117
|
|
|
118
|
-
Criterio de la app: **
|
|
119
|
-
(
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
Criterio de la app: **D16, tamaño por dispositivo** (canon, dueño, 05-10-2026), que reemplaza al
|
|
119
|
+
«tamaño por plataforma» del 03-10-2026 (mobile grande, web chico). La columna «mobile» es el celular de
|
|
120
|
+
380 px o más y, en lo que se toca, también la tablet (`pointer: coarse`). La columna «web» es la
|
|
121
|
+
computadora (`pointer: fine`) y, en lo que no se toca, también la tablet. En el celular chico
|
|
122
|
+
(< 380 px) va `medium` a la vista, sin achicar el área de 44 de lo que se toca. **Nada en `small` ni
|
|
123
|
+
`xsmall`**, salvo lo que el componente solo tiene en chico. Hoy la app corta con
|
|
124
|
+
`BreakpointsService.isMobile()` (≤ 767 px), que todavía no mira el puntero ni los 380 px.
|
|
122
125
|
|
|
123
126
|
| uso | mobile | web | fuente |
|
|
124
127
|
|---|---|---|---|
|
|
@@ -25,14 +25,14 @@ Regla corta: **hoy, siempre `sui-textarea`.**
|
|
|
25
25
|
## Qué variante usar
|
|
26
26
|
|
|
27
27
|
> **La guía del DS no tiene página para este componente.** Viene del Figma («Rich Editor»), donde
|
|
28
|
-
> solo está la barra de formato.
|
|
28
|
+
> solo está la barra de formato. Las reglas marcadas **canon** están aprobadas; lo que sigue en **propuesta** espera decisión.
|
|
29
29
|
>
|
|
30
30
|
> Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos**.
|
|
31
31
|
|
|
32
32
|
| prop / evento | cuándo | fuente |
|
|
33
33
|
|---|---|---|
|
|
34
34
|
| `layout="full"` (default) | Título, tamaño, B I U S, alineación, comentario, enlace, mención. | API |
|
|
35
|
-
| `layout="formatting"` | Solo B I U S y alineación: lo único que el editor aplica solo. |
|
|
35
|
+
| `layout="formatting"` | Solo B I U S y alineación: lo único que el editor aplica solo. | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
|
|
36
36
|
| `layout="compact"` | Solo título y tamaño (los dos son avisos a la pantalla, no formato real). | — |
|
|
37
37
|
| `layout="social"` | Comentario, enlace, mención (también avisos). | — |
|
|
38
38
|
| `showMore` | El botón ⋮ al final. Apagarlo si no hay más acciones. | API |
|
|
@@ -40,19 +40,19 @@ tab-chips · secciones → tab menu.**
|
|
|
40
40
|
|
|
41
41
|
| size | cuándo | fuente |
|
|
42
42
|
|---|---|---|
|
|
43
|
-
| `xlarge` | Mobile: es el único que se acerca a los 44 px de área táctil (segmento de 40 px). | canon (dueño: «componentes grandes», 28-09-2026, y
|
|
44
|
-
| `large` | No aporta: 32 px, chico para el dedo y grande para web. |
|
|
45
|
-
| `medium` (default) |
|
|
46
|
-
| `small` |
|
|
43
|
+
| `xlarge` | Mobile: es el único que se acerca a los 44 px de área táctil (segmento de 40 px). | canon (dueño: «componentes grandes», 28-09-2026, y D16, 05-10-2026) |
|
|
44
|
+
| `large` | No aporta: 32 px, chico para el dedo y grande para web. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
|
|
45
|
+
| `medium` (default) | Computadora: junto a títulos o filtros, también solo íconos en una barra. | canon (dueño, 05-10-2026, D16); el valor exacto, canon (aprobado por el dueño, 05-10-2026, bloque B1) |
|
|
46
|
+
| `small` | No usar: es chico. Los íconos de una barra (cuadrícula / lista) van en `medium`. | canon (dueño, 05-10-2026, D16) |
|
|
47
47
|
|
|
48
48
|
### Ítems (`tabs`)
|
|
49
49
|
|
|
50
50
|
| qué | cuándo | fuente |
|
|
51
51
|
|---|---|---|
|
|
52
52
|
| texto | Lo normal. Una o dos palabras por segmento («Por distancia», «Precio único»). | según la guía del DS (ejemplos con texto) |
|
|
53
|
-
| `icon` + texto | Cuando el ícono ayuda a reconocer el modo rápido. |
|
|
54
|
-
| `iconOnly` | Solo para modos universales (cuadrícula / lista). El `label` pasa a ser el nombre accesible: escríbelo igual. |
|
|
55
|
-
| `disabled` (por ítem) | Un modo que existe pero no aplica todavía. |
|
|
53
|
+
| `icon` + texto | Cuando el ícono ayuda a reconocer el modo rápido. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
54
|
+
| `iconOnly` | Solo para modos universales (cuadrícula / lista). El `label` pasa a ser el nombre accesible: escríbelo igual. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
|
|
55
|
+
| `disabled` (por ítem) | Un modo que existe pero no aplica todavía. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
|
|
56
56
|
|
|
57
57
|
**Usos de hoy que rompen las reglas:**
|
|
58
58
|
|
|
@@ -86,7 +86,7 @@ ya lo usan.
|
|
|
86
86
|
| uso | mobile | web | fuente |
|
|
87
87
|
|---|---|---|---|
|
|
88
88
|
| modos con texto (local del horario, rol) | `2xlarge` (segmento de 44 px) | `medium` | canon (dueño, 04-10-2026): piso táctil 44 en el teléfono |
|
|
89
|
-
| solo íconos en una barra (cuadrícula / lista) | `2xlarge` (44) | `
|
|
89
|
+
| solo íconos en una barra (cuadrícula / lista) | `2xlarge` (44) | `medium` | mobile: canon (dueño, 04-10-2026): piso táctil 44 en el teléfono · web: canon (dueño, 05-10-2026, D16), antes `small` |
|
|
90
90
|
|
|
91
91
|
```html
|
|
92
92
|
<sui-segmented-control [size]="bp.isMobile() ? '2xlarge' : 'medium'" … />
|
|
@@ -150,7 +150,7 @@ interface SuiSegmentedControlItem<T = string> {
|
|
|
150
150
|
```html
|
|
151
151
|
<div style="max-width: 320px">
|
|
152
152
|
<sui-segmented-control
|
|
153
|
-
[size]="bp.isMobile() ? '
|
|
153
|
+
[size]="bp.isMobile() ? '2xlarge' : 'medium'"
|
|
154
154
|
[tabs]="[{ value: 'grid', label: 'Vista cuadrícula', icon: 'layout-grid-line', iconOnly: true },
|
|
155
155
|
{ value: 'list', label: 'Vista lista', icon: 'list-unordered', iconOnly: true }]"
|
|
156
156
|
[(active)]="vista" />
|