@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.
Files changed (116) hide show
  1. package/docs/sui-accordion/README.md +4 -4
  2. package/docs/sui-activity-feed/README.md +11 -11
  3. package/docs/sui-activity-filter/README.md +5 -5
  4. package/docs/sui-app-store-badge/README.md +7 -7
  5. package/docs/sui-avatar/README.md +26 -23
  6. package/docs/sui-avatar-group/README.md +11 -7
  7. package/docs/sui-badge/README.md +7 -7
  8. package/docs/sui-banner/README.md +15 -15
  9. package/docs/sui-brand-logo/README.md +24 -23
  10. package/docs/sui-breadcrumb-item/README.md +3 -3
  11. package/docs/sui-breadcrumbs/README.md +6 -6
  12. package/docs/sui-button/README.md +9 -7
  13. package/docs/sui-button-group/README.md +25 -22
  14. package/docs/sui-button-group-item/README.md +16 -13
  15. package/docs/sui-card/README.md +8 -8
  16. package/docs/sui-chart-legend/README.md +10 -10
  17. package/docs/sui-chart-legend-dot/README.md +10 -10
  18. package/docs/sui-checkbox/README.md +4 -4
  19. package/docs/sui-checkbox-card/README.md +12 -12
  20. package/docs/sui-checkbox-label/README.md +3 -3
  21. package/docs/sui-circular-progress-bar/README.md +19 -16
  22. package/docs/sui-color-dot/README.md +13 -9
  23. package/docs/sui-color-picker/README.md +9 -9
  24. package/docs/sui-command-menu-footer/README.md +1 -1
  25. package/docs/sui-command-menu-item/README.md +13 -12
  26. package/docs/sui-command-menu-search/README.md +3 -2
  27. package/docs/sui-compact-avatar-group/README.md +14 -11
  28. package/docs/sui-compact-button/README.md +16 -11
  29. package/docs/sui-compact-select/README.md +5 -5
  30. package/docs/sui-compact-select-for-input/README.md +1 -1
  31. package/docs/sui-content-card/README.md +12 -12
  32. package/docs/sui-content-divider/README.md +18 -15
  33. package/docs/sui-content-label/README.md +17 -17
  34. package/docs/sui-counter-input/README.md +12 -12
  35. package/docs/sui-date-selector/README.md +8 -8
  36. package/docs/sui-datepicker/README.md +14 -14
  37. package/docs/sui-day-cell/README.md +15 -14
  38. package/docs/sui-day-label/README.md +4 -4
  39. package/docs/sui-divider/README.md +9 -6
  40. package/docs/sui-drawer-header/README.md +9 -9
  41. package/docs/sui-dropdown-caption/README.md +5 -5
  42. package/docs/sui-dropdown-item/README.md +5 -5
  43. package/docs/sui-dropdown-menu/README.md +10 -10
  44. package/docs/sui-dropdown-search/README.md +3 -3
  45. package/docs/sui-emoji/README.md +13 -13
  46. package/docs/sui-empty-state/README.md +4 -4
  47. package/docs/sui-fancy-button/README.md +15 -13
  48. package/docs/sui-file-icon/README.md +14 -11
  49. package/docs/sui-file-upload/README.md +10 -10
  50. package/docs/sui-file-upload-card/README.md +11 -10
  51. package/docs/sui-filter/README.md +12 -12
  52. package/docs/sui-flag/README.md +11 -7
  53. package/docs/sui-form-hint/README.md +2 -2
  54. package/docs/sui-form-label/README.md +4 -4
  55. package/docs/sui-icon/README.md +19 -16
  56. package/docs/sui-image-upload/README.md +20 -19
  57. package/docs/sui-image-upload-profile/README.md +12 -11
  58. package/docs/sui-img-retry/README.md +1 -1
  59. package/docs/sui-inline-input/README.md +6 -6
  60. package/docs/sui-inline-select/README.md +2 -2
  61. package/docs/sui-input/README.md +14 -14
  62. package/docs/sui-integration-switch/README.md +15 -15
  63. package/docs/sui-kbd/README.md +3 -3
  64. package/docs/sui-key-icon/README.md +22 -19
  65. package/docs/sui-link-button/README.md +21 -18
  66. package/docs/sui-logo/README.md +20 -19
  67. package/docs/sui-modal/README.md +11 -11
  68. package/docs/sui-modal-footer/README.md +3 -3
  69. package/docs/sui-modal-header/README.md +1 -1
  70. package/docs/sui-modal-sheet/README.md +4 -4
  71. package/docs/sui-notification/README.md +11 -11
  72. package/docs/sui-notification-footer/README.md +4 -4
  73. package/docs/sui-notification-tab-menu/README.md +4 -4
  74. package/docs/sui-otp-input/README.md +5 -5
  75. package/docs/sui-page-header/README.md +14 -12
  76. package/docs/sui-pagination/README.md +13 -13
  77. package/docs/sui-payment-icon/README.md +16 -13
  78. package/docs/sui-period-range/README.md +5 -5
  79. package/docs/sui-popover/README.md +10 -10
  80. package/docs/sui-product-card/README.md +15 -15
  81. package/docs/sui-progress-bar/README.md +12 -9
  82. package/docs/sui-progress-bar-label/README.md +14 -10
  83. package/docs/sui-radio/README.md +2 -2
  84. package/docs/sui-radio-card/README.md +12 -12
  85. package/docs/sui-radio-label/README.md +3 -3
  86. package/docs/sui-rating/README.md +22 -19
  87. package/docs/sui-rich-editor/README.md +2 -2
  88. package/docs/sui-segmented-control/README.md +9 -9
  89. package/docs/sui-select/README.md +9 -9
  90. package/docs/sui-sidebar/README.md +7 -7
  91. package/docs/sui-slider/README.md +7 -7
  92. package/docs/sui-social-button/README.md +8 -8
  93. package/docs/sui-status-badge/README.md +13 -10
  94. package/docs/sui-stepper/README.md +18 -18
  95. package/docs/sui-store-card/README.md +16 -16
  96. package/docs/sui-switch/README.md +2 -2
  97. package/docs/sui-switch-card/README.md +10 -10
  98. package/docs/sui-switch-label/README.md +1 -1
  99. package/docs/sui-tab-chips/README.md +17 -15
  100. package/docs/sui-tab-menu-horizontal/README.md +6 -6
  101. package/docs/sui-tab-menu-vertical/README.md +8 -8
  102. package/docs/sui-table/README.md +13 -13
  103. package/docs/sui-tag/README.md +14 -11
  104. package/docs/sui-tag-input/README.md +6 -6
  105. package/docs/sui-textarea/README.md +8 -8
  106. package/docs/sui-time-picker/README.md +25 -25
  107. package/docs/sui-toast/README.md +16 -15
  108. package/docs/sui-tooltip/README.md +19 -18
  109. package/docs/sui-topbar/README.md +7 -7
  110. package/docs/sui-topbar-button/README.md +4 -4
  111. package/docs/sui-topbar-item/README.md +7 -7
  112. package/docs/sui-topbar-user/README.md +5 -5
  113. package/fesm2022/ajuarezso-sui-design-system.mjs +15 -10
  114. package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
  115. package/package.json +1 -1
  116. package/types/ajuarezso-sui-design-system.d.ts +26 -22
