@ajuarezso/sui-design-system 0.15.6 → 0.15.7

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.
@@ -2636,6 +2636,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2636
2636
  }, template: "<span class=\"sui-checkbox__bg\">\n <span class=\"sui-checkbox__box\"></span>\n @if (checked() && !indeterminate()) {\n <svg class=\"sui-checkbox__check\" viewBox=\"0 0 10 8\" aria-hidden=\"true\">\n <path d=\"M1 4.5 L3.7 7 L9 1.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/>\n </svg>\n }\n @if (indeterminate()) {\n <span class=\"sui-checkbox__dash\" aria-hidden=\"true\"></span>\n }\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-size=medium]){width:20px;height:20px}:host([data-sui-size=small]){width:16px;height:16px}.sui-checkbox__bg{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out);background:var(--sui-bg-soft-200)}:host([data-sui-size=medium]) .sui-checkbox__bg{width:16px;height:16px}:host([data-sui-size=small]) .sui-checkbox__bg{width:14px;height:14px}.sui-checkbox__box{position:absolute;background:var(--sui-bg-white-0);border-radius:2.6px;box-shadow:var(--sui-shadow-form-box)}:host([data-sui-size=medium]) .sui-checkbox__box{width:13px;height:13px}:host([data-sui-size=small]) .sui-checkbox__box{width:11px;height:11px}.sui-checkbox__check{position:absolute;color:var(--sui-static-white, #ffffff);pointer-events:none;width:9.06px;height:6.59px}.sui-checkbox__dash{position:absolute;width:8px;height:1.5px;background:var(--sui-static-white, #ffffff);border-radius:1px}:host(:hover:not([data-sui-disabled]):not([data-sui-checked]):not([data-sui-indeterminate])) .sui-checkbox__bg{background:var(--sui-bg-sub-300)}:host(:focus-visible:not([data-sui-disabled]):not([data-sui-checked]):not([data-sui-indeterminate])) .sui-checkbox__bg{background:var(--sui-primary-base)}:host([data-sui-checked]) .sui-checkbox__bg,:host([data-sui-indeterminate]) .sui-checkbox__bg{background:var(--sui-primary-base)}:host([data-sui-checked]:hover:not([data-sui-disabled])) .sui-checkbox__bg,:host([data-sui-indeterminate]:hover:not([data-sui-disabled])) .sui-checkbox__bg{background:var(--sui-primary-dark)}:host([data-sui-checked]:focus-visible:not([data-sui-disabled])) .sui-checkbox__bg,:host([data-sui-indeterminate]:focus-visible:not([data-sui-disabled])) .sui-checkbox__bg{background:var(--sui-primary-darkest)}:host([data-sui-checked]) .sui-checkbox__box,:host([data-sui-indeterminate]) .sui-checkbox__box{display:none}:host([data-sui-disabled]){cursor:not-allowed;pointer-events:none;opacity:1}:host([data-sui-disabled]) .sui-checkbox__bg{background:var(--sui-bg-soft-200)}:host([data-sui-disabled]) .sui-checkbox__box{display:none}:host([data-sui-disabled]) .sui-checkbox__check{color:var(--sui-icon-disabled-300)}:host([data-sui-disabled]) .sui-checkbox__dash{background:var(--sui-icon-disabled-300)}:host([data-sui-size=large]){width:24px;height:24px}:host([data-sui-size=large]) .sui-checkbox__bg{width:20px;height:20px}:host([data-sui-size=large]) .sui-checkbox__box{width:17px;height:17px}:host([data-sui-size=large]) .sui-checkbox__check{width:11.33px;height:8.24px}:host([data-sui-size=large]) .sui-checkbox__dash{width:10px;height:2px}:host([data-sui-size=xlarge]){width:28px;height:28px}:host([data-sui-size=xlarge]) .sui-checkbox__bg{width:24px;height:24px}:host([data-sui-size=xlarge]) .sui-checkbox__box{width:21px;height:21px}:host([data-sui-size=xlarge]) .sui-checkbox__check{width:13.6px;height:9.9px}:host([data-sui-size=xlarge]) .sui-checkbox__dash{width:12px;height:2.5px}\n"] }]
2637
2637
  }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
2638
2638
 
2639
+ /**
2640
+ * Copias ESTÁTICAS inline de los emojis que se usan de a cinco a la vez.
2641
+ *
2642
+ * Los del catálogo remoto son APNG de 73 fotogramas y ~1 MB cada uno. Uno solo
2643
+ * en un empty state está perfecto —para eso se eligieron—, pero la barra de
2644
+ * calificación monta CINCO juntos: 5 MB de descarga y cinco animaciones en
2645
+ * bucle infinito dentro de un modal que además scrollea. Cada fotograma
2646
+ * invalida el área y, en el modal a pantalla completa, obliga a repintar la
2647
+ * tarjeta entera (lleva `clip-path` + `filter`), así que el scroll se sentía
2648
+ * trabado incluso sin tocar nada.
2649
+ *
2650
+ * Estos son el PRIMER fotograma de esos mismos emojis a 96px WebP: 3,6 KB cada
2651
+ * uno, 18 KB los cinco, sin red y sin animación. Visualmente idénticos al
2652
+ * emoji animado en reposo —se comparó al generar—, así que no se pierde nada:
2653
+ * la barra ya expresa la selección agrandando y coloreando la carita elegida.
2654
+ *
2655
+ * Se resuelven con `[animated]="false"` en <sui-emoji>. El default sigue siendo
2656
+ * el animado: donde hay uno solo, la animación suma.
2657
+ *
2658
+ * Para regenerar: primer fotograma del APNG del catálogo, LANCZOS a 96×96,
2659
+ * WebP q=88 method=6, en base64.
2660
+ */
2661
+ const SUI_EMOJI_STATIC = {
2662
+ 'pensive-face': 'data:image/webp;base64,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',
2663
+ 'confused-face': 'data:image/webp;base64,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',
2664
+ 'neutral-face': 'data:image/webp;base64,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',
2665
+ 'slightly-smiling-face': 'data:image/webp;base64,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',
2666
+ 'grinning-face-smiling-eyes': 'data:image/webp;base64,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',
2667
+ };
2668
+
2639
2669
  /**
2640
2670
  * sui-emoji — Wrapper de emojis Fluent UI animados (PNG raster a color).
2641
2671
  *
@@ -2655,10 +2685,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2655
2685
  * - ariaLabel: si se provee, el emoji se anuncia como `<img>` con ese label;
2656
2686
  * si no, se considera decorativo (`aria-hidden="true"`).
2657
2687
  *
2688
+ * - animated: default true. En `false` usa la copia estática inline del emoji
2689
+ * si existe (`SUI_EMOJI_STATIC`). Ver abajo.
2690
+ *
2691
+ * OJO CON EL PESO: los del catálogo son APNG de ~1 MB y 73 fotogramas, servidos
2692
+ * desde raw.githubusercontent.com. Uno solo, suelto, está bien —es justo lo que
2693
+ * los hace lindos en un empty state—. VARIOS JUNTOS no: la barra de calificación
2694
+ * montaba cinco y eran 5 MB de descarga más cinco bucles infinitos dentro de un
2695
+ * modal que scrollea, y el scroll se sentía trabado. Para esos casos existe
2696
+ * `[animated]="false"`, que resuelve a una copia estática de 3,6 KB embebida en
2697
+ * el bundle. Regla: uno solo → animado; varios a la vez → estático.
2698
+ *
2658
2699
  * PENDING VERIFY:
2659
- * - Cache de imágenes: actualmente lazy-loading nativo + CDN raw.githubusercontent.com.
2660
- * Si se nota lag al hover/scroll, considerar mover assets a /assets/emojis/ o
2661
- * un CDN propio (Firebase Storage / Cloudflare R2).
2700
+ * - Los animados siguen viniendo de raw.githubusercontent.com. Funciona, pero
2701
+ * es un CDN de terceros dentro de una app nativa: si se cae o rate-limitea,
2702
+ * no hay emoji. Mover a /assets/emojis/ o a un bucket propio queda pendiente.
2662
2703
  * - El catálogo SUI_EMOJI_MAP es manual; cuando se agregue uno nuevo, hay que
2663
2704
  * registrarlo aquí (NO crear un dict paralelo en otros componentes — es la
2664
2705
  * fuente de verdad para todo el DS).
@@ -2752,6 +2793,15 @@ class SuiEmoji {
2752
2793
  * Si no se provee, se considera decorativo (`aria-hidden="true"`).
2753
2794
  */
2754
2795
  ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
2796
+ /**
2797
+ * Si el emoji se anima. Por default sí: uno solo en un empty state se ve
2798
+ * mejor vivo. Ponerlo en `false` cuando hay VARIOS juntos —una barra de
2799
+ * calificación, una grilla— porque cada uno es un APNG de ~1 MB en bucle y
2800
+ * varios a la vez cuestan la descarga y el repintado continuo. Los que
2801
+ * tienen copia estática (ver `SUI_EMOJI_STATIC`) resuelven a esa; el resto
2802
+ * cae al animado, que es mejor que no mostrar nada.
2803
+ */
2804
+ animated = input(true, ...(ngDevMode ? [{ debugName: "animated" }] : /* istanbul ignore next */ []));
2755
2805
  /** URL final del emoji (catálogo o src directo). */
2756
2806
  resolvedSrc = computed(() => {
2757
2807
  const srcOverride = this.src();
@@ -2760,10 +2810,12 @@ class SuiEmoji {
2760
2810
  const n = this.name();
2761
2811
  if (!n)
2762
2812
  return null;
2813
+ if (!this.animated() && SUI_EMOJI_STATIC[n])
2814
+ return SUI_EMOJI_STATIC[n];
2763
2815
  return `${FLUENT_EMOJI_BASE}/${SUI_EMOJI_MAP[n]}`;
2764
2816
  }, ...(ngDevMode ? [{ debugName: "resolvedSrc" }] : /* istanbul ignore next */ []));
2765
2817
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiEmoji, deps: [], target: i0.ɵɵFactoryTarget.Component });
2766
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiEmoji, isStandalone: true, selector: "sui-emoji", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "attr.aria-hidden": "ariaLabel() ? null : \"true\"", "attr.role": "ariaLabel() ? \"img\" : null", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: "@if (resolvedSrc(); as src) {\n <img class=\"sui-emoji__img\" [src]=\"src\" [alt]=\"ariaLabel() ?? ''\" loading=\"lazy\" decoding=\"async\" />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle}.sui-emoji__img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}:host([data-size=xs]){width:16px;height:16px}:host([data-size=sm]){width:20px;height:20px}:host([data-size=md]){width:24px;height:24px}:host([data-size=lg]){width:32px;height:32px}:host([data-size=xl]){width:48px;height:48px}:host([data-size=full]){width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2818
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiEmoji, isStandalone: true, selector: "sui-emoji", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "attr.aria-hidden": "ariaLabel() ? null : \"true\"", "attr.role": "ariaLabel() ? \"img\" : null", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: "@if (resolvedSrc(); as src) {\n <img class=\"sui-emoji__img\" [src]=\"src\" [alt]=\"ariaLabel() ?? ''\" loading=\"lazy\" decoding=\"async\" />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle}.sui-emoji__img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}:host([data-size=xs]){width:16px;height:16px}:host([data-size=sm]){width:20px;height:20px}:host([data-size=md]){width:24px;height:24px}:host([data-size=lg]){width:32px;height:32px}:host([data-size=xl]){width:48px;height:48px}:host([data-size=full]){width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2767
2819
  }
