@ajuarezso/sui-design-system 0.25.2 → 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 +853 -274
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +664 -122
|
@@ -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
|
|
|
@@ -46,6 +47,305 @@ declare class SuiToque {
|
|
|
46
47
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SuiToque, "[suiToque]", never, {}, {}, never, never, true, never>;
|
|
47
48
|
}
|
|
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
|
+
|
|
49
349
|
type SuiBadgeColor = 'gray' | 'blue' | 'orange' | 'red' | 'green' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal';
|
|
50
350
|
type SuiBadgeVariant = 'filled' | 'light' | 'lighter' | 'stroke' | 'dark';
|
|
51
351
|
type SuiBadgeSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
@@ -663,7 +963,10 @@ interface SuiActivityFile {
|
|
|
663
963
|
name: string;
|
|
664
964
|
/** Etiqueta corta del peso. Ej: "(4mb)" — formatear desde el consumer. */
|
|
665
965
|
size?: string;
|
|
666
|
-
/** 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)`. */
|
|
667
970
|
href?: string;
|
|
668
971
|
}
|
|
669
972
|
interface SuiActivityTask {
|
|
@@ -816,6 +1119,9 @@ type SuiActivityFeedItem = (SuiActivityFeedItemBase & {
|
|
|
816
1119
|
* (fileDownload)="onDownload($event)" (reply)="onReply($event)" />
|
|
817
1120
|
*/
|
|
818
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;
|
|
819
1125
|
readonly items: _angular_core.InputSignal<readonly SuiActivityFeedItem[]>;
|
|
820
1126
|
/** Click en el 3-dot menu trailing de cualquier row. */
|
|
821
1127
|
readonly action: _angular_core.OutputEmitterRef<{
|
|
@@ -1018,6 +1324,8 @@ interface SuiAlertAction {
|
|
|
1018
1324
|
* large → padding 14px 14px 16px, gap 12, radius-12 (default — full layout)
|
|
1019
1325
|
*/
|
|
1020
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>;
|
|
1021
1329
|
readonly variant: _angular_core.InputSignal<SuiAlertVariant>;
|
|
1022
1330
|
readonly variantStyle: _angular_core.InputSignal<SuiAlertStyle>;
|
|
1023
1331
|
readonly size: _angular_core.InputSignal<SuiAlertSize>;
|
|
@@ -1077,7 +1385,7 @@ declare class SuiAlert {
|
|
|
1077
1385
|
* conservar el footprint del icono: xsmall (icon 16) → compact `medium`;
|
|
1078
1386
|
* small/large (icon 20) → `large`; xlarge (icon 24) → `xlarge`.
|
|
1079
1387
|
*/
|
|
1080
|
-
readonly closeButtonSize: _angular_core.Signal<"
|
|
1388
|
+
readonly closeButtonSize: _angular_core.Signal<"large" | "xlarge" | "medium">;
|
|
1081
1389
|
/**
|
|
1082
1390
|
* Icon size per size variant (leading + close icons).
|
|
1083
1391
|
* Figma: xsmall=16px, small=20px, large=20px. Verified 2026-05-29.
|
|
@@ -1220,6 +1528,9 @@ interface SuiAvatarGroupItem {
|
|
|
1220
1528
|
alt?: string;
|
|
1221
1529
|
}
|
|
1222
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;
|
|
1223
1534
|
readonly size: _angular_core.InputSignal<SuiAvatarSize>;
|
|
1224
1535
|
readonly items: _angular_core.InputSignal<readonly SuiAvatarGroupItem[]>;
|
|
1225
1536
|
/** Máximo de avatares visibles antes de colapsar en "+N". Default 4. */
|
|
@@ -1327,6 +1638,8 @@ type SuiBannerStyle = 'filled' | 'light' | 'lighter' | 'stroke';
|
|
|
1327
1638
|
* </sui-banner>
|
|
1328
1639
|
*/
|
|
1329
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>;
|
|
1330
1643
|
readonly variant: _angular_core.InputSignal<SuiBannerVariant>;
|
|
1331
1644
|
readonly variantStyle: _angular_core.InputSignal<SuiBannerStyle>;
|
|
1332
1645
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
@@ -1400,6 +1713,8 @@ type SuiBrandLogoSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
|
1400
1713
|
* ariaLabel="Síguenos en GitHub" />
|
|
1401
1714
|
*/
|
|
1402
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>;
|
|
1403
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">;
|
|
1404
1719
|
readonly variant: _angular_core.InputSignal<SuiBrandLogoStyle>;
|
|
1405
1720
|
readonly size: _angular_core.InputSignal<SuiBrandLogoSize>;
|
|
@@ -1547,6 +1862,8 @@ interface SuiBreadcrumbEntry {
|
|
|
1547
1862
|
* - Dividers `aria-hidden="true"`.
|
|
1548
1863
|
*/
|
|
1549
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>;
|
|
1550
1867
|
readonly items: _angular_core.InputSignal<readonly SuiBreadcrumbEntry[]>;
|
|
1551
1868
|
readonly divider: _angular_core.InputSignal<SuiBreadcrumbDivider>;
|
|
1552
1869
|
/** Emitido cuando un item NO-active es clickeado. */
|
|
@@ -1626,7 +1943,7 @@ declare class SuiButtonGroupItem {
|
|
|
1626
1943
|
/** aria-label para icon-only buttons */
|
|
1627
1944
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1628
1945
|
/** Estado del data-attribute para CSS scoping */
|
|
1629
|
-
readonly state: _angular_core.Signal<"default" | "
|
|
1946
|
+
readonly state: _angular_core.Signal<"default" | "disabled" | "active">;
|
|
1630
1947
|
/** True cuando solo tiene icon (left o right) sin label */
|
|
1631
1948
|
readonly onlyIcon: _angular_core.Signal<boolean>;
|
|
1632
1949
|
/**
|
|
@@ -1637,7 +1954,7 @@ declare class SuiButtonGroupItem {
|
|
|
1637
1954
|
* - 'both' → ambos iconos: padding cuadrado (p)
|
|
1638
1955
|
* - 'only' → icon-only: padding cuadrado (p) → square box
|
|
1639
1956
|
*/
|
|
1640
|
-
readonly iconLayout: _angular_core.Signal<"none" | "
|
|
1957
|
+
readonly iconLayout: _angular_core.Signal<"none" | "right" | "left" | "both" | "only">;
|
|
1641
1958
|
/** Tamaño del icono en px según size del item (large/medium/small/xsmall=20, 2xsmall=16).
|
|
1642
1959
|
* En large y medium el ícono se queda en 20, igual que `sui-button`: el ícono
|
|
1643
1960
|
* que acompaña texto no escala. */
|
|
@@ -1802,7 +2119,7 @@ declare class SuiButton {
|
|
|
1802
2119
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1803
2120
|
readonly leftIcon: _angular_core.InputSignal<string | null>;
|
|
1804
2121
|
readonly rightIcon: _angular_core.InputSignal<string | null>;
|
|
1805
|
-
readonly type: _angular_core.InputSignal<"
|
|
2122
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
1806
2123
|
private _spacePressed;
|
|
1807
2124
|
private _esDelHost;
|
|
1808
2125
|
_onEnter(event: Event): void;
|
|
@@ -2039,7 +2356,7 @@ declare class SuiChartLegend {
|
|
|
2039
2356
|
* Disposición de los items: `horizontal` (row con wrap, default) o
|
|
2040
2357
|
* `vertical` (columna — leyendas laterales de donut/pie).
|
|
2041
2358
|
*/
|
|
2042
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
2359
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
2043
2360
|
/** Items con color efectivo resuelto (disabled > customColor > color > ciclo auto). */
|
|
2044
2361
|
protected readonly resolvedItems: _angular_core.Signal<ResolvedLegendItem[]>;
|
|
2045
2362
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiChartLegend, never>;
|
|
@@ -2206,7 +2523,7 @@ declare class SuiCheckboxCard implements ControlValueAccessor {
|
|
|
2206
2523
|
/** RemixIcon name (sin prefijo "ri-") para type='left-icon'. */
|
|
2207
2524
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
2208
2525
|
/** Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'. */
|
|
2209
|
-
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>;
|
|
2210
2527
|
/** URL directa al emoji para type='left-icon'. Precedencia: icon > emoji > iconSrc. */
|
|
2211
2528
|
readonly iconSrc: _angular_core.InputSignal<string | null>;
|
|
2212
2529
|
/** URL de imagen para type='avatar'. Si falla, fallback a iniciales del label. */
|
|
@@ -2334,7 +2651,7 @@ declare class SuiLinkButton {
|
|
|
2334
2651
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
2335
2652
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
2336
2653
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
2337
|
-
readonly type: _angular_core.InputSignal<"
|
|
2654
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
2338
2655
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
2339
2656
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
2340
2657
|
/** Px de los íconos por tamaño: large 20 · medium 20 · small 16. */
|
|
@@ -2565,6 +2882,8 @@ type SuiCircularProgressBarSize = 48 | 56 | 64 | 72 | 80;
|
|
|
2565
2882
|
* - ariaLabel: string opcional para `aria-label` del role=progressbar.
|
|
2566
2883
|
*/
|
|
2567
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>;
|
|
2568
2887
|
readonly value: _angular_core.InputSignal<number>;
|
|
2569
2888
|
readonly size: _angular_core.InputSignal<SuiCircularProgressBarSize>;
|
|
2570
2889
|
readonly color: _angular_core.InputSignal<SuiCircularProgressBarColor>;
|
|
@@ -2671,6 +2990,8 @@ declare function normalizeHex(input: string | null | undefined): string | null;
|
|
|
2671
2990
|
* iOS active fix: el host es un `<button>` con touchstart/touchend.
|
|
2672
2991
|
*/
|
|
2673
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>;
|
|
2674
2995
|
/** Nombre del preset. Default `gray` cuando se usa customHex (el preset no aplica). */
|
|
2675
2996
|
readonly color: _angular_core.InputSignal<SuiColorDotColor>;
|
|
2676
2997
|
/**
|
|
@@ -2689,7 +3010,7 @@ declare class SuiColorDot {
|
|
|
2689
3010
|
* - `selected` → dot 12×12 + ring 2px.
|
|
2690
3011
|
* - `disabled` → dot gris pálido, sin pointer events.
|
|
2691
3012
|
*/
|
|
2692
|
-
readonly state: _angular_core.InputSignal<"default" | "
|
|
3013
|
+
readonly state: _angular_core.InputSignal<"default" | "hover" | "selected" | "disabled">;
|
|
2693
3014
|
/**
|
|
2694
3015
|
* Tamaño. `medium` (default, Figma 24): dot 16 / hover 14 / selected 12 + anillo 18.
|
|
2695
3016
|
* `large` (32, extensión SUI para mobile): dot 22 / hover 18 / selected 16 + anillo 24.
|
|
@@ -2698,7 +3019,7 @@ declare class SuiColorDot {
|
|
|
2698
3019
|
/** aria-label override. */
|
|
2699
3020
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2700
3021
|
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
2701
|
-
/** Label por default: nombre del color
|
|
3022
|
+
/** Label por default: el nombre del color (`textos.selectorColor`), o el hex. */
|
|
2702
3023
|
readonly defaultAriaLabel: _angular_core.Signal<string>;
|
|
2703
3024
|
protected onClick(): void;
|
|
2704
3025
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiColorDot, never>;
|
|
@@ -2775,6 +3096,8 @@ type SuiColorPickerSize = 'medium' | 'large';
|
|
|
2775
3096
|
* - Dots: role="radio" + aria-checked (los renderea sui-color-dot)
|
|
2776
3097
|
*/
|
|
2777
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>;
|
|
2778
3101
|
private readonly hostRef;
|
|
2779
3102
|
/**
|
|
2780
3103
|
* Lista de colores recomendados (grid). Default los 10 canon SUI.
|
|
@@ -2790,9 +3113,11 @@ declare class SuiColorPicker {
|
|
|
2790
3113
|
*/
|
|
2791
3114
|
readonly value: _angular_core.ModelSignal<string | null>;
|
|
2792
3115
|
/** Label visible cuando no hay color seleccionado. Imperativo con tuteo (dueño, 05-10-2026, P4 a). */
|
|
2793
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3116
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
3117
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
2794
3118
|
/** Etiqueta de la sección Recommended Colors dentro del panel. */
|
|
2795
|
-
readonly recommendedLabel: _angular_core.InputSignal<string>;
|
|
3119
|
+
readonly recommendedLabel: _angular_core.InputSignal<string | null>;
|
|
3120
|
+
protected readonly recommendedLabelTexto: _angular_core.Signal<string>;
|
|
2796
3121
|
/** Si true, oculta el HSV spectrum + sliders + hex input — solo grid de presets. */
|
|
2797
3122
|
readonly presetsOnly: _angular_core.InputSignal<boolean>;
|
|
2798
3123
|
/**
|
|
@@ -2826,7 +3151,8 @@ declare class SuiColorPicker {
|
|
|
2826
3151
|
* nuevo 04-10-2026 (dueño: piso táctil 44 en el teléfono). */
|
|
2827
3152
|
readonly size: _angular_core.InputSignal<SuiColorPickerSize>;
|
|
2828
3153
|
/** aria-label del trigger. */
|
|
2829
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3154
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3155
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
2830
3156
|
/** Emitido cuando el value cambia (cualquier interacción). */
|
|
2831
3157
|
readonly change: _angular_core.OutputEmitterRef<string>;
|
|
2832
3158
|
/** Estado interno del popover. */
|
|
@@ -2962,22 +3288,22 @@ declare class SuiColorPicker {
|
|
|
2962
3288
|
* Footer del command menu (⌘K palette). 3 grupos:
|
|
2963
3289
|
* 1. Navigate: kbd ↑ + kbd ↓ + text "Navigate"
|
|
2964
3290
|
* 2. Select: kbd ↵ + text "Select"
|
|
2965
|
-
* 3. Help text + link button
|
|
3291
|
+
* 3. Help text + link button «Centro de ayuda» (push right via flex-1 + justify-end)
|
|
2966
3292
|
*
|
|
2967
3293
|
* Container: bg=white, border-top stroke-soft-200, padding 14px 20px, gap=12,
|
|
2968
3294
|
* items-center, w=600px.
|
|
2969
3295
|
*
|
|
2970
3296
|
* EXACT:
|
|
2971
|
-
* Text labels (
|
|
3297
|
+
* Text labels (Navegar/Seleccionar/ayuda): Paragraph/X Small 12/16 text-sub-600
|
|
2972
3298
|
* Link button: Label/X Small Medium 12/16 primary-base (sin underline default)
|
|
2973
3299
|
* Kbds: variant subtle, contienen iconos 16×16
|
|
2974
3300
|
*
|
|
2975
3301
|
* API:
|
|
2976
|
-
* - navigateLabel: string ('
|
|
2977
|
-
* - selectLabel: string ('
|
|
2978
|
-
* - helpText: string | null ('
|
|
3302
|
+
* - navigateLabel: string ('Navegar' por default)
|
|
3303
|
+
* - selectLabel: string ('Seleccionar')
|
|
3304
|
+
* - helpText: string | null ('¿No es lo que buscas? Prueba el')
|
|
2979
3305
|
* — copy previo al link; null oculta el bloque de ayuda completo
|
|
2980
|
-
* - helpLink: SuiLinkConfig | string | null ('
|
|
3306
|
+
* - helpLink: SuiLinkConfig | string | null ('Centro de ayuda') — string
|
|
2981
3307
|
* shorthand = solo label (renderiza <button>, emite helpClicked);
|
|
2982
3308
|
* SuiLinkConfig { label, href?, target?, rel? } = <a> real con
|
|
2983
3309
|
* rel automático 'noopener noreferrer' si target='_blank'.
|
|
@@ -2985,13 +3311,20 @@ declare class SuiColorPicker {
|
|
|
2985
3311
|
* - (helpClicked): output cuando el link se clickea
|
|
2986
3312
|
*/
|
|
2987
3313
|
declare class SuiCommandMenuFooter {
|
|
2988
|
-
|
|
2989
|
-
readonly
|
|
2990
|
-
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>;
|
|
2991
3323
|
/** Link de ayuda — string shorthand (solo label, emite `helpClicked`) o
|
|
2992
3324
|
* SuiLinkConfig { label, href?, target?, rel? }: con href renderiza <a> real;
|
|
2993
|
-
* rel automático 'noopener noreferrer' para _blank. null = sin link.
|
|
2994
|
-
|
|
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>;
|
|
2995
3328
|
/** Config resuelta del link (string → { label }, rel automático). */
|
|
2996
3329
|
protected readonly helpLinkCfg: _angular_core.Signal<SuiLinkConfig | null>;
|
|
2997
3330
|
readonly helpClicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
@@ -3065,6 +3398,8 @@ declare class SuiCommandMenuFooter {
|
|
|
3065
3398
|
type SuiCommandMenuItemType = 'basic' | 'left-icon' | 'avatar' | 'brand' | 'company' | 'country';
|
|
3066
3399
|
type SuiCommandMenuItemSize = 'small' | 'medium';
|
|
3067
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>;
|
|
3068
3403
|
readonly type: _angular_core.InputSignal<SuiCommandMenuItemType>;
|
|
3069
3404
|
readonly size: _angular_core.InputSignal<SuiCommandMenuItemSize>;
|
|
3070
3405
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -3096,6 +3431,14 @@ declare class SuiCommandMenuItem {
|
|
|
3096
3431
|
readonly leadingSize: _angular_core.Signal<20 | 40>;
|
|
3097
3432
|
/** Para sui-avatar, traduce a SuiAvatarSize. */
|
|
3098
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;
|
|
3099
3442
|
onClick(event: MouseEvent): void;
|
|
3100
3443
|
onButtonClick(event: MouseEvent): void;
|
|
3101
3444
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCommandMenuItem, never>;
|
|
@@ -3134,8 +3477,13 @@ declare class SuiCommandMenuItem {
|
|
|
3134
3477
|
* (#335cff). El search icon en active sale naranja por override de marca.
|
|
3135
3478
|
*/
|
|
3136
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>;
|
|
3137
3482
|
readonly value: _angular_core.InputSignal<string>;
|
|
3138
|
-
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>;
|
|
3139
3487
|
/** Mostrar el chip ⌘K cuando el input está vacío. */
|
|
3140
3488
|
readonly shortcut: _angular_core.InputSignal<boolean>;
|
|
3141
3489
|
/** Mostrar el botón derecho (info en default, close en active). */
|
|
@@ -3149,7 +3497,7 @@ declare class SuiCommandMenuSearch {
|
|
|
3149
3497
|
onInput(event: Event): void;
|
|
3150
3498
|
onClear(): void;
|
|
3151
3499
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCommandMenuSearch, never>;
|
|
3152
|
-
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>;
|
|
3153
3501
|
}
|
|
3154
3502
|
|
|
3155
3503
|
/**
|
|
@@ -3295,7 +3643,7 @@ declare class SuiCompactButton {
|
|
|
3295
3643
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
3296
3644
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
3297
3645
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
3298
|
-
readonly type: _angular_core.InputSignal<"
|
|
3646
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
3299
3647
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3300
3648
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
3301
3649
|
readonly iconSize: _angular_core.Signal<number>;
|
|
@@ -3392,7 +3740,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3392
3740
|
readonly arrowIcon: _angular_core.Signal<"arrow-up-s-line" | "arrow-down-s-line">;
|
|
3393
3741
|
readonly displayValue: _angular_core.Signal<string>;
|
|
3394
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>;
|
|
3395
|
-
readonly flagSizePx: _angular_core.Signal<
|
|
3743
|
+
readonly flagSizePx: _angular_core.Signal<16 | 20>;
|
|
3396
3744
|
onHostClick(event: Event): void;
|
|
3397
3745
|
protected onMenuOpenedChange(open: boolean): void;
|
|
3398
3746
|
protected selectItem(item: SuiCompactSelectForInputItem<T>): void;
|
|
@@ -3482,7 +3830,9 @@ declare class SuiCompactSelect<T = string> implements ControlValueAccessor {
|
|
|
3482
3830
|
* Nombre accesible del trigger (fix a11y 04-10-2026). Imprescindible con
|
|
3483
3831
|
* `type="icon"`, que no muestra texto: sin esto el lector anunciaba «botón»
|
|
3484
3832
|
* sin decir qué elige. Sin `ariaLabel`, el tipo icon usa el label del ítem
|
|
3485
|
-
* 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).
|
|
3486
3836
|
*/
|
|
3487
3837
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3488
3838
|
readonly clicked: _angular_core.OutputEmitterRef<Event>;
|
|
@@ -3745,6 +4095,8 @@ type SuiContentCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | '
|
|
|
3745
4095
|
área táctil de 40 (extensión SUI 03-10-2026, mobile). */
|
|
3746
4096
|
type SuiContentCardSize = 'medium' | 'large';
|
|
3747
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>;
|
|
3748
4100
|
/** Tipo de leading visual. */
|
|
3749
4101
|
readonly type: _angular_core.InputSignal<SuiContentCardType>;
|
|
3750
4102
|
/** Título — Label/Small 14/20, text-strong-950. */
|
|
@@ -3775,7 +4127,8 @@ declare class SuiContentCard {
|
|
|
3775
4127
|
/** Mostrar el botón X de dismiss. Default true. */
|
|
3776
4128
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
3777
4129
|
/** aria-label del botón X. */
|
|
3778
|
-
readonly dismissAriaLabel: _angular_core.InputSignal<string>;
|
|
4130
|
+
readonly dismissAriaLabel: _angular_core.InputSignal<string | null>;
|
|
4131
|
+
protected readonly dismissAriaLabelTexto: _angular_core.Signal<string>;
|
|
3779
4132
|
/**
|
|
3780
4133
|
* Tamaño de la X de quitar (la fila no cambia: sigue en 72).
|
|
3781
4134
|
* `medium` (default, Figma): 20 × 20 sin área extra.
|
|
@@ -3898,6 +4251,9 @@ interface SuiContentDividerItem {
|
|
|
3898
4251
|
* (itemClick)="onNav($event)" />
|
|
3899
4252
|
*/
|
|
3900
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;
|
|
3901
4257
|
readonly type: _angular_core.InputSignal<SuiContentDividerType>;
|
|
3902
4258
|
/** Texto para los variants text-line / text / solid-text / text-button. */
|
|
3903
4259
|
readonly text: _angular_core.InputSignal<string>;
|
|
@@ -4070,11 +4426,13 @@ type SuiCounterInputSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' |
|
|
|
4070
4426
|
* <sui-counter-input formControlName="cantidad" [min]="0" />
|
|
4071
4427
|
*/
|
|
4072
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>;
|
|
4073
4431
|
readonly size: _angular_core.InputSignal<SuiCounterInputSize>;
|
|
4074
4432
|
/** El form-label no tiene 'large' — se capea a medium (el label no escala). */
|
|
4075
4433
|
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
4076
4434
|
/** Ícono de los botones − / +: 20 hasta large, 24 en xlarge (botón de 44). */
|
|
4077
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
4435
|
+
protected readonly iconSize: _angular_core.Signal<24 | 20>;
|
|
4078
4436
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
4079
4437
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
4080
4438
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -4089,8 +4447,10 @@ declare class SuiCounterInput implements ControlValueAccessor {
|
|
|
4089
4447
|
readonly step: _angular_core.InputSignal<number>;
|
|
4090
4448
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
4091
4449
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
4092
|
-
readonly decrementLabel: _angular_core.InputSignal<string>;
|
|
4093
|
-
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>;
|
|
4094
4454
|
/** a11y (04-10-2026): el spinbutton toma su nombre del label visible
|
|
4095
4455
|
* (aria-labelledby) salvo que se pase `ariaLabel`, y se describe con el hint. */
|
|
4096
4456
|
protected readonly _labelId: string;
|
|
@@ -4168,6 +4528,8 @@ type SuiDateSelectorSize = 'medium' | 'large';
|
|
|
4168
4528
|
* <sui-date-selector label="Enero 2025" [leftIcon]="false" [rightIcon]="false" />
|
|
4169
4529
|
*/
|
|
4170
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>;
|
|
4171
4533
|
/** Texto del label (ej. "Enero 2025", "January 2024"). */
|
|
4172
4534
|
readonly label: _angular_core.InputSignal<string>;
|
|
4173
4535
|
/** Mostrar arrow izquierdo (prev). Default true. */
|
|
@@ -4334,6 +4696,8 @@ interface CalendarRow {
|
|
|
4334
4696
|
* - Inline: pasar [inline]="true" para renderear el calendar SIN trigger
|
|
4335
4697
|
*/
|
|
4336
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>;
|
|
4337
4701
|
private readonly hostEl;
|
|
4338
4702
|
private readonly destroyRef;
|
|
4339
4703
|
readonly mode: _angular_core.InputSignal<SuiDatepickerMode>;
|
|
@@ -4402,7 +4766,7 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4402
4766
|
* `large` (44) solo con el campo xlarge — canon del dueño 04-10-2026, piso
|
|
4403
4767
|
* táctil de 44. Con el resto de sizes, las piezas de siempre (medium).
|
|
4404
4768
|
*/
|
|
4405
|
-
readonly partSize: _angular_core.Signal<"
|
|
4769
|
+
readonly partSize: _angular_core.Signal<"large" | "medium">;
|
|
4406
4770
|
readonly effectiveCalendars: _angular_core.Signal<SuiDatepickerCalendars>;
|
|
4407
4771
|
private _onChange;
|
|
4408
4772
|
private _onTouched;
|
|
@@ -4434,7 +4798,7 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4434
4798
|
/** ¿El trigger muestra un valor (no el placeholder)? Pinta el texto oscuro. */
|
|
4435
4799
|
readonly hasDisplayValue: _angular_core.Signal<boolean>;
|
|
4436
4800
|
/** Nombre del panel para el lector de pantalla (role dialog / group). */
|
|
4437
|
-
readonly panelAriaLabel: _angular_core.Signal<
|
|
4801
|
+
readonly panelAriaLabel: _angular_core.Signal<string>;
|
|
4438
4802
|
/** «martes 7 de octubre de 2026» para cada celda (antes «Día 7»). */
|
|
4439
4803
|
cellAriaLabel(cell: CalendarCell): string;
|
|
4440
4804
|
/** a11y (04-10-2026): flechas dentro de la grilla mueven el foco entre los
|
|
@@ -4530,6 +4894,8 @@ type SuiDayCellSize = 'medium' | 'large';
|
|
|
4530
4894
|
* <sui-day-cell day="14" [disabled]="true" />
|
|
4531
4895
|
*/
|
|
4532
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>;
|
|
4533
4899
|
/** Número del día (1-31). Se acepta string para flexibilidad. */
|
|
4534
4900
|
readonly day: _angular_core.InputSignal<string | number>;
|
|
4535
4901
|
/** Type=Basic (default) o Range (entre extremos / extremo del range). */
|
|
@@ -4672,17 +5038,28 @@ type SuiDrawerFooterSize = 'medium' | 'large';
|
|
|
4672
5038
|
* />
|
|
4673
5039
|
*/
|
|
4674
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;
|
|
4675
5051
|
readonly type: _angular_core.InputSignal<SuiDrawerFooterType>;
|
|
4676
5052
|
/** Botones del pie: `medium` 40 (default) · `large` 48 para el teléfono
|
|
4677
5053
|
* (04-10-2026, piso táctil 44). */
|
|
4678
5054
|
readonly size: _angular_core.InputSignal<SuiDrawerFooterSize>;
|
|
4679
5055
|
/** Botón primario (filled primary-base) — string shorthand (solo label) o
|
|
4680
5056
|
* SuiFooterButtonConfig { label, disabled? }. Interfaz compartida con
|
|
4681
|
-
* sui-filter-panel-footer. */
|
|
4682
|
-
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>;
|
|
4683
5059
|
/** Botón secundario (stroke neutral) — string shorthand o
|
|
4684
|
-
* SuiFooterButtonConfig. null (o label vacío) = ocultar.
|
|
4685
|
-
|
|
5060
|
+
* SuiFooterButtonConfig. null (o label vacío) = ocultar. Sin pasar:
|
|
5061
|
+
* `textos.comun.cancelar`. */
|
|
5062
|
+
readonly secondaryButton: _angular_core.InputSignal<string | SuiFooterButtonConfig | null | undefined>;
|
|
4686
5063
|
/** Config resuelta del botón primario (string → { label }). */
|
|
4687
5064
|
protected readonly primaryCfg: _angular_core.Signal<SuiFooterButtonConfig>;
|
|
4688
5065
|
/** Config resuelta del botón secundario (string → { label }; null/label vacío
|
|
@@ -4804,6 +5181,8 @@ type SuiDrawerHeaderSize = 'small' | 'large' | 'xlarge';
|
|
|
4804
5181
|
* />
|
|
4805
5182
|
*/
|
|
4806
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>;
|
|
4807
5186
|
readonly type: _angular_core.InputSignal<SuiDrawerHeaderType>;
|
|
4808
5187
|
readonly size: _angular_core.InputSignal<SuiDrawerHeaderSize>;
|
|
4809
5188
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -4839,7 +5218,8 @@ declare class SuiDrawerHeader {
|
|
|
4839
5218
|
/** Muestra divider 1px al fondo del header. Default false. */
|
|
4840
5219
|
readonly showDivider: _angular_core.InputSignal<boolean>;
|
|
4841
5220
|
/** aria-label del close button. */
|
|
4842
|
-
readonly dismissAriaLabel: _angular_core.InputSignal<string>;
|
|
5221
|
+
readonly dismissAriaLabel: _angular_core.InputSignal<string | null>;
|
|
5222
|
+
protected readonly dismissAriaLabelTexto: _angular_core.Signal<string>;
|
|
4843
5223
|
/** Click en el close button. */
|
|
4844
5224
|
readonly dismiss: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
4845
5225
|
/** Click en el Link Button inline (solo cuando `link` está set). */
|
|
@@ -5056,6 +5436,16 @@ declare class SuiDropdownItem {
|
|
|
5056
5436
|
* - panelClass: sui-dropdown-menu__overlay-pane (estilos globales en
|
|
5057
5437
|
* src/styles/_sui-dropdown-menu-overlay.scss)
|
|
5058
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
|
+
*
|
|
5059
5449
|
* Estilos del panel viven en `src/styles/_sui-dropdown-menu-overlay.scss`
|
|
5060
5450
|
* (global, porque CDK Overlay monta el panel fuera del shadow del component).
|
|
5061
5451
|
*/
|
|
@@ -5072,7 +5462,7 @@ type SuiDropdownMenuPosition = 'auto' | 'below' | 'above';
|
|
|
5072
5462
|
* 'listbox' solo es válido cuando los hijos son option, no menuitem.
|
|
5073
5463
|
*/
|
|
5074
5464
|
type SuiDropdownMenuPopupRole = 'menu' | 'listbox' | 'true';
|
|
5075
|
-
declare class SuiDropdownMenu {
|
|
5465
|
+
declare class SuiDropdownMenu implements AfterViewInit, OnChanges {
|
|
5076
5466
|
/** Si true, el panel matchea el ancho del trigger. Default: auto width. */
|
|
5077
5467
|
readonly matchWidth: _angular_core.InputSignal<boolean>;
|
|
5078
5468
|
/** Estrategia ante espacio insuficiente. Default (true): el pane se ENCOGE
|
|
@@ -5102,6 +5492,11 @@ declare class SuiDropdownMenu {
|
|
|
5102
5492
|
* proyectados llevan role="menuitem"). Los consumers de tipo listbox
|
|
5103
5493
|
* (sui-select / compact-selects, items con role="option") DEBEN pasar
|
|
5104
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"`.
|
|
5105
5500
|
*/
|
|
5106
5501
|
readonly popupRole: _angular_core.InputSignal<SuiDropdownMenuPopupRole>;
|
|
5107
5502
|
/**
|
|
@@ -5125,6 +5520,16 @@ declare class SuiDropdownMenu {
|
|
|
5125
5520
|
private _overlaySubs;
|
|
5126
5521
|
private _resizeObserver;
|
|
5127
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;
|
|
5128
5533
|
onTriggerClick(event: MouseEvent): void;
|
|
5129
5534
|
onTriggerKeydown(event: KeyboardEvent): void;
|
|
5130
5535
|
toggle(): void;
|
|
@@ -5178,7 +5583,7 @@ declare class SuiDropdownPanel {
|
|
|
5178
5583
|
*
|
|
5179
5584
|
* Default:
|
|
5180
5585
|
* search icon 20×20 leading, color text-soft-400
|
|
5181
|
-
* placeholder
|
|
5586
|
+
* placeholder «Buscar…» color text-soft-400 (16 px en ≤767 por el zoom de iOS)
|
|
5182
5587
|
*
|
|
5183
5588
|
* Active (con valor escrito):
|
|
5184
5589
|
* search icon: icon-sub-600 (oscurece vs el soft-400 de Default)
|
|
@@ -5191,9 +5596,14 @@ declare class SuiDropdownPanel {
|
|
|
5191
5596
|
* <sui-dropdown-search [(value)]="query" placeholder="Buscar país..." (cleared)="onClear()" />
|
|
5192
5597
|
*/
|
|
5193
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>;
|
|
5194
5601
|
readonly value: _angular_core.ModelSignal<string>;
|
|
5195
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
5602
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
5603
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
5196
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>;
|
|
5197
5607
|
/** Fired cuando el user clickea el icono de clear (X). */
|
|
5198
5608
|
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
5199
5609
|
/** Fired en cada input change (igual que value() pero con event). */
|
|
@@ -5202,7 +5612,7 @@ declare class SuiDropdownSearch {
|
|
|
5202
5612
|
onInput(event: Event): void;
|
|
5203
5613
|
onClear(event: MouseEvent): void;
|
|
5204
5614
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiDropdownSearch, never>;
|
|
5205
|
-
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>;
|
|
5206
5616
|
}
|
|
5207
5617
|
|
|
5208
5618
|
/**
|
|
@@ -5274,7 +5684,7 @@ type SuiEmojiName = keyof typeof SUI_EMOJI_MAP;
|
|
|
5274
5684
|
type SuiEmojiSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
5275
5685
|
declare class SuiEmoji {
|
|
5276
5686
|
/** Nombre del emoji del catálogo. Si se provee `src`, este se ignora. */
|
|
5277
|
-
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>;
|
|
5278
5688
|
/** URL directa al emoji (override del catálogo). Útil para usar emojis fuera del map. */
|
|
5279
5689
|
readonly src: _angular_core.InputSignal<string | null>;
|
|
5280
5690
|
/** Tamaño del emoji. */
|
|
@@ -5509,7 +5919,7 @@ declare class SuiFancyButton {
|
|
|
5509
5919
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
5510
5920
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
5511
5921
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
5512
|
-
readonly htmlType: _angular_core.InputSignal<"
|
|
5922
|
+
readonly htmlType: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
5513
5923
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
5514
5924
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
5515
5925
|
readonly iconSize: _angular_core.Signal<number>;
|
|
@@ -5593,6 +6003,9 @@ type SuiFileIconColor = 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue'
|
|
|
5593
6003
|
* auto-detect from extension. Defaults to gray for unknown types.
|
|
5594
6004
|
*/
|
|
5595
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;
|
|
5596
6009
|
readonly filename: _angular_core.InputSignal<string>;
|
|
5597
6010
|
readonly extension: _angular_core.InputSignal<string>;
|
|
5598
6011
|
readonly size: _angular_core.InputSignal<SuiFileIconSize>;
|
|
@@ -5716,6 +6129,8 @@ interface SuiFileUploadCardFile {
|
|
|
5716
6129
|
* - retryClicked: click en "Try Again" (solo state==='error')
|
|
5717
6130
|
*/
|
|
5718
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>;
|
|
5719
6134
|
/** Archivo mostrado — string shorthand (= filename) o { filename, extension? }. */
|
|
5720
6135
|
readonly file: _angular_core.InputSignal<string | SuiFileUploadCardFile>;
|
|
5721
6136
|
/** Config resuelta del archivo (string → { filename }). */
|
|
@@ -5726,10 +6141,14 @@ declare class SuiFileUploadCard {
|
|
|
5726
6141
|
readonly statusText: _angular_core.InputSignal<string | null>;
|
|
5727
6142
|
readonly showStatus: _angular_core.InputSignal<boolean>;
|
|
5728
6143
|
/** Textos para el lector de pantalla (antes fijos en inglés). */
|
|
5729
|
-
readonly cancelLabel: _angular_core.InputSignal<string>;
|
|
5730
|
-
readonly
|
|
5731
|
-
readonly
|
|
5732
|
-
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>;
|
|
5733
6152
|
readonly actionClicked: _angular_core.OutputEmitterRef<void>;
|
|
5734
6153
|
readonly retryClicked: _angular_core.OutputEmitterRef<void>;
|
|
5735
6154
|
/** Default status text por state — override-able vía input. */
|
|
@@ -5817,12 +6236,15 @@ type SuiFileUploadSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
5817
6236
|
* - errorEvent: emite string con el motivo del rechazo si falla validación.
|
|
5818
6237
|
*/
|
|
5819
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>;
|
|
5820
6241
|
readonly accept: _angular_core.InputSignal<string>;
|
|
5821
6242
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
5822
6243
|
readonly maxSize: _angular_core.InputSignal<number>;
|
|
5823
6244
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
5824
6245
|
readonly subtitle: _angular_core.InputSignal<string | null>;
|
|
5825
|
-
readonly browseLabel: _angular_core.InputSignal<string>;
|
|
6246
|
+
readonly browseLabel: _angular_core.InputSignal<string | null>;
|
|
6247
|
+
protected readonly browseLabelTexto: _angular_core.Signal<string>;
|
|
5826
6248
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5827
6249
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
5828
6250
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
@@ -5832,13 +6254,13 @@ declare class SuiFileUpload {
|
|
|
5832
6254
|
protected readonly inputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
5833
6255
|
protected readonly dragging: _angular_core.WritableSignal<boolean>;
|
|
5834
6256
|
protected readonly internalError: _angular_core.WritableSignal<string | null>;
|
|
5835
|
-
protected readonly state: _angular_core.Signal<"
|
|
6257
|
+
protected readonly state: _angular_core.Signal<"default" | "error" | "disabled" | "dragover">;
|
|
5836
6258
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
5837
6259
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
5838
6260
|
protected readonly resolvedErrorMessage: _angular_core.Signal<string | null>;
|
|
5839
6261
|
/** Icon size px. Figma verified = 24 (medium). small/large/xlarge escalan +4
|
|
5840
6262
|
* (small 20 → medium 24 → large 28 → xlarge 32) — extensión de proyecto. */
|
|
5841
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
6263
|
+
protected readonly iconSize: _angular_core.Signal<24 | 20 | 32 | 28>;
|
|
5842
6264
|
onClick(): void;
|
|
5843
6265
|
/** Browse File button — abre el picker. stopPropagation evita doble-open
|
|
5844
6266
|
* (el host también es clickeable). */
|
|
@@ -5982,7 +6404,7 @@ declare class SuiFilterItem {
|
|
|
5982
6404
|
* leftIcon(on | off) × linkButton(on | off) = 4 combos
|
|
5983
6405
|
*
|
|
5984
6406
|
* Header del panel de filtros vertical. Slot izquierdo opcional (icono), label
|
|
5985
|
-
* en negrita al centro/izquierda, y un link
|
|
6407
|
+
* en negrita al centro/izquierda, y un link «Limpiar» opcional a la derecha.
|
|
5986
6408
|
*
|
|
5987
6409
|
* EXACT (pulled from audit reports.json → name="Filters"):
|
|
5988
6410
|
* Container px-20 py-16, border-bottom stroke/soft-200, w-400px
|
|
@@ -6009,10 +6431,12 @@ declare class SuiFilterItem {
|
|
|
6009
6431
|
* (clearClick)="onClear()" />
|
|
6010
6432
|
*/
|
|
6011
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>;
|
|
6012
6436
|
readonly label: _angular_core.InputSignal<string>;
|
|
6013
6437
|
/** Icono opcional a la izquierda del label (20×20). */
|
|
6014
6438
|
readonly leftIcon: _angular_core.InputSignal<string | null>;
|
|
6015
|
-
/** Link de limpieza a la derecha: `true` = label default '
|
|
6439
|
+
/** Link de limpieza a la derecha: `true` = label default 'Limpiar', string =
|
|
6016
6440
|
* label custom, `false` (default) = oculto. */
|
|
6017
6441
|
readonly clear: _angular_core.InputSignal<string | boolean>;
|
|
6018
6442
|
/** Label resuelto del link (null = oculto). */
|
|
@@ -6032,12 +6456,14 @@ declare class SuiFilterPanelHeader {
|
|
|
6032
6456
|
* Type(Buttons) = 1 combo
|
|
6033
6457
|
*
|
|
6034
6458
|
* Footer del panel de filtros vertical: dos botones full-width lado a lado —
|
|
6035
|
-
*
|
|
6459
|
+
* «Limpiar» (stroke, bg/white-0 + border) y «Aplicar» (filled primary).
|
|
6036
6460
|
*
|
|
6037
6461
|
* EXACT (verificado vía Figma MCP — node 4415:863 / outer 4415:858,
|
|
6038
6462
|
* Actions wrapper 4415:857):
|
|
6039
6463
|
* Container px-20 py-16, border-top stroke/soft-200, overflow-clip,
|
|
6040
|
-
* 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)
|
|
6041
6467
|
* Clear button bg-white + border stroke/soft-200, p-8px, radius-8,
|
|
6042
6468
|
* text/sub-600 → sui-button variant="stroke" color="neutral" size="small"
|
|
6043
6469
|
* Apply button bg primary-base, text static-white, p-8px, radius-8
|
|
@@ -6047,7 +6473,7 @@ declare class SuiFilterPanelHeader {
|
|
|
6047
6473
|
* Token map (Figma → sui-tokens.scss):
|
|
6048
6474
|
* px-20 py-16 → 16px 20px
|
|
6049
6475
|
* border-top → 1px solid --sui-stroke-soft-200
|
|
6050
|
-
* gap (Actions) →
|
|
6476
|
+
* gap (Actions) → 12px (Figma dice 16; manda el canon de sui-modal-footer)
|
|
6051
6477
|
* primary-base → --sui-primary-base (via sui-button filled primary)
|
|
6052
6478
|
* button p-8/r-8 → sui-button size="small" (height 36, padding 8, radius 8)
|
|
6053
6479
|
*
|
|
@@ -6061,14 +6487,19 @@ declare class SuiFilterPanelHeader {
|
|
|
6061
6487
|
* (apply)="onApply()" />
|
|
6062
6488
|
*/
|
|
6063
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>;
|
|
6064
6492
|
/** Botón "Clear" (stroke neutral) — string shorthand (solo label) o
|
|
6065
6493
|
* SuiFooterButtonConfig { label, disabled? }. Interfaz compartida con
|
|
6066
|
-
* sui-drawer-footer. */
|
|
6067
|
-
readonly clearButton: _angular_core.InputSignal<string | SuiFooterButtonConfig>;
|
|
6068
|
-
/** Botón "Apply" (filled primary) — string shorthand o SuiFooterButtonConfig.
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
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">;
|
|
6072
6503
|
/** Config resuelta del botón Clear (string → { label }). */
|
|
6073
6504
|
protected readonly clearCfg: _angular_core.Signal<SuiFooterButtonConfig>;
|
|
6074
6505
|
/** Config resuelta del botón Apply (string → { label }). */
|
|
@@ -6311,10 +6742,14 @@ interface SuiImageUploadProfileLabels {
|
|
|
6311
6742
|
* el consumer cablea (upload)/(change) a su propio <input type=file> o flujo.
|
|
6312
6743
|
*/
|
|
6313
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>;
|
|
6314
6747
|
readonly imageUrl: _angular_core.InputSignal<string | null>;
|
|
6315
6748
|
readonly companyLogoSrc: _angular_core.InputSignal<string | null>;
|
|
6316
|
-
readonly title: _angular_core.InputSignal<string>;
|
|
6317
|
-
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>;
|
|
6318
6753
|
readonly alignment: _angular_core.InputSignal<SuiImageUploadProfileAlignment>;
|
|
6319
6754
|
readonly type: _angular_core.InputSignal<SuiImageUploadProfileType>;
|
|
6320
6755
|
/** Copy de los botones (i18n) — objeto parcial; lo no seteado cae al default. */
|
|
@@ -6451,6 +6886,8 @@ declare function esImagenAceptada(file: Pick<File, 'type' | 'name'>): boolean;
|
|
|
6451
6886
|
* - errorEvent: mensaje de error de validación
|
|
6452
6887
|
*/
|
|
6453
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>;
|
|
6454
6891
|
/**
|
|
6455
6892
|
* Ocupa el ancho del contenedor en vez del cuadrado fijo de `size`.
|
|
6456
6893
|
*
|
|
@@ -6484,15 +6921,15 @@ declare class SuiImageUpload {
|
|
|
6484
6921
|
protected readonly sizePx: _angular_core.Signal<number>;
|
|
6485
6922
|
/** Camera icon px en el empty state. xl escala a 20, resto 16
|
|
6486
6923
|
* (matchea el escalado del contenedor 32→40 en SCSS). */
|
|
6487
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
6924
|
+
protected readonly iconSize: _angular_core.Signal<16 | 20>;
|
|
6488
6925
|
/** Ícono del lápiz y el tacho (editable): 20 en botones de 40, 16 en sm (32). */
|
|
6489
|
-
protected readonly ctrlIconSize: _angular_core.Signal<
|
|
6926
|
+
protected readonly ctrlIconSize: _angular_core.Signal<16 | 20>;
|
|
6490
6927
|
protected readonly hasSrc: _angular_core.Signal<boolean>;
|
|
6491
6928
|
/** Hay imagen y se muestra el botón «Quitar» debajo (sin `editable`). */
|
|
6492
6929
|
protected readonly conQuitar: _angular_core.Signal<boolean>;
|
|
6493
6930
|
/** Valor del `accept` del input file (incluye HEIC/HEIF). */
|
|
6494
6931
|
protected readonly accept: string;
|
|
6495
|
-
protected readonly state: _angular_core.Signal<"
|
|
6932
|
+
protected readonly state: _angular_core.Signal<"filled" | "disabled" | "dragover" | "empty">;
|
|
6496
6933
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
6497
6934
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
6498
6935
|
onHostClick(): void;
|
|
@@ -6597,10 +7034,13 @@ declare class SuiImageUpload {
|
|
|
6597
7034
|
* No se modeló como prop; el render lo cubre el value().
|
|
6598
7035
|
*/
|
|
6599
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>;
|
|
6600
7039
|
/** Valor del input (two-way bindable + CVA). */
|
|
6601
7040
|
readonly value: _angular_core.ModelSignal<string>;
|
|
6602
7041
|
/** Placeholder mostrado cuando value está vacío. */
|
|
6603
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
7042
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
7043
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
6604
7044
|
/**
|
|
6605
7045
|
* Leading icon (RemixIcon name). `false` lo oculta. Default 'user-3-line'
|
|
6606
7046
|
* (espeja el símbolo Figma).
|
|
@@ -6611,7 +7051,8 @@ declare class SuiInlineInput implements ControlValueAccessor {
|
|
|
6611
7051
|
/** Deshabilita la interacción. */
|
|
6612
7052
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
6613
7053
|
/** Texto del botón "editar" para a11y (aria-label). */
|
|
6614
|
-
readonly editLabel: _angular_core.InputSignal<string>;
|
|
7054
|
+
readonly editLabel: _angular_core.InputSignal<string | null>;
|
|
7055
|
+
protected readonly editLabelTexto: _angular_core.Signal<string>;
|
|
6615
7056
|
/** Emite el valor confirmado (botón check / Enter). */
|
|
6616
7057
|
readonly confirm: _angular_core.OutputEmitterRef<string>;
|
|
6617
7058
|
/** Emite cuando se cancela la edición (botón close / Escape). */
|
|
@@ -6738,6 +7179,8 @@ type SuiInputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' |
|
|
|
6738
7179
|
*/
|
|
6739
7180
|
type SuiInputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
|
|
6740
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>;
|
|
6741
7184
|
readonly size: _angular_core.InputSignal<SuiInputSize>;
|
|
6742
7185
|
readonly type: _angular_core.InputSignal<SuiInputType>;
|
|
6743
7186
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -6846,7 +7289,7 @@ declare class SuiInput implements ControlValueAccessor {
|
|
|
6846
7289
|
readonly showClear: _angular_core.InputSignal<boolean>;
|
|
6847
7290
|
/** Remix icon name for built-in icon slot */
|
|
6848
7291
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
6849
|
-
readonly iconPosition: _angular_core.InputSignal<"
|
|
7292
|
+
readonly iconPosition: _angular_core.InputSignal<"right" | "left">;
|
|
6850
7293
|
/**
|
|
6851
7294
|
* Cuando un pointerdown ocurre fuera del host del componente, hace blur en
|
|
6852
7295
|
* el input — cierra el teclado iOS al tocar zonas no-interactivas. Default
|
|
@@ -7115,6 +7558,8 @@ interface SuiIntegrationManageConfig {
|
|
|
7115
7558
|
* <sui-integration-switch title="..." [manage]="false" />
|
|
7116
7559
|
*/
|
|
7117
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>;
|
|
7118
7563
|
private static _nextId;
|
|
7119
7564
|
/** El sui-switch interno toma su nombre del título (aria-labelledby) y su
|
|
7120
7565
|
* descripción de la descripción: antes el lector decía solo «interruptor»
|
|
@@ -7538,6 +7983,10 @@ declare class SuiModalSheet implements OnDestroy {
|
|
|
7538
7983
|
excede un threshold y la condición de scroll lo permite. Sirve para no
|
|
7539
7984
|
robar tap/click a buttons internos. */
|
|
7540
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;
|
|
7541
7990
|
/** Threshold de movimiento (px) para decidir que un pointermove en body es
|
|
7542
7991
|
drag (no tap). 5px = más sensible que el iOS canon de 8px: el dueño pidió
|
|
7543
7992
|
"como nativo" y el 8 sentía que tardaba en activar. Trade-off: 5px puede
|
|
@@ -7621,6 +8070,11 @@ declare class SuiModalSheet implements OnDestroy {
|
|
|
7621
8070
|
/** Heurística: ignorar drag si el target es un input/textarea/select/button
|
|
7622
8071
|
interactivo. El user está intentando interactuar, no arrastrar. */
|
|
7623
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;
|
|
7624
8078
|
/** Duración del snap en función de la distancia restante y la velocidad del
|
|
7625
8079
|
dedo (px/ms): un fling rápido cierra la distancia en poco tiempo; un
|
|
7626
8080
|
release lento o un snap programático usa la duración larga. Acotado a
|
|
@@ -7766,6 +8220,8 @@ type SuiModalStatusAlignment = 'horizontal' | 'vertical';
|
|
|
7766
8220
|
* [slot="footer"]: action buttons row
|
|
7767
8221
|
*/
|
|
7768
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>;
|
|
7769
8225
|
private readonly doc;
|
|
7770
8226
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
7771
8227
|
readonly size: _angular_core.InputSignal<SuiModalSize>;
|
|
@@ -7940,6 +8396,8 @@ type SuiModalHeaderVariant = 'info' | 'success' | 'warning' | 'error';
|
|
|
7940
8396
|
* <sui-modal-header size="small" title="Filtros" (closed)="cerrar()" />
|
|
7941
8397
|
*/
|
|
7942
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>;
|
|
7943
8401
|
/** Título del header (Label/Small). */
|
|
7944
8402
|
readonly title: _angular_core.InputSignal<string>;
|
|
7945
8403
|
/** Descripción bajo el título (Paragraph/X-Small). */
|
|
@@ -8071,10 +8529,12 @@ declare class SuiModalFooter {
|
|
|
8071
8529
|
* que existe en RemixIcon; si el panel real usa otro glyph, ajustar el name.
|
|
8072
8530
|
*/
|
|
8073
8531
|
declare class SuiNotificationFooter {
|
|
8074
|
-
/**
|
|
8075
|
-
|
|
8076
|
-
readonly usePrefix: _angular_core.InputSignal<string>;
|
|
8077
|
-
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>;
|
|
8078
8538
|
/** Link de gestión — true = label default ('Administrar notificaciones'); string =
|
|
8079
8539
|
* label custom (emite `manageClick`); SuiLinkConfig { label, href?, target?,
|
|
8080
8540
|
* rel? }: con href renderiza <a> real, rel automático 'noopener noreferrer'
|
|
@@ -8184,12 +8644,15 @@ interface SuiNotificationTab<T = string> {
|
|
|
8184
8644
|
* trae el fix dentro de <sui-compact-button>.
|
|
8185
8645
|
*/
|
|
8186
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>;
|
|
8187
8649
|
readonly tabs: _angular_core.InputSignal<SuiNotificationTab<T>[]>;
|
|
8188
8650
|
readonly active: _angular_core.ModelSignal<T | undefined>;
|
|
8189
8651
|
/** Renderiza el botón de filtro absoluto a la derecha (Figma prop `button`). */
|
|
8190
8652
|
readonly showFilter: _angular_core.InputSignal<boolean>;
|
|
8191
8653
|
/** aria-label del botón de filtro. */
|
|
8192
|
-
readonly filterLabel: _angular_core.InputSignal<string>;
|
|
8654
|
+
readonly filterLabel: _angular_core.InputSignal<string | null>;
|
|
8655
|
+
protected readonly filterLabelTexto: _angular_core.Signal<string>;
|
|
8193
8656
|
readonly tabChange: _angular_core.OutputEmitterRef<T>;
|
|
8194
8657
|
readonly filterClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
8195
8658
|
private readonly tabItems?;
|
|
@@ -8271,6 +8734,8 @@ type SuiNotificationStyle = 'filled' | 'light' | 'lighter' | 'stroke';
|
|
|
8271
8734
|
* - showIcon/iconName status icons
|
|
8272
8735
|
*/
|
|
8273
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>;
|
|
8274
8739
|
readonly variant: _angular_core.InputSignal<SuiNotificationVariant>;
|
|
8275
8740
|
readonly variantStyle: _angular_core.InputSignal<SuiNotificationStyle>;
|
|
8276
8741
|
readonly title: _angular_core.InputSignal<string | null>;
|
|
@@ -8287,7 +8752,7 @@ declare class SuiNotification {
|
|
|
8287
8752
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
8288
8753
|
readonly unread: _angular_core.InputSignal<boolean>;
|
|
8289
8754
|
/** Item body type. 'basic' keeps the legacy/alert layout (no body slot). */
|
|
8290
|
-
readonly type: _angular_core.InputSignal<"
|
|
8755
|
+
readonly type: _angular_core.InputSignal<"file" | "basic" | "button" | "message">;
|
|
8291
8756
|
/** When true, item paints the Figma hover bg + reveals the more-2-line button. */
|
|
8292
8757
|
readonly showMore: _angular_core.InputSignal<boolean>;
|
|
8293
8758
|
/** Forces the hover affordance visible (e.g. keyboard-focused row). */
|
|
@@ -8388,13 +8853,17 @@ type SuiOtpInputSize = 'large' | 'medium' | 'small';
|
|
|
8388
8853
|
* diseño los pide en una pantalla concreta, se compone con 2 sui-otp-input.
|
|
8389
8854
|
*/
|
|
8390
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;
|
|
8391
8859
|
readonly length: _angular_core.InputSignal<number>;
|
|
8392
8860
|
/** Tamaño de la celda: large 80×64 (guía, default) · medium 52×56 · small 44×48. */
|
|
8393
8861
|
readonly size: _angular_core.InputSignal<SuiOtpInputSize>;
|
|
8394
8862
|
readonly type: _angular_core.InputSignal<SuiOtpInputType>;
|
|
8395
8863
|
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
8396
8864
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
8397
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
8865
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
8866
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
8398
8867
|
readonly value: _angular_core.ModelSignal<string>;
|
|
8399
8868
|
readonly completed: _angular_core.OutputEmitterRef<string>;
|
|
8400
8869
|
/** Array de caracteres, length === this.length(). */
|
|
@@ -8513,6 +8982,9 @@ type SuiPaginationInfoFormat = 'items' | 'pages';
|
|
|
8513
8982
|
* @output pageSizeChange Emite el nuevo page size cuando el user lo cambia
|
|
8514
8983
|
*/
|
|
8515
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;
|
|
8516
8988
|
readonly total: _angular_core.InputSignal<number>;
|
|
8517
8989
|
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
8518
8990
|
readonly siblingCount: _angular_core.InputSignal<number>;
|
|
@@ -8640,18 +9112,24 @@ declare const SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS: Record<SuiPasswordStre
|
|
|
8640
9112
|
* <sui-password-strength strength="moderate" [conditions]="[]" caption="" />
|
|
8641
9113
|
*/
|
|
8642
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>;
|
|
8643
9117
|
/** Contraseña a evaluar — deriva las condiciones cumplidas y el nivel. */
|
|
8644
9118
|
readonly value: _angular_core.InputSignal<string>;
|
|
8645
9119
|
/** Override manual del nivel — presente gana sobre el derivado de `value`. */
|
|
8646
9120
|
readonly strength: _angular_core.InputSignal<SuiPasswordStrengthLevel | null>;
|
|
8647
9121
|
/** Caption sobre la checklist. '' = oculto. */
|
|
8648
|
-
readonly caption: _angular_core.InputSignal<string>;
|
|
8649
|
-
|
|
8650
|
-
|
|
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[]>;
|
|
8651
9128
|
/** Textos del nivel para lectores de pantalla (merge sobre los defaults ES). */
|
|
8652
9129
|
readonly levelLabels: _angular_core.InputSignal<Partial<Record<SuiPasswordStrengthLevel, string>>>;
|
|
8653
9130
|
/** Label accesible del progressbar. */
|
|
8654
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
9131
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
9132
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
8655
9133
|
/** Emite el nivel resuelto cada vez que cambia (no emite el inicial). */
|
|
8656
9134
|
readonly strengthChange: _angular_core.OutputEmitterRef<SuiPasswordStrengthLevel>;
|
|
8657
9135
|
/** Condiciones evaluadas: `met` manual gana; sino corre `test` sobre `value`. */
|
|
@@ -8759,6 +9237,8 @@ type SuiPopoverFooter = 'none' | 'stretch' | 'text-stepper' | 'stepper';
|
|
|
8759
9237
|
teléfono — size nuevo 04-10-2026 (dueño: piso táctil 44). */
|
|
8760
9238
|
type SuiPopoverSize = 'small' | 'medium' | 'large';
|
|
8761
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>;
|
|
8762
9242
|
/** Placement axis del tail relativo al trigger (12 variantes Figma). */
|
|
8763
9243
|
readonly position: _angular_core.InputSignal<SuiPopoverPosition>;
|
|
8764
9244
|
/** Mostrar la cola/flecha (tail SVG). */
|
|
@@ -8773,10 +9253,12 @@ declare class SuiPopover {
|
|
|
8773
9253
|
readonly dismissIcon: _angular_core.InputSignal<boolean>;
|
|
8774
9254
|
/** Tipo de footer. `none` oculta el footer y el separador. */
|
|
8775
9255
|
readonly footer: _angular_core.InputSignal<SuiPopoverFooter>;
|
|
8776
|
-
/** Texto del botón secundario (izquierda). */
|
|
8777
|
-
readonly backLabel: _angular_core.InputSignal<string>;
|
|
8778
|
-
/** Texto del botón primario (derecha). */
|
|
8779
|
-
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>;
|
|
8780
9262
|
/** Renderear el botón secundario (Back). Si false, solo se muestra el primario. */
|
|
8781
9263
|
readonly doubleButton: _angular_core.InputSignal<boolean>;
|
|
8782
9264
|
/** Progreso del stepper — { current (1-based), total }. Usado en text-stepper
|
|
@@ -8865,6 +9347,8 @@ type SuiProgressBarSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
8865
9347
|
* - ariaLabel: string opcional para `aria-label` del role=progressbar.
|
|
8866
9348
|
*/
|
|
8867
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>;
|
|
8868
9352
|
readonly value: _angular_core.InputSignal<number>;
|
|
8869
9353
|
readonly color: _angular_core.InputSignal<SuiProgressBarColor>;
|
|
8870
9354
|
readonly size: _angular_core.InputSignal<SuiProgressBarSize>;
|
|
@@ -8993,7 +9477,8 @@ interface SuiRadioGroupItem {
|
|
|
8993
9477
|
value(): unknown;
|
|
8994
9478
|
/** Deshabilitada por input, por form o por el grupo. */
|
|
8995
9479
|
isDisabled(): boolean;
|
|
8996
|
-
/** 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). */
|
|
8997
9482
|
readonly el: HTMLElement;
|
|
8998
9483
|
/** Selecciona la opción por su camino normal (emite sus outputs). */
|
|
8999
9484
|
activateFromGroup(): void;
|
|
@@ -9191,7 +9676,7 @@ declare class SuiRadioCard implements ControlValueAccessor, OnInit, SuiRadioGrou
|
|
|
9191
9676
|
readonly size: _angular_core.InputSignal<SuiRadioSize>;
|
|
9192
9677
|
/** Lado en px del radio según size: medium 20 · large 24 · xlarge 28. Los
|
|
9193
9678
|
* insets internos (bg/box) son % → escalan solos. */
|
|
9194
|
-
readonly radioPx: _angular_core.Signal<
|
|
9679
|
+
readonly radioPx: _angular_core.Signal<24 | 20 | 28>;
|
|
9195
9680
|
/** Valor del radio (requerido para uso en grupo). */
|
|
9196
9681
|
readonly value: _angular_core.InputSignal<string>;
|
|
9197
9682
|
/** Título principal del card (label de la fila Title). */
|
|
@@ -9210,7 +9695,7 @@ declare class SuiRadioCard implements ControlValueAccessor, OnInit, SuiRadioGrou
|
|
|
9210
9695
|
* Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'.
|
|
9211
9696
|
* Si ambos están, icon tiene precedencia.
|
|
9212
9697
|
*/
|
|
9213
|
-
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>;
|
|
9214
9699
|
/**
|
|
9215
9700
|
* URL directa al emoji para type='left-icon'. Útil cuando el consumer ya tiene
|
|
9216
9701
|
* la URL (ej. FLUENT_EMOJI map del proyecto) y no quiere registrar el emoji
|
|
@@ -9285,11 +9770,14 @@ type SuiRadioLabelSize = 'medium' | 'large' | 'xlarge' | '2xlarge';
|
|
|
9285
9770
|
* (group.value() === value() ⇒ checked; click ⇒ group.select(value)).
|
|
9286
9771
|
* - Standalone: model two-way `checked` + output `selected`.
|
|
9287
9772
|
* - El sui-radio interno es SOLO visual (pointer-events none en SCSS):
|
|
9288
|
-
*
|
|
9773
|
+
* los clicks los maneja el host y las teclas el control — una sola fuente de
|
|
9289
9774
|
* selección, sin doble-toggle.
|
|
9290
9775
|
*
|
|
9291
|
-
* A11y:
|
|
9292
|
-
*
|
|
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).
|
|
9293
9781
|
*
|
|
9294
9782
|
* Usage:
|
|
9295
9783
|
* <sui-radio-group [(ngModel)]="plan">
|
|
@@ -9303,7 +9791,12 @@ declare class SuiRadioLabel implements OnInit, SuiRadioGroupItem {
|
|
|
9303
9791
|
private static _nextId;
|
|
9304
9792
|
private readonly group;
|
|
9305
9793
|
private readonly destroyRef;
|
|
9306
|
-
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;
|
|
9307
9800
|
protected readonly labelId: string;
|
|
9308
9801
|
protected readonly descriptionId: string;
|
|
9309
9802
|
/** Valor que representa esta opción dentro del grupo. */
|
|
@@ -9363,7 +9856,7 @@ declare class SuiRadioLabel implements OnInit, SuiRadioGroupItem {
|
|
|
9363
9856
|
private select;
|
|
9364
9857
|
onLinkClick(event: MouseEvent): void;
|
|
9365
9858
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiRadioLabel, never>;
|
|
9366
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadioLabel, "sui-radio-label", never, { "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; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "selected": "selected"; "linkClick": "linkClick"; }, never, never, true,
|
|
9859
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadioLabel, "sui-radio-label", never, { "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; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "selected": "selected"; "linkClick": "linkClick"; }, never, never, true, never>;
|
|
9367
9860
|
}
|
|
9368
9861
|
|
|
9369
9862
|
type SuiRatingAppearance = 'inline' | 'cell' | 'bar' | 'bar-area';
|
|
@@ -9504,6 +9997,8 @@ interface SuiRatingCellView {
|
|
|
9504
9997
|
* disabled deshabilita clicks/hover igual que readonly=true (ver isInteractive).
|
|
9505
9998
|
*/
|
|
9506
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>;
|
|
9507
10002
|
private readonly el;
|
|
9508
10003
|
readonly appearance: _angular_core.InputSignal<SuiRatingAppearance>;
|
|
9509
10004
|
readonly type: _angular_core.InputSignal<SuiRatingType>;
|
|
@@ -9523,14 +10018,16 @@ declare class SuiRating implements ControlValueAccessor {
|
|
|
9523
10018
|
* Si pasas un string que NO está en el map, sui-emoji renderea broken image.
|
|
9524
10019
|
*/
|
|
9525
10020
|
readonly emojis: _angular_core.InputSignal<string[]>;
|
|
9526
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
10021
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
10022
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
9527
10023
|
/**
|
|
9528
10024
|
* appearance='bar-area' — texto del reason (textarea "Tell us why!").
|
|
9529
10025
|
* model<string> para two-way binding. Ignorado en inline/bar.
|
|
9530
10026
|
*/
|
|
9531
10027
|
readonly reason: _angular_core.ModelSignal<string>;
|
|
9532
10028
|
/** Placeholder del textarea en bar-area. Figma: "Tell us why!". */
|
|
9533
|
-
readonly reasonPlaceholder: _angular_core.InputSignal<string>;
|
|
10029
|
+
readonly reasonPlaceholder: _angular_core.InputSignal<string | null>;
|
|
10030
|
+
protected readonly reasonPlaceholderTexto: _angular_core.Signal<string>;
|
|
9534
10031
|
/** Filas del textarea en bar-area. El alto mínimo del área de comentario lo
|
|
9535
10032
|
* fija el CSS (min-height 72px = Figma) para preservar el envelope del card;
|
|
9536
10033
|
* `rows` solo importa si se quiere un área inicial MÁS alta que ese piso. */
|
|
@@ -9561,7 +10058,7 @@ declare class SuiRating implements ControlValueAccessor {
|
|
|
9561
10058
|
* bar/bar-area usan 20px hardcoded en el template (no pasan por aquí). */
|
|
9562
10059
|
readonly iconPx: _angular_core.Signal<number>;
|
|
9563
10060
|
/** Rol del host: `img` para la nota de solo lectura (o `group` si trae link), `radiogroup` para pedirla. */
|
|
9564
|
-
protected readonly hostRole: _angular_core.Signal<"
|
|
10061
|
+
protected readonly hostRole: _angular_core.Signal<"img" | "group" | "radiogroup">;
|
|
9565
10062
|
/** Nombre accesible: interactivo = `ariaLabel`; readonly = «Calificación: 4,5 de 5, 120 calificaciones». */
|
|
9566
10063
|
protected readonly hostAriaLabel: _angular_core.Signal<string>;
|
|
9567
10064
|
/** Índice (1..max) de la celda con tabindex 0: la elegida, o la primera. */
|
|
@@ -9690,6 +10187,8 @@ interface SuiRichEditorAction {
|
|
|
9690
10187
|
active: boolean;
|
|
9691
10188
|
}
|
|
9692
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>;
|
|
9693
10192
|
/** Layout del toolbar (4 variantes Figma). Default `full`. */
|
|
9694
10193
|
readonly layout: _angular_core.InputSignal<SuiRichEditorLayout>;
|
|
9695
10194
|
/** Muestra el divider + botón `more-2-line` (overflow) al final. Default true. */
|
|
@@ -9702,11 +10201,13 @@ declare class SuiRichEditor {
|
|
|
9702
10201
|
*/
|
|
9703
10202
|
readonly editable: _angular_core.InputSignal<boolean>;
|
|
9704
10203
|
/** Placeholder del área editable. */
|
|
9705
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
10204
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
10205
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
9706
10206
|
/** Contenido HTML del editable. Two-way `[(value)]`. */
|
|
9707
10207
|
readonly value: _angular_core.ModelSignal<string>;
|
|
9708
10208
|
/** Label de heading mostrado en el item tipo text (layout full/compact). */
|
|
9709
|
-
readonly headingLabel: _angular_core.InputSignal<string>;
|
|
10209
|
+
readonly headingLabel: _angular_core.InputSignal<string | null>;
|
|
10210
|
+
protected readonly headingLabelTexto: _angular_core.Signal<string>;
|
|
9710
10211
|
/** Label de tamaño de fuente mostrado en el item tipo text. */
|
|
9711
10212
|
readonly fontSizeLabel: _angular_core.InputSignal<string>;
|
|
9712
10213
|
/** Emitido cada vez que se acciona un comando del toolbar. */
|
|
@@ -9833,11 +10334,14 @@ interface SuiSelectOption<T = any> {
|
|
|
9833
10334
|
* naranja, DECISIONES.md §1) replican pixel-exacto el chip del Figma.
|
|
9834
10335
|
*/
|
|
9835
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>;
|
|
9836
10339
|
readonly size: _angular_core.InputSignal<SuiSelectSize>;
|
|
9837
10340
|
/** El rótulo no crece con el control: su escala llega a `medium`. Ver la nota
|
|
9838
10341
|
* en `sui-input`, que hace exactamente lo mismo. */
|
|
9839
10342
|
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
9840
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
10343
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
10344
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
9841
10345
|
readonly options: _angular_core.InputSignal<SuiSelectOption<T>[]>;
|
|
9842
10346
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
9843
10347
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
@@ -9978,8 +10482,10 @@ interface SuiSidebarBrandConfig {
|
|
|
9978
10482
|
}
|
|
9979
10483
|
/** Config del search slot (Figma prop search=true). Patrón objeto, como `profile`. */
|
|
9980
10484
|
interface SuiSidebarSearchConfig {
|
|
9981
|
-
/** Placeholder del input. Default '
|
|
10485
|
+
/** Placeholder del input. Default 'Buscar…'. */
|
|
9982
10486
|
placeholder?: string;
|
|
10487
|
+
/** Nombre accesible del campo. Omitir → el lector anuncia el placeholder. */
|
|
10488
|
+
ariaLabel?: string;
|
|
9983
10489
|
/** Shortcut pill dentro del search (ej. '⌘1'). Omitir → sin pill. */
|
|
9984
10490
|
shortcut?: string;
|
|
9985
10491
|
}
|
|
@@ -9999,6 +10505,8 @@ interface SuiSidebarProfile {
|
|
|
9999
10505
|
/** Color del indicator bar / icon activo. */
|
|
10000
10506
|
type SuiSidebarIndicatorColor = 'information' | 'brand';
|
|
10001
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>;
|
|
10002
10510
|
/**
|
|
10003
10511
|
* Estado colapsado (icon-only, 80px). Oculta labels/subtítulos/shortcuts/
|
|
10004
10512
|
* badges y centra los iconos. Figma variant Collapsed=On. Default false.
|
|
@@ -10030,7 +10538,7 @@ declare class SuiSidebar {
|
|
|
10030
10538
|
/**
|
|
10031
10539
|
* Search encima de las secciones:
|
|
10032
10540
|
* - `false` / `null` (default): sin search
|
|
10033
|
-
* - `true`: search con defaults (placeholder '
|
|
10541
|
+
* - `true`: search con defaults (placeholder 'Buscar…', sin shortcut)
|
|
10034
10542
|
* - objeto `{ placeholder?, shortcut? }`: search configurado
|
|
10035
10543
|
*/
|
|
10036
10544
|
readonly search: _angular_core.InputSignal<boolean | SuiSidebarSearchConfig | null>;
|
|
@@ -10112,10 +10620,11 @@ declare class SuiSidebar {
|
|
|
10112
10620
|
protected readonly brandCfg: _angular_core.Signal<SuiSidebarBrandConfig>;
|
|
10113
10621
|
/**
|
|
10114
10622
|
* Search normalizado: null → sin search; objeto con defaults aplicados
|
|
10115
|
-
* (placeholder '
|
|
10623
|
+
* (placeholder 'Buscar…') cuando search=true o config parcial.
|
|
10116
10624
|
*/
|
|
10117
10625
|
protected readonly searchCfg: _angular_core.Signal<{
|
|
10118
10626
|
placeholder: string;
|
|
10627
|
+
ariaLabel: string;
|
|
10119
10628
|
shortcut: string | null;
|
|
10120
10629
|
} | null>;
|
|
10121
10630
|
/**
|
|
@@ -10205,6 +10714,8 @@ type SuiSliderType = 'single' | 'range';
|
|
|
10205
10714
|
*/
|
|
10206
10715
|
type SuiSliderSize = 'medium' | 'large';
|
|
10207
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>;
|
|
10208
10719
|
private readonly hostRef;
|
|
10209
10720
|
readonly type: _angular_core.InputSignal<SuiSliderType>;
|
|
10210
10721
|
/** `medium` (default, Figma) o `large` (mobile, extensión SUI). */
|
|
@@ -10244,9 +10755,9 @@ declare class SuiSlider implements ControlValueAccessor {
|
|
|
10244
10755
|
private readonly _cvaValue;
|
|
10245
10756
|
private readonly _useCvaValue;
|
|
10246
10757
|
/** Handle siendo arrastrado: null | 'single' | 'min' | 'max'. */
|
|
10247
|
-
readonly dragging: _angular_core.WritableSignal<"
|
|
10758
|
+
readonly dragging: _angular_core.WritableSignal<"max" | "single" | "min" | null>;
|
|
10248
10759
|
/** Handle bajo hover (para tooltip): igual dominio que dragging. */
|
|
10249
|
-
readonly hovering: _angular_core.WritableSignal<"
|
|
10760
|
+
readonly hovering: _angular_core.WritableSignal<"max" | "single" | "min" | null>;
|
|
10250
10761
|
private clamp;
|
|
10251
10762
|
readonly effectiveValue: _angular_core.Signal<number>;
|
|
10252
10763
|
readonly effectiveMin: _angular_core.Signal<number>;
|
|
@@ -10268,7 +10779,7 @@ declare class SuiSlider implements ControlValueAccessor {
|
|
|
10268
10779
|
/** Single: el texto de `amount` (lo que se ve) o el valor con la unidad. */
|
|
10269
10780
|
readonly singleValueText: _angular_core.Signal<string | null>;
|
|
10270
10781
|
/** Range: cada manija dice cuál es («Precio, mínimo» / «Precio, máximo»). */
|
|
10271
|
-
thumbLabel(
|
|
10782
|
+
thumbLabel(cual: 'min' | 'max'): string;
|
|
10272
10783
|
private showTooltipFor;
|
|
10273
10784
|
readonly showSingleTooltip: _angular_core.Signal<boolean>;
|
|
10274
10785
|
readonly showMinTooltip: _angular_core.Signal<boolean>;
|
|
@@ -10366,6 +10877,8 @@ type SuiSocialButtonSize = 'medium' | 'large';
|
|
|
10366
10877
|
* target="_blank" />
|
|
10367
10878
|
*/
|
|
10368
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>;
|
|
10369
10882
|
readonly brand: _angular_core.InputSignal<SuiSocialButtonBrand>;
|
|
10370
10883
|
readonly variantStyle: _angular_core.InputSignal<SuiSocialButtonStyle>;
|
|
10371
10884
|
readonly onlyIcon: _angular_core.InputSignal<boolean>;
|
|
@@ -10379,7 +10892,7 @@ declare class SuiSocialButton {
|
|
|
10379
10892
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
10380
10893
|
readonly target: _angular_core.InputSignal<string | null>;
|
|
10381
10894
|
readonly rel: _angular_core.InputSignal<string | null>;
|
|
10382
|
-
readonly type: _angular_core.InputSignal<"
|
|
10895
|
+
readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
|
|
10383
10896
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
10384
10897
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
10385
10898
|
/** Disabled efectivo: el input disabled O el estado loading. */
|
|
@@ -10398,7 +10911,7 @@ declare class SuiSocialButton {
|
|
|
10398
10911
|
/** Logo style derivado del button style + tema. filled → siempre blanco; stroke →
|
|
10399
10912
|
* `original`, salvo dark + marca monocromática oscura, donde usa `white` para no
|
|
10400
10913
|
* perder el logo sobre la superficie oscura (ver MONO_DARK_BRANDS). */
|
|
10401
|
-
readonly logoStyle: _angular_core.Signal<"
|
|
10914
|
+
readonly logoStyle: _angular_core.Signal<"original" | "white">;
|
|
10402
10915
|
/** Color de fondo brand-specific (solo aplica si style=filled). */
|
|
10403
10916
|
readonly filledBg: _angular_core.Signal<string | null>;
|
|
10404
10917
|
/** Label final: input.label > default por brand. */
|
|
@@ -10611,6 +11124,8 @@ interface SuiStepperItemView {
|
|
|
10611
11124
|
* proyecto, NO existen en los nodos Figma auditados — preservados intactos.
|
|
10612
11125
|
*/
|
|
10613
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>;
|
|
10614
11129
|
readonly variant: _angular_core.InputSignal<SuiStepperVariant>;
|
|
10615
11130
|
readonly steps: _angular_core.InputSignal<SuiStepperItem[]>;
|
|
10616
11131
|
readonly count: _angular_core.InputSignal<number>;
|
|
@@ -10621,7 +11136,8 @@ declare class SuiStepper {
|
|
|
10621
11136
|
readonly errorStep: _angular_core.InputSignal<number | null>;
|
|
10622
11137
|
readonly size: _angular_core.InputSignal<SuiStepperSize>;
|
|
10623
11138
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
10624
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
11139
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
11140
|
+
protected readonly ariaLabelTexto: _angular_core.Signal<string>;
|
|
10625
11141
|
readonly stepClick: _angular_core.OutputEmitterRef<number>;
|
|
10626
11142
|
/** Ícono del indicador (completed / error): 24 en medium, 20 en los de Figma.
|
|
10627
11143
|
* Es el indicador mismo, por eso crece; separador y chevron se quedan en 20. */
|
|
@@ -10914,7 +11430,7 @@ declare class SuiProductCard {
|
|
|
10914
11430
|
/** Glyph del «+» / lápiz: 18 en small, 20 en medium y large. */
|
|
10915
11431
|
readonly iconSize: _angular_core.Signal<20 | 18>;
|
|
10916
11432
|
/** Glyph del stepper: 16 en small, 20 en medium y large. */
|
|
10917
|
-
readonly stepIconSize: _angular_core.Signal<
|
|
11433
|
+
readonly stepIconSize: _angular_core.Signal<16 | 20>;
|
|
10918
11434
|
readonly showStepper: _angular_core.Signal<boolean>;
|
|
10919
11435
|
/** Config resuelta de la imagen (string → { url }; `position` default 50).
|
|
10920
11436
|
* null = sin imagen → fallback. */
|
|
@@ -11082,7 +11598,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
11082
11598
|
* `<sui-icon>` proyectado vía `[sui-switch-card-leading]` y se renderiza
|
|
11083
11599
|
* con las MISMAS dimensiones (20×20 dentro del círculo de 40px).
|
|
11084
11600
|
*/
|
|
11085
|
-
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>;
|
|
11086
11602
|
/**
|
|
11087
11603
|
* URL de imagen para type='avatar' — se renderiza con sui-avatar size=lg
|
|
11088
11604
|
* (40×40 redonda). Si la imagen falla, fallback automático a iniciales del
|
|
@@ -11541,11 +12057,14 @@ type SuiTableSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
11541
12057
|
* Si no hay template para una columna, renderiza row[column.key] directo.
|
|
11542
12058
|
*/
|
|
11543
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>;
|
|
11544
12062
|
readonly columns: _angular_core.InputSignal<SuiTableColumn<T>[]>;
|
|
11545
12063
|
readonly rows: _angular_core.InputSignal<T[]>;
|
|
11546
12064
|
readonly size: _angular_core.InputSignal<SuiTableSize>;
|
|
11547
12065
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
11548
|
-
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
12066
|
+
readonly emptyMessage: _angular_core.InputSignal<string | null>;
|
|
12067
|
+
protected readonly emptyMessageTexto: _angular_core.Signal<string>;
|
|
11549
12068
|
readonly striped: _angular_core.InputSignal<boolean>;
|
|
11550
12069
|
readonly selectable: _angular_core.InputSignal<boolean>;
|
|
11551
12070
|
readonly rowKey: _angular_core.InputSignal<keyof T | ((row: T) => any) | undefined>;
|
|
@@ -11687,7 +12206,7 @@ declare class SuiTabMenuHorizontal<T = string> {
|
|
|
11687
12206
|
xlarge 56. large y xlarge llevan el texto a 16 (mobile). */
|
|
11688
12207
|
readonly size: _angular_core.InputSignal<SuiTabMenuHorizontalSize>;
|
|
11689
12208
|
/** Glyph del ícono de la pestaña: 24 en xlarge, 20 en el resto. */
|
|
11690
|
-
readonly iconSize: _angular_core.Signal<
|
|
12209
|
+
readonly iconSize: _angular_core.Signal<24 | 20>;
|
|
11691
12210
|
readonly tabChange: _angular_core.OutputEmitterRef<T>;
|
|
11692
12211
|
private readonly tabItems?;
|
|
11693
12212
|
/** Índice del único tab con tabindex 0: el activo, o el primero habilitado. */
|
|
@@ -11929,6 +12448,8 @@ type SuiTagSize = 'medium' | 'large' | 'xlarge';
|
|
|
11929
12448
|
* reporte de auditoría estaba vacío.
|
|
11930
12449
|
*/
|
|
11931
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>;
|
|
11932
12453
|
/** Visual style. `stroke` = white bg + soft border; `gray` = weak-50 bg, no border. Default stroke. */
|
|
11933
12454
|
readonly tagStyle: _angular_core.InputSignal<SuiTagStyle>;
|
|
11934
12455
|
/** Tamaño: medium 24 (default, Figma) · large 32 · xlarge 40 (mobile). */
|
|
@@ -11953,7 +12474,8 @@ declare class SuiTag {
|
|
|
11953
12474
|
/** Estado deshabilitado: override de tokens a disabled-300, pointer-events none. */
|
|
11954
12475
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
11955
12476
|
/** aria-label opcional para el botón de cierre. Default 'Quitar'. */
|
|
11956
|
-
readonly dismissLabel: _angular_core.InputSignal<string>;
|
|
12477
|
+
readonly dismissLabel: _angular_core.InputSignal<string | null>;
|
|
12478
|
+
protected readonly dismissLabelTexto: _angular_core.Signal<string>;
|
|
11957
12479
|
/** Emitido al clickear el botón de cierre (solo si dismissible y no disabled). */
|
|
11958
12480
|
readonly dismiss: _angular_core.OutputEmitterRef<void>;
|
|
11959
12481
|
/** True cuando hay sublabel no vacío para renderizar el span secundario. */
|
|
@@ -12060,8 +12582,12 @@ type SuiTagInputSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
12060
12582
|
* - allowDuplicates / maxTags / addOnBlur.
|
|
12061
12583
|
*/
|
|
12062
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;
|
|
12063
12588
|
readonly size: _angular_core.InputSignal<SuiTagInputSize>;
|
|
12064
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
12589
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
12590
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
12065
12591
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12066
12592
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
12067
12593
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
@@ -12459,6 +12985,8 @@ type SuiTimePickerStatusType = 'available' | 'busy' | 'in-meeting' | 'offline';
|
|
|
12459
12985
|
* @input disabled
|
|
12460
12986
|
*/
|
|
12461
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>;
|
|
12462
12990
|
readonly type: _angular_core.InputSignal<SuiTimePickerStatusType>;
|
|
12463
12991
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
12464
12992
|
readonly selected: _angular_core.InputSignal<boolean>;
|
|
@@ -12594,6 +13122,8 @@ interface ColumnItem {
|
|
|
12594
13122
|
* filas de 44 con texto 16 y Cancelar/Aplicar en large. */
|
|
12595
13123
|
type SuiTimePickerSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
12596
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>;
|
|
12597
13127
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
12598
13128
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
12599
13129
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -12602,7 +13132,8 @@ declare class SuiTimePicker implements ControlValueAccessor {
|
|
|
12602
13132
|
readonly errorMessage: _angular_core.InputSignal<string | null>;
|
|
12603
13133
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
12604
13134
|
/** Texto del campo sin hora. Imperativo con tuteo (dueño, 05-10-2026, P4 a). */
|
|
12605
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
13135
|
+
readonly placeholder: _angular_core.InputSignal<string | null>;
|
|
13136
|
+
protected readonly placeholderTexto: _angular_core.Signal<string>;
|
|
12606
13137
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12607
13138
|
/**
|
|
12608
13139
|
* Alto del campo: small 36 · medium 40 (default) · large 48 (extensión SUI,
|
|
@@ -12809,6 +13340,8 @@ declare class SuiToastService {
|
|
|
12809
13340
|
* <sui-toast-outlet />
|
|
12810
13341
|
*/
|
|
12811
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>;
|
|
12812
13345
|
private readonly svc;
|
|
12813
13346
|
private readonly tabBar;
|
|
12814
13347
|
readonly toastsByPosition: _angular_core.Signal<Record<SuiToastPosition, SuiToastItem[]>>;
|
|
@@ -13029,6 +13562,8 @@ declare class SuiTopbarButton {
|
|
|
13029
13562
|
* <sui-topbar-user name="Arthur" avatar="https://..." [verified]="true" [open]="menuOpen()" />
|
|
13030
13563
|
*/
|
|
13031
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>;
|
|
13032
13567
|
/** Nombre visible (Figma editName). Vacío → chip solo-avatar (Figma name=false). */
|
|
13033
13568
|
readonly name: _angular_core.InputSignal<string>;
|
|
13034
13569
|
/**
|
|
@@ -13079,8 +13614,10 @@ interface SuiTopbarAction {
|
|
|
13079
13614
|
}
|
|
13080
13615
|
/** Config del search slot. Patrón objeto + boolean shorthand (como sui-sidebar). */
|
|
13081
13616
|
interface SuiTopbarSearchConfig {
|
|
13082
|
-
/** Placeholder del input expandido. Default 'Buscar
|
|
13617
|
+
/** Placeholder del input expandido. Default 'Buscar…'. */
|
|
13083
13618
|
placeholder?: string;
|
|
13619
|
+
/** Nombre accesible del campo. Omitir → el lector anuncia el placeholder. */
|
|
13620
|
+
ariaLabel?: string;
|
|
13084
13621
|
/** Shortcut pill dentro del input (ej. '⌘1') — renderiza <sui-kbd>. */
|
|
13085
13622
|
shortcut?: string;
|
|
13086
13623
|
/**
|
|
@@ -13142,7 +13679,7 @@ interface SuiTopbarUserConfig {
|
|
|
13142
13679
|
* Usage:
|
|
13143
13680
|
* <sui-topbar
|
|
13144
13681
|
* [items]="items" activeValue="dashboard"
|
|
13145
|
-
* [search]="{ placeholder: 'Buscar
|
|
13682
|
+
* [search]="{ placeholder: 'Buscar…', shortcut: '⌘1' }"
|
|
13146
13683
|
* [actions]="[{ value: 'quick', icon: 'flashlight-line' },
|
|
13147
13684
|
* { value: 'notifications', icon: 'notification-3-line', dot: true }]"
|
|
13148
13685
|
* [user]="{ name: 'Sophia', avatar: { initials: 'S', color: 'yellow' } }"
|
|
@@ -13151,6 +13688,8 @@ interface SuiTopbarUserConfig {
|
|
|
13151
13688
|
* </sui-topbar>
|
|
13152
13689
|
*/
|
|
13153
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>;
|
|
13154
13693
|
readonly items: _angular_core.InputSignal<SuiTopbarEntry[]>;
|
|
13155
13694
|
/** value del item activo (bg weak-50 + label strong-950 + icon accent). */
|
|
13156
13695
|
readonly activeValue: _angular_core.InputSignal<string | null>;
|
|
@@ -13181,6 +13720,7 @@ declare class SuiTopbar {
|
|
|
13181
13720
|
/** Search normalizado: null → sin search. */
|
|
13182
13721
|
protected readonly searchCfg: _angular_core.Signal<{
|
|
13183
13722
|
placeholder: string;
|
|
13723
|
+
ariaLabel: string;
|
|
13184
13724
|
shortcut: string | null;
|
|
13185
13725
|
compact: boolean;
|
|
13186
13726
|
} | null>;
|
|
@@ -13315,6 +13855,8 @@ declare class SuiTooltip {
|
|
|
13315
13855
|
* envuelve dentro de `max-width` (200px small / 280px medium).
|
|
13316
13856
|
*/
|
|
13317
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>;
|
|
13318
13860
|
/** Text-only (size small/medium). En size=large se ignora — usar title/description. */
|
|
13319
13861
|
readonly text: _angular_core.InputSignal<string>;
|
|
13320
13862
|
readonly position: _angular_core.InputSignal<SuiTooltipPosition>;
|
|
@@ -13335,5 +13877,5 @@ declare class SuiTooltipPanel {
|
|
|
13335
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>;
|
|
13336
13878
|
}
|
|
13337
13879
|
|
|
13338
|
-
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, SuiToque, buildCalendarGrid, buildHourList, buildMinuteList, esImagenAceptada, formatDateInput, formatDateLong, formatDateShort, formatMonthYear, formatTime, isSameTime, normalizeHex, pad2, parseTime, to12h, to24h };
|
|
13339
|
-
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 };
|