@@ -47,57 +47,60 @@ atención de un local (L M M J V S D), filtros que se suman en una barra.
47
47
  | multi | cuándo | ejemplo de copy | fuente |
48
48
  |---|---|---|---|
49
49
  | `true` | Elegir días u opciones que se combinan. | L M M J V S D (días de atención) | canon (aprobado por el dueño, 03-10-2026) |
50
- | `false` (default) | No: elegir una sola o cambiar de vista va con `sui-segmented-control`. | — | cambiar de vista: canon (aprobado por el dueño, 03-10-2026) · elegir una sola en general: propuesta |
50
+ | `false` (default) | No: elegir una sola o cambiar de vista va con `sui-segmented-control`. | — | cambiar de vista: canon (aprobado por el dueño, 03-10-2026) · elegir una sola: canon (decisión del dueño 04-10-2026: 2–4 opciones excluyentes → `sui-segmented-control`; más opciones → `sui-tab-chips`) |
51
51
 
52
52
  ### `size`
53
53
 
54
54
  | size | alto | cuándo | fuente |
55
55
  |---|---|---|---|
56
56
  | `large` | 48 | Mobile: los días del horario y las opciones de un formulario, para tocar con el dedo. Label/Medium (16/24), ícono 20, radius 12. | canon (aprobado por el dueño, 03-10-2026) · extensión SUI |
57
- | `medium` | 40 | Mobile cuando la fila es larga (los 7 días) y `large` no entra en 360 px. Label/Small (14/20), ícono 20, radius 10. | alto y tipografía: canon (aprobado por el dueño, 03-10-2026), extensión SUI · cuándo: propuesta |
58
- | `small` (default) | 36 | Web: los días del horario, formularios. | escala según la guía del DS · cuándo: propuesta |
59
- | `xsmall` | 32 | Barras de filtros en desktop. | escala según la guía del DS · cuándo: propuesta |
60
- | `2xsmall` | 24 | Solo desktop, dentro de una tabla o una card densa. Muy chico para el dedo. | escala según la guía del DS · cuándo: propuesta |
57
+ | `medium` | 40 | Web: lo normal (días del horario, formularios, filtros, tablas). Mobile: cuando la fila es larga (los 7 días) y `large` no entra en 360 px. Label/Small (14/20), ícono 20, radius 10. | alto y tipografía: canon (aprobado por el dueño, 03-10-2026), extensión SUI · web: canon (dueño, 05-10-2026, D16) · mobile con la fila larga: propuesta |
58
+ | `small` (default) | 36 | No usar: es chico. En web va `medium`. | escala según la guía del DS · no usarlo: canon (dueño, 05-10-2026, D16), reemplaza el «cuándo» del bloque B1 |
59
+ | `xsmall` | 32 | No usar: es chico. Las barras de filtros van en `medium`. | escala según la guía del DS · no usarlo: canon (dueño, 05-10-2026, D16) |
60
+ | `2xsmall` | 24 | No usar: es chico. En una tabla o una card densa va `medium`. | escala según la guía del DS · no usarlo: canon (dueño, 05-10-2026, D16), reemplaza el «cuándo» del bloque B1 |
61
61
 
62
62
  ### `items` (lo que lleva cada opción)
63
63
 
64
64
  | contenido | cuándo | fuente |
65
65
  |---|---|---|
66
- | solo `label` | Lo normal: textos de una a tres letras o una palabra («L», «Delivery»). | propuesta |
67
- | `leftIcon` + `label` | Cuando el ícono ayuda a distinguir opciones parecidas (moto / bici / auto). | propuesta |
68
- | solo ícono (`leftIcon`, sin `label`) | Desktop, opciones universales; **`ariaLabel` obligatorio** en cada una. | propuesta |
69
- | `disabled: true` en una opción | La opción existe pero hoy no se puede elegir (un día que el local no atiende por regla). | propuesta |
66
+ | solo `label` | Lo normal: textos de una a tres letras o una palabra («L», «Delivery»). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
67
+ | `leftIcon` + `label` | Cuando el ícono ayuda a distinguir opciones parecidas (moto / bici / auto). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
68
+ | solo ícono (`leftIcon`, sin `label`) | Desktop, opciones universales; **`ariaLabel` obligatorio** en cada una. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
69
+ | `disabled: true` en una opción | La opción existe pero hoy no se puede elegir (un día que el local no atiende por regla). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
70
70
  | cuántas | De 2 a 7. Con más, no entra en el ancho del teléfono: lista de `sui-checkbox`. | propuesta (el Figma dibuja de 2 a 6; los días son 7) |
71
71
 
72
72
  ### `value`, `ariaLabel`, `change`
73
73
 
74
74
  | prop | cuándo | fuente |
75
75
  |---|---|---|
76
- | `[(value)]` | Con `multi`, un `string[]` con los `value` prendidos. | propuesta |
77
- | `ariaLabel` | Siempre: dice qué se elige («Días de atención»). El host es `role="group"`. | propuesta |
78
- | `(change)` | Cuando hay que reaccionar al cambio (guardar, filtrar); si alcanza con el `model`, no hace falta. | propuesta |
76
+ | `[(value)]` | Con `multi`, un `string[]` con los `value` prendidos. | según el código |
77
+ | `ariaLabel` | Siempre: dice qué se elige («Días de atención»). El host es `role="group"`. | según el código |
78
+ | `(change)` | Cuando hay que reaccionar al cambio (guardar, filtrar); si alcanza con el `model`, no hace falta. | según el código |
79
79
 
80
80
  ## Tamaño en mobile y en web
81
81
 
