@ajuarezso/sui-design-system 0.18.4 → 0.18.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajuarezso/sui-design-system",
3
- "version": "0.18.4",
3
+ "version": "0.18.9",
4
4
  "description": "SUI Design System — librería de componentes Angular (SUI 2.0).",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {
@@ -3266,7 +3266,7 @@ declare class SuiCompactSelectForInput<T = string> implements ControlValueAccess
3266
3266
  readonly arrowIcon: _angular_core.Signal<"arrow-up-s-line" | "arrow-down-s-line">;
3267
3267
  readonly displayValue: _angular_core.Signal<string>;
3268
3268
  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<20 | 16>;
3269
+ readonly flagSizePx: _angular_core.Signal<16 | 20>;
3270
3270
  onHostClick(event: Event): void;
3271
3271
  protected onMenuOpenedChange(open: boolean): void;
3272
3272
  protected selectItem(item: SuiCompactSelectForInputItem<T>): void;
@@ -6224,7 +6224,7 @@ declare class SuiImageUpload {
6224
6224
  protected readonly sizePx: _angular_core.Signal<number>;
6225
6225
  /** Camera icon px en el empty state. xl escala a 20, resto 16
6226
6226
  * (matchea el escalado del contenedor 32→40 en SCSS). */
6227
- protected readonly iconSize: _angular_core.Signal<20 | 16>;
6227
+ protected readonly iconSize: _angular_core.Signal<16 | 20>;
6228
6228
  protected readonly hasSrc: _angular_core.Signal<boolean>;
6229
6229
  protected readonly state: _angular_core.Signal<"filled" | "disabled" | "dragover" | "empty">;
6230
6230
  protected readonly resolvedTitle: _angular_core.Signal<string>;
@@ -7025,6 +7025,89 @@ declare class SuiKeyIcon {
7025
7025
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiKeyIcon, "sui-key-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7026
7026
  }
7027
7027
 
7028
+ /** Orientación del lockup. Las dos llevan la palabra en DOS líneas. */
7029
+ type SuiLogoOrientation = 'horizontal' | 'stacked';
7030
+ /** Escala canon del DS — la misma de sui-brand-logo / sui-flag / sui-emoji. */
7031
+ type SuiLogoSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
7032
+ /**
7033
+ * SUI Logo — el logo de Master Pedidos, dibujado inline y coloreable.
7034
+ *
7035
+ * NO confundir con `sui-brand-logo`, que sirve logos de TERCEROS (Apple, Google,
7036
+ * Stripe…) como assets `<img>` intocables por compliance de marca. Este es el
7037
+ * logo PROPIO del producto: se inlinea justamente para poder teñirlo.
7038
+ *
7039
+ * ── El dibujo ────────────────────────────────────────────────────────────────
7040
+ * Son tres piezas: la M (isotipo) y las palabras «Master» y «Pedidos». Las dos
7041
+ * orientaciones son esas mismas tres piezas re-acomodadas, así que el path data
7042
+ * vive UNA sola vez en el template y lo único que cambia es el `viewBox` y el
7043
+ * `transform` de cada grupo:
7044
+ *
7045
+ * horizontal → M a la izquierda + bloque de palabra a la derecha, escala 1.
7046
+ * viewBox `0.218 3.987 773.623 266.421` (ratio 2.904:1)
7047
+ * stacked → M arriba + bloque de palabra debajo, centrado, escala 0.55765.
7048
+ * viewBox `-0.266 0.109 257.897 420.55` (ratio 0.613:1)
7049
+ * markOnly → solo la M.
7050
+ * viewBox `0.218 3.987 257.897 266.421` (ratio 0.968:1)
7051
+ *
7052
+ * Los viewBox son el bbox EXACTO medido con `getBBox()` sobre el dibujo, no un
7053
+ * lienzo con aire: el componente no aporta padding propio.
7054
+ *
7055
+ * En las dos orientaciones la palabra va en dos líneas («Master» sobre
7056
+ * «Pedidos»). El lockup de una sola línea es otro dibujo y no está acá.
7057
+ *
7058
+ * ── Color ────────────────────────────────────────────────────────────────────
7059
+ * `markColor` y `textColor` aceptan cualquier color CSS, y lo natural es pasar
7060
+ * un token: `markColor="var(--sui-primary-base)"`. Se aplican por custom
7061
+ * property (`--sui-logo-mark-color` / `--sui-logo-text-color`) y no por atributo
7062
+ * `fill`, porque un `var()` dentro de un atributo de presentación SVG no
7063
+ * resuelve.
7064
+ *
7065
+ * ── Tamaño ───────────────────────────────────────────────────────────────────
7066
+ * `size` fija el ALTO (xs=16 … 2xl=48) y el ancho sale solo. `height` es el
7067
+ * escape hatch para los altos que no están en la escala: un número son px
7068
+ * (28, 80…) y un string es cualquier valor CSS (`'60%'` para seguir al
7069
+ * contenedor). Si viene, gana sobre `size`.
7070
+ *
7071
+ * ── Accesibilidad ────────────────────────────────────────────────────────────
7072
+ * Por defecto el SVG va con `role="img"` y `aria-label="Master Pedidos"`: el
7073
+ * logo ES el nombre del producto. Cuando se pone al lado de un texto que ya dice
7074
+ * «Master Pedidos» (el `<h1>` de las pantallas «Acerca de»), pasar
7075
+ * `[decorative]="true"` para que el lector de pantalla no lo diga dos veces.
7076
+ *
7077
+ * Usage:
7078
+ * <sui-logo />
7079
+ * <sui-logo orientation="stacked" size="xl" />
7080
+ * <sui-logo [markOnly]="true" [decorative]="true" [height]="80" />
7081
+ * <sui-logo markColor="var(--sui-static-white)" textColor="var(--sui-static-white)" />
7082
+ */
7083
+ declare class SuiLogo {
7084
+ readonly orientation: _angular_core.InputSignal<SuiLogoOrientation>;
7085
+ /** Solo la M, sin la palabra. Cuando es `true`, `orientation` no aplica. */
7086
+ readonly markOnly: _angular_core.InputSignal<boolean>;
7087
+ readonly size: _angular_core.InputSignal<SuiLogoSize>;
7088
+ /**
7089
+ * Alto fuera de la escala. Número = px; string = cualquier valor CSS
7090
+ * (`'60%'` para seguir al contenedor, como hace `sui-icon` con `size`).
7091
+ * Si viene, gana sobre `size`.
7092
+ */
7093
+ readonly height: _angular_core.InputSignal<string | number | null>;
7094
+ /** Color de la M. Token o cualquier color CSS. */
7095
+ readonly markColor: _angular_core.InputSignal<string>;
7096
+ /** Color de la palabra. Token o cualquier color CSS. */
7097
+ readonly textColor: _angular_core.InputSignal<string>;
7098
+ /** `true` cuando al lado ya está escrito «Master Pedidos». */
7099
+ readonly decorative: _angular_core.InputSignal<boolean>;
7100
+ readonly ariaLabel: _angular_core.InputSignal<string>;
7101
+ readonly heightPx: _angular_core.Signal<string>;
7102
+ readonly viewBox: _angular_core.Signal<string>;
7103
+ /** En apilado la M se corre para que el bloque entero quede centrado. */
7104
+ readonly markTransform: _angular_core.Signal<string | null>;
7105
+ readonly masterTransform: _angular_core.Signal<string>;
7106
+ readonly pedidosTransform: _angular_core.Signal<string>;
7107
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiLogo, never>;
7108
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiLogo, "sui-logo", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "markOnly": { "alias": "markOnly"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "markColor": { "alias": "markColor"; "required": false; "isSignal": true; }; "textColor": { "alias": "textColor"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7109
+ }
7110
+
7028
7111
  /**
7029
7112
  * SUI Modal Sheet — bottom sheet con breakpoints (estilo Apple Maps / Ionic ion-modal sheet).
7030
7113
  *
@@ -7042,6 +7125,32 @@ declare class SuiKeyIcon {
7042
7125
  * contenido desde scrollTop 0 (solo por handle). Aquí SÍ soportamos ese
7043
7126
  * handoff (patrón Apple Maps nativo) vía touchmove no-pasivo + takeover.
7044
7127
  *
7128
+ * ── Modelo de movimiento (2026-09) ──────────────────────────────────────────
7129
+ *
7130
+ * Dos capas: `.sui-sheet` es un marco FIJO de alto constante
7131
+ * H = min(contenido, maxBreakpoint·100dvh, viewport − safe-top − 16px), anclado
7132
+ * abajo, que recorta (radius + squircle) y no captura toques; adentro,
7133
+ * `.sui-sheet__panel` (fondo, asa y body) es lo único que se mueve, con la
7134
+ * propiedad `translate` (compositor):
7135
+ *
7136
+ * y(p) = max(0, H − p·vh) visible(p) = min(H, p·vh)
7137
+ *
7138
+ * donde vh es el alto del viewport en px. Así al 25% se ven 25dvh del sheet, la
7139
+ * parte que baja queda recortada por el marco (las esquinas inferiores
7140
+ * redondeadas siguen a la vista, como antes) y el área libre del viewport sigue
7141
+ * siendo del contenido de fondo. Misma semántica que la versión anterior, que
7142
+ * animaba `max-height`, pero sin layout por frame: durante el drag no se toca
7143
+ * ningún signal ni binding — el `translate` del panel y la opacidad del
7144
+ * backdrop se escriben directo en el DOM dentro de un requestAnimationFrame
7145
+ * coalescido (una escritura por frame, gana el último pointermove). Los signals
7146
+ * `progress`, `currentBreakpoint` y `dragging` cambian al empezar/terminar el
7147
+ * drag y al snap, no por movimiento.
7148
+ *
7149
+ * Se usa `translate` (propiedad individual) y NO `transform`, y sobre el panel
7150
+ * y no sobre `.sui-sheet`: un consumer puede seguir escribiendo su propio
7151
+ * `transform`/`left`/`width` sobre `.sui-sheet` (ej. centrarlo en desktop) sin
7152
+ * pisar el movimiento.
7153
+ *
7045
7154
  * Uso típico para tracking de pedido con mapa abajo:
7046
7155
  * ```html
7047
7156
  * <sui-modal-sheet
@@ -7057,6 +7166,7 @@ declare class SuiKeyIcon {
7057
7166
  */
7058
7167
  declare class SuiModalSheet implements OnDestroy {
7059
7168
  private readonly doc;
7169
+ private readonly renderer;
7060
7170
  private readonly navbarVisibility;
7061
7171
  /** ID único por instancia para el counter centralizado del navbar. */
7062
7172
  private readonly _sheetId;
@@ -7083,53 +7193,90 @@ declare class SuiModalSheet implements OnDestroy {
7083
7193
  readonly fullBody: _angular_core.InputSignal<boolean>;
7084
7194
  readonly closed: _angular_core.OutputEmitterRef<void>;
7085
7195
  readonly breakpointChange: _angular_core.OutputEmitterRef<number>;
7196
+ /** Marco fijo que recorta; se mide acá (alto H). */
7086
7197
  containerRef?: ElementRef<HTMLElement>;
7198
+ /** Capa que se mueve (`translate`). */
7199
+ panelRef?: ElementRef<HTMLElement>;
7200
+ backdropRef?: ElementRef<HTMLElement>;
7087
7201
  handleRef?: ElementRef<HTMLElement>;
7088
7202
  bodyRef?: ElementRef<HTMLElement>;
7089
7203
  /** Breakpoint actual (0-1). Cambia al snap, no durante el drag. */
7090
7204
  readonly currentBreakpoint: _angular_core.WritableSignal<number>;
7091
- /** Progress en vivo durante el drag (0-1). Expuesto como readonly al
7092
- template (binding `--sheet-progress`) y al public para que el consumer
7093
- pueda leerlo si quiere reaccionar. */
7094
- protected readonly liveProgress: _angular_core.WritableSignal<number>;
7205
+ /** Progress EN REPOSO (0-1): el breakpoint al que el sheet está o hacia el
7206
+ que va. Durante el drag NO se actualiza (el movimiento vive en el DOM,
7207
+ ver header): cambia al soltar y al snap. Expuesto al template como
7208
+ `--sheet-progress` y al consumer como `progress`. */
7209
+ protected readonly restProgress: _angular_core.WritableSignal<number>;
7095
7210
  readonly progress: _angular_core.Signal<number>;
7096
- /** True mientras el usuario está arrastrando. Desactiva CSS transition. */
7211
+ /** True mientras el usuario está arrastrando. Se setea al arrancar y al
7212
+ soltar; la clase CSS que apaga la transición se maneja imperativa en el
7213
+ mismo tick que la escritura del `translate` (ver `beginDrag`/`snapTo`). */
7097
7214
  readonly dragging: _angular_core.WritableSignal<boolean>;
7098
- /** Opacity del backdrop calculada según el progress vivo. */
7215
+ /** Opacity del backdrop para el progress en reposo. La opacidad viva del
7216
+ drag se escribe directo en el DOM; este computed queda como API. */
7099
7217
  readonly backdropOpacity: _angular_core.Signal<number>;
7100
7218
  /** True si el backdrop debe capturar pointer events (current > backdropBreakpoint). */
7101
7219
  readonly backdropInteractive: _angular_core.Signal<boolean>;
7102
- /** CAP de altura del sheet — `min(progress·100dvh, viewport - safe-top - 16)`.
7103
- Se bindea como max-height con `height: max-content` en el scss: el sheet
7104
- NUNCA mide más que su contenido (sin espacio vacío al final cuando el
7105
- contenido termina antes del breakpoint), y el breakpoint actúa como techo.
7106
- Cuando progress=0.25 el sheet ocupa a lo sumo 25dvh y el resto del
7107
- viewport queda VACÍO → contenido detrás (mapa) interactivo. */
7108
- readonly heightCss: _angular_core.Signal<string>;
7220
+ /** Breakpoint máximo del array (1 si está vacío). */
7221
+ private readonly maxBreakpoint;
7222
+ /** CAP ESTÁTICO de altura — `min(maxBp·100dvh, viewport − safe-top − 16)`.
7223
+ Con `height: max-content` en el scss el sheet mide su contenido y este
7224
+ techo lo acota. Depende solo de `breakpoints`: no cambia por drag ni por
7225
+ snap, así que no fuerza layout durante el gesto. */
7226
+ readonly maxHeightCss: _angular_core.Signal<string>;
7109
7227
  /** True cuando el sheet está al breakpoint máximo del array. En ese punto
7110
7228
  habilitamos scroll del body (touch-action: pan-y) — el user ya no puede
7111
7229
  expandir más, así que se prioriza ver el contenido sobre el drag. En el
7112
7230
  resto de breakpoints el body actúa como handle gigante (touch-action:
7113
- none) y solo el drag controla la altura del sheet. */
7231
+ none) y solo el drag controla la posición del sheet. */
7114
7232
  readonly atMaxBreakpoint: _angular_core.Signal<boolean>;
7233
+ /** Alto medido del sheet (px). Se mide al abrir, al empezar un drag y
7234
+ cuando el contenido cambia de tamaño (ResizeObserver). */
7235
+ private sheetHeight;
7236
+ /** Alto del viewport (px) = 1 unidad de progress. */
7237
+ private viewportHeight;
7115
7238
  private dragStartY;
7116
7239
  private dragStartProgress;
7117
- private wrapperHeight;
7118
7240
  private pointerId;
7119
7241
  /** Para calcular velocity al final */
7120
7242
  private lastMoveTime;
7121
7243
  private lastMoveY;
7122
7244
  private velocityY;
7245
+ /** Último progress pedido por el dedo; lo consume el rAF. */
7246
+ private pendingProgress;
7247
+ private frameId;
7123
7248
  /** Flag para distinguir drag iniciado en body (scroll-then-drag) vs en handle.
7124
7249
  En body, el drag NO arranca con pointerdown — sólo si pointermove
7125
7250
  excede un threshold y la condición de scroll lo permite. Sirve para no
7126
7251
  robar tap/click a buttons internos. */
7127
7252
  private bodyDragArmed;
7128
7253
  /** Threshold de movimiento (px) para decidir que un pointermove en body es
7129
- drag (no tap). Patrón iOS estándar ~6-10px. */
7254
+ drag (no tap). 5px = más sensible que el iOS canon de 8px: el dueño pidió
7255
+ "como nativo" y el 8 sentía que tardaba en activar. Trade-off: 5px puede
7256
+ activar drag con micro-movements al hacer tap, pero la heurística
7257
+ shouldIgnoreBodyDrag protege inputs/select/option. */
7130
7258
  private static readonly BODY_DRAG_THRESHOLD_PX;
7259
+ /** Lookahead de velocidad al soltar (ms): predice dónde estaría el dedo y
7260
+ snapea ahí. Permite que un swipe rápido brinque breakpoints sin saltarse
7261
+ los intermedios. 80ms validado en device: a 150 se saltaba el 0.7 entre
7262
+ 0.5 y 1; a 0 el sheet se sentía pesado. */
7263
+ private static readonly VELOCITY_LOOKAHEAD_MS;
7264
+ /** Duración del snap: se acota entre estos dos valores según distancia
7265
+ restante / velocidad del dedo (ver `snapDuration`). */
7266
+ private static readonly SNAP_MIN_MS;
7267
+ private static readonly SNAP_MAX_MS;
7268
+ private static readonly CLASS_PANEL_DRAGGING;
7269
+ private static readonly CLASS_BACKDROP_DRAGGING;
7270
+ /** Cerrado = el panel baja todo su alto y el marco lo recorta entero. Se usa
7271
+ `100%` (y no el H medido) para que el cierre quede bien aunque el
7272
+ contenido cambie de tamaño a mitad de camino. */
7273
+ private static readonly TRANSLATE_CLOSED;
7131
7274
  private wasOpen;
7132
7275
  private escapeHandler?;
7276
+ private closeTimer;
7277
+ private closeTransitionHandler?;
7278
+ private resizeObserver?;
7279
+ private windowResizeHandler?;
7133
7280
  constructor();
7134
7281
  ngOnDestroy(): void;
7135
7282
  /** Mueve el sheet a un breakpoint específico programáticamente.
@@ -7143,6 +7290,40 @@ declare class SuiModalSheet implements OnDestroy {
7143
7290
  private touchMoveHandler?;
7144
7291
  private attachTouchSuppressor;
7145
7292
  private detachTouchSuppressor;
7293
+ /** Mide alto del sheet y del viewport. Devuelve false si todavía no hay
7294
+ layout (container sin render o entorno sin medidas, ej. jsdom). Es la
7295
+ ÚNICA lectura de layout del gesto: se hace al abrir, al pointerdown y
7296
+ cuando cambia el tamaño — nunca por pointermove. */
7297
+ private measure;
7298
+ /** Desplazamiento vertical (px) para un progress: `max(0, H − p·vh)`. */
7299
+ private yFor;
7300
+ /** Valor de `translate` para un progress. */
7301
+ private translateFor;
7302
+ /** Progress EFECTIVO de un breakpoint: el que corresponde al y que el sheet
7303
+ muestra de verdad. Con contenido corto varios breakpoints valen y = 0 y
7304
+ su progress efectivo es H/vh, no el nominal — es el punto de partida
7305
+ correcto para que el dedo mueva 1:1 desde ahí. */
7306
+ private effectiveProgress;
7307
+ /** Progress real del sheet leyendo el `translate` computado del panel —
7308
+ sirve para agarrarlo a mitad de una transición sin que salte al
7309
+ breakpoint de destino. Si no se puede leer (jsdom, valor no numérico,
7310
+ un calc() a mitad de la entrada) cae al progress efectivo del
7311
+ `currentBreakpoint`. */
7312
+ private progressFromDom;
7313
+ private writeTranslate;
7314
+ private writeBackdropOpacity;
7315
+ private setTransitionDuration;
7316
+ private setDraggingClasses;
7317
+ /** Coalesce: guarda el último progress y escribe UNA vez por frame. */
7318
+ private scheduleFrame;
7319
+ private flushFrame;
7320
+ private cancelFrame;
7321
+ private observeSize;
7322
+ private stopObservingSize;
7323
+ private onSizeChange;
7324
+ /** Arranque común del drag (handle o body ya armado): congela la transición
7325
+ en curso, lee la posición real y marca `dragging`. */
7326
+ private beginDrag;
7146
7327
  protected onPointerDown(event: PointerEvent): void;
7147
7328
  protected onPointerMove(event: PointerEvent): void;
7148
7329
  protected onPointerUp(event: PointerEvent): void;
@@ -7152,8 +7333,26 @@ declare class SuiModalSheet implements OnDestroy {
7152
7333
  /** Heurística: ignorar drag si el target es un input/textarea/select/button
7153
7334
  interactivo. El user está intentando interactuar, no arrastrar. */
7154
7335
  private shouldIgnoreBodyDrag;
7336
+ /** Duración del snap en función de la distancia restante y la velocidad del
7337
+ dedo (px/ms): un fling rápido cierra la distancia en poco tiempo; un
7338
+ release lento o un snap programático usa la duración larga. Acotado a
7339
+ [180, 350] ms. */
7340
+ private snapDuration;
7341
+ /**
7342
+ * Lleva el sheet a `breakpoint`.
7343
+ * @param fromProgress progress desde el que sale (default: el de reposo);
7344
+ * solo influye en la duración.
7345
+ * @param velocityPxMs velocidad del dedo al soltar, para acortar el snap.
7346
+ */
7155
7347
  private snapTo;
7156
- private findClosestBreakpoint;
7348
+ private scheduleClose;
7349
+ private cancelPendingClose;
7350
+ /** Breakpoint cuyo desplazamiento (`yFor`) queda más cerca de `y`. Varios
7351
+ breakpoints pueden compartir el mismo y (todos los que superan el alto
7352
+ del contenido valen 0): en ese empate gana el actual si está entre
7353
+ ellos, si no el mayor — así un toque-arrastre al máximo no cambia de
7354
+ breakpoint ni apaga el scroll del body. */
7355
+ private closestBreakpointByY;
7157
7356
  /** Fórmula linear entre (backdropBreakpoint, 0) y (1, 1). Igual que Ionic. */
7158
7357
  private computeBackdropOpacity;
7159
7358
  protected onBackdropClick(): void;
@@ -9982,6 +10181,35 @@ declare class SuiStoreCard {
9982
10181
  readonly isFavorite: _angular_core.InputSignal<boolean>;
9983
10182
  /** Si true, no se navega al detalle (caso suspendido). El padre puede sobreescribir. */
9984
10183
  readonly disableLink: _angular_core.InputSignal<boolean>;
10184
+ /**
10185
+ * El texto de Envío y el de Distancia, ya escritos por quien llama.
10186
+ *
10187
+ * ## Por qué existen: la tarjeta DIBUJA, no decide
10188
+ *
10189
+ * El costo de envío se calcula en un solo lugar de la app
10190
+ * (`StateService.computeDeliveryFee`) desde un bug real: la tarjeta decía
10191
+ * S/ 1,90 y el checkout cobraba S/ 1,50, porque cada vista lo deducía por su
10192
+ * cuenta. Un componente del design system que deduce precios es esa misma
10193
+ * trampa, un piso más abajo — y encima repartida entre todas las apps que lo
10194
+ * consuman. Lo mismo vale para la distancia, que según de dónde salga el
10195
+ * número se escribe como rango («menos de 500 m», mientras es un estimado) o
10196
+ * como número exacto («475 m», cuando la ruta ya se midió): esa distinción
10197
+ * la conoce la app, no la tarjeta.
10198
+ *
10199
+ * ## Los tres estados, y por qué son tres
10200
+ *
10201
+ * | valor | qué hace |
10202
+ * |---|---|
10203
+ * | sin pasar (`undefined`) | la tarjeta lo deduce como siempre — nada cambia para quien ya la usa |
10204
+ * | un string | se muestra tal cual |
10205
+ * | `null` | esa columna NO se renderiza (ni guion ni hueco) |
10206
+ *
10207
+ * `null` tiene que ser distinto de «no lo pasé» justamente para poder pedir
10208
+ * que el dato desaparezca. Al quedar tres columnas en vez de cuatro, la fila
10209
+ * se reparte mejor y el distrito deja de cortarse en «San Jeróni…».
10210
+ */
10211
+ readonly deliveryText: _angular_core.InputSignal<string | null | undefined>;
10212
+ readonly distanceText: _angular_core.InputSignal<string | null | undefined>;
9985
10213
  readonly toggleFavorite: _angular_core.OutputEmitterRef<Event>;
9986
10214
  /** Emite cuando el usuario tapea la sección de calificación. El padre debe
9987
10215
  * abrir `StoreRatingsModalService.open(id, name, logoUrl)` para mostrar
@@ -10007,17 +10235,22 @@ declare class SuiStoreCard {
10007
10235
  * guardado y cero reseñas, y sin él ese cinco pasa por reputación ganada.
10008
10236
  */
10009
10237
  readonly ratingLabel: _angular_core.Signal<string>;
10010
- readonly distanceLabel: _angular_core.Signal<string>;
10238
+ /** El texto de Distancia: el que le pasaron, o el que deduce del `distanceKm`
10239
+ * cuando nadie le pasó nada. `null` = no se pinta la columna (ver
10240
+ * `distanceText`). */
10241
+ readonly distanceLabel: _angular_core.Signal<string | null>;
10011
10242
  /** En owner-preview hay un badge custom (Borrador/En revisión/Rechazado).
10012
10243
  Devuelve null cuando no aplica (modo cliente normal). */
10013
10244
  readonly previewBadge: _angular_core.Signal<PreviewBadge | null>;
10014
- /** Etiqueta corta de envío (Gratis/Recojo/Courier/S/X). */
10015
- readonly deliveryLabel: _angular_core.Signal<string>;
10245
+ /** El texto de Envío: el que le pasaron, o la etiqueta corta que deduce del
10246
+ * `deliveryType` (Gratis/Recojo/Courier/S/X) cuando nadie le pasó nada.
10247
+ * `null` = no se pinta la columna (ver `deliveryText`). */
10248
+ readonly deliveryLabel: _angular_core.Signal<string | null>;
10016
10249
  onFavClick(event: Event): void;
10017
10250
  onCardClick(event: Event): void;
10018
10251
  onRatingClick(event: Event): void;
10019
10252
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiStoreCard, never>;
10020
- 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; }; }, { "toggleFavorite": "toggleFavorite"; "ratingClicked": "ratingClicked"; }, never, never, true, never>;
10253
+ 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>;
10021
10254
  }
10022
10255
 
10023
10256
  /**
@@ -12408,5 +12641,5 @@ declare class SuiTooltipPanel {
12408
12641
  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>;
12409
12642
  }
12410
12643
 
12411
- 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, 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 };
12412
- 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, 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 };
12644
+ 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 };
12645
+ 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 };