2768
2820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiEmoji, decorators: [{
2769
2821
  type: Component,
@@ -2773,7 +2825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2773
2825
  '[attr.role]': 'ariaLabel() ? "img" : null',
2774
2826
  '[attr.aria-label]': 'ariaLabel()',
2775
2827
  }, template: "@if (resolvedSrc(); as src) {\n <img class=\"sui-emoji__img\" [src]=\"src\" [alt]=\"ariaLabel() ?? ''\" loading=\"lazy\" decoding=\"async\" />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle}.sui-emoji__img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}:host([data-size=xs]){width:16px;height:16px}:host([data-size=sm]){width:20px;height:20px}:host([data-size=md]){width:24px;height:24px}:host([data-size=lg]){width:32px;height:32px}:host([data-size=xl]){width:48px;height:48px}:host([data-size=full]){width:100%;height:100%}\n"] }]
2776
- }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
2828
+ }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], animated: [{ type: i0.Input, args: [{ isSignal: true, alias: "animated", required: false }] }] } });
2777
2829
 
2778
2830
  /**
2779
2831
  * SUI Checkbox Card — SUI Design System 2.0
@@ -2961,7 +3013,7 @@ class SuiCheckboxCard {
2961
3013
  useExisting: forwardRef(() => SuiCheckboxCard),
2962
3014
  multi: true,
2963
3015
  },
2964
- ], ngImport: i0, template: "<!-- Leading slot \u2014 solo basic / left-icon / avatar (Figma 261:3921/264:2858/264:3023) -->\n@if (type() === 'left-icon') {\n <div class=\"sui-checkbox-card__leading sui-checkbox-card__leading--icon\" aria-hidden=\"true\">\n @if (icon()) {\n <sui-icon [name]=\"icon()!\" [size]=\"20\" />\n } @else if (emoji()) {\n <sui-emoji [name]=\"emoji()\" size=\"md\" />\n } @else if (iconSrc()) {\n <sui-emoji [src]=\"iconSrc()\" size=\"full\" />\n }\n </div>\n} @else if (type() === 'avatar') {\n <sui-avatar\n class=\"sui-checkbox-card__leading sui-checkbox-card__leading--avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n} @else if (type() === 'card-provider' || type() === 'brand' || type() === 'company') {\n <!-- Leading proyectado por el consumer: logo de proveedor / brand / company.\n El componente solo da el contenedor + geometr\u00EDa por type (Figma\n 265:539/699/863). Ej: <sui-checkbox-card type=\"brand\"><img slot=\"leading\" \u2026></sui-checkbox-card> -->\n <div class=\"sui-checkbox-card__leading sui-checkbox-card__leading--slot\" aria-hidden=\"true\">\n <ng-content select=\"[slot=leading]\" />\n </div>\n}\n\n<!-- Texto: Title row + description -->\n<div class=\"sui-checkbox-card__text\">\n <div class=\"sui-checkbox-card__title\">\n @if (label()) {\n <span class=\"sui-checkbox-card__label\">{{ label() }}</span>\n }\n @if (sublabel()) {\n <span class=\"sui-checkbox-card__sublabel\">{{ sublabel() }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description()) {\n <p class=\"sui-checkbox-card__description\">{{ description() }}</p>\n }\n</div>\n\n<!-- Checkbox trailing (20\u00D720 medium). El click del host ya togglea \u2014 el checkbox\n interno solo refleja el estado visual (sus listeners propios disparan\n onCheckboxChange para mantener sync con el form). -->\n<sui-checkbox\n class=\"sui-checkbox-card__checkbox\"\n [size]=\"size()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n/>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;box-sizing:border-box;align-items:flex-start;gap:14px;padding:16px;width:100%;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);border-radius:var(--sui-radius-12, 12px);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;font-family:var(--sui-font-sans, var(--font-sans, sans-serif));touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),transform var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked]):not([data-sui-indeterminate])){background:var(--sui-bg-weak-50, #f7f7f7);border-color:transparent;box-shadow:none}}:host([data-sui-checked]),:host([data-sui-indeterminate]){border-color:var(--sui-primary-base, #fa7319);box-shadow:none;background:var(--sui-bg-white-0, #fff)}@media(hover:hover)and (pointer:fine){:host([data-sui-checked]:hover:not([data-sui-disabled])),:host([data-sui-indeterminate]:hover:not([data-sui-disabled])){background:var(--sui-bg-weak-50, #f7f7f7)}}:host(:focus-visible:not([data-sui-disabled])){border-color:var(--sui-primary-base, #fa7319);box-shadow:0 0 0 3px color-mix(in oklab,var(--sui-primary-base, #fa7319) 16%,transparent)}:host([data-sui-disabled]){cursor:not-allowed;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:none}:host([data-sui-disabled]) .sui-checkbox-card__label{color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-disabled]) .sui-checkbox-card__sublabel,:host([data-sui-disabled]) .sui-checkbox-card__description{color:var(--sui-text-soft-400, #a3a3a3)}:host(:active:not([data-sui-disabled])){transform:scale(.99)}.sui-checkbox-card__leading{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-checkbox-card__leading--icon{box-sizing:border-box;width:40px;height:40px;padding:10px;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-leading-fill]) .sui-checkbox-card__leading--icon{padding:0;border:none;background:none;box-shadow:none;border-radius:0;overflow:visible;display:flex;align-items:center;justify-content:center}:host([data-sui-leading-fill]) .sui-checkbox-card__leading--icon sui-emoji{display:block;width:100%;height:100%}:host([data-sui-type=avatar]) .sui-checkbox-card__leading--avatar{width:40px;height:40px}.sui-checkbox-card__leading--slot{box-sizing:border-box;overflow:hidden}.sui-checkbox-card__leading--slot>*{display:block;width:100%;height:100%;object-fit:contain}:host([data-sui-type=card-provider]) .sui-checkbox-card__leading--slot{width:32px;height:24px;border-radius:4px}:host([data-sui-type=brand]) .sui-checkbox-card__leading--slot{width:40px;height:40px}:host([data-sui-type=company]) .sui-checkbox-card__leading--slot{width:40px;height:40px;border-radius:var(--sui-radius-full, 999px)}.sui-checkbox-card__text{display:flex;flex-direction:column;gap:4px;align-items:flex-start;flex:1 1 auto;min-width:0;align-self:stretch}.sui-checkbox-card__text:not(:has(.sui-checkbox-card__description)){justify-content:center}.sui-checkbox-card__title{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.sui-checkbox-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950, #171717);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-checkbox-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-checkbox-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-sui-disabled]) .sui-checkbox-card__badge{background:transparent;border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-disabled-300, #d1d1d1)}.sui-checkbox-card__checkbox{flex-shrink:0;align-self:flex-start;pointer-events:none}\n"], dependencies: [{ kind: "component", type: SuiCheckbox, selector: "sui-checkbox", inputs: ["size", "checked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3016
+ ], ngImport: i0, template: "<!-- Leading slot \u2014 solo basic / left-icon / avatar (Figma 261:3921/264:2858/264:3023) -->\n@if (type() === 'left-icon') {\n <div class=\"sui-checkbox-card__leading sui-checkbox-card__leading--icon\" aria-hidden=\"true\">\n @if (icon()) {\n <sui-icon [name]=\"icon()!\" [size]=\"20\" />\n } @else if (emoji()) {\n <sui-emoji [name]=\"emoji()\" size=\"md\" />\n } @else if (iconSrc()) {\n <sui-emoji [src]=\"iconSrc()\" size=\"full\" />\n }\n </div>\n} @else if (type() === 'avatar') {\n <sui-avatar\n class=\"sui-checkbox-card__leading sui-checkbox-card__leading--avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n} @else if (type() === 'card-provider' || type() === 'brand' || type() === 'company') {\n <!-- Leading proyectado por el consumer: logo de proveedor / brand / company.\n El componente solo da el contenedor + geometr\u00EDa por type (Figma\n 265:539/699/863). Ej: <sui-checkbox-card type=\"brand\"><img slot=\"leading\" \u2026></sui-checkbox-card> -->\n <div class=\"sui-checkbox-card__leading sui-checkbox-card__leading--slot\" aria-hidden=\"true\">\n <ng-content select=\"[slot=leading]\" />\n </div>\n}\n\n<!-- Texto: Title row + description -->\n<div class=\"sui-checkbox-card__text\">\n <div class=\"sui-checkbox-card__title\">\n @if (label()) {\n <span class=\"sui-checkbox-card__label\">{{ label() }}</span>\n }\n @if (sublabel()) {\n <span class=\"sui-checkbox-card__sublabel\">{{ sublabel() }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description()) {\n <p class=\"sui-checkbox-card__description\">{{ description() }}</p>\n }\n</div>\n\n<!-- Checkbox trailing (20\u00D720 medium). El click del host ya togglea \u2014 el checkbox\n interno solo refleja el estado visual (sus listeners propios disparan\n onCheckboxChange para mantener sync con el form). -->\n<sui-checkbox\n class=\"sui-checkbox-card__checkbox\"\n [size]=\"size()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n/>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;box-sizing:border-box;align-items:flex-start;gap:14px;padding:16px;width:100%;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);border-radius:var(--sui-radius-12, 12px);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;font-family:var(--sui-font-sans, var(--font-sans, sans-serif));touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),transform var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked]):not([data-sui-indeterminate])){background:var(--sui-bg-weak-50, #f7f7f7);border-color:transparent;box-shadow:none}}:host([data-sui-checked]),:host([data-sui-indeterminate]){border-color:var(--sui-primary-base, #fa7319);box-shadow:none;background:var(--sui-bg-white-0, #fff)}@media(hover:hover)and (pointer:fine){:host([data-sui-checked]:hover:not([data-sui-disabled])),:host([data-sui-indeterminate]:hover:not([data-sui-disabled])){background:var(--sui-bg-weak-50, #f7f7f7)}}:host(:focus-visible:not([data-sui-disabled])){border-color:var(--sui-primary-base, #fa7319);box-shadow:0 0 0 3px color-mix(in oklab,var(--sui-primary-base, #fa7319) 16%,transparent)}:host([data-sui-disabled]){cursor:not-allowed;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:none}:host([data-sui-disabled]) .sui-checkbox-card__label{color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-disabled]) .sui-checkbox-card__sublabel,:host([data-sui-disabled]) .sui-checkbox-card__description{color:var(--sui-text-soft-400, #a3a3a3)}:host(:active:not([data-sui-disabled])){transform:scale(.99)}.sui-checkbox-card__leading{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-checkbox-card__leading--icon{box-sizing:border-box;width:40px;height:40px;padding:10px;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-leading-fill]) .sui-checkbox-card__leading--icon{padding:0;border:none;background:none;box-shadow:none;border-radius:0;overflow:visible;display:flex;align-items:center;justify-content:center}:host([data-sui-leading-fill]) .sui-checkbox-card__leading--icon sui-emoji{display:block;width:100%;height:100%}:host([data-sui-type=avatar]) .sui-checkbox-card__leading--avatar{width:40px;height:40px}.sui-checkbox-card__leading--slot{box-sizing:border-box;overflow:hidden}.sui-checkbox-card__leading--slot>*{display:block;width:100%;height:100%;object-fit:contain}:host([data-sui-type=card-provider]) .sui-checkbox-card__leading--slot{width:32px;height:24px;border-radius:4px}:host([data-sui-type=brand]) .sui-checkbox-card__leading--slot{width:40px;height:40px}:host([data-sui-type=company]) .sui-checkbox-card__leading--slot{width:40px;height:40px;border-radius:var(--sui-radius-full, 999px)}.sui-checkbox-card__text{display:flex;flex-direction:column;gap:4px;align-items:flex-start;flex:1 1 auto;min-width:0;align-self:stretch}.sui-checkbox-card__text:not(:has(.sui-checkbox-card__description)){justify-content:center}.sui-checkbox-card__title{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.sui-checkbox-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950, #171717);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-checkbox-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-checkbox-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-sui-disabled]) .sui-checkbox-card__badge{background:transparent;border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-disabled-300, #d1d1d1)}.sui-checkbox-card__checkbox{flex-shrink:0;align-self:flex-start;pointer-events:none}\n"], dependencies: [{ kind: "component", type: SuiCheckbox, selector: "sui-checkbox", inputs: ["size", "checked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel", "animated"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2965
3017
  }
2966
3018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiCheckboxCard, decorators: [{
2967
3019
  type: Component,
@@ -7864,7 +7916,7 @@ class SuiEmptyState {
7864
7916
  return override.length > 0 ? override : EMPTY_STATE_FOX_EMOJI;
7865
7917
  }, ...(ngDevMode ? [{ debugName: "resolvedEmojiSrc" }] : /* istanbul ignore next */ []));