82
- En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En web, con mouse,
83
- va un tamaño más chico. La app ya lo resuelve con `BreakpointsService`
84
- (`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px):
85
- `[size]="bp.isMobile() ? 'large' : 'small'"`. Medido el 04-10-2026 en `master-pedidos`: 166 `[size]`
86
- con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`). Regla del dueño, 03-10-2026.
82
+ En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En la tablet
83
+ (`pointer: coarse`) va igual que en el celular, porque también se toca; en la computadora
84
+ (`pointer: fine`), `medium`; en el celular chico (< 380 px), `medium` a la vista sin bajar el área de 44.
85
+ Nada en `small` ni `xsmall` (canon, dueño, 05-10-2026, D16; reemplaza al «tamaño por plataforma» del
86
+ 03-10-2026, que bajaba la web a `small`). Hoy la app lo resuelve con `BreakpointsService`
87
+ (`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px): `[size]="bp.isMobile() ? 'large' : 'medium'"`,
88
+ 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]`
89
+ con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`); los 24 que bajan de `medium` se migran.
87
90
 
88
91
  Desde el 03-10-2026 el grupo tiene `large` (48) y `medium` (40), la misma escala de `sui-button`,
89
92
  así que el par es el de toda la app.
90
93
 
91
94
  | uso | mobile | web | fuente |
92
95
  |---|---|---|---|
93
- | días del horario, opciones en un formulario | `large` (48) | `small` (36) | canon (aprobado por el dueño, 03-10-2026) |
94
- | fila larga que no entra a 48 en 360 px (los 7 días con texto) | `medium` (40) | `small` (36) | propuesta, falta aprobación |
95
- | barra de filtros | `large` | `xsmall` (32) | propuesta, falta aprobación |
96
- | dentro de una tabla o una card densa | no va en mobile | `2xsmall` (24) | propuesta |
96
+ | días del horario, opciones en un formulario | `large` (48) | `medium` (40) | mobile: canon (aprobado por el dueño, 03-10-2026) · web: canon (dueño, 05-10-2026, D16), antes `small` |
97
+ | fila larga que no entra a 48 en 360 px (los 7 días con texto) | `medium` (40) | `medium` (40) | mobile: propuesta, falta aprobación (espera P18) · web: canon (dueño, 05-10-2026, D16) |
98
+ | barra de filtros | `large` | `medium` (40) | web: canon (dueño, 05-10-2026, D16) · mobile: propuesta, falta aprobación |
99
+ | dentro de una tabla o una card densa | no va en mobile | `medium` (40) | no va en mobile: canon (aprobado por el dueño, 05-10-2026, bloque B7) · web: canon (dueño, 05-10-2026, D16), antes `2xsmall` |
97
100
 
98
101
  ```html
99
102
  <sui-button-group [items]="dias" [multi]="true" [(value)]="diasAbiertos" ariaLabel="Días de atención"
100
- [size]="bp.isMobile() ? 'large' : 'small'" />
103
+ [size]="bp.isMobile() ? 'large' : 'medium'" />
101
104
  ```
102
105
 
103
106
  En mobile, cada opción va ancha (los 7 días repartidos en todo el ancho, no apretados a la
@@ -27,26 +27,29 @@ apagar algo suelto está `sui-switch`; para una acción, `sui-button`.
27
27
  | prop | valor | cuándo | fuente |
28
28
  |---|---|---|---|
29
29
  | `size` | `large` · `medium` · `small` · `xsmall` · `2xsmall` | El mismo del grupo; lo pone el grupo. Altos 48 · 40 · 36 · 32 · 24. | `small` a `2xsmall`: escala según la guía del DS · `large` y `medium`: canon (aprobado por el dueño, 03-10-2026), extensión SUI |
30
- | `active` | `true` | La opción está elegida; lo calcula el grupo desde `value`. | propuesta |
31
- | `disabled` | `true` | La opción existe pero hoy no se puede elegir; viene de `disabled` en la entrada de `items`. | propuesta |
32
- | `label` | texto | Una a tres letras o una palabra. | propuesta |
33
- | `leftIcon` / `rightIcon` | RemixIcon | Ícono a la izquierda si ayuda a distinguir; a la derecha, sin caso. Sin `label` queda cuadrado. | propuesta |
34
- | `ariaLabel` | texto | Obligatorio si no hay `label`, o si dos opciones tienen el mismo texto. | propuesta |
30
+ | `active` | `true` | La opción está elegida; lo calcula el grupo desde `value`. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
31
+ | `disabled` | `true` | La opción existe pero hoy no se puede elegir; viene de `disabled` en la entrada de `items`. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
32
+ | `label` | texto | Una a tres letras o una palabra. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
33
+ | `leftIcon` / `rightIcon` | RemixIcon | Ícono a la izquierda si ayuda a distinguir; a la derecha, sin caso. Sin `label` queda cuadrado. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
34
+ | `ariaLabel` | texto | Obligatorio si no hay `label`, o si dos opciones tienen el mismo texto. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
35
35
 
36
36
  ## Tamaño en mobile y en web
37
37
 
38
- En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En web, con mouse,
39
- va un tamaño más chico. La app ya lo resuelve con `BreakpointsService`
40
- (`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px):
41
- `[size]="bp.isMobile() ? 'large' : 'small'"`. Medido el 04-10-2026 en `master-pedidos`: 166 `[size]`
42
- con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`). Regla del dueño, 03-10-2026.
38
+ En mobile se toca con el dedo: el área táctil tiene que medir **44 px o más**. En la tablet
39
+ (`pointer: coarse`) va igual que en el celular, porque también se toca; en la computadora
40
+ (`pointer: fine`), `medium`; en el celular chico (< 380 px), `medium` a la vista sin bajar el área de 44.
41
+ Nada en `small` ni `xsmall` (canon, dueño, 05-10-2026, D16; reemplaza al «tamaño por plataforma» del
42
+ 03-10-2026, que bajaba la web a `small`). Hoy la app lo resuelve con `BreakpointsService`
43
+ (`src/app/services/breakpoints.service.ts`, mobile = hasta 767 px): `[size]="bp.isMobile() ? 'large' : 'medium'"`,
44
+ 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]`
45
+ con `bp` (142 `large`/`medium`, 22 `large`/`small`, 2 `medium`/`xsmall`); los 24 que bajan de `medium` se migran.
43
46
 
44
47
  El tamaño lo pone el grupo: es el mismo `size` de `sui-button-group` (ver su README).
45
48
 
46
49
  | uso | mobile | web | fuente |
47
50
  |---|---|---|---|
48
- | dentro de un grupo | `large` (48) · `medium` (40) si la fila no entra | `small` (36) | canon (aprobado por el dueño, 03-10-2026) |
49
- | suelto (barra de herramientas) | no va en mobile | `xsmall` o `2xsmall` | propuesta |
51
+ | dentro de un grupo | `large` (48) · `medium` (40) si la fila no entra | `medium` (40) | mobile: canon (aprobado por el dueño, 03-10-2026) · web: canon (dueño, 05-10-2026, D16), antes `small` |
52
+ | suelto (barra de herramientas) | no va en mobile | `medium` (40) | no va en mobile: canon (aprobado por el dueño, 05-10-2026, bloque B7) · web: canon (dueño, 05-10-2026, D16), antes `xsmall` o `2xsmall` |
50
53
 
51
54
  ## «No usar»: por qué no hoy y cuándo sí
52
55
 
@@ -97,6 +100,6 @@ en la columna de la derecha, se usa (aprobado por el dueño, 03-10-2026).
97
100
  <sui-button-group [items]="dias" [multi]="true" [(value)]="diasAbiertos" ariaLabel="Días de atención" />
98
101
 
99
102
  <!-- Suelto, solo en el caso de «cuándo sí» -->
100
- <sui-button-group-item leftIcon="bold" ariaLabel="Negrita" size="xsmall"
103
+ <sui-button-group-item leftIcon="bold" ariaLabel="Negrita" size="medium"
101
104
  [active]="negrita()" (clicked)="negrita.set(!negrita())" />
