@ajuarezso/sui-design-system 0.19.0 → 0.21.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 +136 -0
- package/docs/sui-alert/README.md +229 -0
- package/docs/sui-app-store-badge/README.md +137 -0
- package/docs/sui-avatar/README.md +263 -0
- package/docs/sui-avatar-group/README.md +115 -0
- package/docs/sui-badge/README.md +229 -0
- package/docs/sui-banner/README.md +190 -0
- package/docs/sui-brand-logo/README.md +143 -0
- package/docs/sui-breadcrumb-item/README.md +96 -0
- package/docs/sui-breadcrumbs/README.md +122 -0
- package/docs/sui-button/README.md +209 -0
- package/docs/sui-button-group/README.md +178 -0
- package/docs/sui-button-group-item/README.md +102 -0
- package/docs/sui-card/README.md +168 -0
- package/docs/sui-chart-legend/README.md +140 -0
- package/docs/sui-chart-legend-dot/README.md +118 -0
- package/docs/sui-checkbox/README.md +147 -0
- package/docs/sui-checkbox-card/README.md +150 -0
- package/docs/sui-checkbox-label/README.md +143 -0
- package/docs/sui-circular-progress-bar/README.md +131 -0
- package/docs/sui-color-dot/README.md +112 -0
- package/docs/sui-color-picker/README.md +124 -0
- package/docs/sui-compact-avatar-group/README.md +103 -0
- package/docs/sui-compact-button/README.md +190 -0
- package/docs/sui-compact-select/README.md +127 -0
- package/docs/sui-compact-select-for-input/README.md +117 -0
- package/docs/sui-content-card/README.md +147 -0
- package/docs/sui-content-divider/README.md +124 -0
- package/docs/sui-content-label/README.md +148 -0
- package/docs/sui-counter-input/README.md +145 -0
- package/docs/sui-date-selector/README.md +98 -0
- package/docs/sui-datepicker/README.md +193 -0
- package/docs/sui-day-cell/README.md +118 -0
- package/docs/sui-day-label/README.md +81 -0
- package/docs/sui-divider/README.md +102 -0
- package/docs/sui-drawer-footer/README.md +127 -0
- package/docs/sui-drawer-header/README.md +140 -0
- package/docs/sui-emoji/README.md +138 -0
- package/docs/sui-empty-state/README.md +145 -0
- package/docs/sui-fancy-button/README.md +148 -0
- package/docs/sui-file-icon/README.md +103 -0
- package/docs/sui-file-upload/README.md +154 -0
- package/docs/sui-file-upload-card/README.md +129 -0
- package/docs/sui-flag/README.md +99 -0
- package/docs/sui-form-hint/README.md +124 -0
- package/docs/sui-form-label/README.md +148 -0
- package/docs/sui-icon/README.md +135 -0
- package/docs/sui-image-upload/README.md +200 -0
- package/docs/sui-image-upload-profile/README.md +145 -0
- package/docs/sui-inline-input/README.md +104 -0
- package/docs/sui-inline-select/README.md +101 -0
- package/docs/sui-input/README.md +244 -0
- package/docs/sui-integration-switch/README.md +142 -0
- package/docs/sui-kbd/README.md +97 -0
- package/docs/sui-key-icon/README.md +125 -0
- package/docs/sui-link-button/README.md +221 -0
- package/docs/sui-logo/README.md +152 -0
- package/docs/sui-notification/README.md +179 -0
- package/docs/sui-notification-footer/README.md +98 -0
- package/docs/sui-notification-tab-menu/README.md +112 -0
- package/docs/sui-otp-input/README.md +116 -0
- package/docs/sui-pagination/README.md +146 -0
- package/docs/sui-password-strength/README.md +99 -0
- package/docs/sui-payment-icon/README.md +98 -0
- package/docs/sui-period-range/README.md +93 -0
- package/docs/sui-popover/README.md +178 -0
- package/docs/sui-product-card/README.md +173 -0
- package/docs/sui-progress-bar/README.md +132 -0
- package/docs/sui-progress-bar-label/README.md +143 -0
- package/docs/sui-radio/README.md +134 -0
- package/docs/sui-radio-card/README.md +160 -0
- package/docs/sui-radio-label/README.md +137 -0
- package/docs/sui-rating/README.md +199 -0
- package/docs/sui-rich-editor/README.md +114 -0
- package/docs/sui-segmented-control/README.md +144 -0
- package/docs/sui-select/README.md +180 -0
- package/docs/sui-slider/README.md +143 -0
- package/docs/sui-social-button/README.md +158 -0
- package/docs/sui-status-badge/README.md +164 -0
- package/docs/sui-stepper/README.md +166 -0
- package/docs/sui-store-card/README.md +147 -0
- package/docs/sui-switch/README.md +146 -0
- package/docs/sui-switch-card/README.md +149 -0
- package/docs/sui-switch-label/README.md +139 -0
- package/docs/sui-tab-chips/README.md +185 -0
- package/docs/sui-tab-menu-horizontal/README.md +142 -0
- package/docs/sui-tab-menu-vertical/README.md +136 -0
- package/docs/sui-tag/README.md +145 -0
- package/docs/sui-tag-input/README.md +120 -0
- package/docs/sui-textarea/README.md +157 -0
- package/docs/sui-time-picker/README.md +237 -0
- package/docs/sui-toast/README.md +190 -0
- package/docs/sui-tooltip/README.md +201 -0
- package/fesm2022/ajuarezso-sui-design-system.mjs +466 -279
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +367 -72
|
@@ -25,7 +25,7 @@ declare const SUI_TAB_BAR: InjectionToken<SuiTabBar>;
|
|
|
25
25
|
|
|
26
26
|
type SuiBadgeColor = 'gray' | 'blue' | 'orange' | 'red' | 'green' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal';
|
|
27
27
|
type SuiBadgeVariant = 'filled' | 'light' | 'lighter' | 'stroke' | 'dark';
|
|
28
|
-
type SuiBadgeSize = 'small' | 'medium';
|
|
28
|
+
type SuiBadgeSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
29
29
|
type SuiBadgeType = 'basic' | 'with-dot' | 'left-icon' | 'right-icon' | 'number';
|
|
30
30
|
/**
|
|
31
31
|
* Config de badge embebido en otros componentes (checkbox-label, switch-label,
|
|
@@ -1507,7 +1507,7 @@ interface SuiBreadcrumbEntry {
|
|
|
1507
1507
|
* - Output `(navigate)` emite el item clickeado.
|
|
1508
1508
|
*
|
|
1509
1509
|
* Accesibilidad:
|
|
1510
|
-
* - host = `<nav aria-label="
|
|
1510
|
+
* - host = `<nav aria-label="Ruta de navegación">`
|
|
1511
1511
|
* - Lista interna `<ol>` (orden semántica) sin estilos default.
|
|
1512
1512
|
* - Active item con `aria-current="page"` (manejado por `<sui-breadcrumb-item>`).
|
|
1513
1513
|
* - Dividers `aria-hidden="true"`.
|
|
@@ -1531,7 +1531,7 @@ declare class SuiBreadcrumbs {
|
|
|
1531
1531
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiBreadcrumbs, "sui-breadcrumbs", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; }, { "navigate": "navigate"; }, never, never, true, never>;
|
|
1532
1532
|
}
|
|
1533
1533
|
|
|
1534
|
-
type SuiButtonGroupItemSize = 'small' | 'xsmall' | '2xsmall';
|
|
1534
|
+
type SuiButtonGroupItemSize = 'small' | 'xsmall' | '2xsmall' | 'medium' | 'large';
|
|
1535
1535
|
/**
|
|
1536
1536
|
* SUI Button Group Item — SUI Design System 2.0
|
|
1537
1537
|
*
|
|
@@ -1562,6 +1562,11 @@ type SuiButtonGroupItemSize = 'small' | 'xsmall' | '2xsmall';
|
|
|
1562
1562
|
* · both-icons (226:5344): p4 (cuadrado), gap 4
|
|
1563
1563
|
* · only-icon (226:5348): p4 → 24×24, sin gap
|
|
1564
1564
|
*
|
|
1565
|
+
* Extensión SUI (03-10-2026, pedido del dueño) — tamaños para mobile, fuera
|
|
1566
|
+
* del Figma, con la escala de `sui-button`:
|
|
1567
|
+
* large (48) — Label/Medium (16/24), icon 20px: px20 py11 · icono px18 · p11 → 48², gap 8 (py −1 del borde)
|
|
1568
|
+
* medium (40) — Label/Small (14/20), icon 20px: px18 py9 · icono px16 · p9 → 40², gap 8 (py −1 del borde)
|
|
1569
|
+
*
|
|
1565
1570
|
* States × visual:
|
|
1566
1571
|
* Default: bg-white-0 + border stroke-soft-200 + text-sub-600
|
|
1567
1572
|
* Hover: bg-weak-50 + border stroke-soft-200 + text-sub-600
|
|
@@ -1587,7 +1592,7 @@ declare class SuiButtonGroupItem {
|
|
|
1587
1592
|
/** aria-label para icon-only buttons */
|
|
1588
1593
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1589
1594
|
/** Estado del data-attribute para CSS scoping */
|
|
1590
|
-
readonly state: _angular_core.Signal<"default" | "
|
|
1595
|
+
readonly state: _angular_core.Signal<"default" | "disabled" | "active">;
|
|
1591
1596
|
/** True cuando solo tiene icon (left o right) sin label */
|
|
1592
1597
|
readonly onlyIcon: _angular_core.Signal<boolean>;
|
|
1593
1598
|
/**
|
|
@@ -1599,7 +1604,9 @@ declare class SuiButtonGroupItem {
|
|
|
1599
1604
|
* - 'only' → icon-only: padding cuadrado (p) → square box
|
|
1600
1605
|
*/
|
|
1601
1606
|
readonly iconLayout: _angular_core.Signal<"none" | "left" | "right" | "both" | "only">;
|
|
1602
|
-
/** Tamaño del icono en px según size del item (small/xsmall=20, 2xsmall=16)
|
|
1607
|
+
/** Tamaño del icono en px según size del item (large/medium/small/xsmall=20, 2xsmall=16).
|
|
1608
|
+
* En large y medium el ícono se queda en 20, igual que `sui-button`: el ícono
|
|
1609
|
+
* que acompaña texto no escala. */
|
|
1603
1610
|
readonly iconSize: _angular_core.Signal<number>;
|
|
1604
1611
|
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
1605
1612
|
protected onClick(): void;
|
|
@@ -1634,6 +1641,8 @@ interface SuiButtonGroupEntry {
|
|
|
1634
1641
|
* - Group container: bg-white-0, border 1px stroke-soft-200, rounded:
|
|
1635
1642
|
* · small / xsmall → radius-8 (8px)
|
|
1636
1643
|
* · 2xsmall → radius-6 (6px)
|
|
1644
|
+
* - Extensión SUI (03-10-2026): medium (40, radius-10) y large (48, radius-12)
|
|
1645
|
+
* para tocar con el dedo en mobile; fuera del Figma, escala de sui-button.
|
|
1637
1646
|
* - overflow: clip (corta los bordes externos de items en las esquinas)
|
|
1638
1647
|
*
|
|
1639
1648
|
* Behavior:
|
|
@@ -1803,7 +1812,10 @@ type SuiCardSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
1803
1812
|
* al gap visual (queda pegado al body o al footer según haya footer o no).
|
|
1804
1813
|
*
|
|
1805
1814
|
* Interactive cards:
|
|
1806
|
-
* - [interactive]="true" → cursor pointer, hover lift, focus ring
|
|
1815
|
+
* - [interactive]="true" → cursor pointer, hover lift, focus ring, role=button,
|
|
1816
|
+
* tabindex=0 y teclado: Enter y Espacio disparan un click en el host (fix
|
|
1817
|
+
* 03-10-2026), así el `(click)` / `routerLink` del consumer sirve también
|
|
1818
|
+
* con teclado, igual que un <button>.
|
|
1807
1819
|
* Apply only on cards that act as a single action surface (e.g., a tile that
|
|
1808
1820
|
* navigates). For cards with multiple inner CTAs, leave non-interactive.
|
|
1809
1821
|
*
|
|
@@ -1814,6 +1826,15 @@ declare class SuiCard {
|
|
|
1814
1826
|
readonly variant: _angular_core.InputSignal<SuiCardVariant>;
|
|
1815
1827
|
readonly size: _angular_core.InputSignal<SuiCardSize>;
|
|
1816
1828
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
1829
|
+
private readonly host;
|
|
1830
|
+
/**
|
|
1831
|
+
* Enter / Espacio sobre la card interactiva → click en el host (dispara el
|
|
1832
|
+
* `(click)` del consumer y un `routerLink` puesto en la card o en un `<a>`
|
|
1833
|
+
* que la envuelve). Solo cuando el foco está EN la card: una tecla dentro
|
|
1834
|
+
* de un campo o botón proyectado es de ese control. `preventDefault` evita
|
|
1835
|
+
* que el Espacio haga scroll; la tecla sostenida (`repeat`) no repite.
|
|
1836
|
+
*/
|
|
1837
|
+
protected onKeyActivate(event: Event): void;
|
|
1817
1838
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCard, never>;
|
|
1818
1839
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCard, "sui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["[sui-card-header]", "*", "[sui-card-media]", "[sui-card-footer]"], true, never>;
|
|
1819
1840
|
}
|
|
@@ -2143,7 +2164,7 @@ declare class SuiCheckboxCard implements ControlValueAccessor {
|
|
|
2143
2164
|
/** RemixIcon name (sin prefijo "ri-") para type='left-icon'. */
|
|
2144
2165
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
2145
2166
|
/** Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'. */
|
|
2146
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
2167
|
+
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>;
|
|
2147
2168
|
/** URL directa al emoji para type='left-icon'. Precedencia: icon > emoji > iconSrc. */
|
|
2148
2169
|
readonly iconSrc: _angular_core.InputSignal<string | null>;
|
|
2149
2170
|
/** URL de imagen para type='avatar'. Si falla, fallback a iniciales del label. */
|
|
@@ -2194,7 +2215,8 @@ interface SuiLinkConfig {
|
|
|
2194
2215
|
target?: string;
|
|
2195
2216
|
rel?: string;
|
|
2196
2217
|
}
|
|
2197
|
-
|
|
2218
|
+
/** `large` (texto 16) es extensión SUI (03-10-2026) para mobile; Figma trae medium y small. */
|
|
2219
|
+
type SuiLinkButtonSize = 'large' | 'medium' | 'small';
|
|
2198
2220
|
/**
|
|
2199
2221
|
* SUI Link Button — SUI Design System 2.0
|
|
2200
2222
|
*
|
|
@@ -2206,6 +2228,11 @@ type SuiLinkButtonSize = 'medium' | 'small';
|
|
|
2206
2228
|
* Container flex / inline-flex, gap=4px, items=center
|
|
2207
2229
|
* Medium size text 14/20/-0.6%, icons 20×20
|
|
2208
2230
|
* Small size text 12/16/0, icons 16×16
|
|
2231
|
+
* Large size text 16/24/-1.1%, icons 20×20 — extensión SUI
|
|
2232
|
+
* (03-10-2026, pedido del dueño): en mobile el link se
|
|
2233
|
+
* lee y se toca con el dedo. Ícono 20 como el sui-button
|
|
2234
|
+
* large (texto 16 + ícono 20), no 24: con 24 el chevron
|
|
2235
|
+
* pesa más que el texto.
|
|
2209
2236
|
* Font features 'ss11' 1, 'calt' 0, 'liga' 0
|
|
2210
2237
|
* Underline (hover / focus / underline=on): línea continua SOLO
|
|
2211
2238
|
* bajo el texto (los iconos chevron NO van subrayados —
|
|
@@ -2268,6 +2295,7 @@ declare class SuiLinkButton {
|
|
|
2268
2295
|
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
2269
2296
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
2270
2297
|
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
2298
|
+
/** Px de los íconos por tamaño: large 20 · medium 20 · small 16. */
|
|
2271
2299
|
readonly iconSize: _angular_core.Signal<number>;
|
|
2272
2300
|
readonly isAnchor: _angular_core.Signal<boolean>;
|
|
2273
2301
|
onClick(event: MouseEvent): void;
|
|
@@ -2275,6 +2303,12 @@ declare class SuiLinkButton {
|
|
|
2275
2303
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiLinkButton, "sui-link-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "underline": { "alias": "underline"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "rightIcon": { "alias": "rightIcon"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "rel": { "alias": "rel"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
2276
2304
|
}
|
|
2277
2305
|
|
|
2306
|
+
/**
|
|
2307
|
+
* Tamaño del checkbox-label. `medium` es el de Figma (control 20, label 14/20);
|
|
2308
|
+
* `large` y `xlarge` son extensión SUI (03-10-2026, pedido del dueño) para mobile:
|
|
2309
|
+
* le pasan el tamaño al sui-checkbox interno (24 / 28) y suben la tipografía.
|
|
2310
|
+
*/
|
|
2311
|
+
type SuiCheckboxLabelSize = 'medium' | 'large' | 'xlarge';
|
|
2278
2312
|
/**
|
|
2279
2313
|
* SUI Checkbox Label — SUI Design System 2.0
|
|
2280
2314
|
*
|
|
@@ -2359,6 +2393,18 @@ declare class SuiCheckboxLabel implements ControlValueAccessor {
|
|
|
2359
2393
|
readonly link: _angular_core.InputSignal<string | SuiLinkConfig | null>;
|
|
2360
2394
|
/** Config resuelta del link (string → { label }, rel automático). */
|
|
2361
2395
|
protected readonly linkCfg: _angular_core.Signal<SuiLinkConfig | null>;
|
|
2396
|
+
/**
|
|
2397
|
+
* Tamaño. `medium` (default, Figma): control 20, label 14/20.
|
|
2398
|
+
* Extensión SUI (03-10-2026) para tocar en mobile:
|
|
2399
|
+
* - `large`: control 24, label 16/24, sublabel y descripción 14/20, badge medium.
|
|
2400
|
+
* - `xlarge`: control 28, label 16/24, sublabel y descripción 14/20, badge large.
|
|
2401
|
+
* El badge toma este default solo si su config no trae `size`.
|
|
2402
|
+
*/
|
|
2403
|
+
readonly size: _angular_core.InputSignal<SuiCheckboxLabelSize>;
|
|
2404
|
+
/** Badge por default según el tamaño (si la config no fija uno). */
|
|
2405
|
+
protected readonly badgeSize: _angular_core.Signal<SuiBadgeSize>;
|
|
2406
|
+
/** El link-button tiene dos tamaños: small (12/16) en Figma, medium (14/20) en mobile. */
|
|
2407
|
+
protected readonly linkSize: _angular_core.Signal<SuiLinkButtonSize>;
|
|
2362
2408
|
/** Si true, invierte orden: [content] [checkbox] (label a la izquierda). */
|
|
2363
2409
|
readonly flip: _angular_core.InputSignal<boolean>;
|
|
2364
2410
|
/** Deshabilita el checkbox + wrapper. */
|
|
@@ -2385,7 +2431,7 @@ declare class SuiCheckboxLabel implements ControlValueAccessor {
|
|
|
2385
2431
|
registerOnTouched(fn: () => void): void;
|
|
2386
2432
|
setDisabledState(isDisabled: boolean): void;
|
|
2387
2433
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiCheckboxLabel, never>;
|
|
2388
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckboxLabel, "sui-checkbox-label", never, { "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; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "linkClick": "linkClick"; }, never, never, true, never>;
|
|
2434
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiCheckboxLabel, "sui-checkbox-label", never, { "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; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "linkClick": "linkClick"; }, never, never, true, never>;
|
|
2389
2435
|
}
|
|
2390
2436
|
|
|
2391
2437
|
type SuiCircularProgressBarColor = 'blue' | 'green' | 'orange' | 'red' | 'purple';
|
|
@@ -2501,6 +2547,11 @@ declare class SuiCircularProgressBar {
|
|
|
2501
2547
|
}
|
|
2502
2548
|
|
|
2503
2549
|
type SuiColorDotColor = 'gray' | 'blue' | 'orange' | 'red' | 'green' | 'yellow' | 'purple' | 'sky' | 'pink' | 'teal';
|
|
2550
|
+
/**
|
|
2551
|
+
* Tamaño del dot. `medium` es el de Figma (24). `large` (32) es extensión SUI
|
|
2552
|
+
* (03-10-2026, pedido del dueño) para tocar con el dedo en mobile.
|
|
2553
|
+
*/
|
|
2554
|
+
type SuiColorDotSize = 'medium' | 'large';
|
|
2504
2555
|
/**
|
|
2505
2556
|
* Set canon de 10 colores SUI 2.0 — usable como referencia desde el consumer.
|
|
2506
2557
|
* Útil para iterar en pickers, badges, tag selectors.
|
|
@@ -2584,7 +2635,12 @@ declare class SuiColorDot {
|
|
|
2584
2635
|
* - `selected` → dot 12×12 + ring 2px.
|
|
2585
2636
|
* - `disabled` → dot gris pálido, sin pointer events.
|
|
2586
2637
|
*/
|
|
2587
|
-
readonly state: _angular_core.InputSignal<"default" | "disabled" | "
|
|
2638
|
+
readonly state: _angular_core.InputSignal<"default" | "disabled" | "selected" | "hover">;
|
|
2639
|
+
/**
|
|
2640
|
+
* Tamaño. `medium` (default, Figma 24): dot 16 / hover 14 / selected 12 + anillo 18.
|
|
2641
|
+
* `large` (32, extensión SUI para mobile): dot 22 / hover 18 / selected 16 + anillo 24.
|
|
2642
|
+
*/
|
|
2643
|
+
readonly size: _angular_core.InputSignal<SuiColorDotSize>;
|
|
2588
2644
|
/** aria-label override. */
|
|
2589
2645
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2590
2646
|
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
@@ -2592,7 +2648,7 @@ declare class SuiColorDot {
|
|
|
2592
2648
|
readonly defaultAriaLabel: _angular_core.Signal<string>;
|
|
2593
2649
|
protected onClick(): void;
|
|
2594
2650
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiColorDot, never>;
|
|
2595
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiColorDot, "sui-color-dot", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "customHex": { "alias": "customHex"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
2651
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiColorDot, "sui-color-dot", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "customHex": { "alias": "customHex"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
2596
2652
|
}
|
|
2597
2653
|
|
|
2598
2654
|
/**
|
|
@@ -3095,7 +3151,7 @@ declare class SuiCompactAvatarGroup {
|
|
|
3095
3151
|
}
|
|
3096
3152
|
|
|
3097
3153
|
type SuiCompactButtonStyle = 'stroke' | 'ghost' | 'modifiable' | 'white';
|
|
3098
|
-
type SuiCompactButtonSize = 'medium' | 'large' | 'xlarge';
|
|
3154
|
+
type SuiCompactButtonSize = 'medium' | 'large' | 'xlarge' | '2xlarge' | '3xlarge' | '4xlarge';
|
|
3099
3155
|
/**
|
|
3100
3156
|
* SUI Compact Button — SUI Design System 2.0
|
|
3101
3157
|
*
|
|
@@ -3117,6 +3173,8 @@ type SuiCompactButtonSize = 'medium' | 'large' | 'xlarge';
|
|
|
3117
3173
|
* Sizes:
|
|
3118
3174
|
* Large: 24×24 container, icon 20×20
|
|
3119
3175
|
* Medium: 20×20 container, icon 16×16
|
|
3176
|
+
* 2xlarge 32 / 3xlarge 36 / 4xlarge 40 (extensión SUI, 03-10-2026): para
|
|
3177
|
+
* tocar con el dedo en mobile; íconos 20 / 20 / 24 como sui-button.
|
|
3120
3178
|
*
|
|
3121
3179
|
* Style=Stroke (node 189:3645):
|
|
3122
3180
|
* bg: var(--sui-bg-white-0)
|
|
@@ -3217,15 +3275,16 @@ declare class SuiFlag {
|
|
|
3217
3275
|
* - SIN border (el input padre tiene su propio border)
|
|
3218
3276
|
* - SIN focus ring (el input padre maneja el focus state)
|
|
3219
3277
|
* - SIN error state (heredado del input padre)
|
|
3220
|
-
* - X-Small usa flag 16×16, medium/small 20×20 (mismo patrón que el compact-select normal)
|
|
3278
|
+
* - X-Small usa flag 16×16, large/medium/small 20×20 (mismo patrón que el compact-select normal)
|
|
3279
|
+
* - `large` (extensión SUI, 03-10-2026) va dentro de un sui-input large (48)
|
|
3221
3280
|
* - Menu matchea trigger width con minWidth=200
|
|
3222
3281
|
*
|
|
3223
3282
|
* `ControlValueAccessor` implementado — funciona con `formControlName`.
|
|
3224
3283
|
*
|
|
3225
3284
|
* Uso:
|
|
3226
|
-
* <sui-input>
|
|
3285
|
+
* <sui-input [leadingControl]="true">
|
|
3227
3286
|
* <sui-compact-select-for-input
|
|
3228
|
-
* slot="
|
|
3287
|
+
* data-slot="start"
|
|
3229
3288
|
* size="medium"
|
|
3230
3289
|
* [items]="countries"
|
|
3231
3290
|
* formControlName="country"
|
|
@@ -3236,7 +3295,8 @@ declare class SuiFlag {
|
|
|
3236
3295
|
* Si el consumer escribe `[(selected)]` desde código, el FormControl NO se entera
|
|
3237
3296
|
* (split-brain). Usar UNA fuente de verdad: formControl O selected, no las dos.
|
|
3238
3297
|
*/
|
|
3239
|
-
|
|
3298
|
+
/** `large` es extensión SUI (03-10-2026): para el `sui-input` large (48) de mobile. */
|
|
3299
|
+
type SuiCompactSelectForInputSize = 'large' | 'medium' | 'small' | 'xsmall';
|
|
3240
3300
|
interface SuiCompactSelectForInputItem<T = string> {
|
|
3241
3301
|
value: T;
|
|
3242
3302
|
label: string;
|
|
@@ -3266,7 +3326,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3266
3326
|
readonly arrowIcon: _angular_core.Signal<"arrow-up-s-line" | "arrow-down-s-line">;
|
|
3267
3327
|
readonly displayValue: _angular_core.Signal<string>;
|
|
3268
3328
|
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>;
|
|
3269
|
-
readonly flagSizePx: _angular_core.Signal<
|
|
3329
|
+
readonly flagSizePx: _angular_core.Signal<16 | 20>;
|
|
3270
3330
|
onHostClick(event: Event): void;
|
|
3271
3331
|
protected onMenuOpenedChange(open: boolean): void;
|
|
3272
3332
|
protected selectItem(item: SuiCompactSelectForInputItem<T>): void;
|
|
@@ -3309,6 +3369,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3309
3369
|
*
|
|
3310
3370
|
* Specs Figma (sin cambios vs versión anterior):
|
|
3311
3371
|
* Sizes: medium 40 (p=10 r=10) / small 36 (p=8 r=8) / xsmall 32 (p=6 r=8)
|
|
3372
|
+
* + large 48 (p=14 r=12, extensión SUI 03-10-2026, para mobile)
|
|
3312
3373
|
* States: placeholder / filled / hover / focused / disabled / error
|
|
3313
3374
|
* Types: basic / icon (RemixIcon 20×20) / country (sui-flag 20×20; 16×16 en xsmall)
|
|
3314
3375
|
*
|
|
@@ -3326,7 +3387,8 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
|
|
|
3326
3387
|
* se entera del cambio (split-brain). Usar UNA u OTRA, no las dos juntas.
|
|
3327
3388
|
*/
|
|
3328
3389
|
type SuiCompactSelectType = 'basic' | 'icon' | 'country';
|
|
3329
|
-
|
|
3390
|
+
/** `large` (48) es extensión SUI (03-10-2026): el alto del `sui-button` large para mobile. */
|
|
3391
|
+
type SuiCompactSelectSize = 'large' | 'medium' | 'small' | 'xsmall';
|
|
3330
3392
|
/**
|
|
3331
3393
|
* Shape del item dentro del menu. El consumer pasa array de estos en `[items]`.
|
|
3332
3394
|
* Compatible con generics (T = tipo del value que se guarda en formControl).
|
|
@@ -3600,6 +3662,9 @@ type SuiContentCardType = 'basic' | 'left-icon' | 'avatar' | 'card-provider' | '
|
|
|
3600
3662
|
* <sui-content-card type="brand" brand="stripe" title="Stripe" subtitle="Conectado"
|
|
3601
3663
|
* [badge]="{ label: 'Activo', color: 'green' }" />
|
|
3602
3664
|
*/
|
|
3665
|
+
/** Tamaño de la X de quitar: `medium` 20 (Figma, default) · `large` 32 con
|
|
3666
|
+
área táctil de 40 (extensión SUI 03-10-2026, mobile). */
|
|
3667
|
+
type SuiContentCardSize = 'medium' | 'large';
|
|
3603
3668
|
declare class SuiContentCard {
|
|
3604
3669
|
/** Tipo de leading visual. */
|
|
3605
3670
|
readonly type: _angular_core.InputSignal<SuiContentCardType>;
|
|
@@ -3632,6 +3697,13 @@ declare class SuiContentCard {
|
|
|
3632
3697
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
3633
3698
|
/** aria-label del botón X. */
|
|
3634
3699
|
readonly dismissAriaLabel: _angular_core.InputSignal<string>;
|
|
3700
|
+
/**
|
|
3701
|
+
* Tamaño de la X de quitar (la fila no cambia: sigue en 72).
|
|
3702
|
+
* `medium` (default, Figma): 20 × 20 sin área extra.
|
|
3703
|
+
* `large` — extensión SUI (03-10-2026) para mobile: caja de 32 × 32 con el
|
|
3704
|
+
* glyph en 20 y un área táctil invisible de 40 × 40.
|
|
3705
|
+
*/
|
|
3706
|
+
readonly size: _angular_core.InputSignal<SuiContentCardSize>;
|
|
3635
3707
|
/**
|
|
3636
3708
|
* Estado deshabilitado: atenúa contenido a tokens disabled-300, deshabilita el
|
|
3637
3709
|
* badge y el botón X (sin pointer-events), y setea aria-disabled en el host.
|
|
@@ -3647,7 +3719,7 @@ declare class SuiContentCard {
|
|
|
3647
3719
|
protected readonly labelType: _angular_core.Signal<SuiContentLabelType>;
|
|
3648
3720
|
onDismiss(event: MouseEvent): void;
|
|
3649
3721
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiContentCard, never>;
|
|
3650
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiContentCard, "sui-content-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "companyLogoSrc": { "alias": "companyLogoSrc"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "dismissAriaLabel": { "alias": "dismissAriaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
3722
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiContentCard, "sui-content-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "companyLogoSrc": { "alias": "companyLogoSrc"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "dismissAriaLabel": { "alias": "dismissAriaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
3651
3723
|
}
|
|
3652
3724
|
|
|
3653
3725
|
type SuiContentDividerType = 'line' | 'line-spacing' | 'text-line' | 'text' | 'solid-text' | 'icon-button' | 'icon-button-group' | 'text-button' | 'text-button-group';
|
|
@@ -3882,8 +3954,10 @@ type SuiCounterInputSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' |
|
|
|
3882
3954
|
* - bg-white-0 + 1px solid stroke-soft-200 + regular-shadow x-small (default)
|
|
3883
3955
|
*
|
|
3884
3956
|
* Steppers (Compact Button [1.1], style ghost):
|
|
3885
|
-
* - padding 2px, radius 6px, icono 20×20 (subtract-line / add-line)
|
|
3886
|
-
*
|
|
3957
|
+
* - padding 2px, radius 6px, icono 20×20 (subtract-line / add-line) → caja
|
|
3958
|
+
* del stepper = 24×24 de 2xsmall a medium. color icon-sub-600.
|
|
3959
|
+
* - large / xlarge (extensión SUI, 03-10-2026): el stepper crece a 40 / 44
|
|
3960
|
+
* para tocarlo con el dedo en mobile (ícono 20 / 24).
|
|
3887
3961
|
*
|
|
3888
3962
|
* Valor (Paragraph/Small — Inter 14/20, -0.084px), text-center, flex 1:
|
|
3889
3963
|
* - default: text-soft-400 (placeholder gris, valor "vacío"/sin foco)
|
|
@@ -3920,6 +3994,8 @@ declare class SuiCounterInput implements ControlValueAccessor {
|
|
|
3920
3994
|
readonly size: _angular_core.InputSignal<SuiCounterInputSize>;
|
|
3921
3995
|
/** El form-label no tiene 'large' — se capea a medium (el label no escala). */
|
|
3922
3996
|
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
3997
|
+
/** Ícono de los botones − / +: 20 hasta large, 24 en xlarge (botón de 44). */
|
|
3998
|
+
protected readonly iconSize: _angular_core.Signal<20 | 24>;
|
|
3923
3999
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
3924
4000
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
3925
4001
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -4060,12 +4136,21 @@ declare function buildCalendarGrid(monthAnchor: Date, options: {
|
|
|
4060
4136
|
}): CalendarCell[];
|
|
4061
4137
|
/** Etiquetas de días para el header del grid — locale ES (lunes-domingo). */
|
|
4062
4138
|
declare const DAY_LABELS_ES: readonly string[];
|
|
4139
|
+
/** «Octubre 2026» — con mayúscula inicial (date-fns en español la da en
|
|
4140
|
+
* minúscula; la regla de copy del proyecto es sentence case). Fix 03-10-2026. */
|
|
4063
4141
|
declare function formatMonthYear(date: Date): string;
|
|
4064
4142
|
declare function formatDateShort(date: Date): string;
|
|
4065
4143
|
declare function formatDateInput(date: Date): string;
|
|
4066
4144
|
|
|
4067
4145
|
type SuiDatepickerMode = 'date' | 'range';
|
|
4068
4146
|
type SuiDatepickerCalendars = 1 | 2;
|
|
4147
|
+
/**
|
|
4148
|
+
* Alto del campo (trigger): small 36 · medium 40 (default) · large 48.
|
|
4149
|
+
* `small` y `large` son extensión SUI (03-10-2026): large es el de mobile, el
|
|
4150
|
+
* mismo alto que sui-input/sui-select large. Con large (y siempre en mobile)
|
|
4151
|
+
* las flechas de mes miden 40 y Cancelar/Aplicar van en large.
|
|
4152
|
+
*/
|
|
4153
|
+
type SuiDatepickerSize = 'small' | 'medium' | 'large';
|
|
4069
4154
|
interface SuiDateRange {
|
|
4070
4155
|
start: Date | null;
|
|
4071
4156
|
end: Date | null;
|
|
@@ -4160,6 +4245,8 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4160
4245
|
readonly calendars: _angular_core.InputSignal<SuiDatepickerCalendars>;
|
|
4161
4246
|
/** Renderiza el calendar inline (sin trigger ni popover). */
|
|
4162
4247
|
readonly inline: _angular_core.InputSignal<boolean>;
|
|
4248
|
+
/** Alto del campo: small 36 · medium 40 (default) · large 48 (ver SuiDatepickerSize). */
|
|
4249
|
+
readonly size: _angular_core.InputSignal<SuiDatepickerSize>;
|
|
4163
4250
|
/** Placeholder del input cuando no hay valor seleccionado. */
|
|
4164
4251
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
4165
4252
|
/** Si true, muestra Cancel/Apply en el footer. Range siempre lo muestra. */
|
|
@@ -4202,6 +4289,11 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4202
4289
|
* - mode='range' + mobile → 1
|
|
4203
4290
|
* - mode='range' + desktop → respeta el prop
|
|
4204
4291
|
*/
|
|
4292
|
+
/**
|
|
4293
|
+
* Cancelar / Aplicar: large (48) con el campo large y siempre en mobile, para
|
|
4294
|
+
* tocarlos con el dedo (extensión SUI, 03-10-2026); small (36, Figma) si no.
|
|
4295
|
+
*/
|
|
4296
|
+
readonly footerButtonSize: _angular_core.Signal<"small" | "large">;
|
|
4205
4297
|
readonly effectiveCalendars: _angular_core.Signal<SuiDatepickerCalendars>;
|
|
4206
4298
|
private _onChange;
|
|
4207
4299
|
private _onTouched;
|
|
@@ -4229,6 +4321,8 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4229
4321
|
readonly rangeHint: _angular_core.Signal<string | null>;
|
|
4230
4322
|
toggle(): void;
|
|
4231
4323
|
openPopover(): void;
|
|
4324
|
+
/** Copia `value` a lo staged (lo que pinta el calendario). */
|
|
4325
|
+
private _stageFromValue;
|
|
4232
4326
|
cancel(): void;
|
|
4233
4327
|
apply(): void;
|
|
4234
4328
|
selectCell(cell: CalendarCell): void;
|
|
@@ -4252,7 +4346,7 @@ declare class SuiDatepicker implements ControlValueAccessor {
|
|
|
4252
4346
|
* - null → fuera de range o mode=date */
|
|
4253
4347
|
cellRangePosition(cell: CalendarCell): 'start' | 'end' | 'in' | null;
|
|
4254
4348
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiDatepicker, never>;
|
|
4255
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDatepicker, "sui-datepicker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "calendars": { "alias": "calendars"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "markedDates": { "alias": "markedDates"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
4349
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiDatepicker, "sui-datepicker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "calendars": { "alias": "calendars"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "markedDates": { "alias": "markedDates"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
4256
4350
|
}
|
|
4257
4351
|
|
|
4258
4352
|
type SuiDayCellType = 'basic' | 'range';
|
|
@@ -5037,7 +5131,7 @@ type SuiEmojiName = keyof typeof SUI_EMOJI_MAP;
|
|
|
5037
5131
|
type SuiEmojiSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
5038
5132
|
declare class SuiEmoji {
|
|
5039
5133
|
/** Nombre del emoji del catálogo. Si se proveé `src`, este se ignora. */
|
|
5040
|
-
readonly name: _angular_core.InputSignal<"
|
|
5134
|
+
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>;
|
|
5041
5135
|
/** URL directa al emoji (override del catálogo). Útil para usar emojis fuera del map. */
|
|
5042
5136
|
readonly src: _angular_core.InputSignal<string | null>;
|
|
5043
5137
|
/** Tamaño del emoji. */
|
|
@@ -5095,6 +5189,11 @@ interface SuiEmptyStateAction {
|
|
|
5095
5189
|
label: string;
|
|
5096
5190
|
route?: string;
|
|
5097
5191
|
}
|
|
5192
|
+
/**
|
|
5193
|
+
* Tamaño del botón de la acción. `medium` (40) es el default de siempre;
|
|
5194
|
+
* `large` (48) es extensión SUI (03-10-2026): el CTA de mobile.
|
|
5195
|
+
*/
|
|
5196
|
+
type SuiEmptyStateSize = 'medium' | 'large';
|
|
5098
5197
|
/**
|
|
5099
5198
|
* SUI Empty State — SUI Design System 2.0
|
|
5100
5199
|
*
|
|
@@ -5128,6 +5227,8 @@ interface SuiEmptyStateAction {
|
|
|
5128
5227
|
* - subtitle: descripción
|
|
5129
5228
|
* - action: string shorthand (solo label → botón emite actionClicked) o
|
|
5130
5229
|
* { label, route? } — con route el botón navega vía routerLink
|
|
5230
|
+
* - size: tamaño del botón de la acción — medium 40 (default) | large 48
|
|
5231
|
+
* (extensión SUI 03-10-2026, para mobile)
|
|
5131
5232
|
*/
|
|
5132
5233
|
declare class SuiEmptyState {
|
|
5133
5234
|
/** URL de Fluent Emoji (3D o animado) — override del zorro default. */
|
|
@@ -5139,6 +5240,10 @@ declare class SuiEmptyState {
|
|
|
5139
5240
|
null/'' = sin botón. */
|
|
5140
5241
|
action: _angular_core.InputSignal<string | SuiEmptyStateAction | null>;
|
|
5141
5242
|
actionClicked: _angular_core.OutputEmitterRef<void>;
|
|
5243
|
+
/** Tamaño del botón de la acción: `medium` 40 (default) o `large` 48 para
|
|
5244
|
+
mobile — extensión SUI (03-10-2026). Solo cambia el botón; emoji, título
|
|
5245
|
+
y padding siguen igual. */
|
|
5246
|
+
size: _angular_core.InputSignal<SuiEmptyStateSize>;
|
|
5142
5247
|
/** Config resuelta del CTA (string → { label }; sin label → null). */
|
|
5143
5248
|
protected readonly actionCfg: _angular_core.Signal<SuiEmptyStateAction | null>;
|
|
5144
5249
|
/** URL del emoji. Default = zorro (mascota canon de empty states del proyecto):
|
|
@@ -5147,7 +5252,7 @@ declare class SuiEmptyState {
|
|
|
5147
5252
|
incluidas las secciones reutilizables — sin tocar cada uso. */
|
|
5148
5253
|
protected readonly resolvedEmojiSrc: _angular_core.Signal<string>;
|
|
5149
5254
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiEmptyState, never>;
|
|
5150
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiEmptyState, "sui-empty-state", never, { "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
|
|
5255
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiEmptyState, "sui-empty-state", never, { "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
|
|
5151
5256
|
}
|
|
5152
5257
|
/** Zorro animado (Fluent Emoji) — emoji default canon de los empty states. */
|
|
5153
5258
|
declare const EMPTY_STATE_FOX_EMOJI = "https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Animals/Fox.png";
|
|
@@ -5452,13 +5557,13 @@ interface SuiFileUploadCardFile {
|
|
|
5452
5557
|
* - file: string shorthand (= filename, default "file.pdf") o
|
|
5453
5558
|
* { filename, extension? } — extension overridea el FileIcon
|
|
5454
5559
|
* (si falta se extrae del filename)
|
|
5455
|
-
* - description: texto secundario izquierdo (ej.
|
|
5560
|
+
* - description: texto secundario izquierdo (ej. «0 KB de 120 KB»)
|
|
5456
5561
|
* - state: 'in-progress' | 'success' | 'error'
|
|
5457
5562
|
* - progress: 0–100 — solo se muestra si state==='in-progress'
|
|
5458
5563
|
* - statusText: override del label de status (sino default por state:
|
|
5459
|
-
*
|
|
5564
|
+
* «Subiendo…» / «Completado» / «Falló»; en español desde el 03-10-2026)
|
|
5460
5565
|
* - showStatus: muestra/oculta el bloque de status (default true)
|
|
5461
|
-
* - retryLabel: texto del link de error (default
|
|
5566
|
+
* - retryLabel: texto del link de error (default «Reintentar»)
|
|
5462
5567
|
*
|
|
5463
5568
|
* Outputs:
|
|
5464
5569
|
* - actionClicked: click en el botón compacto (close en in-progress,
|
|
@@ -5475,6 +5580,10 @@ declare class SuiFileUploadCard {
|
|
|
5475
5580
|
readonly progress: _angular_core.InputSignal<number>;
|
|
5476
5581
|
readonly statusText: _angular_core.InputSignal<string | null>;
|
|
5477
5582
|
readonly showStatus: _angular_core.InputSignal<boolean>;
|
|
5583
|
+
/** Textos para el lector de pantalla (antes fijos en inglés). */
|
|
5584
|
+
readonly cancelLabel: _angular_core.InputSignal<string>;
|
|
5585
|
+
readonly removeLabel: _angular_core.InputSignal<string>;
|
|
5586
|
+
readonly progressLabel: _angular_core.InputSignal<string>;
|
|
5478
5587
|
readonly retryLabel: _angular_core.InputSignal<string>;
|
|
5479
5588
|
readonly actionClicked: _angular_core.OutputEmitterRef<void>;
|
|
5480
5589
|
readonly retryClicked: _angular_core.OutputEmitterRef<void>;
|
|
@@ -5489,7 +5598,7 @@ declare class SuiFileUploadCard {
|
|
|
5489
5598
|
protected onAction(): void;
|
|
5490
5599
|
protected onRetry(): void;
|
|
5491
5600
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiFileUploadCard, never>;
|
|
5492
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiFileUploadCard, "sui-file-upload-card", never, { "file": { "alias": "file"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "statusText": { "alias": "statusText"; "required": false; "isSignal": true; }; "showStatus": { "alias": "showStatus"; "required": false; "isSignal": true; }; "retryLabel": { "alias": "retryLabel"; "required": false; "isSignal": true; }; }, { "actionClicked": "actionClicked"; "retryClicked": "retryClicked"; }, never, never, true, never>;
|
|
5601
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiFileUploadCard, "sui-file-upload-card", never, { "file": { "alias": "file"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "statusText": { "alias": "statusText"; "required": false; "isSignal": true; }; "showStatus": { "alias": "showStatus"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "progressLabel": { "alias": "progressLabel"; "required": false; "isSignal": true; }; "retryLabel": { "alias": "retryLabel"; "required": false; "isSignal": true; }; }, { "actionClicked": "actionClicked"; "retryClicked": "retryClicked"; }, never, never, true, never>;
|
|
5493
5602
|
}
|
|
5494
5603
|
|
|
5495
5604
|
type SuiFileUploadSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
@@ -5506,7 +5615,8 @@ type SuiFileUploadSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
5506
5615
|
* default / hover / dragover / disabled / error. Soporta single o multi.
|
|
5507
5616
|
*
|
|
5508
5617
|
* EXACT (pulled from Figma, verified — node 450:9410 / 450:9429):
|
|
5509
|
-
* - Container: w=400px (
|
|
5618
|
+
* - Container: Figma w=400px; SUI lo hace fluido (width 100% del contenedor,
|
|
5619
|
+
* 03-10-2026) para que llene la columna del formulario. padding=32px, gap=20px,
|
|
5510
5620
|
* border=1px dashed --sui-stroke-sub-300 (#d1d1d1), radius=12px,
|
|
5511
5621
|
* bg=--sui-bg-white-0. Flex column, items+justify center.
|
|
5512
5622
|
* - Icon: upload-cloud-2-line (Remix) 24×24, color --sui-icon-sub-600 (#5c5c5c),
|
|
@@ -5550,7 +5660,8 @@ type SuiFileUploadSize = 'small' | 'medium' | 'large' | 'xlarge';
|
|
|
5550
5660
|
* - maxSize: bytes máximo por archivo. 0 = sin límite.
|
|
5551
5661
|
* - title: label primario.
|
|
5552
5662
|
* - subtitle: texto secundario.
|
|
5553
|
-
* - browseLabel: texto del botón
|
|
5663
|
+
* - browseLabel: texto del botón (default «Buscar archivo»; era "Browse File"
|
|
5664
|
+
* hasta el 03-10-2026).
|
|
5554
5665
|
* - disabled: bloquea interacción.
|
|
5555
5666
|
* - error: estado de error (border rojo).
|
|
5556
5667
|
* - errorMessage: texto del error mostrado debajo.
|
|
@@ -5576,13 +5687,13 @@ declare class SuiFileUpload {
|
|
|
5576
5687
|
protected readonly inputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
5577
5688
|
protected readonly dragging: _angular_core.WritableSignal<boolean>;
|
|
5578
5689
|
protected readonly internalError: _angular_core.WritableSignal<string | null>;
|
|
5579
|
-
protected readonly state: _angular_core.Signal<"
|
|
5690
|
+
protected readonly state: _angular_core.Signal<"error" | "default" | "disabled" | "dragover">;
|
|
5580
5691
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
5581
5692
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
5582
5693
|
protected readonly resolvedErrorMessage: _angular_core.Signal<string | null>;
|
|
5583
5694
|
/** Icon size px. Figma verified = 24 (medium). small/large/xlarge escalan +4
|
|
5584
5695
|
* (small 20 → medium 24 → large 28 → xlarge 32) — extensión de proyecto. */
|
|
5585
|
-
protected readonly iconSize: _angular_core.Signal<20 | 24 |
|
|
5696
|
+
protected readonly iconSize: _angular_core.Signal<20 | 24 | 28 | 32>;
|
|
5586
5697
|
onClick(): void;
|
|
5587
5698
|
/** Browse File button — abre el picker. stopPropagation evita doble-open
|
|
5588
5699
|
* (el host también es clickeable). */
|
|
@@ -6109,6 +6220,10 @@ declare class SuiImageUploadProfile implements ControlValueAccessor {
|
|
|
6109
6220
|
|
|
6110
6221
|
type SuiImageUploadShape = 'circle' | 'rect';
|
|
6111
6222
|
type SuiImageUploadSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
6223
|
+
/** Valor del `accept` del input file (tipos + extensiones, por el .heic sin MIME). */
|
|
6224
|
+
declare const SUI_IMAGE_UPLOAD_ACCEPT: string;
|
|
6225
|
+
/** ¿Es una imagen que el componente acepta? Por MIME o, si viene vacío, por extensión. */
|
|
6226
|
+
declare function esImagenAceptada(file: Pick<File, 'type' | 'name'>): boolean;
|
|
6112
6227
|
/**
|
|
6113
6228
|
* SUI Image Upload — SUI Design System 2.0
|
|
6114
6229
|
*
|
|
@@ -6157,7 +6272,7 @@ type SuiImageUploadSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
|
6157
6272
|
*
|
|
6158
6273
|
* RESUELTO 2026-05-29:
|
|
6159
6274
|
* - 1.7 (component library): el botón "Quitar" pasó de <button> custom a
|
|
6160
|
-
* <sui-button variant="stroke" color="error" size="
|
|
6275
|
+
* <sui-button variant="stroke" color="error" size="xsmall">. Los iconos
|
|
6161
6276
|
* cámara/lápiz pasaron de SVG inline a <sui-icon name="image-add-line" /> y
|
|
6162
6277
|
* <sui-icon name="pencil-line" />.
|
|
6163
6278
|
*
|
|
@@ -6224,8 +6339,14 @@ declare class SuiImageUpload {
|
|
|
6224
6339
|
protected readonly sizePx: _angular_core.Signal<number>;
|
|
6225
6340
|
/** Camera icon px en el empty state. xl escala a 20, resto 16
|
|
6226
6341
|
* (matchea el escalado del contenedor 32→40 en SCSS). */
|
|
6227
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
6342
|
+
protected readonly iconSize: _angular_core.Signal<16 | 20>;
|
|
6343
|
+
/** Ícono del lápiz y el tacho (editable): 20 en botones de 40, 16 en sm (32). */
|
|
6344
|
+
protected readonly ctrlIconSize: _angular_core.Signal<16 | 20>;
|
|
6228
6345
|
protected readonly hasSrc: _angular_core.Signal<boolean>;
|
|
6346
|
+
/** Hay imagen y se muestra el botón «Quitar» debajo (sin `editable`). */
|
|
6347
|
+
protected readonly conQuitar: _angular_core.Signal<boolean>;
|
|
6348
|
+
/** Valor del `accept` del input file (incluye HEIC/HEIF). */
|
|
6349
|
+
protected readonly accept: string;
|
|
6229
6350
|
protected readonly state: _angular_core.Signal<"filled" | "disabled" | "dragover" | "empty">;
|
|
6230
6351
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
6231
6352
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
@@ -6756,7 +6877,7 @@ type SuiIntegrationSwitchAppearance = 'card' | 'list';
|
|
|
6756
6877
|
* Config del manage button embebido. Un solo input `[manage]` reemplaza al
|
|
6757
6878
|
* trío showManage/manageLabel/manageIcon (mismo patrón objeto que
|
|
6758
6879
|
* `badge`/SuiBadgeConfig — canon sui-checkbox-label):
|
|
6759
|
-
* - `true` (default) → botón con defaults ('
|
|
6880
|
+
* - `true` (default) → botón con defaults ('Administrar' + settings-2-line)
|
|
6760
6881
|
* - `'Configurar'` → string shorthand: label custom, icon default
|
|
6761
6882
|
* - `{ label, icon }` → config completa
|
|
6762
6883
|
* - `false` / `null` → sin botón
|
|
@@ -6848,7 +6969,7 @@ declare class SuiIntegrationSwitch implements ControlValueAccessor {
|
|
|
6848
6969
|
(label + color/variant/size, tipado como sui-badge). null = sin badge. */
|
|
6849
6970
|
readonly badge: _angular_core.InputSignal<string | SuiBadgeConfig | null>;
|
|
6850
6971
|
protected readonly badgeCfg: _angular_core.Signal<SuiBadgeConfig | null>;
|
|
6851
|
-
/** Manage button — true = defaults ('
|
|
6972
|
+
/** Manage button — true = defaults ('Administrar' + settings-2-line), string =
|
|
6852
6973
|
label custom con icon default, SuiIntegrationManageConfig = todo,
|
|
6853
6974
|
false/null = oculto. */
|
|
6854
6975
|
readonly manage: _angular_core.InputSignal<string | boolean | SuiIntegrationManageConfig | null>;
|
|
@@ -7787,7 +7908,7 @@ declare class SuiNotificationFooter {
|
|
|
7787
7908
|
private static readonly DEFAULT_MANAGE_LABEL;
|
|
7788
7909
|
readonly usePrefix: _angular_core.InputSignal<string>;
|
|
7789
7910
|
readonly useSuffix: _angular_core.InputSignal<string>;
|
|
7790
|
-
/** Link de gestión — true = label default ('
|
|
7911
|
+
/** Link de gestión — true = label default ('Administrar notificaciones'); string =
|
|
7791
7912
|
* label custom (emite `manageClick`); SuiLinkConfig { label, href?, target?,
|
|
7792
7913
|
* rel? }: con href renderiza <a> real, rel automático 'noopener noreferrer'
|
|
7793
7914
|
* para _blank. false/null = oculto (Figma prop `button` off). */
|
|
@@ -8027,6 +8148,13 @@ declare class SuiNotification {
|
|
|
8027
8148
|
}
|
|
8028
8149
|
|
|
8029
8150
|
type SuiOtpInputType = 'number' | 'text';
|
|
8151
|
+
/**
|
|
8152
|
+
* Tamaño de la celda (extensión SUI, 03-10-2026). `large` es el de la guía
|
|
8153
|
+
* (80 × 64) y el default. `medium` (52 × 56) hace entrar 6 celdas en un
|
|
8154
|
+
* teléfono de 390 (6 × 52 + 5 × 8 = 352 de 358 útiles); `small` (44 × 48)
|
|
8155
|
+
* para pantallas de 360 o un código dentro de una tarjeta.
|
|
8156
|
+
*/
|
|
8157
|
+
type SuiOtpInputSize = 'large' | 'medium' | 'small';
|
|
8030
8158
|
/**
|
|
8031
8159
|
* SUI OTP / Digit Input — SUI Design System 2.0
|
|
8032
8160
|
*
|
|
@@ -8068,6 +8196,9 @@ type SuiOtpInputType = 'number' | 'text';
|
|
|
8068
8196
|
* - CVA: el value expuesto es el string concatenado de todas las celdas.
|
|
8069
8197
|
*
|
|
8070
8198
|
* @input length Cantidad de celdas (default 6).
|
|
8199
|
+
* @input size 'large' (80×64, guía) | 'medium' (52×56) | 'small' (44×48).
|
|
8200
|
+
* Además las celdas se achican si no entran en el ancho
|
|
8201
|
+
* del contenedor (extensión SUI, 03-10-2026).
|
|
8071
8202
|
* @input type 'number' | 'text' — 'number' restringe a [0-9] e
|
|
8072
8203
|
* inputmode='numeric'; 'text' acepta cualquier char e
|
|
8073
8204
|
* inputmode='text'.
|
|
@@ -8086,6 +8217,8 @@ type SuiOtpInputType = 'number' | 'text';
|
|
|
8086
8217
|
*/
|
|
8087
8218
|
declare class SuiOtpInput implements ControlValueAccessor {
|
|
8088
8219
|
readonly length: _angular_core.InputSignal<number>;
|
|
8220
|
+
/** Tamaño de la celda: large 80×64 (guía, default) · medium 52×56 · small 44×48. */
|
|
8221
|
+
readonly size: _angular_core.InputSignal<SuiOtpInputSize>;
|
|
8089
8222
|
readonly type: _angular_core.InputSignal<SuiOtpInputType>;
|
|
8090
8223
|
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
8091
8224
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
@@ -8123,7 +8256,7 @@ declare class SuiOtpInput implements ControlValueAccessor {
|
|
|
8123
8256
|
registerOnTouched(fn: () => void): void;
|
|
8124
8257
|
setDisabledState(isDisabled: boolean): void;
|
|
8125
8258
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiOtpInput, never>;
|
|
8126
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiOtpInput, "sui-otp-input", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
|
|
8259
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiOtpInput, "sui-otp-input", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
|
|
8127
8260
|
}
|
|
8128
8261
|
|
|
8129
8262
|
/**
|
|
@@ -8442,6 +8575,9 @@ declare class SuiPeriodRange {
|
|
|
8442
8575
|
type SuiPopoverPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'right-top' | 'right-center' | 'right-bottom' | 'left-top' | 'left-center' | 'left-bottom';
|
|
8443
8576
|
/** Tipo de footer del popover (Figma 4456:83048). `none` = sin footer. */
|
|
8444
8577
|
type SuiPopoverFooter = 'none' | 'stretch' | 'text-stepper' | 'stepper';
|
|
8578
|
+
/** Tamaño de los botones del pie (escala del sui-button): `small` 36 (Figma,
|
|
8579
|
+
default) · `medium` 40 para mobile — extensión SUI (03-10-2026). */
|
|
8580
|
+
type SuiPopoverSize = 'small' | 'medium';
|
|
8445
8581
|
declare class SuiPopover {
|
|
8446
8582
|
/** Placement axis del tail relativo al trigger (12 variantes Figma). */
|
|
8447
8583
|
readonly position: _angular_core.InputSignal<SuiPopoverPosition>;
|
|
@@ -8469,6 +8605,9 @@ declare class SuiPopover {
|
|
|
8469
8605
|
current: number;
|
|
8470
8606
|
total: number;
|
|
8471
8607
|
} | null>;
|
|
8608
|
+
/** Botones del pie: `small` 36 (Figma, default) · `medium` 40 para mobile —
|
|
8609
|
+
* extensión SUI (03-10-2026). */
|
|
8610
|
+
readonly size: _angular_core.InputSignal<SuiPopoverSize>;
|
|
8472
8611
|
/** Click en el botón X de dismiss. */
|
|
8473
8612
|
readonly dismissed: _angular_core.OutputEmitterRef<void>;
|
|
8474
8613
|
/** Click en el botón secundario (Back). */
|
|
@@ -8487,12 +8626,12 @@ declare class SuiPopover {
|
|
|
8487
8626
|
readonly isDotStepper: _angular_core.Signal<boolean>;
|
|
8488
8627
|
/** Config resuelta del step (null → default { current: 1, total: 4 }). */
|
|
8489
8628
|
private readonly stepCfg;
|
|
8490
|
-
/** Texto
|
|
8629
|
+
/** Texto «Paso X de N» del text-stepper (era «Step X of N» hasta 03-10-2026). */
|
|
8491
8630
|
readonly stepperText: _angular_core.Signal<string>;
|
|
8492
8631
|
/** Array de dots para el stepper. Cada item: índice activo => primary. */
|
|
8493
8632
|
readonly dots: _angular_core.Signal<boolean[]>;
|
|
8494
8633
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiPopover, never>;
|
|
8495
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiPopover, "sui-popover", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "tail": { "alias": "tail"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "dismissIcon": { "alias": "dismissIcon"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "doubleButton": { "alias": "doubleButton"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; "back": "back"; "next": "next"; }, never, ["[data-slot=body]"], true, never>;
|
|
8634
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiPopover, "sui-popover", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "tail": { "alias": "tail"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "dismissIcon": { "alias": "dismissIcon"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "doubleButton": { "alias": "doubleButton"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; "back": "back"; "next": "next"; }, never, ["[data-slot=body]"], true, never>;
|
|
8496
8635
|
}
|
|
8497
8636
|
|
|
8498
8637
|
type SuiProgressBarColor = 'blue' | 'green' | 'orange' | 'red' | 'purple';
|
|
@@ -8823,7 +8962,7 @@ declare class SuiRadioCard implements ControlValueAccessor {
|
|
|
8823
8962
|
* Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'.
|
|
8824
8963
|
* Si ambos están, icon tiene precedencia.
|
|
8825
8964
|
*/
|
|
8826
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
8965
|
+
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>;
|
|
8827
8966
|
/**
|
|
8828
8967
|
* URL directa al emoji para type='left-icon'. Útil cuando el consumer ya tiene
|
|
8829
8968
|
* la URL (ej. FLUENT_EMOJI map del proyecto) y no quiere registrar el emoji
|
|
@@ -8870,6 +9009,12 @@ declare class SuiRadioCard implements ControlValueAccessor {
|
|
|
8870
9009
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiRadioCard, "sui-radio-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "selected": "selected"; }, never, never, true, never>;
|
|
8871
9010
|
}
|
|
8872
9011
|
|
|
9012
|
+
/**
|
|
9013
|
+
* Tamaño del radio-label. `medium` es el de Figma (control 20, label 14/20);
|
|
9014
|
+
* `large` y `xlarge` son extensión SUI (03-10-2026, pedido del dueño) para mobile:
|
|
9015
|
+
* le pasan el tamaño al sui-radio interno (24 / 28) y suben la tipografía.
|
|
9016
|
+
*/
|
|
9017
|
+
type SuiRadioLabelSize = 'medium' | 'large' | 'xlarge';
|
|
8873
9018
|
/**
|
|
8874
9019
|
* SUI Radio Label — SUI Design System 2.0
|
|
8875
9020
|
*
|
|
@@ -8923,6 +9068,18 @@ declare class SuiRadioLabel {
|
|
|
8923
9068
|
readonly link: _angular_core.InputSignal<string | SuiLinkConfig | null>;
|
|
8924
9069
|
/** Config resuelta del link (string → { label }, rel automático). */
|
|
8925
9070
|
protected readonly linkCfg: _angular_core.Signal<SuiLinkConfig | null>;
|
|
9071
|
+
/**
|
|
9072
|
+
* Tamaño. `medium` (default, Figma): control 20, label 14/20.
|
|
9073
|
+
* Extensión SUI (03-10-2026) para tocar en mobile:
|
|
9074
|
+
* - `large`: control 24, label 16/24, sublabel y descripción 14/20, badge medium.
|
|
9075
|
+
* - `xlarge`: control 28, label 16/24, sublabel y descripción 14/20, badge large.
|
|
9076
|
+
* El badge toma este default solo si su config no trae `size`.
|
|
9077
|
+
*/
|
|
9078
|
+
readonly size: _angular_core.InputSignal<SuiRadioLabelSize>;
|
|
9079
|
+
/** Badge por default según el tamaño (si la config no fija uno). */
|
|
9080
|
+
protected readonly badgeSize: _angular_core.Signal<SuiBadgeSize>;
|
|
9081
|
+
/** El link-button tiene dos tamaños: small (12/16) en Figma, medium (14/20) en mobile. */
|
|
9082
|
+
protected readonly linkSize: _angular_core.Signal<SuiLinkButtonSize>;
|
|
8926
9083
|
/** Si true, invierte orden: [content] [radio] (radio a la derecha). */
|
|
8927
9084
|
readonly flip: _angular_core.InputSignal<boolean>;
|
|
8928
9085
|
/** Deshabilita el radio + wrapper. */
|
|
@@ -8941,7 +9098,7 @@ declare class SuiRadioLabel {
|
|
|
8941
9098
|
private select;
|
|
8942
9099
|
onLinkClick(event: MouseEvent): void;
|
|
8943
9100
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiRadioLabel, never>;
|
|
8944
|
-
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; }; "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>;
|
|
9101
|
+
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>;
|
|
8945
9102
|
}
|
|
8946
9103
|
|
|
8947
9104
|
declare class SuiRadioGroup implements ControlValueAccessor {
|
|
@@ -9062,7 +9219,7 @@ interface SuiRatingCellView {
|
|
|
9062
9219
|
* @input readonly deshabilita clicks (display only)
|
|
9063
9220
|
* @input halfStep inline + readonly: renderiza half-fill basado en value decimal
|
|
9064
9221
|
* @input showValue inline: muestra "4.5" al lado de los íconos
|
|
9065
|
-
* @input reviewCount inline: muestra "5.2K
|
|
9222
|
+
* @input reviewCount inline: muestra "5.2K calificaciones" al lado (formato corto)
|
|
9066
9223
|
* @input reviewLink inline: link "18 reviews" al lado
|
|
9067
9224
|
* @input alignment inline: 'inline' (only) | 'vertical' | 'horizontal'
|
|
9068
9225
|
* @input emojis array de chars Unicode para type='emoji' (default 😞😕😐🙂😄)
|
|
@@ -9334,11 +9491,10 @@ declare class SuiRichEditor {
|
|
|
9334
9491
|
* `large` y `xlarge` son extensión nuestra (12-08-2026), igual que en
|
|
9335
9492
|
* `sui-input`: alturas del `sui-button` para que campo y botón se alineen.
|
|
9336
9493
|
*
|
|
9337
|
-
*
|
|
9338
|
-
*
|
|
9339
|
-
*
|
|
9340
|
-
*
|
|
9341
|
-
* la deuda que hay que saldar el día que la lista tenga que acompañar.
|
|
9494
|
+
* La lista acompaña desde el 03-10-2026 (extensión SUI): las opciones son
|
|
9495
|
+
* `sui-dropdown-item` de 36 (Figma) hasta medium, 44 en large y 48 en xlarge,
|
|
9496
|
+
* y ≥ 44 en mobile (≤ 767 px) con cualquier size. Lo resuelve sui-select.scss
|
|
9497
|
+
* sobre los ítems del panel; el dropdown-item no se toca.
|
|
9342
9498
|
*/
|
|
9343
9499
|
type SuiSelectSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
9344
9500
|
/**
|
|
@@ -9762,9 +9918,17 @@ declare class SuiSidebar {
|
|
|
9762
9918
|
* el untouched del range slider.
|
|
9763
9919
|
*/
|
|
9764
9920
|
type SuiSliderType = 'single' | 'range';
|
|
9921
|
+
/**
|
|
9922
|
+
* Tamaño del slider. `medium` es el de Figma (manija 16, riel 6). `large` es
|
|
9923
|
+
* extensión SUI (03-10-2026, pedido del dueño) para mobile: manija 24, riel 8,
|
|
9924
|
+
* punto interno 8 y label 14/20 — la manija de 16 es muy chica para el dedo.
|
|
9925
|
+
*/
|
|
9926
|
+
type SuiSliderSize = 'medium' | 'large';
|
|
9765
9927
|
declare class SuiSlider implements ControlValueAccessor {
|
|
9766
9928
|
private readonly hostRef;
|
|
9767
9929
|
readonly type: _angular_core.InputSignal<SuiSliderType>;
|
|
9930
|
+
/** `medium` (default, Figma) o `large` (mobile, extensión SUI). */
|
|
9931
|
+
readonly size: _angular_core.InputSignal<SuiSliderSize>;
|
|
9768
9932
|
/** Rango numérico de la escala. */
|
|
9769
9933
|
readonly min: _angular_core.InputSignal<number>;
|
|
9770
9934
|
readonly max: _angular_core.InputSignal<number>;
|
|
@@ -9835,7 +9999,7 @@ declare class SuiSlider implements ControlValueAccessor {
|
|
|
9835
9999
|
onThumbEnter(handle: 'single' | 'min' | 'max'): void;
|
|
9836
10000
|
onThumbLeave(): void;
|
|
9837
10001
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiSlider, never>;
|
|
9838
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSlider, "sui-slider", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "amount": { "alias": "amount"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipAlways": { "alias": "tooltipAlways"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "minValueChange": "minValueChange"; "maxValueChange": "maxValueChange"; }, never, never, true, never>;
|
|
10002
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSlider, "sui-slider", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "amount": { "alias": "amount"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipAlways": { "alias": "tooltipAlways"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "minValueChange": "minValueChange"; "maxValueChange": "maxValueChange"; }, never, never, true, never>;
|
|
9839
10003
|
}
|
|
9840
10004
|
|
|
9841
10005
|
type SuiSocialButtonBrand = 'apple' | 'x-twitter' | 'google' | 'facebook' | 'linkedin' | 'github' | 'dropbox';
|
|
@@ -9951,6 +10115,11 @@ declare class SuiSocialButton {
|
|
|
9951
10115
|
|
|
9952
10116
|
type SuiStatusBadgeStatus = 'completed' | 'pending' | 'failed' | 'information' | 'disabled';
|
|
9953
10117
|
type SuiStatusBadgeAppearance = 'stroke' | 'light';
|
|
10118
|
+
/**
|
|
10119
|
+
* Tamaño. `medium` (24) es el de Figma y el default. `large` 28 y `xlarge` 32
|
|
10120
|
+
* son extensión SUI (03-10-2026) para mobile, donde el estado se lee de lejos.
|
|
10121
|
+
*/
|
|
10122
|
+
type SuiStatusBadgeSize = 'medium' | 'large' | 'xlarge';
|
|
9954
10123
|
/**
|
|
9955
10124
|
* SUI Status Badge — SUI Design System 2.0
|
|
9956
10125
|
*
|
|
@@ -9959,7 +10128,8 @@ type SuiStatusBadgeAppearance = 'stroke' | 'light';
|
|
|
9959
10128
|
*
|
|
9960
10129
|
* Componente separado del `sui-badge` regular. A diferencia del Badge:
|
|
9961
10130
|
* - radius 6 (NO full)
|
|
9962
|
-
* - solo medium
|
|
10131
|
+
* - Figma trae solo medium (font Label/X Small 12/16/0); large/xlarge son
|
|
10132
|
+
* extensión SUI para mobile (ver «Tamaños» abajo)
|
|
9963
10133
|
* - solo 2 styles: stroke + light (NO filled/lighter/dark)
|
|
9964
10134
|
* - status enum cerrado (5 valores) — cada uno con su icono semántico fijo
|
|
9965
10135
|
* - withDot reemplaza el icono por un dot de 6×6 (diámetro 6px) con el color del status
|
|
@@ -9999,11 +10169,17 @@ type SuiStatusBadgeAppearance = 'stroke' | 'light';
|
|
|
9999
10169
|
* - 'information' → state-information + ri-information-fill
|
|
10000
10170
|
* - 'disabled' → state-faded + ri-forbid-fill
|
|
10001
10171
|
*
|
|
10172
|
+
* Tamaños — extensión SUI (03-10-2026, pedido del dueño):
|
|
10173
|
+
* El frame 171:5100 trae 20 símbolos, TODOS Medium (24px). Para mobile se
|
|
10174
|
+
* sumaron dos más grandes, en la escala del sui-button (28 · 32) y no en la
|
|
10175
|
+
* del sui-badge (24 · 28): el status-badge ya parte de 24, así que un
|
|
10176
|
+
* «large 24» no cambiaría nada.
|
|
10177
|
+
* medium 24 · Label/X Small 12/16 · icono 12 en caja 16 · dot 6 (default, Figma)
|
|
10178
|
+
* large 28 · Label/Small 14/20 · icono 16 en caja 20 · dot 8
|
|
10179
|
+
* xlarge 32 · Label/Medium 16/24 · icono 20 en caja 24 · dot 8
|
|
10180
|
+
* No hay `small`: Figma no lo trae y en web 24 ya es el mínimo legible.
|
|
10181
|
+
*
|
|
10002
10182
|
* PENDING VERIFY (no críticos):
|
|
10003
|
-
* - Small size del Status Badge: CONFIRMADO que NO existe — el frame 171:5100
|
|
10004
|
-
* contiene 20 símbolos (5 status × 2 styles × 2 withDot), TODOS Medium (24px
|
|
10005
|
-
* de alto). No hay eje Size en este componente. Si el DS agrega Small más
|
|
10006
|
-
* adelante, recién ahí se introduce el input `size`.
|
|
10007
10183
|
* - Hover/focus states: CONFIRMADO display-only — el frame no expone ningún
|
|
10008
10184
|
* eje de interacción (ni Disabled como estado, salvo el status semántico
|
|
10009
10185
|
* 'disabled' que es un valor de contenido, no un state CSS).
|
|
@@ -10022,6 +10198,10 @@ declare class SuiStatusBadge {
|
|
|
10022
10198
|
* linter trata de parsear como CSS y rompe con valores como "light").
|
|
10023
10199
|
*/
|
|
10024
10200
|
readonly appearance: _angular_core.InputSignal<SuiStatusBadgeAppearance>;
|
|
10201
|
+
/** Tamaño: medium 24 (default, Figma) · large 28 · xlarge 32 (mobile). */
|
|
10202
|
+
readonly size: _angular_core.InputSignal<SuiStatusBadgeSize>;
|
|
10203
|
+
/** Px del glyph del sui-icon interno por tamaño (12 / 16 / 20). */
|
|
10204
|
+
readonly iconSize: _angular_core.Signal<number>;
|
|
10025
10205
|
/**
|
|
10026
10206
|
* Si `true`, reemplaza el icono semántico por un dot 6×6 (diámetro 6px,
|
|
10027
10207
|
* radio 3px — confirmado en Figma 171:5156) del color del status.
|
|
@@ -10046,11 +10226,11 @@ declare class SuiStatusBadge {
|
|
|
10046
10226
|
readonly iconName: _angular_core.Signal<string>;
|
|
10047
10227
|
private readonly iconoDelStatus;
|
|
10048
10228
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiStatusBadge, never>;
|
|
10049
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiStatusBadge, "sui-status-badge", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "withDot": { "alias": "withDot"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10229
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiStatusBadge, "sui-status-badge", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "withDot": { "alias": "withDot"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10050
10230
|
}
|
|
10051
10231
|
|
|
10052
10232
|
type SuiStepperVariant = 'dot' | 'horizontal' | 'vertical';
|
|
10053
|
-
type SuiStepperSize = 'small' | 'xsmall';
|
|
10233
|
+
type SuiStepperSize = 'small' | 'xsmall' | 'medium';
|
|
10054
10234
|
type SuiStepperState = 'default' | 'active' | 'completed' | 'error';
|
|
10055
10235
|
interface SuiStepperItem {
|
|
10056
10236
|
/** Etiqueta del step. Ignorada en variant='dot'. */
|
|
@@ -10091,7 +10271,13 @@ interface SuiStepperItemView {
|
|
|
10091
10271
|
* @input count Cantidad de dots (variant='dot' only). Si se pasan steps,
|
|
10092
10272
|
* tiene precedencia el length de steps.
|
|
10093
10273
|
* @input currentStep 0-indexed; index < cur = completed, === cur = active, > cur = default
|
|
10094
|
-
* @input size 'small' | 'xsmall'
|
|
10274
|
+
* @input size 'small' | 'xsmall' | 'medium'.
|
|
10275
|
+
* small/xsmall (Figma) solo cambian el dot (8 / 4); horizontal y
|
|
10276
|
+
* vertical miden igual en los dos (indicador 20).
|
|
10277
|
+
* medium — extensión SUI (03-10-2026, pedido del dueño) para
|
|
10278
|
+
* mobile — agranda los tres variants: dot 10, indicador 24,
|
|
10279
|
+
* número Label/Small (14/20), label Paragraph/Medium (16/24),
|
|
10280
|
+
* card vertical de 44 de alto (24 + padding 10×2).
|
|
10095
10281
|
* @input interactive Si true, los steps son clickeables y emiten stepClick
|
|
10096
10282
|
*
|
|
10097
10283
|
* @output stepClick Index del step clickeado (solo si interactive=true)
|
|
@@ -10140,6 +10326,9 @@ declare class SuiStepper {
|
|
|
10140
10326
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
10141
10327
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
10142
10328
|
readonly stepClick: _angular_core.OutputEmitterRef<number>;
|
|
10329
|
+
/** Ícono del indicador (completed / error): 24 en medium, 20 en los de Figma.
|
|
10330
|
+
* Es el indicador mismo, por eso crece; separador y chevron se quedan en 20. */
|
|
10331
|
+
readonly indicatorIconPx: _angular_core.Signal<number>;
|
|
10143
10332
|
/**
|
|
10144
10333
|
* Vista pre-computada de items. Una sola pasada por cambio de inputs:
|
|
10145
10334
|
* - resuelve length: steps.length || count (para variant=dot sin labels)
|
|
@@ -10186,6 +10375,12 @@ interface SuiStoreCardData {
|
|
|
10186
10375
|
logoUrl?: string | null;
|
|
10187
10376
|
coverUrl?: string | null;
|
|
10188
10377
|
}
|
|
10378
|
+
/**
|
|
10379
|
+
* Tamaño del corazón de favorito, en la escala del sui-button. `small` (36, el
|
|
10380
|
+
* de siempre) es el default; `medium` (40) es extensión SUI (03-10-2026) para
|
|
10381
|
+
* tocarlo con el dedo en mobile.
|
|
10382
|
+
*/
|
|
10383
|
+
type SuiStoreCardSize = 'small' | 'medium';
|
|
10189
10384
|
interface PreviewBadge {
|
|
10190
10385
|
label: string;
|
|
10191
10386
|
variant: 'draft' | 'pending' | 'rejected';
|
|
@@ -10195,6 +10390,12 @@ declare class SuiStoreCard {
|
|
|
10195
10390
|
readonly isFavorite: _angular_core.InputSignal<boolean>;
|
|
10196
10391
|
/** Si true, no se navega al detalle (caso suspendido). El padre puede sobreescribir. */
|
|
10197
10392
|
readonly disableLink: _angular_core.InputSignal<boolean>;
|
|
10393
|
+
/** Ruta base del detalle: la tarjeta navega a `[linkBase, store.id]`. El
|
|
10394
|
+
* default es la ruta del cliente de Master Pedidos; otra app pasa la suya. */
|
|
10395
|
+
readonly linkBase: _angular_core.InputSignal<string>;
|
|
10396
|
+
/** Corazón de favorito: `small` 36 (default) · `medium` 40 para mobile —
|
|
10397
|
+
* extensión SUI (03-10-2026). */
|
|
10398
|
+
readonly size: _angular_core.InputSignal<SuiStoreCardSize>;
|
|
10198
10399
|
/**
|
|
10199
10400
|
* El texto de Envío y el de Distancia, ya escritos por quien llama.
|
|
10200
10401
|
*
|
|
@@ -10234,6 +10435,8 @@ declare class SuiStoreCard {
|
|
|
10234
10435
|
logoUrl: string | null;
|
|
10235
10436
|
}>;
|
|
10236
10437
|
readonly link: _angular_core.Signal<string[] | null>;
|
|
10438
|
+
/** Glyph del corazón: 18 en small, 20 en medium. */
|
|
10439
|
+
readonly favIconSize: _angular_core.Signal<20 | 18>;
|
|
10237
10440
|
readonly initial: _angular_core.Signal<string>;
|
|
10238
10441
|
/**
|
|
10239
10442
|
* El puntaje con cuántas opiniones lo sostienen: «4.67 (12)».
|
|
@@ -10264,7 +10467,7 @@ declare class SuiStoreCard {
|
|
|
10264
10467
|
onCardClick(event: Event): void;
|
|
10265
10468
|
onRatingClick(event: Event): void;
|
|
10266
10469
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiStoreCard, never>;
|
|
10267
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiStoreCard, "sui-store-card", never, { "store": { "alias": "store"; "required": true; "isSignal": true; }; "isFavorite": { "alias": "isFavorite"; "required": false; "isSignal": true; }; "disableLink": { "alias": "disableLink"; "required": false; "isSignal": true; }; "deliveryText": { "alias": "deliveryText"; "required": false; "isSignal": true; }; "distanceText": { "alias": "distanceText"; "required": false; "isSignal": true; }; }, { "toggleFavorite": "toggleFavorite"; "ratingClicked": "ratingClicked"; }, never, never, true, never>;
|
|
10470
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiStoreCard, "sui-store-card", never, { "store": { "alias": "store"; "required": true; "isSignal": true; }; "isFavorite": { "alias": "isFavorite"; "required": false; "isSignal": true; }; "disableLink": { "alias": "disableLink"; "required": false; "isSignal": true; }; "linkBase": { "alias": "linkBase"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "deliveryText": { "alias": "deliveryText"; "required": false; "isSignal": true; }; "distanceText": { "alias": "distanceText"; "required": false; "isSignal": true; }; }, { "toggleFavorite": "toggleFavorite"; "ratingClicked": "ratingClicked"; }, never, never, true, never>;
|
|
10268
10471
|
}
|
|
10269
10472
|
|
|
10270
10473
|
/**
|
|
@@ -10334,6 +10537,12 @@ interface SuiProductCardImage {
|
|
|
10334
10537
|
/** Encuadre vertical de la imagen (CSS object-position Y, 0–100). Default 50. */
|
|
10335
10538
|
position?: number;
|
|
10336
10539
|
}
|
|
10540
|
+
/**
|
|
10541
|
+
* Tamaño de los botones del pie («+», lápiz y stepper), en la escala del
|
|
10542
|
+
* sui-button. `small` (36, el de siempre) es el default; `medium` (40) es
|
|
10543
|
+
* extensión SUI (03-10-2026) para tocar con el dedo en mobile.
|
|
10544
|
+
*/
|
|
10545
|
+
type SuiProductCardSize = 'small' | 'medium';
|
|
10337
10546
|
/** Config del fallback sin imagen. */
|
|
10338
10547
|
interface SuiProductCardFallback {
|
|
10339
10548
|
/** `'name'` = banda de color + nombre (default) · `'icon'` = ícono. */
|
|
@@ -10379,6 +10588,14 @@ declare class SuiProductCard {
|
|
|
10379
10588
|
* se ve SIEMPRE: también con `available=false` (el agotado es justo el
|
|
10380
10589
|
* que el dueño quiere tocar) y sin que `closed` lo apague. Nunca stepper. */
|
|
10381
10590
|
readonly action: _angular_core.InputSignal<"add" | "edit">;
|
|
10591
|
+
/** Precio de referencia (antes del descuento). Si es MAYOR que `price`, la
|
|
10592
|
+
* card muestra el precio en rojo con la chapa «-N%» al lado y este precio
|
|
10593
|
+
* tachado debajo. Igual o menor → se ignora. El porcentaje se calcula, no se
|
|
10594
|
+
* pasa: un tercer número podría quedar desincronizado de los otros dos. */
|
|
10595
|
+
readonly precioLista: _angular_core.InputSignal<number | null>;
|
|
10596
|
+
/** Tamaño de los botones del pie: `small` 36 (default) · `medium` 40 para
|
|
10597
|
+
* mobile — extensión SUI (03-10-2026). */
|
|
10598
|
+
readonly size: _angular_core.InputSignal<SuiProductCardSize>;
|
|
10382
10599
|
/** Tap en la card (abrir detalle del producto). */
|
|
10383
10600
|
readonly openDetail: _angular_core.OutputEmitterRef<void>;
|
|
10384
10601
|
/** Tap en el botón "+" (agregar al carrito). */
|
|
@@ -10390,6 +10607,15 @@ declare class SuiProductCard {
|
|
|
10390
10607
|
/** Tap en el lápiz (solo con `action="edit"`). */
|
|
10391
10608
|
readonly edit: _angular_core.OutputEmitterRef<void>;
|
|
10392
10609
|
readonly formattedPrice: _angular_core.Signal<string>;
|
|
10610
|
+
/** Descuento resuelto: solo si `precioLista` > `price`. */
|
|
10611
|
+
readonly descuento: _angular_core.Signal<{
|
|
10612
|
+
pct: number;
|
|
10613
|
+
antes: string;
|
|
10614
|
+
} | null>;
|
|
10615
|
+
/** Glyph del «+» / lápiz: 18 en small, 20 en medium. */
|
|
10616
|
+
readonly iconSize: _angular_core.Signal<20 | 18>;
|
|
10617
|
+
/** Glyph del stepper: 16 en small, 20 en medium. */
|
|
10618
|
+
readonly stepIconSize: _angular_core.Signal<16 | 20>;
|
|
10393
10619
|
readonly showStepper: _angular_core.Signal<boolean>;
|
|
10394
10620
|
/** Config resuelta de la imagen (string → { url }; `position` default 50).
|
|
10395
10621
|
* null = sin imagen → fallback. */
|
|
@@ -10417,7 +10643,7 @@ declare class SuiProductCard {
|
|
|
10417
10643
|
onDec(event: Event): void;
|
|
10418
10644
|
onEdit(event: Event): void;
|
|
10419
10645
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiProductCard, never>;
|
|
10420
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiProductCard, "sui-product-card", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "price": { "alias": "price"; "required": true; "isSignal": true; }; "image": { "alias": "image"; "required": false; "isSignal": true; }; "available": { "alias": "available"; "required": false; "isSignal": true; }; "quantity": { "alias": "quantity"; "required": false; "isSignal": true; }; "closed": { "alias": "closed"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; "fallback": { "alias": "fallback"; "required": false; "isSignal": true; }; "unavailableLabel": { "alias": "unavailableLabel"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; }, { "openDetail": "openDetail"; "add": "add"; "increment": "increment"; "decrement": "decrement"; "edit": "edit"; }, never, never, true, never>;
|
|
10646
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiProductCard, "sui-product-card", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "price": { "alias": "price"; "required": true; "isSignal": true; }; "image": { "alias": "image"; "required": false; "isSignal": true; }; "available": { "alias": "available"; "required": false; "isSignal": true; }; "quantity": { "alias": "quantity"; "required": false; "isSignal": true; }; "closed": { "alias": "closed"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; "fallback": { "alias": "fallback"; "required": false; "isSignal": true; }; "unavailableLabel": { "alias": "unavailableLabel"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; "precioLista": { "alias": "precioLista"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "openDetail": "openDetail"; "add": "add"; "increment": "increment"; "decrement": "decrement"; "edit": "edit"; }, never, never, true, never>;
|
|
10421
10647
|
}
|
|
10422
10648
|
|
|
10423
10649
|
/**
|
|
@@ -10551,7 +10777,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
10551
10777
|
* `<sui-icon>` proyectado vía `[sui-switch-card-leading]` y se renderiza
|
|
10552
10778
|
* con las MISMAS dimensiones (20×20 dentro del círculo de 40px).
|
|
10553
10779
|
*/
|
|
10554
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
10780
|
+
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>;
|
|
10555
10781
|
/**
|
|
10556
10782
|
* URL de imagen para type='avatar' — se renderiza con sui-avatar size=lg
|
|
10557
10783
|
* (40×40 redonda). Si la imagen falla, fallback automático a iniciales del
|
|
@@ -10706,6 +10932,12 @@ declare class SuiSwitchLabel implements ControlValueAccessor {
|
|
|
10706
10932
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitchLabel, "sui-switch-label", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; "linkClick": "linkClick"; }, never, never, true, never>;
|
|
10707
10933
|
}
|
|
10708
10934
|
|
|
10935
|
+
/**
|
|
10936
|
+
* Tamaño del chip. `medium` (36 px) es el de siempre y el default: quien no
|
|
10937
|
+
* pase `size` no ve ningún cambio. `small` (32) para web densa; `large` (40)
|
|
10938
|
+
* para mobile, donde se toca con el dedo. Extensión SUI (03-10-2026).
|
|
10939
|
+
*/
|
|
10940
|
+
type SuiTabChipsSize = 'small' | 'medium' | 'large';
|
|
10709
10941
|
interface SuiTabChipItem {
|
|
10710
10942
|
/** Valor único del chip (lo que devuelve `value`). */
|
|
10711
10943
|
value: string;
|
|
@@ -10734,8 +10966,12 @@ interface SuiTabChipItem {
|
|
|
10734
10966
|
* [chips]="['Hamburguesas', 'Pizzas', 'Bebidas']"
|
|
10735
10967
|
* [(value)]="selected"
|
|
10736
10968
|
* [sticky]="true"
|
|
10969
|
+
* [size]="bp.isMobile() ? 'large' : 'medium'"
|
|
10737
10970
|
* />
|
|
10738
10971
|
*
|
|
10972
|
+
* Tamaños (extensión SUI, 03-10-2026): small 32 · medium 36 (default) ·
|
|
10973
|
+
* large 40. Los tres con texto label-sm 14; cambia el alto y el aire lateral.
|
|
10974
|
+
*
|
|
10739
10975
|
* También acepta objetos:
|
|
10740
10976
|
* <sui-tab-chips
|
|
10741
10977
|
* [chips]="[{value:'h', label:'Hamburguesas'}, {value:'p', label:'Pizzas'}]"
|
|
@@ -10749,6 +10985,8 @@ declare class SuiTabChips implements AfterViewInit, OnDestroy {
|
|
|
10749
10985
|
readonly value: _angular_core.ModelSignal<string>;
|
|
10750
10986
|
/** Si true, el componente queda sticky al top del scroll container. */
|
|
10751
10987
|
readonly sticky: _angular_core.InputSignal<boolean>;
|
|
10988
|
+
/** Tamaño de los chips: small 32 · medium 36 (default) · large 40 (mobile). */
|
|
10989
|
+
readonly size: _angular_core.InputSignal<SuiTabChipsSize>;
|
|
10752
10990
|
/** Auto-scroll horizontal del chip activo al cambiar `value`. */
|
|
10753
10991
|
readonly autoScroll: _angular_core.InputSignal<boolean>;
|
|
10754
10992
|
sentinelRef?: ElementRef<HTMLDivElement>;
|
|
@@ -10764,7 +11002,7 @@ declare class SuiTabChips implements AfterViewInit, OnDestroy {
|
|
|
10764
11002
|
protected select(value: string): void;
|
|
10765
11003
|
private scrollToChip;
|
|
10766
11004
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTabChips, never>;
|
|
10767
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTabChips, "sui-tab-chips", never, { "chips": { "alias": "chips"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
11005
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTabChips, "sui-tab-chips", never, { "chips": { "alias": "chips"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
10768
11006
|
}
|
|
10769
11007
|
|
|
10770
11008
|
/**
|
|
@@ -11086,9 +11324,9 @@ interface SuiTabMenuHorizontalItem<T = string> {
|
|
|
11086
11324
|
* radius-full, overflow-clip, icon arrow-right-s-line 18px, SIN shadow
|
|
11087
11325
|
*
|
|
11088
11326
|
* PENDING VERIFY:
|
|
11089
|
-
* - `size`: el Tab Menu Horizontal de Figma no expone eje size.
|
|
11090
|
-
*
|
|
11091
|
-
*
|
|
11327
|
+
* - `size`: el Tab Menu Horizontal de Figma no expone eje size. Extensión SUI
|
|
11328
|
+
* (03-10-2026): small 40 · medium 48 (Figma) · large 52 · xlarge 56 de
|
|
11329
|
+
* franja tocable; large/xlarge con texto 16 (mobile).
|
|
11092
11330
|
* - `disabled` por ítem es extensión SUI (Figma no muestra estado Disabled).
|
|
11093
11331
|
*
|
|
11094
11332
|
* Historia: hasta la v0.2.x este componente vivía como `<sui-tabs variant="line">`;
|
|
@@ -11100,9 +11338,12 @@ interface SuiTabMenuHorizontalItem<T = string> {
|
|
|
11100
11338
|
declare class SuiTabMenuHorizontal<T = string> {
|
|
11101
11339
|
readonly tabs: _angular_core.InputSignal<SuiTabMenuHorizontalItem<T>[]>;
|
|
11102
11340
|
readonly active: _angular_core.ModelSignal<T | undefined>;
|
|
11103
|
-
/**
|
|
11104
|
-
|
|
11341
|
+
/** Alto de la franja tocable (cada pestaña ocupa todo el alto) — extensión
|
|
11342
|
+
SUI (03-10-2026): small 40 · medium 48 (Figma, default) · large 52 ·
|
|
11343
|
+
xlarge 56. large y xlarge llevan el texto a 16 (mobile). */
|
|
11105
11344
|
readonly size: _angular_core.InputSignal<SuiTabMenuHorizontalSize>;
|
|
11345
|
+
/** Glyph del ícono de la pestaña: 24 en xlarge, 20 en el resto. */
|
|
11346
|
+
readonly iconSize: _angular_core.Signal<20 | 24>;
|
|
11106
11347
|
readonly tabChange: _angular_core.OutputEmitterRef<T>;
|
|
11107
11348
|
isActive(tab: SuiTabMenuHorizontalItem<T>): boolean;
|
|
11108
11349
|
select(tab: SuiTabMenuHorizontalItem<T>): void;
|
|
@@ -11256,7 +11497,7 @@ declare class SuiSegmentedControl<T = string> implements AfterViewInit {
|
|
|
11256
11497
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSegmentedControl<any>, "sui-segmented-control", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "tabChange": "tabChange"; }, never, never, true, never>;
|
|
11257
11498
|
}
|
|
11258
11499
|
|
|
11259
|
-
type SuiTagInputSize = 'xsmall' | 'small' | 'medium';
|
|
11500
|
+
type SuiTagInputSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
11260
11501
|
/**
|
|
11261
11502
|
* SUI Tag Input — SUI Design System 2.0
|
|
11262
11503
|
*
|
|
@@ -11279,6 +11520,11 @@ type SuiTagInputSize = 'xsmall' | 'small' | 'medium';
|
|
|
11279
11520
|
* - small (Small 36): py=8px, pl=10px, pr=8px, gap=8px, radius=8px
|
|
11280
11521
|
* - medium (Medium 40): py=10px, pl=12px, pr=10px, gap=8px, radius=10px (default)
|
|
11281
11522
|
*
|
|
11523
|
+
* - large (48, extensión SUI 03-10-2026): py=12−1, pl=14, pr=12, gap=10, radius=12
|
|
11524
|
+
* - xlarge (52, extensión SUI 03-10-2026): py=14−1, pl=16, pr=14, gap=10, radius=12
|
|
11525
|
+
* Mismos valores que `sui-input` large/xlarge, para que un tag-input y un input
|
|
11526
|
+
* del mismo formulario midan igual en mobile.
|
|
11527
|
+
*
|
|
11282
11528
|
* El alto se deriva del line-height(20) del texto + 2×py. No height explícito.
|
|
11283
11529
|
*
|
|
11284
11530
|
* - Texto input/placeholder: Paragraph/Small (Inter 14 / 20 / -0.084px ≈ -0.006em),
|
|
@@ -11356,6 +11602,12 @@ declare class SuiTagInput implements ControlValueAccessor {
|
|
|
11356
11602
|
readonly rightIcon: _angular_core.InputSignal<string | boolean>;
|
|
11357
11603
|
/** Nombre resuelto del icono trailing (null = no se renderiza). */
|
|
11358
11604
|
protected readonly rightIconCfg: _angular_core.Signal<string | null>;
|
|
11605
|
+
/**
|
|
11606
|
+
* El tamaño que se le pasa al `sui-form-label`. Igual que en `sui-input`: el
|
|
11607
|
+
* label no crece con el campo; en large y xlarge crece el área de toque, no la
|
|
11608
|
+
* jerarquía del formulario (y `SuiFormLabelSize` llega hasta medium).
|
|
11609
|
+
*/
|
|
11610
|
+
protected readonly labelSize: _angular_core.Signal<SuiFormLabelSize>;
|
|
11359
11611
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
11360
11612
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
11361
11613
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
@@ -11408,6 +11660,11 @@ declare class SuiTagInput implements ControlValueAccessor {
|
|
|
11408
11660
|
}
|
|
11409
11661
|
|
|
11410
11662
|
type SuiTagStyle = 'stroke' | 'gray';
|
|
11663
|
+
/**
|
|
11664
|
+
* Tamaño. `medium` (24) es el de Figma y el default. `large` 32 y `xlarge` 40
|
|
11665
|
+
* son extensión SUI (03-10-2026) para mobile, con la X de quitar más grande.
|
|
11666
|
+
*/
|
|
11667
|
+
type SuiTagSize = 'medium' | 'large' | 'xlarge';
|
|
11411
11668
|
/**
|
|
11412
11669
|
* SUI Tag — SUI Design System 2.0
|
|
11413
11670
|
*
|
|
@@ -11428,6 +11685,7 @@ type SuiTagStyle = 'stroke' | 'gray';
|
|
|
11428
11685
|
*
|
|
11429
11686
|
* EXACT (pulled, verified pixel/token):
|
|
11430
11687
|
* - Container: border-radius 6px (--sui-radius-6), height 24px (py=4px + 16px line).
|
|
11688
|
+
* (24 es `medium`, el default; ver TAMAÑOS abajo para large/xlarge.)
|
|
11431
11689
|
* NOTE: distinto del badge (radius-full 999px) — NO confundir.
|
|
11432
11690
|
* - Typography: Label/X Small (Inter Medium, 12px / line 16 / tracking 0, NO uppercase),
|
|
11433
11691
|
* font-feature 'ss11' 1, 'calt' 0, 'liga' 0. Label color text-sub-600 (#5c5c5c).
|
|
@@ -11490,12 +11748,25 @@ type SuiTagStyle = 'stroke' | 'gray';
|
|
|
11490
11748
|
* contenido proyectado (avatar/flag con color propio) NO se puede forzar a gris
|
|
11491
11749
|
* desde el host — el consumer debe atenuar su propio leading si lo requiere.
|
|
11492
11750
|
*
|
|
11751
|
+
* TAMAÑOS — extensión SUI (03-10-2026, pedido del dueño):
|
|
11752
|
+
* Figma trae solo 24 px, con una X de 16 que en mobile queda muy por debajo de
|
|
11753
|
+
* los 44 del dedo. Se suman dos tamaños en la escala del sui-button:
|
|
11754
|
+
* medium 24 · Label/X Small 12/16 · leading 16 · X 16 (default, Figma)
|
|
11755
|
+
* large 32 · Label/Small 14/20 · leading 20 · X 20
|
|
11756
|
+
* xlarge 40 · Label/Medium 16/24 · leading 20 · X 24
|
|
11757
|
+
* En large/xlarge la X además se agranda por dentro (::before invisible) para
|
|
11758
|
+
* que el área táctil llegue al alto del tag sin cambiar cómo se ve.
|
|
11759
|
+
*
|
|
11493
11760
|
* CUSTOM (no en Figma — add-on local): ninguno por ahora. extraFeatures del
|
|
11494
11761
|
* reporte de auditoría estaba vacío.
|
|
11495
11762
|
*/
|
|
11496
11763
|
declare class SuiTag {
|
|
11497
11764
|
/** Visual style. `stroke` = white bg + soft border; `gray` = weak-50 bg, no border. Default stroke. */
|
|
11498
11765
|
readonly tagStyle: _angular_core.InputSignal<SuiTagStyle>;
|
|
11766
|
+
/** Tamaño: medium 24 (default, Figma) · large 32 · xlarge 40 (mobile). */
|
|
11767
|
+
readonly size: _angular_core.InputSignal<SuiTagSize>;
|
|
11768
|
+
/** Px del glyph de la X por tamaño (16 / 20 / 24). */
|
|
11769
|
+
readonly dismissIconSize: _angular_core.Signal<number>;
|
|
11499
11770
|
/**
|
|
11500
11771
|
* True cuando hay un leading element proyectado (icon/avatar/flag/brand/company)
|
|
11501
11772
|
* en `[data-slot=start]`. Ajusta el padding (pl=4) y agrega gap=4 leading↔texto.
|
|
@@ -11521,9 +11792,15 @@ declare class SuiTag {
|
|
|
11521
11792
|
readonly showsSublabel: _angular_core.Signal<boolean>;
|
|
11522
11793
|
protected onDismiss(event: MouseEvent): void;
|
|
11523
11794
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTag, never>;
|
|
11524
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTag, "sui-tag", never, { "tagStyle": { "alias": "tagStyle"; "required": false; "isSignal": true; }; "leading": { "alias": "leading"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, ["[data-slot=start]", "*"], true, never>;
|
|
11795
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTag, "sui-tag", never, { "tagStyle": { "alias": "tagStyle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "leading": { "alias": "leading"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, ["[data-slot=start]", "*"], true, never>;
|
|
11525
11796
|
}
|
|
11526
11797
|
|
|
11798
|
+
/**
|
|
11799
|
+
* Tamaño del campo — los mismos nombres que `sui-input` para que un formulario
|
|
11800
|
+
* pase el mismo `size` a los dos. Cambia el padding y el radio (el alto lo
|
|
11801
|
+
* ponen las `rows`). Extensión SUI (03-10-2026): la guía solo dibuja el medium.
|
|
11802
|
+
*/
|
|
11803
|
+
type SuiTextareaSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
11527
11804
|
/**
|
|
11528
11805
|
* SUI Textarea — SUI Design System 2.0
|
|
11529
11806
|
*
|
|
@@ -11605,6 +11882,7 @@ declare class SuiTag {
|
|
|
11605
11882
|
* convention, bump it then — flagged here so it isn't silently changed.
|
|
11606
11883
|
*
|
|
11607
11884
|
* @input rows: number — Filas iniciales del textarea (default 4)
|
|
11885
|
+
* @input size: SuiTextareaSize — padding/radio, mismos nombres que sui-input (default medium)
|
|
11608
11886
|
* @input label: string | null — Texto del label
|
|
11609
11887
|
* @input sublabel: string | null — Texto secundario del label (ej. "Optional")
|
|
11610
11888
|
* @input required: boolean — Muestra asterisco rojo en el label
|
|
@@ -11621,6 +11899,12 @@ declare class SuiTag {
|
|
|
11621
11899
|
*/
|
|
11622
11900
|
declare class SuiTextarea implements ControlValueAccessor {
|
|
11623
11901
|
readonly rows: _angular_core.InputSignal<number>;
|
|
11902
|
+
/**
|
|
11903
|
+
* Padding y radio del campo, con los mismos nombres que `sui-input`:
|
|
11904
|
+
* medium (default, el de la guía) 10/12 · large 12/14 · xlarge 14/16 ·
|
|
11905
|
+
* small 8/10 · xsmall 6/8. Extensión SUI (03-10-2026).
|
|
11906
|
+
*/
|
|
11907
|
+
readonly size: _angular_core.InputSignal<SuiTextareaSize>;
|
|
11624
11908
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
11625
11909
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
11626
11910
|
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
@@ -11660,7 +11944,7 @@ declare class SuiTextarea implements ControlValueAccessor {
|
|
|
11660
11944
|
registerOnTouched(fn: () => void): void;
|
|
11661
11945
|
setDisabledState(isDisabled: boolean): void;
|
|
11662
11946
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiTextarea, never>;
|
|
11663
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTextarea, "sui-textarea", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
11947
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiTextarea, "sui-textarea", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
11664
11948
|
}
|
|
11665
11949
|
|
|
11666
11950
|
/**
|
|
@@ -11947,6 +12231,8 @@ interface ColumnItem {
|
|
|
11947
12231
|
* @input showFooter — muestra Cancel/Apply (default true)
|
|
11948
12232
|
* @model value — SuiTimeValue | null (two-way + CVA)
|
|
11949
12233
|
*/
|
|
12234
|
+
/** `large` (48) es extensión SUI (03-10-2026) para mobile. */
|
|
12235
|
+
type SuiTimePickerSize = 'small' | 'medium' | 'large';
|
|
11950
12236
|
declare class SuiTimePicker implements ControlValueAccessor {
|
|
11951
12237
|
readonly label: _angular_core.InputSignal<string | null>;
|
|
11952
12238
|
readonly sublabel: _angular_core.InputSignal<string | null>;
|
|
@@ -11957,7 +12243,16 @@ declare class SuiTimePicker implements ControlValueAccessor {
|
|
|
11957
12243
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
11958
12244
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
11959
12245
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
11960
|
-
|
|
12246
|
+
/**
|
|
12247
|
+
* Alto del campo: small 36 · medium 40 (default) · large 48 (extensión SUI,
|
|
12248
|
+
* 03-10-2026, para mobile: mismo alto que sui-input/sui-select large). En
|
|
12249
|
+
* large las filas del panel miden 44 y Cancelar/Aplicar van en large.
|
|
12250
|
+
*/
|
|
12251
|
+
readonly size: _angular_core.InputSignal<SuiTimePickerSize>;
|
|
12252
|
+
/** sui-form-label no tiene large: el label queda en medium. */
|
|
12253
|
+
protected readonly labelSize: _angular_core.Signal<"small" | "medium">;
|
|
12254
|
+
/** Botones del footer: large (48) con el campo large; small (36) si no. */
|
|
12255
|
+
protected readonly footerButtonSize: _angular_core.Signal<"small" | "large">;
|
|
11961
12256
|
/** Formato de display: '12h' (AM/PM) o '24h'. */
|
|
11962
12257
|
readonly format: _angular_core.InputSignal<SuiTimeFormat>;
|
|
11963
12258
|
/** Incremento de minutos de la lista (1, 5, 15, ...). Default 5. */
|
|
@@ -12665,5 +12960,5 @@ declare class SuiTooltipPanel {
|
|
|
12665
12960
|
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>;
|
|
12666
12961
|
}
|
|
12667
12962
|
|
|
12668
|
-
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_KEY_ICON_COLORS, SUI_KEY_ICON_SIZES, SUI_NAVBAR_VISIBILITY, SUI_PASSWORD_STRENGTH_DEFAULT_CONDITIONS, SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS, SUI_PAYMENT_ICON_TYPES, SUI_PRODUCT_FALLBACK_COLORS, SUI_TAB_BAR, SuiAccordion, SuiAccordionContent, SuiActivityFeed, SuiActivityFilter, SuiAlert, SuiAppStoreBadge, SuiAvatar, SuiAvatarGroup, SuiBadge, SuiBanner, SuiBrandLogo, SuiBreadcrumbItem, SuiBreadcrumbs, SuiButton, SuiButtonGroup, SuiButtonGroupItem, SuiCard, SuiChartLegend, SuiChartLegendDot, SuiCheckbox, SuiCheckboxCard, SuiCheckboxLabel, SuiCircularProgressBar, SuiColorDot, SuiColorPicker, SuiCommandMenuFooter, SuiCommandMenuItem, SuiCommandMenuSearch, SuiCompactAvatarGroup, SuiCompactButton, SuiCompactSelect, SuiCompactSelectForInput, SuiContentCard, SuiContentDivider, SuiContentLabel, SuiCounterInput, SuiDateSelector, SuiDatepicker, SuiDayCell, SuiDayLabel, SuiDivider, SuiDrawerFooter, SuiDrawerHeader, SuiDropdownCaption, SuiDropdownItem, SuiDropdownMenu, SuiDropdownPanel, SuiDropdownSearch, SuiEmoji, SuiEmptyState, SuiFancyButton, SuiFileIcon, SuiFileUpload, SuiFileUploadCard, SuiFilterBar, SuiFilterItem, SuiFilterPanelFooter, SuiFilterPanelHeader, SuiFlag, SuiFormHint, SuiFormLabel, SuiHref, SuiIcon, SuiImageUpload, SuiImageUploadProfile, SuiImgRetry, SuiInlineInput, SuiInlineSelect, SuiInput, SuiIntegrationSwitch, SuiKbd, SuiKeyIcon, SuiLinkButton, SuiLogo, SuiModal, SuiModalFooter, SuiModalHeader, SuiModalSheet, SuiNotification, SuiNotificationFooter, SuiNotificationTabMenu, SuiOtpInput, SuiPageHeader, SuiPagination, SuiPasswordStrength, SuiPaymentIcon, SuiPeriodRange, SuiPopover, SuiProductCard, SuiProgressBar, SuiProgressBarLabel, SuiRadio, SuiRadioCard, SuiRadioGroup, SuiRadioLabel, SuiRating, SuiRichEditor, SuiRichEditorItem, SuiSegmentedControl, SuiSelect, SuiSidebar, SuiSlider, SuiSocialButton, SuiStatusBadge, SuiStepper, SuiStoreCard, SuiSwitch, SuiSwitchCard, SuiSwitchLabel, SuiTabChips, SuiTabMenuHorizontal, SuiTabMenuVertical, SuiTable, SuiTableCellDirective, SuiTag, SuiTagInput, SuiTextarea, SuiTimePicker, SuiTimePickerDuration, SuiTimePickerItem, SuiTimePickerStatus, SuiToastOutlet, SuiToastService, SuiTooltip, SuiTooltipPanel, SuiTopbar, SuiTopbarButton, SuiTopbarItem, SuiTopbarUser, buildCalendarGrid, buildHourList, buildMinuteList, formatDateInput, formatDateShort, formatMonthYear, formatTime, isSameTime, normalizeHex, pad2, parseTime, to12h, to24h };
|
|
12669
|
-
export type { CalendarCell, CalendarRow, DatepickerPreset, DatepickerPresetId, SuiAccordionFlipIcon, SuiActivityAvatarRef, SuiActivityFeedItem, SuiActivityFile, SuiActivityFilterState, SuiActivityTask, SuiActivityTaskState, SuiAlertAction, 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, SuiCheckboxSize, SuiCircularProgressBarColor, SuiCircularProgressBarSize, SuiColorDotColor, SuiCommandMenuItemSize, SuiCommandMenuItemType, SuiCompactAvatarGroupAppearance, SuiCompactAvatarGroupSize, SuiCompactButtonSize, SuiCompactButtonStyle, SuiCompactSelectForInputItem, SuiCompactSelectForInputSize, SuiCompactSelectItem, SuiCompactSelectSize, SuiCompactSelectType, SuiContentCardType, SuiContentDividerItem, SuiContentDividerType, SuiContentLabelBadgePlacement, SuiContentLabelSize, SuiContentLabelType, SuiCounterInputSize, SuiDateRange, SuiDatepickerCalendars, SuiDatepickerMode, SuiDayCellType, SuiDividerOrientation, SuiDrawerFooterType, SuiDrawerHeaderSize, SuiDrawerHeaderType, SuiDropdownItemMode, SuiDropdownItemSize, SuiDropdownMenuPopupRole, SuiDropdownMenuPosition, SuiEmojiName, SuiEmojiSize, SuiEmptyStateAction, 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, SuiIntegrationSwitchType, SuiKbdVariant, SuiKeyIconColor, SuiKeyIconSize, SuiKeyIconStyle, SuiLinkButtonSize, SuiLinkButtonVariant, SuiLinkConfig, SuiLogoOrientation, SuiLogoSize, SuiModalHeaderVariant, SuiModalIconVariant, SuiModalSize, SuiModalStatusAlignment, SuiNavbarVisibility, SuiNotificationStyle, SuiNotificationTab, SuiNotificationVariant, SuiOtpInputType, SuiPaginationInfoFormat, SuiPaginationSize, SuiPaginationType, SuiPasswordStrengthCondition, SuiPasswordStrengthLevel, SuiPaymentIconSize, SuiPaymentIconType, SuiPopoverFooter, SuiPopoverPosition, SuiProductCardFallback, SuiProductCardImage, SuiProgressBarColor, SuiProgressBarLabelType, SuiProgressBarSize, SuiRadioCardType, SuiRadioSize, SuiRadioValue, SuiRatingAlignment, SuiRatingAppearance, SuiRatingReviewLink, SuiRatingSize, SuiRatingType, SuiRichEditorAction, SuiRichEditorCommand, SuiRichEditorItemState, SuiRichEditorItemType, SuiRichEditorLayout, SuiSegmentedControlItem, SuiSegmentedControlSize, SuiSelectOption, SuiSelectSize, SuiSelectType, SuiSidebarBrandConfig, SuiSidebarIndicatorColor, SuiSidebarItem, SuiSidebarMobileMode, SuiSidebarProfile, SuiSidebarSearchConfig, SuiSliderType, SuiSocialButtonBrand, SuiSocialButtonStyle, SuiStatusBadgeAppearance, SuiStatusBadgeStatus, SuiStepperItem, SuiStepperSize, SuiStepperState, SuiStepperVariant, SuiStoreCardData, SuiSwitchCardType, SuiSwitchSize, SuiTabBar, SuiTabChipItem, SuiTabMenuHorizontalItem, SuiTabMenuHorizontalSize, SuiTabMenuVerticalItem, SuiTabMenuVerticalStyle, SuiTableCellMisc, SuiTableCellPriority, SuiTableColumn, SuiTableSize, SuiTagInputSize, SuiTagStyle, SuiTimeDurationPreset, SuiTimeFormat, SuiTimePeriod, SuiTimePickerItemDirection, SuiTimePickerStatusType, SuiTimeValue, SuiToastAction, SuiToastData, SuiToastItem, SuiToastPosition, SuiToastStyle, SuiToastVariant, SuiTooltipLargeData, SuiTooltipPosition, SuiTooltipSize, SuiTooltipTheme, SuiTooltipThemeInput, SuiTopbarAccent, SuiTopbarAction, SuiTopbarEntry, SuiTopbarSearchConfig, SuiTopbarUserConfig };
|
|
12963
|
+
export { DAY_LABELS_ES, DEFAULT_DURATION_PRESETS, DEFAULT_PRESETS, EMPTY_STATE_FOX_EMOJI, SUI_BRAND_LOGO_COMPANIES, SUI_CHART_LEGEND_COLORS, SUI_CHART_LEGEND_HEX, SUI_CHART_SERIES_COLORS, SUI_COLOR_DOT_COLORS, SUI_COLOR_DOT_HEX, SUI_CUSTOM_ICONS, SUI_EMOJI_MAP, SUI_EMOJI_STATIC, SUI_FLAG_NAMES, SUI_HEX_TO_COLOR, SUI_IMAGE_UPLOAD_ACCEPT, SUI_KEY_ICON_COLORS, SUI_KEY_ICON_SIZES, SUI_NAVBAR_VISIBILITY, SUI_PASSWORD_STRENGTH_DEFAULT_CONDITIONS, SUI_PASSWORD_STRENGTH_DEFAULT_LEVEL_LABELS, SUI_PAYMENT_ICON_TYPES, SUI_PRODUCT_FALLBACK_COLORS, SUI_TAB_BAR, SuiAccordion, SuiAccordionContent, SuiActivityFeed, SuiActivityFilter, SuiAlert, SuiAppStoreBadge, SuiAvatar, SuiAvatarGroup, SuiBadge, SuiBanner, SuiBrandLogo, SuiBreadcrumbItem, SuiBreadcrumbs, SuiButton, SuiButtonGroup, SuiButtonGroupItem, SuiCard, SuiChartLegend, SuiChartLegendDot, SuiCheckbox, SuiCheckboxCard, SuiCheckboxLabel, SuiCircularProgressBar, SuiColorDot, SuiColorPicker, SuiCommandMenuFooter, SuiCommandMenuItem, SuiCommandMenuSearch, SuiCompactAvatarGroup, SuiCompactButton, SuiCompactSelect, SuiCompactSelectForInput, SuiContentCard, SuiContentDivider, SuiContentLabel, SuiCounterInput, SuiDateSelector, SuiDatepicker, SuiDayCell, SuiDayLabel, SuiDivider, SuiDrawerFooter, SuiDrawerHeader, SuiDropdownCaption, SuiDropdownItem, SuiDropdownMenu, SuiDropdownPanel, SuiDropdownSearch, SuiEmoji, SuiEmptyState, SuiFancyButton, SuiFileIcon, SuiFileUpload, SuiFileUploadCard, SuiFilterBar, SuiFilterItem, SuiFilterPanelFooter, SuiFilterPanelHeader, SuiFlag, SuiFormHint, SuiFormLabel, SuiHref, SuiIcon, SuiImageUpload, SuiImageUploadProfile, SuiImgRetry, SuiInlineInput, SuiInlineSelect, SuiInput, SuiIntegrationSwitch, SuiKbd, SuiKeyIcon, SuiLinkButton, SuiLogo, SuiModal, SuiModalFooter, SuiModalHeader, SuiModalSheet, SuiNotification, SuiNotificationFooter, SuiNotificationTabMenu, SuiOtpInput, SuiPageHeader, SuiPagination, SuiPasswordStrength, SuiPaymentIcon, SuiPeriodRange, SuiPopover, SuiProductCard, SuiProgressBar, SuiProgressBarLabel, SuiRadio, SuiRadioCard, SuiRadioGroup, SuiRadioLabel, SuiRating, SuiRichEditor, SuiRichEditorItem, SuiSegmentedControl, SuiSelect, SuiSidebar, SuiSlider, SuiSocialButton, SuiStatusBadge, SuiStepper, SuiStoreCard, SuiSwitch, SuiSwitchCard, SuiSwitchLabel, SuiTabChips, SuiTabMenuHorizontal, SuiTabMenuVertical, SuiTable, SuiTableCellDirective, SuiTag, SuiTagInput, SuiTextarea, SuiTimePicker, SuiTimePickerDuration, SuiTimePickerItem, SuiTimePickerStatus, SuiToastOutlet, SuiToastService, SuiTooltip, SuiTooltipPanel, SuiTopbar, SuiTopbarButton, SuiTopbarItem, SuiTopbarUser, buildCalendarGrid, buildHourList, buildMinuteList, esImagenAceptada, formatDateInput, formatDateShort, formatMonthYear, formatTime, isSameTime, normalizeHex, pad2, parseTime, to12h, to24h };
|
|
12964
|
+
export type { CalendarCell, CalendarRow, DatepickerPreset, DatepickerPresetId, SuiAccordionFlipIcon, SuiActivityAvatarRef, SuiActivityFeedItem, SuiActivityFile, SuiActivityFilterState, SuiActivityTask, SuiActivityTaskState, SuiAlertAction, 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, SuiCommandMenuItemSize, SuiCommandMenuItemType, SuiCompactAvatarGroupAppearance, SuiCompactAvatarGroupSize, SuiCompactButtonSize, SuiCompactButtonStyle, SuiCompactSelectForInputItem, SuiCompactSelectForInputSize, SuiCompactSelectItem, SuiCompactSelectSize, SuiCompactSelectType, SuiContentCardSize, SuiContentCardType, SuiContentDividerItem, SuiContentDividerType, SuiContentLabelBadgePlacement, SuiContentLabelSize, SuiContentLabelType, SuiCounterInputSize, SuiDateRange, SuiDatepickerCalendars, SuiDatepickerMode, SuiDatepickerSize, SuiDayCellType, SuiDividerOrientation, 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, 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, SuiPopoverFooter, SuiPopoverPosition, SuiPopoverSize, SuiProductCardFallback, SuiProductCardImage, SuiProductCardSize, SuiProgressBarColor, SuiProgressBarLabelType, SuiProgressBarSize, SuiRadioCardType, 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, SuiSocialButtonStyle, SuiStatusBadgeAppearance, SuiStatusBadgeSize, SuiStatusBadgeStatus, SuiStepperItem, SuiStepperSize, SuiStepperState, SuiStepperVariant, SuiStoreCardData, SuiStoreCardSize, SuiSwitchCardType, 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 };
|