7866
7918
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiEmptyState, deps: [], target: i0.ɵɵFactoryTarget.Component });
7867
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiEmptyState, isStandalone: true, selector: "sui-empty-state", inputs: { emoji: { classPropertyName: "emoji", publicName: "emoji", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClicked: "actionClicked" }, host: { properties: { "attr.title": "null" } }, ngImport: i0, template: "<div class=\"sui-empty-state__illustration\">\n <sui-emoji\n class=\"sui-empty-state__emoji\"\n size=\"full\"\n [src]=\"resolvedEmojiSrc()\"\n [ariaLabel]=\"title()\"\n />\n</div>\n\n<h3 class=\"sui-empty-state__title\">{{ title() }}</h3>\n\n@if (subtitle()) {\n <p class=\"sui-empty-state__subtitle\">{{ subtitle() }}</p>\n}\n\n@if (actionCfg(); as action) {\n @if (action.route) {\n <sui-button variant=\"filled\" color=\"primary\" size=\"medium\" [routerLink]=\"action.route\">\n {{ action.label }}\n </sui-button>\n } @else {\n <sui-button variant=\"filled\" color=\"primary\" size=\"medium\" type=\"button\" (click)=\"actionClicked.emit()\">\n {{ action.label }}\n </sui-button>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;max-width:460px;margin:0 auto;text-align:center;font-family:var(--sui-font-sans, var(--font-sans, sans-serif))}.sui-empty-state__illustration{position:relative;width:120px;height:120px;margin-bottom:24px}.sui-empty-state__emoji{width:120px;height:120px}.sui-empty-state__title{margin:0 0 8px;font-size:18px;font-weight:600;line-height:24px;letter-spacing:-.015em;color:var(--sui-text-strong-950, #171717)}.sui-empty-state__subtitle{margin:0 0 24px;font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-sub-600, #5c5c5c);max-width:320px}@media(max-width:767px){:host{padding:32px 20px}}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SuiButton, selector: "sui-button", inputs: ["variant", "color", "size", "onlyIcon", "disabled", "leftIcon", "rightIcon", "type"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7919
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiEmptyState, isStandalone: true, selector: "sui-empty-state", inputs: { emoji: { classPropertyName: "emoji", publicName: "emoji", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClicked: "actionClicked" }, host: { properties: { "attr.title": "null" } }, ngImport: i0, template: "<div class=\"sui-empty-state__illustration\">\n <sui-emoji\n class=\"sui-empty-state__emoji\"\n size=\"full\"\n [src]=\"resolvedEmojiSrc()\"\n [ariaLabel]=\"title()\"\n />\n</div>\n\n<h3 class=\"sui-empty-state__title\">{{ title() }}</h3>\n\n@if (subtitle()) {\n <p class=\"sui-empty-state__subtitle\">{{ subtitle() }}</p>\n}\n\n@if (actionCfg(); as action) {\n @if (action.route) {\n <sui-button variant=\"filled\" color=\"primary\" size=\"medium\" [routerLink]=\"action.route\">\n {{ action.label }}\n </sui-button>\n } @else {\n <sui-button variant=\"filled\" color=\"primary\" size=\"medium\" type=\"button\" (click)=\"actionClicked.emit()\">\n {{ action.label }}\n </sui-button>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;max-width:460px;margin:0 auto;text-align:center;font-family:var(--sui-font-sans, var(--font-sans, sans-serif))}.sui-empty-state__illustration{position:relative;width:120px;height:120px;margin-bottom:24px}.sui-empty-state__emoji{width:120px;height:120px}.sui-empty-state__title{margin:0 0 8px;font-size:18px;font-weight:600;line-height:24px;letter-spacing:-.015em;color:var(--sui-text-strong-950, #171717)}.sui-empty-state__subtitle{margin:0 0 24px;font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-sub-600, #5c5c5c);max-width:320px}@media(max-width:767px){:host{padding:32px 20px}}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SuiButton, selector: "sui-button", inputs: ["variant", "color", "size", "onlyIcon", "disabled", "leftIcon", "rightIcon", "type"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel", "animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7868
7920
  }
7869
7921
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiEmptyState, decorators: [{
7870
7922
  type: Component,
@@ -13267,7 +13319,7 @@ class SuiRadioCard {
13267
13319
  useExisting: forwardRef(() => SuiRadioCard),
13268
13320
  multi: true,
13269
13321
  },
13270
- ], ngImport: i0, template: "<!-- Leading slot \u2014 solo basic / left-icon / avatar (Figma 515:4356/4365) -->\n@if (type() === 'left-icon') {\n <div class=\"sui-radio-card__leading sui-radio-card__leading--icon\" aria-hidden=\"true\">\n @if (icon()) {\n <sui-icon [name]=\"icon()!\" [size]=\"20\" />\n } @else if (emoji()) {\n <sui-emoji [name]=\"emoji()\" size=\"md\" />\n } @else if (iconSrc()) {\n <sui-emoji [src]=\"iconSrc()\" size=\"full\" />\n }\n </div>\n} @else if (type() === 'avatar') {\n <!-- sui-avatar maneja fallback autom\u00E1tico a iniciales si la imagen falla. -->\n <sui-avatar\n class=\"sui-radio-card__leading sui-radio-card__leading--avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n} @else if (type() === 'card-provider') {\n <!-- Figma 515:4374 \u2014 tile 32\u00D724 rounded-4 con el logo del provider. -->\n <div class=\"sui-radio-card__leading sui-radio-card__leading--provider\" aria-hidden=\"true\">\n @if (imageUrl()) {\n <img [src]=\"imageUrl()\" alt=\"\" />\n }\n </div>\n} @else if (type() === 'brand') {\n <!-- Figma 515:4383 \u2014 brand logo 40px (cat\u00E1logo sui-brand-logo o imageUrl). -->\n @if (brand(); as b) {\n <sui-brand-logo class=\"sui-radio-card__leading sui-radio-card__leading--brand\" [company]=\"b\" size=\"xl\" />\n } @else if (imageUrl()) {\n <div class=\"sui-radio-card__leading sui-radio-card__leading--brand\" aria-hidden=\"true\">\n <img [src]=\"imageUrl()\" alt=\"\" />\n </div>\n }\n} @else if (type() === 'company') {\n <!-- Figma 515:4392 \u2014 logo circular 40\u00D740 radius-full. -->\n <div class=\"sui-radio-card__leading sui-radio-card__leading--company\" aria-hidden=\"true\">\n @if (imageUrl()) {\n <img [src]=\"imageUrl()\" alt=\"\" />\n } @else {\n <sui-avatar size=\"lg\" [initials]=\"initialsFromLabel()\" />\n }\n </div>\n}\n\n<!-- Texto: Title row + description -->\n<div class=\"sui-radio-card__text\">\n <div class=\"sui-radio-card__title\">\n @if (label()) {\n <span class=\"sui-radio-card__label\">{{ label() }}</span>\n }\n @if (sublabel()) {\n <span class=\"sui-radio-card__sublabel\">{{ sublabel() }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description()) {\n <p class=\"sui-radio-card__description\">{{ description() }}</p>\n }\n</div>\n\n<!-- Radio dot 20\u00D720 (Figma 515:4243 \u2192 515:4244 bg + 515:4245 box) -->\n<span class=\"sui-radio-card__radio\" aria-hidden=\"true\" [style.width.px]=\"radioPx()\" [style.height.px]=\"radioPx()\">\n <span class=\"sui-radio-card__radio-bg\"></span>\n <span class=\"sui-radio-card__radio-box\"></span>\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;box-sizing:border-box;align-items:flex-start;gap:14px;padding:16px;width:100%;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);border-radius:var(--sui-radius-12, 12px);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;font-family:var(--sui-font-sans, var(--font-sans, sans-serif));touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),transform var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked])){background:var(--sui-bg-weak-50, #f7f7f7);border-color:transparent;box-shadow:none}}:host([data-sui-checked]){border-color:var(--sui-primary-base, #fa7319);box-shadow:none;background:var(--sui-bg-white-0, #fff)}@media(hover:hover)and (pointer:fine){:host([data-sui-checked]:hover:not([data-sui-disabled])){background:var(--sui-bg-weak-50, #f7f7f7)}}:host(:focus-visible:not([data-sui-disabled])){border-color:var(--sui-primary-base, #fa7319);box-shadow:0 0 0 3px color-mix(in oklab,var(--sui-primary-base, #fa7319) 16%,transparent)}:host([data-sui-disabled]){cursor:not-allowed;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:none}:host([data-sui-disabled]) .sui-radio-card__label{color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-disabled]) .sui-radio-card__sublabel,:host([data-sui-disabled]) .sui-radio-card__description{color:var(--sui-text-soft-400, #a3a3a3)}:host([data-sui-disabled]) .sui-radio-card__badge{background:transparent;border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-disabled-300, #d1d1d1)}:host([data-sui-disabled]) .sui-radio-card__radio-bg,:host([data-sui-disabled][data-sui-checked]) .sui-radio-card__radio-bg{background:var(--sui-bg-soft-200, #ebebeb)}:host([data-sui-disabled]:not([data-sui-checked])) .sui-radio-card__radio-box{display:none}:host(:active:not([data-sui-disabled])){transform:scale(.99)}.sui-radio-card__leading{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-radio-card__leading--icon{box-sizing:border-box;width:40px;height:40px;padding:10px;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-leading-fill]) .sui-radio-card__leading--icon{padding:0;border:none;background:none;box-shadow:none;border-radius:0;overflow:visible;display:flex;align-items:center;justify-content:center}:host([data-sui-leading-fill]) .sui-radio-card__leading--icon sui-emoji{display:block;width:100%;height:100%}:host([data-sui-type=avatar]) .sui-radio-card__leading--avatar{width:40px;height:40px}.sui-radio-card__text{display:flex;flex-direction:column;gap:4px;align-items:flex-start;flex:1 1 auto;min-width:0;align-self:stretch}.sui-radio-card__text:not(:has(.sui-radio-card__description)){justify-content:center}.sui-radio-card__title{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.sui-radio-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-strong-950, #171717);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__radio{position:relative;flex-shrink:0;width:20px;height:20px;align-self:flex-start}.sui-radio-card__radio-bg{position:absolute;inset:10%;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-soft-200, #ebebeb);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-radio-card__radio-box{position:absolute;inset:17.5%;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);box-shadow:0 2px 4px -2px #1b1c1d1f;transition:inset var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked])) .sui-radio-card__radio-bg{background:var(--sui-bg-sub-300, #d1d1d1)}}:host([data-sui-checked]) .sui-radio-card__radio-bg{background:var(--sui-primary-base, #fa7319)}:host([data-sui-checked]) .sui-radio-card__radio-box{inset:30%;box-shadow:none;background:var(--sui-static-white, #ffffff)}.sui-radio-card__leading--provider{width:32px;height:24px;border-radius:4px;overflow:hidden;flex-shrink:0}.sui-radio-card__leading--provider img{width:100%;height:100%;object-fit:cover;display:block}.sui-radio-card__leading--brand{width:40px;height:40px;flex-shrink:0}.sui-radio-card__leading--brand img{width:100%;height:100%;object-fit:cover;border-radius:999px;display:block}.sui-radio-card__leading--company{width:40px;height:40px;border-radius:var(--sui-radius-full, 999px);overflow:hidden;flex-shrink:0}.sui-radio-card__leading--company img{width:100%;height:100%;object-fit:cover;display:block}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiBrandLogo, selector: "sui-brand-logo", inputs: ["company", "variant", "size", "href", "target", "rel", "disabled", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13322
+ ], ngImport: i0, template: "<!-- Leading slot \u2014 solo basic / left-icon / avatar (Figma 515:4356/4365) -->\n@if (type() === 'left-icon') {\n <div class=\"sui-radio-card__leading sui-radio-card__leading--icon\" aria-hidden=\"true\">\n @if (icon()) {\n <sui-icon [name]=\"icon()!\" [size]=\"20\" />\n } @else if (emoji()) {\n <sui-emoji [name]=\"emoji()\" size=\"md\" />\n } @else if (iconSrc()) {\n <sui-emoji [src]=\"iconSrc()\" size=\"full\" />\n }\n </div>\n} @else if (type() === 'avatar') {\n <!-- sui-avatar maneja fallback autom\u00E1tico a iniciales si la imagen falla. -->\n <sui-avatar\n class=\"sui-radio-card__leading sui-radio-card__leading--avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n} @else if (type() === 'card-provider') {\n <!-- Figma 515:4374 \u2014 tile 32\u00D724 rounded-4 con el logo del provider. -->\n <div class=\"sui-radio-card__leading sui-radio-card__leading--provider\" aria-hidden=\"true\">\n @if (imageUrl()) {\n <img [src]=\"imageUrl()\" alt=\"\" />\n }\n </div>\n} @else if (type() === 'brand') {\n <!-- Figma 515:4383 \u2014 brand logo 40px (cat\u00E1logo sui-brand-logo o imageUrl). -->\n @if (brand(); as b) {\n <sui-brand-logo class=\"sui-radio-card__leading sui-radio-card__leading--brand\" [company]=\"b\" size=\"xl\" />\n } @else if (imageUrl()) {\n <div class=\"sui-radio-card__leading sui-radio-card__leading--brand\" aria-hidden=\"true\">\n <img [src]=\"imageUrl()\" alt=\"\" />\n </div>\n }\n} @else if (type() === 'company') {\n <!-- Figma 515:4392 \u2014 logo circular 40\u00D740 radius-full. -->\n <div class=\"sui-radio-card__leading sui-radio-card__leading--company\" aria-hidden=\"true\">\n @if (imageUrl()) {\n <img [src]=\"imageUrl()\" alt=\"\" />\n } @else {\n <sui-avatar size=\"lg\" [initials]=\"initialsFromLabel()\" />\n }\n </div>\n}\n\n<!-- Texto: Title row + description -->\n<div class=\"sui-radio-card__text\">\n <div class=\"sui-radio-card__title\">\n @if (label()) {\n <span class=\"sui-radio-card__label\">{{ label() }}</span>\n }\n @if (sublabel()) {\n <span class=\"sui-radio-card__sublabel\">{{ sublabel() }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description()) {\n <p class=\"sui-radio-card__description\">{{ description() }}</p>\n }\n</div>\n\n<!-- Radio dot 20\u00D720 (Figma 515:4243 \u2192 515:4244 bg + 515:4245 box) -->\n<span class=\"sui-radio-card__radio\" aria-hidden=\"true\" [style.width.px]=\"radioPx()\" [style.height.px]=\"radioPx()\">\n <span class=\"sui-radio-card__radio-bg\"></span>\n <span class=\"sui-radio-card__radio-box\"></span>\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;box-sizing:border-box;align-items:flex-start;gap:14px;padding:16px;width:100%;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);border-radius:var(--sui-radius-12, 12px);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;font-family:var(--sui-font-sans, var(--font-sans, sans-serif));touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),transform var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked])){background:var(--sui-bg-weak-50, #f7f7f7);border-color:transparent;box-shadow:none}}:host([data-sui-checked]){border-color:var(--sui-primary-base, #fa7319);box-shadow:none;background:var(--sui-bg-white-0, #fff)}@media(hover:hover)and (pointer:fine){:host([data-sui-checked]:hover:not([data-sui-disabled])){background:var(--sui-bg-weak-50, #f7f7f7)}}:host(:focus-visible:not([data-sui-disabled])){border-color:var(--sui-primary-base, #fa7319);box-shadow:0 0 0 3px color-mix(in oklab,var(--sui-primary-base, #fa7319) 16%,transparent)}:host([data-sui-disabled]){cursor:not-allowed;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:none}:host([data-sui-disabled]) .sui-radio-card__label{color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-disabled]) .sui-radio-card__sublabel,:host([data-sui-disabled]) .sui-radio-card__description{color:var(--sui-text-soft-400, #a3a3a3)}:host([data-sui-disabled]) .sui-radio-card__badge{background:transparent;border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-disabled-300, #d1d1d1)}:host([data-sui-disabled]) .sui-radio-card__radio-bg,:host([data-sui-disabled][data-sui-checked]) .sui-radio-card__radio-bg{background:var(--sui-bg-soft-200, #ebebeb)}:host([data-sui-disabled]:not([data-sui-checked])) .sui-radio-card__radio-box{display:none}:host(:active:not([data-sui-disabled])){transform:scale(.99)}.sui-radio-card__leading{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-radio-card__leading--icon{box-sizing:border-box;width:40px;height:40px;padding:10px;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);box-shadow:var(--sui-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));color:var(--sui-text-sub-600, #5c5c5c)}:host([data-sui-leading-fill]) .sui-radio-card__leading--icon{padding:0;border:none;background:none;box-shadow:none;border-radius:0;overflow:visible;display:flex;align-items:center;justify-content:center}:host([data-sui-leading-fill]) .sui-radio-card__leading--icon sui-emoji{display:block;width:100%;height:100%}:host([data-sui-type=avatar]) .sui-radio-card__leading--avatar{width:40px;height:40px}.sui-radio-card__text{display:flex;flex-direction:column;gap:4px;align-items:flex-start;flex:1 1 auto;min-width:0;align-self:stretch}.sui-radio-card__text:not(:has(.sui-radio-card__description)){justify-content:center}.sui-radio-card__title{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.sui-radio-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-strong-950, #171717);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600, #5c5c5c);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-radio-card__radio{position:relative;flex-shrink:0;width:20px;height:20px;align-self:flex-start}.sui-radio-card__radio-bg{position:absolute;inset:10%;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-soft-200, #ebebeb);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-radio-card__radio-box{position:absolute;inset:17.5%;border-radius:var(--sui-radius-full, 999px);background:var(--sui-bg-white-0, #fff);box-shadow:0 2px 4px -2px #1b1c1d1f;transition:inset var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}@media(hover:hover)and (pointer:fine){:host(:hover:not([data-sui-disabled]):not([data-sui-checked])) .sui-radio-card__radio-bg{background:var(--sui-bg-sub-300, #d1d1d1)}}:host([data-sui-checked]) .sui-radio-card__radio-bg{background:var(--sui-primary-base, #fa7319)}:host([data-sui-checked]) .sui-radio-card__radio-box{inset:30%;box-shadow:none;background:var(--sui-static-white, #ffffff)}.sui-radio-card__leading--provider{width:32px;height:24px;border-radius:4px;overflow:hidden;flex-shrink:0}.sui-radio-card__leading--provider img{width:100%;height:100%;object-fit:cover;display:block}.sui-radio-card__leading--brand{width:40px;height:40px;flex-shrink:0}.sui-radio-card__leading--brand img{width:100%;height:100%;object-fit:cover;border-radius:999px;display:block}.sui-radio-card__leading--company{width:40px;height:40px;border-radius:var(--sui-radius-full, 999px);overflow:hidden;flex-shrink:0}.sui-radio-card__leading--company img{width:100%;height:100%;object-fit:cover;display:block}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel", "animated"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiBrandLogo, selector: "sui-brand-logo", inputs: ["company", "variant", "size", "href", "target", "rel", "disabled", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13271
13323
  }
13272
13324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiRadioCard, decorators: [{
13273
13325
  type: Component,
@@ -13868,7 +13920,7 @@ class SuiRating {
13868
13920
  useExisting: forwardRef(() => SuiRating),
13869
13921
  multi: true,
13870
13922
  },
13871
- ], ngImport: i0, template: "@switch (appearance()) {\n\n @case ('inline') {\n @if (alignment() === 'vertical') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--vertical\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else if (alignment() === 'horizontal') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--horizontal\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else {\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n }\n }\n\n @case ('cell') {\n <div class=\"sui-rating__cells\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n }\n\n @case ('bar') {\n <ng-container *ngTemplateOutlet=\"barRow\" />\n }\n\n @case ('bar-area') {\n <div class=\"sui-rating__area\">\n <ng-container *ngTemplateOutlet=\"barRow\" />\n <div class=\"sui-rating__area-input\">\n @if (readonly()) {\n <p class=\"sui-rating__area-text\" [class.sui-rating__area-text--placeholder]=\"!reason()\">\n {{ reason() || reasonPlaceholder() }}\n </p>\n } @else {\n <textarea\n class=\"sui-rating__area-textarea\"\n [rows]=\"reasonRows()\"\n [value]=\"reason()\"\n [placeholder]=\"reasonPlaceholder()\"\n [disabled]=\"disabledByForm()\"\n [attr.aria-label]=\"reasonPlaceholder()\"\n (input)=\"onReasonInput($event)\"\n (blur)=\"onTouched()\"></textarea>\n }\n </div>\n </div>\n }\n}\n\n<!-- Bar row (5 cells horizontal). Reusada por appearance='bar' y 'bar-area'. -->\n<ng-template #barRow>\n <div class=\"sui-rating__bar\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n @if (readonly()) {\n <div\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </button>\n }\n }\n </div>\n</ng-template>\n\n<!-- Single icon (inline appearance). -->\n<ng-template #iconCell let-cell>\n @if (readonly()) {\n <span\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <sui-icon [name]=\"cellIconName(cell.fill)\" [size]=\"iconPx()\" />\n </span>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (mouseleave)=\"onCellLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <sui-icon [name]=\"cellIconName(cell.fill === 'empty' ? 'empty' : 'full')\" [size]=\"iconPx()\" />\n </button>\n }\n</ng-template>\n\n<!-- Cell content (bar / bar-area appearance): seg\u00FAn type.\n star/heart usan barIconName(cellState) para distinguir:\n default \u2192 outline | hover \u2192 relleno gris (Empty Filled) | selected \u2192 relleno color. -->\n<ng-template #cellContent let-cell>\n @switch (type()) {\n @case ('star') {\n <sui-icon [name]=\"barIconName('star', cell.cellState)\" [size]=\"20\" />\n }\n @case ('heart') {\n <sui-icon [name]=\"barIconName('heart', cell.cellState)\" [size]=\"20\" />\n }\n @case ('emoji') {\n <sui-emoji class=\"sui-rating__emoji\" [name]=\"cell.emoji\" size=\"sm\" />\n }\n @case ('number') {\n <span class=\"sui-rating__number\">{{ cell.index }}</span>\n }\n }\n</ng-template>\n\n<!-- Meta (value + reviewCount + link), inline appearance only -->\n<ng-template #metaContent>\n @if (showValue()) {\n <span class=\"sui-rating__value\">{{ valueLabel() }}</span>\n }\n @if (showValue() && reviewCount() !== null) {\n <span class=\"sui-rating__sep\" aria-hidden=\"true\">\u2219</span>\n }\n @if (reviewCount() !== null) {\n <span class=\"sui-rating__count\">{{ reviewCountLabel() }} Ratings</span>\n }\n @if (reviewLink(); as link) {\n @if (link.href) {\n <a class=\"sui-rating__link\" [suiHref]=\"link.href\">{{ link.label }}</a>\n } @else {\n <button type=\"button\" class=\"sui-rating__link\">{{ link.label }}</button>\n }\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);align-items:center;gap:2px}:host([data-disabled]){opacity:.5;pointer-events:none}:host([data-appearance=inline][data-alignment=inline]){flex-direction:row;flex-wrap:nowrap}:host([data-appearance=inline][data-alignment=vertical]){flex-direction:column;align-items:flex-start;gap:8px}:host([data-appearance=inline][data-alignment=horizontal]){flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.sui-rating__icons{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.sui-rating__icon{appearance:none;border:0;margin:0;padding:0;background:transparent;font:inherit;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sui-stroke-sub-300, #d1d1d1);transition:color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=star]) .sui-rating__icon[data-fill=full],:host([data-type=star]) .sui-rating__icon[data-fill=half]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__icon[data-fill=full],:host([data-type=heart]) .sui-rating__icon[data-fill=half]{color:var(--sui-state-error-base, #fb3748)}button.sui-rating__icon{cursor:pointer;border-radius:4px}button.sui-rating__icon:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-rating__meta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.sui-rating__meta--vertical{align-self:flex-start}.sui-rating__value,.sui-rating__count{font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap}.sui-rating__sep{color:var(--sui-text-strong-950);margin:0 2px}.sui-rating__link{appearance:none;border:0;background:transparent;font:inherit;padding:0;margin:0;cursor:pointer;font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-decoration:underline;text-decoration-skip-ink:none;text-underline-offset:2px;white-space:nowrap}.sui-rating__link:hover{color:var(--sui-text-strong-950)}.sui-rating__link:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:2px}:host([data-appearance=cell]){display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:8px}.sui-rating__cells{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}:host([data-appearance=cell]) .sui-rating__icon{padding:12px;border-radius:var(--sui-radius-10, 10px);border:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));box-sizing:border-box;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-appearance=cell]) .sui-rating__icon[data-cell-state=hover]{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-appearance=bar]){display:inline-block;align-items:stretch}:host([data-appearance=bar-area]){display:block;width:100%}.sui-rating__bar{display:inline-flex;align-items:stretch;border:1px solid var(--sui-stroke-soft-200);border-radius:0;overflow:hidden;background:var(--sui-bg-white-0)}:host([data-appearance=bar-area]) .sui-rating__bar{display:flex;width:100%;border:0;border-bottom:1px solid var(--sui-stroke-soft-200);border-radius:0;background:transparent}.sui-rating__bar-cell{appearance:none;margin:0;font:inherit;flex-shrink:0;width:64px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 4px;background:var(--sui-bg-white-0);border:0;border-left:1px solid var(--sui-stroke-soft-200);cursor:default;color:var(--sui-stroke-sub-300);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-rating__bar-cell:first-child{border-left:0}:host([data-appearance=bar-area]) .sui-rating__bar-cell{flex:1 0 0;width:auto;min-width:0;background:transparent}button.sui-rating__bar-cell{cursor:pointer}button.sui-rating__bar-cell:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:-2px}:host([data-type=star]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-state-error-base, #fb3748)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=hover] .sui-rating__number,:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__number{color:var(--sui-text-strong-950)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected],:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected]{background:var(--sui-bg-weak-50)}.sui-rating__number{font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-align:center;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__emoji{display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.5);opacity:.55;transition:filter var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),opacity var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__emoji{filter:grayscale(0);opacity:1}.sui-rating__area{display:flex;flex-direction:column;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-12, 12px);overflow:hidden}.sui-rating__area-input{display:flex;flex:1 0 0;align-items:flex-start;justify-content:flex-start;padding:12px;background:var(--sui-bg-white-0)}.sui-rating__area-textarea{appearance:none;display:block;width:100%;min-height:72px;border:0;margin:0;padding:0;background:transparent;resize:none;font-family:var(--sui-font-sans);font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-textarea::placeholder{color:var(--sui-text-soft-400)}.sui-rating__area-textarea:focus-visible{outline:none}.sui-rating__area-text{width:100%;min-height:72px;margin:0;font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-text--placeholder{color:var(--sui-text-soft-400)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13923
+ ], ngImport: i0, template: "@switch (appearance()) {\n\n @case ('inline') {\n @if (alignment() === 'vertical') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--vertical\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else if (alignment() === 'horizontal') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--horizontal\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else {\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n }\n }\n\n @case ('cell') {\n <div class=\"sui-rating__cells\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n }\n\n @case ('bar') {\n <ng-container *ngTemplateOutlet=\"barRow\" />\n }\n\n @case ('bar-area') {\n <div class=\"sui-rating__area\">\n <ng-container *ngTemplateOutlet=\"barRow\" />\n <div class=\"sui-rating__area-input\">\n @if (readonly()) {\n <p class=\"sui-rating__area-text\" [class.sui-rating__area-text--placeholder]=\"!reason()\">\n {{ reason() || reasonPlaceholder() }}\n </p>\n } @else {\n <textarea\n class=\"sui-rating__area-textarea\"\n [rows]=\"reasonRows()\"\n [value]=\"reason()\"\n [placeholder]=\"reasonPlaceholder()\"\n [disabled]=\"disabledByForm()\"\n [attr.aria-label]=\"reasonPlaceholder()\"\n (input)=\"onReasonInput($event)\"\n (blur)=\"onTouched()\"></textarea>\n }\n </div>\n </div>\n }\n}\n\n<!-- Bar row (5 cells horizontal). Reusada por appearance='bar' y 'bar-area'. -->\n<ng-template #barRow>\n <div class=\"sui-rating__bar\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n @if (readonly()) {\n <div\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </button>\n }\n }\n </div>\n</ng-template>\n\n<!-- Single icon (inline appearance). -->\n<ng-template #iconCell let-cell>\n @if (readonly()) {\n <span\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <sui-icon [name]=\"cellIconName(cell.fill)\" [size]=\"iconPx()\" />\n </span>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (mouseleave)=\"onCellLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <sui-icon [name]=\"cellIconName(cell.fill === 'empty' ? 'empty' : 'full')\" [size]=\"iconPx()\" />\n </button>\n }\n</ng-template>\n\n<!-- Cell content (bar / bar-area appearance): seg\u00FAn type.\n star/heart usan barIconName(cellState) para distinguir:\n default \u2192 outline | hover \u2192 relleno gris (Empty Filled) | selected \u2192 relleno color. -->\n<ng-template #cellContent let-cell>\n @switch (type()) {\n @case ('star') {\n <sui-icon [name]=\"barIconName('star', cell.cellState)\" [size]=\"20\" />\n }\n @case ('heart') {\n <sui-icon [name]=\"barIconName('heart', cell.cellState)\" [size]=\"20\" />\n }\n @case ('emoji') {\n <!-- Est\u00E1tico a prop\u00F3sito: son cinco a la vez y el animado pesa ~1 MB\n cada uno, en bucle infinito (ver sui-emoji-static.ts). -->\n <sui-emoji class=\"sui-rating__emoji\" [name]=\"cell.emoji\" size=\"sm\" [animated]=\"false\" />\n }\n @case ('number') {\n <span class=\"sui-rating__number\">{{ cell.index }}</span>\n }\n }\n</ng-template>\n\n<!-- Meta (value + reviewCount + link), inline appearance only -->\n<ng-template #metaContent>\n @if (showValue()) {\n <span class=\"sui-rating__value\">{{ valueLabel() }}</span>\n }\n @if (showValue() && reviewCount() !== null) {\n <span class=\"sui-rating__sep\" aria-hidden=\"true\">\u2219</span>\n }\n @if (reviewCount() !== null) {\n <span class=\"sui-rating__count\">{{ reviewCountLabel() }} Ratings</span>\n }\n @if (reviewLink(); as link) {\n @if (link.href) {\n <a class=\"sui-rating__link\" [suiHref]=\"link.href\">{{ link.label }}</a>\n } @else {\n <button type=\"button\" class=\"sui-rating__link\">{{ link.label }}</button>\n }\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);align-items:center;gap:2px}:host([data-disabled]){opacity:.5;pointer-events:none}:host([data-appearance=inline][data-alignment=inline]){flex-direction:row;flex-wrap:nowrap}:host([data-appearance=inline][data-alignment=vertical]){flex-direction:column;align-items:flex-start;gap:8px}:host([data-appearance=inline][data-alignment=horizontal]){flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.sui-rating__icons{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.sui-rating__icon{appearance:none;border:0;margin:0;padding:0;background:transparent;font:inherit;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sui-stroke-sub-300, #d1d1d1);transition:color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=star]) .sui-rating__icon[data-fill=full],:host([data-type=star]) .sui-rating__icon[data-fill=half]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__icon[data-fill=full],:host([data-type=heart]) .sui-rating__icon[data-fill=half]{color:var(--sui-state-error-base, #fb3748)}button.sui-rating__icon{cursor:pointer;border-radius:4px}button.sui-rating__icon:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-rating__meta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.sui-rating__meta--vertical{align-self:flex-start}.sui-rating__value,.sui-rating__count{font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap}.sui-rating__sep{color:var(--sui-text-strong-950);margin:0 2px}.sui-rating__link{appearance:none;border:0;background:transparent;font:inherit;padding:0;margin:0;cursor:pointer;font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-decoration:underline;text-decoration-skip-ink:none;text-underline-offset:2px;white-space:nowrap}.sui-rating__link:hover{color:var(--sui-text-strong-950)}.sui-rating__link:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:2px}:host([data-appearance=cell]){display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:8px}.sui-rating__cells{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}:host([data-appearance=cell]) .sui-rating__icon{padding:12px;border-radius:var(--sui-radius-10, 10px);border:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));box-sizing:border-box;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-appearance=cell]) .sui-rating__icon[data-cell-state=hover]{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-appearance=bar]){display:inline-block;align-items:stretch}:host([data-appearance=bar-area]){display:block;width:100%}.sui-rating__bar{display:inline-flex;align-items:stretch;border:1px solid var(--sui-stroke-soft-200);border-radius:0;overflow:hidden;background:var(--sui-bg-white-0)}:host([data-appearance=bar-area]) .sui-rating__bar{display:flex;width:100%;border:0;border-bottom:1px solid var(--sui-stroke-soft-200);border-radius:0;background:transparent}.sui-rating__bar-cell{appearance:none;margin:0;font:inherit;flex-shrink:0;width:64px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 4px;background:var(--sui-bg-white-0);border:0;border-left:1px solid var(--sui-stroke-soft-200);cursor:default;color:var(--sui-stroke-sub-300);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-rating__bar-cell:first-child{border-left:0}:host([data-appearance=bar-area]) .sui-rating__bar-cell{flex:1 0 0;width:auto;min-width:0;background:transparent}button.sui-rating__bar-cell{cursor:pointer}button.sui-rating__bar-cell:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:-2px}:host([data-type=star]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-state-error-base, #fb3748)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=hover] .sui-rating__number,:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__number{color:var(--sui-text-strong-950)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected],:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected]{background:var(--sui-bg-weak-50)}.sui-rating__number{font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-align:center;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__emoji{display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.5);opacity:.55;transition:filter var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),opacity var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__emoji{filter:grayscale(0);opacity:1}.sui-rating__area{display:flex;flex-direction:column;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-12, 12px);overflow:hidden}.sui-rating__area-input{display:flex;flex:1 0 0;align-items:flex-start;justify-content:flex-start;padding:12px;background:var(--sui-bg-white-0)}.sui-rating__area-textarea{appearance:none;display:block;width:100%;min-height:72px;border:0;margin:0;padding:0;background:transparent;resize:none;font-family:var(--sui-font-sans);font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-textarea::placeholder{color:var(--sui-text-soft-400)}.sui-rating__area-textarea:focus-visible{outline:none}.sui-rating__area-text{width:100%;min-height:72px;margin:0;font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-text--placeholder{color:var(--sui-text-soft-400)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel", "animated"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13872
13924
  }