102
105
  ```
@@ -45,8 +45,8 @@ selección.**
45
45
 
46
46
  | variant | cuándo | fuente |
47
47
  |---|---|---|
48
- | `default` | Lo normal: la card sobre el fondo de la app (borde + sombra x-small). 251 de 253. | propuesta (práctica de la app) |
49
- | `elevated` | La card flota sobre un mapa, una foto o un fondo de color, donde el borde se pierde y hace falta la sombra media. Precedente: el seguimiento público del pedido (`pages/public/pedido-en-vivo/pedido-en-vivo.html:19`, `:69`). | propuesta |
48
+ | `default` | Lo normal: la card sobre el fondo de la app (borde + sombra x-small). 251 de 253. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (práctica de la app) |
49
+ | `elevated` | La card flota sobre un mapa, una foto o un fondo de color, donde el borde se pierde y hace falta la sombra media. Precedente: el seguimiento público del pedido (`pages/public/pedido-en-vivo/pedido-en-vivo.html:19`, `:69`). | canon (aprobado por el dueño, 05-10-2026, bloque B2) |
50
50
  | `flat` | Ver «No usar». | propuesta |
51
51
 
52
52
  ### `size` (padding × gap entre slots)
@@ -54,16 +54,16 @@ selección.**
54
54
  | size | medidas | cuándo | fuente |
55
55
  |---|---|---|---|
56
56
  | `small` | 16 / 12 | Filas de una lista de cards, KPIs chicos, cards tocables. **Toda card en mobile.** | propuesta |
57
- | `medium` (default) | 20 / 16 | Secciones en web. | propuesta |
58
- | `large` | 24 / 20 | La sección principal de una pantalla de web (los 14 de hoy son gráficos de reportes y los pasos del onboarding). | propuesta |
59
- | `xlarge` | 28 / 24 | Ver «No usar». Extensión SUI (no está en Figma). | propuesta |
57
+ | `medium` (default) | 20 / 16 | Secciones en web. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
58
+ | `large` | 24 / 20 | La sección principal de una pantalla de web (los 14 de hoy son gráficos de reportes y los pasos del onboarding). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
59
+ | `xlarge` | 28 / 24 | Ver «No usar». Extensión SUI (no está en Figma). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
60
60
 
61
61
  ### `interactive`
62
62
 
63
63
  | valor | cuándo | fuente |
64
64
  |---|---|---|
65
- | `true` | La card entera es **una** acción: abre un detalle o lleva a otra pantalla («Mis direcciones», una factura). Da cursor, hover, foco y el arreglo de iOS. | propuesta |
66
- | `false` (default) | La card tiene 2 acciones o más adentro, o ninguna. Las acciones van como botones dentro. | propuesta |
65
+ | `true` | La card entera es **una** acción: abre un detalle o lleva a otra pantalla («Mis direcciones», una factura). Da cursor, hover, foco y el arreglo de iOS. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
66
+ | `false` (default) | La card tiene 2 acciones o más adentro, o ninguna. Las acciones van como botones dentro. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
67
67
 
68
68
  ### Slots
69
69
 
@@ -71,7 +71,7 @@ selección.**
71
71
  |---|---|---|
72
72
  | `[sui-card-header]` | Título de la card a la izquierda y, si hace falta, una acción chica a la derecha (`sui-link-button` «Ver todo»). | propuesta |
73
73
  | cuerpo (sin atributo) | El contenido. **Con 2 bloques o más, envuélvelos en un div propio con `display:flex; flex-direction:column; gap`** (ver Trampas). | canon (memoria del proyecto, 10-05-2026) |
74
- | `[sui-card-media]` | Gráfico, mapa o foto de borde a borde, al final. Si después va un footer, la media deja de comerse el borde inferior. | propuesta |
74
+ | `[sui-card-media]` | Gráfico, mapa o foto de borde a borde, al final. Si después va un footer, la media deja de comerse el borde inferior. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
75
75
  | `[sui-card-footer]` | La acción de la card o un resumen. Si son dos botones, siguen el orden de `sui-modal-footer` (secundario a la izquierda, primario a la derecha). | canon (orden de botones, CLAUDE.md) |
76
76
 
77
77
  **Usos de hoy que rompen las reglas** (revisado el 04-10-2026):
@@ -26,7 +26,7 @@ igual en el celular, sin tocar nada.
26
26
  ## Qué variante usar
27
27
 
28
28
  > La guía del DS no tiene página para este componente: sale del Figma del DS (set «Chart Legends»).
29
- > Todo lo de abajo es **propuesta**, salvo lo marcado «según el componente» o «canon».
29
+ > Las reglas de abajo son **canon** (cada fila dice de qué aprobación sale), salvo lo marcado «según el componente».
30
30
  >
31
31
  > Uso medido el 03-10-2026 en `master-pedidos/src/app` (sin prototipos ni vitrinas): **1 uso**, más
32
32
  > **5 leyendas hechas a mano** y **9 gráficos con la leyenda de ECharts**.
@@ -35,12 +35,12 @@ igual en el celular, sin tocar nada.
35
35
 
36
36
  | campo | valor | cuándo | fuente |
37
37
  |---|---|---|---|
38
- | `label` | nombre corto | El nombre de la serie, tal como se dice en la app: «Entregados», «Yape». | propuesta |
39
- | `color` | sin pasar | **Lo normal** en categorías sin bien ni mal (canales, métodos de pago, distritos): el componente reparte azul, naranja, rojo, verde… en orden. | según el componente (orden) · cuándo: propuesta |
38
+ | `label` | nombre corto | El nombre de la serie, tal como se dice en la app: «Entregados», «Yape». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
39
+ | `color` | sin pasar | **Lo normal** en categorías sin bien ni mal (canales, métodos de pago, distritos): el componente reparte azul, naranja, rojo, verde… en orden. | según el componente (orden) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B3) |
40
40
  | `color` | el del estado | Cuando la serie **es un estado**: entregados `green`, cancelados `red`, pendientes `orange`. Mismo significado que en `sui-badge`. | canon (colores con significado del badge) |
41
- | `customColor` | el color que ya usa el gráfico | Solo cuando el gráfico tiene su propia paleta y el punto tiene que coincidir. Va el mismo valor en los dos lados. | propuesta |
42
- | `value` | número o texto | Cuando el número importa para leer el gráfico: «42», «S/ 1,200.00», «38 %». | propuesta |
43
- | `disabled` | `true` | Una serie sin datos en el período: se ve, apagada, para que no parezca que falta. | propuesta |
41
+ | `customColor` | el color que ya usa el gráfico | Solo cuando el gráfico tiene su propia paleta y el punto tiene que coincidir. Va el mismo valor en los dos lados. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
42
+ | `value` | número o texto | Cuando el número importa para leer el gráfico: «42», «S/ 1,200.00», «38 %». | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
43
+ | `disabled` | `true` | Una serie sin datos en el período: se ve, apagada, para que no parezca que falta. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
44
44
 
45
45
  Los 12 valores de `color`, uno por uno y con su regla, están en el README de `sui-chart-legend-dot`.
46
46
 
@@ -51,8 +51,8 @@ Para que el gráfico y la leyenda pinten **el mismo color**, ECharts recibe la p
51
51
 
52
52
  | orientation | cuándo | fuente |
53
53
  |---|---|---|
54
- | `horizontal` (default) | Debajo de un gráfico de barras o de líneas. Si no entra, baja a la línea siguiente. | propuesta |
55
- | `vertical` | Al lado de una dona o un pie, con el `value` de cada serie. En mobile, debajo de la dona. | propuesta |
54
+ | `horizontal` (default) | Debajo de un gráfico de barras o de líneas. Si no entra, baja a la línea siguiente. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
55
+ | `vertical` | Al lado de una dona o un pie, con el `value` de cada serie. En mobile, debajo de la dona. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
56
56
 
57
57
  ### Usos de hoy que romperían la regla
58
58
 
@@ -75,8 +75,8 @@ para el dedo; lo que cambia por plataforma es la orientación.
75
75
 
76
76
  | uso | mobile | web | fuente |
77
77
  |---|---|---|---|
78
- | bajo barras o líneas | `horizontal` (envuelve) | `horizontal` | propuesta |
79
- | junto a una dona | `vertical`, **debajo** de la dona | `vertical`, a la derecha | propuesta |
78
+ | bajo barras o líneas | `horizontal` (envuelve) | `horizontal` | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
79
+ | junto a una dona | `vertical`, **debajo** de la dona | `vertical`, a la derecha | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
80
80
 
81
81
  ```html
