@ajuarezso/sui-design-system 0.25.1 → 0.26.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/INDEX.md +3 -3
- package/docs/TEXTOS.md +85 -0
- package/docs/sui-activity-feed/README.md +19 -4
- package/docs/sui-alert/README.md +10 -0
- package/docs/sui-avatar-group/README.md +10 -0
- package/docs/sui-banner/README.md +10 -0
- package/docs/sui-brand-logo/README.md +10 -0
- package/docs/sui-breadcrumbs/README.md +10 -0
- package/docs/sui-checkbox-card/README.md +2 -1
- package/docs/sui-circular-progress-bar/README.md +10 -0
- package/docs/sui-color-dot/README.md +20 -0
- package/docs/sui-color-picker/README.md +20 -3
- package/docs/sui-command-menu-footer/README.md +17 -4
- package/docs/sui-command-menu-item/README.md +18 -10
- package/docs/sui-command-menu-search/README.md +18 -8
- package/docs/sui-compact-select/README.md +2 -0
- package/docs/sui-content-card/README.md +11 -1
- package/docs/sui-content-divider/README.md +11 -0
- package/docs/sui-counter-input/README.md +13 -2
- package/docs/sui-date-selector/README.md +11 -0
- package/docs/sui-datepicker/README.md +17 -0
- package/docs/sui-day-cell/README.md +10 -0
- package/docs/sui-drawer-footer/README.md +17 -2
- package/docs/sui-drawer-header/README.md +11 -1
- package/docs/sui-dropdown-menu/README.md +9 -1
- package/docs/sui-dropdown-search/README.md +21 -10
- package/docs/sui-file-icon/README.md +11 -0
- package/docs/sui-file-upload/README.md +14 -1
- package/docs/sui-file-upload-card/README.md +20 -4
- package/docs/sui-filter/README.md +27 -15
- package/docs/sui-image-upload/README.md +19 -0
- package/docs/sui-image-upload-profile/README.md +16 -2
- package/docs/sui-inline-input/README.md +15 -2
- package/docs/sui-input/README.md +12 -0
- package/docs/sui-integration-switch/README.md +10 -0
- package/docs/sui-modal/README.md +51 -3
- package/docs/sui-modal-header/README.md +10 -0
- package/docs/sui-modal-sheet/README.md +24 -12
- package/docs/sui-notification/README.md +12 -0
- package/docs/sui-notification-footer/README.md +14 -2
- package/docs/sui-notification-tab-menu/README.md +11 -1
- package/docs/sui-otp-input/README.md +12 -1
- package/docs/sui-pagination/README.md +16 -0
- package/docs/sui-password-strength/README.md +21 -3
- package/docs/sui-popover/README.md +15 -2
- package/docs/sui-progress-bar/README.md +10 -0
- package/docs/sui-radio/README.md +4 -1
- package/docs/sui-radio-label/README.md +5 -2
- package/docs/sui-rating/README.md +16 -2
- package/docs/sui-rich-editor/README.md +25 -2
- package/docs/sui-select/README.md +11 -1
- package/docs/sui-sidebar/README.md +18 -1
- package/docs/sui-slider/README.md +11 -0
- package/docs/sui-social-button/README.md +10 -0
- package/docs/sui-stepper/README.md +12 -1
- package/docs/sui-tab-chips/README.md +11 -0
- package/docs/sui-table/README.md +15 -1
- package/docs/sui-tag/README.md +11 -1
- package/docs/sui-tag-input/README.md +12 -1
- package/docs/sui-time-picker/README.md +19 -1
- package/docs/sui-toast/README.md +11 -0
- package/docs/sui-tooltip/README.md +10 -0
- package/docs/sui-topbar/README.md +15 -2
- package/docs/sui-topbar-user/README.md +10 -0
- package/fesm2022/ajuarezso-sui-design-system.mjs +1030 -462
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +703 -138
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, Signal, TemplateRef, ElementRef,
|
|
2
|
+
import { InjectionToken, Signal, Provider, TemplateRef, ElementRef, AfterViewInit, OnChanges, OnDestroy, OnInit, QueryList } from '@angular/core';
|
|
3
|
+
import * as _ajuarezso_sui_design_system from '@ajuarezso/sui-design-system';
|
|
3
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
5
|
export { addMonths, isSameDay, subMonths } from 'date-fns';
|
|
5
6
|
|
|
@@ -23,6 +24,328 @@ interface SuiTabBar {
|
|
|
23
24
|
}
|
|
24
25
|
declare const SUI_TAB_BAR: InjectionToken<SuiTabBar>;
|
|
25
26
|
|
|
27
|
+
/**
|
|
28
|
+
* El arreglo de iOS para el `:active` de todo lo que se toca, con listeners
|
|
29
|
+
* PASIVOS (16-10-2026, MASTER-88).
|
|
30
|
+
*
|
|
31
|
+
* iOS WKWebView necesita un listener de `touchstart` en el elemento para
|
|
32
|
+
* pintar y soltar `:active` a tiempo (sin él se queda pegado 300-500 ms), y el
|
|
33
|
+
* `blur()` en `touchend` suelta el foco. Hasta acá cada componente lo hacía con
|
|
34
|
+
* bindings `(touchstart)` / `(touchend)` de Angular, que se registran NO
|
|
35
|
+
* pasivos: con el dedo encima de una card el navegador tiene que esperar al
|
|
36
|
+
* JavaScript antes de empezar el scroll. En el checkout de Master Pedidos, con
|
|
37
|
+
* nueve radio-cards apiladas, el scroll se sentía trabado.
|
|
38
|
+
*
|
|
39
|
+
* Pasivos hacen exactamente lo mismo (ninguno llamaba a `preventDefault`) sin
|
|
40
|
+
* frenar el scroll. En el host: `hostDirectives: [SuiToque]`; en un elemento
|
|
41
|
+
* de la plantilla: el atributo `suiToque`. No se vuelven a escribir los
|
|
42
|
+
* bindings a mano: `sui-toque.spec.ts` falla si aparece uno.
|
|
43
|
+
*/
|
|
44
|
+
declare class SuiToque {
|
|
45
|
+
constructor();
|
|
46
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiToque, never>;
|
|
47
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SuiToque, "[suiToque]", never, {}, {}, never, never, true, never>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Los textos que escribe la librería por su cuenta (19-10-2026, MASTER-88).
|
|
52
|
+
*
|
|
53
|
+
* Nombres accesibles (`aria-label` de las X, de las flechas, de los checkbox
|
|
54
|
+
* de la tabla), textos solo para lector de pantalla y los textos por defecto
|
|
55
|
+
* (placeholders, botones de un footer, «Subiendo…»). Hasta la 0.25 estaban
|
|
56
|
+
* escritos en español dentro de cada componente: una app en inglés seguía
|
|
57
|
+
* anunciando «Cerrar» o «Mostrar contraseña».
|
|
58
|
+
*
|
|
59
|
+
* Ahora salen de un solo lugar. Por defecto, `SUI_TEXTOS_ES`; la app cambia los
|
|
60
|
+
* que quiera con `provideSuiTextos()`, y si le pasa una función que lee un
|
|
61
|
+
* signal (el idioma), los textos cambian en vivo, sin recargar.
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* // app.config.ts — fijo
|
|
65
|
+
* provideSuiTextos({ comun: { cerrar: 'Close' }, input: { mostrarContrasena: 'Show password' } })
|
|
66
|
+
*
|
|
67
|
+
* // app.config.ts — sigue al idioma de la app
|
|
68
|
+
* provideSuiTextos(() => (idioma() === 'en' ? SUI_EN : {}))
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* Lo no pasado cae al español. El input puntual de un componente (`ariaLabel`,
|
|
72
|
+
* `placeholder`, `cancelLabel`…) sigue ganándole al texto global.
|
|
73
|
+
*
|
|
74
|
+
* Los textos con una variable la llevan entre llaves (`'Página {n}'`); la
|
|
75
|
+
* librería la rellena con `rellenarSuiTexto`. Es la misma convención que usan
|
|
76
|
+
* los diccionarios de las apps (`t('x', { n })`), así que un texto traducido
|
|
77
|
+
* pasa tal cual.
|
|
78
|
+
*/
|
|
79
|
+
interface SuiTextos {
|
|
80
|
+
/** Los que se repiten en varios componentes. */
|
|
81
|
+
comun: {
|
|
82
|
+
/** X de modal, banner, alert, toast, popover, tooltip, notificación y drawer. */
|
|
83
|
+
cerrar: string;
|
|
84
|
+
/** Botón de borrar el contenido de `sui-input`. */
|
|
85
|
+
limpiar: string;
|
|
86
|
+
/** X de los buscadores (dropdown, sidebar, menú de comandos). */
|
|
87
|
+
limpiarBusqueda: string;
|
|
88
|
+
/** Botón de tres puntos (editor, notificación, actividad). */
|
|
89
|
+
masOpciones: string;
|
|
90
|
+
/** Barra o pasos de progreso sin nombre propio. */
|
|
91
|
+
progreso: string;
|
|
92
|
+
/** Placeholder de los buscadores (topbar, sidebar, dropdown). */
|
|
93
|
+
buscar: string;
|
|
94
|
+
/** Sello de cuenta verificada (sidebar, topbar). */
|
|
95
|
+
verificado: string;
|
|
96
|
+
cancelar: string;
|
|
97
|
+
confirmar: string;
|
|
98
|
+
continuar: string;
|
|
99
|
+
editar: string;
|
|
100
|
+
/** X de un tag. */
|
|
101
|
+
quitar: string;
|
|
102
|
+
/** X de cada tag de `sui-tag-input`. `{nombre}` = el tag. */
|
|
103
|
+
quitarNombre: string;
|
|
104
|
+
/** Placeholder de `sui-select`. */
|
|
105
|
+
elige: string;
|
|
106
|
+
/** Placeholder de `sui-inline-input`. */
|
|
107
|
+
escribeAqui: string;
|
|
108
|
+
/** Placeholder de `sui-tag-input`. */
|
|
109
|
+
agregaEtiqueta: string;
|
|
110
|
+
/** Botón de acción de `sui-content-divider` sin `ariaLabel`. */
|
|
111
|
+
accion: string;
|
|
112
|
+
/** Lo mismo cuando hay varios. `{n}` = valor o índice. */
|
|
113
|
+
accionN: string;
|
|
114
|
+
/** Nombre por defecto de un paso del stepper. `{n}` = número. */
|
|
115
|
+
paso: string;
|
|
116
|
+
/** «Paso 2 de 4» del drawer-footer y el popover. */
|
|
117
|
+
pasoDe: string;
|
|
118
|
+
/** Flechas de las listas con scroll horizontal (tabs, chips, tabla). */
|
|
119
|
+
verMasIzquierda: string;
|
|
120
|
+
verMasDerecha: string;
|
|
121
|
+
/** Chip de archivo de `sui-activity-feed`. `{nombre}` = archivo. */
|
|
122
|
+
descargar: string;
|
|
123
|
+
/** «+3 más» del avatar-group. `{n}` = el «+3». */
|
|
124
|
+
masN: string;
|
|
125
|
+
};
|
|
126
|
+
input: {
|
|
127
|
+
mostrarContrasena: string;
|
|
128
|
+
ocultarContrasena: string;
|
|
129
|
+
};
|
|
130
|
+
tabla: {
|
|
131
|
+
seleccionarTodas: string;
|
|
132
|
+
seleccionarFila: string;
|
|
133
|
+
sinDatos: string;
|
|
134
|
+
};
|
|
135
|
+
paginacion: {
|
|
136
|
+
nombre: string;
|
|
137
|
+
primera: string;
|
|
138
|
+
anterior: string;
|
|
139
|
+
/** `{n}` = número de página. */
|
|
140
|
+
pagina: string;
|
|
141
|
+
siguiente: string;
|
|
142
|
+
ultima: string;
|
|
143
|
+
/** Opciones del tamaño de página. `{n}` = cantidad. */
|
|
144
|
+
porPagina: string;
|
|
145
|
+
};
|
|
146
|
+
editorTexto: {
|
|
147
|
+
barra: string;
|
|
148
|
+
encabezado: string;
|
|
149
|
+
tamano: string;
|
|
150
|
+
negrita: string;
|
|
151
|
+
cursiva: string;
|
|
152
|
+
subrayado: string;
|
|
153
|
+
tachado: string;
|
|
154
|
+
alineacion: string;
|
|
155
|
+
comentario: string;
|
|
156
|
+
enlace: string;
|
|
157
|
+
mencionar: string;
|
|
158
|
+
placeholder: string;
|
|
159
|
+
titulo: string;
|
|
160
|
+
};
|
|
161
|
+
selectorColor: {
|
|
162
|
+
nombre: string;
|
|
163
|
+
placeholder: string;
|
|
164
|
+
recomendados: string;
|
|
165
|
+
saturacion: string;
|
|
166
|
+
matiz: string;
|
|
167
|
+
opacidad: string;
|
|
168
|
+
cuentagotas: string;
|
|
169
|
+
hexadecimal: string;
|
|
170
|
+
/** `sui-color-dot` sin `ariaLabel`. `{hex}` = el color. */
|
|
171
|
+
color: string;
|
|
172
|
+
/** Nombre de cada color de `sui-color-dot`. */
|
|
173
|
+
gris: string;
|
|
174
|
+
azul: string;
|
|
175
|
+
naranja: string;
|
|
176
|
+
rojo: string;
|
|
177
|
+
verde: string;
|
|
178
|
+
amarillo: string;
|
|
179
|
+
morado: string;
|
|
180
|
+
celeste: string;
|
|
181
|
+
rosado: string;
|
|
182
|
+
turquesa: string;
|
|
183
|
+
};
|
|
184
|
+
contrasena: {
|
|
185
|
+
nombre: string;
|
|
186
|
+
titulo: string;
|
|
187
|
+
mayuscula: string;
|
|
188
|
+
numero: string;
|
|
189
|
+
ochoCaracteres: string;
|
|
190
|
+
vacia: string;
|
|
191
|
+
debil: string;
|
|
192
|
+
moderada: string;
|
|
193
|
+
fuerte: string;
|
|
194
|
+
};
|
|
195
|
+
otp: {
|
|
196
|
+
nombre: string;
|
|
197
|
+
/** `{n}` = posición del dígito. */
|
|
198
|
+
digito: string;
|
|
199
|
+
};
|
|
200
|
+
calificacion: {
|
|
201
|
+
nombre: string;
|
|
202
|
+
motivo: string;
|
|
203
|
+
una: string;
|
|
204
|
+
varias: string;
|
|
205
|
+
/** Nombre de la nota de solo lectura. `{nombre}`, `{valor}`, `{max}`. */
|
|
206
|
+
nota: string;
|
|
207
|
+
};
|
|
208
|
+
contador: {
|
|
209
|
+
disminuir: string;
|
|
210
|
+
aumentar: string;
|
|
211
|
+
};
|
|
212
|
+
deslizador: {
|
|
213
|
+
minimo: string;
|
|
214
|
+
maximo: string;
|
|
215
|
+
};
|
|
216
|
+
archivo: {
|
|
217
|
+
/** `sui-file-icon` sin extensión. */
|
|
218
|
+
icono: string;
|
|
219
|
+
/** `sui-file-icon`. `{ext}` = PDF, DOC… */
|
|
220
|
+
tipo: string;
|
|
221
|
+
buscar: string;
|
|
222
|
+
soltarUno: string;
|
|
223
|
+
soltarVarios: string;
|
|
224
|
+
oClic: string;
|
|
225
|
+
cancelarSubida: string;
|
|
226
|
+
quitar: string;
|
|
227
|
+
progreso: string;
|
|
228
|
+
reintentar: string;
|
|
229
|
+
subiendo: string;
|
|
230
|
+
completado: string;
|
|
231
|
+
fallo: string;
|
|
232
|
+
};
|
|
233
|
+
imagen: {
|
|
234
|
+
vistaPrevia: string;
|
|
235
|
+
editar: string;
|
|
236
|
+
quitar: string;
|
|
237
|
+
cambiar: string;
|
|
238
|
+
subeFoto: string;
|
|
239
|
+
subeLogo: string;
|
|
240
|
+
formatos: string;
|
|
241
|
+
/** `{formatos}` y `{tamano}`. */
|
|
242
|
+
formatosMax: string;
|
|
243
|
+
tipoNoSoportado: string;
|
|
244
|
+
/** `{tamano}` = el máximo. */
|
|
245
|
+
superaTamano: string;
|
|
246
|
+
perfilTitulo: string;
|
|
247
|
+
perfilSubtitulo: string;
|
|
248
|
+
subir: string;
|
|
249
|
+
eliminar: string;
|
|
250
|
+
cambiarCorto: string;
|
|
251
|
+
};
|
|
252
|
+
menuComandos: {
|
|
253
|
+
placeholder: string;
|
|
254
|
+
navegar: string;
|
|
255
|
+
seleccionar: string;
|
|
256
|
+
ayuda: string;
|
|
257
|
+
centroAyuda: string;
|
|
258
|
+
abrir: string;
|
|
259
|
+
};
|
|
260
|
+
notificacion: {
|
|
261
|
+
/** Región de los toasts para el lector de pantalla. */
|
|
262
|
+
region: string;
|
|
263
|
+
noLeido: string;
|
|
264
|
+
filtrar: string;
|
|
265
|
+
usa: string;
|
|
266
|
+
paraMoverte: string;
|
|
267
|
+
administrar: string;
|
|
268
|
+
};
|
|
269
|
+
filtro: {
|
|
270
|
+
limpiar: string;
|
|
271
|
+
aplicar: string;
|
|
272
|
+
};
|
|
273
|
+
navegacion: {
|
|
274
|
+
/** `<nav>` del topbar. */
|
|
275
|
+
principal: string;
|
|
276
|
+
/** `<nav>` de las migas. */
|
|
277
|
+
migas: string;
|
|
278
|
+
cambiarWorkspace: string;
|
|
279
|
+
opcionesPerfil: string;
|
|
280
|
+
};
|
|
281
|
+
fecha: {
|
|
282
|
+
mesAnterior: string;
|
|
283
|
+
mesSiguiente: string;
|
|
284
|
+
/** Celda sin `ariaLabel`. `{n}` = día. */
|
|
285
|
+
dia: string;
|
|
286
|
+
rangos: string;
|
|
287
|
+
eligeFecha: string;
|
|
288
|
+
eligePeriodo: string;
|
|
289
|
+
elegirFecha: string;
|
|
290
|
+
elegirPeriodo: string;
|
|
291
|
+
hora: string;
|
|
292
|
+
minuto: string;
|
|
293
|
+
amPm: string;
|
|
294
|
+
duracionRapida: string;
|
|
295
|
+
eligeHora: string;
|
|
296
|
+
disponible: string;
|
|
297
|
+
ocupado: string;
|
|
298
|
+
enReunion: string;
|
|
299
|
+
desconectado: string;
|
|
300
|
+
};
|
|
301
|
+
popover: {
|
|
302
|
+
atras: string;
|
|
303
|
+
siguiente: string;
|
|
304
|
+
};
|
|
305
|
+
varios: {
|
|
306
|
+
/** X de `sui-content-card`. */
|
|
307
|
+
descartar: string;
|
|
308
|
+
/** Botón de `sui-integration-switch`. */
|
|
309
|
+
administrar: string;
|
|
310
|
+
/** Link de respuesta de `sui-activity-feed`. */
|
|
311
|
+
responder: string;
|
|
312
|
+
/** `sui-social-button`. `{marca}` = Google, Apple… */
|
|
313
|
+
continuarCon: string;
|
|
314
|
+
/** `sui-brand-logo` sin `ariaLabel`. `{marca}`. */
|
|
315
|
+
logoDe: string;
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/** Los textos de siempre: español de Perú, tuteo, imperativo. */
|
|
319
|
+
declare const SUI_TEXTOS_ES: SuiTextos;
|
|
320
|
+
/** Lo que pasa la app: cualquier grupo, cualquier subconjunto de claves. */
|
|
321
|
+
type SuiTextosParciales = {
|
|
322
|
+
[G in keyof SuiTextos]?: Partial<SuiTextos[G]>;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* Un objeto fijo, o una función que se lee dentro de un `computed`: si lee un
|
|
326
|
+
* signal (un `signal`, un `computed` o una flecha que llama a uno), los textos
|
|
327
|
+
* de la librería se vuelven a pintar cuando cambia.
|
|
328
|
+
*/
|
|
329
|
+
type SuiTextosFuente = SuiTextosParciales | (() => SuiTextosParciales);
|
|
330
|
+
/**
|
|
331
|
+
* Los textos vigentes. Sin `provideSuiTextos`, el español de siempre.
|
|
332
|
+
*
|
|
333
|
+
* Una app con el i18n en un servicio lo conecta directo:
|
|
334
|
+
* `{ provide: SUI_TEXTOS, useFactory: () => { const i18n = inject(MiI18n); return computed(() => mezclarSuiTextos(i18n.sui())); } }`.
|
|
335
|
+
*/
|
|
336
|
+
declare const SUI_TEXTOS: InjectionToken<Signal<SuiTextos>>;
|
|
337
|
+
/** Los textos de la app sobre el español, grupo por grupo. */
|
|
338
|
+
declare function mezclarSuiTextos(parciales: SuiTextosParciales | null | undefined): SuiTextos;
|
|
339
|
+
/**
|
|
340
|
+
* Cambia los textos de la librería. Va en los `providers` de la app (o de un
|
|
341
|
+
* componente, si solo una parte de la pantalla los necesita distintos).
|
|
342
|
+
*/
|
|
343
|
+
declare function provideSuiTextos(fuente: SuiTextosFuente): Provider;
|
|
344
|
+
/** Los textos vigentes, dentro de un componente: `protected readonly textos = injectSuiTextos();`. */
|
|
345
|
+
declare function injectSuiTextos(): Signal<SuiTextos>;
|
|
346
|
+
/** `rellenarSuiTexto('Página {n}', { n: 3 })` → «Página 3». Una variable que no llega queda como está. */
|
|
347
|
+
declare function rellenarSuiTexto(texto: string, params: Record<string, string | number>): string;
|
|
348
|
+
|
|
26
349
|
type SuiBadgeColor = 'gray' | 'blue' | 'orange' | 'red' | 'green' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal';
|
|
27
350
|
type SuiBadgeVariant = 'filled' | 'light' | 'lighter' | 'stroke' | 'dark';
|
|
28
351
|
type SuiBadgeSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
@@ -640,7 +963,10 @@ interface SuiActivityFile {
|
|
|
640
963
|
name: string;
|
|
641
964
|
/** Etiqueta corta del peso. Ej: "(4mb)" — formatear desde el consumer. */
|
|
642
965
|
size?: string;
|
|
643
|
-
/** URL opcional. Si está, el
|
|
966
|
+
/** URL opcional. Si está, el botón de descarga es un `<a download>` que baja
|
|
967
|
+
* el archivo (o lo abre en otra pestaña si es de otro origen) sin código del
|
|
968
|
+
* consumer; `(fileDownload)` sale igual. Sin href, la descarga la hace quien
|
|
969
|
+
* escucha `(fileDownload)`. */
|
|
644
970
|
href?: string;
|
|
645
971
|
}
|
|
646
972
|
interface SuiActivityTask {
|
|
@@ -793,6 +1119,9 @@ type SuiActivityFeedItem = (SuiActivityFeedItemBase & {
|
|
|
793
1119
|
* (fileDownload)="onDownload($event)" (reply)="onReply($event)" />
|
|
794
1120
|
*/
|
|
795
1121
|
declare class SuiActivityFeed {
|
|
1122
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1123
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
1124
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
796
1125
|
readonly items: _angular_core.InputSignal<readonly SuiActivityFeedItem[]>;
|
|
797
1126
|
/** Click en el 3-dot menu trailing de cualquier row. */
|
|
798
1127
|
readonly action: _angular_core.OutputEmitterRef<{
|
|
@@ -875,7 +1204,7 @@ declare class SuiActivityFilter {
|
|
|
875
1204
|
readonly state: _angular_core.Signal<SuiActivityFilterState>;
|
|
876
1205
|
onClick(event: Event): void;
|
|
877
1206
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiActivityFilter, never>;
|
|
878
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiActivityFilter, "sui-activity-filter", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true,
|
|
1207
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiActivityFilter, "sui-activity-filter", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
879
1208
|
}
|
|
880
1209
|
|
|
881
1210
|
type SuiAlertVariant = 'info' | 'success' | 'warning' | 'error' | 'feature';
|
|
@@ -995,6 +1324,8 @@ interface SuiAlertAction {
|
|
|
995
1324
|
* large → padding 14px 14px 16px, gap 12, radius-12 (default — full layout)
|
|
996
1325
|
*/
|
|
997
1326
|
declare class SuiAlert {
|
|
1327
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1328
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
998
1329
|
readonly variant: _angular_core.InputSignal<SuiAlertVariant>;
|
|
999
1330
|
readonly variantStyle: _angular_core.InputSignal<SuiAlertStyle>;
|
|
1000
1331
|
readonly size: _angular_core.InputSignal<SuiAlertSize>;
|
|
@@ -1054,7 +1385,7 @@ declare class SuiAlert {
|
|
|
1054
1385
|
* conservar el footprint del icono: xsmall (icon 16) → compact `medium`;
|
|
1055
1386
|
* small/large (icon 20) → `large`; xlarge (icon 24) → `xlarge`.
|
|
1056
1387
|
*/
|
|
1057
|
-
readonly closeButtonSize: _angular_core.Signal<"
|
|
1388
|
+
readonly closeButtonSize: _angular_core.Signal<"large" | "xlarge" | "medium">;
|
|
1058
1389
|
/**
|
|
1059
1390
|
* Icon size per size variant (leading + close icons).
|
|
1060
1391
|
* Figma: xsmall=16px, small=20px, large=20px. Verified 2026-05-29.
|
|
@@ -1197,6 +1528,9 @@ interface SuiAvatarGroupItem {
|
|
|
1197
1528
|
alt?: string;
|
|
1198
1529
|
}
|
|
1199
1530
|
declare class SuiAvatarGroup {
|
|
1531
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1532
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
1533
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
1200
1534
|
readonly size: _angular_core.InputSignal<SuiAvatarSize>;
|
|
1201
1535
|
readonly items: _angular_core.InputSignal<readonly SuiAvatarGroupItem[]>;
|
|
1202
1536
|
/** Máximo de avatares visibles antes de colapsar en "+N". Default 4. */
|
|
@@ -1304,6 +1638,8 @@ type SuiBannerStyle = 'filled' | 'light' | 'lighter' | 'stroke';
|
|
|
1304
1638
|
* </sui-banner>
|
|
1305
1639
|
*/
|
|
1306
1640
|
declare class SuiBanner {
|
|
1641
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1642
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
1307
1643
|
readonly variant: _angular_core.InputSignal<SuiBannerVariant>;
|
|
1308
1644
|
readonly variantStyle: _angular_core.InputSignal<SuiBannerStyle>;
|
|
1309
1645
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
@@ -1377,6 +1713,8 @@ type SuiBrandLogoSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
|
1377
1713
|
* ariaLabel="Síguenos en GitHub" />
|
|
1378
1714
|
*/
|
|
1379
1715
|
declare class SuiBrandLogo {
|
|
1716
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1717
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
1380
1718
|
readonly company: _angular_core.InputSignal<"adobe" | "amazon" | "apple" | "bitcoin" | "discord" | "dropbox" | "facebook" | "figma" | "framer" | "github" | "google" | "instagram" | "linkedin" | "microsoft" | "netflix" | "notion" | "paypal" | "pinterest" | "slack" | "spotify" | "stripe" | "telegram" | "twitch" | "webflow" | "whatsapp" | "wise" | "x-twitter" | "youtube">;
|
|
1381
1719
|
readonly variant: _angular_core.InputSignal<SuiBrandLogoStyle>;
|
|
1382
1720
|
readonly size: _angular_core.InputSignal<SuiBrandLogoSize>;
|
|
@@ -1524,6 +1862,8 @@ interface SuiBreadcrumbEntry {
|
|
|
1524
1862
|
* - Dividers `aria-hidden="true"`.
|
|
1525
1863
|
*/
|
|
1526
1864
|
declare class SuiBreadcrumbs {
|
|
1865
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
1866
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
1527
1867
|
readonly items: _angular_core.InputSignal<readonly SuiBreadcrumbEntry[]>;
|
|
1528
1868
|
readonly divider: _angular_core.InputSignal<SuiBreadcrumbDivider>;
|
|
1529
1869
|
/** Emitido cuando un item NO-active es clickeado. */
|
|
@@ -1603,7 +1943,7 @@ declare class SuiButtonGroupItem {
|
|
|
1603
1943
|
/** aria-label para icon-only buttons */
|
|
1604
1944
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1605
1945
|
/** Estado del data-attribute para CSS scoping */
|
|
1606
|
-
readonly state: _angular_core.Signal<"default" | "
|
|
1946
|
+
readonly state: _angular_core.Signal<"default" | "disabled" | "active">;
|
|
1607
1947
|
/** True cuando solo tiene icon (left o right) sin label */
|
|
1608
1948
|
readonly onlyIcon: _angular_core.Signal<boolean>;
|
|
1609
1949
|
/**
|
|
@@ -1614,7 +1954,7 @@ declare class SuiButtonGroupItem {
|
|
|
1614
1954
|
* - 'both' → ambos iconos: padding cuadrado (p)
|
|
1615
1955
|
* - 'only' → icon-only: padding cuadrado (p) → square box
|
|
1616
1956
|
*/
|
|
1617
|
-
readonly iconLayout: _angular_core.Signal<"none" | "
|
|
1957
|
+
readonly iconLayout: _angular_core.Signal<"none" | "right" | "left" | "both" | "only">;
|
|
1618
1958
|
/** Tamaño del icono en px según size del item (large/medium/small/xsmall=20, 2xsmall=16).
|
|
1619
1959
|
* En large y medium el ícono se queda en 20, igual que `sui-button`: el ícono
|
|
1620
1960
|
* que acompaña texto no escala. */
|
|
@@ -1779,7 +2119,7 @@ declare class SuiButton {
|
|
|
1779
2119
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1780
2120
|
readonly leftIcon: _angular_core.InputSignal<string | null>;
|
|
1781
2121
|
readonly rightIcon: _angular_core.InputSignal<string | null>;
|
|
1782
|
-
readonly type: _angular_core.InputSignal<"button" | "
|
|
2122
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
1783
2123
|
private _spacePressed;
|
|
1784
2124
|
private _esDelHost;
|
|
1785
2125
|
_onEnter(event: Event): void;
|
|
@@ -1790,7 +2130,7 @@ declare class SuiButton {
|
|
|
1790
2130
|
bloquea todo. */
|
|
1791
2131
|
_onClick(event: Event): void;
|
|
1792
2132
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiButton, never>;
|
|
1793
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiButton, "sui-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "onlyIcon": { "alias": "onlyIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "rightIcon": { "alias": "rightIcon"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, ["[data-slot=start]", "*", "[data-slot=end]"], true,
|
|
2133
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiButton, "sui-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "onlyIcon": { "alias": "onlyIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "rightIcon": { "alias": "rightIcon"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, ["[data-slot=start]", "*", "[data-slot=end]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
1794
2134
|
}
|
|
1795
2135
|
|
|
1796
2136
|
type SuiCardVariant = 'default' | 'elevated' | 'flat';
|
|
@@ -1852,7 +2192,7 @@ declare class SuiCard {
|
|
|
1852
2192
|
*/
|
|
1853
2193
|
protected onKeyActivate(event: Event): void;
|
|
1854
2194
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCard, never>;
|
|
1855
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCard, "sui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["[sui-card-header]", "*", "[sui-card-media]", "[sui-card-footer]"], true,
|
|
2195
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCard, "sui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["[sui-card-header]", "*", "[sui-card-media]", "[sui-card-footer]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
1856
2196
|
}
|
|
1857
2197
|
|
|
1858
2198
|
/**
|
|
@@ -2016,7 +2356,7 @@ declare class SuiChartLegend {
|
|
|
2016
2356
|
* Disposición de los items: `horizontal` (row con wrap, default) o
|
|
2017
2357
|
* `vertical` (columna — leyendas laterales de donut/pie).
|
|
2018
2358
|
*/
|
|
2019
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
2359
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
2020
2360
|
/** Items con color efectivo resuelto (disabled > customColor > color > ciclo auto). */
|
|
2021
2361
|
protected readonly resolvedItems: _angular_core.Signal<ResolvedLegendItem[]>;
|
|
2022
2362
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiChartLegend, never>;
|
|
@@ -2067,7 +2407,7 @@ declare class SuiCheckbox implements ControlValueAccessor {
|
|
|
2067
2407
|
registerOnTouched(fn: any): void;
|
|
2068
2408
|
setDisabledState(isDisabled: boolean): void;
|
|
2069
2409
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCheckbox, never>;
|
|
2070
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckbox, "sui-checkbox", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true,
|
|
2410
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckbox, "sui-checkbox", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
2071
2411
|
}
|
|
2072
2412
|
|
|
2073
2413
|
type SuiCheckboxCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | 'brand' | 'company';
|
|
@@ -2183,7 +2523,7 @@ declare class SuiCheckboxCard implements ControlValueAccessor {
|
|
|
2183
2523
|
/** RemixIcon name (sin prefijo "ri-") para type='left-icon'. */
|
|
2184
2524
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
2185
2525
|
/** Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'. */
|
|
2186
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
2526
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
2187
2527
|
/** URL directa al emoji para type='left-icon'. Precedencia: icon > emoji > iconSrc. */
|
|
2188
2528
|
readonly iconSrc: _angular_core.InputSignal<string | null>;
|
|
2189
2529
|
/** URL de imagen para type='avatar'. Si falla, fallback a iniciales del label. */
|
|
@@ -2217,7 +2557,7 @@ declare class SuiCheckboxCard implements ControlValueAccessor {
|
|
|
2217
2557
|
registerOnTouched(fn: () => void): void;
|
|
2218
2558
|
setDisabledState(isDisabled: boolean): void;
|
|
2219
2559
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCheckboxCard, never>;
|
|
2220
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckboxCard, "sui-checkbox-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "checkedChange2": "checkedChange2"; }, never, ["[slot=leading]"], true,
|
|
2560
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckboxCard, "sui-checkbox-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "checkedChange2": "checkedChange2"; }, never, ["[slot=leading]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
2221
2561
|
}
|
|
2222
2562
|
|
|
2223
2563
|
type SuiLinkButtonVariant = 'gray' | 'black' | 'primary' | 'error' | 'modifiable';
|
|
@@ -2311,7 +2651,7 @@ declare class SuiLinkButton {
|
|
|
2311
2651
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
2312
2652
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
2313
2653
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
2314
|
-
readonly type: _angular_core.InputSignal<"button" | "
|
|
2654
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
2315
2655
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
2316
2656
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
2317
2657
|
/** Px de los íconos por tamaño: large 20 · medium 20 · small 16. */
|
|
@@ -2542,6 +2882,8 @@ type SuiCircularProgressBarSize = 48 | 56 | 64 | 72 | 80;
|
|
|
2542
2882
|
* - ariaLabel: string opcional para `aria-label` del role=progressbar.
|
|
2543
2883
|
*/
|
|
2544
2884
|
declare class SuiCircularProgressBar {
|
|
2885
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
2886
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
2545
2887
|
readonly value: _angular_core.InputSignal<number>;
|
|
2546
2888
|
readonly size: _angular_core.InputSignal<SuiCircularProgressBarSize>;
|
|
2547
2889
|
readonly color: _angular_core.InputSignal<SuiCircularProgressBarColor>;
|
|
@@ -2648,6 +2990,8 @@ declare function normalizeHex(input: string | null | undefined): string | null;
|
|
|
2648
2990
|
* iOS active fix: el host es un `<button>` con touchstart/touchend.
|
|
2649
2991
|
*/
|
|
2650
2992
|
declare class SuiColorDot {
|
|
2993
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
2994
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
2651
2995
|
/** Nombre del preset. Default `gray` cuando se usa customHex (el preset no aplica). */
|
|
2652
2996
|
readonly color: _angular_core.InputSignal<SuiColorDotColor>;
|
|
2653
2997
|
/**
|
|
@@ -2666,7 +3010,7 @@ declare class SuiColorDot {
|
|
|
2666
3010
|
* - `selected` → dot 12×12 + ring 2px.
|
|
2667
3011
|
* - `disabled` → dot gris pálido, sin pointer events.
|
|
2668
3012
|
*/
|
|
2669
|
-
readonly state: _angular_core.InputSignal<"default" | "
|
|
3013
|
+
readonly state: _angular_core.InputSignal<"default" | "hover" | "selected" | "disabled">;
|
|
2670
3014
|
/**
|
|
2671
3015
|
* Tamaño. `medium` (default, Figma 24): dot 16 / hover 14 / selected 12 + anillo 18.
|
|
2672
3016
|
* `large` (32, extensión SUI para mobile): dot 22 / hover 18 / selected 16 + anillo 24.
|
|
@@ -2675,7 +3019,7 @@ declare class SuiColorDot {
|
|
|
2675
3019
|
/** aria-label override. */
|
|
2676
3020
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2677
3021
|
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
2678
|
-
/** Label por default: nombre del color
|
|
3022
|
+
/** Label por default: el nombre del color (`textos.selectorColor`), o el hex. */
|
|
2679
3023
|
readonly defaultAriaLabel: _angular_core.Signal<string>;
|
|
2680
3024
|
protected onClick(): void;
|
|
2681
3025
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiColorDot, never>;
|
|
@@ -2752,6 +3096,8 @@ type SuiColorPickerSize = 'medium' | 'large';
|
|
|
2752
3096
|
* - Dots: role="radio" + aria-checked (los renderea sui-color-dot)
|
|
2753
3097
|
*/
|
|
2754
3098
|
declare class SuiColorPicker {
|
|
3099
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
3100
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
2755
3101
|
private readonly hostRef;
|
|
2756
3102
|
/**
|
|
2757
3103
|
* Lista de colores recomendados (grid). Default los 10 canon SUI.
|
|
@@ -2767,9 +3113,11 @@ declare class SuiColorPicker {
|
|
|
2767
3113
|
*/
|
|
2768
3114
|
readonly value: _angular_core.ModelSignal<string | null>;
|
|
2769
3115
|
/** Label visible cuando no hay color seleccionado. Imperativo con tuteo (dueño, 05-10-2026, P4 a). */
|
|
2770
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3116
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
3117
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
2771
3118
|
/** Etiqueta de la sección Recommended Colors dentro del panel. */
|
|
2772
|
-
readonly recommendedLabel: _angular_core.InputSignal<string>;
|
|
3119
|
+
readonly recommendedLabel: _angular_core.InputSignal<string | null>;
|
|
3120
|
+
protected readonly recommendedLabelTexto: _angular_core.Signal<string>;
|
|
2773
3121
|
/** Si true, oculta el HSV spectrum + sliders + hex input — solo grid de presets. */
|
|
2774
3122
|
readonly presetsOnly: _angular_core.InputSignal<boolean>;
|
|
2775
3123
|
/**
|
|
@@ -2803,7 +3151,8 @@ declare class SuiColorPicker {
|
|
|
2803
3151
|
* nuevo 04-10-2026 (dueño: piso táctil 44 en el teléfono). */
|
|
2804
3152
|
readonly size: _angular_core.InputSignal<SuiColorPickerSize>;
|
|
2805
3153
|
/** aria-label del trigger. */
|
|
2806
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3154
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3155
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
2807
3156
|
/** Emitido cuando el value cambia (cualquier interacción). */
|
|
2808
3157
|
readonly change: _angular_core.OutputEmitterRef<string>;
|
|
2809
3158
|
/** Estado interno del popover. */
|
|
@@ -2939,22 +3288,22 @@ declare class SuiColorPicker {
|
|
|
2939
3288
|
* Footer del command menu (⌘K palette). 3 grupos:
|
|
2940
3289
|
* 1. Navigate: kbd ↑ + kbd ↓ + text "Navigate"
|
|
2941
3290
|
* 2. Select: kbd ↵ + text "Select"
|
|
2942
|
-
* 3. Help text + link button
|
|
3291
|
+
* 3. Help text + link button «Centro de ayuda» (push right via flex-1 + justify-end)
|
|
2943
3292
|
*
|
|
2944
3293
|
* Container: bg=white, border-top stroke-soft-200, padding 14px 20px, gap=12,
|
|
2945
3294
|
* items-center, w=600px.
|
|
2946
3295
|
*
|
|
2947
3296
|
* EXACT:
|
|
2948
|
-
* Text labels (
|
|
3297
|
+
* Text labels (Navegar/Seleccionar/ayuda): Paragraph/X Small 12/16 text-sub-600
|
|
2949
3298
|
* Link button: Label/X Small Medium 12/16 primary-base (sin underline default)
|
|
2950
3299
|
* Kbds: variant subtle, contienen iconos 16×16
|
|
2951
3300
|
*
|
|
2952
3301
|
* API:
|
|
2953
|
-
* - navigateLabel: string ('
|
|
2954
|
-
* - selectLabel: string ('
|
|
2955
|
-
* - helpText: string | null ('
|
|
3302
|
+
* - navigateLabel: string ('Navegar' por default)
|
|
3303
|
+
* - selectLabel: string ('Seleccionar')
|
|
3304
|
+
* - helpText: string | null ('¿No es lo que buscas? Prueba el')
|
|
2956
3305
|
* — copy previo al link; null oculta el bloque de ayuda completo
|
|
2957
|
-
* - helpLink: SuiLinkConfig | string | null ('
|
|
3306
|
+
* - helpLink: SuiLinkConfig | string | null ('Centro de ayuda') — string
|
|
2958
3307
|
* shorthand = solo label (renderiza <button>, emite helpClicked);
|
|
2959
3308
|
* SuiLinkConfig { label, href?, target?, rel? } = <a> real con
|
|
2960
3309
|
* rel automático 'noopener noreferrer' si target='_blank'.
|
|
@@ -2962,13 +3311,20 @@ declare class SuiColorPicker {
|
|
|
2962
3311
|
* - (helpClicked): output cuando el link se clickea
|
|
2963
3312
|
*/
|
|
2964
3313
|
declare class SuiCommandMenuFooter {
|
|
2965
|
-
|
|
2966
|
-
readonly
|
|
2967
|
-
readonly
|
|
3314
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
3315
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
3316
|
+
readonly navigateLabel: _angular_core.InputSignal<string | null>;
|
|
3317
|
+
protected readonly navigateLabelTexto: _angular_core.Signal<string>;
|
|
3318
|
+
readonly selectLabel: _angular_core.InputSignal<string | null>;
|
|
3319
|
+
protected readonly selectLabelTexto: _angular_core.Signal<string>;
|
|
3320
|
+
/** Texto antes del link. Sin pasar: `textos.menuComandos.ayuda`; `null` lo oculta. */
|
|
3321
|
+
readonly helpText: _angular_core.InputSignal<string | null | undefined>;
|
|
3322
|
+
protected readonly helpTextTexto: _angular_core.Signal<string | null>;
|
|
2968
3323
|
/** Link de ayuda — string shorthand (solo label, emite `helpClicked`) o
|
|
2969
3324
|
* SuiLinkConfig { label, href?, target?, rel? }: con href renderiza <a> real;
|
|
2970
|
-
* rel automático 'noopener noreferrer' para _blank. null = sin link.
|
|
2971
|
-
|
|
3325
|
+
* rel automático 'noopener noreferrer' para _blank. null = sin link.
|
|
3326
|
+
* Sin pasar: `textos.menuComandos.centroAyuda`. */
|
|
3327
|
+
readonly helpLink: _angular_core.InputSignal<string | SuiLinkConfig | null | undefined>;
|
|
2972
3328
|
/** Config resuelta del link (string → { label }, rel automático). */
|
|
2973
3329
|
protected readonly helpLinkCfg: _angular_core.Signal<SuiLinkConfig | null>;
|
|
2974
3330
|
readonly helpClicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
@@ -3042,6 +3398,8 @@ declare class SuiCommandMenuFooter {
|
|
|
3042
3398
|
type SuiCommandMenuItemType = 'basic' | 'left-icon' | 'avatar' | 'brand' | 'company' | 'country';
|
|
3043
3399
|
type SuiCommandMenuItemSize = 'small' | 'medium';
|
|
3044
3400
|
declare class SuiCommandMenuItem {
|
|
3401
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
3402
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
3045
3403
|
readonly type: _angular_core.InputSignal<SuiCommandMenuItemType>;
|
|
3046
3404
|
readonly size: _angular_core.InputSignal<SuiCommandMenuItemSize>;
|
|
3047
3405
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -3073,10 +3431,18 @@ declare class SuiCommandMenuItem {
|
|
|
3073
3431
|
readonly leadingSize: _angular_core.Signal<20 | 40>;
|
|
3074
3432
|
/** Para sui-avatar, traduce a SuiAvatarSize. */
|
|
3075
3433
|
readonly avatarSize: _angular_core.Signal<"xs" | "lg">;
|
|
3434
|
+
private readonly _el;
|
|
3435
|
+
private _spacePressed;
|
|
3436
|
+
/** Solo las teclas sobre el propio item: Enter en el botón de la flecha es
|
|
3437
|
+
de ese botón, no del item. */
|
|
3438
|
+
private _esDelHost;
|
|
3439
|
+
_onEnter(event: Event): void;
|
|
3440
|
+
_onSpaceDown(event: Event): void;
|
|
3441
|
+
_onSpaceUp(event: Event): void;
|
|
3076
3442
|
onClick(event: MouseEvent): void;
|
|
3077
3443
|
onButtonClick(event: MouseEvent): void;
|
|
3078
3444
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCommandMenuItem, never>;
|
|
3079
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCommandMenuItem, "sui-command-menu-item", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "flagName": { "alias": "flagName"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "buttonClicked": "buttonClicked"; }, never, ["[slot=brand]"], true,
|
|
3445
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCommandMenuItem, "sui-command-menu-item", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "flagName": { "alias": "flagName"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "buttonClicked": "buttonClicked"; }, never, ["[slot=brand]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
3080
3446
|
}
|
|
3081
3447
|
|
|
3082
3448
|
/**
|
|
@@ -3111,8 +3477,13 @@ declare class SuiCommandMenuItem {
|
|
|
3111
3477
|
* (#335cff). El search icon en active sale naranja por override de marca.
|
|
3112
3478
|
*/
|
|
3113
3479
|
declare class SuiCommandMenuSearch {
|
|
3480
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
3481
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
3114
3482
|
readonly value: _angular_core.InputSignal<string>;
|
|
3115
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3483
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
3484
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
3485
|
+
/** Nombre accesible del campo. Sin pasarlo, el lector anuncia el placeholder. */
|
|
3486
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3116
3487
|
/** Mostrar el chip ⌘K cuando el input está vacío. */
|
|
3117
3488
|
readonly shortcut: _angular_core.InputSignal<boolean>;
|
|
3118
3489
|
/** Mostrar el botón derecho (info en default, close en active). */
|
|
@@ -3126,7 +3497,7 @@ declare class SuiCommandMenuSearch {
|
|
|
3126
3497
|
onInput(event: Event): void;
|
|
3127
3498
|
onClear(): void;
|
|
3128
3499
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCommandMenuSearch, never>;
|
|
3129
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCommandMenuSearch, "sui-command-menu-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "cleared": "cleared"; }, never, never, true, never>;
|
|
3500
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCommandMenuSearch, "sui-command-menu-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "cleared": "cleared"; }, never, never, true, never>;
|
|
3130
3501
|
}
|
|
3131
3502
|
|
|
3132
3503
|
/**
|
|
@@ -3272,7 +3643,7 @@ declare class SuiCompactButton {
|
|
|
3272
3643
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
3273
3644
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
3274
3645
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
3275
|
-
readonly type: _angular_core.InputSignal<"button" | "
|
|
3646
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
3276
3647
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3277
3648
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
3278
3649
|
readonly iconSize: _angular_core.Signal<number>;
|
|
@@ -3369,7 +3740,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3369
3740
|
readonly arrowIcon: _angular_core.Signal<"arrow-up-s-line" | "arrow-down-s-line">;
|
|
3370
3741
|
readonly displayValue: _angular_core.Signal<string>;
|
|
3371
3742
|
readonly displayFlag: _angular_core.Signal<"abkhazia" | "afghanistan" | "aland-islands" | "albania" | "algeria" | "american-samoa" | "andorra" | "angola" | "anguilla" | "antigua-and-barbuda" | "argentina" | "armenia" | "aruba" | "australia" | "austria" | "azerbaijan" | "azores-islands" | "bahamas" | "bahrain" | "balearic-islands" | "bangladesh" | "barbados" | "basque-country" | "belarus" | "belgium" | "belize" | "benin" | "bermuda" | "bhutan" | "bolivia" | "bonaire" | "bosnia-and-herzegovina" | "botswana" | "brazil" | "british-columbia" | "british-indian-ocean-territory" | "british-virgin-islands" | "brunei" | "bulgaria" | "burkina-faso" | "burundi" | "cambodia" | "cameroon" | "canada" | "canary-islands" | "cape-verde" | "cayman-islands" | "central-african-republic" | "ceuta" | "chad" | "chile" | "china" | "christmas-island" | "cocos-island" | "colombia" | "comoros" | "cook-islands" | "corsica" | "costa-rica" | "croatia" | "cuba" | "curacao" | "cyprus" | "czech-republic" | "democratic-republic-of-congo" | "denmark" | "djibouti" | "dominica" | "dominican-republic" | "east-timor" | "ecuador" | "egypt" | "el-salvador" | "england" | "equatorial-guinea" | "eritrea" | "estonia" | "ethiopia" | "european-union" | "falkland-islands" | "faroe-islands" | "fiji" | "finland" | "france" | "french-polynesia" | "gabon" | "galapagos-islands" | "gambia" | "georgia" | "germany" | "ghana" | "gibraltar" | "greece" | "greenland" | "grenada" | "guam" | "guatemala" | "guernsey" | "guinea-bissau" | "guinea" | "guyana" | "haiti" | "hawaii" | "honduras" | "hong-kong" | "hungary" | "iceland" | "india" | "indonesia" | "iran" | "iraq" | "ireland" | "isle-of-man" | "israel" | "italy" | "ivory-coast" | "jamaica" | "japan" | "jersey" | "jordan" | "kazakhstan" | "kenya" | "kiribati" | "kosovo" | "kuwait" | "kyrgyzstan" | "laos" | "latvia" | "lebanon" | "lesotho" | "liberia" | "libya" | "liechtenstein" | "lithuania" | "luxembourg" | "macao" | "madagascar" | "madeira" | "malawi" | "malaysia" | "maldives" | "mali" | "malta" | "marshall-island" | "martinique" | "mauritania" | "mauritus" | "melilla" | "mexico" | "micronesia" | "moldova" | "monaco" | "mongolia" | "montenegro" | "montserrat" | "morocco" | "mozambique" | "myanmar" | "namibia" | "nato" | "nauru" | "nepal" | "netherlands" | "new-zealand" | "nicaragua" | "niger" | "nigeria" | "niue" | "norfolk-island" | "north-korea" | "northern-cyprus" | "northern-marianas-islands" | "norway" | "oman" | "orkney-islands" | "ossetia" | "pakistan" | "palau" | "palestine" | "panama" | "papua-new-guinea" | "paraguay" | "peru" | "philippines" | "pitcairn-islands" | "poland" | "portugal" | "puerto-rico" | "qatar" | "rapa-nui" | "republic-of-macedonia" | "republic-of-the-congo" | "romania" | "russia" | "rwanda" | "saba-island" | "sahrawi-arab-democratic-republic" | "saint-kitts-and-nevis" | "samoa" | "san-marino" | "sao-tome-and-prince" | "sardinia" | "saudi-arabia" | "scotland" | "senegal" | "serbia" | "seychelles" | "sierra-leone" | "singapore" | "sint-eustatius" | "sint-maarten" | "slovakia" | "slovania" | "solomon-islands" | "somalia" | "somaliland" | "south-africa" | "south-korea" | "south-sudan" | "spain" | "sri-lanka" | "st-barts" | "st-lucia" | "st-vincent-and-the-grenadines" | "sudan" | "suriname" | "swaziland" | "sweden" | "switzerland" | "syria" | "taijikistan" | "taiwan" | "tanzania" | "thailand" | "tibet" | "togo" | "tokelau" | "tonga" | "transnistria" | "trinidad-and-tobago" | "tunisia" | "turkey" | "turkmenistan" | "turks-and-caicos" | "tuvalu" | "uganda" | "ukraine" | "united-arab-emirates" | "united-kingdom" | "united-nations" | "united-states" | "uruguay" | "uzbekistan" | "vanuatu" | "vatican-city" | "venezuela" | "vietnam" | "virgin-islands" | "wales" | "yemen" | "zambia" | "zimbabwe" | null>;
|
|
3372
|
-
readonly flagSizePx: _angular_core.Signal<
|
|
3743
|
+
readonly flagSizePx: _angular_core.Signal<16 | 20>;
|
|
3373
3744
|
onHostClick(event: Event): void;
|
|
3374
3745
|
protected onMenuOpenedChange(open: boolean): void;
|
|
3375
3746
|
protected selectItem(item: SuiCompactSelectForInputItem<T>): void;
|
|
@@ -3378,7 +3749,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3378
3749
|
registerOnTouched(fn: () => void): void;
|
|
3379
3750
|
setDisabledState(isDisabled: boolean): void;
|
|
3380
3751
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCompactSelectForInput<any>, never>;
|
|
3381
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCompactSelectForInput<any>, "sui-compact-select-for-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "country": { "alias": "country"; "required": false; "isSignal": true; }; "flag": { "alias": "flag"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "clicked": "clicked"; "selectedChange": "selectedChange"; }, never, never, true,
|
|
3752
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCompactSelectForInput<any>, "sui-compact-select-for-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "country": { "alias": "country"; "required": false; "isSignal": true; }; "flag": { "alias": "flag"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "clicked": "clicked"; "selectedChange": "selectedChange"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
3382
3753
|
}
|
|
3383
3754
|
|
|
3384
3755
|
/**
|
|
@@ -3459,7 +3830,9 @@ declare class SuiCompactSelect<T = string> implements ControlValueAccessor {
|
|
|
3459
3830
|
* Nombre accesible del trigger (fix a11y 04-10-2026). Imprescindible con
|
|
3460
3831
|
* `type="icon"`, que no muestra texto: sin esto el lector anunciaba «botón»
|
|
3461
3832
|
* sin decir qué elige. Sin `ariaLabel`, el tipo icon usa el label del ítem
|
|
3462
|
-
* elegido o el placeholder.
|
|
3833
|
+
* elegido o el placeholder. También va con `type="country"` cuando solo se
|
|
3834
|
+
* ve la bandera (sin `value` ni `placeholder`): el trigger no tiene otro
|
|
3835
|
+
* nombre que leer (axe: aria-command-name, 09-10-2026).
|
|
3463
3836
|
*/
|
|
3464
3837
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3465
3838
|
readonly clicked: _angular_core.OutputEmitterRef<Event>;
|
|
@@ -3722,6 +4095,8 @@ type SuiContentCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | '
|
|
|
3722
4095
|
área táctil de 40 (extensión SUI 03-10-2026, mobile). */
|
|
3723
4096
|
type SuiContentCardSize = 'medium' | 'large';
|
|
3724
4097
|
declare class SuiContentCard {
|
|
4098
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4099
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
3725
4100
|
/** Tipo de leading visual. */
|
|
3726
4101
|
readonly type: _angular_core.InputSignal<SuiContentCardType>;
|
|
3727
4102
|
/** Título — Label/Small 14/20, text-strong-950. */
|
|
@@ -3752,7 +4127,8 @@ declare class SuiContentCard {
|
|
|
3752
4127
|
/** Mostrar el botón X de dismiss. Default true. */
|
|
3753
4128
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
3754
4129
|
/** aria-label del botón X. */
|
|
3755
|
-
readonly dismissAriaLabel: _angular_core.InputSignal<string>;
|
|
4130
|
+
readonly dismissAriaLabel: _angular_core.InputSignal<string | null>;
|
|
4131
|
+
protected readonly dismissAriaLabelTexto: _angular_core.Signal<string>;
|
|
3756
4132
|
/**
|
|
3757
4133
|
* Tamaño de la X de quitar (la fila no cambia: sigue en 72).
|
|
3758
4134
|
* `medium` (default, Figma): 20 × 20 sin área extra.
|
|
@@ -3875,6 +4251,9 @@ interface SuiContentDividerItem {
|
|
|
3875
4251
|
* (itemClick)="onNav($event)" />
|
|
3876
4252
|
*/
|
|
3877
4253
|
declare class SuiContentDivider {
|
|
4254
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4255
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4256
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
3878
4257
|
readonly type: _angular_core.InputSignal<SuiContentDividerType>;
|
|
3879
4258
|
/** Texto para los variants text-line / text / solid-text / text-button. */
|
|
3880
4259
|
readonly text: _angular_core.InputSignal<string>;
|
|
@@ -4047,11 +4426,13 @@ type SuiCounterInputSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' |
|
|
|
4047
4426
|
* <sui-counter-input formControlName="cantidad" [min]="0" />
|
|
4048
4427
|
*/
|
|
4049
4428
|
declare class SuiCounterInput implements ControlValueAccessor {
|
|
4429
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4430
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4050
4431
|
readonly size: _angular_core.InputSignal<SuiCounterInputSize>;
|
|
4051
4432
|
/** El form-label no tiene 'large' — se capea a medium (el label no escala). */
|
|
4052
4433
|
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
4053
4434
|
/** Ícono de los botones − / +: 20 hasta large, 24 en xlarge (botón de 44). */
|
|
4054
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
4435
|
+
protected readonly iconSize: _angular_core.Signal<24 | 20>;
|
|
4055
4436
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
4056
4437
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
4057
4438
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -4066,8 +4447,10 @@ declare class SuiCounterInput implements ControlValueAccessor {
|
|
|
4066
4447
|
readonly step: _angular_core.InputSignal<number>;
|
|
4067
4448
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
4068
4449
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
4069
|
-
readonly decrementLabel: _angular_core.InputSignal<string>;
|
|
4070
|
-
readonly
|
|
4450
|
+
readonly decrementLabel: _angular_core.InputSignal<string | null>;
|
|
4451
|
+
protected readonly decrementLabelTexto: _angular_core.Signal<string>;
|
|
4452
|
+
readonly incrementLabel: _angular_core.InputSignal<string | null>;
|
|
4453
|
+
protected readonly incrementLabelTexto: _angular_core.Signal<string>;
|
|
4071
4454
|
/** a11y (04-10-2026): el spinbutton toma su nombre del label visible
|
|
4072
4455
|
* (aria-labelledby) salvo que se pase `ariaLabel`, y se describe con el hint. */
|
|
4073
4456
|
protected readonly _labelId: string;
|
|
@@ -4145,6 +4528,8 @@ type SuiDateSelectorSize = 'medium' | 'large';
|
|
|
4145
4528
|
* <sui-date-selector label="Enero 2025" [leftIcon]="false" [rightIcon]="false" />
|
|
4146
4529
|
*/
|
|
4147
4530
|
declare class SuiDateSelector {
|
|
4531
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4532
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4148
4533
|
/** Texto del label (ej. "Enero 2025", "January 2024"). */
|
|
4149
4534
|
readonly label: _angular_core.InputSignal<string>;
|
|
4150
4535
|
/** Mostrar arrow izquierdo (prev). Default true. */
|
|
@@ -4311,6 +4696,8 @@ interface CalendarRow {
|
|
|
4311
4696
|
* - Inline: pasar [inline]="true" para renderear el calendar SIN trigger
|
|
4312
4697
|
*/
|
|
4313
4698
|
declare class SuiDatepicker implements ControlValueAccessor {
|
|
4699
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4700
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4314
4701
|
private readonly hostEl;
|
|
4315
4702
|
private readonly destroyRef;
|
|
4316
4703
|
readonly mode: _angular_core.InputSignal<SuiDatepickerMode>;
|
|
@@ -4379,7 +4766,7 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4379
4766
|
* `large` (44) solo con el campo xlarge — canon del dueño 04-10-2026, piso
|
|
4380
4767
|
* táctil de 44. Con el resto de sizes, las piezas de siempre (medium).
|
|
4381
4768
|
*/
|
|
4382
|
-
readonly partSize: _angular_core.Signal<"
|
|
4769
|
+
readonly partSize: _angular_core.Signal<"large" | "medium">;
|
|
4383
4770
|
readonly effectiveCalendars: _angular_core.Signal<SuiDatepickerCalendars>;
|
|
4384
4771
|
private _onChange;
|
|
4385
4772
|
private _onTouched;
|
|
@@ -4411,7 +4798,7 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4411
4798
|
/** ¿El trigger muestra un valor (no el placeholder)? Pinta el texto oscuro. */
|
|
4412
4799
|
readonly hasDisplayValue: _angular_core.Signal<boolean>;
|
|
4413
4800
|
/** Nombre del panel para el lector de pantalla (role dialog / group). */
|
|
4414
|
-
readonly panelAriaLabel: _angular_core.Signal<
|
|
4801
|
+
readonly panelAriaLabel: _angular_core.Signal<string>;
|
|
4415
4802
|
/** «martes 7 de octubre de 2026» para cada celda (antes «Día 7»). */
|
|
4416
4803
|
cellAriaLabel(cell: CalendarCell): string;
|
|
4417
4804
|
/** a11y (04-10-2026): flechas dentro de la grilla mueven el foco entre los
|
|
@@ -4507,6 +4894,8 @@ type SuiDayCellSize = 'medium' | 'large';
|
|
|
4507
4894
|
* <sui-day-cell day="14" [disabled]="true" />
|
|
4508
4895
|
*/
|
|
4509
4896
|
declare class SuiDayCell {
|
|
4897
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
4898
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4510
4899
|
/** Número del día (1-31). Se acepta string para flexibilidad. */
|
|
4511
4900
|
readonly day: _angular_core.InputSignal<string | number>;
|
|
4512
4901
|
/** Type=Basic (default) o Range (entre extremos / extremo del range). */
|
|
@@ -4649,17 +5038,28 @@ type SuiDrawerFooterSize = 'medium' | 'large';
|
|
|
4649
5038
|
* />
|
|
4650
5039
|
*/
|
|
4651
5040
|
declare class SuiDrawerFooter {
|
|
5041
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
5042
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
5043
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
5044
|
+
private static _nextId;
|
|
5045
|
+
/** El texto del checkbox / switch nombra al control vía aria-labelledby: el
|
|
5046
|
+
* <label> nativo no nombra a un host con role=checkbox/switch (a11y
|
|
5047
|
+
* 09-10-2026). */
|
|
5048
|
+
private readonly uid;
|
|
5049
|
+
protected readonly checkboxLabelId: string;
|
|
5050
|
+
protected readonly toggleLabelId: string;
|
|
4652
5051
|
readonly type: _angular_core.InputSignal<SuiDrawerFooterType>;
|
|
4653
5052
|
/** Botones del pie: `medium` 40 (default) · `large` 48 para el teléfono
|
|
4654
5053
|
* (04-10-2026, piso táctil 44). */
|
|
4655
5054
|
readonly size: _angular_core.InputSignal<SuiDrawerFooterSize>;
|
|
4656
5055
|
/** Botón primario (filled primary-base) — string shorthand (solo label) o
|
|
4657
5056
|
* SuiFooterButtonConfig { label, disabled? }. Interfaz compartida con
|
|
4658
|
-
* sui-filter-panel-footer. */
|
|
4659
|
-
readonly primaryButton: _angular_core.InputSignal<string | SuiFooterButtonConfig>;
|
|
5057
|
+
* sui-filter-panel-footer. Sin pasar: `textos.comun.continuar`. */
|
|
5058
|
+
readonly primaryButton: _angular_core.InputSignal<string | SuiFooterButtonConfig | null>;
|
|
4660
5059
|
/** Botón secundario (stroke neutral) — string shorthand o
|
|
4661
|
-
* SuiFooterButtonConfig. null (o label vacío) = ocultar.
|
|
4662
|
-
|
|
5060
|
+
* SuiFooterButtonConfig. null (o label vacío) = ocultar. Sin pasar:
|
|
5061
|
+
* `textos.comun.cancelar`. */
|
|
5062
|
+
readonly secondaryButton: _angular_core.InputSignal<string | SuiFooterButtonConfig | null | undefined>;
|
|
4663
5063
|
/** Config resuelta del botón primario (string → { label }). */
|
|
4664
5064
|
protected readonly primaryCfg: _angular_core.Signal<SuiFooterButtonConfig>;
|
|
4665
5065
|
/** Config resuelta del botón secundario (string → { label }; null/label vacío
|
|
@@ -4781,6 +5181,8 @@ type SuiDrawerHeaderSize = 'small' | 'large' | 'xlarge';
|
|
|
4781
5181
|
* />
|
|
4782
5182
|
*/
|
|
4783
5183
|
declare class SuiDrawerHeader {
|
|
5184
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
5185
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
4784
5186
|
readonly type: _angular_core.InputSignal<SuiDrawerHeaderType>;
|
|
4785
5187
|
readonly size: _angular_core.InputSignal<SuiDrawerHeaderSize>;
|
|
4786
5188
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -4816,7 +5218,8 @@ declare class SuiDrawerHeader {
|
|
|
4816
5218
|
/** Muestra divider 1px al fondo del header. Default false. */
|
|
4817
5219
|
readonly showDivider: _angular_core.InputSignal<boolean>;
|
|
4818
5220
|
/** aria-label del close button. */
|
|
4819
|
-
readonly dismissAriaLabel: _angular_core.InputSignal<string>;
|
|
5221
|
+
readonly dismissAriaLabel: _angular_core.InputSignal<string | null>;
|
|
5222
|
+
protected readonly dismissAriaLabelTexto: _angular_core.Signal<string>;
|
|
4820
5223
|
/** Click en el close button. */
|
|
4821
5224
|
readonly dismiss: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
4822
5225
|
/** Click en el Link Button inline (solo cuando `link` está set). */
|
|
@@ -4988,7 +5391,7 @@ declare class SuiDropdownItem {
|
|
|
4988
5391
|
readonly showCheck: _angular_core.Signal<boolean>;
|
|
4989
5392
|
onClick(event: Event): void;
|
|
4990
5393
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiDropdownItem, never>;
|
|
4991
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDropdownItem, "sui-dropdown-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "leadingFramed": { "alias": "leadingFramed"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "highlighted": { "alias": "highlighted"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["[slot=leading]", "[slot=trailing]"], true,
|
|
5394
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDropdownItem, "sui-dropdown-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "leadingFramed": { "alias": "leadingFramed"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "highlighted": { "alias": "highlighted"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["[slot=leading]", "[slot=trailing]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
4992
5395
|
}
|
|
4993
5396
|
|
|
4994
5397
|
/**
|
|
@@ -5033,6 +5436,16 @@ declare class SuiDropdownItem {
|
|
|
5033
5436
|
* - panelClass: sui-dropdown-menu__overlay-pane (estilos globales en
|
|
5034
5437
|
* src/styles/_sui-dropdown-menu-overlay.scss)
|
|
5035
5438
|
*
|
|
5439
|
+
* Accesibilidad (fix a11y 09-10-2026):
|
|
5440
|
+
* - `aria-haspopup` + `aria-expanded` van en el CONTROL proyectado como
|
|
5441
|
+
* trigger (el `<button>`, el host de `sui-button` con role=button, el
|
|
5442
|
+
* `<button>` interno de `sui-compact-button`), no en el span wrapper:
|
|
5443
|
+
* el span es genérico, no recibe foco y axe rechaza `aria-expanded` ahí.
|
|
5444
|
+
* - Sin `[origin]` y con `popupRole="menu"`, el pane del overlay lleva
|
|
5445
|
+
* `role="menu"` — los `sui-dropdown-item` (role=menuitem) necesitan ese
|
|
5446
|
+
* padre. Con `[origin]` no se toca: select / pickers traen su propio
|
|
5447
|
+
* `listbox` / `dialog` dentro del panel.
|
|
5448
|
+
*
|
|
5036
5449
|
* Estilos del panel viven en `src/styles/_sui-dropdown-menu-overlay.scss`
|
|
5037
5450
|
* (global, porque CDK Overlay monta el panel fuera del shadow del component).
|
|
5038
5451
|
*/
|
|
@@ -5049,7 +5462,7 @@ type SuiDropdownMenuPosition = 'auto' | 'below' | 'above';
|
|
|
5049
5462
|
* 'listbox' solo es válido cuando los hijos son option, no menuitem.
|
|
5050
5463
|
*/
|
|
5051
5464
|
type SuiDropdownMenuPopupRole = 'menu' | 'listbox' | 'true';
|
|
5052
|
-
declare class SuiDropdownMenu {
|
|
5465
|
+
declare class SuiDropdownMenu implements AfterViewInit, OnChanges {
|
|
5053
5466
|
/** Si true, el panel matchea el ancho del trigger. Default: auto width. */
|
|
5054
5467
|
readonly matchWidth: _angular_core.InputSignal<boolean>;
|
|
5055
5468
|
/** Estrategia ante espacio insuficiente. Default (true): el pane se ENCOGE
|
|
@@ -5079,6 +5492,11 @@ declare class SuiDropdownMenu {
|
|
|
5079
5492
|
* proyectados llevan role="menuitem"). Los consumers de tipo listbox
|
|
5080
5493
|
* (sui-select / compact-selects, items con role="option") DEBEN pasar
|
|
5081
5494
|
* `popupRole="listbox"`. Ver SuiDropdownMenuPopupRole.
|
|
5495
|
+
*
|
|
5496
|
+
* Con 'menu' (y sin `[origin]`) el pane del overlay recibe `role="menu"`.
|
|
5497
|
+
* Un panel que mezcla items con un buscador u otros controles no es un
|
|
5498
|
+
* menú ARIA válido: ahí va `popupRole="true"` y el consumer envuelve sus
|
|
5499
|
+
* items en un contenedor propio con `role="menu"`.
|
|
5082
5500
|
*/
|
|
5083
5501
|
readonly popupRole: _angular_core.InputSignal<SuiDropdownMenuPopupRole>;
|
|
5084
5502
|
/**
|
|
@@ -5102,6 +5520,16 @@ declare class SuiDropdownMenu {
|
|
|
5102
5520
|
private _overlaySubs;
|
|
5103
5521
|
private _resizeObserver;
|
|
5104
5522
|
constructor();
|
|
5523
|
+
ngAfterViewInit(): void;
|
|
5524
|
+
ngOnChanges(): void;
|
|
5525
|
+
/** Control proyectado como trigger: un botón o enlace (nativo o con
|
|
5526
|
+
* role=button). Se busca en cada llamada (barato) para tolerar triggers que
|
|
5527
|
+
* pintan su `<button>` interno tarde. Sin fallback a un elemento genérico
|
|
5528
|
+
* (ni a un `[tabindex]` sin rol): ponerle `aria-expanded` a algo sin rol es
|
|
5529
|
+
* justo la falla que se arregla acá. */
|
|
5530
|
+
private _getTriggerControl;
|
|
5531
|
+
/** Espeja `popupRole` e `isOpen` en el control proyectado. */
|
|
5532
|
+
private _syncTriggerAria;
|
|
5105
5533
|
onTriggerClick(event: MouseEvent): void;
|
|
5106
5534
|
onTriggerKeydown(event: KeyboardEvent): void;
|
|
5107
5535
|
toggle(): void;
|
|
@@ -5155,7 +5583,7 @@ declare class SuiDropdownPanel {
|
|
|
5155
5583
|
*
|
|
5156
5584
|
* Default:
|
|
5157
5585
|
* search icon 20×20 leading, color text-soft-400
|
|
5158
|
-
* placeholder
|
|
5586
|
+
* placeholder «Buscar…» color text-soft-400 (16 px en ≤767 por el zoom de iOS)
|
|
5159
5587
|
*
|
|
5160
5588
|
* Active (con valor escrito):
|
|
5161
5589
|
* search icon: icon-sub-600 (oscurece vs el soft-400 de Default)
|
|
@@ -5168,9 +5596,14 @@ declare class SuiDropdownPanel {
|
|
|
5168
5596
|
* <sui-dropdown-search [(value)]="query" placeholder="Buscar país..." (cleared)="onClear()" />
|
|
5169
5597
|
*/
|
|
5170
5598
|
declare class SuiDropdownSearch {
|
|
5599
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
5600
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
5171
5601
|
readonly value: _angular_core.ModelSignal<string>;
|
|
5172
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
5602
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
5603
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
5173
5604
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5605
|
+
/** Nombre accesible del campo. Sin pasarlo, el lector anuncia el placeholder. */
|
|
5606
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
5174
5607
|
/** Fired cuando el user clickea el icono de clear (X). */
|
|
5175
5608
|
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
5176
5609
|
/** Fired en cada input change (igual que value() pero con event). */
|
|
@@ -5179,7 +5612,7 @@ declare class SuiDropdownSearch {
|
|
|
5179
5612
|
onInput(event: Event): void;
|
|
5180
5613
|
onClear(event: MouseEvent): void;
|
|
5181
5614
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiDropdownSearch, never>;
|
|
5182
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDropdownSearch, "sui-dropdown-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "cleared": "cleared"; "valueChanged": "valueChanged"; }, never, never, true, never>;
|
|
5615
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDropdownSearch, "sui-dropdown-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "cleared": "cleared"; "valueChanged": "valueChanged"; }, never, never, true, never>;
|
|
5183
5616
|
}
|
|
5184
5617
|
|
|
5185
5618
|
/**
|
|
@@ -5251,7 +5684,7 @@ type SuiEmojiName = keyof typeof SUI_EMOJI_MAP;
|
|
|
5251
5684
|
type SuiEmojiSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
5252
5685
|
declare class SuiEmoji {
|
|
5253
5686
|
/** Nombre del emoji del catálogo. Si se provee `src`, este se ignora. */
|
|
5254
|
-
readonly name: _angular_core.InputSignal<"
|
|
5687
|
+
readonly name: _angular_core.InputSignal<"warning" | "label" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
5255
5688
|
/** URL directa al emoji (override del catálogo). Útil para usar emojis fuera del map. */
|
|
5256
5689
|
readonly src: _angular_core.InputSignal<string | null>;
|
|
5257
5690
|
/** Tamaño del emoji. */
|
|
@@ -5486,7 +5919,7 @@ declare class SuiFancyButton {
|
|
|
5486
5919
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
5487
5920
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
5488
5921
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
5489
|
-
readonly htmlType: _angular_core.InputSignal<"button" | "
|
|
5922
|
+
readonly htmlType: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
5490
5923
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
5491
5924
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
5492
5925
|
readonly iconSize: _angular_core.Signal<number>;
|
|
@@ -5570,6 +6003,9 @@ type SuiFileIconColor = 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue'
|
|
|
5570
6003
|
* auto-detect from extension. Defaults to gray for unknown types.
|
|
5571
6004
|
*/
|
|
5572
6005
|
declare class SuiFileIcon {
|
|
6006
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6007
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6008
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
5573
6009
|
readonly filename: _angular_core.InputSignal<string>;
|
|
5574
6010
|
readonly extension: _angular_core.InputSignal<string>;
|
|
5575
6011
|
readonly size: _angular_core.InputSignal<SuiFileIconSize>;
|
|
@@ -5693,6 +6129,8 @@ interface SuiFileUploadCardFile {
|
|
|
5693
6129
|
* - retryClicked: click en "Try Again" (solo state==='error')
|
|
5694
6130
|
*/
|
|
5695
6131
|
declare class SuiFileUploadCard {
|
|
6132
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6133
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
5696
6134
|
/** Archivo mostrado — string shorthand (= filename) o { filename, extension? }. */
|
|
5697
6135
|
readonly file: _angular_core.InputSignal<string | SuiFileUploadCardFile>;
|
|
5698
6136
|
/** Config resuelta del archivo (string → { filename }). */
|
|
@@ -5703,10 +6141,14 @@ declare class SuiFileUploadCard {
|
|
|
5703
6141
|
readonly statusText: _angular_core.InputSignal<string | null>;
|
|
5704
6142
|
readonly showStatus: _angular_core.InputSignal<boolean>;
|
|
5705
6143
|
/** Textos para el lector de pantalla (antes fijos en inglés). */
|
|
5706
|
-
readonly cancelLabel: _angular_core.InputSignal<string>;
|
|
5707
|
-
readonly
|
|
5708
|
-
readonly
|
|
5709
|
-
readonly
|
|
6144
|
+
readonly cancelLabel: _angular_core.InputSignal<string | null>;
|
|
6145
|
+
protected readonly cancelLabelTexto: _angular_core.Signal<string>;
|
|
6146
|
+
readonly removeLabel: _angular_core.InputSignal<string | null>;
|
|
6147
|
+
protected readonly removeLabelTexto: _angular_core.Signal<string>;
|
|
6148
|
+
readonly progressLabel: _angular_core.InputSignal<string | null>;
|
|
6149
|
+
protected readonly progressLabelTexto: _angular_core.Signal<string>;
|
|
6150
|
+
readonly retryLabel: _angular_core.InputSignal<string | null>;
|
|
6151
|
+
protected readonly retryLabelTexto: _angular_core.Signal<string>;
|
|
5710
6152
|
readonly actionClicked: _angular_core.OutputEmitterRef<void>;
|
|
5711
6153
|
readonly retryClicked: _angular_core.OutputEmitterRef<void>;
|
|
5712
6154
|
/** Default status text por state — override-able vía input. */
|
|
@@ -5794,12 +6236,15 @@ type SuiFileUploadSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
5794
6236
|
* - errorEvent: emite string con el motivo del rechazo si falla validación.
|
|
5795
6237
|
*/
|
|
5796
6238
|
declare class SuiFileUpload {
|
|
6239
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6240
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
5797
6241
|
readonly accept: _angular_core.InputSignal<string>;
|
|
5798
6242
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
5799
6243
|
readonly maxSize: _angular_core.InputSignal<number>;
|
|
5800
6244
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
5801
6245
|
readonly subtitle: _angular_core.InputSignal<string | null>;
|
|
5802
|
-
readonly browseLabel: _angular_core.InputSignal<string>;
|
|
6246
|
+
readonly browseLabel: _angular_core.InputSignal<string | null>;
|
|
6247
|
+
protected readonly browseLabelTexto: _angular_core.Signal<string>;
|
|
5803
6248
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5804
6249
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
5805
6250
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
@@ -5815,7 +6260,7 @@ declare class SuiFileUpload {
|
|
|
5815
6260
|
protected readonly resolvedErrorMessage: _angular_core.Signal<string | null>;
|
|
5816
6261
|
/** Icon size px. Figma verified = 24 (medium). small/large/xlarge escalan +4
|
|
5817
6262
|
* (small 20 → medium 24 → large 28 → xlarge 32) — extensión de proyecto. */
|
|
5818
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
6263
|
+
protected readonly iconSize: _angular_core.Signal<24 | 20 | 32 | 28>;
|
|
5819
6264
|
onClick(): void;
|
|
5820
6265
|
/** Browse File button — abre el picker. stopPropagation evita doble-open
|
|
5821
6266
|
* (el host también es clickeable). */
|
|
@@ -5948,7 +6393,7 @@ declare class SuiFilterItem {
|
|
|
5948
6393
|
readonly state: _angular_core.Signal<SuiFilterItemState>;
|
|
5949
6394
|
onClick(event: Event): void;
|
|
5950
6395
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiFilterItem, never>;
|
|
5951
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiFilterItem, "sui-filter-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "activeIcon": { "alias": "activeIcon"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true,
|
|
6396
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiFilterItem, "sui-filter-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "activeIcon": { "alias": "activeIcon"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
5952
6397
|
}
|
|
5953
6398
|
|
|
5954
6399
|
/**
|
|
@@ -5959,7 +6404,7 @@ declare class SuiFilterItem {
|
|
|
5959
6404
|
* leftIcon(on | off) × linkButton(on | off) = 4 combos
|
|
5960
6405
|
*
|
|
5961
6406
|
* Header del panel de filtros vertical. Slot izquierdo opcional (icono), label
|
|
5962
|
-
* en negrita al centro/izquierda, y un link
|
|
6407
|
+
* en negrita al centro/izquierda, y un link «Limpiar» opcional a la derecha.
|
|
5963
6408
|
*
|
|
5964
6409
|
* EXACT (pulled from audit reports.json → name="Filters"):
|
|
5965
6410
|
* Container px-20 py-16, border-bottom stroke/soft-200, w-400px
|
|
@@ -5986,10 +6431,12 @@ declare class SuiFilterItem {
|
|
|
5986
6431
|
* (clearClick)="onClear()" />
|
|
5987
6432
|
*/
|
|
5988
6433
|
declare class SuiFilterPanelHeader {
|
|
6434
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6435
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
5989
6436
|
readonly label: _angular_core.InputSignal<string>;
|
|
5990
6437
|
/** Icono opcional a la izquierda del label (20×20). */
|
|
5991
6438
|
readonly leftIcon: _angular_core.InputSignal<string | null>;
|
|
5992
|
-
/** Link de limpieza a la derecha: `true` = label default '
|
|
6439
|
+
/** Link de limpieza a la derecha: `true` = label default 'Limpiar', string =
|
|
5993
6440
|
* label custom, `false` (default) = oculto. */
|
|
5994
6441
|
readonly clear: _angular_core.InputSignal<string | boolean>;
|
|
5995
6442
|
/** Label resuelto del link (null = oculto). */
|
|
@@ -6009,12 +6456,14 @@ declare class SuiFilterPanelHeader {
|
|
|
6009
6456
|
* Type(Buttons) = 1 combo
|
|
6010
6457
|
*
|
|
6011
6458
|
* Footer del panel de filtros vertical: dos botones full-width lado a lado —
|
|
6012
|
-
*
|
|
6459
|
+
* «Limpiar» (stroke, bg/white-0 + border) y «Aplicar» (filled primary).
|
|
6013
6460
|
*
|
|
6014
6461
|
* EXACT (verificado vía Figma MCP — node 4415:863 / outer 4415:858,
|
|
6015
6462
|
* Actions wrapper 4415:857):
|
|
6016
6463
|
* Container px-20 py-16, border-top stroke/soft-200, overflow-clip,
|
|
6017
|
-
* w-472px (aquí fluido al 100%), gap 16px entre botones
|
|
6464
|
+
* w-472px (aquí fluido al 100%), gap 16px entre botones en
|
|
6465
|
+
* Figma → 12 aquí (canon de la app: sui-modal-footer legisla
|
|
6466
|
+
* todos los grupos de botones, gap 12; 19-10-2026)
|
|
6018
6467
|
* Clear button bg-white + border stroke/soft-200, p-8px, radius-8,
|
|
6019
6468
|
* text/sub-600 → sui-button variant="stroke" color="neutral" size="small"
|
|
6020
6469
|
* Apply button bg primary-base, text static-white, p-8px, radius-8
|
|
@@ -6024,7 +6473,7 @@ declare class SuiFilterPanelHeader {
|
|
|
6024
6473
|
* Token map (Figma → sui-tokens.scss):
|
|
6025
6474
|
* px-20 py-16 → 16px 20px
|
|
6026
6475
|
* border-top → 1px solid --sui-stroke-soft-200
|
|
6027
|
-
* gap (Actions) →
|
|
6476
|
+
* gap (Actions) → 12px (Figma dice 16; manda el canon de sui-modal-footer)
|
|
6028
6477
|
* primary-base → --sui-primary-base (via sui-button filled primary)
|
|
6029
6478
|
* button p-8/r-8 → sui-button size="small" (height 36, padding 8, radius 8)
|
|
6030
6479
|
*
|
|
@@ -6038,14 +6487,19 @@ declare class SuiFilterPanelHeader {
|
|
|
6038
6487
|
* (apply)="onApply()" />
|
|
6039
6488
|
*/
|
|
6040
6489
|
declare class SuiFilterPanelFooter {
|
|
6490
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6491
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6041
6492
|
/** Botón "Clear" (stroke neutral) — string shorthand (solo label) o
|
|
6042
6493
|
* SuiFooterButtonConfig { label, disabled? }. Interfaz compartida con
|
|
6043
|
-
* sui-drawer-footer. */
|
|
6044
|
-
readonly clearButton: _angular_core.InputSignal<string | SuiFooterButtonConfig>;
|
|
6045
|
-
/** Botón "Apply" (filled primary) — string shorthand o SuiFooterButtonConfig.
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6494
|
+
* sui-drawer-footer. Sin pasar: `textos.filtro.limpiar`. */
|
|
6495
|
+
readonly clearButton: _angular_core.InputSignal<string | SuiFooterButtonConfig | null>;
|
|
6496
|
+
/** Botón "Apply" (filled primary) — string shorthand o SuiFooterButtonConfig.
|
|
6497
|
+
* Sin pasar: `textos.filtro.aplicar`. */
|
|
6498
|
+
readonly applyButton: _angular_core.InputSignal<string | SuiFooterButtonConfig | null>;
|
|
6499
|
+
/** Tamaño de los botones. Default 'medium' (40, la computadora; D16: nada
|
|
6500
|
+
* en small). 'large' (48) para el teléfono y la tablet táctil (piso de 44).
|
|
6501
|
+
* 'small' (36, el que dibuja Figma) queda por compatibilidad. */
|
|
6502
|
+
readonly size: _angular_core.InputSignal<"small" | "large" | "medium">;
|
|
6049
6503
|
/** Config resuelta del botón Clear (string → { label }). */
|
|
6050
6504
|
protected readonly clearCfg: _angular_core.Signal<SuiFooterButtonConfig>;
|
|
6051
6505
|
/** Config resuelta del botón Apply (string → { label }). */
|
|
@@ -6288,10 +6742,14 @@ interface SuiImageUploadProfileLabels {
|
|
|
6288
6742
|
* el consumer cablea (upload)/(change) a su propio <input type=file> o flujo.
|
|
6289
6743
|
*/
|
|
6290
6744
|
declare class SuiImageUploadProfile implements ControlValueAccessor {
|
|
6745
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6746
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6291
6747
|
readonly imageUrl: _angular_core.InputSignal<string | null>;
|
|
6292
6748
|
readonly companyLogoSrc: _angular_core.InputSignal<string | null>;
|
|
6293
|
-
readonly title: _angular_core.InputSignal<string>;
|
|
6294
|
-
readonly
|
|
6749
|
+
readonly title: _angular_core.InputSignal<string | null>;
|
|
6750
|
+
protected readonly titleTexto: _angular_core.Signal<string>;
|
|
6751
|
+
readonly subtitle: _angular_core.InputSignal<string | null>;
|
|
6752
|
+
protected readonly subtitleTexto: _angular_core.Signal<string>;
|
|
6295
6753
|
readonly alignment: _angular_core.InputSignal<SuiImageUploadProfileAlignment>;
|
|
6296
6754
|
readonly type: _angular_core.InputSignal<SuiImageUploadProfileType>;
|
|
6297
6755
|
/** Copy de los botones (i18n) — objeto parcial; lo no seteado cae al default. */
|
|
@@ -6428,6 +6886,8 @@ declare function esImagenAceptada(file: Pick<File, 'type' | 'name'>): boolean;
|
|
|
6428
6886
|
* - errorEvent: mensaje de error de validación
|
|
6429
6887
|
*/
|
|
6430
6888
|
declare class SuiImageUpload {
|
|
6889
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
6890
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6431
6891
|
/**
|
|
6432
6892
|
* Ocupa el ancho del contenedor en vez del cuadrado fijo de `size`.
|
|
6433
6893
|
*
|
|
@@ -6461,9 +6921,9 @@ declare class SuiImageUpload {
|
|
|
6461
6921
|
protected readonly sizePx: _angular_core.Signal<number>;
|
|
6462
6922
|
/** Camera icon px en el empty state. xl escala a 20, resto 16
|
|
6463
6923
|
* (matchea el escalado del contenedor 32→40 en SCSS). */
|
|
6464
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
6924
|
+
protected readonly iconSize: _angular_core.Signal<16 | 20>;
|
|
6465
6925
|
/** Ícono del lápiz y el tacho (editable): 20 en botones de 40, 16 en sm (32). */
|
|
6466
|
-
protected readonly ctrlIconSize: _angular_core.Signal<
|
|
6926
|
+
protected readonly ctrlIconSize: _angular_core.Signal<16 | 20>;
|
|
6467
6927
|
protected readonly hasSrc: _angular_core.Signal<boolean>;
|
|
6468
6928
|
/** Hay imagen y se muestra el botón «Quitar» debajo (sin `editable`). */
|
|
6469
6929
|
protected readonly conQuitar: _angular_core.Signal<boolean>;
|
|
@@ -6498,7 +6958,7 @@ declare class SuiImageUpload {
|
|
|
6498
6958
|
private processFile;
|
|
6499
6959
|
private formatBytes;
|
|
6500
6960
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiImageUpload, never>;
|
|
6501
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiImageUpload, "sui-image-upload", never, { "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; }, { "src": "srcChange"; "imageSelected": "imageSelected"; "removed": "removed"; "editRequested": "editRequested"; "errorEvent": "errorEvent"; }, never, never, true,
|
|
6961
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiImageUpload, "sui-image-upload", never, { "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; }, { "src": "srcChange"; "imageSelected": "imageSelected"; "removed": "removed"; "editRequested": "editRequested"; "errorEvent": "errorEvent"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
6502
6962
|
}
|
|
6503
6963
|
|
|
6504
6964
|
/**
|
|
@@ -6574,10 +7034,13 @@ declare class SuiImageUpload {
|
|
|
6574
7034
|
* No se modeló como prop; el render lo cubre el value().
|
|
6575
7035
|
*/
|
|
6576
7036
|
declare class SuiInlineInput implements ControlValueAccessor {
|
|
7037
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
7038
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6577
7039
|
/** Valor del input (two-way bindable + CVA). */
|
|
6578
7040
|
readonly value: _angular_core.ModelSignal<string>;
|
|
6579
7041
|
/** Placeholder mostrado cuando value está vacío. */
|
|
6580
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
7042
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
7043
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
6581
7044
|
/**
|
|
6582
7045
|
* Leading icon (RemixIcon name). `false` lo oculta. Default 'user-3-line'
|
|
6583
7046
|
* (espeja el símbolo Figma).
|
|
@@ -6588,7 +7051,8 @@ declare class SuiInlineInput implements ControlValueAccessor {
|
|
|
6588
7051
|
/** Deshabilita la interacción. */
|
|
6589
7052
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
6590
7053
|
/** Texto del botón "editar" para a11y (aria-label). */
|
|
6591
|
-
readonly editLabel: _angular_core.InputSignal<string>;
|
|
7054
|
+
readonly editLabel: _angular_core.InputSignal<string | null>;
|
|
7055
|
+
protected readonly editLabelTexto: _angular_core.Signal<string>;
|
|
6592
7056
|
/** Emite el valor confirmado (botón check / Enter). */
|
|
6593
7057
|
readonly confirm: _angular_core.OutputEmitterRef<string>;
|
|
6594
7058
|
/** Emite cuando se cancela la edición (botón close / Escape). */
|
|
@@ -6685,7 +7149,7 @@ declare class SuiInlineSelect<T = string> implements ControlValueAccessor {
|
|
|
6685
7149
|
registerOnTouched(fn: () => void): void;
|
|
6686
7150
|
setDisabledState(isDisabled: boolean): void;
|
|
6687
7151
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiInlineSelect<any>, never>;
|
|
6688
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiInlineSelect<any>, "sui-inline-select", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "flag": { "alias": "flag"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "clicked": "clicked"; "selectedChange": "selectedChange"; }, never, never, true,
|
|
7152
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiInlineSelect<any>, "sui-inline-select", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "flag": { "alias": "flag"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "clicked": "clicked"; "selectedChange": "selectedChange"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
6689
7153
|
}
|
|
6690
7154
|
|
|
6691
7155
|
/**
|
|
@@ -6715,6 +7179,8 @@ type SuiInputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' |
|
|
|
6715
7179
|
*/
|
|
6716
7180
|
type SuiInputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
|
|
6717
7181
|
declare class SuiInput implements ControlValueAccessor {
|
|
7182
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
7183
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
6718
7184
|
readonly size: _angular_core.InputSignal<SuiInputSize>;
|
|
6719
7185
|
readonly type: _angular_core.InputSignal<SuiInputType>;
|
|
6720
7186
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -6823,7 +7289,7 @@ declare class SuiInput implements ControlValueAccessor {
|
|
|
6823
7289
|
readonly showClear: _angular_core.InputSignal<boolean>;
|
|
6824
7290
|
/** Remix icon name for built-in icon slot */
|
|
6825
7291
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
6826
|
-
readonly iconPosition: _angular_core.InputSignal<"
|
|
7292
|
+
readonly iconPosition: _angular_core.InputSignal<"right" | "left">;
|
|
6827
7293
|
/**
|
|
6828
7294
|
* Cuando un pointerdown ocurre fuera del host del componente, hace blur en
|
|
6829
7295
|
* el input — cierra el teclado iOS al tocar zonas no-interactivas. Default
|
|
@@ -7092,6 +7558,8 @@ interface SuiIntegrationManageConfig {
|
|
|
7092
7558
|
* <sui-integration-switch title="..." [manage]="false" />
|
|
7093
7559
|
*/
|
|
7094
7560
|
declare class SuiIntegrationSwitch implements ControlValueAccessor {
|
|
7561
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
7562
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
7095
7563
|
private static _nextId;
|
|
7096
7564
|
/** El sui-switch interno toma su nombre del título (aria-labelledby) y su
|
|
7097
7565
|
* descripción de la descripción: antes el lector decía solo «interruptor»
|
|
@@ -7515,6 +7983,10 @@ declare class SuiModalSheet implements OnDestroy {
|
|
|
7515
7983
|
excede un threshold y la condición de scroll lo permite. Sirve para no
|
|
7516
7984
|
robar tap/click a buttons internos. */
|
|
7517
7985
|
private bodyDragArmed;
|
|
7986
|
+
/** Dónde nació el gesto (pointerdown / touchstart): de ahí se buscan las
|
|
7987
|
+
listas con scroll propio que tiene el contenido (ver scrollersDe). */
|
|
7988
|
+
private bodyDragTarget;
|
|
7989
|
+
private touchTarget;
|
|
7518
7990
|
/** Threshold de movimiento (px) para decidir que un pointermove en body es
|
|
7519
7991
|
drag (no tap). 5px = más sensible que el iOS canon de 8px: el dueño pidió
|
|
7520
7992
|
"como nativo" y el 8 sentía que tardaba en activar. Trade-off: 5px puede
|
|
@@ -7598,6 +8070,11 @@ declare class SuiModalSheet implements OnDestroy {
|
|
|
7598
8070
|
/** Heurística: ignorar drag si el target es un input/textarea/select/button
|
|
7599
8071
|
interactivo. El user está intentando interactuar, no arrastrar. */
|
|
7600
8072
|
private shouldIgnoreBodyDrag;
|
|
8073
|
+
/** Lo que scrollea bajo un gesto que nace en `target`: cada ancestro con
|
|
8074
|
+
`overflow-y` auto/scroll y contenido de sobra (o ya scrolleado), desde
|
|
8075
|
+
el dedo hasta el body (sin incluirlo), más el body si desborda. Vacío =
|
|
8076
|
+
nada scrollea. */
|
|
8077
|
+
private scrollersDe;
|
|
7601
8078
|
/** Duración del snap en función de la distancia restante y la velocidad del
|
|
7602
8079
|
dedo (px/ms): un fling rápido cierra la distancia en poco tiempo; un
|
|
7603
8080
|
release lento o un snap programático usa la duración larga. Acotado a
|
|
@@ -7743,6 +8220,8 @@ type SuiModalStatusAlignment = 'horizontal' | 'vertical';
|
|
|
7743
8220
|
* [slot="footer"]: action buttons row
|
|
7744
8221
|
*/
|
|
7745
8222
|
declare class SuiModal implements AfterViewInit, OnDestroy {
|
|
8223
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8224
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
7746
8225
|
private readonly doc;
|
|
7747
8226
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
7748
8227
|
readonly size: _angular_core.InputSignal<SuiModalSize>;
|
|
@@ -7917,6 +8396,8 @@ type SuiModalHeaderVariant = 'info' | 'success' | 'warning' | 'error';
|
|
|
7917
8396
|
* <sui-modal-header size="small" title="Filtros" (closed)="cerrar()" />
|
|
7918
8397
|
*/
|
|
7919
8398
|
declare class SuiModalHeader {
|
|
8399
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8400
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
7920
8401
|
/** Título del header (Label/Small). */
|
|
7921
8402
|
readonly title: _angular_core.InputSignal<string>;
|
|
7922
8403
|
/** Descripción bajo el título (Paragraph/X-Small). */
|
|
@@ -8048,10 +8529,12 @@ declare class SuiModalFooter {
|
|
|
8048
8529
|
* que existe en RemixIcon; si el panel real usa otro glyph, ajustar el name.
|
|
8049
8530
|
*/
|
|
8050
8531
|
declare class SuiNotificationFooter {
|
|
8051
|
-
/**
|
|
8052
|
-
|
|
8053
|
-
readonly usePrefix: _angular_core.InputSignal<string>;
|
|
8054
|
-
readonly
|
|
8532
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8533
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8534
|
+
readonly usePrefix: _angular_core.InputSignal<string | null>;
|
|
8535
|
+
protected readonly usePrefixTexto: _angular_core.Signal<string>;
|
|
8536
|
+
readonly useSuffix: _angular_core.InputSignal<string | null>;
|
|
8537
|
+
protected readonly useSuffixTexto: _angular_core.Signal<string>;
|
|
8055
8538
|
/** Link de gestión — true = label default ('Administrar notificaciones'); string =
|
|
8056
8539
|
* label custom (emite `manageClick`); SuiLinkConfig { label, href?, target?,
|
|
8057
8540
|
* rel? }: con href renderiza <a> real, rel automático 'noopener noreferrer'
|
|
@@ -8161,12 +8644,15 @@ interface SuiNotificationTab<T = string> {
|
|
|
8161
8644
|
* trae el fix dentro de <sui-compact-button>.
|
|
8162
8645
|
*/
|
|
8163
8646
|
declare class SuiNotificationTabMenu<T = string> {
|
|
8647
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8648
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8164
8649
|
readonly tabs: _angular_core.InputSignal<SuiNotificationTab<T>[]>;
|
|
8165
8650
|
readonly active: _angular_core.ModelSignal<T | undefined>;
|
|
8166
8651
|
/** Renderiza el botón de filtro absoluto a la derecha (Figma prop `button`). */
|
|
8167
8652
|
readonly showFilter: _angular_core.InputSignal<boolean>;
|
|
8168
8653
|
/** aria-label del botón de filtro. */
|
|
8169
|
-
readonly filterLabel: _angular_core.InputSignal<string>;
|
|
8654
|
+
readonly filterLabel: _angular_core.InputSignal<string | null>;
|
|
8655
|
+
protected readonly filterLabelTexto: _angular_core.Signal<string>;
|
|
8170
8656
|
readonly tabChange: _angular_core.OutputEmitterRef<T>;
|
|
8171
8657
|
readonly filterClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
8172
8658
|
private readonly tabItems?;
|
|
@@ -8248,6 +8734,8 @@ type SuiNotificationStyle = 'filled' | 'light' | 'lighter' | 'stroke';
|
|
|
8248
8734
|
* - showIcon/iconName status icons
|
|
8249
8735
|
*/
|
|
8250
8736
|
declare class SuiNotification {
|
|
8737
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8738
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8251
8739
|
readonly variant: _angular_core.InputSignal<SuiNotificationVariant>;
|
|
8252
8740
|
readonly variantStyle: _angular_core.InputSignal<SuiNotificationStyle>;
|
|
8253
8741
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
@@ -8264,7 +8752,7 @@ declare class SuiNotification {
|
|
|
8264
8752
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
8265
8753
|
readonly unread: _angular_core.InputSignal<boolean>;
|
|
8266
8754
|
/** Item body type. 'basic' keeps the legacy/alert layout (no body slot). */
|
|
8267
|
-
readonly type: _angular_core.InputSignal<"
|
|
8755
|
+
readonly type: _angular_core.InputSignal<"file" | "basic" | "button" | "message">;
|
|
8268
8756
|
/** When true, item paints the Figma hover bg + reveals the more-2-line button. */
|
|
8269
8757
|
readonly showMore: _angular_core.InputSignal<boolean>;
|
|
8270
8758
|
/** Forces the hover affordance visible (e.g. keyboard-focused row). */
|
|
@@ -8365,13 +8853,17 @@ type SuiOtpInputSize = 'large' | 'medium' | 'small';
|
|
|
8365
8853
|
* diseño los pide en una pantalla concreta, se compone con 2 sui-otp-input.
|
|
8366
8854
|
*/
|
|
8367
8855
|
declare class SuiOtpInput implements ControlValueAccessor {
|
|
8856
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8857
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8858
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
8368
8859
|
readonly length: _angular_core.InputSignal<number>;
|
|
8369
8860
|
/** Tamaño de la celda: large 80×64 (guía, default) · medium 52×56 · small 44×48. */
|
|
8370
8861
|
readonly size: _angular_core.InputSignal<SuiOtpInputSize>;
|
|
8371
8862
|
readonly type: _angular_core.InputSignal<SuiOtpInputType>;
|
|
8372
8863
|
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
8373
8864
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
8374
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
8865
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
8866
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
8375
8867
|
readonly value: _angular_core.ModelSignal<string>;
|
|
8376
8868
|
readonly completed: _angular_core.OutputEmitterRef<string>;
|
|
8377
8869
|
/** Array de caracteres, length === this.length(). */
|
|
@@ -8490,6 +8982,9 @@ type SuiPaginationInfoFormat = 'items' | 'pages';
|
|
|
8490
8982
|
* @output pageSizeChange Emite el nuevo page size cuando el user lo cambia
|
|
8491
8983
|
*/
|
|
8492
8984
|
declare class SuiPagination {
|
|
8985
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
8986
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8987
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
8493
8988
|
readonly total: _angular_core.InputSignal<number>;
|
|
8494
8989
|
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
8495
8990
|
readonly siblingCount: _angular_core.InputSignal<number>;
|
|
@@ -8617,18 +9112,24 @@ declare const SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS: Record<SuiPasswordStre
|
|
|
8617
9112
|
* <sui-password-strength strength="moderate" [conditions]="[]" caption="" />
|
|
8618
9113
|
*/
|
|
8619
9114
|
declare class SuiPasswordStrength {
|
|
9115
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
9116
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8620
9117
|
/** Contraseña a evaluar — deriva las condiciones cumplidas y el nivel. */
|
|
8621
9118
|
readonly value: _angular_core.InputSignal<string>;
|
|
8622
9119
|
/** Override manual del nivel — presente gana sobre el derivado de `value`. */
|
|
8623
9120
|
readonly strength: _angular_core.InputSignal<SuiPasswordStrengthLevel | null>;
|
|
8624
9121
|
/** Caption sobre la checklist. '' = oculto. */
|
|
8625
|
-
readonly caption: _angular_core.InputSignal<string>;
|
|
8626
|
-
|
|
8627
|
-
|
|
9122
|
+
readonly caption: _angular_core.InputSignal<string | null>;
|
|
9123
|
+
protected readonly captionTexto: _angular_core.Signal<string>;
|
|
9124
|
+
/** Checklist de condiciones. [] = sin checklist (solo barra + caption).
|
|
9125
|
+
* Sin pasar: las tres de siempre, con los textos de `textos.contrasena`. */
|
|
9126
|
+
readonly conditions: _angular_core.InputSignal<SuiPasswordStrengthCondition[] | null>;
|
|
9127
|
+
protected readonly conditionsTexto: _angular_core.Signal<SuiPasswordStrengthCondition[]>;
|
|
8628
9128
|
/** Textos del nivel para lectores de pantalla (merge sobre los defaults ES). */
|
|
8629
9129
|
readonly levelLabels: _angular_core.InputSignal<Partial<Record<SuiPasswordStrengthLevel, string>>>;
|
|
8630
9130
|
/** Label accesible del progressbar. */
|
|
8631
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
9131
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
9132
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
8632
9133
|
/** Emite el nivel resuelto cada vez que cambia (no emite el inicial). */
|
|
8633
9134
|
readonly strengthChange: _angular_core.OutputEmitterRef<SuiPasswordStrengthLevel>;
|
|
8634
9135
|
/** Condiciones evaluadas: `met` manual gana; sino corre `test` sobre `value`. */
|
|
@@ -8736,6 +9237,8 @@ type SuiPopoverFooter = 'none' | 'stretch' | 'text-stepper' | 'stepper';
|
|
|
8736
9237
|
teléfono — size nuevo 04-10-2026 (dueño: piso táctil 44). */
|
|
8737
9238
|
type SuiPopoverSize = 'small' | 'medium' | 'large';
|
|
8738
9239
|
declare class SuiPopover {
|
|
9240
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
9241
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8739
9242
|
/** Placement axis del tail relativo al trigger (12 variantes Figma). */
|
|
8740
9243
|
readonly position: _angular_core.InputSignal<SuiPopoverPosition>;
|
|
8741
9244
|
/** Mostrar la cola/flecha (tail SVG). */
|
|
@@ -8750,10 +9253,12 @@ declare class SuiPopover {
|
|
|
8750
9253
|
readonly dismissIcon: _angular_core.InputSignal<boolean>;
|
|
8751
9254
|
/** Tipo de footer. `none` oculta el footer y el separador. */
|
|
8752
9255
|
readonly footer: _angular_core.InputSignal<SuiPopoverFooter>;
|
|
8753
|
-
/** Texto del botón secundario (izquierda). */
|
|
8754
|
-
readonly backLabel: _angular_core.InputSignal<string>;
|
|
8755
|
-
/** Texto del botón primario (derecha). */
|
|
8756
|
-
readonly nextLabel: _angular_core.InputSignal<string>;
|
|
9256
|
+
/** Texto del botón secundario (izquierda). Sin pasar: `textos.popover.atras` («Atrás»). */
|
|
9257
|
+
readonly backLabel: _angular_core.InputSignal<string | null>;
|
|
9258
|
+
/** Texto del botón primario (derecha). Sin pasar: `textos.popover.siguiente` («Siguiente»). */
|
|
9259
|
+
readonly nextLabel: _angular_core.InputSignal<string | null>;
|
|
9260
|
+
protected readonly backLabelTexto: _angular_core.Signal<string>;
|
|
9261
|
+
protected readonly nextLabelTexto: _angular_core.Signal<string>;
|
|
8757
9262
|
/** Renderear el botón secundario (Back). Si false, solo se muestra el primario. */
|
|
8758
9263
|
readonly doubleButton: _angular_core.InputSignal<boolean>;
|
|
8759
9264
|
/** Progreso del stepper — { current (1-based), total }. Usado en text-stepper
|
|
@@ -8842,6 +9347,8 @@ type SuiProgressBarSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
8842
9347
|
* - ariaLabel: string opcional para `aria-label` del role=progressbar.
|
|
8843
9348
|
*/
|
|
8844
9349
|
declare class SuiProgressBar {
|
|
9350
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
9351
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
8845
9352
|
readonly value: _angular_core.InputSignal<number>;
|
|
8846
9353
|
readonly color: _angular_core.InputSignal<SuiProgressBarColor>;
|
|
8847
9354
|
readonly size: _angular_core.InputSignal<SuiProgressBarSize>;
|
|
@@ -8970,7 +9477,8 @@ interface SuiRadioGroupItem {
|
|
|
8970
9477
|
value(): unknown;
|
|
8971
9478
|
/** Deshabilitada por input, por form o por el grupo. */
|
|
8972
9479
|
isDisabled(): boolean;
|
|
8973
|
-
/** Elemento que recibe el foco
|
|
9480
|
+
/** Elemento que recibe el foco: el que tiene role=radio (el host, o el
|
|
9481
|
+
* contenedor interno en sui-radio-label). */
|
|
8974
9482
|
readonly el: HTMLElement;
|
|
8975
9483
|
/** Selecciona la opción por su camino normal (emite sus outputs). */
|
|
8976
9484
|
activateFromGroup(): void;
|
|
@@ -9063,7 +9571,7 @@ declare class SuiRadio implements OnInit, SuiRadioGroupItem {
|
|
|
9063
9571
|
activateFromGroup(): void;
|
|
9064
9572
|
onToggle(e: Event): void;
|
|
9065
9573
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiRadio, never>;
|
|
9066
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadio, "sui-radio", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "standaloneChecked": { "alias": "standaloneChecked"; "required": false; "isSignal": true; }; }, { "standaloneChecked": "standaloneCheckedChange"; }, never, never, true,
|
|
9574
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadio, "sui-radio", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "standaloneChecked": { "alias": "standaloneChecked"; "required": false; "isSignal": true; }; }, { "standaloneChecked": "standaloneCheckedChange"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
9067
9575
|
}
|
|
9068
9576
|
|
|
9069
9577
|
type SuiRadioCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | 'brand' | 'company';
|
|
@@ -9168,7 +9676,7 @@ declare class SuiRadioCard implements ControlValueAccessor, OnInit, SuiRadioGrou
|
|
|
9168
9676
|
readonly size: _angular_core.InputSignal<SuiRadioSize>;
|
|
9169
9677
|
/** Lado en px del radio según size: medium 20 · large 24 · xlarge 28. Los
|
|
9170
9678
|
* insets internos (bg/box) son % → escalan solos. */
|
|
9171
|
-
readonly radioPx: _angular_core.Signal<
|
|
9679
|
+
readonly radioPx: _angular_core.Signal<24 | 20 | 28>;
|
|
9172
9680
|
/** Valor del radio (requerido para uso en grupo). */
|
|
9173
9681
|
readonly value: _angular_core.InputSignal<string>;
|
|
9174
9682
|
/** Título principal del card (label de la fila Title). */
|
|
@@ -9187,7 +9695,7 @@ declare class SuiRadioCard implements ControlValueAccessor, OnInit, SuiRadioGrou
|
|
|
9187
9695
|
* Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'.
|
|
9188
9696
|
* Si ambos están, icon tiene precedencia.
|
|
9189
9697
|
*/
|
|
9190
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
9698
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
9191
9699
|
/**
|
|
9192
9700
|
* URL directa al emoji para type='left-icon'. Útil cuando el consumer ya tiene
|
|
9193
9701
|
* la URL (ej. FLUENT_EMOJI map del proyecto) y no quiere registrar el emoji
|
|
@@ -9234,7 +9742,7 @@ declare class SuiRadioCard implements ControlValueAccessor, OnInit, SuiRadioGrou
|
|
|
9234
9742
|
registerOnTouched(fn: () => void): void;
|
|
9235
9743
|
setDisabledState(isDisabled: boolean): void;
|
|
9236
9744
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiRadioCard, never>;
|
|
9237
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadioCard, "sui-radio-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "selected": "selected"; }, never, never, true,
|
|
9745
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadioCard, "sui-radio-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "selected": "selected"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
9238
9746
|
}
|
|
9239
9747
|
|
|
9240
9748
|
/**
|
|
@@ -9262,11 +9770,14 @@ type SuiRadioLabelSize = 'medium' | 'large' | 'xlarge' | '2xlarge';
|
|
|
9262
9770
|
* (group.value() === value() ⇒ checked; click ⇒ group.select(value)).
|
|
9263
9771
|
* - Standalone: model two-way `checked` + output `selected`.
|
|
9264
9772
|
* - El sui-radio interno es SOLO visual (pointer-events none en SCSS):
|
|
9265
|
-
*
|
|
9773
|
+
* los clicks los maneja el host y las teclas el control — una sola fuente de
|
|
9266
9774
|
* selección, sin doble-toggle.
|
|
9267
9775
|
*
|
|
9268
|
-
* A11y:
|
|
9269
|
-
*
|
|
9776
|
+
* A11y: el contenedor interno `.sui-radio-label__control` es el role="radio"
|
|
9777
|
+
* (aria-checked, tabindex, Space/Enter); el Link Button va FUERA de él, como
|
|
9778
|
+
* hermano, para no anidar un botón dentro del radio (axe nested-interactive,
|
|
9779
|
+
* 09-10-2026). El click de toda la fila sigue en el host.
|
|
9780
|
+
* iOS WKWebView fix: touchstart/touchend en el control (SUI canon).
|
|
9270
9781
|
*
|
|
9271
9782
|
* Usage:
|
|
9272
9783
|
* <sui-radio-group [(ngModel)]="plan">
|
|
@@ -9280,7 +9791,12 @@ declare class SuiRadioLabel implements OnInit, SuiRadioGroupItem {
|
|
|
9280
9791
|
private static _nextId;
|
|
9281
9792
|
private readonly group;
|
|
9282
9793
|
private readonly destroyRef;
|
|
9283
|
-
readonly
|
|
9794
|
+
private readonly host;
|
|
9795
|
+
private readonly control;
|
|
9796
|
+
/** Elemento con role=radio que recibe el foco (lo usa el grupo para el
|
|
9797
|
+
* roving con flechas). Antes de crear la vista cae al host, que lo contiene:
|
|
9798
|
+
* el orden en el DOM es el mismo. */
|
|
9799
|
+
get el(): HTMLElement;
|
|
9284
9800
|
protected readonly labelId: string;
|
|
9285
9801
|
protected readonly descriptionId: string;
|
|
9286
9802
|
/** Valor que representa esta opción dentro del grupo. */
|
|
@@ -9481,6 +9997,8 @@ interface SuiRatingCellView {
|
|
|
9481
9997
|
* disabled deshabilita clicks/hover igual que readonly=true (ver isInteractive).
|
|
9482
9998
|
*/
|
|
9483
9999
|
declare class SuiRating implements ControlValueAccessor {
|
|
10000
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10001
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
9484
10002
|
private readonly el;
|
|
9485
10003
|
readonly appearance: _angular_core.InputSignal<SuiRatingAppearance>;
|
|
9486
10004
|
readonly type: _angular_core.InputSignal<SuiRatingType>;
|
|
@@ -9500,14 +10018,16 @@ declare class SuiRating implements ControlValueAccessor {
|
|
|
9500
10018
|
* Si pasas un string que NO está en el map, sui-emoji renderea broken image.
|
|
9501
10019
|
*/
|
|
9502
10020
|
readonly emojis: _angular_core.InputSignal<string[]>;
|
|
9503
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
10021
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
10022
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
9504
10023
|
/**
|
|
9505
10024
|
* appearance='bar-area' — texto del reason (textarea "Tell us why!").
|
|
9506
10025
|
* model<string> para two-way binding. Ignorado en inline/bar.
|
|
9507
10026
|
*/
|
|
9508
10027
|
readonly reason: _angular_core.ModelSignal<string>;
|
|
9509
10028
|
/** Placeholder del textarea en bar-area. Figma: "Tell us why!". */
|
|
9510
|
-
readonly reasonPlaceholder: _angular_core.InputSignal<string>;
|
|
10029
|
+
readonly reasonPlaceholder: _angular_core.InputSignal<string | null>;
|
|
10030
|
+
protected readonly reasonPlaceholderTexto: _angular_core.Signal<string>;
|
|
9511
10031
|
/** Filas del textarea en bar-area. El alto mínimo del área de comentario lo
|
|
9512
10032
|
* fija el CSS (min-height 72px = Figma) para preservar el envelope del card;
|
|
9513
10033
|
* `rows` solo importa si se quiere un área inicial MÁS alta que ese piso. */
|
|
@@ -9538,7 +10058,7 @@ declare class SuiRating implements ControlValueAccessor {
|
|
|
9538
10058
|
* bar/bar-area usan 20px hardcoded en el template (no pasan por aquí). */
|
|
9539
10059
|
readonly iconPx: _angular_core.Signal<number>;
|
|
9540
10060
|
/** Rol del host: `img` para la nota de solo lectura (o `group` si trae link), `radiogroup` para pedirla. */
|
|
9541
|
-
protected readonly hostRole: _angular_core.Signal<"
|
|
10061
|
+
protected readonly hostRole: _angular_core.Signal<"img" | "group" | "radiogroup">;
|
|
9542
10062
|
/** Nombre accesible: interactivo = `ariaLabel`; readonly = «Calificación: 4,5 de 5, 120 calificaciones». */
|
|
9543
10063
|
protected readonly hostAriaLabel: _angular_core.Signal<string>;
|
|
9544
10064
|
/** Índice (1..max) de la celda con tabindex 0: la elegida, o la primera. */
|
|
@@ -9639,7 +10159,7 @@ declare class SuiRichEditorItem {
|
|
|
9639
10159
|
readonly hasIcon: _angular_core.Signal<boolean>;
|
|
9640
10160
|
protected onClick(): void;
|
|
9641
10161
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiRichEditorItem, never>;
|
|
9642
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRichEditorItem, "sui-rich-editor-item", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "colorHex": { "alias": "colorHex"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true,
|
|
10162
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRichEditorItem, "sui-rich-editor-item", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "colorHex": { "alias": "colorHex"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
9643
10163
|
}
|
|
9644
10164
|
|
|
9645
10165
|
/**
|
|
@@ -9667,6 +10187,8 @@ interface SuiRichEditorAction {
|
|
|
9667
10187
|
active: boolean;
|
|
9668
10188
|
}
|
|
9669
10189
|
declare class SuiRichEditor {
|
|
10190
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10191
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
9670
10192
|
/** Layout del toolbar (4 variantes Figma). Default `full`. */
|
|
9671
10193
|
readonly layout: _angular_core.InputSignal<SuiRichEditorLayout>;
|
|
9672
10194
|
/** Muestra el divider + botón `more-2-line` (overflow) al final. Default true. */
|
|
@@ -9679,11 +10201,13 @@ declare class SuiRichEditor {
|
|
|
9679
10201
|
*/
|
|
9680
10202
|
readonly editable: _angular_core.InputSignal<boolean>;
|
|
9681
10203
|
/** Placeholder del área editable. */
|
|
9682
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
10204
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
10205
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
9683
10206
|
/** Contenido HTML del editable. Two-way `[(value)]`. */
|
|
9684
10207
|
readonly value: _angular_core.ModelSignal<string>;
|
|
9685
10208
|
/** Label de heading mostrado en el item tipo text (layout full/compact). */
|
|
9686
|
-
readonly headingLabel: _angular_core.InputSignal<string>;
|
|
10209
|
+
readonly headingLabel: _angular_core.InputSignal<string | null>;
|
|
10210
|
+
protected readonly headingLabelTexto: _angular_core.Signal<string>;
|
|
9687
10211
|
/** Label de tamaño de fuente mostrado en el item tipo text. */
|
|
9688
10212
|
readonly fontSizeLabel: _angular_core.InputSignal<string>;
|
|
9689
10213
|
/** Emitido cada vez que se acciona un comando del toolbar. */
|
|
@@ -9810,11 +10334,14 @@ interface SuiSelectOption<T = any> {
|
|
|
9810
10334
|
* naranja, DECISIONES.md §1) replican pixel-exacto el chip del Figma.
|
|
9811
10335
|
*/
|
|
9812
10336
|
declare class SuiSelect<T = any> implements ControlValueAccessor {
|
|
10337
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10338
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
9813
10339
|
readonly size: _angular_core.InputSignal<SuiSelectSize>;
|
|
9814
10340
|
/** El rótulo no crece con el control: su escala llega a `medium`. Ver la nota
|
|
9815
10341
|
* en `sui-input`, que hace exactamente lo mismo. */
|
|
9816
10342
|
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
9817
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
10343
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
10344
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
9818
10345
|
readonly options: _angular_core.InputSignal<SuiSelectOption<T>[]>;
|
|
9819
10346
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
9820
10347
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
@@ -9955,8 +10482,10 @@ interface SuiSidebarBrandConfig {
|
|
|
9955
10482
|
}
|
|
9956
10483
|
/** Config del search slot (Figma prop search=true). Patrón objeto, como `profile`. */
|
|
9957
10484
|
interface SuiSidebarSearchConfig {
|
|
9958
|
-
/** Placeholder del input. Default '
|
|
10485
|
+
/** Placeholder del input. Default 'Buscar…'. */
|
|
9959
10486
|
placeholder?: string;
|
|
10487
|
+
/** Nombre accesible del campo. Omitir → el lector anuncia el placeholder. */
|
|
10488
|
+
ariaLabel?: string;
|
|
9960
10489
|
/** Shortcut pill dentro del search (ej. '⌘1'). Omitir → sin pill. */
|
|
9961
10490
|
shortcut?: string;
|
|
9962
10491
|
}
|
|
@@ -9976,6 +10505,8 @@ interface SuiSidebarProfile {
|
|
|
9976
10505
|
/** Color del indicator bar / icon activo. */
|
|
9977
10506
|
type SuiSidebarIndicatorColor = 'information' | 'brand';
|
|
9978
10507
|
declare class SuiSidebar {
|
|
10508
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10509
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
9979
10510
|
/**
|
|
9980
10511
|
* Estado colapsado (icon-only, 80px). Oculta labels/subtítulos/shortcuts/
|
|
9981
10512
|
* badges y centra los iconos. Figma variant Collapsed=On. Default false.
|
|
@@ -10007,7 +10538,7 @@ declare class SuiSidebar {
|
|
|
10007
10538
|
/**
|
|
10008
10539
|
* Search encima de las secciones:
|
|
10009
10540
|
* - `false` / `null` (default): sin search
|
|
10010
|
-
* - `true`: search con defaults (placeholder '
|
|
10541
|
+
* - `true`: search con defaults (placeholder 'Buscar…', sin shortcut)
|
|
10011
10542
|
* - objeto `{ placeholder?, shortcut? }`: search configurado
|
|
10012
10543
|
*/
|
|
10013
10544
|
readonly search: _angular_core.InputSignal<boolean | SuiSidebarSearchConfig | null>;
|
|
@@ -10089,10 +10620,11 @@ declare class SuiSidebar {
|
|
|
10089
10620
|
protected readonly brandCfg: _angular_core.Signal<SuiSidebarBrandConfig>;
|
|
10090
10621
|
/**
|
|
10091
10622
|
* Search normalizado: null → sin search; objeto con defaults aplicados
|
|
10092
|
-
* (placeholder '
|
|
10623
|
+
* (placeholder 'Buscar…') cuando search=true o config parcial.
|
|
10093
10624
|
*/
|
|
10094
10625
|
protected readonly searchCfg: _angular_core.Signal<{
|
|
10095
10626
|
placeholder: string;
|
|
10627
|
+
ariaLabel: string;
|
|
10096
10628
|
shortcut: string | null;
|
|
10097
10629
|
} | null>;
|
|
10098
10630
|
/**
|
|
@@ -10182,6 +10714,8 @@ type SuiSliderType = 'single' | 'range';
|
|
|
10182
10714
|
*/
|
|
10183
10715
|
type SuiSliderSize = 'medium' | 'large';
|
|
10184
10716
|
declare class SuiSlider implements ControlValueAccessor {
|
|
10717
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10718
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
10185
10719
|
private readonly hostRef;
|
|
10186
10720
|
readonly type: _angular_core.InputSignal<SuiSliderType>;
|
|
10187
10721
|
/** `medium` (default, Figma) o `large` (mobile, extensión SUI). */
|
|
@@ -10221,9 +10755,9 @@ declare class SuiSlider implements ControlValueAccessor {
|
|
|
10221
10755
|
private readonly _cvaValue;
|
|
10222
10756
|
private readonly _useCvaValue;
|
|
10223
10757
|
/** Handle siendo arrastrado: null | 'single' | 'min' | 'max'. */
|
|
10224
|
-
readonly dragging: _angular_core.WritableSignal<"
|
|
10758
|
+
readonly dragging: _angular_core.WritableSignal<"max" | "single" | "min" | null>;
|
|
10225
10759
|
/** Handle bajo hover (para tooltip): igual dominio que dragging. */
|
|
10226
|
-
readonly hovering: _angular_core.WritableSignal<"
|
|
10760
|
+
readonly hovering: _angular_core.WritableSignal<"max" | "single" | "min" | null>;
|
|
10227
10761
|
private clamp;
|
|
10228
10762
|
readonly effectiveValue: _angular_core.Signal<number>;
|
|
10229
10763
|
readonly effectiveMin: _angular_core.Signal<number>;
|
|
@@ -10245,7 +10779,7 @@ declare class SuiSlider implements ControlValueAccessor {
|
|
|
10245
10779
|
/** Single: el texto de `amount` (lo que se ve) o el valor con la unidad. */
|
|
10246
10780
|
readonly singleValueText: _angular_core.Signal<string | null>;
|
|
10247
10781
|
/** Range: cada manija dice cuál es («Precio, mínimo» / «Precio, máximo»). */
|
|
10248
|
-
thumbLabel(
|
|
10782
|
+
thumbLabel(cual: 'min' | 'max'): string;
|
|
10249
10783
|
private showTooltipFor;
|
|
10250
10784
|
readonly showSingleTooltip: _angular_core.Signal<boolean>;
|
|
10251
10785
|
readonly showMinTooltip: _angular_core.Signal<boolean>;
|
|
@@ -10343,6 +10877,8 @@ type SuiSocialButtonSize = 'medium' | 'large';
|
|
|
10343
10877
|
* target="_blank" />
|
|
10344
10878
|
*/
|
|
10345
10879
|
declare class SuiSocialButton {
|
|
10880
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
10881
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
10346
10882
|
readonly brand: _angular_core.InputSignal<SuiSocialButtonBrand>;
|
|
10347
10883
|
readonly variantStyle: _angular_core.InputSignal<SuiSocialButtonStyle>;
|
|
10348
10884
|
readonly onlyIcon: _angular_core.InputSignal<boolean>;
|
|
@@ -10356,7 +10892,7 @@ declare class SuiSocialButton {
|
|
|
10356
10892
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
10357
10893
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
10358
10894
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
10359
|
-
readonly type: _angular_core.InputSignal<"button" | "
|
|
10895
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
10360
10896
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
10361
10897
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
10362
10898
|
/** Disabled efectivo: el input disabled O el estado loading. */
|
|
@@ -10375,7 +10911,7 @@ declare class SuiSocialButton {
|
|
|
10375
10911
|
/** Logo style derivado del button style + tema. filled → siempre blanco; stroke →
|
|
10376
10912
|
* `original`, salvo dark + marca monocromática oscura, donde usa `white` para no
|
|
10377
10913
|
* perder el logo sobre la superficie oscura (ver MONO_DARK_BRANDS). */
|
|
10378
|
-
readonly logoStyle: _angular_core.Signal<"
|
|
10914
|
+
readonly logoStyle: _angular_core.Signal<"original" | "white">;
|
|
10379
10915
|
/** Color de fondo brand-specific (solo aplica si style=filled). */
|
|
10380
10916
|
readonly filledBg: _angular_core.Signal<string | null>;
|
|
10381
10917
|
/** Label final: input.label > default por brand. */
|
|
@@ -10588,6 +11124,8 @@ interface SuiStepperItemView {
|
|
|
10588
11124
|
* proyecto, NO existen en los nodos Figma auditados — preservados intactos.
|
|
10589
11125
|
*/
|
|
10590
11126
|
declare class SuiStepper {
|
|
11127
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
11128
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
10591
11129
|
readonly variant: _angular_core.InputSignal<SuiStepperVariant>;
|
|
10592
11130
|
readonly steps: _angular_core.InputSignal<SuiStepperItem[]>;
|
|
10593
11131
|
readonly count: _angular_core.InputSignal<number>;
|
|
@@ -10598,7 +11136,8 @@ declare class SuiStepper {
|
|
|
10598
11136
|
readonly errorStep: _angular_core.InputSignal<number | null>;
|
|
10599
11137
|
readonly size: _angular_core.InputSignal<SuiStepperSize>;
|
|
10600
11138
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
10601
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
11139
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
11140
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
10602
11141
|
readonly stepClick: _angular_core.OutputEmitterRef<number>;
|
|
10603
11142
|
/** Ícono del indicador (completed / error): 24 en medium, 20 en los de Figma.
|
|
10604
11143
|
* Es el indicador mismo, por eso crece; separador y chevron se quedan en 20. */
|
|
@@ -10891,7 +11430,7 @@ declare class SuiProductCard {
|
|
|
10891
11430
|
/** Glyph del «+» / lápiz: 18 en small, 20 en medium y large. */
|
|
10892
11431
|
readonly iconSize: _angular_core.Signal<20 | 18>;
|
|
10893
11432
|
/** Glyph del stepper: 16 en small, 20 en medium y large. */
|
|
10894
|
-
readonly stepIconSize: _angular_core.Signal<
|
|
11433
|
+
readonly stepIconSize: _angular_core.Signal<16 | 20>;
|
|
10895
11434
|
readonly showStepper: _angular_core.Signal<boolean>;
|
|
10896
11435
|
/** Config resuelta de la imagen (string → { url }; `position` default 50).
|
|
10897
11436
|
* null = sin imagen → fallback. */
|
|
@@ -10972,7 +11511,7 @@ declare class SuiSwitch implements ControlValueAccessor {
|
|
|
10972
11511
|
registerOnTouched(fn: any): void;
|
|
10973
11512
|
setDisabledState(isDisabled: boolean): void;
|
|
10974
11513
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiSwitch, never>;
|
|
10975
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitch, "sui-switch", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true,
|
|
11514
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitch, "sui-switch", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
10976
11515
|
}
|
|
10977
11516
|
|
|
10978
11517
|
type SuiSwitchCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | 'brand' | 'company';
|
|
@@ -11059,7 +11598,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
11059
11598
|
* `<sui-icon>` proyectado vía `[sui-switch-card-leading]` y se renderiza
|
|
11060
11599
|
* con las MISMAS dimensiones (20×20 dentro del círculo de 40px).
|
|
11061
11600
|
*/
|
|
11062
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
11601
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
11063
11602
|
/**
|
|
11064
11603
|
* URL de imagen para type='avatar' — se renderiza con sui-avatar size=lg
|
|
11065
11604
|
* (40×40 redonda). Si la imagen falla, fallback automático a iniciales del
|
|
@@ -11101,7 +11640,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
11101
11640
|
registerOnTouched(fn: () => void): void;
|
|
11102
11641
|
setDisabledState(isDisabled: boolean): void;
|
|
11103
11642
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiSwitchCard, never>;
|
|
11104
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitchCard, "sui-switch-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["[sui-switch-card-leading]"], true,
|
|
11643
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitchCard, "sui-switch-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["[sui-switch-card-leading]"], true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
11105
11644
|
}
|
|
11106
11645
|
|
|
11107
11646
|
/** Sizes de la fila: los del switch + `2xlarge` (fila de 44, dueño 04-10-2026). */
|
|
@@ -11518,11 +12057,14 @@ type SuiTableSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
11518
12057
|
* Si no hay template para una columna, renderiza row[column.key] directo.
|
|
11519
12058
|
*/
|
|
11520
12059
|
declare class SuiTable<T = any> {
|
|
12060
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
12061
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
11521
12062
|
readonly columns: _angular_core.InputSignal<SuiTableColumn<T>[]>;
|
|
11522
12063
|
readonly rows: _angular_core.InputSignal<T[]>;
|
|
11523
12064
|
readonly size: _angular_core.InputSignal<SuiTableSize>;
|
|
11524
12065
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
11525
|
-
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
12066
|
+
readonly emptyMessage: _angular_core.InputSignal<string | null>;
|
|
12067
|
+
protected readonly emptyMessageTexto: _angular_core.Signal<string>;
|
|
11526
12068
|
readonly striped: _angular_core.InputSignal<boolean>;
|
|
11527
12069
|
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
11528
12070
|
readonly rowKey: _angular_core.InputSignal<keyof T | ((row: T) => any) | undefined>;
|
|
@@ -11664,7 +12206,7 @@ declare class SuiTabMenuHorizontal<T = string> {
|
|
|
11664
12206
|
xlarge 56. large y xlarge llevan el texto a 16 (mobile). */
|
|
11665
12207
|
readonly size: _angular_core.InputSignal<SuiTabMenuHorizontalSize>;
|
|
11666
12208
|
/** Glyph del ícono de la pestaña: 24 en xlarge, 20 en el resto. */
|
|
11667
|
-
readonly iconSize: _angular_core.Signal<
|
|
12209
|
+
readonly iconSize: _angular_core.Signal<24 | 20>;
|
|
11668
12210
|
readonly tabChange: _angular_core.OutputEmitterRef<T>;
|
|
11669
12211
|
private readonly tabItems?;
|
|
11670
12212
|
/** Índice del único tab con tabindex 0: el activo, o el primero habilitado. */
|
|
@@ -11906,6 +12448,8 @@ type SuiTagSize = 'medium' | 'large' | 'xlarge';
|
|
|
11906
12448
|
* reporte de auditoría estaba vacío.
|
|
11907
12449
|
*/
|
|
11908
12450
|
declare class SuiTag {
|
|
12451
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
12452
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
11909
12453
|
/** Visual style. `stroke` = white bg + soft border; `gray` = weak-50 bg, no border. Default stroke. */
|
|
11910
12454
|
readonly tagStyle: _angular_core.InputSignal<SuiTagStyle>;
|
|
11911
12455
|
/** Tamaño: medium 24 (default, Figma) · large 32 · xlarge 40 (mobile). */
|
|
@@ -11930,7 +12474,8 @@ declare class SuiTag {
|
|
|
11930
12474
|
/** Estado deshabilitado: override de tokens a disabled-300, pointer-events none. */
|
|
11931
12475
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
11932
12476
|
/** aria-label opcional para el botón de cierre. Default 'Quitar'. */
|
|
11933
|
-
readonly dismissLabel: _angular_core.InputSignal<string>;
|
|
12477
|
+
readonly dismissLabel: _angular_core.InputSignal<string | null>;
|
|
12478
|
+
protected readonly dismissLabelTexto: _angular_core.Signal<string>;
|
|
11934
12479
|
/** Emitido al clickear el botón de cierre (solo si dismissible y no disabled). */
|
|
11935
12480
|
readonly dismiss: _angular_core.OutputEmitterRef<void>;
|
|
11936
12481
|
/** True cuando hay sublabel no vacío para renderizar el span secundario. */
|
|
@@ -12037,8 +12582,12 @@ type SuiTagInputSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
12037
12582
|
* - allowDuplicates / maxTags / addOnBlur.
|
|
12038
12583
|
*/
|
|
12039
12584
|
declare class SuiTagInput implements ControlValueAccessor {
|
|
12585
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
12586
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
12587
|
+
protected readonly rellenar: typeof rellenarSuiTexto;
|
|
12040
12588
|
readonly size: _angular_core.InputSignal<SuiTagInputSize>;
|
|
12041
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
12589
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
12590
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
12042
12591
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12043
12592
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
12044
12593
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
@@ -12315,7 +12864,7 @@ declare class SuiTimePickerDuration {
|
|
|
12315
12864
|
readonly clicked: _angular_core.OutputEmitterRef<Event>;
|
|
12316
12865
|
onClick(event: Event): void;
|
|
12317
12866
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTimePickerDuration, never>;
|
|
12318
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerDuration, "sui-time-picker-duration", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true,
|
|
12867
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerDuration, "sui-time-picker-duration", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
12319
12868
|
}
|
|
12320
12869
|
|
|
12321
12870
|
type SuiTimePickerItemDirection = 'right' | 'center';
|
|
@@ -12379,7 +12928,7 @@ declare class SuiTimePickerItem {
|
|
|
12379
12928
|
readonly hasRight: _angular_core.Signal<boolean>;
|
|
12380
12929
|
onClick(event: Event): void;
|
|
12381
12930
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTimePickerItem, never>;
|
|
12382
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerItem, "sui-time-picker-item", never, { "time": { "alias": "time"; "required": true; "isSignal": true; }; "meridiem": { "alias": "meridiem"; "required": false; "isSignal": true; }; "rightTime": { "alias": "rightTime"; "required": false; "isSignal": true; }; "rightMeridiem": { "alias": "rightMeridiem"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "highlighted": { "alias": "highlighted"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true,
|
|
12931
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerItem, "sui-time-picker-item", never, { "time": { "alias": "time"; "required": true; "isSignal": true; }; "meridiem": { "alias": "meridiem"; "required": false; "isSignal": true; }; "rightTime": { "alias": "rightTime"; "required": false; "isSignal": true; }; "rightMeridiem": { "alias": "rightMeridiem"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "highlighted": { "alias": "highlighted"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
12383
12932
|
}
|
|
12384
12933
|
|
|
12385
12934
|
type SuiTimePickerStatusType = 'available' | 'busy' | 'in-meeting' | 'offline';
|
|
@@ -12436,6 +12985,8 @@ type SuiTimePickerStatusType = 'available' | 'busy' | 'in-meeting' | 'offline';
|
|
|
12436
12985
|
* @input disabled
|
|
12437
12986
|
*/
|
|
12438
12987
|
declare class SuiTimePickerStatus {
|
|
12988
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
12989
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
12439
12990
|
readonly type: _angular_core.InputSignal<SuiTimePickerStatusType>;
|
|
12440
12991
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
12441
12992
|
readonly selected: _angular_core.InputSignal<boolean>;
|
|
@@ -12445,7 +12996,7 @@ declare class SuiTimePickerStatus {
|
|
|
12445
12996
|
readonly displayLabel: _angular_core.Signal<string>;
|
|
12446
12997
|
onClick(event: Event): void;
|
|
12447
12998
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTimePickerStatus, never>;
|
|
12448
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerStatus, "sui-time-picker-status", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true,
|
|
12999
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTimePickerStatus, "sui-time-picker-status", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof SuiToque; inputs: {}; outputs: {}; }]>;
|
|
12449
13000
|
}
|
|
12450
13001
|
|
|
12451
13002
|
type SuiTimeFormat = '12h' | '24h';
|
|
@@ -12571,6 +13122,8 @@ interface ColumnItem {
|
|
|
12571
13122
|
* filas de 44 con texto 16 y Cancelar/Aplicar en large. */
|
|
12572
13123
|
type SuiTimePickerSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
12573
13124
|
declare class SuiTimePicker implements ControlValueAccessor {
|
|
13125
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
13126
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
12574
13127
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
12575
13128
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
12576
13129
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -12579,7 +13132,8 @@ declare class SuiTimePicker implements ControlValueAccessor {
|
|
|
12579
13132
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
12580
13133
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
12581
13134
|
/** Texto del campo sin hora. Imperativo con tuteo (dueño, 05-10-2026, P4 a). */
|
|
12582
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
13135
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
13136
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
12583
13137
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12584
13138
|
/**
|
|
12585
13139
|
* Alto del campo: small 36 · medium 40 (default) · large 48 (extensión SUI,
|
|
@@ -12786,6 +13340,8 @@ declare class SuiToastService {
|
|
|
12786
13340
|
* <sui-toast-outlet />
|
|
12787
13341
|
*/
|
|
12788
13342
|
declare class SuiToastOutlet implements OnDestroy {
|
|
13343
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
13344
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
12789
13345
|
private readonly svc;
|
|
12790
13346
|
private readonly tabBar;
|
|
12791
13347
|
readonly toastsByPosition: _angular_core.Signal<Record<SuiToastPosition, SuiToastItem[]>>;
|
|
@@ -13006,6 +13562,8 @@ declare class SuiTopbarButton {
|
|
|
13006
13562
|
* <sui-topbar-user name="Arthur" avatar="https://..." [verified]="true" [open]="menuOpen()" />
|
|
13007
13563
|
*/
|
|
13008
13564
|
declare class SuiTopbarUser {
|
|
13565
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
13566
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
13009
13567
|
/** Nombre visible (Figma editName). Vacío → chip solo-avatar (Figma name=false). */
|
|
13010
13568
|
readonly name: _angular_core.InputSignal<string>;
|
|
13011
13569
|
/**
|
|
@@ -13056,8 +13614,10 @@ interface SuiTopbarAction {
|
|
|
13056
13614
|
}
|
|
13057
13615
|
/** Config del search slot. Patrón objeto + boolean shorthand (como sui-sidebar). */
|
|
13058
13616
|
interface SuiTopbarSearchConfig {
|
|
13059
|
-
/** Placeholder del input expandido. Default 'Buscar
|
|
13617
|
+
/** Placeholder del input expandido. Default 'Buscar…'. */
|
|
13060
13618
|
placeholder?: string;
|
|
13619
|
+
/** Nombre accesible del campo. Omitir → el lector anuncia el placeholder. */
|
|
13620
|
+
ariaLabel?: string;
|
|
13061
13621
|
/** Shortcut pill dentro del input (ej. '⌘1') — renderiza <sui-kbd>. */
|
|
13062
13622
|
shortcut?: string;
|
|
13063
13623
|
/**
|
|
@@ -13119,7 +13679,7 @@ interface SuiTopbarUserConfig {
|
|
|
13119
13679
|
* Usage:
|
|
13120
13680
|
* <sui-topbar
|
|
13121
13681
|
* [items]="items" activeValue="dashboard"
|
|
13122
|
-
* [search]="{ placeholder: 'Buscar
|
|
13682
|
+
* [search]="{ placeholder: 'Buscar…', shortcut: '⌘1' }"
|
|
13123
13683
|
* [actions]="[{ value: 'quick', icon: 'flashlight-line' },
|
|
13124
13684
|
* { value: 'notifications', icon: 'notification-3-line', dot: true }]"
|
|
13125
13685
|
* [user]="{ name: 'Sophia', avatar: { initials: 'S', color: 'yellow' } }"
|
|
@@ -13128,6 +13688,8 @@ interface SuiTopbarUserConfig {
|
|
|
13128
13688
|
* </sui-topbar>
|
|
13129
13689
|
*/
|
|
13130
13690
|
declare class SuiTopbar {
|
|
13691
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
13692
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
13131
13693
|
readonly items: _angular_core.InputSignal<SuiTopbarEntry[]>;
|
|
13132
13694
|
/** value del item activo (bg weak-50 + label strong-950 + icon accent). */
|
|
13133
13695
|
readonly activeValue: _angular_core.InputSignal<string | null>;
|
|
@@ -13158,6 +13720,7 @@ declare class SuiTopbar {
|
|
|
13158
13720
|
/** Search normalizado: null → sin search. */
|
|
13159
13721
|
protected readonly searchCfg: _angular_core.Signal<{
|
|
13160
13722
|
placeholder: string;
|
|
13723
|
+
ariaLabel: string;
|
|
13161
13724
|
shortcut: string | null;
|
|
13162
13725
|
compact: boolean;
|
|
13163
13726
|
} | null>;
|
|
@@ -13292,6 +13855,8 @@ declare class SuiTooltip {
|
|
|
13292
13855
|
* envuelve dentro de `max-width` (200px small / 280px medium).
|
|
13293
13856
|
*/
|
|
13294
13857
|
declare class SuiTooltipPanel {
|
|
13858
|
+
/** Textos de la librería (`provideSuiTextos`); cambian en vivo con el idioma de la app. */
|
|
13859
|
+
protected readonly textos: _angular_core.Signal<_ajuarezso_sui_design_system.SuiTextos>;
|
|
13295
13860
|
/** Text-only (size small/medium). En size=large se ignora — usar title/description. */
|
|
13296
13861
|
readonly text: _angular_core.InputSignal<string>;
|
|
13297
13862
|
readonly position: _angular_core.InputSignal<SuiTooltipPosition>;
|
|
@@ -13312,5 +13877,5 @@ declare class SuiTooltipPanel {
|
|
|
13312
13877
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTooltipPanel, "sui-tooltip-panel", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "showArrow": { "alias": "showArrow"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, never, true, never>;
|
|
13313
13878
|
}
|
|
13314
13879
|
|
|
13315
|
-
export { DAY_LABELS_ES, DEFAULT_DURATION_PRESETS, DEFAULT_PRESETS, EMPTY_STATE_FOX_EMOJI, SUI_BRAND_LOGO_COMPANIES, SUI_CHART_LEGEND_COLORS, SUI_CHART_LEGEND_HEX, SUI_CHART_SERIES_COLORS, SUI_COLOR_DOT_COLORS, SUI_COLOR_DOT_HEX, SUI_CUSTOM_ICONS, SUI_EMOJI_MAP, SUI_EMOJI_STATIC, SUI_FLAG_NAMES, SUI_HEX_TO_COLOR, SUI_IMAGE_UPLOAD_ACCEPT, SUI_KEY_ICON_COLORS, SUI_KEY_ICON_SIZES, SUI_NAVBAR_VISIBILITY, SUI_PASSWORD_STRENGTH_DEFAULT_CONDITIONS, SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS, SUI_PAYMENT_ICON_TYPES, SUI_PRODUCT_FALLBACK_COLORS, SUI_TAB_BAR, SuiAccordion, SuiAccordionContent, SuiActivityFeed, SuiActivityFilter, SuiAlert, SuiAppStoreBadge, SuiAvatar, SuiAvatarGroup, SuiBadge, SuiBanner, SuiBrandLogo, SuiBreadcrumbItem, SuiBreadcrumbs, SuiButton, SuiButtonGroup, SuiButtonGroupItem, SuiCard, SuiChartLegend, SuiChartLegendDot, SuiCheckbox, SuiCheckboxCard, SuiCheckboxLabel, SuiCircularProgressBar, SuiColorDot, SuiColorPicker, SuiCommandMenuFooter, SuiCommandMenuItem, SuiCommandMenuSearch, SuiCompactAvatarGroup, SuiCompactButton, SuiCompactSelect, SuiCompactSelectForInput, SuiContentCard, SuiContentDivider, SuiContentLabel, SuiCounterInput, SuiDateSelector, SuiDatepicker, SuiDayCell, SuiDayLabel, SuiDivider, SuiDrawerFooter, SuiDrawerHeader, SuiDropdownCaption, SuiDropdownItem, SuiDropdownMenu, SuiDropdownPanel, SuiDropdownSearch, SuiEmoji, SuiEmptyState, SuiFancyButton, SuiFileIcon, SuiFileUpload, SuiFileUploadCard, SuiFilterBar, SuiFilterItem, SuiFilterPanelFooter, SuiFilterPanelHeader, SuiFlag, SuiFormHint, SuiFormLabel, SuiHref, SuiIcon, SuiImageUpload, SuiImageUploadProfile, SuiImgRetry, SuiInlineInput, SuiInlineSelect, SuiInput, SuiIntegrationSwitch, SuiKbd, SuiKeyIcon, SuiLinkButton, SuiLogo, SuiModal, SuiModalFooter, SuiModalHeader, SuiModalSheet, SuiNotification, SuiNotificationFooter, SuiNotificationTabMenu, SuiOtpInput, SuiPageHeader, SuiPagination, SuiPasswordStrength, SuiPaymentIcon, SuiPeriodRange, SuiPopover, SuiProductCard, SuiProgressBar, SuiProgressBarLabel, SuiRadio, SuiRadioCard, SuiRadioGroup, SuiRadioLabel, SuiRating, SuiRichEditor, SuiRichEditorItem, SuiSegmentedControl, SuiSelect, SuiSidebar, SuiSlider, SuiSocialButton, SuiStatusBadge, SuiStepper, SuiStoreCard, SuiSwitch, SuiSwitchCard, SuiSwitchLabel, SuiTabChips, SuiTabMenuHorizontal, SuiTabMenuVertical, SuiTable, SuiTableCellDirective, SuiTag, SuiTagInput, SuiTextarea, SuiTimePicker, SuiTimePickerDuration, SuiTimePickerItem, SuiTimePickerStatus, SuiToastOutlet, SuiToastService, SuiTooltip, SuiTooltipPanel, SuiTopbar, SuiTopbarButton, SuiTopbarItem, SuiTopbarUser, buildCalendarGrid, buildHourList, buildMinuteList, esImagenAceptada, formatDateInput, formatDateLong, formatDateShort, formatMonthYear, formatTime, isSameTime, normalizeHex, pad2, parseTime, to12h, to24h };
|
|
13316
|
-
export type { CalendarCell, CalendarRow, DatepickerPreset, DatepickerPresetId, SuiAccordionFlipIcon, SuiActivityAvatarRef, SuiActivityFeedItem, SuiActivityFile, SuiActivityFilterState, SuiActivityTask, SuiActivityTaskState, SuiAlertAction, SuiAlertRole, SuiAlertSize, SuiAlertStyle, SuiAlertVariant, SuiAppStoreBadgeAppearance, SuiAppStoreBadgeCompany, SuiAvatarColor, SuiAvatarConfig, SuiAvatarGroupItem, SuiAvatarSize, SuiAvatarStatus, SuiAvatarTopBadge, SuiBadgeColor, SuiBadgeConfig, SuiBadgeSize, SuiBadgeType, SuiBadgeVariant, SuiBannerStyle, SuiBannerVariant, SuiBrandLogoCompany, SuiBrandLogoSize, SuiBrandLogoStyle, SuiBreadcrumbDivider, SuiBreadcrumbEntry, SuiButtonColor, SuiButtonGroupEntry, SuiButtonGroupItemSize, SuiButtonSize, SuiButtonVariant, SuiCardSize, SuiCardVariant, SuiChartLegendColor, SuiChartLegendItem, SuiCheckboxCardType, SuiCheckboxLabelSize, SuiCheckboxSize, SuiCircularProgressBarColor, SuiCircularProgressBarSize, SuiColorDotColor, SuiColorDotSize, SuiColorPickerSize, SuiCommandMenuItemSize, SuiCommandMenuItemType, SuiCompactAvatarGroupAppearance, SuiCompactAvatarGroupSize, SuiCompactButtonSize, SuiCompactButtonStyle, SuiCompactSelectForInputItem, SuiCompactSelectForInputSize, SuiCompactSelectItem, SuiCompactSelectSize, SuiCompactSelectType, SuiContentCardSize, SuiContentCardType, SuiContentDividerItem, SuiContentDividerType, SuiContentLabelBadgePlacement, SuiContentLabelSize, SuiContentLabelType, SuiCounterInputSize, SuiDateRange, SuiDateSelectorSize, SuiDatepickerCalendars, SuiDatepickerMode, SuiDatepickerSize, SuiDayCellSize, SuiDayCellType, SuiDividerOrientation, SuiDrawerFooterSize, SuiDrawerFooterType, SuiDrawerHeaderSize, SuiDrawerHeaderType, SuiDropdownItemMode, SuiDropdownItemSize, SuiDropdownMenuPopupRole, SuiDropdownMenuPosition, SuiEmojiName, SuiEmojiSize, SuiEmptyStateAction, SuiEmptyStateSize, SuiFancyButtonSize, SuiFancyButtonType, SuiFileIconColor, SuiFileIconSize, SuiFileUploadCardFile, SuiFileUploadCardState, SuiFileUploadSize, SuiFilterItemState, SuiFlagName, SuiFlagSize, SuiFooterButtonConfig, SuiFormHintVariant, SuiFormLabelSize, SuiImageUploadProfileAlignment, SuiImageUploadProfileLabels, SuiImageUploadProfileType, SuiImageUploadShape, SuiImageUploadSize, SuiInlineSelectItem, SuiInlineSelectType, SuiInputEnterKeyHint, SuiInputMode, SuiInputSize, SuiInputType, SuiIntegrationManageConfig, SuiIntegrationSwitchAppearance, SuiIntegrationSwitchSize, SuiIntegrationSwitchType, SuiKbdVariant, SuiKeyIconColor, SuiKeyIconSize, SuiKeyIconStyle, SuiLinkButtonSize, SuiLinkButtonVariant, SuiLinkConfig, SuiLogoOrientation, SuiLogoSize, SuiModalHeaderVariant, SuiModalIconVariant, SuiModalSize, SuiModalStatusAlignment, SuiNavbarVisibility, SuiNotificationStyle, SuiNotificationTab, SuiNotificationVariant, SuiOtpInputSize, SuiOtpInputType, SuiPaginationInfoFormat, SuiPaginationSize, SuiPaginationType, SuiPasswordStrengthCondition, SuiPasswordStrengthLevel, SuiPaymentIconSize, SuiPaymentIconType, SuiPeriodRangeSize, SuiPopoverFooter, SuiPopoverPosition, SuiPopoverSize, SuiProductCardFallback, SuiProductCardImage, SuiProductCardSize, SuiProgressBarColor, SuiProgressBarLabelType, SuiProgressBarSize, SuiRadioCardType, SuiRadioGroupItem, SuiRadioLabelSize, SuiRadioSize, SuiRadioValue, SuiRatingAlignment, SuiRatingAppearance, SuiRatingReviewLink, SuiRatingSize, SuiRatingType, SuiRichEditorAction, SuiRichEditorCommand, SuiRichEditorItemState, SuiRichEditorItemType, SuiRichEditorLayout, SuiSegmentedControlItem, SuiSegmentedControlSize, SuiSelectOption, SuiSelectSize, SuiSelectType, SuiSidebarBrandConfig, SuiSidebarIndicatorColor, SuiSidebarItem, SuiSidebarMobileMode, SuiSidebarProfile, SuiSidebarSearchConfig, SuiSliderSize, SuiSliderType, SuiSocialButtonBrand, SuiSocialButtonSize, SuiSocialButtonStyle, SuiStatusBadgeAppearance, SuiStatusBadgeSize, SuiStatusBadgeStatus, SuiStepperItem, SuiStepperSize, SuiStepperState, SuiStepperVariant, SuiStoreCardData, SuiStoreCardSize, SuiSwitchCardType, SuiSwitchLabelSize, SuiSwitchSize, SuiTabBar, SuiTabChipItem, SuiTabChipsSize, SuiTabMenuHorizontalItem, SuiTabMenuHorizontalSize, SuiTabMenuVerticalItem, SuiTabMenuVerticalStyle, SuiTableCellMisc, SuiTableCellPriority, SuiTableColumn, SuiTableSize, SuiTagInputSize, SuiTagSize, SuiTagStyle, SuiTextareaSize, SuiTimeDurationPreset, SuiTimeFormat, SuiTimePeriod, SuiTimePickerItemDirection, SuiTimePickerSize, SuiTimePickerStatusType, SuiTimeValue, SuiToastAction, SuiToastData, SuiToastItem, SuiToastPosition, SuiToastStyle, SuiToastVariant, SuiTooltipLargeData, SuiTooltipPosition, SuiTooltipSize, SuiTooltipTheme, SuiTooltipThemeInput, SuiTopbarAccent, SuiTopbarAction, SuiTopbarEntry, SuiTopbarSearchConfig, SuiTopbarUserConfig };
|
|
13880
|
+
export { DAY_LABELS_ES, DEFAULT_DURATION_PRESETS, DEFAULT_PRESETS, EMPTY_STATE_FOX_EMOJI, SUI_BRAND_LOGO_COMPANIES, SUI_CHART_LEGEND_COLORS, SUI_CHART_LEGEND_HEX, SUI_CHART_SERIES_COLORS, SUI_COLOR_DOT_COLORS, SUI_COLOR_DOT_HEX, SUI_CUSTOM_ICONS, SUI_EMOJI_MAP, SUI_EMOJI_STATIC, SUI_FLAG_NAMES, SUI_HEX_TO_COLOR, SUI_IMAGE_UPLOAD_ACCEPT, SUI_KEY_ICON_COLORS, SUI_KEY_ICON_SIZES, SUI_NAVBAR_VISIBILITY, SUI_PASSWORD_STRENGTH_DEFAULT_CONDITIONS, SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS, SUI_PAYMENT_ICON_TYPES, SUI_PRODUCT_FALLBACK_COLORS, SUI_TAB_BAR, SUI_TEXTOS, SUI_TEXTOS_ES, SuiAccordion, SuiAccordionContent, SuiActivityFeed, SuiActivityFilter, SuiAlert, SuiAppStoreBadge, SuiAvatar, SuiAvatarGroup, SuiBadge, SuiBanner, SuiBrandLogo, SuiBreadcrumbItem, SuiBreadcrumbs, SuiButton, SuiButtonGroup, SuiButtonGroupItem, SuiCard, SuiChartLegend, SuiChartLegendDot, SuiCheckbox, SuiCheckboxCard, SuiCheckboxLabel, SuiCircularProgressBar, SuiColorDot, SuiColorPicker, SuiCommandMenuFooter, SuiCommandMenuItem, SuiCommandMenuSearch, SuiCompactAvatarGroup, SuiCompactButton, SuiCompactSelect, SuiCompactSelectForInput, SuiContentCard, SuiContentDivider, SuiContentLabel, SuiCounterInput, SuiDateSelector, SuiDatepicker, SuiDayCell, SuiDayLabel, SuiDivider, SuiDrawerFooter, SuiDrawerHeader, SuiDropdownCaption, SuiDropdownItem, SuiDropdownMenu, SuiDropdownPanel, SuiDropdownSearch, SuiEmoji, SuiEmptyState, SuiFancyButton, SuiFileIcon, SuiFileUpload, SuiFileUploadCard, SuiFilterBar, SuiFilterItem, SuiFilterPanelFooter, SuiFilterPanelHeader, SuiFlag, SuiFormHint, SuiFormLabel, SuiHref, SuiIcon, SuiImageUpload, SuiImageUploadProfile, SuiImgRetry, SuiInlineInput, SuiInlineSelect, SuiInput, SuiIntegrationSwitch, SuiKbd, SuiKeyIcon, SuiLinkButton, SuiLogo, SuiModal, SuiModalFooter, SuiModalHeader, SuiModalSheet, SuiNotification, SuiNotificationFooter, SuiNotificationTabMenu, SuiOtpInput, SuiPageHeader, SuiPagination, SuiPasswordStrength, SuiPaymentIcon, SuiPeriodRange, SuiPopover, SuiProductCard, SuiProgressBar, SuiProgressBarLabel, SuiRadio, SuiRadioCard, SuiRadioGroup, SuiRadioLabel, SuiRating, SuiRichEditor, SuiRichEditorItem, SuiSegmentedControl, SuiSelect, SuiSidebar, SuiSlider, SuiSocialButton, SuiStatusBadge, SuiStepper, SuiStoreCard, SuiSwitch, SuiSwitchCard, SuiSwitchLabel, SuiTabChips, SuiTabMenuHorizontal, SuiTabMenuVertical, SuiTable, SuiTableCellDirective, SuiTag, SuiTagInput, SuiTextarea, SuiTimePicker, SuiTimePickerDuration, SuiTimePickerItem, SuiTimePickerStatus, SuiToastOutlet, SuiToastService, SuiTooltip, SuiTooltipPanel, SuiTopbar, SuiTopbarButton, SuiTopbarItem, SuiTopbarUser, SuiToque, buildCalendarGrid, buildHourList, buildMinuteList, esImagenAceptada, formatDateInput, formatDateLong, formatDateShort, formatMonthYear, formatTime, injectSuiTextos, isSameTime, mezclarSuiTextos, normalizeHex, pad2, parseTime, provideSuiTextos, rellenarSuiTexto, to12h, to24h };
|
|
13881
|
+
export type { CalendarCell, CalendarRow, DatepickerPreset, DatepickerPresetId, SuiAccordionFlipIcon, SuiActivityAvatarRef, SuiActivityFeedItem, SuiActivityFile, SuiActivityFilterState, SuiActivityTask, SuiActivityTaskState, SuiAlertAction, SuiAlertRole, SuiAlertSize, SuiAlertStyle, SuiAlertVariant, SuiAppStoreBadgeAppearance, SuiAppStoreBadgeCompany, SuiAvatarColor, SuiAvatarConfig, SuiAvatarGroupItem, SuiAvatarSize, SuiAvatarStatus, SuiAvatarTopBadge, SuiBadgeColor, SuiBadgeConfig, SuiBadgeSize, SuiBadgeType, SuiBadgeVariant, SuiBannerStyle, SuiBannerVariant, SuiBrandLogoCompany, SuiBrandLogoSize, SuiBrandLogoStyle, SuiBreadcrumbDivider, SuiBreadcrumbEntry, SuiButtonColor, SuiButtonGroupEntry, SuiButtonGroupItemSize, SuiButtonSize, SuiButtonVariant, SuiCardSize, SuiCardVariant, SuiChartLegendColor, SuiChartLegendItem, SuiCheckboxCardType, SuiCheckboxLabelSize, SuiCheckboxSize, SuiCircularProgressBarColor, SuiCircularProgressBarSize, SuiColorDotColor, SuiColorDotSize, SuiColorPickerSize, SuiCommandMenuItemSize, SuiCommandMenuItemType, SuiCompactAvatarGroupAppearance, SuiCompactAvatarGroupSize, SuiCompactButtonSize, SuiCompactButtonStyle, SuiCompactSelectForInputItem, SuiCompactSelectForInputSize, SuiCompactSelectItem, SuiCompactSelectSize, SuiCompactSelectType, SuiContentCardSize, SuiContentCardType, SuiContentDividerItem, SuiContentDividerType, SuiContentLabelBadgePlacement, SuiContentLabelSize, SuiContentLabelType, SuiCounterInputSize, SuiDateRange, SuiDateSelectorSize, SuiDatepickerCalendars, SuiDatepickerMode, SuiDatepickerSize, SuiDayCellSize, SuiDayCellType, SuiDividerOrientation, SuiDrawerFooterSize, SuiDrawerFooterType, SuiDrawerHeaderSize, SuiDrawerHeaderType, SuiDropdownItemMode, SuiDropdownItemSize, SuiDropdownMenuPopupRole, SuiDropdownMenuPosition, SuiEmojiName, SuiEmojiSize, SuiEmptyStateAction, SuiEmptyStateSize, SuiFancyButtonSize, SuiFancyButtonType, SuiFileIconColor, SuiFileIconSize, SuiFileUploadCardFile, SuiFileUploadCardState, SuiFileUploadSize, SuiFilterItemState, SuiFlagName, SuiFlagSize, SuiFooterButtonConfig, SuiFormHintVariant, SuiFormLabelSize, SuiImageUploadProfileAlignment, SuiImageUploadProfileLabels, SuiImageUploadProfileType, SuiImageUploadShape, SuiImageUploadSize, SuiInlineSelectItem, SuiInlineSelectType, SuiInputEnterKeyHint, SuiInputMode, SuiInputSize, SuiInputType, SuiIntegrationManageConfig, SuiIntegrationSwitchAppearance, SuiIntegrationSwitchSize, SuiIntegrationSwitchType, SuiKbdVariant, SuiKeyIconColor, SuiKeyIconSize, SuiKeyIconStyle, SuiLinkButtonSize, SuiLinkButtonVariant, SuiLinkConfig, SuiLogoOrientation, SuiLogoSize, SuiModalHeaderVariant, SuiModalIconVariant, SuiModalSize, SuiModalStatusAlignment, SuiNavbarVisibility, SuiNotificationStyle, SuiNotificationTab, SuiNotificationVariant, SuiOtpInputSize, SuiOtpInputType, SuiPaginationInfoFormat, SuiPaginationSize, SuiPaginationType, SuiPasswordStrengthCondition, SuiPasswordStrengthLevel, SuiPaymentIconSize, SuiPaymentIconType, SuiPeriodRangeSize, SuiPopoverFooter, SuiPopoverPosition, SuiPopoverSize, SuiProductCardFallback, SuiProductCardImage, SuiProductCardSize, SuiProgressBarColor, SuiProgressBarLabelType, SuiProgressBarSize, SuiRadioCardType, SuiRadioGroupItem, SuiRadioLabelSize, SuiRadioSize, SuiRadioValue, SuiRatingAlignment, SuiRatingAppearance, SuiRatingReviewLink, SuiRatingSize, SuiRatingType, SuiRichEditorAction, SuiRichEditorCommand, SuiRichEditorItemState, SuiRichEditorItemType, SuiRichEditorLayout, SuiSegmentedControlItem, SuiSegmentedControlSize, SuiSelectOption, SuiSelectSize, SuiSelectType, SuiSidebarBrandConfig, SuiSidebarIndicatorColor, SuiSidebarItem, SuiSidebarMobileMode, SuiSidebarProfile, SuiSidebarSearchConfig, SuiSliderSize, SuiSliderType, SuiSocialButtonBrand, SuiSocialButtonSize, SuiSocialButtonStyle, SuiStatusBadgeAppearance, SuiStatusBadgeSize, SuiStatusBadgeStatus, SuiStepperItem, SuiStepperSize, SuiStepperState, SuiStepperVariant, SuiStoreCardData, SuiStoreCardSize, SuiSwitchCardType, SuiSwitchLabelSize, SuiSwitchSize, SuiTabBar, SuiTabChipItem, SuiTabChipsSize, SuiTabMenuHorizontalItem, SuiTabMenuHorizontalSize, SuiTabMenuVerticalItem, SuiTabMenuVerticalStyle, SuiTableCellMisc, SuiTableCellPriority, SuiTableColumn, SuiTableSize, SuiTagInputSize, SuiTagSize, SuiTagStyle, SuiTextareaSize, SuiTextos, SuiTextosFuente, SuiTextosParciales, SuiTimeDurationPreset, SuiTimeFormat, SuiTimePeriod, SuiTimePickerItemDirection, SuiTimePickerSize, SuiTimePickerStatusType, SuiTimeValue, SuiToastAction, SuiToastData, SuiToastItem, SuiToastPosition, SuiToastStyle, SuiToastVariant, SuiTooltipLargeData, SuiTooltipPosition, SuiTooltipSize, SuiTooltipTheme, SuiTooltipThemeInput, SuiTopbarAccent, SuiTopbarAction, SuiTopbarEntry, SuiTopbarSearchConfig, SuiTopbarUserConfig };
|