13873
13925
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiRating, decorators: [{
13874
13926
  type: Component,
@@ -13887,7 +13939,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
13887
13939
  '[attr.aria-label]': 'ariaLabel()',
13888
13940
  '[attr.aria-readonly]': '!isInteractive() ? "true" : null',
13889
13941
  '[attr.data-disabled]': 'disabledByForm() ? "" : null',
13890
- }, template: "@switch (appearance()) {\n\n @case ('inline') {\n @if (alignment() === 'vertical') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--vertical\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else if (alignment() === 'horizontal') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--horizontal\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else {\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n }\n }\n\n @case ('cell') {\n <div class=\"sui-rating__cells\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n }\n\n @case ('bar') {\n <ng-container *ngTemplateOutlet=\"barRow\" />\n }\n\n @case ('bar-area') {\n <div class=\"sui-rating__area\">\n <ng-container *ngTemplateOutlet=\"barRow\" />\n <div class=\"sui-rating__area-input\">\n @if (readonly()) {\n <p class=\"sui-rating__area-text\" [class.sui-rating__area-text--placeholder]=\"!reason()\">\n {{ reason() || reasonPlaceholder() }}\n </p>\n } @else {\n <textarea\n class=\"sui-rating__area-textarea\"\n [rows]=\"reasonRows()\"\n [value]=\"reason()\"\n [placeholder]=\"reasonPlaceholder()\"\n [disabled]=\"disabledByForm()\"\n [attr.aria-label]=\"reasonPlaceholder()\"\n (input)=\"onReasonInput($event)\"\n (blur)=\"onTouched()\"></textarea>\n }\n </div>\n </div>\n }\n}\n\n<!-- Bar row (5 cells horizontal). Reusada por appearance='bar' y 'bar-area'. -->\n<ng-template #barRow>\n <div class=\"sui-rating__bar\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n @if (readonly()) {\n <div\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </button>\n }\n }\n </div>\n</ng-template>\n\n<!-- Single icon (inline appearance). -->\n<ng-template #iconCell let-cell>\n @if (readonly()) {\n <span\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <sui-icon [name]=\"cellIconName(cell.fill)\" [size]=\"iconPx()\" />\n </span>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (mouseleave)=\"onCellLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <sui-icon [name]=\"cellIconName(cell.fill === 'empty' ? 'empty' : 'full')\" [size]=\"iconPx()\" />\n </button>\n }\n</ng-template>\n\n<!-- Cell content (bar / bar-area appearance): seg\u00FAn type.\n star/heart usan barIconName(cellState) para distinguir:\n default \u2192 outline | hover \u2192 relleno gris (Empty Filled) | selected \u2192 relleno color. -->\n<ng-template #cellContent let-cell>\n @switch (type()) {\n @case ('star') {\n <sui-icon [name]=\"barIconName('star', cell.cellState)\" [size]=\"20\" />\n }\n @case ('heart') {\n <sui-icon [name]=\"barIconName('heart', cell.cellState)\" [size]=\"20\" />\n }\n @case ('emoji') {\n <sui-emoji class=\"sui-rating__emoji\" [name]=\"cell.emoji\" size=\"sm\" />\n }\n @case ('number') {\n <span class=\"sui-rating__number\">{{ cell.index }}</span>\n }\n }\n</ng-template>\n\n<!-- Meta (value + reviewCount + link), inline appearance only -->\n<ng-template #metaContent>\n @if (showValue()) {\n <span class=\"sui-rating__value\">{{ valueLabel() }}</span>\n }\n @if (showValue() && reviewCount() !== null) {\n <span class=\"sui-rating__sep\" aria-hidden=\"true\">\u2219</span>\n }\n @if (reviewCount() !== null) {\n <span class=\"sui-rating__count\">{{ reviewCountLabel() }} Ratings</span>\n }\n @if (reviewLink(); as link) {\n @if (link.href) {\n <a class=\"sui-rating__link\" [suiHref]=\"link.href\">{{ link.label }}</a>\n } @else {\n <button type=\"button\" class=\"sui-rating__link\">{{ link.label }}</button>\n }\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);align-items:center;gap:2px}:host([data-disabled]){opacity:.5;pointer-events:none}:host([data-appearance=inline][data-alignment=inline]){flex-direction:row;flex-wrap:nowrap}:host([data-appearance=inline][data-alignment=vertical]){flex-direction:column;align-items:flex-start;gap:8px}:host([data-appearance=inline][data-alignment=horizontal]){flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.sui-rating__icons{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.sui-rating__icon{appearance:none;border:0;margin:0;padding:0;background:transparent;font:inherit;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sui-stroke-sub-300, #d1d1d1);transition:color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=star]) .sui-rating__icon[data-fill=full],:host([data-type=star]) .sui-rating__icon[data-fill=half]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__icon[data-fill=full],:host([data-type=heart]) .sui-rating__icon[data-fill=half]{color:var(--sui-state-error-base, #fb3748)}button.sui-rating__icon{cursor:pointer;border-radius:4px}button.sui-rating__icon:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-rating__meta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.sui-rating__meta--vertical{align-self:flex-start}.sui-rating__value,.sui-rating__count{font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap}.sui-rating__sep{color:var(--sui-text-strong-950);margin:0 2px}.sui-rating__link{appearance:none;border:0;background:transparent;font:inherit;padding:0;margin:0;cursor:pointer;font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-decoration:underline;text-decoration-skip-ink:none;text-underline-offset:2px;white-space:nowrap}.sui-rating__link:hover{color:var(--sui-text-strong-950)}.sui-rating__link:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:2px}:host([data-appearance=cell]){display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:8px}.sui-rating__cells{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}:host([data-appearance=cell]) .sui-rating__icon{padding:12px;border-radius:var(--sui-radius-10, 10px);border:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));box-sizing:border-box;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-appearance=cell]) .sui-rating__icon[data-cell-state=hover]{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-appearance=bar]){display:inline-block;align-items:stretch}:host([data-appearance=bar-area]){display:block;width:100%}.sui-rating__bar{display:inline-flex;align-items:stretch;border:1px solid var(--sui-stroke-soft-200);border-radius:0;overflow:hidden;background:var(--sui-bg-white-0)}:host([data-appearance=bar-area]) .sui-rating__bar{display:flex;width:100%;border:0;border-bottom:1px solid var(--sui-stroke-soft-200);border-radius:0;background:transparent}.sui-rating__bar-cell{appearance:none;margin:0;font:inherit;flex-shrink:0;width:64px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 4px;background:var(--sui-bg-white-0);border:0;border-left:1px solid var(--sui-stroke-soft-200);cursor:default;color:var(--sui-stroke-sub-300);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-rating__bar-cell:first-child{border-left:0}:host([data-appearance=bar-area]) .sui-rating__bar-cell{flex:1 0 0;width:auto;min-width:0;background:transparent}button.sui-rating__bar-cell{cursor:pointer}button.sui-rating__bar-cell:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:-2px}:host([data-type=star]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-state-error-base, #fb3748)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=hover] .sui-rating__number,:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__number{color:var(--sui-text-strong-950)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected],:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected]{background:var(--sui-bg-weak-50)}.sui-rating__number{font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-align:center;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__emoji{display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.5);opacity:.55;transition:filter var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),opacity var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__emoji{filter:grayscale(0);opacity:1}.sui-rating__area{display:flex;flex-direction:column;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-12, 12px);overflow:hidden}.sui-rating__area-input{display:flex;flex:1 0 0;align-items:flex-start;justify-content:flex-start;padding:12px;background:var(--sui-bg-white-0)}.sui-rating__area-textarea{appearance:none;display:block;width:100%;min-height:72px;border:0;margin:0;padding:0;background:transparent;resize:none;font-family:var(--sui-font-sans);font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-textarea::placeholder{color:var(--sui-text-soft-400)}.sui-rating__area-textarea:focus-visible{outline:none}.sui-rating__area-text{width:100%;min-height:72px;margin:0;font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-text--placeholder{color:var(--sui-text-soft-400)}\n"] }]
13942
+ }, template: "@switch (appearance()) {\n\n @case ('inline') {\n @if (alignment() === 'vertical') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--vertical\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else if (alignment() === 'horizontal') {\n <div class=\"sui-rating__icons\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n @if (showValue() || reviewCount() !== null || reviewLink()) {\n <div class=\"sui-rating__meta sui-rating__meta--horizontal\">\n <ng-container *ngTemplateOutlet=\"metaContent\" />\n </div>\n }\n } @else {\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n }\n }\n\n @case ('cell') {\n <div class=\"sui-rating__cells\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n <ng-container *ngTemplateOutlet=\"iconCell; context: { $implicit: cell }\" />\n }\n </div>\n }\n\n @case ('bar') {\n <ng-container *ngTemplateOutlet=\"barRow\" />\n }\n\n @case ('bar-area') {\n <div class=\"sui-rating__area\">\n <ng-container *ngTemplateOutlet=\"barRow\" />\n <div class=\"sui-rating__area-input\">\n @if (readonly()) {\n <p class=\"sui-rating__area-text\" [class.sui-rating__area-text--placeholder]=\"!reason()\">\n {{ reason() || reasonPlaceholder() }}\n </p>\n } @else {\n <textarea\n class=\"sui-rating__area-textarea\"\n [rows]=\"reasonRows()\"\n [value]=\"reason()\"\n [placeholder]=\"reasonPlaceholder()\"\n [disabled]=\"disabledByForm()\"\n [attr.aria-label]=\"reasonPlaceholder()\"\n (input)=\"onReasonInput($event)\"\n (blur)=\"onTouched()\"></textarea>\n }\n </div>\n </div>\n }\n}\n\n<!-- Bar row (5 cells horizontal). Reusada por appearance='bar' y 'bar-area'. -->\n<ng-template #barRow>\n <div class=\"sui-rating__bar\" (mouseleave)=\"onCellLeave()\">\n @for (cell of cells(); track cell.index) {\n @if (readonly()) {\n <div\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__bar-cell\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <ng-container *ngTemplateOutlet=\"cellContent; context: { $implicit: cell }\" />\n </button>\n }\n }\n </div>\n</ng-template>\n\n<!-- Single icon (inline appearance). -->\n<ng-template #iconCell let-cell>\n @if (readonly()) {\n <span\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\">\n <sui-icon [name]=\"cellIconName(cell.fill)\" [size]=\"iconPx()\" />\n </span>\n } @else {\n <button\n type=\"button\"\n class=\"sui-rating__icon\"\n [attr.data-fill]=\"cell.fill\"\n [attr.data-cell-state]=\"cell.cellState\"\n [attr.data-selected]=\"value() === cell.index\"\n [disabled]=\"disabledByForm()\"\n role=\"radio\"\n [attr.aria-checked]=\"value() === cell.index\"\n [attr.aria-label]=\"cell.index + ' de ' + max()\"\n (click)=\"onCellClick(cell.index)\"\n (mouseenter)=\"onCellEnter(cell.index)\"\n (mouseleave)=\"onCellLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <sui-icon [name]=\"cellIconName(cell.fill === 'empty' ? 'empty' : 'full')\" [size]=\"iconPx()\" />\n </button>\n }\n</ng-template>\n\n<!-- Cell content (bar / bar-area appearance): seg\u00FAn type.\n star/heart usan barIconName(cellState) para distinguir:\n default \u2192 outline | hover \u2192 relleno gris (Empty Filled) | selected \u2192 relleno color. -->\n<ng-template #cellContent let-cell>\n @switch (type()) {\n @case ('star') {\n <sui-icon [name]=\"barIconName('star', cell.cellState)\" [size]=\"20\" />\n }\n @case ('heart') {\n <sui-icon [name]=\"barIconName('heart', cell.cellState)\" [size]=\"20\" />\n }\n @case ('emoji') {\n <!-- Est\u00E1tico a prop\u00F3sito: son cinco a la vez y el animado pesa ~1 MB\n cada uno, en bucle infinito (ver sui-emoji-static.ts). -->\n <sui-emoji class=\"sui-rating__emoji\" [name]=\"cell.emoji\" size=\"sm\" [animated]=\"false\" />\n }\n @case ('number') {\n <span class=\"sui-rating__number\">{{ cell.index }}</span>\n }\n }\n</ng-template>\n\n<!-- Meta (value + reviewCount + link), inline appearance only -->\n<ng-template #metaContent>\n @if (showValue()) {\n <span class=\"sui-rating__value\">{{ valueLabel() }}</span>\n }\n @if (showValue() && reviewCount() !== null) {\n <span class=\"sui-rating__sep\" aria-hidden=\"true\">\u2219</span>\n }\n @if (reviewCount() !== null) {\n <span class=\"sui-rating__count\">{{ reviewCountLabel() }} Ratings</span>\n }\n @if (reviewLink(); as link) {\n @if (link.href) {\n <a class=\"sui-rating__link\" [suiHref]=\"link.href\">{{ link.label }}</a>\n } @else {\n <button type=\"button\" class=\"sui-rating__link\">{{ link.label }}</button>\n }\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);align-items:center;gap:2px}:host([data-disabled]){opacity:.5;pointer-events:none}:host([data-appearance=inline][data-alignment=inline]){flex-direction:row;flex-wrap:nowrap}:host([data-appearance=inline][data-alignment=vertical]){flex-direction:column;align-items:flex-start;gap:8px}:host([data-appearance=inline][data-alignment=horizontal]){flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.sui-rating__icons{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.sui-rating__icon{appearance:none;border:0;margin:0;padding:0;background:transparent;font:inherit;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sui-stroke-sub-300, #d1d1d1);transition:color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=star]) .sui-rating__icon[data-fill=full],:host([data-type=star]) .sui-rating__icon[data-fill=half]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__icon[data-fill=full],:host([data-type=heart]) .sui-rating__icon[data-fill=half]{color:var(--sui-state-error-base, #fb3748)}button.sui-rating__icon{cursor:pointer;border-radius:4px}button.sui-rating__icon:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-rating__meta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.sui-rating__meta--vertical{align-self:flex-start}.sui-rating__value,.sui-rating__count{font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap}.sui-rating__sep{color:var(--sui-text-strong-950);margin:0 2px}.sui-rating__link{appearance:none;border:0;background:transparent;font:inherit;padding:0;margin:0;cursor:pointer;font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-decoration:underline;text-decoration-skip-ink:none;text-underline-offset:2px;white-space:nowrap}.sui-rating__link:hover{color:var(--sui-text-strong-950)}.sui-rating__link:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:2px}:host([data-appearance=cell]){display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:8px}.sui-rating__cells{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}:host([data-appearance=cell]) .sui-rating__icon{padding:12px;border-radius:var(--sui-radius-10, 10px);border:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small, 0 1px 2px 0 rgba(10, 13, 20, .031372549));box-sizing:border-box;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-appearance=cell]) .sui-rating__icon[data-cell-state=hover]{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-appearance=bar]){display:inline-block;align-items:stretch}:host([data-appearance=bar-area]){display:block;width:100%}.sui-rating__bar{display:inline-flex;align-items:stretch;border:1px solid var(--sui-stroke-soft-200);border-radius:0;overflow:hidden;background:var(--sui-bg-white-0)}:host([data-appearance=bar-area]) .sui-rating__bar{display:flex;width:100%;border:0;border-bottom:1px solid var(--sui-stroke-soft-200);border-radius:0;background:transparent}.sui-rating__bar-cell{appearance:none;margin:0;font:inherit;flex-shrink:0;width:64px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 4px;background:var(--sui-bg-white-0);border:0;border-left:1px solid var(--sui-stroke-soft-200);cursor:default;color:var(--sui-stroke-sub-300);transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-rating__bar-cell:first-child{border-left:0}:host([data-appearance=bar-area]) .sui-rating__bar-cell{flex:1 0 0;width:auto;min-width:0;background:transparent}button.sui-rating__bar-cell{cursor:pointer}button.sui-rating__bar-cell:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:-2px}:host([data-type=star]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-yellow-500, #f6b51e)}:host([data-type=heart]) .sui-rating__bar-cell[data-cell-state=selected]{color:var(--sui-state-error-base, #fb3748)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=hover] .sui-rating__number,:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__number{color:var(--sui-text-strong-950)}:host([data-type=number]) .sui-rating__bar-cell[data-cell-state=selected],:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected]{background:var(--sui-bg-weak-50)}.sui-rating__number{font-size:var(--sui-type-label-sm-size);font-weight:var(--sui-type-label-sm-weight);line-height:var(--sui-type-label-sm-line);letter-spacing:var(--sui-type-label-sm-spacing);color:var(--sui-text-sub-600);text-align:center;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__emoji{display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.5);opacity:.55;transition:filter var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),opacity var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host([data-type=emoji]) .sui-rating__bar-cell[data-cell-state=selected] .sui-rating__emoji{filter:grayscale(0);opacity:1}.sui-rating__area{display:flex;flex-direction:column;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-12, 12px);overflow:hidden}.sui-rating__area-input{display:flex;flex:1 0 0;align-items:flex-start;justify-content:flex-start;padding:12px;background:var(--sui-bg-white-0)}.sui-rating__area-textarea{appearance:none;display:block;width:100%;min-height:72px;border:0;margin:0;padding:0;background:transparent;resize:none;font-family:var(--sui-font-sans);font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-textarea::placeholder{color:var(--sui-text-soft-400)}.sui-rating__area-textarea:focus-visible{outline:none}.sui-rating__area-text{width:100%;min-height:72px;margin:0;font-size:var(--sui-type-paragraph-sm-size);font-weight:var(--sui-type-paragraph-sm-weight);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing);color:var(--sui-text-strong-950);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-rating__area-text--placeholder{color:var(--sui-text-soft-400)}\n"] }]
13891
13943
  }], propDecorators: { appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], halfStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "halfStep", required: false }] }], showValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValue", required: false }] }], reviewCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "reviewCount", required: false }] }], reviewLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "reviewLink", required: false }] }], alignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignment", required: false }] }], emojis: [{ type: i0.Input, args: [{ isSignal: true, alias: "emojis", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], reason: [{ type: i0.Input, args: [{ isSignal: true, alias: "reason", required: false }] }, { type: i0.Output, args: ["reasonChange"] }], reasonPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "reasonPlaceholder", required: false }] }], reasonRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "reasonRows", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