82
82
  <!-- Junto a una dona: vertical en las dos; el layout la pone debajo en mobile y a la derecha en web -->
@@ -24,7 +24,7 @@ Story: [Molecules/Chart/Chart Legend Dot](https://sui-design-system.web.app/?pat
24
24
  ## Qué variante usar
25
25
 
26
26
  > La guía del DS no tiene página para este componente: sale del Figma del DS (set «Chart Legend
27
- > Dots»). Todo lo de abajo es **propuesta**, salvo lo marcado «según el componente» o «canon».
27
+ > Dots»). Las reglas de abajo son **canon** (cada fila dice de qué aprobación sale), salvo lo marcado «según el componente».
28
28
  >
29
29
  > Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos sueltos** (sí dentro de la única
30
30
  > `sui-chart-legend`), y **3 puntos de serie hechos a mano** fuera de una leyenda.
@@ -37,23 +37,23 @@ Cada color apunta al mismo estado de la paleta que en `sui-badge`. En un gráfic
37
37
  | color | estado de la paleta | cuándo | fuente |
38
38
  |---|---|---|---|
39
39
  | `blue` | information | Primera serie de categorías sin carga (el orden automático arranca aquí). | según el componente (orden) |
40
- | `orange` | warning | Pendiente; o segunda serie de categorías. | canon (significado del badge) · como serie de categorías: propuesta |
40
+ | `orange` | warning | Pendiente; o segunda serie de categorías. | canon (significado del badge) · como serie de categorías: canon (aprobado por el dueño, 05-10-2026, bloque B3) |
41
41
  | `red` | error | Cancelado, rechazado, fallido. | canon (significado del badge) |
42
42
  | `green` | success | Entregado, pagado, aprobado. | canon (significado del badge) |
43
- | `yellow` | away | En pausa; o una serie más de categorías. | canon (significado del badge) · como serie de categorías: propuesta |
44
- | `purple` | feature | Lo nuevo; o una serie más de categorías. | canon (significado del badge) · como serie de categorías: propuesta |
45
- | `sky` · `pink` · `teal` | verified · highlighted · stable | Series de categorías a partir de la séptima. | propuesta |
46
- | `gray` (default) | faded | «Otros» o «Sin categoría»: lo que no se reparte. | propuesta |
47
- | `light-gray` | — | No usar: es el mismo gris del apagado. **Cuándo sí:** el resto de una barra de progreso partida («lo que falta»). | propuesta |
43
+ | `yellow` | away | En pausa; o una serie más de categorías. | canon (significado del badge) · como serie de categorías: canon (aprobado por el dueño, 05-10-2026, bloque B3) |
44
+ | `purple` | feature | Lo nuevo; o una serie más de categorías. | canon (significado del badge) · como serie de categorías: canon (aprobado por el dueño, 05-10-2026, bloque B3) |
45
+ | `sky` · `pink` · `teal` | verified · highlighted · stable | Series de categorías a partir de la séptima. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
46
+ | `gray` (default) | faded | «Otros» o «Sin categoría»: lo que no se reparte. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
47
+ | `light-gray` | — | No usar: es el mismo gris del apagado. **Cuándo sí:** el resto de una barra de progreso partida («lo que falta»). | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
48
48
  | `disabled` | — | Una serie sin datos o apagada. Dentro de `sui-chart-legend` va por `disabled: true`, no por color. | según el componente |
49
- | `customColor` | el color que ya usa el gráfico | Solo si el gráfico tiene paleta propia; gana sobre `color`. | propuesta |
49
+ | `customColor` | el color que ya usa el gráfico | Solo si el gráfico tiene paleta propia; gana sobre `color`. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
50
50
 
51
51
  ### `size`
52
52
 
53
53
  | size | cuándo | fuente |
54
54
  |---|---|---|
55
55
  | `small` (16 px) | Junto a texto de 12 (como en la leyenda, que lo usa siempre). | según el componente |
56
- | `medium` (20 px, default) | Junto a texto de 14: filas y tablas. | propuesta |
56
+ | `medium` (20 px, default) | Junto a texto de 14: filas y tablas. | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
57
57
 
58
58
  El círculo de color mide 12 px en los dos tamaños: lo que cambia es el aire alrededor.
59
59
 
@@ -71,7 +71,7 @@ Es decorativo y no se toca: no tiene mínimo para el dedo.
71
71
 
72
72
  | uso | mobile | web | fuente |
73
73
  |---|---|---|---|
74
- | fila de resumen o tabla | `medium` (20) | `medium` (20) | propuesta |
74
+ | fila de resumen o tabla | `medium` (20) | `medium` (20) | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
75
75
  | junto a texto de 12 | `small` (16) | `small` (16) | según el componente |
76
76
 
77
77
  No cambia por plataforma: va con el tamaño del texto que acompaña, no con la pantalla.
@@ -52,8 +52,8 @@ Regla corta: **se suma y se confirma después → checkbox · se aplica ya → s
52
52
  | estado | cuándo | fuente |
53
53
  |---|---|---|
54
54
  | sin marcar / marcado | Lo normal. `[(checked)]` o `formControlName`. | según la guía del DS |