13892
13944
 
13893
13945
  /* ═══ SUI Rich Editor Item — SUI Design System 2.0 ══════════════════════
@@ -15927,7 +15979,7 @@ class SuiSwitchCard {
15927
15979
  useExisting: forwardRef(() => SuiSwitchCard),
15928
15980
  multi: true,
15929
15981
  },
15930
- ], ngImport: i0, template: "@if (hasLeading()) {\n <div class=\"sui-switch-card__leading\">\n @if (type() === 'avatar') {\n <sui-avatar\n class=\"sui-switch-card__leading-avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n } @else if (type() === 'left-icon' && emoji()) {\n <div class=\"sui-switch-card__leading-icon\">\n <sui-emoji class=\"sui-switch-card__leading-emoji\" [name]=\"emoji()!\" size=\"sm\" />\n </div>\n } @else if (imageUrl() && type() !== 'left-icon') {\n <!-- card-provider 32\u00D724 / brand 40\u00D740 bare / company 40\u00D740 circle \u2014 el box lo da la clase. -->\n <div [class]=\"leadingBoxClass()\">\n <img [src]=\"imageUrl()\" alt=\"\" class=\"sui-switch-card__leading-img\" />\n </div>\n } @else {\n <!-- \u00DANICO ng-content del slot: si se duplica por branch, Angular solo proyecta\n en el primero declarado y los dem\u00E1s types quedan vac\u00EDos (bug auditor\u00EDa). -->\n <div [class]=\"leadingBoxClass()\">\n <ng-content select=\"[sui-switch-card-leading]\" />\n </div>\n }\n </div>\n}\n\n<div class=\"sui-switch-card__body\">\n <div class=\"sui-switch-card__title\">\n <span class=\"sui-switch-card__label\">{{ label() }}</span>\n @if (sublabel(); as sub) {\n <span class=\"sui-switch-card__sublabel\">{{ sub }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <!-- Badge real honrando SuiBadgeConfig; defaults blue/light/small =\n information azul fiel a Figma (DECISIONES.md \u00A71). -->\n <sui-badge\n class=\"sui-switch-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\">{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description(); as desc) {\n <p class=\"sui-switch-card__description\">{{ desc }}</p>\n }\n</div>\n\n<sui-switch\n class=\"sui-switch-card__switch\"\n [size]=\"size()\"\n [checked]=\"effectiveChecked()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onSwitchChange($event)\"\n/>\n", styles: ["@charset \"UTF-8\";:host{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--sui-radius-12);background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-shadow-x-small);box-sizing:border-box;overflow:hidden;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline:none;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host(:hover:not([data-sui-disabled]):not([data-sui-checked])){background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-sui-checked]:not([data-sui-disabled])){border-color:var(--sui-primary-base);box-shadow:none}:host([data-sui-disabled]){cursor:not-allowed;box-shadow:none}:host(:focus-visible){box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-switch-card__leading{flex-shrink:0;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:999px;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-shadow-x-small);box-sizing:border-box}.sui-switch-card__leading-emoji{width:20px;height:20px}:host([data-sui-disabled]) .sui-switch-card__leading-icon{box-shadow:none;opacity:.5}:host([data-sui-type=avatar]) .sui-switch-card__leading-avatar{width:40px;height:40px}.sui-switch-card__leading-card-provider{width:32px;height:24px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-brand{width:40px;height:40px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-company{width:40px;height:40px;border-radius:999px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-img{width:100%;height:100%;object-fit:contain;display:block}:host([data-sui-disabled]) .sui-switch-card__leading{opacity:.5}.sui-switch-card__body{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0;align-self:stretch}.sui-switch-card__body:not(:has(.sui-switch-card__description)){justify-content:center}.sui-switch-card__title{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.sui-switch-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-strong-950)}:host([data-sui-disabled]) .sui-switch-card__label{color:var(--sui-text-sub-600)}.sui-switch-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600)}:host([data-sui-disabled]) .sui-switch-card__sublabel{color:var(--sui-text-soft-400)}.sui-switch-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600)}:host([data-sui-disabled]) .sui-switch-card__description{color:var(--sui-text-soft-400)}:host([data-sui-disabled]) .sui-switch-card__badge{background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}.sui-switch-card__switch{flex-shrink:0;align-self:flex-start;margin-top:2px}\n"], dependencies: [{ kind: "component", type: SuiSwitch, selector: "sui-switch", inputs: ["size", "checked", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15982
+ ], ngImport: i0, template: "@if (hasLeading()) {\n <div class=\"sui-switch-card__leading\">\n @if (type() === 'avatar') {\n <sui-avatar\n class=\"sui-switch-card__leading-avatar\"\n size=\"lg\"\n [src]=\"imageUrl()\"\n [initials]=\"initialsFromLabel()\" />\n } @else if (type() === 'left-icon' && emoji()) {\n <div class=\"sui-switch-card__leading-icon\">\n <sui-emoji class=\"sui-switch-card__leading-emoji\" [name]=\"emoji()!\" size=\"sm\" />\n </div>\n } @else if (imageUrl() && type() !== 'left-icon') {\n <!-- card-provider 32\u00D724 / brand 40\u00D740 bare / company 40\u00D740 circle \u2014 el box lo da la clase. -->\n <div [class]=\"leadingBoxClass()\">\n <img [src]=\"imageUrl()\" alt=\"\" class=\"sui-switch-card__leading-img\" />\n </div>\n } @else {\n <!-- \u00DANICO ng-content del slot: si se duplica por branch, Angular solo proyecta\n en el primero declarado y los dem\u00E1s types quedan vac\u00EDos (bug auditor\u00EDa). -->\n <div [class]=\"leadingBoxClass()\">\n <ng-content select=\"[sui-switch-card-leading]\" />\n </div>\n }\n </div>\n}\n\n<div class=\"sui-switch-card__body\">\n <div class=\"sui-switch-card__title\">\n <span class=\"sui-switch-card__label\">{{ label() }}</span>\n @if (sublabel(); as sub) {\n <span class=\"sui-switch-card__sublabel\">{{ sub }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <!-- Badge real honrando SuiBadgeConfig; defaults blue/light/small =\n information azul fiel a Figma (DECISIONES.md \u00A71). -->\n <sui-badge\n class=\"sui-switch-card__badge\"\n [color]=\"bcfg.color ?? 'blue'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\">{{ bcfg.label }}</sui-badge>\n }\n </div>\n @if (description(); as desc) {\n <p class=\"sui-switch-card__description\">{{ desc }}</p>\n }\n</div>\n\n<sui-switch\n class=\"sui-switch-card__switch\"\n [size]=\"size()\"\n [checked]=\"effectiveChecked()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onSwitchChange($event)\"\n/>\n", styles: ["@charset \"UTF-8\";:host{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--sui-radius-12);background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-shadow-x-small);box-sizing:border-box;overflow:hidden;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline:none;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),border-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out),box-shadow var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}:host(:hover:not([data-sui-disabled]):not([data-sui-checked])){background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host([data-sui-checked]:not([data-sui-disabled])){border-color:var(--sui-primary-base);box-shadow:none}:host([data-sui-disabled]){cursor:not-allowed;box-shadow:none}:host(:focus-visible){box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-switch-card__leading{flex-shrink:0;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:999px;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-shadow-x-small);box-sizing:border-box}.sui-switch-card__leading-emoji{width:20px;height:20px}:host([data-sui-disabled]) .sui-switch-card__leading-icon{box-shadow:none;opacity:.5}:host([data-sui-type=avatar]) .sui-switch-card__leading-avatar{width:40px;height:40px}.sui-switch-card__leading-card-provider{width:32px;height:24px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-brand{width:40px;height:40px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-company{width:40px;height:40px;border-radius:999px;overflow:hidden;display:flex;align-items:center;justify-content:center}.sui-switch-card__leading-img{width:100%;height:100%;object-fit:contain;display:block}:host([data-sui-disabled]) .sui-switch-card__leading{opacity:.5}.sui-switch-card__body{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0;align-self:stretch}.sui-switch-card__body:not(:has(.sui-switch-card__description)){justify-content:center}.sui-switch-card__title{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.sui-switch-card__label{font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.006em;color:var(--sui-text-strong-950)}:host([data-sui-disabled]) .sui-switch-card__label{color:var(--sui-text-sub-600)}.sui-switch-card__sublabel{font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600)}:host([data-sui-disabled]) .sui-switch-card__sublabel{color:var(--sui-text-soft-400)}.sui-switch-card__description{margin:0;font-size:12px;font-weight:400;line-height:16px;color:var(--sui-text-sub-600)}:host([data-sui-disabled]) .sui-switch-card__description{color:var(--sui-text-soft-400)}:host([data-sui-disabled]) .sui-switch-card__badge{background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}.sui-switch-card__switch{flex-shrink:0;align-self:flex-start;margin-top:2px}\n"], dependencies: [{ kind: "component", type: SuiSwitch, selector: "sui-switch", inputs: ["size", "checked", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiEmoji, selector: "sui-emoji", inputs: ["name", "src", "size", "ariaLabel", "animated"] }, { kind: "component", type: SuiAvatar, selector: "sui-avatar", inputs: ["size", "src", "alt", "initials", "color", "status", "memojiSrc", "illustrationSrc", "icon", "companyLogoSrc", "topBadge", "bgColor"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15931
15983
  }
15932
15984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiSwitchCard, decorators: [{
15933
15985
  type: Component,
@@ -18984,5 +19036,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
18984
19036
  * Generated bundle index. Do not edit.
18985
19037
  */
18986
19038
 
18987
- 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_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 };
19039
+ 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 };
18988
19040
  //# sourceMappingURL=ajuarezso-sui-design-system.mjs.map