55
- | `indeterminate` | Solo en el «seleccionar todo» de una lista cuando hay algunas marcadas y otras no. Se ve un guion. Hoy no usar (0 casos, ver abajo). | propuesta, falta aprobación |
56
- | `disabled` | La opción existe pero hoy no se puede tocar (un producto agotado en las opciones de un plato). Decir por qué cerca. | según la guía del DS (existe); el «cuándo» es propuesta |
55
+ | `indeterminate` | Solo en el «seleccionar todo» de una lista cuando hay algunas marcadas y otras no. Se ve un guion. Hoy no usar (0 casos, ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
56
+ | `disabled` | La opción existe pero hoy no se puede tocar (un producto agotado en las opciones de un plato). Decir por qué cerca. | según la guía del DS (existe); el «cuándo»: canon (aprobado por el dueño, 05-10-2026, bloque B8) |
57
57
 
58
58
  ### `size`
59
59
 
@@ -61,7 +61,7 @@ Regla corta: **se suma y se confirma después → checkbox · se aplica ya → s
61
61
  |---|---|---|---|
62
62
  | `xlarge` | 28 | Mobile. Viene de `bp.controlSize()`. | canon (aprobado por el dueño, 28-09-2026: «componentes grandes») |
63
63
  | `large` | 24 | Desktop. Viene de `bp.controlSize()`. | canon (aprobado por el dueño, 28-09-2026) |
64
- | `medium` (default) | 20 | Solo dentro de un componente que ya fija su escala (la fila de opciones del detalle de producto recibe el `size` del padre). | propuesta, falta aprobación |
64
+ | `medium` (default) | 20 | Solo dentro de un componente que ya fija su escala (la fila de opciones del detalle de producto recibe el `size` del padre). | canon (aprobado por el dueño, 05-10-2026, bloque B1) |
65
65
  | `small` | 16 | No usar (ver abajo). | canon (aprobado por el dueño, 28-09-2026) |
66
66
 
67
67
  Regla: **`[size]="bp.controlSize()"`** en toda pantalla. Así ya están los 5 usos de hoy.
@@ -105,7 +105,7 @@ cae en la columna de la derecha, se usa.
105
105
 
106
106
  | qué | por qué no hoy | cuándo sí, en un flujo nuevo |
107
107
  |---|---|---|
108
- | `size="small"` (16 px) | en el teléfono se pierde y no llega al área táctil (el dueño pidió controles grandes) | una tabla densa solo de desktop con selección por fila (super admin), donde 24 px desalinea la fila |
108
+ | `size="small"` (16 px) | en el teléfono se pierde y no llega al área táctil (el dueño pidió controles grandes), y es chico (D16, 05-10-2026) | nunca: una tabla del super admin con selección por fila también va con la casilla de web |
109
109
  | `indeterminate` (0 usos) | ninguna lista tiene «seleccionar todo» | el «seleccionar todo» de una lista de productos o pedidos con acciones en lote |
110
110
 
111
111
  ## API
@@ -44,23 +44,23 @@ una → radio-card.**
44
44
 
45
45
  | type | cuándo | fuente |
46
46
  |---|---|---|
47
- | `left-icon` (`icon`, `emoji` o `iconSrc`) | Lo normal: un ícono que dice de qué va la opción. | propuesta (6 de hoy) |
48
- | `basic` | Un ajuste o una opción de texto que se guarda con un botón y no necesita ícono («Pausar los pedidos» en master-settings). | propuesta (5 de hoy) |
49
- | `company` | Un medio de pago o servicio con su logo redondo (Yape, Plin). El logo lo proyectas tú con `slot="leading"`. | propuesta (2 de hoy) |
50
- | `avatar` (`imageUrl`) | Ver «No usar». | propuesta |
51
- | `card-provider`, `brand` | Ver «No usar». El logo lo proyectas tú con `slot="leading"`. | propuesta |
47
+ | `left-icon` (`icon`, `emoji` o `iconSrc`) | Lo normal: un ícono que dice de qué va la opción. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (6 de hoy) |
48
+ | `basic` | Un ajuste o una opción de texto que se guarda con un botón y no necesita ícono («Pausar los pedidos» en master-settings). | canon (aprobado por el dueño, 05-10-2026, bloque B2) (5 de hoy) |
49
+ | `company` | Un medio de pago o servicio con su logo redondo (Yape, Plin). El logo lo proyectas tú con `slot="leading"`. | canon (aprobado por el dueño, 05-10-2026, bloque B2) (2 de hoy) |
50
+ | `avatar` (`imageUrl`) | Ver «No usar». | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
51
+ | `card-provider`, `brand` | Ver «No usar». El logo lo proyectas tú con `slot="leading"`. | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
52
52
 
53
53
  ### Las piezas
54
54
 
55
55
  | prop | cuándo | fuente |
56
56
  |---|---|---|
57
- | `label` | Siempre. El nombre de la opción: «Delivery». | propuesta |
58
- | `description` | Lo que significa elegirla: «Llevas los pedidos a la dirección del cliente». | propuesta (8 de hoy) |
59
- | `sublabel` | Precisión corta entre paréntesis. | propuesta |
60
- | `badge` | Marca una opción frente a las otras («Nuevo»). Con string sale azul `light`. | propuesta |
61
- | `indeterminate` | Una casilla que resume a otras («Todos los días» con algunos marcados). | propuesta |
62
- | `disabled` | La opción no aplica hoy; di por qué en la `description`. | propuesta |
63
- | `checked` | `[checked]` + `(checkedChange)`, o `[(checked)]`, o `formControlName`. | propuesta |
57
+ | `label` | Siempre. El nombre de la opción: «Delivery». | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
58
+ | `description` | Lo que significa elegirla: «Llevas los pedidos a la dirección del cliente». | canon (aprobado por el dueño, 05-10-2026, bloque B4) (8 de hoy) |
59
+ | `sublabel` | Precisión corta entre paréntesis. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
60
+ | `badge` | Marca una opción frente a las otras («Nuevo»). Con string sale azul `light`. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
61
+ | `indeterminate` | Una casilla que resume a otras («Todos los días» con algunos marcados). | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
62
+ | `disabled` | La opción no aplica hoy; di por qué en la `description`. | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
63
+ | `checked` | `[checked]` + `(checkedChange)`, o `[(checked)]`, o `formControlName`. | según el código |
64
64
 
65
65
  ### `size` (la casilla de adentro)
66
66
 
@@ -43,10 +43,10 @@ Regla corta: **casilla con texto → este · casilla sin texto → `sui-checkbox
43
43
  | `label` | Siempre. Qué se marca, en una a tres palabras («Gestionar productos»). | según la guía del DS (pieza); largo según `docs/CANON-SUI.md` §5.4 |
44
44
  | `sublabel` | Una precisión corta entre paréntesis: «(opcional)», «(12)». Va con paréntesis en el texto: el componente no los pone. | según la guía del DS («Label(Sublabel)») |
45
45
  | `description` | Cuando la opción necesita una frase que explique qué pasa si se marca («Recibe un correo cada vez que entra un pedido»). Pasa el label a peso medio. | según la guía del DS (pieza); el «cuándo» es propuesta |
46
- | `badge` | Solo para algo **nuevo** («Nuevo», en `purple` como el badge de novedad). Con string sale naranja `light`: pásale el objeto. | según la guía del DS (pieza «NEW»); el color es propuesta |
46
+ | `badge` | Solo para algo **nuevo** («Nuevo», en `purple` como el badge de novedad). Con string sale naranja `light`: pásale el objeto. | según la guía del DS (pieza «NEW»); el color: canon (aprobado por el dueño, 05-10-2026, bloque B3) |
47
47
  | `link` | Un «Ver detalle» que abre más información sin marcar la casilla. **Solo se ve si hay `description`.** | según la guía del DS (pieza «Link Button») |
48
- | `flip` | No usar en formularios: la casilla va a la izquierda, como en la guía. | propuesta, falta aprobación |
49
- | `indeterminate` | El «seleccionar todo» de un grupo, cuando hay algunas marcadas. Hoy no usar (ver abajo). | propuesta, falta aprobación |
48
+ | `flip` | No usar en formularios: la casilla va a la izquierda, como en la guía. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
49
+ | `indeterminate` | El «seleccionar todo» de un grupo, cuando hay algunas marcadas. Hoy no usar (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
50
50
  | `disabled` | La opción existe pero no se puede tocar ahora; decir por qué en la descripción. | según la guía del DS |
51
51
  | `size` | `medium` (default, Figma): casilla 20, label 14/20. `large`: casilla 24, label 16/24. `xlarge`: casilla 28, label 16/24. En large y xlarge el sublabel y la descripción se quedan en 12/16 (canon, dueño 04-10-2026); el badge sin `size` propio sube a `medium` / `large` y el link a `medium`. Se usa con `[size]="bp.controlSize()"`. | `medium`: según la guía del DS · `large` / `xlarge`: canon (aprobado por el dueño, 03-10-2026), extensión SUI |
52
52
 
@@ -26,8 +26,8 @@ del día en una card chica.
26
26
  > **En la guía del DS se llama «Progress Circle»** («un gráfico simple para mostrar qué tan
27
27
  > completo está algo»). Trae cinco tamaños (80, 72, 64, 56 y 48; default 80), `value` y `max`,
28
28
  > y **un solo color** (el primario del DS, que en SUI es el azul de información). No dice cuándo
29
- > usar cada tamaño. Lo marcado «según la guía del DS» sale de ahí; el resto es **propuesta,
30
- > falta aprobación**.
29
+ > usar cada tamaño. Lo marcado «según la guía del DS» sale de ahí. Lo marcado canon está
30
+ > aprobado; lo que sigue en **propuesta, falta aprobación** espera decisión.
31
31
  >
32
32
  > Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos**, sin contar prototipos ni
33
33
  > vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`, `_guia-*`,
@@ -38,10 +38,10 @@ del día en una card chica.
38
38
  | size | número al centro | cuándo | fuente |
39
39
  |---|---|---|---|
40
40
  | `48` | no (solo el anillo) | Junto a un texto que ya dice el porcentaje. | según la guía del DS |
41
- | `56` | sí, 12 px | Web: en una fila o una card. | según la guía del DS (tamaño) · propuesta (cuándo) |
42
- | `64` (default SUI) | sí, 14 px | Mobile: en una fila o una card. | según la guía del DS (tamaño) · propuesta (cuándo) |
43
- | `72` | sí, 14 px | Web: lo principal de la pantalla. | según la guía del DS (tamaño) · propuesta (cuándo) |
44
- | `80` (default de la guía) | sí, 14 px | Mobile: lo principal de la pantalla. | según la guía del DS (tamaño) · propuesta (cuándo) |
41
+ | `56` | sí, 12 px | Web: en una fila o una card. | según la guía del DS (tamaño) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
42
+ | `64` (default SUI) | sí, 14 px | Mobile: en una fila o una card. | según la guía del DS (tamaño) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
43
+ | `72` | sí, 14 px | Web: lo principal de la pantalla. | según la guía del DS (tamaño) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
44
+ | `80` (default de la guía) | sí, 14 px | Mobile: lo principal de la pantalla. | según la guía del DS (tamaño) · cuándo: canon (aprobado por el dueño, 05-10-2026, bloque B1) |
45
45
 
46
46
  ### `color` — misma regla que `sui-progress-bar`
47
47
 
@@ -58,9 +58,9 @@ del día en una card chica.
58
58
  | propiedad | valor | cuándo | fuente |
59
59
  |---|---|---|---|
60
60
  | `number` | `true` (default) | Lo normal: el porcentaje al centro. | según la guía del DS |
61
- | `number` | `false` | El texto de al lado ya dice el número. | propuesta, falta aprobación |
62
- | `strokeWidth` | número | **No usar** (ver abajo). | propuesta, falta aprobación |
63
- | `ariaLabel` | texto | Siempre: lo que mide («Perfil completado»). | propuesta, falta aprobación |
61
+ | `number` | `false` | El texto de al lado ya dice el número. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
62
+ | `strokeWidth` | número | **No usar** (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
63
+ | `ariaLabel` | texto | Siempre: lo que mide («Perfil completado»). | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
64
64
 
65
65
  Usos de hoy que rompen la regla: **0** (no hay usos).
66
66
 
@@ -74,16 +74,19 @@ Usos de hoy que rompen la regla: **0** (no hay usos).
74
74
 
75
75
  ## Tamaño en mobile y en web
76
76
 
77
- Criterio de la app: **en mobile se lee y se toca con el dedo, así que va más grande; en web
78
- (desktop), más chico.** Mobile es `≤ 767 px`, el mismo corte de `BreakpointsService.isMobile()`
79
- en master-pedidos. Fuente: canon del dueño (03-10-2026), el mismo patrón que ya usan 27 controles
80
- de la app.
77
+ Criterio de la app: **D16, tamaño por dispositivo** (canon, dueño, 05-10-2026), que reemplaza al
78
+ «tamaño por plataforma» del 03-10-2026 (mobile grande, web chico). La columna «mobile» es el celular de
79
+ 380 px o más y, en lo que se toca, también la tablet (`pointer: coarse`). La columna «web» es la
80
+ computadora (`pointer: fine`) y, en lo que no se toca, también la tablet. En el celular chico
81
+ (< 380 px) va `medium` a la vista, sin achicar el área de 44 de lo que se toca. **Nada en `small` ni
82
+ `xsmall`**, salvo lo que el componente solo tiene en chico. Hoy la app corta con
83
+ `BreakpointsService.isMobile()` (≤ 767 px), que todavía no mira el puntero ni los 380 px.
81
84
 
82
85
  | uso | mobile | web | fuente |
83
86
  |---|---|---|---|
84
- | Junto a un texto que ya dice el número | `48` | `48` | propuesta, falta aprobación |
85
- | En una fila o card | `64` | `56` | propuesta, falta aprobación |
86
- | Lo principal de la pantalla | `80` | `72` | propuesta, falta aprobación |
87
+ | Junto a un texto que ya dice el número | `48` | `48` | canon (dueño, 05-10-2026, P1 b) |
88
+ | En una fila o card | `64` | `56` | canon (dueño, 05-10-2026, P1 b) |
89
+ | Lo principal de la pantalla | `80` | `72` | canon (dueño, 05-10-2026, P1 b) |
87
90
 
88
91
  ```ts
89
92
  readonly bp = inject(BreakpointsService); // master-pedidos: src/app/services/breakpoints.service.ts
@@ -27,7 +27,8 @@ un `<button role="radio">`: se toca.
27
27
 
28
28
  > **En la guía del DS es la fila «Recommended Colors» del selector de color**: muestras para
29
29
  > elegir un color recomendado. No dice cuándo usar cada estado. Lo marcado «según la guía del
30
- > DS» sale de ahí; el resto es **propuesta, falta aprobación**.
30
+ > DS» sale de ahí. Lo marcado canon está aprobado; lo que sigue en **propuesta, falta aprobación**
31
+ > espera decisión.
31
32
  >
32
33
  > Uso medido el 03-10-2026 en `master-pedidos/src/app`: **0 usos**, sin contar prototipos ni
33
34
  > vitrinas (`master-preview`, `master-prototipos`, `mockup-sheets-*`, `dx/*`, `_guia-*`,
@@ -38,13 +39,13 @@ un `<button role="radio">`: se toca.
38
39
  | propiedad | valor | cuándo | fuente |
39
40
  |---|---|---|---|
40
41
  | `color` | los 10 (`gray`, `blue`, `orange`, `red`, `green`, `yellow`, `purple`, `sky`, `pink`, `teal`) | El color literal que se ofrece. **No significan nada**: son la paleta `-500`, no los tokens de estado del badge. Se ofrecen en ese orden. | según la guía del DS (colores recomendados) |
41
- | `customHex` | `#rrggbb` | Un color exacto que no está en los 10 (el de una variante de producto). Pisa a `color`. | propuesta, falta aprobación |
42
+ | `customHex` | `#rrggbb` | Un color exacto que no está en los 10 (el de una variante de producto). Pisa a `color`. | canon (aprobado por el dueño, 05-10-2026, bloque B3) |
42
43
  | `state` | `default` | Opción disponible. | según la guía del DS |
43
44
  | `state` | `selected` | El color elegido. Uno solo por fila; lo setea la pantalla. | según la guía del DS |
44
- | `state` | `disabled` | Un color que no se puede elegir (agotado en esa variante). | propuesta, falta aprobación |
45
- | `state` | `hover` | **No usar** (ver abajo). | propuesta, falta aprobación |
45
+ | `state` | `disabled` | Un color que no se puede elegir (agotado en esa variante). | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
46
+ | `state` | `hover` | **No usar** (ver abajo). | canon (aprobado por el dueño, 05-10-2026, bloque B6) |
46
47
  | `size` | `medium` (default) · `large` | `medium` 24 (Figma) en web; `large` 32 en mobile. En `large` el dot mide 22, 18 en hover y 16 seleccionado, con anillo de 24. | `medium`: según la guía del DS · `large`: canon (aprobado por el dueño, 03-10-2026), extensión SUI |
47
- | `ariaLabel` | texto | El nombre del color para el lector de pantalla. Por default dice «Rojo», «Celeste»; con `customHex`, el hex. Con hex propio, pasar el nombre («Rojo vino»). | propuesta, falta aprobación |
48
+ | `ariaLabel` | texto | El nombre del color para el lector de pantalla. Por default dice «Rojo», «Celeste»; con `customHex`, el hex. Con hex propio, pasar el nombre («Rojo vino»). | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
48
49
 
49
50
  Usos de hoy que rompen la regla: **0** (no hay usos).
50
51
 
@@ -57,10 +58,13 @@ Usos de hoy que rompen la regla: **0** (no hay usos).
57
58
 
58
59
  ## Tamaño en mobile y en web
59
60
 
60
- Criterio de la app: **en mobile se lee y se toca con el dedo, así que va más grande; en web
61
- (desktop), más chico.** Mobile es `≤ 767 px`, el mismo corte de `BreakpointsService.isMobile()`
62
- en master-pedidos. Fuente: canon del dueño (03-10-2026), el mismo patrón que ya usan 27 controles
63
- de la app.
61
+ Criterio de la app: **D16, tamaño por dispositivo** (canon, dueño, 05-10-2026), que reemplaza al
62
+ «tamaño por plataforma» del 03-10-2026 (mobile grande, web chico). La columna «mobile» es el celular de
63
+ 380 px o más y, en lo que se toca, también la tablet (`pointer: coarse`). La columna «web» es la
64
+ computadora (`pointer: fine`) y, en lo que no se toca, también la tablet. En el celular chico
65
+ (< 380 px) va `medium` a la vista, sin achicar el área de 44 de lo que se toca. **Nada en `small` ni
66
+ `xsmall`**, salvo lo que el componente solo tiene en chico. Hoy la app corta con
67
+ `BreakpointsService.isMobile()` (≤ 767 px), que todavía no mira el puntero ni los 380 px.
64
68
 
65
69
  | uso | mobile | web | fuente |
66
70
  |---|---|---|---|
@@ -38,15 +38,15 @@ Regla corta: **color libre que se guarda → color-picker · una de N categoría
38
38
  | prop | cuándo | fuente |
39
39
  |---|---|---|
40
40
  | `value` | El hex guardado (`[(value)]`). Sin valor, el botón muestra el `placeholder`. | según la guía del DS (popover con botón) |
41
- | `placeholder` | «Elegir color» (default). Cambiarlo solo si el campo dice qué color es («Color de la variante»). | propuesta, falta aprobación |
42
- | `alpha` | **`false` por defecto en la app**: la base guarda 6 caracteres (`#rrggbb`). Con `true` (default del componente) puede emitir 8. | propuesta, falta aprobación |
41
+ | `placeholder` | «Elige un color» (default, imperativo con tuteo). Cambiarlo solo si el campo dice qué color es, también en imperativo («Elige el color de la variante»). | canon (dueño, 05-10-2026, P4 a); el default cambió en la 0.25.0 (antes «Elegir color») |
42
+ | `alpha` | **`false` por defecto en la app**: la base guarda 6 caracteres (`#rrggbb`). Con `true` (default del componente) puede emitir 8. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
43
43
  | `colors` | Acotar los recomendados a los que tengan sentido para el caso. Default: los 10 de SUI. | según la guía del DS (sección «Recommended Colors») |
44
- | `recommendedLabel` | «Colores recomendados» (default). | propuesta, falta aprobación |
45
- | `presetsOnly` | Solo la grilla de recomendados, sin espectro ni hex: cuando el color tiene que salir de la paleta. | propuesta, falta aprobación |
46
- | `eyedropper` | Dejar el default (`true`): solo aparece donde el navegador lo soporta (Chromium de escritorio). | propuesta, falta aprobación |
47
- | `showFormatLabel` | `false`: el «Hex» con flecha es decorativo, no cambia de formato. | propuesta, falta aprobación |
48
- | `disabled` | El campo existe pero no se puede tocar ahora. | propuesta, falta aprobación |
49
- | `ariaLabel` | Siempre que el botón no tenga un label al lado que diga qué color es. | propuesta, falta aprobación |
44
+ | `recommendedLabel` | «Colores recomendados» (default). | canon (aprobado por el dueño, 05-10-2026, bloque B4) |
45
+ | `presetsOnly` | Solo la grilla de recomendados, sin espectro ni hex: cuando el color tiene que salir de la paleta. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
46
+ | `eyedropper` | Dejar el default (`true`): solo aparece donde el navegador lo soporta (Chromium de escritorio). | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
47
+ | `showFormatLabel` | `false`: el «Hex» con flecha es decorativo, no cambia de formato. | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
48
+ | `disabled` | El campo existe pero no se puede tocar ahora. | canon (aprobado por el dueño, 05-10-2026, bloque B8) |
49
+ | `ariaLabel` | Siempre que el botón no tenga un label al lado que diga qué color es. | canon (aprobado por el dueño, 05-10-2026, bloque B5) |
50
50
 
51
51
  **Usos de hoy que rompen la regla:**
52
52
 
@@ -91,7 +91,7 @@ cambian con `size`.
91
91
  |---|---|---|
92
92
  | `colors` | `readonly SuiColorDotColor[]` | `SUI_COLOR_DOT_COLORS` |
93
93
  | `value` · model, `[(value)]` | `string \| null` | `null` |
94
- | `placeholder` | `string` | `'Elegir color'` |
94
+ | `placeholder` | `string` | `'Elige un color'` |
95
95
  | `recommendedLabel` | `string` | `'Colores recomendados'` |
96
96
  | `presetsOnly` | `boolean` | `false` |
97
97
  | `alpha` | `boolean` | `true` |
@@ -39,7 +39,7 @@ No tiene variantes. Se decide el copy y si va el bloque de ayuda.
39
39
  | prop | regla | fuente |
40
40
  |---|---|---|
41
41
  | `navigateLabel` · `selectLabel` | **Siempre en español**: «Moverte» y «Abrir» (o «Elegir»). Los defaults son `'Navegar'` y `'Seleccionar'`. | canon (CANON-SUI §5: copy en español, tuteo) |
42
- | `helpText` + `helpLink` | Solo si hay adónde mandar a la persona (el WhatsApp de soporte). Si no, `[helpText]="null"` saca el bloque entero. Los defaults dicen «¿No es lo que buscas? Prueba el» + «Centro de ayuda». | propuesta |
42
+ | `helpText` + `helpLink` | Solo si hay adónde mandar a la persona (el WhatsApp de soporte). Si no, `[helpText]="null"` saca el bloque entero. Los defaults dicen «¿No es lo que buscas? Prueba el» + «Centro de ayuda». | canon (aprobado por el dueño, 05-10-2026, bloque B9) |
43
43
  | `helpLink` como objeto | `{ label, href, target }` dibuja un `<a>` de verdad; con `target: '_blank'` pone `rel="noopener noreferrer"` solo. | API |
44
44
 
45
45
  ## Tamaño en mobile y en web