@ajuarezso/sui-design-system 0.18.10 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/docs/INDEX.md +136 -0
  2. package/docs/sui-alert/README.md +216 -0
  3. package/docs/sui-app-store-badge/README.md +137 -0
  4. package/docs/sui-avatar/README.md +263 -0
  5. package/docs/sui-avatar-group/README.md +115 -0
  6. package/docs/sui-badge/README.md +212 -0
  7. package/docs/sui-brand-logo/README.md +143 -0
  8. package/docs/sui-button/README.md +192 -0
  9. package/docs/sui-button-group/README.md +178 -0
  10. package/docs/sui-button-group-item/README.md +102 -0
  11. package/docs/sui-checkbox/README.md +147 -0
  12. package/docs/sui-checkbox-label/README.md +143 -0
  13. package/docs/sui-circular-progress-bar/README.md +131 -0
  14. package/docs/sui-color-dot/README.md +112 -0
  15. package/docs/sui-color-picker/README.md +124 -0
  16. package/docs/sui-compact-avatar-group/README.md +103 -0
  17. package/docs/sui-compact-button/README.md +190 -0
  18. package/docs/sui-content-divider/README.md +124 -0
  19. package/docs/sui-divider/README.md +102 -0
  20. package/docs/sui-emoji/README.md +138 -0
  21. package/docs/sui-fancy-button/README.md +148 -0
  22. package/docs/sui-file-icon/README.md +103 -0
  23. package/docs/sui-flag/README.md +99 -0
  24. package/docs/sui-form-hint/README.md +124 -0
  25. package/docs/sui-form-label/README.md +148 -0
  26. package/docs/sui-icon/README.md +135 -0
  27. package/docs/sui-kbd/README.md +97 -0
  28. package/docs/sui-key-icon/README.md +125 -0
  29. package/docs/sui-link-button/README.md +221 -0
  30. package/docs/sui-logo/README.md +152 -0
  31. package/docs/sui-payment-icon/README.md +98 -0
  32. package/docs/sui-progress-bar/README.md +132 -0
  33. package/docs/sui-progress-bar-label/README.md +143 -0
  34. package/docs/sui-radio/README.md +134 -0
  35. package/docs/sui-radio-label/README.md +137 -0
  36. package/docs/sui-rating/README.md +198 -0
  37. package/docs/sui-segmented-control/README.md +144 -0
  38. package/docs/sui-slider/README.md +143 -0
  39. package/docs/sui-social-button/README.md +158 -0
  40. package/docs/sui-status-badge/README.md +164 -0
  41. package/docs/sui-switch/README.md +146 -0
  42. package/docs/sui-switch-label/README.md +139 -0
  43. package/docs/sui-tag/README.md +145 -0
  44. package/fesm2022/ajuarezso-sui-design-system.mjs +207 -52
  45. package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
  46. package/package.json +1 -1
  47. package/types/ajuarezso-sui-design-system.d.ts +177 -28
@@ -147,7 +147,7 @@ class SuiBadge {
147
147
  /** Internal: true when the badge renders its built-in dot (type=with-dot). */
148
148
  showsDot = computed(() => this.type() === 'with-dot', ...(ngDevMode ? [{ debugName: "showsDot" }] : /* istanbul ignore next */ []));
149
149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiBadge, isStandalone: true, selector: "sui-badge", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-sui-color": "color()", "attr.data-sui-variant": "variant()", "attr.data-sui-size": "size()", "attr.data-sui-type": "type()", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.role": "\"status\"" } }, ngImport: i0, template: "@if (showsDot()) {\n <span class=\"sui-badge__dot\" aria-hidden=\"true\"></span>\n}\n<ng-content select=\"[data-slot=start]\"></ng-content>\n<span class=\"sui-badge__label\"><ng-content></ng-content></span>\n<ng-content select=\"[data-slot=end]\"></ng-content>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;border-radius:var(--sui-radius-full);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;font-size:var(--sui-type-subheading-2xs-size);font-weight:var(--sui-type-subheading-2xs-weight);line-height:var(--sui-type-subheading-2xs-line);letter-spacing:var(--sui-type-subheading-2xs-spacing);text-transform:uppercase}.sui-badge__label{display:inline-flex;align-items:center}:host ::ng-deep [data-slot=start],:host ::ng-deep [data-slot=end]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sui-badge__dot{display:block;flex-shrink:0;width:16px;height:16px;background-image:radial-gradient(circle at center,currentColor 0,currentColor 2px,transparent 2.5px)}:host([data-sui-size=small]){height:16px}:host([data-sui-size=small]) ::ng-deep [data-slot=start],:host([data-sui-size=small]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-xs);height:var(--sui-icon-size-xs)}:host([data-sui-size=medium]){height:20px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);text-transform:none}:host([data-sui-size=medium]) ::ng-deep [data-slot=start],:host([data-sui-size=medium]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-type=basic]){padding:2px 8px;gap:0}:host([data-sui-type=left-icon]){padding:2px 8px 2px 4px;gap:2px}:host([data-sui-type=right-icon]){padding:2px 4px 2px 8px;gap:2px}:host([data-sui-size=small][data-sui-type=with-dot]){padding:0 8px 0 0;gap:0}:host([data-sui-size=medium][data-sui-type=with-dot]){padding:2px 8px 2px 2px;gap:0}:host([data-sui-type=number]){gap:0;padding:0 4px;justify-content:center}:host([data-sui-type=number]) .sui-badge__label{display:inline-block;text-align:center}:host([data-sui-type=number][data-sui-size=small]){height:16px;min-width:16px}:host([data-sui-type=number][data-sui-size=medium]){height:20px;min-width:20px}:host([data-sui-color=gray][data-sui-variant=filled]){background:var(--sui-state-faded-base);border-color:var(--sui-state-faded-base);color:var(--sui-static-white)}:host([data-sui-color=gray][data-sui-variant=light]){background:var(--sui-state-faded-light);border-color:transparent;color:var(--sui-state-faded-dark)}:host([data-sui-color=gray][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-faded-base);color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-faded-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-faded-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=filled]){background:var(--sui-state-information-base);border-color:var(--sui-state-information-base);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=light]){background:var(--sui-state-information-light);border-color:transparent;color:var(--sui-state-information-dark)}:host([data-sui-color=blue][data-sui-variant=lighter]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-information-base);color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-information-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-information-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=filled]){background:var(--sui-state-warning-base);border-color:var(--sui-state-warning-base);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=light]){background:var(--sui-state-warning-light);border-color:transparent;color:var(--sui-state-warning-dark)}:host([data-sui-color=orange][data-sui-variant=lighter]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-warning-base);color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-warning-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-warning-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=filled]){background:var(--sui-state-error-base);border-color:var(--sui-state-error-base);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=light]){background:var(--sui-state-error-light);border-color:transparent;color:var(--sui-state-error-dark)}:host([data-sui-color=red][data-sui-variant=lighter]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-error-base);color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-error-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-error-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=filled]){background:var(--sui-state-success-base);border-color:var(--sui-state-success-base);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=light]){background:var(--sui-state-success-light);border-color:transparent;color:var(--sui-state-success-dark)}:host([data-sui-color=green][data-sui-variant=lighter]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-success-base);color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-success-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-success-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=filled]){background:var(--sui-state-away-base);border-color:var(--sui-state-away-base);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=light]){background:var(--sui-state-away-light);border-color:transparent;color:var(--sui-state-away-dark)}:host([data-sui-color=yellow][data-sui-variant=lighter]){background:var(--sui-state-away-lighter);border-color:transparent;color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-away-base);color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-away-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-away-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=filled]){background:var(--sui-state-feature-base);border-color:var(--sui-state-feature-base);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=light]){background:var(--sui-state-feature-light);border-color:transparent;color:var(--sui-state-feature-dark)}:host([data-sui-color=purple][data-sui-variant=lighter]){background:var(--sui-state-feature-lighter);border-color:transparent;color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-feature-base);color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-feature-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-feature-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=filled]){background:var(--sui-state-verified-base);border-color:var(--sui-state-verified-base);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=light]){background:var(--sui-state-verified-light);border-color:transparent;color:var(--sui-state-verified-dark)}:host([data-sui-color=sky][data-sui-variant=lighter]){background:var(--sui-state-verified-lighter);border-color:transparent;color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-verified-base);color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-verified-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-verified-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=filled]){background:var(--sui-state-highlighted-base);border-color:var(--sui-state-highlighted-base);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=light]){background:var(--sui-state-highlighted-light);border-color:transparent;color:var(--sui-state-highlighted-dark)}:host([data-sui-color=pink][data-sui-variant=lighter]){background:var(--sui-state-highlighted-lighter);border-color:transparent;color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-highlighted-base);color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-highlighted-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-highlighted-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=filled]){background:var(--sui-state-stable-base);border-color:var(--sui-state-stable-base);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=light]){background:var(--sui-state-stable-light);border-color:transparent;color:var(--sui-state-stable-dark)}:host([data-sui-color=teal][data-sui-variant=lighter]){background:var(--sui-state-stable-lighter);border-color:transparent;color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-stable-base);color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-stable-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-stable-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-variant=dark]:not([data-sui-color])),:host([data-sui-variant=dark][data-sui-color=gray]){background:#ffffff1a;border-color:#ffffff29;color:var(--sui-static-white)}:host([data-sui-disabled]){pointer-events:none;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=filled]){background:var(--sui-state-faded-light);border-color:var(--sui-state-faded-light);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=light]),:host([data-sui-disabled][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=dark]){background:#ffffff0f;border-color:#ffffff1a;color:#ffffff73}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiBadge, isStandalone: true, selector: "sui-badge", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-sui-color": "color()", "attr.data-sui-variant": "variant()", "attr.data-sui-size": "size()", "attr.data-sui-type": "type()", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.role": "\"status\"" } }, ngImport: i0, template: "@if (showsDot()) {\n <span class=\"sui-badge__dot\" aria-hidden=\"true\"></span>\n}\n<ng-content select=\"[data-slot=start]\"></ng-content>\n<span class=\"sui-badge__label\"><ng-content></ng-content></span>\n<ng-content select=\"[data-slot=end]\"></ng-content>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;border-radius:var(--sui-radius-full);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;font-size:var(--sui-type-subheading-2xs-size);font-weight:var(--sui-type-subheading-2xs-weight);line-height:var(--sui-type-subheading-2xs-line);letter-spacing:var(--sui-type-subheading-2xs-spacing);text-transform:uppercase}.sui-badge__label{display:inline-flex;align-items:center}:host ::ng-deep [data-slot=start],:host ::ng-deep [data-slot=end]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sui-badge__dot{display:block;flex-shrink:0;width:16px;height:16px;background-image:radial-gradient(circle at center,currentColor 0,currentColor 2px,transparent 2.5px)}:host([data-sui-size=small]){height:16px}:host([data-sui-size=small]) ::ng-deep [data-slot=start],:host([data-sui-size=small]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-xs);height:var(--sui-icon-size-xs)}:host([data-sui-size=medium]){height:20px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);text-transform:none}:host([data-sui-size=medium]) ::ng-deep [data-slot=start],:host([data-sui-size=medium]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-size=large]){height:24px;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);text-transform:none}:host([data-sui-size=large]) ::ng-deep [data-slot=start],:host([data-sui-size=large]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-size=xlarge]){height:28px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing);text-transform:none}:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start],:host([data-sui-size=xlarge]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-md);height:var(--sui-icon-size-md)}:host([data-sui-type=basic]){padding:2px 8px;gap:0}:host([data-sui-type=left-icon]){padding:2px 8px 2px 4px;gap:2px}:host([data-sui-type=right-icon]){padding:2px 4px 2px 8px;gap:2px}:host([data-sui-size=medium][data-sui-type=left-icon]),:host([data-sui-size=medium][data-sui-type=right-icon]){gap:4px}:host([data-sui-size=small][data-sui-type=with-dot]){padding:0 8px 0 0;gap:0}:host([data-sui-size=medium][data-sui-type=with-dot]){padding:2px 8px 2px 2px;gap:0}:host([data-sui-type=number]){gap:0;padding:0 4px;justify-content:center}:host([data-sui-type=number]) .sui-badge__label{display:inline-block;text-align:center}:host([data-sui-type=number][data-sui-size=small]){height:16px;min-width:16px}:host([data-sui-type=number][data-sui-size=medium]){height:20px;min-width:20px}:host([data-sui-type=number][data-sui-size=large]){height:24px;min-width:24px;padding:0 6px}:host([data-sui-type=number][data-sui-size=xlarge]){height:28px;min-width:28px;padding:0 8px}:host([data-sui-size=large][data-sui-type=basic]){padding:2px 10px}:host([data-sui-size=xlarge][data-sui-type=basic]){padding:2px 12px}:host([data-sui-size=large][data-sui-type=left-icon]){padding:2px 10px 2px 6px;gap:4px}:host([data-sui-size=xlarge][data-sui-type=left-icon]){padding:2px 12px 2px 8px;gap:4px}:host([data-sui-size=large][data-sui-type=right-icon]){padding:2px 6px 2px 10px;gap:4px}:host([data-sui-size=xlarge][data-sui-type=right-icon]){padding:2px 8px 2px 12px;gap:4px}:host([data-sui-size=large][data-sui-type=with-dot]){padding:4px 10px 4px 4px;gap:0}:host([data-sui-size=xlarge][data-sui-type=with-dot]){padding:6px 12px 6px 6px;gap:0}:host([data-sui-color=gray][data-sui-variant=filled]){background:var(--sui-state-faded-base);border-color:var(--sui-state-faded-base);color:var(--sui-static-white)}:host([data-sui-color=gray][data-sui-variant=light]){background:var(--sui-state-faded-light);border-color:transparent;color:var(--sui-state-faded-dark)}:host([data-sui-color=gray][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-faded-base);color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-faded-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-faded-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=filled]){background:var(--sui-state-information-base);border-color:var(--sui-state-information-base);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=light]){background:var(--sui-state-information-light);border-color:transparent;color:var(--sui-state-information-dark)}:host([data-sui-color=blue][data-sui-variant=lighter]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-information-base);color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-information-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-information-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=filled]){background:var(--sui-state-warning-base);border-color:var(--sui-state-warning-base);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=light]){background:var(--sui-state-warning-light);border-color:transparent;color:var(--sui-state-warning-dark)}:host([data-sui-color=orange][data-sui-variant=lighter]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-warning-base);color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-warning-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-warning-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=filled]){background:var(--sui-state-error-base);border-color:var(--sui-state-error-base);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=light]){background:var(--sui-state-error-light);border-color:transparent;color:var(--sui-state-error-dark)}:host([data-sui-color=red][data-sui-variant=lighter]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-error-base);color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-error-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-error-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=filled]){background:var(--sui-state-success-base);border-color:var(--sui-state-success-base);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=light]){background:var(--sui-state-success-light);border-color:transparent;color:var(--sui-state-success-dark)}:host([data-sui-color=green][data-sui-variant=lighter]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-success-base);color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-success-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-success-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=filled]){background:var(--sui-state-away-base);border-color:var(--sui-state-away-base);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=light]){background:var(--sui-state-away-light);border-color:transparent;color:var(--sui-state-away-dark)}:host([data-sui-color=yellow][data-sui-variant=lighter]){background:var(--sui-state-away-lighter);border-color:transparent;color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-away-base);color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-away-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-away-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=filled]){background:var(--sui-state-feature-base);border-color:var(--sui-state-feature-base);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=light]){background:var(--sui-state-feature-light);border-color:transparent;color:var(--sui-state-feature-dark)}:host([data-sui-color=purple][data-sui-variant=lighter]){background:var(--sui-state-feature-lighter);border-color:transparent;color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-feature-base);color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-feature-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-feature-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=filled]){background:var(--sui-state-verified-base);border-color:var(--sui-state-verified-base);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=light]){background:var(--sui-state-verified-light);border-color:transparent;color:var(--sui-state-verified-dark)}:host([data-sui-color=sky][data-sui-variant=lighter]){background:var(--sui-state-verified-lighter);border-color:transparent;color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-verified-base);color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-verified-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-verified-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=filled]){background:var(--sui-state-highlighted-base);border-color:var(--sui-state-highlighted-base);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=light]){background:var(--sui-state-highlighted-light);border-color:transparent;color:var(--sui-state-highlighted-dark)}:host([data-sui-color=pink][data-sui-variant=lighter]){background:var(--sui-state-highlighted-lighter);border-color:transparent;color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-highlighted-base);color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-highlighted-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-highlighted-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=filled]){background:var(--sui-state-stable-base);border-color:var(--sui-state-stable-base);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=light]){background:var(--sui-state-stable-light);border-color:transparent;color:var(--sui-state-stable-dark)}:host([data-sui-color=teal][data-sui-variant=lighter]){background:var(--sui-state-stable-lighter);border-color:transparent;color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-stable-base);color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-stable-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-stable-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-variant=dark]:not([data-sui-color])),:host([data-sui-variant=dark][data-sui-color=gray]){background:#ffffff1a;border-color:#ffffff29;color:var(--sui-static-white)}:host([data-sui-disabled]){pointer-events:none;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=filled]){background:var(--sui-state-faded-light);border-color:var(--sui-state-faded-light);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=light]),:host([data-sui-disabled][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=dark]){background:#ffffff0f;border-color:#ffffff1a;color:#ffffff73}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
151
  }
152
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiBadge, decorators: [{
153
153
  type: Component,
@@ -158,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
158
158
  '[attr.data-sui-type]': 'type()',
159
159
  '[attr.data-sui-disabled]': 'disabled() ? "" : null',
160
160
  '[attr.role]': '"status"',
161
- }, template: "@if (showsDot()) {\n <span class=\"sui-badge__dot\" aria-hidden=\"true\"></span>\n}\n<ng-content select=\"[data-slot=start]\"></ng-content>\n<span class=\"sui-badge__label\"><ng-content></ng-content></span>\n<ng-content select=\"[data-slot=end]\"></ng-content>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;border-radius:var(--sui-radius-full);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;font-size:var(--sui-type-subheading-2xs-size);font-weight:var(--sui-type-subheading-2xs-weight);line-height:var(--sui-type-subheading-2xs-line);letter-spacing:var(--sui-type-subheading-2xs-spacing);text-transform:uppercase}.sui-badge__label{display:inline-flex;align-items:center}:host ::ng-deep [data-slot=start],:host ::ng-deep [data-slot=end]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sui-badge__dot{display:block;flex-shrink:0;width:16px;height:16px;background-image:radial-gradient(circle at center,currentColor 0,currentColor 2px,transparent 2.5px)}:host([data-sui-size=small]){height:16px}:host([data-sui-size=small]) ::ng-deep [data-slot=start],:host([data-sui-size=small]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-xs);height:var(--sui-icon-size-xs)}:host([data-sui-size=medium]){height:20px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);text-transform:none}:host([data-sui-size=medium]) ::ng-deep [data-slot=start],:host([data-sui-size=medium]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-type=basic]){padding:2px 8px;gap:0}:host([data-sui-type=left-icon]){padding:2px 8px 2px 4px;gap:2px}:host([data-sui-type=right-icon]){padding:2px 4px 2px 8px;gap:2px}:host([data-sui-size=small][data-sui-type=with-dot]){padding:0 8px 0 0;gap:0}:host([data-sui-size=medium][data-sui-type=with-dot]){padding:2px 8px 2px 2px;gap:0}:host([data-sui-type=number]){gap:0;padding:0 4px;justify-content:center}:host([data-sui-type=number]) .sui-badge__label{display:inline-block;text-align:center}:host([data-sui-type=number][data-sui-size=small]){height:16px;min-width:16px}:host([data-sui-type=number][data-sui-size=medium]){height:20px;min-width:20px}:host([data-sui-color=gray][data-sui-variant=filled]){background:var(--sui-state-faded-base);border-color:var(--sui-state-faded-base);color:var(--sui-static-white)}:host([data-sui-color=gray][data-sui-variant=light]){background:var(--sui-state-faded-light);border-color:transparent;color:var(--sui-state-faded-dark)}:host([data-sui-color=gray][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-faded-base);color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-faded-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-faded-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=filled]){background:var(--sui-state-information-base);border-color:var(--sui-state-information-base);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=light]){background:var(--sui-state-information-light);border-color:transparent;color:var(--sui-state-information-dark)}:host([data-sui-color=blue][data-sui-variant=lighter]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-information-base);color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-information-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-information-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=filled]){background:var(--sui-state-warning-base);border-color:var(--sui-state-warning-base);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=light]){background:var(--sui-state-warning-light);border-color:transparent;color:var(--sui-state-warning-dark)}:host([data-sui-color=orange][data-sui-variant=lighter]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-warning-base);color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-warning-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-warning-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=filled]){background:var(--sui-state-error-base);border-color:var(--sui-state-error-base);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=light]){background:var(--sui-state-error-light);border-color:transparent;color:var(--sui-state-error-dark)}:host([data-sui-color=red][data-sui-variant=lighter]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-error-base);color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-error-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-error-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=filled]){background:var(--sui-state-success-base);border-color:var(--sui-state-success-base);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=light]){background:var(--sui-state-success-light);border-color:transparent;color:var(--sui-state-success-dark)}:host([data-sui-color=green][data-sui-variant=lighter]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-success-base);color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-success-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-success-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=filled]){background:var(--sui-state-away-base);border-color:var(--sui-state-away-base);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=light]){background:var(--sui-state-away-light);border-color:transparent;color:var(--sui-state-away-dark)}:host([data-sui-color=yellow][data-sui-variant=lighter]){background:var(--sui-state-away-lighter);border-color:transparent;color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-away-base);color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-away-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-away-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=filled]){background:var(--sui-state-feature-base);border-color:var(--sui-state-feature-base);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=light]){background:var(--sui-state-feature-light);border-color:transparent;color:var(--sui-state-feature-dark)}:host([data-sui-color=purple][data-sui-variant=lighter]){background:var(--sui-state-feature-lighter);border-color:transparent;color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-feature-base);color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-feature-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-feature-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=filled]){background:var(--sui-state-verified-base);border-color:var(--sui-state-verified-base);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=light]){background:var(--sui-state-verified-light);border-color:transparent;color:var(--sui-state-verified-dark)}:host([data-sui-color=sky][data-sui-variant=lighter]){background:var(--sui-state-verified-lighter);border-color:transparent;color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-verified-base);color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-verified-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-verified-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=filled]){background:var(--sui-state-highlighted-base);border-color:var(--sui-state-highlighted-base);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=light]){background:var(--sui-state-highlighted-light);border-color:transparent;color:var(--sui-state-highlighted-dark)}:host([data-sui-color=pink][data-sui-variant=lighter]){background:var(--sui-state-highlighted-lighter);border-color:transparent;color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-highlighted-base);color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-highlighted-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-highlighted-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=filled]){background:var(--sui-state-stable-base);border-color:var(--sui-state-stable-base);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=light]){background:var(--sui-state-stable-light);border-color:transparent;color:var(--sui-state-stable-dark)}:host([data-sui-color=teal][data-sui-variant=lighter]){background:var(--sui-state-stable-lighter);border-color:transparent;color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-stable-base);color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-stable-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-stable-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-variant=dark]:not([data-sui-color])),:host([data-sui-variant=dark][data-sui-color=gray]){background:#ffffff1a;border-color:#ffffff29;color:var(--sui-static-white)}:host([data-sui-disabled]){pointer-events:none;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=filled]){background:var(--sui-state-faded-light);border-color:var(--sui-state-faded-light);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=light]),:host([data-sui-disabled][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=dark]){background:#ffffff0f;border-color:#ffffff1a;color:#ffffff73}\n"] }]
161
+ }, template: "@if (showsDot()) {\n <span class=\"sui-badge__dot\" aria-hidden=\"true\"></span>\n}\n<ng-content select=\"[data-slot=start]\"></ng-content>\n<span class=\"sui-badge__label\"><ng-content></ng-content></span>\n<ng-content select=\"[data-slot=end]\"></ng-content>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;border-radius:var(--sui-radius-full);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;font-size:var(--sui-type-subheading-2xs-size);font-weight:var(--sui-type-subheading-2xs-weight);line-height:var(--sui-type-subheading-2xs-line);letter-spacing:var(--sui-type-subheading-2xs-spacing);text-transform:uppercase}.sui-badge__label{display:inline-flex;align-items:center}:host ::ng-deep [data-slot=start],:host ::ng-deep [data-slot=end]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sui-badge__dot{display:block;flex-shrink:0;width:16px;height:16px;background-image:radial-gradient(circle at center,currentColor 0,currentColor 2px,transparent 2.5px)}:host([data-sui-size=small]){height:16px}:host([data-sui-size=small]) ::ng-deep [data-slot=start],:host([data-sui-size=small]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-xs);height:var(--sui-icon-size-xs)}:host([data-sui-size=medium]){height:20px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);text-transform:none}:host([data-sui-size=medium]) ::ng-deep [data-slot=start],:host([data-sui-size=medium]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-size=large]){height:24px;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);text-transform:none}:host([data-sui-size=large]) ::ng-deep [data-slot=start],:host([data-sui-size=large]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-sm);height:var(--sui-icon-size-sm)}:host([data-sui-size=xlarge]){height:28px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing);text-transform:none}:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start],:host([data-sui-size=xlarge]) ::ng-deep [data-slot=end]{width:var(--sui-icon-size-md);height:var(--sui-icon-size-md)}:host([data-sui-type=basic]){padding:2px 8px;gap:0}:host([data-sui-type=left-icon]){padding:2px 8px 2px 4px;gap:2px}:host([data-sui-type=right-icon]){padding:2px 4px 2px 8px;gap:2px}:host([data-sui-size=medium][data-sui-type=left-icon]),:host([data-sui-size=medium][data-sui-type=right-icon]){gap:4px}:host([data-sui-size=small][data-sui-type=with-dot]){padding:0 8px 0 0;gap:0}:host([data-sui-size=medium][data-sui-type=with-dot]){padding:2px 8px 2px 2px;gap:0}:host([data-sui-type=number]){gap:0;padding:0 4px;justify-content:center}:host([data-sui-type=number]) .sui-badge__label{display:inline-block;text-align:center}:host([data-sui-type=number][data-sui-size=small]){height:16px;min-width:16px}:host([data-sui-type=number][data-sui-size=medium]){height:20px;min-width:20px}:host([data-sui-type=number][data-sui-size=large]){height:24px;min-width:24px;padding:0 6px}:host([data-sui-type=number][data-sui-size=xlarge]){height:28px;min-width:28px;padding:0 8px}:host([data-sui-size=large][data-sui-type=basic]){padding:2px 10px}:host([data-sui-size=xlarge][data-sui-type=basic]){padding:2px 12px}:host([data-sui-size=large][data-sui-type=left-icon]){padding:2px 10px 2px 6px;gap:4px}:host([data-sui-size=xlarge][data-sui-type=left-icon]){padding:2px 12px 2px 8px;gap:4px}:host([data-sui-size=large][data-sui-type=right-icon]){padding:2px 6px 2px 10px;gap:4px}:host([data-sui-size=xlarge][data-sui-type=right-icon]){padding:2px 8px 2px 12px;gap:4px}:host([data-sui-size=large][data-sui-type=with-dot]){padding:4px 10px 4px 4px;gap:0}:host([data-sui-size=xlarge][data-sui-type=with-dot]){padding:6px 12px 6px 6px;gap:0}:host([data-sui-color=gray][data-sui-variant=filled]){background:var(--sui-state-faded-base);border-color:var(--sui-state-faded-base);color:var(--sui-static-white)}:host([data-sui-color=gray][data-sui-variant=light]){background:var(--sui-state-faded-light);border-color:transparent;color:var(--sui-state-faded-dark)}:host([data-sui-color=gray][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-faded-base);color:var(--sui-state-faded-base)}:host([data-sui-color=gray][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-faded-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-faded-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=filled]){background:var(--sui-state-information-base);border-color:var(--sui-state-information-base);color:var(--sui-static-white)}:host([data-sui-color=blue][data-sui-variant=light]){background:var(--sui-state-information-light);border-color:transparent;color:var(--sui-state-information-dark)}:host([data-sui-color=blue][data-sui-variant=lighter]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-information-base);color:var(--sui-state-information-base)}:host([data-sui-color=blue][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-information-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-information-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=filled]){background:var(--sui-state-warning-base);border-color:var(--sui-state-warning-base);color:var(--sui-static-white)}:host([data-sui-color=orange][data-sui-variant=light]){background:var(--sui-state-warning-light);border-color:transparent;color:var(--sui-state-warning-dark)}:host([data-sui-color=orange][data-sui-variant=lighter]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-warning-base);color:var(--sui-state-warning-base)}:host([data-sui-color=orange][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-warning-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-warning-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=filled]){background:var(--sui-state-error-base);border-color:var(--sui-state-error-base);color:var(--sui-static-white)}:host([data-sui-color=red][data-sui-variant=light]){background:var(--sui-state-error-light);border-color:transparent;color:var(--sui-state-error-dark)}:host([data-sui-color=red][data-sui-variant=lighter]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-error-base);color:var(--sui-state-error-base)}:host([data-sui-color=red][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-error-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-error-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=filled]){background:var(--sui-state-success-base);border-color:var(--sui-state-success-base);color:var(--sui-static-white)}:host([data-sui-color=green][data-sui-variant=light]){background:var(--sui-state-success-light);border-color:transparent;color:var(--sui-state-success-dark)}:host([data-sui-color=green][data-sui-variant=lighter]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-success-base);color:var(--sui-state-success-base)}:host([data-sui-color=green][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-success-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-success-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=filled]){background:var(--sui-state-away-base);border-color:var(--sui-state-away-base);color:var(--sui-static-white)}:host([data-sui-color=yellow][data-sui-variant=light]){background:var(--sui-state-away-light);border-color:transparent;color:var(--sui-state-away-dark)}:host([data-sui-color=yellow][data-sui-variant=lighter]){background:var(--sui-state-away-lighter);border-color:transparent;color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-away-base);color:var(--sui-state-away-base)}:host([data-sui-color=yellow][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-away-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-away-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=filled]){background:var(--sui-state-feature-base);border-color:var(--sui-state-feature-base);color:var(--sui-static-white)}:host([data-sui-color=purple][data-sui-variant=light]){background:var(--sui-state-feature-light);border-color:transparent;color:var(--sui-state-feature-dark)}:host([data-sui-color=purple][data-sui-variant=lighter]){background:var(--sui-state-feature-lighter);border-color:transparent;color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-feature-base);color:var(--sui-state-feature-base)}:host([data-sui-color=purple][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-feature-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-feature-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=filled]){background:var(--sui-state-verified-base);border-color:var(--sui-state-verified-base);color:var(--sui-static-white)}:host([data-sui-color=sky][data-sui-variant=light]){background:var(--sui-state-verified-light);border-color:transparent;color:var(--sui-state-verified-dark)}:host([data-sui-color=sky][data-sui-variant=lighter]){background:var(--sui-state-verified-lighter);border-color:transparent;color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-verified-base);color:var(--sui-state-verified-base)}:host([data-sui-color=sky][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-verified-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-verified-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=filled]){background:var(--sui-state-highlighted-base);border-color:var(--sui-state-highlighted-base);color:var(--sui-static-white)}:host([data-sui-color=pink][data-sui-variant=light]){background:var(--sui-state-highlighted-light);border-color:transparent;color:var(--sui-state-highlighted-dark)}:host([data-sui-color=pink][data-sui-variant=lighter]){background:var(--sui-state-highlighted-lighter);border-color:transparent;color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-highlighted-base);color:var(--sui-state-highlighted-base)}:host([data-sui-color=pink][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-highlighted-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-highlighted-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=filled]){background:var(--sui-state-stable-base);border-color:var(--sui-state-stable-base);color:var(--sui-static-white)}:host([data-sui-color=teal][data-sui-variant=light]){background:var(--sui-state-stable-light);border-color:transparent;color:var(--sui-state-stable-dark)}:host([data-sui-color=teal][data-sui-variant=lighter]){background:var(--sui-state-stable-lighter);border-color:transparent;color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-state-stable-base);color:var(--sui-state-stable-base)}:host([data-sui-color=teal][data-sui-variant=dark]){background:color-mix(in srgb,var(--sui-state-stable-base) 22%,transparent);border-color:color-mix(in srgb,var(--sui-state-stable-base) 45%,transparent);color:var(--sui-static-white)}:host([data-sui-variant=dark]:not([data-sui-color])),:host([data-sui-variant=dark][data-sui-color=gray]){background:#ffffff1a;border-color:#ffffff29;color:var(--sui-static-white)}:host([data-sui-disabled]){pointer-events:none;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=filled]){background:var(--sui-state-faded-light);border-color:var(--sui-state-faded-light);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=light]),:host([data-sui-disabled][data-sui-variant=lighter]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=stroke]){background:transparent;border-color:var(--sui-stroke-soft-200);color:var(--sui-text-disabled-300)}:host([data-sui-disabled][data-sui-variant=dark]){background:#ffffff0f;border-color:#ffffff1a;color:#ffffff73}\n"] }]
162
162
  }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
163
163
 
164
164
  /**
@@ -1001,6 +1001,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1001
1001
  * Container flex / inline-flex, gap=4px, items=center
1002
1002
  * Medium size text 14/20/-0.6%, icons 20×20
1003
1003
  * Small size text 12/16/0, icons 16×16
1004
+ * Large size text 16/24/-1.1%, icons 20×20 — extensión SUI
1005
+ * (03-10-2026, pedido del dueño): en mobile el link se
1006
+ * lee y se toca con el dedo. Ícono 20 como el sui-button
1007
+ * large (texto 16 + ícono 20), no 24: con 24 el chevron
1008
+ * pesa más que el texto.
1004
1009
  * Font features 'ss11' 1, 'calt' 0, 'liga' 0
1005
1010
  * Underline (hover / focus / underline=on): línea continua SOLO
1006
1011
  * bajo el texto (los iconos chevron NO van subrayados —
@@ -1063,7 +1068,15 @@ class SuiLinkButton {
1063
1068
  type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
1064
1069
  ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
1065
1070
  clicked = output();
1066
- iconSize = computed(() => (this.size() === 'medium' ? 20 : 16), ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
1071
+ /** Px de los íconos por tamaño: large 20 · medium 20 · small 16. */
1072
+ iconSize = computed(() => {
1073
+ switch (this.size()) {
1074
+ case 'small': return 16;
1075
+ case 'large':
1076
+ case 'medium':
1077
+ default: return 20;
1078
+ }
1079
+ }, ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
1067
1080
  isAnchor = computed(() => !!this.href() && !this.disabled(), ...(ngDevMode ? [{ debugName: "isAnchor" }] : /* istanbul ignore next */ []));
1068
1081
  onClick(event) {
1069
1082
  if (this.disabled()) {
@@ -1074,7 +1087,7 @@ class SuiLinkButton {
1074
1087
  this.clicked.emit(event);
1075
1088
  }
1076
1089
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiLinkButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
1077
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiLinkButton, isStandalone: true, selector: "sui-link-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIcon: { classPropertyName: "rightIcon", publicName: "rightIcon", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-variant": "variant()", "attr.data-sui-size": "size()", "attr.data-sui-underline": "underline() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: "<!-- Contenido compartido por ambas ramas (a/button). Un \u00FAnico <ng-content/> :\n Angular asigna la proyecci\u00F3n est\u00E1ticamente a UN solo outlet, as\u00ED que con\n dos <ng-content/> (uno por rama del @if) la rama <a> quedaba SIN texto.\n ng-template + ngTemplateOutlet re-proyecta en la rama activa. -->\n<ng-template #inner>\n @if (leftIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"leftIcon()!\" [size]=\"iconSize()\" />\n }\n <span class=\"sui-link-button__text\"><ng-content /></span>\n @if (rightIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"rightIcon()!\" [size]=\"iconSize()\" />\n }\n</ng-template>\n\n@if (isAnchor()) {\n <a\n class=\"sui-link-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </a>\n} @else {\n <button\n class=\"sui-link-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline}.sui-link-button__el{appearance:none;margin:0;padding:0;border:0;background:transparent;text-decoration:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;word-break:break-word;font-family:var(--sui-font-sans);font-style:normal;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;color:var(--sui-link-button-color, currentColor);transition:transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-link-button__el:active:not(:disabled){transform:scale(.97)}.sui-link-button__el:hover:not(:disabled){color:var(--sui-link-button-color-hover, var(--sui-link-button-color))}.sui-link-button__el:focus-visible:not(:disabled){outline:none;color:var(--sui-link-button-color-focus, var(--sui-link-button-color))}.sui-link-button__el:disabled{cursor:not-allowed}.sui-link-button__el:hover:not(:disabled) .sui-link-button__text:after,.sui-link-button__el:focus-visible:not(:disabled) .sui-link-button__text:after{opacity:1}.sui-link-button__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-link-button__text{position:relative;display:inline-block}.sui-link-button__text:after{content:\"\";position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:currentColor;opacity:0;pointer-events:none}:host([data-sui-size=medium]) .sui-link-button__el{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500)}:host([data-sui-size=medium]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-size=small]) .sui-link-button__el{font-size:var(--sui-type-label-xs-size, 12px);line-height:var(--sui-type-label-xs-line, 16px);letter-spacing:var(--sui-type-label-xs-spacing, 0);font-weight:var(--sui-type-label-xs-weight, 500)}:host([data-sui-size=small]) .sui-link-button__icon{width:16px;height:16px}:host([data-sui-variant=gray]){--sui-link-button-color: var(--sui-text-sub-600);--sui-link-button-color-hover: var(--sui-text-sub-600);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=black]){--sui-link-button-color: var(--sui-text-strong-950);--sui-link-button-color-hover: var(--sui-text-strong-950);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=primary]){--sui-link-button-color: var(--sui-primary-base);--sui-link-button-color-hover: var(--sui-primary-dark);--sui-link-button-color-focus: var(--sui-primary-base)}:host([data-sui-variant=error]){--sui-link-button-color: var(--sui-state-error-base);--sui-link-button-color-hover: var(--sui-red-700);--sui-link-button-color-focus: var(--sui-state-error-base)}:host([data-sui-variant=modifiable]){--sui-link-button-color: currentColor;--sui-link-button-color-hover: currentColor;--sui-link-button-color-focus: currentColor}:host([data-sui-underline]) .sui-link-button__text:after{opacity:1}:host([data-sui-disabled]) .sui-link-button__el,.sui-link-button__el:disabled{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-link-button__el:hover,:host([data-sui-disabled]) .sui-link-button__el:focus-visible,.sui-link-button__el:disabled:hover,.sui-link-button__el:disabled:focus-visible{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-link-button__el .sui-link-button__text:after,.sui-link-button__el:disabled .sui-link-button__text:after{opacity:0}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1090
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiLinkButton, isStandalone: true, selector: "sui-link-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIcon: { classPropertyName: "rightIcon", publicName: "rightIcon", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-variant": "variant()", "attr.data-sui-size": "size()", "attr.data-sui-underline": "underline() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: "<!-- Contenido compartido por ambas ramas (a/button). Un \u00FAnico <ng-content/> :\n Angular asigna la proyecci\u00F3n est\u00E1ticamente a UN solo outlet, as\u00ED que con\n dos <ng-content/> (uno por rama del @if) la rama <a> quedaba SIN texto.\n ng-template + ngTemplateOutlet re-proyecta en la rama activa. -->\n<ng-template #inner>\n @if (leftIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"leftIcon()!\" [size]=\"iconSize()\" />\n }\n <span class=\"sui-link-button__text\"><ng-content /></span>\n @if (rightIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"rightIcon()!\" [size]=\"iconSize()\" />\n }\n</ng-template>\n\n@if (isAnchor()) {\n <a\n class=\"sui-link-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </a>\n} @else {\n <button\n class=\"sui-link-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline}.sui-link-button__el{appearance:none;margin:0;padding:0;border:0;background:transparent;text-decoration:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;word-break:break-word;font-family:var(--sui-font-sans);font-style:normal;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;color:var(--sui-link-button-color, currentColor);transition:transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-link-button__el:active:not(:disabled){transform:scale(.97)}.sui-link-button__el:hover:not(:disabled){color:var(--sui-link-button-color-hover, var(--sui-link-button-color))}.sui-link-button__el:focus-visible:not(:disabled){outline:none;color:var(--sui-link-button-color-focus, var(--sui-link-button-color))}.sui-link-button__el:disabled{cursor:not-allowed}.sui-link-button__el:hover:not(:disabled) .sui-link-button__text:after,.sui-link-button__el:focus-visible:not(:disabled) .sui-link-button__text:after{opacity:1}.sui-link-button__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-link-button__text{position:relative;display:inline-block}.sui-link-button__text:after{content:\"\";position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:currentColor;opacity:0;pointer-events:none}:host([data-sui-size=medium]) .sui-link-button__el{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500)}:host([data-sui-size=medium]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-size=small]) .sui-link-button__el{font-size:var(--sui-type-label-xs-size, 12px);line-height:var(--sui-type-label-xs-line, 16px);letter-spacing:var(--sui-type-label-xs-spacing, 0);font-weight:var(--sui-type-label-xs-weight, 500)}:host([data-sui-size=small]) .sui-link-button__icon{width:16px;height:16px}:host([data-sui-size=large]) .sui-link-button__el{font-size:var(--sui-type-label-md-size, 16px);line-height:var(--sui-type-label-md-line, 24px);letter-spacing:var(--sui-type-label-md-spacing, -.011em);font-weight:var(--sui-type-label-md-weight, 500)}:host([data-sui-size=large]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-variant=gray]){--sui-link-button-color: var(--sui-text-sub-600);--sui-link-button-color-hover: var(--sui-text-sub-600);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=black]){--sui-link-button-color: var(--sui-text-strong-950);--sui-link-button-color-hover: var(--sui-text-strong-950);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=primary]){--sui-link-button-color: var(--sui-primary-base);--sui-link-button-color-hover: var(--sui-primary-dark);--sui-link-button-color-focus: var(--sui-primary-base)}:host([data-sui-variant=error]){--sui-link-button-color: var(--sui-state-error-base);--sui-link-button-color-hover: var(--sui-red-700);--sui-link-button-color-focus: var(--sui-state-error-base)}:host([data-sui-variant=modifiable]){--sui-link-button-color: currentColor;--sui-link-button-color-hover: currentColor;--sui-link-button-color-focus: currentColor}:host([data-sui-underline]) .sui-link-button__text:after{opacity:1}:host([data-sui-disabled]) .sui-link-button__el,.sui-link-button__el:disabled{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-link-button__el:hover,:host([data-sui-disabled]) .sui-link-button__el:focus-visible,.sui-link-button__el:disabled:hover,.sui-link-button__el:disabled:focus-visible{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-link-button__el .sui-link-button__text:after,.sui-link-button__el:disabled .sui-link-button__text:after{opacity:0}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1078
1091
  }
1079
1092
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiLinkButton, decorators: [{
1080
1093
  type: Component,
@@ -1083,7 +1096,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1083
1096
  '[attr.data-sui-size]': 'size()',
1084
1097
  '[attr.data-sui-underline]': 'underline() ? "" : null',
1085
1098
  '[attr.data-sui-disabled]': 'disabled() ? "" : null',
1086
- }, template: "<!-- Contenido compartido por ambas ramas (a/button). Un \u00FAnico <ng-content/> :\n Angular asigna la proyecci\u00F3n est\u00E1ticamente a UN solo outlet, as\u00ED que con\n dos <ng-content/> (uno por rama del @if) la rama <a> quedaba SIN texto.\n ng-template + ngTemplateOutlet re-proyecta en la rama activa. -->\n<ng-template #inner>\n @if (leftIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"leftIcon()!\" [size]=\"iconSize()\" />\n }\n <span class=\"sui-link-button__text\"><ng-content /></span>\n @if (rightIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"rightIcon()!\" [size]=\"iconSize()\" />\n }\n</ng-template>\n\n@if (isAnchor()) {\n <a\n class=\"sui-link-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </a>\n} @else {\n <button\n class=\"sui-link-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline}.sui-link-button__el{appearance:none;margin:0;padding:0;border:0;background:transparent;text-decoration:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;word-break:break-word;font-family:var(--sui-font-sans);font-style:normal;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;color:var(--sui-link-button-color, currentColor);transition:transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-link-button__el:active:not(:disabled){transform:scale(.97)}.sui-link-button__el:hover:not(:disabled){color:var(--sui-link-button-color-hover, var(--sui-link-button-color))}.sui-link-button__el:focus-visible:not(:disabled){outline:none;color:var(--sui-link-button-color-focus, var(--sui-link-button-color))}.sui-link-button__el:disabled{cursor:not-allowed}.sui-link-button__el:hover:not(:disabled) .sui-link-button__text:after,.sui-link-button__el:focus-visible:not(:disabled) .sui-link-button__text:after{opacity:1}.sui-link-button__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-link-button__text{position:relative;display:inline-block}.sui-link-button__text:after{content:\"\";position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:currentColor;opacity:0;pointer-events:none}:host([data-sui-size=medium]) .sui-link-button__el{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500)}:host([data-sui-size=medium]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-size=small]) .sui-link-button__el{font-size:var(--sui-type-label-xs-size, 12px);line-height:var(--sui-type-label-xs-line, 16px);letter-spacing:var(--sui-type-label-xs-spacing, 0);font-weight:var(--sui-type-label-xs-weight, 500)}:host([data-sui-size=small]) .sui-link-button__icon{width:16px;height:16px}:host([data-sui-variant=gray]){--sui-link-button-color: var(--sui-text-sub-600);--sui-link-button-color-hover: var(--sui-text-sub-600);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=black]){--sui-link-button-color: var(--sui-text-strong-950);--sui-link-button-color-hover: var(--sui-text-strong-950);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=primary]){--sui-link-button-color: var(--sui-primary-base);--sui-link-button-color-hover: var(--sui-primary-dark);--sui-link-button-color-focus: var(--sui-primary-base)}:host([data-sui-variant=error]){--sui-link-button-color: var(--sui-state-error-base);--sui-link-button-color-hover: var(--sui-red-700);--sui-link-button-color-focus: var(--sui-state-error-base)}:host([data-sui-variant=modifiable]){--sui-link-button-color: currentColor;--sui-link-button-color-hover: currentColor;--sui-link-button-color-focus: currentColor}:host([data-sui-underline]) .sui-link-button__text:after{opacity:1}:host([data-sui-disabled]) .sui-link-button__el,.sui-link-button__el:disabled{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-link-button__el:hover,:host([data-sui-disabled]) .sui-link-button__el:focus-visible,.sui-link-button__el:disabled:hover,.sui-link-button__el:disabled:focus-visible{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-link-button__el .sui-link-button__text:after,.sui-link-button__el:disabled .sui-link-button__text:after{opacity:0}\n"] }]
1099
+ }, template: "<!-- Contenido compartido por ambas ramas (a/button). Un \u00FAnico <ng-content/> :\n Angular asigna la proyecci\u00F3n est\u00E1ticamente a UN solo outlet, as\u00ED que con\n dos <ng-content/> (uno por rama del @if) la rama <a> quedaba SIN texto.\n ng-template + ngTemplateOutlet re-proyecta en la rama activa. -->\n<ng-template #inner>\n @if (leftIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"leftIcon()!\" [size]=\"iconSize()\" />\n }\n <span class=\"sui-link-button__text\"><ng-content /></span>\n @if (rightIcon()) {\n <sui-icon class=\"sui-link-button__icon\" [name]=\"rightIcon()!\" [size]=\"iconSize()\" />\n }\n</ng-template>\n\n@if (isAnchor()) {\n <a\n class=\"sui-link-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </a>\n} @else {\n <button\n class=\"sui-link-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <ng-container [ngTemplateOutlet]=\"inner\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline}.sui-link-button__el{appearance:none;margin:0;padding:0;border:0;background:transparent;text-decoration:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;word-break:break-word;font-family:var(--sui-font-sans);font-style:normal;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;color:var(--sui-link-button-color, currentColor);transition:transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-link-button__el:active:not(:disabled){transform:scale(.97)}.sui-link-button__el:hover:not(:disabled){color:var(--sui-link-button-color-hover, var(--sui-link-button-color))}.sui-link-button__el:focus-visible:not(:disabled){outline:none;color:var(--sui-link-button-color-focus, var(--sui-link-button-color))}.sui-link-button__el:disabled{cursor:not-allowed}.sui-link-button__el:hover:not(:disabled) .sui-link-button__text:after,.sui-link-button__el:focus-visible:not(:disabled) .sui-link-button__text:after{opacity:1}.sui-link-button__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sui-link-button__text{position:relative;display:inline-block}.sui-link-button__text:after{content:\"\";position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:currentColor;opacity:0;pointer-events:none}:host([data-sui-size=medium]) .sui-link-button__el{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500)}:host([data-sui-size=medium]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-size=small]) .sui-link-button__el{font-size:var(--sui-type-label-xs-size, 12px);line-height:var(--sui-type-label-xs-line, 16px);letter-spacing:var(--sui-type-label-xs-spacing, 0);font-weight:var(--sui-type-label-xs-weight, 500)}:host([data-sui-size=small]) .sui-link-button__icon{width:16px;height:16px}:host([data-sui-size=large]) .sui-link-button__el{font-size:var(--sui-type-label-md-size, 16px);line-height:var(--sui-type-label-md-line, 24px);letter-spacing:var(--sui-type-label-md-spacing, -.011em);font-weight:var(--sui-type-label-md-weight, 500)}:host([data-sui-size=large]) .sui-link-button__icon{width:20px;height:20px}:host([data-sui-variant=gray]){--sui-link-button-color: var(--sui-text-sub-600);--sui-link-button-color-hover: var(--sui-text-sub-600);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=black]){--sui-link-button-color: var(--sui-text-strong-950);--sui-link-button-color-hover: var(--sui-text-strong-950);--sui-link-button-color-focus: var(--sui-text-strong-950)}:host([data-sui-variant=primary]){--sui-link-button-color: var(--sui-primary-base);--sui-link-button-color-hover: var(--sui-primary-dark);--sui-link-button-color-focus: var(--sui-primary-base)}:host([data-sui-variant=error]){--sui-link-button-color: var(--sui-state-error-base);--sui-link-button-color-hover: var(--sui-red-700);--sui-link-button-color-focus: var(--sui-state-error-base)}:host([data-sui-variant=modifiable]){--sui-link-button-color: currentColor;--sui-link-button-color-hover: currentColor;--sui-link-button-color-focus: currentColor}:host([data-sui-underline]) .sui-link-button__text:after{opacity:1}:host([data-sui-disabled]) .sui-link-button__el,.sui-link-button__el:disabled{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-link-button__el:hover,:host([data-sui-disabled]) .sui-link-button__el:focus-visible,.sui-link-button__el:disabled:hover,.sui-link-button__el:disabled:focus-visible{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-link-button__el .sui-link-button__text:after,.sui-link-button__el:disabled .sui-link-button__text:after{opacity:0}\n"] }]
1087
1100
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], underline: [{ type: i0.Input, args: [{ isSignal: true, alias: "underline", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], leftIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftIcon", required: false }] }], rightIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightIcon", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
1088
1101
 
1089
1102
  // xlarge: project extension (no-Figma), sigue el patrón Δ4px de sui-checkbox/radio/switch
@@ -1108,6 +1121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1108
1121
  * Sizes:
1109
1122
  * Large: 24×24 container, icon 20×20
1110
1123
  * Medium: 20×20 container, icon 16×16
1124
+ * 2xlarge 32 / 3xlarge 36 / 4xlarge 40 (extensión SUI, 03-10-2026): para
1125
+ * tocar con el dedo en mobile; íconos 20 / 20 / 24 como sui-button.
1111
1126
  *
1112
1127
  * Style=Stroke (node 189:3645):
1113
1128
  * bg: var(--sui-bg-white-0)
@@ -1167,6 +1182,9 @@ class SuiCompactButton {
1167
1182
  clicked = output();
1168
1183
  iconSize = computed(() => {
1169
1184
  switch (this.size()) {
1185
+ case '4xlarge': return 24;
1186
+ case '3xlarge': return 20;
1187
+ case '2xlarge': return 20;
1170
1188
  case 'xlarge': return 24;
1171
1189
  case 'large': return 20;
1172
1190
  default: return 16; // medium
@@ -1182,7 +1200,7 @@ class SuiCompactButton {
1182
1200
  this.clicked.emit(event);
1183
1201
  }
1184
1202
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiCompactButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
1185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiCompactButton, isStandalone: true, selector: "sui-compact-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, variantStyle: { classPropertyName: "variantStyle", publicName: "variantStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullRadius: { classPropertyName: "fullRadius", publicName: "fullRadius", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-style": "variantStyle()", "attr.data-sui-size": "size()", "attr.data-sui-full-radius": "fullRadius() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: "@if (isAnchor()) {\n <a\n class=\"sui-compact-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </a>\n} @else {\n <button\n class=\"sui-compact-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;vertical-align:middle}.sui-compact-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:2px;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box;border-radius:var(--sui-radius-6, 6px);transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-compact-button__el:active:not(:disabled){transform:scale(.92)}.sui-compact-button__el:disabled{cursor:not-allowed}:host .sui-compact-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}:host([data-sui-size=xlarge]) .sui-compact-button__el{width:28px;height:28px}:host([data-sui-size=large]) .sui-compact-button__el{width:24px;height:24px}:host([data-sui-size=medium]) .sui-compact-button__el{width:20px;height:20px}:host([data-sui-full-radius]) .sui-compact-button__el{border-radius:var(--sui-radius-full, 999px)}:host([data-sui-style=stroke]) .sui-compact-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-icon-strong-950)}:host([data-sui-style=stroke]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);border-color:transparent;color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-style=ghost]) .sui-compact-button__el{background:transparent;color:var(--sui-icon-sub-600)}:host([data-sui-style=ghost]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=ghost]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0)}:host([data-sui-style=modifiable]) .sui-compact-button__el{background:transparent;color:currentColor}:host([data-sui-style=modifiable]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-compact-button-hover-bg, var(--sui-white-alpha-16))}:host([data-sui-style=modifiable]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-compact-button-active-bg, var(--sui-white-alpha-16));border:1px solid var(--sui-static-white)}:host([data-sui-style=white]) .sui-compact-button__el{background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=white]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=white]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-disabled]) .sui-compact-button__el,.sui-compact-button__el:disabled{color:var(--sui-icon-disabled-300);cursor:not-allowed;pointer-events:none;opacity:.5}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiCompactButton, isStandalone: true, selector: "sui-compact-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, variantStyle: { classPropertyName: "variantStyle", publicName: "variantStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullRadius: { classPropertyName: "fullRadius", publicName: "fullRadius", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-style": "variantStyle()", "attr.data-sui-size": "size()", "attr.data-sui-full-radius": "fullRadius() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: "@if (isAnchor()) {\n <a\n class=\"sui-compact-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </a>\n} @else {\n <button\n class=\"sui-compact-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;vertical-align:middle}.sui-compact-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:2px;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box;border-radius:var(--sui-radius-6, 6px);transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-compact-button__el:active:not(:disabled){transform:scale(.92)}.sui-compact-button__el:disabled{cursor:not-allowed}:host .sui-compact-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}:host([data-sui-size=\"4xlarge\"]) .sui-compact-button__el{width:40px;height:40px}:host([data-sui-size=\"3xlarge\"]) .sui-compact-button__el{width:36px;height:36px}:host([data-sui-size=\"2xlarge\"]) .sui-compact-button__el{width:32px;height:32px}:host([data-sui-size=xlarge]) .sui-compact-button__el{width:28px;height:28px}:host([data-sui-size=large]) .sui-compact-button__el{width:24px;height:24px}:host([data-sui-size=medium]) .sui-compact-button__el{width:20px;height:20px}:host([data-sui-full-radius]) .sui-compact-button__el{border-radius:var(--sui-radius-full, 999px)}:host([data-sui-style=stroke]) .sui-compact-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-icon-strong-950)}:host([data-sui-style=stroke]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);border-color:transparent;color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-style=ghost]) .sui-compact-button__el{background:transparent;color:var(--sui-icon-sub-600)}:host([data-sui-style=ghost]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=ghost]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0)}:host([data-sui-style=modifiable]) .sui-compact-button__el{background:transparent;color:currentColor}:host([data-sui-style=modifiable]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-compact-button-hover-bg, var(--sui-white-alpha-16))}:host([data-sui-style=modifiable]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-compact-button-active-bg, var(--sui-white-alpha-16));border:1px solid var(--sui-static-white)}:host([data-sui-style=white]) .sui-compact-button__el{background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=white]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=white]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-disabled]) .sui-compact-button__el,.sui-compact-button__el:disabled{color:var(--sui-icon-disabled-300);cursor:not-allowed;pointer-events:none;opacity:.5}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1186
1204
  }
1187
1205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiCompactButton, decorators: [{
1188
1206
  type: Component,
@@ -1191,7 +1209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1191
1209
  '[attr.data-sui-size]': 'size()',
1192
1210
  '[attr.data-sui-full-radius]': 'fullRadius() ? "" : null',
1193
1211
  '[attr.data-sui-disabled]': 'disabled() ? "" : null',
1194
- }, template: "@if (isAnchor()) {\n <a\n class=\"sui-compact-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </a>\n} @else {\n <button\n class=\"sui-compact-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;vertical-align:middle}.sui-compact-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:2px;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box;border-radius:var(--sui-radius-6, 6px);transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-compact-button__el:active:not(:disabled){transform:scale(.92)}.sui-compact-button__el:disabled{cursor:not-allowed}:host .sui-compact-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}:host([data-sui-size=xlarge]) .sui-compact-button__el{width:28px;height:28px}:host([data-sui-size=large]) .sui-compact-button__el{width:24px;height:24px}:host([data-sui-size=medium]) .sui-compact-button__el{width:20px;height:20px}:host([data-sui-full-radius]) .sui-compact-button__el{border-radius:var(--sui-radius-full, 999px)}:host([data-sui-style=stroke]) .sui-compact-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-icon-strong-950)}:host([data-sui-style=stroke]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);border-color:transparent;color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-style=ghost]) .sui-compact-button__el{background:transparent;color:var(--sui-icon-sub-600)}:host([data-sui-style=ghost]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=ghost]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0)}:host([data-sui-style=modifiable]) .sui-compact-button__el{background:transparent;color:currentColor}:host([data-sui-style=modifiable]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-compact-button-hover-bg, var(--sui-white-alpha-16))}:host([data-sui-style=modifiable]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-compact-button-active-bg, var(--sui-white-alpha-16));border:1px solid var(--sui-static-white)}:host([data-sui-style=white]) .sui-compact-button__el{background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=white]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=white]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-disabled]) .sui-compact-button__el,.sui-compact-button__el:disabled{color:var(--sui-icon-disabled-300);cursor:not-allowed;pointer-events:none;opacity:.5}\n"] }]
1212
+ }, template: "@if (isAnchor()) {\n <a\n class=\"sui-compact-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </a>\n} @else {\n <button\n class=\"sui-compact-button__el\"\n [type]=\"type()\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon [name]=\"icon()\" [size]=\"iconSize()\" />\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;vertical-align:middle}.sui-compact-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:2px;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box;border-radius:var(--sui-radius-6, 6px);transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-compact-button__el:active:not(:disabled){transform:scale(.92)}.sui-compact-button__el:disabled{cursor:not-allowed}:host .sui-compact-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}:host([data-sui-size=\"4xlarge\"]) .sui-compact-button__el{width:40px;height:40px}:host([data-sui-size=\"3xlarge\"]) .sui-compact-button__el{width:36px;height:36px}:host([data-sui-size=\"2xlarge\"]) .sui-compact-button__el{width:32px;height:32px}:host([data-sui-size=xlarge]) .sui-compact-button__el{width:28px;height:28px}:host([data-sui-size=large]) .sui-compact-button__el{width:24px;height:24px}:host([data-sui-size=medium]) .sui-compact-button__el{width:20px;height:20px}:host([data-sui-full-radius]) .sui-compact-button__el{border-radius:var(--sui-radius-full, 999px)}:host([data-sui-style=stroke]) .sui-compact-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-icon-strong-950)}:host([data-sui-style=stroke]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);border-color:transparent;color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-style=ghost]) .sui-compact-button__el{background:transparent;color:var(--sui-icon-sub-600)}:host([data-sui-style=ghost]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=ghost]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0)}:host([data-sui-style=modifiable]) .sui-compact-button__el{background:transparent;color:currentColor}:host([data-sui-style=modifiable]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-compact-button-hover-bg, var(--sui-white-alpha-16))}:host([data-sui-style=modifiable]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-compact-button-active-bg, var(--sui-white-alpha-16));border:1px solid var(--sui-static-white)}:host([data-sui-style=white]) .sui-compact-button__el{background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=white]) .sui-compact-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50);color:var(--sui-icon-strong-950)}:host([data-sui-style=white]) .sui-compact-button__el:active:not(:disabled){background:var(--sui-bg-surface-800);color:var(--sui-icon-white-0);box-shadow:none}:host([data-sui-disabled]) .sui-compact-button__el,.sui-compact-button__el:disabled{color:var(--sui-icon-disabled-300);cursor:not-allowed;pointer-events:none;opacity:.5}\n"] }]
1195
1213
  }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], variantStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "variantStyle", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fullRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullRadius", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: true }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
1196
1214
 
1197
1215
  /**
@@ -1982,6 +2000,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1982
2000
  * · both-icons (226:5344): p4 (cuadrado), gap 4
1983
2001
  * · only-icon (226:5348): p4 → 24×24, sin gap
1984
2002
  *
2003
+ * Extensión SUI (03-10-2026, pedido del dueño) — tamaños para mobile, fuera
2004
+ * del Figma, con la escala de `sui-button`:
2005
+ * large (48) — Label/Medium (16/24), icon 20px: px20 py11 · icono px18 · p11 → 48², gap 8 (py −1 del borde)
2006
+ * medium (40) — Label/Small (14/20), icon 20px: px18 py9 · icono px16 · p9 → 40², gap 8 (py −1 del borde)
2007
+ *
1985
2008
  * States × visual:
1986
2009
  * Default: bg-white-0 + border stroke-soft-200 + text-sub-600
1987
2010
  * Hover: bg-weak-50 + border stroke-soft-200 + text-sub-600
@@ -2042,9 +2065,13 @@ class SuiButtonGroupItem {
2042
2065
  return 'right';
2043
2066
  return 'none';
2044
2067
  }, ...(ngDevMode ? [{ debugName: "iconLayout" }] : /* istanbul ignore next */ []));
2045
- /** Tamaño del icono en px según size del item (small/xsmall=20, 2xsmall=16) */
2068
+ /** Tamaño del icono en px según size del item (large/medium/small/xsmall=20, 2xsmall=16).
2069
+ * En large y medium el ícono se queda en 20, igual que `sui-button`: el ícono
2070
+ * que acompaña texto no escala. */
2046
2071
  iconSize = computed(() => {
2047
2072
  switch (this.size()) {
2073
+ case 'large': return 20;
2074
+ case 'medium': return 20;
2048
2075
  case 'small': return 20;
2049
2076
  case 'xsmall': return 20;
2050
2077
  case '2xsmall': return 16;
@@ -2057,7 +2084,7 @@ class SuiButtonGroupItem {
2057
2084
  this.clicked.emit();
2058
2085
  }
2059
2086
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiButtonGroupItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
2060
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiButtonGroupItem, isStandalone: true, selector: "sui-button-group-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIcon: { classPropertyName: "rightIcon", publicName: "rightIcon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-size": "size()", "attr.data-sui-state": "state()", "attr.data-sui-only-icon": "onlyIcon() ? \"\" : null", "attr.data-sui-icons": "iconLayout()" } }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"sui-button-group-item__inner\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-pressed]=\"active() ? 'true' : 'false'\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (leftIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"leftIcon()\" [size]=\"iconSize()\" />\n }\n @if (label()) {\n <span class=\"sui-button-group-item__label\">{{ label() }}</span>\n }\n @if (rightIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"rightIcon()\" [size]=\"iconSize()\" />\n }\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-button-group-item__inner{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;appearance:none;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-sizing:border-box;color:var(--sui-text-sub-600);text-align:center;cursor:pointer;overflow:clip;white-space:nowrap;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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-button-group-item__inner:active{transform:none}:host([data-sui-first][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-first][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-8);border-bottom-left-radius:var(--sui-radius-8)}:host([data-sui-last][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-last][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-8);border-bottom-right-radius:var(--sui-radius-8)}:host([data-sui-first][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-6);border-bottom-left-radius:var(--sui-radius-6)}:host([data-sui-last][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-6);border-bottom-right-radius:var(--sui-radius-6)}:host([data-sui-size=small]) .sui-button-group-item__inner{gap:8px;padding:8px 16px;min-height:36px}:host([data-sui-size=small][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=small][data-sui-icons=right]) .sui-button-group-item__inner{padding:8px 14px}:host([data-sui-size=small][data-sui-icons=both]) .sui-button-group-item__inner{padding:8px}:host([data-sui-size=small][data-sui-icons=only]) .sui-button-group-item__inner{padding:8px;width:36px;height:36px}:host([data-sui-size=xsmall]) .sui-button-group-item__inner{gap:6px;padding:6px 14px;min-height:32px}:host([data-sui-size=xsmall][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=xsmall][data-sui-icons=right]) .sui-button-group-item__inner{padding:6px 12px}:host([data-sui-size=xsmall][data-sui-icons=both]) .sui-button-group-item__inner{padding:6px}:host([data-sui-size=xsmall][data-sui-icons=only]) .sui-button-group-item__inner{padding:6px;width:32px;height:32px}:host([data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{gap:4px;padding:4px 12px;min-height:24px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing)}:host([data-sui-size=\"2xsmall\"][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=\"2xsmall\"][data-sui-icons=right]) .sui-button-group-item__inner{padding:4px 10px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=both]) .sui-button-group-item__inner{padding:4px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=only]) .sui-button-group-item__inner{padding:4px;width:24px;height:24px}:host([data-sui-state=default]) .sui-button-group-item__inner:hover{background:var(--sui-bg-weak-50)}:host([data-sui-state=active]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);color:var(--sui-text-strong-950)}:host([data-sui-state=disabled]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300);pointer-events:none}.sui-button-group-item__inner:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px;z-index:1;position:relative}.sui-button-group-item__icon{flex-shrink:0}.sui-button-group-item__label{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2087
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiButtonGroupItem, isStandalone: true, selector: "sui-button-group-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIcon: { classPropertyName: "rightIcon", publicName: "rightIcon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-size": "size()", "attr.data-sui-state": "state()", "attr.data-sui-only-icon": "onlyIcon() ? \"\" : null", "attr.data-sui-icons": "iconLayout()" } }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"sui-button-group-item__inner\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-pressed]=\"active() ? 'true' : 'false'\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (leftIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"leftIcon()\" [size]=\"iconSize()\" />\n }\n @if (label()) {\n <span class=\"sui-button-group-item__label\">{{ label() }}</span>\n }\n @if (rightIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"rightIcon()\" [size]=\"iconSize()\" />\n }\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-button-group-item__inner{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;appearance:none;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-sizing:border-box;color:var(--sui-text-sub-600);text-align:center;cursor:pointer;overflow:clip;white-space:nowrap;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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-button-group-item__inner:active{transform:none}:host([data-sui-first][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-first][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-8);border-bottom-left-radius:var(--sui-radius-8)}:host([data-sui-last][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-last][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-8);border-bottom-right-radius:var(--sui-radius-8)}:host([data-sui-first][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-6);border-bottom-left-radius:var(--sui-radius-6)}:host([data-sui-last][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-6);border-bottom-right-radius:var(--sui-radius-6)}:host([data-sui-size=small]) .sui-button-group-item__inner{gap:8px;padding:7px 16px;min-height:36px}:host([data-sui-size=small][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=small][data-sui-icons=right]) .sui-button-group-item__inner{padding:7px 14px}:host([data-sui-size=small][data-sui-icons=both]) .sui-button-group-item__inner{padding:7px 8px}:host([data-sui-size=small][data-sui-icons=only]) .sui-button-group-item__inner{padding:8px;width:36px;height:36px}:host([data-sui-size=xsmall]) .sui-button-group-item__inner{gap:6px;padding:5px 14px;min-height:32px}:host([data-sui-size=xsmall][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=xsmall][data-sui-icons=right]) .sui-button-group-item__inner{padding:5px 12px}:host([data-sui-size=xsmall][data-sui-icons=both]) .sui-button-group-item__inner{padding:5px 6px}:host([data-sui-size=xsmall][data-sui-icons=only]) .sui-button-group-item__inner{padding:6px;width:32px;height:32px}:host([data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{gap:4px;padding:3px 12px;min-height:24px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing)}:host([data-sui-size=\"2xsmall\"][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=\"2xsmall\"][data-sui-icons=right]) .sui-button-group-item__inner{padding:3px 10px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=both]) .sui-button-group-item__inner{padding:3px 4px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=only]) .sui-button-group-item__inner{padding:4px;width:24px;height:24px}:host([data-sui-size=medium]) .sui-button-group-item__inner{gap:8px;padding:9px 18px;min-height:40px}:host([data-sui-size=medium][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=medium][data-sui-icons=right]) .sui-button-group-item__inner{padding:9px 16px}:host([data-sui-size=medium][data-sui-icons=both]) .sui-button-group-item__inner{padding:9px}:host([data-sui-size=medium][data-sui-icons=only]) .sui-button-group-item__inner{padding:9px;width:40px;height:40px}:host([data-sui-size=large]) .sui-button-group-item__inner{gap:8px;padding:11px 20px;min-height:48px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=large][data-sui-icons=right]) .sui-button-group-item__inner{padding:11px 18px}:host([data-sui-size=large][data-sui-icons=both]) .sui-button-group-item__inner{padding:11px}:host([data-sui-size=large][data-sui-icons=only]) .sui-button-group-item__inner{padding:11px;width:48px;height:48px}:host([data-sui-first][data-sui-size=medium]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-10);border-bottom-left-radius:var(--sui-radius-10)}:host([data-sui-last][data-sui-size=medium]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-10);border-bottom-right-radius:var(--sui-radius-10)}:host([data-sui-first][data-sui-size=large]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-12);border-bottom-left-radius:var(--sui-radius-12)}:host([data-sui-last][data-sui-size=large]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-12);border-bottom-right-radius:var(--sui-radius-12)}:host([data-sui-state=default]) .sui-button-group-item__inner:hover{background:var(--sui-bg-weak-50)}:host([data-sui-state=active]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);color:var(--sui-text-strong-950)}:host([data-sui-state=disabled]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300);pointer-events:none}.sui-button-group-item__inner:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px;z-index:1;position:relative}.sui-button-group-item__icon{flex-shrink:0}.sui-button-group-item__label{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2061
2088
  }
2062
2089
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiButtonGroupItem, decorators: [{
2063
2090
  type: Component,
@@ -2069,7 +2096,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2069
2096
  Gobierna el padding-x adaptativo por size (Figma reduce px cuando hay
2070
2097
  icono de un lado, colapsa a padding cuadrado cuando hay dos / only). */
2071
2098
  '[attr.data-sui-icons]': 'iconLayout()',
2072
- }, template: "<button\n type=\"button\"\n class=\"sui-button-group-item__inner\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-pressed]=\"active() ? 'true' : 'false'\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (leftIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"leftIcon()\" [size]=\"iconSize()\" />\n }\n @if (label()) {\n <span class=\"sui-button-group-item__label\">{{ label() }}</span>\n }\n @if (rightIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"rightIcon()\" [size]=\"iconSize()\" />\n }\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-button-group-item__inner{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;appearance:none;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-sizing:border-box;color:var(--sui-text-sub-600);text-align:center;cursor:pointer;overflow:clip;white-space:nowrap;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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-button-group-item__inner:active{transform:none}:host([data-sui-first][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-first][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-8);border-bottom-left-radius:var(--sui-radius-8)}:host([data-sui-last][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-last][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-8);border-bottom-right-radius:var(--sui-radius-8)}:host([data-sui-first][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-6);border-bottom-left-radius:var(--sui-radius-6)}:host([data-sui-last][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-6);border-bottom-right-radius:var(--sui-radius-6)}:host([data-sui-size=small]) .sui-button-group-item__inner{gap:8px;padding:8px 16px;min-height:36px}:host([data-sui-size=small][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=small][data-sui-icons=right]) .sui-button-group-item__inner{padding:8px 14px}:host([data-sui-size=small][data-sui-icons=both]) .sui-button-group-item__inner{padding:8px}:host([data-sui-size=small][data-sui-icons=only]) .sui-button-group-item__inner{padding:8px;width:36px;height:36px}:host([data-sui-size=xsmall]) .sui-button-group-item__inner{gap:6px;padding:6px 14px;min-height:32px}:host([data-sui-size=xsmall][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=xsmall][data-sui-icons=right]) .sui-button-group-item__inner{padding:6px 12px}:host([data-sui-size=xsmall][data-sui-icons=both]) .sui-button-group-item__inner{padding:6px}:host([data-sui-size=xsmall][data-sui-icons=only]) .sui-button-group-item__inner{padding:6px;width:32px;height:32px}:host([data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{gap:4px;padding:4px 12px;min-height:24px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing)}:host([data-sui-size=\"2xsmall\"][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=\"2xsmall\"][data-sui-icons=right]) .sui-button-group-item__inner{padding:4px 10px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=both]) .sui-button-group-item__inner{padding:4px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=only]) .sui-button-group-item__inner{padding:4px;width:24px;height:24px}:host([data-sui-state=default]) .sui-button-group-item__inner:hover{background:var(--sui-bg-weak-50)}:host([data-sui-state=active]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);color:var(--sui-text-strong-950)}:host([data-sui-state=disabled]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300);pointer-events:none}.sui-button-group-item__inner:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px;z-index:1;position:relative}.sui-button-group-item__icon{flex-shrink:0}.sui-button-group-item__label{display:inline-flex;align-items:center}\n"] }]
2099
+ }, template: "<button\n type=\"button\"\n class=\"sui-button-group-item__inner\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-pressed]=\"active() ? 'true' : 'false'\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (leftIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"leftIcon()\" [size]=\"iconSize()\" />\n }\n @if (label()) {\n <span class=\"sui-button-group-item__label\">{{ label() }}</span>\n }\n @if (rightIcon()) {\n <sui-icon class=\"sui-button-group-item__icon\" [name]=\"rightIcon()\" [size]=\"iconSize()\" />\n }\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-button-group-item__inner{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;appearance:none;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-sizing:border-box;color:var(--sui-text-sub-600);text-align:center;cursor:pointer;overflow:clip;white-space:nowrap;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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-button-group-item__inner:active{transform:none}:host([data-sui-first][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-first][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-8);border-bottom-left-radius:var(--sui-radius-8)}:host([data-sui-last][data-sui-size=small]) .sui-button-group-item__inner,:host([data-sui-last][data-sui-size=xsmall]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-8);border-bottom-right-radius:var(--sui-radius-8)}:host([data-sui-first][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-6);border-bottom-left-radius:var(--sui-radius-6)}:host([data-sui-last][data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-6);border-bottom-right-radius:var(--sui-radius-6)}:host([data-sui-size=small]) .sui-button-group-item__inner{gap:8px;padding:7px 16px;min-height:36px}:host([data-sui-size=small][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=small][data-sui-icons=right]) .sui-button-group-item__inner{padding:7px 14px}:host([data-sui-size=small][data-sui-icons=both]) .sui-button-group-item__inner{padding:7px 8px}:host([data-sui-size=small][data-sui-icons=only]) .sui-button-group-item__inner{padding:8px;width:36px;height:36px}:host([data-sui-size=xsmall]) .sui-button-group-item__inner{gap:6px;padding:5px 14px;min-height:32px}:host([data-sui-size=xsmall][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=xsmall][data-sui-icons=right]) .sui-button-group-item__inner{padding:5px 12px}:host([data-sui-size=xsmall][data-sui-icons=both]) .sui-button-group-item__inner{padding:5px 6px}:host([data-sui-size=xsmall][data-sui-icons=only]) .sui-button-group-item__inner{padding:6px;width:32px;height:32px}:host([data-sui-size=\"2xsmall\"]) .sui-button-group-item__inner{gap:4px;padding:3px 12px;min-height:24px;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing)}:host([data-sui-size=\"2xsmall\"][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=\"2xsmall\"][data-sui-icons=right]) .sui-button-group-item__inner{padding:3px 10px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=both]) .sui-button-group-item__inner{padding:3px 4px}:host([data-sui-size=\"2xsmall\"][data-sui-icons=only]) .sui-button-group-item__inner{padding:4px;width:24px;height:24px}:host([data-sui-size=medium]) .sui-button-group-item__inner{gap:8px;padding:9px 18px;min-height:40px}:host([data-sui-size=medium][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=medium][data-sui-icons=right]) .sui-button-group-item__inner{padding:9px 16px}:host([data-sui-size=medium][data-sui-icons=both]) .sui-button-group-item__inner{padding:9px}:host([data-sui-size=medium][data-sui-icons=only]) .sui-button-group-item__inner{padding:9px;width:40px;height:40px}:host([data-sui-size=large]) .sui-button-group-item__inner{gap:8px;padding:11px 20px;min-height:48px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large][data-sui-icons=left]) .sui-button-group-item__inner,:host([data-sui-size=large][data-sui-icons=right]) .sui-button-group-item__inner{padding:11px 18px}:host([data-sui-size=large][data-sui-icons=both]) .sui-button-group-item__inner{padding:11px}:host([data-sui-size=large][data-sui-icons=only]) .sui-button-group-item__inner{padding:11px;width:48px;height:48px}:host([data-sui-first][data-sui-size=medium]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-10);border-bottom-left-radius:var(--sui-radius-10)}:host([data-sui-last][data-sui-size=medium]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-10);border-bottom-right-radius:var(--sui-radius-10)}:host([data-sui-first][data-sui-size=large]) .sui-button-group-item__inner{border-top-left-radius:var(--sui-radius-12);border-bottom-left-radius:var(--sui-radius-12)}:host([data-sui-last][data-sui-size=large]) .sui-button-group-item__inner{border-top-right-radius:var(--sui-radius-12);border-bottom-right-radius:var(--sui-radius-12)}:host([data-sui-state=default]) .sui-button-group-item__inner:hover{background:var(--sui-bg-weak-50)}:host([data-sui-state=active]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);color:var(--sui-text-strong-950)}:host([data-sui-state=disabled]) .sui-button-group-item__inner{background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300);pointer-events:none}.sui-button-group-item__inner:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px;z-index:1;position:relative}.sui-button-group-item__icon{flex-shrink:0}.sui-button-group-item__label{display:inline-flex;align-items:center}\n"] }]
2073
2100
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], leftIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftIcon", required: false }] }], rightIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightIcon", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
2074
2101
 
2075
2102
  /**
@@ -2089,6 +2116,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2089
2116
  * - Group container: bg-white-0, border 1px stroke-soft-200, rounded:
2090
2117
  * · small / xsmall → radius-8 (8px)
2091
2118
  * · 2xsmall → radius-6 (6px)
2119
+ * - Extensión SUI (03-10-2026): medium (40, radius-10) y large (48, radius-12)
2120
+ * para tocar con el dedo en mobile; fuera del Figma, escala de sui-button.
2092
2121
  * - overflow: clip (corta los bordes externos de items en las esquinas)
2093
2122
  *
2094
2123
  * Behavior:
@@ -2157,7 +2186,7 @@ class SuiButtonGroup {
2157
2186
  }
2158
2187
  }
2159
2188
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
2160
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiButtonGroup, isStandalone: true, selector: "sui-button-group", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "group" }, properties: { "attr.data-sui-size": "size()", "attr.data-sui-multi": "multi() ? \"\" : null", "attr.aria-label": "ariaLabel() || null" } }, ngImport: i0, template: "@for (entry of items(); track entry.value; let first = $first; let last = $last) {\n <sui-button-group-item\n class=\"sui-button-group__item\"\n [attr.data-sui-first]=\"first ? '' : null\"\n [attr.data-sui-last]=\"last ? '' : null\"\n [size]=\"size()\"\n [label]=\"entry.label ?? ''\"\n [leftIcon]=\"entry.leftIcon ?? ''\"\n [rightIcon]=\"entry.rightIcon ?? ''\"\n [active]=\"isActive(entry)\"\n [disabled]=\"entry.disabled ?? false\"\n [ariaLabel]=\"entry.ariaLabel ?? ''\"\n (clicked)=\"onItemClicked(entry)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;overflow:clip;box-sizing:border-box;isolation:isolate}:host([data-sui-size=small]),:host([data-sui-size=xsmall]){border-radius:var(--sui-radius-8)}:host([data-sui-size=\"2xsmall\"]){flex-wrap:wrap;align-content:flex-start;gap:0;border-radius:var(--sui-radius-6)}.sui-button-group__item{margin-left:-1px}.sui-button-group__item[data-sui-first]{margin-left:0}\n"], dependencies: [{ kind: "component", type: SuiButtonGroupItem, selector: "sui-button-group-item", inputs: ["label", "leftIcon", "rightIcon", "size", "active", "disabled", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiButtonGroup, isStandalone: true, selector: "sui-button-group", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "group" }, properties: { "attr.data-sui-size": "size()", "attr.data-sui-multi": "multi() ? \"\" : null", "attr.aria-label": "ariaLabel() || null" } }, ngImport: i0, template: "@for (entry of items(); track entry.value; let first = $first; let last = $last) {\n <sui-button-group-item\n class=\"sui-button-group__item\"\n [attr.data-sui-first]=\"first ? '' : null\"\n [attr.data-sui-last]=\"last ? '' : null\"\n [size]=\"size()\"\n [label]=\"entry.label ?? ''\"\n [leftIcon]=\"entry.leftIcon ?? ''\"\n [rightIcon]=\"entry.rightIcon ?? ''\"\n [active]=\"isActive(entry)\"\n [disabled]=\"entry.disabled ?? false\"\n [ariaLabel]=\"entry.ariaLabel ?? ''\"\n (clicked)=\"onItemClicked(entry)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;overflow:clip;box-sizing:border-box;isolation:isolate}:host([data-sui-size=small]),:host([data-sui-size=xsmall]){border-radius:var(--sui-radius-8)}:host([data-sui-size=medium]){border-radius:var(--sui-radius-10)}:host([data-sui-size=large]){border-radius:var(--sui-radius-12)}:host([data-sui-size=\"2xsmall\"]){flex-wrap:wrap;align-content:flex-start;gap:0;border-radius:var(--sui-radius-6)}.sui-button-group__item{margin-left:-1px}.sui-button-group__item[data-sui-first]{margin-left:0}\n"], dependencies: [{ kind: "component", type: SuiButtonGroupItem, selector: "sui-button-group-item", inputs: ["label", "leftIcon", "rightIcon", "size", "active", "disabled", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2161
2190
  }
2162
2191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiButtonGroup, decorators: [{
2163
2192
  type: Component,
@@ -2166,7 +2195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
2166
2195
  '[attr.data-sui-size]': 'size()',
2167
2196
  '[attr.data-sui-multi]': 'multi() ? "" : null',
2168
2197
  '[attr.aria-label]': 'ariaLabel() || null',
2169
- }, template: "@for (entry of items(); track entry.value; let first = $first; let last = $last) {\n <sui-button-group-item\n class=\"sui-button-group__item\"\n [attr.data-sui-first]=\"first ? '' : null\"\n [attr.data-sui-last]=\"last ? '' : null\"\n [size]=\"size()\"\n [label]=\"entry.label ?? ''\"\n [leftIcon]=\"entry.leftIcon ?? ''\"\n [rightIcon]=\"entry.rightIcon ?? ''\"\n [active]=\"isActive(entry)\"\n [disabled]=\"entry.disabled ?? false\"\n [ariaLabel]=\"entry.ariaLabel ?? ''\"\n (clicked)=\"onItemClicked(entry)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;overflow:clip;box-sizing:border-box;isolation:isolate}:host([data-sui-size=small]),:host([data-sui-size=xsmall]){border-radius:var(--sui-radius-8)}:host([data-sui-size=\"2xsmall\"]){flex-wrap:wrap;align-content:flex-start;gap:0;border-radius:var(--sui-radius-6)}.sui-button-group__item{margin-left:-1px}.sui-button-group__item[data-sui-first]{margin-left:0}\n"] }]
2198
+ }, template: "@for (entry of items(); track entry.value; let first = $first; let last = $last) {\n <sui-button-group-item\n class=\"sui-button-group__item\"\n [attr.data-sui-first]=\"first ? '' : null\"\n [attr.data-sui-last]=\"last ? '' : null\"\n [size]=\"size()\"\n [label]=\"entry.label ?? ''\"\n [leftIcon]=\"entry.leftIcon ?? ''\"\n [rightIcon]=\"entry.rightIcon ?? ''\"\n [active]=\"isActive(entry)\"\n [disabled]=\"entry.disabled ?? false\"\n [ariaLabel]=\"entry.ariaLabel ?? ''\"\n (clicked)=\"onItemClicked(entry)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;overflow:clip;box-sizing:border-box;isolation:isolate}:host([data-sui-size=small]),:host([data-sui-size=xsmall]){border-radius:var(--sui-radius-8)}:host([data-sui-size=medium]){border-radius:var(--sui-radius-10)}:host([data-sui-size=large]){border-radius:var(--sui-radius-12)}:host([data-sui-size=\"2xsmall\"]){flex-wrap:wrap;align-content:flex-start;gap:0;border-radius:var(--sui-radius-6)}.sui-button-group__item{margin-left:-1px}.sui-button-group__item[data-sui-first]{margin-left:0}\n"] }]
2170
2199
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], multi: [{ type: i0.Input, args: [{ isSignal: true, alias: "multi", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], change: [{ type: i0.Output, args: ["change"] }] } });
2171
2200
 
2172
2201
  /**
@@ -3138,6 +3167,24 @@ class SuiCheckboxLabel {
3138
3167
  ? { ...cfg, rel: cfg.rel ?? (cfg.target === '_blank' ? 'noopener noreferrer' : undefined) }
3139
3168
  : null;
3140
3169
  }, ...(ngDevMode ? [{ debugName: "linkCfg" }] : /* istanbul ignore next */ []));
3170
+ /**
3171
+ * Tamaño. `medium` (default, Figma): control 20, label 14/20.
3172
+ * Extensión SUI (03-10-2026) para tocar en mobile:
3173
+ * - `large`: control 24, label 16/24, sublabel y descripción 14/20, badge medium.
3174
+ * - `xlarge`: control 28, label 16/24, sublabel y descripción 14/20, badge large.
3175
+ * El badge toma este default solo si su config no trae `size`.
3176
+ */
3177
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
3178
+ /** Badge por default según el tamaño (si la config no fija uno). */
3179
+ badgeSize = computed(() => {
3180
+ switch (this.size()) {
3181
+ case 'large': return 'medium';
3182
+ case 'xlarge': return 'large';
3183
+ default: return 'small';
3184
+ }
3185
+ }, ...(ngDevMode ? [{ debugName: "badgeSize" }] : /* istanbul ignore next */ []));
3186
+ /** El link-button tiene dos tamaños: small (12/16) en Figma, medium (14/20) en mobile. */
3187
+ linkSize = computed(() => this.size() === 'medium' ? 'small' : 'medium', ...(ngDevMode ? [{ debugName: "linkSize" }] : /* istanbul ignore next */ []));
3141
3188
  /** Si true, invierte orden: [content] [checkbox] (label a la izquierda). */
3142
3189
  flip = input(false, ...(ngDevMode ? [{ debugName: "flip" }] : /* istanbul ignore next */ []));
3143
3190
  /** Deshabilita el checkbox + wrapper. */
@@ -3200,13 +3247,13 @@ class SuiCheckboxLabel {
3200
3247
  this._disabledByForm.set(isDisabled);
3201
3248
  }
3202
3249
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiCheckboxLabel, deps: [], target: i0.ɵɵFactoryTarget.Component });
3203
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiCheckboxLabel, isStandalone: true, selector: "sui-checkbox-label", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", linkClick: "linkClick" }, host: { listeners: { "click": "onLabelClick($event)" }, properties: { "attr.data-sui-flip": "flip() ? \"\" : null", "attr.data-sui-with-description": "description() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null" } }, providers: [
3250
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiCheckboxLabel, isStandalone: true, selector: "sui-checkbox-label", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", linkClick: "linkClick" }, host: { listeners: { "click": "onLabelClick($event)" }, properties: { "attr.data-sui-size": "size()", "attr.data-sui-flip": "flip() ? \"\" : null", "attr.data-sui-with-description": "description() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null" } }, providers: [
3204
3251
  {
3205
3252
  provide: NG_VALUE_ACCESSOR,
3206
3253
  useExisting: forwardRef(() => SuiCheckboxLabel),
3207
3254
  multi: true,
3208
3255
  },
3209
- ], ngImport: i0, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (checkbox primero). -->\n<sui-checkbox\n class=\"sui-checkbox-label__checkbox\"\n [checked]=\"active()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n/>\n\n<div class=\"sui-checkbox-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-checkbox-label__text\">\n <div class=\"sui-checkbox-label__title\">\n <span class=\"sui-checkbox-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-checkbox-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-checkbox-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-checkbox-label__checkbox{order:2}:host([data-sui-flip]) .sui-checkbox-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-checkbox-label__content{opacity:.5}.sui-checkbox-label__checkbox{flex-shrink:0}.sui-checkbox-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-checkbox-label__content{gap:10px}.sui-checkbox-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-checkbox-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-checkbox-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-checkbox-label__label{font-weight:500}.sui-checkbox-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-checkbox-label__badge{flex-shrink:0}.sui-checkbox-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}\n"], dependencies: [{ kind: "component", type: SuiCheckbox, selector: "sui-checkbox", inputs: ["size", "checked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiLinkButton, selector: "sui-link-button", inputs: ["variant", "size", "underline", "disabled", "leftIcon", "rightIcon", "href", "target", "rel", "type", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3256
+ ], ngImport: i0, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (checkbox primero). -->\n<sui-checkbox\n class=\"sui-checkbox-label__checkbox\"\n [size]=\"size()\"\n [checked]=\"active()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n/>\n\n<div class=\"sui-checkbox-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-checkbox-label__text\">\n <div class=\"sui-checkbox-label__title\">\n <span class=\"sui-checkbox-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-checkbox-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? badgeSize()\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-checkbox-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n [size]=\"linkSize()\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-checkbox-label__checkbox{order:2}:host([data-sui-flip]) .sui-checkbox-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-checkbox-label__content{opacity:.5}.sui-checkbox-label__checkbox{flex-shrink:0}.sui-checkbox-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-checkbox-label__content{gap:10px}.sui-checkbox-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-checkbox-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-checkbox-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-checkbox-label__label{font-weight:500}.sui-checkbox-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-checkbox-label__badge{flex-shrink:0}.sui-checkbox-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host([data-sui-size=large]){gap:10px}:host([data-sui-size=xlarge]){gap:12px}:host([data-sui-size=large]) .sui-checkbox-label__label,:host([data-sui-size=xlarge]) .sui-checkbox-label__label{font-size:var(--sui-type-paragraph-md-size);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-sui-size=large]) .sui-checkbox-label__sublabel,:host([data-sui-size=large]) .sui-checkbox-label__description,:host([data-sui-size=xlarge]) .sui-checkbox-label__sublabel,:host([data-sui-size=xlarge]) .sui-checkbox-label__description{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=xlarge]) .sui-checkbox-label__content{padding-top:2px}\n"], dependencies: [{ kind: "component", type: SuiCheckbox, selector: "sui-checkbox", inputs: ["size", "checked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiLinkButton, selector: "sui-link-button", inputs: ["variant", "size", "underline", "disabled", "leftIcon", "rightIcon", "href", "target", "rel", "type", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3210
3257
  }
3211
3258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiCheckboxLabel, decorators: [{
3212
3259
  type: Component,
@@ -3217,12 +3264,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
3217
3264
  multi: true,
3218
3265
  },
3219
3266
  ], host: {
3267
+ '[attr.data-sui-size]': 'size()',
3220
3268
  '[attr.data-sui-flip]': 'flip() ? "" : null',
3221
3269
  '[attr.data-sui-with-description]': 'description() ? "" : null',
3222
3270
  '[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
3223
3271
  '(click)': 'onLabelClick($event)',
3224
- }, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (checkbox primero). -->\n<sui-checkbox\n class=\"sui-checkbox-label__checkbox\"\n [checked]=\"active()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n/>\n\n<div class=\"sui-checkbox-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-checkbox-label__text\">\n <div class=\"sui-checkbox-label__title\">\n <span class=\"sui-checkbox-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-checkbox-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-checkbox-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-checkbox-label__checkbox{order:2}:host([data-sui-flip]) .sui-checkbox-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-checkbox-label__content{opacity:.5}.sui-checkbox-label__checkbox{flex-shrink:0}.sui-checkbox-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-checkbox-label__content{gap:10px}.sui-checkbox-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-checkbox-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-checkbox-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-checkbox-label__label{font-weight:500}.sui-checkbox-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-checkbox-label__badge{flex-shrink:0}.sui-checkbox-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}\n"] }]
3225
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }], linkClick: [{ type: i0.Output, args: ["linkClick"] }] } });
3272
+ }, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (checkbox primero). -->\n<sui-checkbox\n class=\"sui-checkbox-label__checkbox\"\n [size]=\"size()\"\n [checked]=\"active()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"isDisabled()\"\n (checkedChange)=\"onCheckboxChange($event)\"\n/>\n\n<div class=\"sui-checkbox-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-checkbox-label__text\">\n <div class=\"sui-checkbox-label__title\">\n <span class=\"sui-checkbox-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-checkbox-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-checkbox-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? badgeSize()\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-checkbox-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n [size]=\"linkSize()\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-checkbox-label__checkbox{order:2}:host([data-sui-flip]) .sui-checkbox-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-checkbox-label__content{opacity:.5}.sui-checkbox-label__checkbox{flex-shrink:0}.sui-checkbox-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-checkbox-label__content{gap:10px}.sui-checkbox-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-checkbox-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-checkbox-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-checkbox-label__label{font-weight:500}.sui-checkbox-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-checkbox-label__badge{flex-shrink:0}.sui-checkbox-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host([data-sui-size=large]){gap:10px}:host([data-sui-size=xlarge]){gap:12px}:host([data-sui-size=large]) .sui-checkbox-label__label,:host([data-sui-size=xlarge]) .sui-checkbox-label__label{font-size:var(--sui-type-paragraph-md-size);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-sui-size=large]) .sui-checkbox-label__sublabel,:host([data-sui-size=large]) .sui-checkbox-label__description,:host([data-sui-size=xlarge]) .sui-checkbox-label__sublabel,:host([data-sui-size=xlarge]) .sui-checkbox-label__description{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=xlarge]) .sui-checkbox-label__content{padding-top:2px}\n"] }]
3273
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }], linkClick: [{ type: i0.Output, args: ["linkClick"] }] } });
3226
3274
 
3227
3275
  /**
3228
3276
  * sui-circular-progress-bar — SUI Design System 2.0 · Circular Progress Bar
@@ -3476,6 +3524,11 @@ class SuiColorDot {
3476
3524
  * - `disabled` → dot gris pálido, sin pointer events.
3477
3525
  */
3478
3526
  state = input('default', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
3527
+ /**
3528
+ * Tamaño. `medium` (default, Figma 24): dot 16 / hover 14 / selected 12 + anillo 18.
3529
+ * `large` (32, extensión SUI para mobile): dot 22 / hover 18 / selected 16 + anillo 24.
3530
+ */
3531
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
3479
3532
  /** aria-label override. */
3480
3533
  ariaLabel = input('', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
3481
3534
  clicked = output();
@@ -3496,17 +3549,18 @@ class SuiColorDot {
3496
3549
  this.clicked.emit();
3497
3550
  }
3498
3551
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiColorDot, deps: [], target: i0.ɵɵFactoryTarget.Component });
3499
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.17", type: SuiColorDot, isStandalone: true, selector: "sui-color-dot", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customHex: { classPropertyName: "customHex", publicName: "customHex", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-color": "color()", "attr.data-sui-state": "state()", "attr.data-sui-custom": "customHex() ? \"\" : null", "style.--c": "customHex() || null" } }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"sui-color-dot__inner\"\n role=\"radio\"\n [disabled]=\"state() === 'disabled' || null\"\n [attr.aria-checked]=\"state() === 'selected' ? 'true' : 'false'\"\n [attr.aria-label]=\"ariaLabel() || defaultAriaLabel()\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n></button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:24px;height:24px;vertical-align:middle;--c: var(--sui-neutral-500)}:host([data-sui-color=gray]){--c: var(--sui-neutral-500)}:host([data-sui-color=blue]){--c: var(--sui-blue-500)}:host([data-sui-color=orange]){--c: var(--sui-orange-500)}:host([data-sui-color=red]){--c: var(--sui-red-500)}:host([data-sui-color=green]){--c: var(--sui-green-500)}:host([data-sui-color=yellow]){--c: var(--sui-yellow-500)}:host([data-sui-color=purple]){--c: var(--sui-purple-500)}:host([data-sui-color=sky]){--c: var(--sui-sky-500)}:host([data-sui-color=pink]){--c: var(--sui-pink-500)}:host([data-sui-color=teal]){--c: var(--sui-teal-500)}:host([data-sui-state=disabled]){--c: var(--sui-bg-soft-200)}.sui-color-dot__inner{position:relative;display:block;width:24px;height:24px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;appearance:none;outline:none;border-radius:50%;transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-dot__inner:after{content:\"\";position:absolute;inset:4px;border-radius:50%;background:var(--c);transition:inset var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:after{inset:6px}.sui-color-dot__inner:before{content:\"\";position:absolute;inset:3px;border-radius:50%;border:2px solid transparent;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:before{border-color:var(--c)}.sui-color-dot__inner:active{transform:none}:host([data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-state=hover]) .sui-color-dot__inner:after{inset:5px}.sui-color-dot__inner:focus-visible{outline:2px solid var(--c);outline-offset:2px}:host([data-sui-state=disabled]) .sui-color-dot__inner{cursor:not-allowed;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3552
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.17", type: SuiColorDot, isStandalone: true, selector: "sui-color-dot", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customHex: { classPropertyName: "customHex", publicName: "customHex", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", 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 } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-color": "color()", "attr.data-sui-size": "size()", "attr.data-sui-state": "state()", "attr.data-sui-custom": "customHex() ? \"\" : null", "style.--c": "customHex() || null" } }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"sui-color-dot__inner\"\n role=\"radio\"\n [disabled]=\"state() === 'disabled' || null\"\n [attr.aria-checked]=\"state() === 'selected' ? 'true' : 'false'\"\n [attr.aria-label]=\"ariaLabel() || defaultAriaLabel()\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n></button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:24px;height:24px;vertical-align:middle;--c: var(--sui-neutral-500)}:host([data-sui-color=gray]){--c: var(--sui-neutral-500)}:host([data-sui-color=blue]){--c: var(--sui-blue-500)}:host([data-sui-color=orange]){--c: var(--sui-orange-500)}:host([data-sui-color=red]){--c: var(--sui-red-500)}:host([data-sui-color=green]){--c: var(--sui-green-500)}:host([data-sui-color=yellow]){--c: var(--sui-yellow-500)}:host([data-sui-color=purple]){--c: var(--sui-purple-500)}:host([data-sui-color=sky]){--c: var(--sui-sky-500)}:host([data-sui-color=pink]){--c: var(--sui-pink-500)}:host([data-sui-color=teal]){--c: var(--sui-teal-500)}:host([data-sui-state=disabled]){--c: var(--sui-bg-soft-200)}.sui-color-dot__inner{position:relative;display:block;width:24px;height:24px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;appearance:none;outline:none;border-radius:50%;transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-dot__inner:after{content:\"\";position:absolute;inset:4px;border-radius:50%;background:var(--c);transition:inset var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:after{inset:6px}.sui-color-dot__inner:before{content:\"\";position:absolute;inset:3px;border-radius:50%;border:2px solid transparent;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:before{border-color:var(--c)}.sui-color-dot__inner:active{transform:none}:host([data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-state=hover]) .sui-color-dot__inner:after{inset:5px}.sui-color-dot__inner:focus-visible{outline:2px solid var(--c);outline-offset:2px}:host([data-sui-state=disabled]) .sui-color-dot__inner{cursor:not-allowed;pointer-events:none}:host([data-sui-size=large]){width:32px;height:32px}:host([data-sui-size=large]) .sui-color-dot__inner{width:32px;height:32px}:host([data-sui-size=large]) .sui-color-dot__inner:after{inset:5px}:host([data-sui-size=large][data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-size=large][data-sui-state=hover]) .sui-color-dot__inner:after{inset:7px}:host([data-sui-size=large][data-sui-state=selected]) .sui-color-dot__inner:after{inset:8px}:host([data-sui-size=large]) .sui-color-dot__inner:before{inset:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3500
3553
  }
3501
3554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiColorDot, decorators: [{
3502
3555
  type: Component,
3503
3556
  args: [{ selector: 'sui-color-dot', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
3504
3557
  '[attr.data-sui-color]': 'color()',
3558
+ '[attr.data-sui-size]': 'size()',
3505
3559
  '[attr.data-sui-state]': 'state()',
3506
3560
  '[attr.data-sui-custom]': 'customHex() ? "" : null',
3507
3561
  '[style.--c]': 'customHex() || null',
3508
- }, template: "<button\n type=\"button\"\n class=\"sui-color-dot__inner\"\n role=\"radio\"\n [disabled]=\"state() === 'disabled' || null\"\n [attr.aria-checked]=\"state() === 'selected' ? 'true' : 'false'\"\n [attr.aria-label]=\"ariaLabel() || defaultAriaLabel()\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n></button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:24px;height:24px;vertical-align:middle;--c: var(--sui-neutral-500)}:host([data-sui-color=gray]){--c: var(--sui-neutral-500)}:host([data-sui-color=blue]){--c: var(--sui-blue-500)}:host([data-sui-color=orange]){--c: var(--sui-orange-500)}:host([data-sui-color=red]){--c: var(--sui-red-500)}:host([data-sui-color=green]){--c: var(--sui-green-500)}:host([data-sui-color=yellow]){--c: var(--sui-yellow-500)}:host([data-sui-color=purple]){--c: var(--sui-purple-500)}:host([data-sui-color=sky]){--c: var(--sui-sky-500)}:host([data-sui-color=pink]){--c: var(--sui-pink-500)}:host([data-sui-color=teal]){--c: var(--sui-teal-500)}:host([data-sui-state=disabled]){--c: var(--sui-bg-soft-200)}.sui-color-dot__inner{position:relative;display:block;width:24px;height:24px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;appearance:none;outline:none;border-radius:50%;transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-dot__inner:after{content:\"\";position:absolute;inset:4px;border-radius:50%;background:var(--c);transition:inset var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:after{inset:6px}.sui-color-dot__inner:before{content:\"\";position:absolute;inset:3px;border-radius:50%;border:2px solid transparent;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:before{border-color:var(--c)}.sui-color-dot__inner:active{transform:none}:host([data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-state=hover]) .sui-color-dot__inner:after{inset:5px}.sui-color-dot__inner:focus-visible{outline:2px solid var(--c);outline-offset:2px}:host([data-sui-state=disabled]) .sui-color-dot__inner{cursor:not-allowed;pointer-events:none}\n"] }]
3509
- }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], customHex: [{ type: i0.Input, args: [{ isSignal: true, alias: "customHex", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
3562
+ }, template: "<button\n type=\"button\"\n class=\"sui-color-dot__inner\"\n role=\"radio\"\n [disabled]=\"state() === 'disabled' || null\"\n [attr.aria-checked]=\"state() === 'selected' ? 'true' : 'false'\"\n [attr.aria-label]=\"ariaLabel() || defaultAriaLabel()\"\n (click)=\"onClick()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n></button>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;width:24px;height:24px;vertical-align:middle;--c: var(--sui-neutral-500)}:host([data-sui-color=gray]){--c: var(--sui-neutral-500)}:host([data-sui-color=blue]){--c: var(--sui-blue-500)}:host([data-sui-color=orange]){--c: var(--sui-orange-500)}:host([data-sui-color=red]){--c: var(--sui-red-500)}:host([data-sui-color=green]){--c: var(--sui-green-500)}:host([data-sui-color=yellow]){--c: var(--sui-yellow-500)}:host([data-sui-color=purple]){--c: var(--sui-purple-500)}:host([data-sui-color=sky]){--c: var(--sui-sky-500)}:host([data-sui-color=pink]){--c: var(--sui-pink-500)}:host([data-sui-color=teal]){--c: var(--sui-teal-500)}:host([data-sui-state=disabled]){--c: var(--sui-bg-soft-200)}.sui-color-dot__inner{position:relative;display:block;width:24px;height:24px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;appearance:none;outline:none;border-radius:50%;transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-dot__inner:after{content:\"\";position:absolute;inset:4px;border-radius:50%;background:var(--c);transition:inset var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:after{inset:6px}.sui-color-dot__inner:before{content:\"\";position:absolute;inset:3px;border-radius:50%;border:2px solid transparent;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-state=selected]) .sui-color-dot__inner:before{border-color:var(--c)}.sui-color-dot__inner:active{transform:none}:host([data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-state=hover]) .sui-color-dot__inner:after{inset:5px}.sui-color-dot__inner:focus-visible{outline:2px solid var(--c);outline-offset:2px}:host([data-sui-state=disabled]) .sui-color-dot__inner{cursor:not-allowed;pointer-events:none}:host([data-sui-size=large]){width:32px;height:32px}:host([data-sui-size=large]) .sui-color-dot__inner{width:32px;height:32px}:host([data-sui-size=large]) .sui-color-dot__inner:after{inset:5px}:host([data-sui-size=large][data-sui-state=default]) .sui-color-dot__inner:hover:after,:host([data-sui-size=large][data-sui-state=hover]) .sui-color-dot__inner:after{inset:7px}:host([data-sui-size=large][data-sui-state=selected]) .sui-color-dot__inner:after{inset:8px}:host([data-sui-size=large]) .sui-color-dot__inner:before{inset:4px}\n"] }]
3563
+ }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], customHex: [{ type: i0.Input, args: [{ isSignal: true, alias: "customHex", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
3510
3564
 
3511
3565
  /**
3512
3566
  * Structural directive — marca un `<ng-template>` como panel del
@@ -4365,7 +4419,7 @@ class SuiColorPicker {
4365
4419
  }
4366
4420
  }
4367
4421
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
4368
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiColorPicker, isStandalone: true, selector: "sui-color-picker", inputs: { colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, recommendedLabel: { classPropertyName: "recommendedLabel", publicName: "recommendedLabel", isSignal: true, isRequired: false, transformFunction: null }, presetsOnly: { classPropertyName: "presetsOnly", publicName: "presetsOnly", isSignal: true, isRequired: false, transformFunction: null }, alpha: { classPropertyName: "alpha", publicName: "alpha", isSignal: true, isRequired: false, transformFunction: null }, eyedropper: { classPropertyName: "eyedropper", publicName: "eyedropper", isSignal: true, isRequired: false, transformFunction: null }, showFormatLabel: { classPropertyName: "showFormatLabel", publicName: "showFormatLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { properties: { "attr.data-sui-open": "open() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.data-sui-presets-only": "presetsOnly() ? \"\" : null" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: SuiDropdownMenu, descendants: true, isSignal: true }, { propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, isSignal: true }, { propertyName: "hueRef", first: true, predicate: ["hueSlider"], descendants: true, isSignal: true }, { propertyName: "opacityRef", first: true, predicate: ["opacitySlider"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n #trigger\n type=\"button\"\n class=\"sui-color-picker__trigger\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\n (click)=\"toggle()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (value()) {\n @if (currentPreset()) {\n <sui-color-dot [color]=\"currentPreset()!\" state=\"selected\" class=\"sui-color-picker__preview\" />\n } @else {\n <sui-color-dot [customHex]=\"previewColor()\" state=\"selected\" class=\"sui-color-picker__preview\" />\n }\n } @else {\n <span class=\"sui-color-picker__placeholder-dot\" aria-hidden=\"true\"></span>\n }\n <span class=\"sui-color-picker__label\">{{ currentLabel() }}</span>\n <sui-icon name=\"arrow-down-s-line\" [size]=\"16\" class=\"sui-color-picker__chevron\" />\n</button>\n\n<!-- Panel en CDK overlay (via sui-dropdown-menu): escapa cualquier overflow\n clipping del contenedor (Storybook docs, modales, tablas). El contenido del\n ng-template mantiene el scoping de estilos del componente. -->\n<sui-dropdown-menu\n [origin]=\"trigger\"\n [disabled]=\"disabled()\"\n [flexibleDimensions]=\"false\"\n panelClass=\"sui-color-picker__overlay-pane\"\n (openedChange)=\"onMenuOpenedChange($event)\"\n>\n <ng-template suiDropdownPanel>\n <div\n class=\"sui-color-picker__panel\"\n role=\"dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n >\n @if (!presetsOnly()) {\n <!-- Secci\u00F3n \"Colors\" \u2014 Figma 4456:115716 -->\n <div class=\"sui-color-picker__section sui-color-picker__section--colors\">\n <!-- HSV Color Spectrum \u2014 Figma 4456:115425 -->\n <div\n #canvas\n class=\"sui-color-picker__canvas\"\n role=\"application\"\n aria-label=\"Saturaci\u00F3n y brillo\"\n [style.--hue-color]=\"hueColor()\"\n (pointerdown)=\"onCanvasPointerDown($event)\"\n (pointermove)=\"onCanvasPointerMove($event)\"\n (pointerup)=\"onCanvasPointerUp($event)\"\n (pointercancel)=\"onCanvasPointerUp($event)\"\n >\n <div\n class=\"sui-color-picker__canvas-thumb\"\n [style.left]=\"canvasThumbX()\"\n [style.top]=\"canvasThumbY()\"\n [style.background-color]=\"currentHex()\"\n ></div>\n </div>\n\n <!-- Hue slider \u2014 Figma 4415:53669 -->\n <div\n #hueSlider\n class=\"sui-color-picker__slider sui-color-picker__hue\"\n role=\"slider\"\n aria-label=\"Matiz\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n [attr.aria-valuenow]=\"hueRounded()\"\n (pointerdown)=\"onHuePointerDown($event)\"\n (pointermove)=\"onHuePointerMove($event)\"\n (pointerup)=\"onHuePointerUp($event)\"\n (pointercancel)=\"onHuePointerUp($event)\"\n >\n <div class=\"sui-color-picker__slider-track\"></div>\n <div\n class=\"sui-color-picker__slider-thumb\"\n [style.left]=\"hueThumbX()\"\n [style.background-color]=\"hueColor()\"\n ></div>\n </div>\n\n <!-- Opacity slider \u2014 Figma 4415:53670. Visible por default (alpha on);\n ocultable con [alpha]=false. -->\n @if (alpha()) {\n <div\n #opacitySlider\n class=\"sui-color-picker__slider sui-color-picker__opacity\"\n role=\"slider\"\n aria-label=\"Opacidad\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"alphaPercent()\"\n [style.--opacity-color]=\"opacityColor()\"\n (pointerdown)=\"onOpacityPointerDown($event)\"\n (pointermove)=\"onOpacityPointerMove($event)\"\n (pointerup)=\"onOpacityPointerUp($event)\"\n (pointercancel)=\"onOpacityPointerUp($event)\"\n >\n <div class=\"sui-color-picker__slider-track\"></div>\n <div\n class=\"sui-color-picker__slider-thumb\"\n [style.left]=\"opacityThumbX()\"\n [style.--thumb-color]=\"opacityThumbColor()\"\n ></div>\n </div>\n }\n\n <!-- Color Input \u2014 Figma 4456:115720 -->\n <div class=\"sui-color-picker__color-input\">\n <!-- Format label \"Hex\" + chevron \u2014 Figma 4456:115721.\n Hex-only por ahora (ver PENDING VERIFY en el .ts). -->\n @if (showFormatLabel()) {\n <div class=\"sui-color-picker__format\" aria-hidden=\"true\">\n <span class=\"sui-color-picker__format-label\">Hex</span>\n <sui-icon name=\"arrow-down-s-line\" [size]=\"20\" class=\"sui-color-picker__format-chevron\" />\n </div>\n }\n\n <!-- Input row \u2014 Figma 4456:115724: sip | hex | opacity -->\n <div class=\"sui-color-picker__input-row\">\n <!-- Sip (eyedropper) \u2014 Figma 4456:115796. Solo con EyeDropper API. -->\n @if (showEyedropper()) {\n <button\n type=\"button\"\n class=\"sui-color-picker__sip\"\n aria-label=\"Cuentagotas\"\n (click)=\"onEyedropper()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"sip-line\" [size]=\"20\" />\n </button>\n }\n\n <!-- Hex field \u2014 Figma 4456:115725 / 4456:115726: el texto va SIN\n prefijo '#' (Figma muestra \"335CFF\" pelado dentro de la celda). -->\n <div class=\"sui-color-picker__hex-cell\">\n <input\n class=\"sui-color-picker__hex-field\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n maxlength=\"8\"\n aria-label=\"Valor hexadecimal\"\n [value]=\"hexDisplayValue()\"\n (input)=\"onHexInputChange($event)\"\n (keydown)=\"onHexKeyDown($event)\"\n (blur)=\"onHexCommit()\"\n />\n </div>\n\n <!-- Opacity field \"%\" \u2014 Figma 4456:115727. Visible por default\n (alpha on); ocultable con [alpha]=false. -->\n @if (alpha()) {\n <div class=\"sui-color-picker__opacity-cell\">\n <input\n class=\"sui-color-picker__opacity-field\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n maxlength=\"3\"\n aria-label=\"Opacidad\"\n [value]=\"alphaPercent()\"\n (change)=\"onOpacityFieldCommit($event)\"\n (keydown)=\"onHexKeyDown($event)\"\n />\n <span class=\"sui-color-picker__opacity-suffix\" aria-hidden=\"true\">%</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <!-- Secci\u00F3n \"Recommended Colors\" \u2014 Figma 4456:115765 -->\n <div class=\"sui-color-picker__section sui-color-picker__section--recommended\">\n <p class=\"sui-color-picker__panel-label\">{{ recommendedLabel() }}</p>\n <div class=\"sui-color-picker__grid\" role=\"radiogroup\">\n @for (c of colors(); track c) {\n <sui-color-dot\n [color]=\"c\"\n [state]=\"currentPreset() === c ? 'selected' : 'default'\"\n (clicked)=\"onPresetClick(c)\"\n />\n }\n </div>\n </div>\n </div>\n </ng-template>\n</sui-dropdown-menu>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-block;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-color-picker__trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-8);cursor:pointer;appearance:none;font:inherit;color:var(--sui-text-strong-950);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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-picker__trigger:hover{background:var(--sui-bg-weak-50)}:host([data-sui-open]) .sui-color-picker__trigger{border-color:var(--sui-stroke-strong-950, var(--sui-text-strong-950))}.sui-color-picker__trigger:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:2px}.sui-color-picker__trigger:active{transform:none}:host([data-sui-disabled]) .sui-color-picker__trigger{background:var(--sui-bg-weak-50);color:var(--sui-text-disabled-300);cursor:not-allowed;pointer-events:none}.sui-color-picker__placeholder-dot{display:inline-block;width:24px;height:24px;border-radius:50%;background:var(--sui-bg-soft-200)}.sui-color-picker__label{flex:1 0 auto;white-space:nowrap}.sui-color-picker__chevron{flex-shrink:0;color:var(--sui-icon-sub-600);transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-open]) .sui-color-picker__chevron{transform:rotate(180deg)}.sui-color-picker__panel{width:272px;margin-top:6px;box-sizing:border-box;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-16);box-shadow:var(--sui-shadow-medium);overflow:hidden;display:flex;flex-direction:column;animation:sui-color-picker__fade var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}@keyframes sui-color-picker__fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sui-color-picker__section{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;padding:16px;width:100%}.sui-color-picker__section--colors{border-bottom:1px solid var(--sui-stroke-soft-200)}.sui-color-picker__section--recommended{gap:8px}:host([data-sui-presets-only]) .sui-color-picker__section--recommended{border-bottom:none}.sui-color-picker__canvas{position:relative;width:100%;height:232px;border-radius:var(--sui-radius-8);cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none;overflow:hidden;background-color:var(--hue-color, #335cff);background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.sui-color-picker__canvas-thumb{position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid var(--sui-static-white, #fff);box-shadow:0 0 0 1px #00000026,0 1px 2px #0003;transform:translate(-50%,-50%);pointer-events:none}.sui-color-picker__slider{position:relative;width:100%;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.sui-color-picker__slider-track{position:absolute;left:0;right:0;top:4px;height:8px;border-radius:var(--sui-radius-full);overflow:hidden}.sui-color-picker__hue .sui-color-picker__slider-track{background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.sui-color-picker__opacity .sui-color-picker__slider-track{background-color:#fff;background-image:linear-gradient(to right,transparent,var(--opacity-color, #335cff)),conic-gradient(#ebebeb 0 25%,transparent 0 50%,#ebebeb 0 75%,transparent 0);background-size:auto,10.88px 10.88px}.sui-color-picker__slider-thumb{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:2px solid var(--sui-static-white, #fff);box-shadow:0 0 0 1px #00000026,0 1px 2px #0003;transform:translate(-50%,-50%);pointer-events:none}.sui-color-picker__opacity .sui-color-picker__slider-thumb{background-image:linear-gradient(var(--thumb-color, #335cff),var(--thumb-color, #335cff)),conic-gradient(#ebebeb 0 25%,#fff 0 50%,#ebebeb 0 75%,#fff 0);background-size:auto,6px 6px}.sui-color-picker__color-input{display:flex;flex-direction:column;gap:4px;width:100%}.sui-color-picker__format{display:flex;align-items:center;gap:2px;appearance:none;border:none;background:transparent;padding:0;cursor:default;font:inherit;color:var(--sui-text-strong-950)}.sui-color-picker__format-label{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);white-space:nowrap}.sui-color-picker__format-chevron{flex-shrink:0;color:var(--sui-icon-sub-600)}.sui-color-picker__input-row{box-sizing:border-box;display:flex;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-8);overflow:hidden}.sui-color-picker__sip{display:flex;align-items:center;justify-content:center;padding:6px;border:none;border-right:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);cursor:pointer;appearance:none;flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-picker__sip:hover{background:var(--sui-bg-weak-50)}.sui-color-picker__sip:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px}.sui-color-picker__sip:active{transform:none}.sui-color-picker__hex-cell{box-sizing:border-box;display:flex;align-items:center;flex:1 0 0;min-width:0;padding:6px 10px;border-right:1px solid var(--sui-stroke-soft-200)}.sui-color-picker__hex-cell:last-child{border-right:none}.sui-color-picker__hex-field{flex:1 0 0;min-width:0;width:100%;border:none;outline:none;background:transparent;padding:0;appearance:none;color:var(--sui-text-strong-950);font-family:inherit;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);text-transform:uppercase}.sui-color-picker__hex-field::placeholder{color:var(--sui-text-soft-400);text-transform:none}.sui-color-picker__opacity-cell{box-sizing:border-box;display:flex;align-items:center;flex-shrink:0;padding:6px 10px}.sui-color-picker__opacity-field{width:3.5ch;border:none;outline:none;background:transparent;padding:0;appearance:none;text-align:right;color:var(--sui-text-sub-600);font-family:inherit;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)}.sui-color-picker__opacity-suffix{color:var(--sui-text-sub-600);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)}.sui-color-picker__panel-label{margin:0;font-size:var(--sui-type-paragraph-xs-size);font-weight:var(--sui-type-paragraph-xs-weight);line-height:var(--sui-type-paragraph-xs-line);letter-spacing:var(--sui-type-paragraph-xs-spacing);color:var(--sui-text-sub-600)}.sui-color-picker__grid{display:flex;flex-wrap:wrap;gap:4px;width:100%}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiColorDot, selector: "sui-color-dot", inputs: ["color", "customHex", "state", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: SuiDropdownMenu, selector: "sui-dropdown-menu", inputs: ["matchWidth", "flexibleDimensions", "push", "minWidth", "position", "viewportMargin", "panelClass", "disabled", "popupRole", "origin"], outputs: ["openedChange"], exportAs: ["suiDropdownMenu"] }, { kind: "directive", type: SuiDropdownPanel, selector: "ng-template[suiDropdownPanel]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4422
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiColorPicker, isStandalone: true, selector: "sui-color-picker", inputs: { colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, recommendedLabel: { classPropertyName: "recommendedLabel", publicName: "recommendedLabel", isSignal: true, isRequired: false, transformFunction: null }, presetsOnly: { classPropertyName: "presetsOnly", publicName: "presetsOnly", isSignal: true, isRequired: false, transformFunction: null }, alpha: { classPropertyName: "alpha", publicName: "alpha", isSignal: true, isRequired: false, transformFunction: null }, eyedropper: { classPropertyName: "eyedropper", publicName: "eyedropper", isSignal: true, isRequired: false, transformFunction: null }, showFormatLabel: { classPropertyName: "showFormatLabel", publicName: "showFormatLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { properties: { "attr.data-sui-open": "open() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.data-sui-presets-only": "presetsOnly() ? \"\" : null" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: SuiDropdownMenu, descendants: true, isSignal: true }, { propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, isSignal: true }, { propertyName: "hueRef", first: true, predicate: ["hueSlider"], descendants: true, isSignal: true }, { propertyName: "opacityRef", first: true, predicate: ["opacitySlider"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n #trigger\n type=\"button\"\n class=\"sui-color-picker__trigger\"\n [disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\n (click)=\"toggle()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n>\n @if (value()) {\n @if (currentPreset()) {\n <sui-color-dot [color]=\"currentPreset()!\" state=\"selected\" class=\"sui-color-picker__preview\" />\n } @else {\n <sui-color-dot [customHex]=\"previewColor()\" state=\"selected\" class=\"sui-color-picker__preview\" />\n }\n } @else {\n <span class=\"sui-color-picker__placeholder-dot\" aria-hidden=\"true\"></span>\n }\n <span class=\"sui-color-picker__label\">{{ currentLabel() }}</span>\n <sui-icon name=\"arrow-down-s-line\" [size]=\"16\" class=\"sui-color-picker__chevron\" />\n</button>\n\n<!-- Panel en CDK overlay (via sui-dropdown-menu): escapa cualquier overflow\n clipping del contenedor (Storybook docs, modales, tablas). El contenido del\n ng-template mantiene el scoping de estilos del componente. -->\n<sui-dropdown-menu\n [origin]=\"trigger\"\n [disabled]=\"disabled()\"\n [flexibleDimensions]=\"false\"\n panelClass=\"sui-color-picker__overlay-pane\"\n (openedChange)=\"onMenuOpenedChange($event)\"\n>\n <ng-template suiDropdownPanel>\n <div\n class=\"sui-color-picker__panel\"\n role=\"dialog\"\n [attr.aria-label]=\"ariaLabel()\"\n >\n @if (!presetsOnly()) {\n <!-- Secci\u00F3n \"Colors\" \u2014 Figma 4456:115716 -->\n <div class=\"sui-color-picker__section sui-color-picker__section--colors\">\n <!-- HSV Color Spectrum \u2014 Figma 4456:115425 -->\n <div\n #canvas\n class=\"sui-color-picker__canvas\"\n role=\"application\"\n aria-label=\"Saturaci\u00F3n y brillo\"\n [style.--hue-color]=\"hueColor()\"\n (pointerdown)=\"onCanvasPointerDown($event)\"\n (pointermove)=\"onCanvasPointerMove($event)\"\n (pointerup)=\"onCanvasPointerUp($event)\"\n (pointercancel)=\"onCanvasPointerUp($event)\"\n >\n <div\n class=\"sui-color-picker__canvas-thumb\"\n [style.left]=\"canvasThumbX()\"\n [style.top]=\"canvasThumbY()\"\n [style.background-color]=\"currentHex()\"\n ></div>\n </div>\n\n <!-- Hue slider \u2014 Figma 4415:53669 -->\n <div\n #hueSlider\n class=\"sui-color-picker__slider sui-color-picker__hue\"\n role=\"slider\"\n aria-label=\"Matiz\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n [attr.aria-valuenow]=\"hueRounded()\"\n (pointerdown)=\"onHuePointerDown($event)\"\n (pointermove)=\"onHuePointerMove($event)\"\n (pointerup)=\"onHuePointerUp($event)\"\n (pointercancel)=\"onHuePointerUp($event)\"\n >\n <div class=\"sui-color-picker__slider-track\"></div>\n <div\n class=\"sui-color-picker__slider-thumb\"\n [style.left]=\"hueThumbX()\"\n [style.background-color]=\"hueColor()\"\n ></div>\n </div>\n\n <!-- Opacity slider \u2014 Figma 4415:53670. Visible por default (alpha on);\n ocultable con [alpha]=false. -->\n @if (alpha()) {\n <div\n #opacitySlider\n class=\"sui-color-picker__slider sui-color-picker__opacity\"\n role=\"slider\"\n aria-label=\"Opacidad\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"alphaPercent()\"\n [style.--opacity-color]=\"opacityColor()\"\n (pointerdown)=\"onOpacityPointerDown($event)\"\n (pointermove)=\"onOpacityPointerMove($event)\"\n (pointerup)=\"onOpacityPointerUp($event)\"\n (pointercancel)=\"onOpacityPointerUp($event)\"\n >\n <div class=\"sui-color-picker__slider-track\"></div>\n <div\n class=\"sui-color-picker__slider-thumb\"\n [style.left]=\"opacityThumbX()\"\n [style.--thumb-color]=\"opacityThumbColor()\"\n ></div>\n </div>\n }\n\n <!-- Color Input \u2014 Figma 4456:115720 -->\n <div class=\"sui-color-picker__color-input\">\n <!-- Format label \"Hex\" + chevron \u2014 Figma 4456:115721.\n Hex-only por ahora (ver PENDING VERIFY en el .ts). -->\n @if (showFormatLabel()) {\n <div class=\"sui-color-picker__format\" aria-hidden=\"true\">\n <span class=\"sui-color-picker__format-label\">Hex</span>\n <sui-icon name=\"arrow-down-s-line\" [size]=\"20\" class=\"sui-color-picker__format-chevron\" />\n </div>\n }\n\n <!-- Input row \u2014 Figma 4456:115724: sip | hex | opacity -->\n <div class=\"sui-color-picker__input-row\">\n <!-- Sip (eyedropper) \u2014 Figma 4456:115796. Solo con EyeDropper API. -->\n @if (showEyedropper()) {\n <button\n type=\"button\"\n class=\"sui-color-picker__sip\"\n aria-label=\"Cuentagotas\"\n (click)=\"onEyedropper()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"sip-line\" [size]=\"20\" />\n </button>\n }\n\n <!-- Hex field \u2014 Figma 4456:115725 / 4456:115726: el texto va SIN\n prefijo '#' (Figma muestra \"335CFF\" pelado dentro de la celda). -->\n <div class=\"sui-color-picker__hex-cell\">\n <input\n class=\"sui-color-picker__hex-field\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n maxlength=\"8\"\n aria-label=\"Valor hexadecimal\"\n [value]=\"hexDisplayValue()\"\n (input)=\"onHexInputChange($event)\"\n (keydown)=\"onHexKeyDown($event)\"\n (blur)=\"onHexCommit()\"\n />\n </div>\n\n <!-- Opacity field \"%\" \u2014 Figma 4456:115727. Visible por default\n (alpha on); ocultable con [alpha]=false. -->\n @if (alpha()) {\n <div class=\"sui-color-picker__opacity-cell\">\n <input\n class=\"sui-color-picker__opacity-field\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n maxlength=\"3\"\n aria-label=\"Opacidad\"\n [value]=\"alphaPercent()\"\n (change)=\"onOpacityFieldCommit($event)\"\n (keydown)=\"onHexKeyDown($event)\"\n />\n <span class=\"sui-color-picker__opacity-suffix\" aria-hidden=\"true\">%</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <!-- Secci\u00F3n \"Recommended Colors\" \u2014 Figma 4456:115765 -->\n <div class=\"sui-color-picker__section sui-color-picker__section--recommended\">\n <p class=\"sui-color-picker__panel-label\">{{ recommendedLabel() }}</p>\n <div class=\"sui-color-picker__grid\" role=\"radiogroup\">\n @for (c of colors(); track c) {\n <sui-color-dot\n [color]=\"c\"\n [state]=\"currentPreset() === c ? 'selected' : 'default'\"\n (clicked)=\"onPresetClick(c)\"\n />\n }\n </div>\n </div>\n </div>\n </ng-template>\n</sui-dropdown-menu>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-block;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-color-picker__trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-8);cursor:pointer;appearance:none;font:inherit;color:var(--sui-text-strong-950);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);transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-picker__trigger:hover{background:var(--sui-bg-weak-50)}:host([data-sui-open]) .sui-color-picker__trigger{border-color:var(--sui-stroke-strong-950, var(--sui-text-strong-950))}.sui-color-picker__trigger:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:2px}.sui-color-picker__trigger:active{transform:none}:host([data-sui-disabled]) .sui-color-picker__trigger{background:var(--sui-bg-weak-50);color:var(--sui-text-disabled-300);cursor:not-allowed;pointer-events:none}.sui-color-picker__placeholder-dot{display:inline-block;width:24px;height:24px;border-radius:50%;background:var(--sui-bg-soft-200)}.sui-color-picker__label{flex:1 0 auto;white-space:nowrap}.sui-color-picker__chevron{flex-shrink:0;color:var(--sui-icon-sub-600);transition:transform var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-open]) .sui-color-picker__chevron{transform:rotate(180deg)}.sui-color-picker__panel{width:272px;margin-top:6px;box-sizing:border-box;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-16);box-shadow:var(--sui-shadow-medium);overflow:hidden;display:flex;flex-direction:column;animation:sui-color-picker__fade var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}@keyframes sui-color-picker__fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sui-color-picker__section{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;padding:16px;width:100%}.sui-color-picker__section--colors{border-bottom:1px solid var(--sui-stroke-soft-200)}.sui-color-picker__section--recommended{gap:8px}:host([data-sui-presets-only]) .sui-color-picker__section--recommended{border-bottom:none}.sui-color-picker__canvas{position:relative;width:100%;height:232px;border-radius:var(--sui-radius-8);cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none;overflow:hidden;background-color:var(--hue-color, #335cff);background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.sui-color-picker__canvas-thumb{position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid var(--sui-static-white, #fff);box-shadow:0 0 0 1px #00000026,0 1px 2px #0003;transform:translate(-50%,-50%);pointer-events:none}.sui-color-picker__slider{position:relative;width:100%;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.sui-color-picker__slider-track{position:absolute;left:0;right:0;top:4px;height:8px;border-radius:var(--sui-radius-full);overflow:hidden}.sui-color-picker__hue .sui-color-picker__slider-track{background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.sui-color-picker__opacity .sui-color-picker__slider-track{background-color:#fff;background-image:linear-gradient(to right,transparent,var(--opacity-color, #335cff)),conic-gradient(#ebebeb 0 25%,transparent 0 50%,#ebebeb 0 75%,transparent 0);background-size:auto,10.88px 10.88px}.sui-color-picker__slider-thumb{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:2px solid var(--sui-static-white, #fff);box-shadow:0 0 0 1px #00000026,0 1px 2px #0003;transform:translate(-50%,-50%);pointer-events:none}.sui-color-picker__opacity .sui-color-picker__slider-thumb{background-image:linear-gradient(var(--thumb-color, #335cff),var(--thumb-color, #335cff)),conic-gradient(#ebebeb 0 25%,#fff 0 50%,#ebebeb 0 75%,#fff 0);background-size:auto,6px 6px}.sui-color-picker__color-input{display:flex;flex-direction:column;gap:4px;width:100%}.sui-color-picker__format{display:flex;align-items:center;gap:2px;appearance:none;border:none;background:transparent;padding:0;cursor:default;font:inherit;color:var(--sui-text-strong-950)}.sui-color-picker__format-label{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);white-space:nowrap}.sui-color-picker__format-chevron{flex-shrink:0;color:var(--sui-icon-sub-600)}.sui-color-picker__input-row{box-sizing:border-box;display:flex;align-items:stretch;width:100%;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);border-radius:var(--sui-radius-8);overflow:hidden}.sui-color-picker__sip{display:flex;align-items:center;justify-content:center;padding:6px;border:none;border-right:1px solid var(--sui-stroke-soft-200);background:var(--sui-bg-white-0);color:var(--sui-icon-sub-600);cursor:pointer;appearance:none;flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}.sui-color-picker__sip:hover{background:var(--sui-bg-weak-50)}.sui-color-picker__sip:focus-visible{outline:2px solid var(--sui-stroke-strong-950, var(--sui-text-strong-950));outline-offset:-2px}.sui-color-picker__sip:active{transform:none}.sui-color-picker__hex-cell{box-sizing:border-box;display:flex;align-items:center;flex:1 0 0;min-width:0;padding:6px 10px;border-right:1px solid var(--sui-stroke-soft-200)}.sui-color-picker__hex-cell:last-child{border-right:none}.sui-color-picker__hex-field{flex:1 0 0;min-width:0;width:100%;border:none;outline:none;background:transparent;padding:0;appearance:none;color:var(--sui-text-strong-950);font-family:inherit;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);text-transform:uppercase}.sui-color-picker__hex-field::placeholder{color:var(--sui-text-soft-400);text-transform:none}.sui-color-picker__opacity-cell{box-sizing:border-box;display:flex;align-items:center;flex-shrink:0;padding:6px 10px}.sui-color-picker__opacity-field{width:3.5ch;border:none;outline:none;background:transparent;padding:0;appearance:none;text-align:right;color:var(--sui-text-sub-600);font-family:inherit;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)}.sui-color-picker__opacity-suffix{color:var(--sui-text-sub-600);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)}.sui-color-picker__panel-label{margin:0;font-size:var(--sui-type-paragraph-xs-size);font-weight:var(--sui-type-paragraph-xs-weight);line-height:var(--sui-type-paragraph-xs-line);letter-spacing:var(--sui-type-paragraph-xs-spacing);color:var(--sui-text-sub-600)}.sui-color-picker__grid{display:flex;flex-wrap:wrap;gap:4px;width:100%}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiColorDot, selector: "sui-color-dot", inputs: ["color", "customHex", "state", "size", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: SuiDropdownMenu, selector: "sui-dropdown-menu", inputs: ["matchWidth", "flexibleDimensions", "push", "minWidth", "position", "viewportMargin", "panelClass", "disabled", "popupRole", "origin"], outputs: ["openedChange"], exportAs: ["suiDropdownMenu"] }, { kind: "directive", type: SuiDropdownPanel, selector: "ng-template[suiDropdownPanel]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4369
4423
  }
4370
4424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiColorPicker, decorators: [{
4371
4425
  type: Component,
@@ -14063,6 +14117,24 @@ class SuiRadioLabel {
14063
14117
  ? { ...cfg, rel: cfg.rel ?? (cfg.target === '_blank' ? 'noopener noreferrer' : undefined) }
14064
14118
  : null;
14065
14119
  }, ...(ngDevMode ? [{ debugName: "linkCfg" }] : /* istanbul ignore next */ []));
14120
+ /**
14121
+ * Tamaño. `medium` (default, Figma): control 20, label 14/20.
14122
+ * Extensión SUI (03-10-2026) para tocar en mobile:
14123
+ * - `large`: control 24, label 16/24, sublabel y descripción 14/20, badge medium.
14124
+ * - `xlarge`: control 28, label 16/24, sublabel y descripción 14/20, badge large.
14125
+ * El badge toma este default solo si su config no trae `size`.
14126
+ */
14127
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
14128
+ /** Badge por default según el tamaño (si la config no fija uno). */
14129
+ badgeSize = computed(() => {
14130
+ switch (this.size()) {
14131
+ case 'large': return 'medium';
14132
+ case 'xlarge': return 'large';
14133
+ default: return 'small';
14134
+ }
14135
+ }, ...(ngDevMode ? [{ debugName: "badgeSize" }] : /* istanbul ignore next */ []));
14136
+ /** El link-button tiene dos tamaños: small (12/16) en Figma, medium (14/20) en mobile. */
14137
+ linkSize = computed(() => this.size() === 'medium' ? 'small' : 'medium', ...(ngDevMode ? [{ debugName: "linkSize" }] : /* istanbul ignore next */ []));
14066
14138
  /** Si true, invierte orden: [content] [radio] (radio a la derecha). */
14067
14139
  flip = input(false, ...(ngDevMode ? [{ debugName: "flip" }] : /* istanbul ignore next */ []));
14068
14140
  /** Deshabilita el radio + wrapper. */
@@ -14110,7 +14182,7 @@ class SuiRadioLabel {
14110
14182
  this.linkClick.emit(event);
14111
14183
  }
14112
14184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiRadioLabel, deps: [], target: i0.ɵɵFactoryTarget.Component });
14113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiRadioLabel, isStandalone: true, selector: "sui-radio-label", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", selected: "selected", linkClick: "linkClick" }, host: { listeners: { "click": "onLabelClick($event)", "keydown.space": "onKeySelect($event)", "keydown.enter": "onKeySelect($event)", "touchstart": "$event.currentTarget", "touchend": "$any($event.currentTarget).blur()" }, properties: { "attr.role": "\"radio\"", "attr.aria-checked": "isChecked() ? \"true\" : \"false\"", "attr.aria-disabled": "isDisabled() ? \"true\" : null", "attr.tabindex": "isDisabled() ? null : 0", "attr.data-sui-checked": "isChecked() ? \"\" : null", "attr.data-sui-flip": "flip() ? \"\" : null", "attr.data-sui-with-description": "description() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null" } }, ngImport: i0, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (radio primero). El sui-radio es solo\n visual (pointer-events none) \u2014 la selecci\u00F3n vive en el host. -->\n<sui-radio\n class=\"sui-radio-label__radio\"\n [value]=\"value()\"\n [standaloneChecked]=\"isChecked()\"\n [disabled]=\"isDisabled()\"\n/>\n\n<div class=\"sui-radio-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-radio-label__text\">\n <div class=\"sui-radio-label__title\">\n <span class=\"sui-radio-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-radio-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-radio-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-radio-label__radio{order:2}:host([data-sui-flip]) .sui-radio-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-radio-label__content{opacity:.5}.sui-radio-label__radio{flex-shrink:0}.sui-radio-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-radio-label__content{gap:10px}.sui-radio-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-radio-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-radio-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-radio-label__label{font-weight:500}.sui-radio-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-radio-label__badge{flex-shrink:0}.sui-radio-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host sui-radio{pointer-events:none}\n"], dependencies: [{ kind: "component", type: SuiRadio, selector: "sui-radio", inputs: ["size", "value", "disabled", "standaloneChecked"], outputs: ["standaloneCheckedChange"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiLinkButton, selector: "sui-link-button", inputs: ["variant", "size", "underline", "disabled", "leftIcon", "rightIcon", "href", "target", "rel", "type", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiRadioLabel, isStandalone: true, selector: "sui-radio-label", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", selected: "selected", linkClick: "linkClick" }, host: { listeners: { "click": "onLabelClick($event)", "keydown.space": "onKeySelect($event)", "keydown.enter": "onKeySelect($event)", "touchstart": "$event.currentTarget", "touchend": "$any($event.currentTarget).blur()" }, properties: { "attr.role": "\"radio\"", "attr.aria-checked": "isChecked() ? \"true\" : \"false\"", "attr.aria-disabled": "isDisabled() ? \"true\" : null", "attr.tabindex": "isDisabled() ? null : 0", "attr.data-sui-checked": "isChecked() ? \"\" : null", "attr.data-sui-size": "size()", "attr.data-sui-flip": "flip() ? \"\" : null", "attr.data-sui-with-description": "description() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null" } }, ngImport: i0, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (radio primero). El sui-radio es solo\n visual (pointer-events none) \u2014 la selecci\u00F3n vive en el host. -->\n<sui-radio\n class=\"sui-radio-label__radio\"\n [size]=\"size()\"\n [value]=\"value()\"\n [standaloneChecked]=\"isChecked()\"\n [disabled]=\"isDisabled()\"\n/>\n\n<div class=\"sui-radio-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-radio-label__text\">\n <div class=\"sui-radio-label__title\">\n <span class=\"sui-radio-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-radio-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? badgeSize()\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-radio-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n [size]=\"linkSize()\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-radio-label__radio{order:2}:host([data-sui-flip]) .sui-radio-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-radio-label__content{opacity:.5}.sui-radio-label__radio{flex-shrink:0}.sui-radio-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-radio-label__content{gap:10px}.sui-radio-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-radio-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-radio-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-radio-label__label{font-weight:500}.sui-radio-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-radio-label__badge{flex-shrink:0}.sui-radio-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host sui-radio{pointer-events:none}:host([data-sui-size=large]){gap:10px}:host([data-sui-size=xlarge]){gap:12px}:host([data-sui-size=large]) .sui-radio-label__label,:host([data-sui-size=xlarge]) .sui-radio-label__label{font-size:var(--sui-type-paragraph-md-size);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-sui-size=large]) .sui-radio-label__sublabel,:host([data-sui-size=large]) .sui-radio-label__description,:host([data-sui-size=xlarge]) .sui-radio-label__sublabel,:host([data-sui-size=xlarge]) .sui-radio-label__description{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=xlarge]) .sui-radio-label__content{padding-top:2px}\n"], dependencies: [{ kind: "component", type: SuiRadio, selector: "sui-radio", inputs: ["size", "value", "disabled", "standaloneChecked"], outputs: ["standaloneCheckedChange"] }, { kind: "component", type: SuiBadge, selector: "sui-badge", inputs: ["color", "variant", "size", "type", "disabled"] }, { kind: "component", type: SuiLinkButton, selector: "sui-link-button", inputs: ["variant", "size", "underline", "disabled", "leftIcon", "rightIcon", "href", "target", "rel", "type", "ariaLabel"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14114
14186
  }
14115
14187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiRadioLabel, decorators: [{
14116
14188
  type: Component,
@@ -14120,6 +14192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
14120
14192
  '[attr.aria-disabled]': 'isDisabled() ? "true" : null',
14121
14193
  '[attr.tabindex]': 'isDisabled() ? null : 0',
14122
14194
  '[attr.data-sui-checked]': 'isChecked() ? "" : null',
14195
+ '[attr.data-sui-size]': 'size()',
14123
14196
  '[attr.data-sui-flip]': 'flip() ? "" : null',
14124
14197
  '[attr.data-sui-with-description]': 'description() ? "" : null',
14125
14198
  '[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
@@ -14129,8 +14202,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
14129
14202
  /* iOS WKWebView: engage del touch pipeline + deselección inmediata. */
14130
14203
  '(touchstart)': '$event.currentTarget',
14131
14204
  '(touchend)': '$any($event.currentTarget).blur()',
14132
- }, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (radio primero). El sui-radio es solo\n visual (pointer-events none) \u2014 la selecci\u00F3n vive en el host. -->\n<sui-radio\n class=\"sui-radio-label__radio\"\n [value]=\"value()\"\n [standaloneChecked]=\"isChecked()\"\n [disabled]=\"isDisabled()\"\n/>\n\n<div class=\"sui-radio-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-radio-label__text\">\n <div class=\"sui-radio-label__title\">\n <span class=\"sui-radio-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-radio-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? 'small'\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-radio-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-radio-label__radio{order:2}:host([data-sui-flip]) .sui-radio-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-radio-label__content{opacity:.5}.sui-radio-label__radio{flex-shrink:0}.sui-radio-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-radio-label__content{gap:10px}.sui-radio-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-radio-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-radio-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-radio-label__label{font-weight:500}.sui-radio-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-radio-label__badge{flex-shrink:0}.sui-radio-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host sui-radio{pointer-events:none}\n"] }]
14133
- }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], selected: [{ type: i0.Output, args: ["selected"] }], linkClick: [{ type: i0.Output, args: ["linkClick"] }] } });
14205
+ }, template: "<!-- Layout flex: el orden visual depende de [flip]. CSS rota via `order` para\n mantener un solo DOM order accesible (radio primero). El sui-radio es solo\n visual (pointer-events none) \u2014 la selecci\u00F3n vive en el host. -->\n<sui-radio\n class=\"sui-radio-label__radio\"\n [size]=\"size()\"\n [value]=\"value()\"\n [standaloneChecked]=\"isChecked()\"\n [disabled]=\"isDisabled()\"\n/>\n\n<div class=\"sui-radio-label__content\">\n <!-- Bloque de texto: Title + Description van pegados (gap-4 en Figma). -->\n <div class=\"sui-radio-label__text\">\n <div class=\"sui-radio-label__title\">\n <span class=\"sui-radio-label__label\">{{ label() }}</span>\n @if (sublabel(); as sl) {\n <span class=\"sui-radio-label__sublabel\">{{ sl }}</span>\n }\n @if (badgeCfg(); as bcfg) {\n <sui-badge\n class=\"sui-radio-label__badge\"\n [color]=\"bcfg.color ?? 'orange'\"\n [variant]=\"bcfg.variant ?? 'light'\"\n [size]=\"bcfg.size ?? badgeSize()\"\n >{{ bcfg.label }}</sui-badge>\n }\n </div>\n\n @if (description(); as desc) {\n <p class=\"sui-radio-label__description\">{{ desc }}</p>\n }\n </div>\n\n @if (description() && linkCfg(); as link) {\n <sui-link-button\n variant=\"primary\"\n [size]=\"linkSize()\"\n [disabled]=\"isDisabled()\"\n [href]=\"link.href ?? null\"\n [target]=\"link.target ?? null\"\n [rel]=\"link.rel ?? null\"\n (clicked)=\"onLinkClick($event)\"\n >{{ link.label }}</sui-link-button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-family:var(--sui-font-sans, \"Inter\", system-ui, sans-serif);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-tap-highlight-color:transparent}:host([data-sui-flip]) .sui-radio-label__radio{order:2}:host([data-sui-flip]) .sui-radio-label__content{order:1}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-radio-label__content{opacity:.5}.sui-radio-label__radio{flex-shrink:0}.sui-radio-label__content{display:flex;flex:1 0 0;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}:host([data-sui-with-description]) .sui-radio-label__content{gap:10px}.sui-radio-label__text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.sui-radio-label__title{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sui-radio-label__label{font-size:14px;font-weight:400;line-height:20px;letter-spacing:-.084px;color:var(--sui-text-strong-950)}:host([data-sui-with-description]) .sui-radio-label__label{font-weight:500}.sui-radio-label__sublabel{font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600)}.sui-radio-label__badge{flex-shrink:0}.sui-radio-label__description{margin:0;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0;color:var(--sui-text-sub-600);word-break:break-word}:host sui-radio{pointer-events:none}:host([data-sui-size=large]){gap:10px}:host([data-sui-size=xlarge]){gap:12px}:host([data-sui-size=large]) .sui-radio-label__label,:host([data-sui-size=xlarge]) .sui-radio-label__label{font-size:var(--sui-type-paragraph-md-size);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-sui-size=large]) .sui-radio-label__sublabel,:host([data-sui-size=large]) .sui-radio-label__description,:host([data-sui-size=xlarge]) .sui-radio-label__sublabel,:host([data-sui-size=xlarge]) .sui-radio-label__description{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=xlarge]) .sui-radio-label__content{padding-top:2px}\n"] }]
14206
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], selected: [{ type: i0.Output, args: ["selected"] }], linkClick: [{ type: i0.Output, args: ["linkClick"] }] } });
14134
14207
 
14135
14208
  /**
14136
14209
  * SUI Rating — SUI Design System 2.0
@@ -15353,6 +15426,8 @@ class SuiSlider {
15353
15426
  hostRef = inject(ElementRef);
15354
15427
  // ── API pública ────────────────────────────────────────────────────────
15355
15428
  type = input('single', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
15429
+ /** `medium` (default, Figma) o `large` (mobile, extensión SUI). */
15430
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
15356
15431
  /** Rango numérico de la escala. */
15357
15432
  min = input(0, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
15358
15433
  max = input(100, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
@@ -15598,13 +15673,13 @@ class SuiSlider {
15598
15673
  this.hovering.set(null);
15599
15674
  }
15600
15675
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiSlider, deps: [], target: i0.ɵɵFactoryTarget.Component });
15601
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiSlider, isStandalone: true, selector: "sui-slider", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, amount: { classPropertyName: "amount", publicName: "amount", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipAlways: { classPropertyName: "tooltipAlways", publicName: "tooltipAlways", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", minValueChange: "minValueChange", maxValueChange: "maxValueChange" }, host: { properties: { "attr.title": "null", "attr.data-sui-type": "type()", "attr.data-sui-disabled": "isDisabled() ? \"\" : null", "attr.data-sui-dragging": "dragging() ? \"\" : null" } }, providers: [
15676
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiSlider, isStandalone: true, selector: "sui-slider", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, amount: { classPropertyName: "amount", publicName: "amount", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipAlways: { classPropertyName: "tooltipAlways", publicName: "tooltipAlways", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", minValueChange: "minValueChange", maxValueChange: "maxValueChange" }, host: { properties: { "attr.title": "null", "attr.data-sui-type": "type()", "attr.data-sui-size": "size()", "attr.data-sui-disabled": "isDisabled() ? \"\" : null", "attr.data-sui-dragging": "dragging() ? \"\" : null" } }, providers: [
15602
15677
  {
15603
15678
  provide: NG_VALUE_ACCESSOR,
15604
15679
  useExisting: forwardRef(() => SuiSlider),
15605
15680
  multi: true,
15606
15681
  },
15607
- ], ngImport: i0, template: "@if (label()) {\n <div class=\"sui-slider__label-row\">\n <span class=\"sui-slider__label\">{{ label() }}</span>\n @if (sublabel()) {\n <span class=\"sui-slider__sublabel\">{{ sublabel() }}</span>\n }\n <span class=\"sui-slider__amount\">{{ amountText() }}</span>\n </div>\n}\n\n<div\n class=\"sui-slider__track\"\n (pointerdown)=\"onTrackPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp()\"\n (pointercancel)=\"onPointerUp()\"\n>\n <!-- BG track -->\n <div class=\"sui-slider__bg\"></div>\n\n @if (type() === 'single') {\n <!-- Progress fill 0 \u2192 value -->\n <div class=\"sui-slider__progress\" [style.width.%]=\"valuePct()\"></div>\n\n <!-- Thumb \u00FAnico -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!singleHasProgress()\"\n [style.left.%]=\"valuePct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveValue()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'single')\"\n (pointerenter)=\"onThumbEnter('single')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showSingleTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveValue() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n } @else {\n <!-- Progress fill min \u2192 max -->\n <div\n class=\"sui-slider__progress\"\n [style.left.%]=\"minPct()\"\n [style.width.%]=\"maxPct() - minPct()\"\n ></div>\n\n <!-- Thumb min (izquierdo) -->\n <div\n class=\"sui-slider__thumb sui-slider__thumb--range-min\"\n [class.sui-slider__thumb--zero]=\"!rangeMinColored()\"\n [style.left.%]=\"minPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"effectiveMax()\"\n [attr.aria-valuenow]=\"effectiveMin()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'min')\"\n (pointerenter)=\"onThumbEnter('min')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMinTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMin() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n\n <!-- Thumb max (derecho) -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!rangeMaxColored()\"\n [style.left.%]=\"maxPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"effectiveMin()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveMax()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'max')\"\n (pointerenter)=\"onThumbEnter('max')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMaxTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMax() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;box-sizing:border-box;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-user-select:none;user-select:none}.sui-slider__label-row{display:flex;align-items:flex-start;gap:2px;width:100%;font-size:12px;line-height:16px;font-weight:400}.sui-slider__label{color:var(--sui-text-sub-600);white-space:nowrap}.sui-slider__sublabel{color:var(--sui-text-soft-400);white-space:nowrap}.sui-slider__amount{flex:1 0 0;min-width:0;text-align:right;color:var(--sui-text-sub-600)}.sui-slider__track{position:relative;width:100%;height:16px;cursor:pointer;touch-action:none}.sui-slider__bg{position:absolute;left:0;right:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-bg-soft-200)}.sui-slider__progress{position:absolute;left:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-primary-base)}.sui-slider__thumb{position:absolute;top:50%;width:16px;height:16px;margin-left:-8px;transform:translateY(-50%);border-radius:50%;background:var(--sui-static-white, #ffffff);filter:drop-shadow(0px 6px 5px rgba(14,18,27,.06)) drop-shadow(0px 2px 2px rgba(14,18,27,.03));display:flex;align-items:center;justify-content:center;cursor:grab;outline:none;box-sizing:border-box}.sui-slider__thumb:active{cursor:grabbing}.sui-slider__thumb--range-min{margin-left:-5px}.sui-slider__thumb:focus-visible{box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-slider__dot{width:6px;height:6px;border-radius:50%;background:var(--sui-primary-base);box-sizing:border-box}.sui-slider__thumb--zero .sui-slider__dot{background:var(--sui-bg-soft-200)}.sui-slider__tooltip{position:absolute;left:50%;top:-28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:2}.sui-slider__tooltip-text{display:flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:var(--sui-radius-4);background:var(--sui-bg-strong-950);color:var(--sui-text-white-0);font-size:12px;line-height:16px;font-weight:400;white-space:nowrap;box-shadow:0 12px 24px #0e121b0f,0 1px 2px #0e121b08}.sui-slider__tooltip-tail{width:8px;height:4px;background:var(--sui-bg-strong-950);clip-path:polygon(0 0,100% 0,50% 100%)}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__track{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__thumb{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__progress{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__dot{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__label,:host([data-sui-disabled]) .sui-slider__amount{color:var(--sui-text-disabled-300)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15682
+ ], ngImport: i0, template: "@if (label()) {\n <div class=\"sui-slider__label-row\">\n <span class=\"sui-slider__label\">{{ label() }}</span>\n @if (sublabel()) {\n <span class=\"sui-slider__sublabel\">{{ sublabel() }}</span>\n }\n <span class=\"sui-slider__amount\">{{ amountText() }}</span>\n </div>\n}\n\n<div\n class=\"sui-slider__track\"\n (pointerdown)=\"onTrackPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp()\"\n (pointercancel)=\"onPointerUp()\"\n>\n <!-- BG track -->\n <div class=\"sui-slider__bg\"></div>\n\n @if (type() === 'single') {\n <!-- Progress fill 0 \u2192 value -->\n <div class=\"sui-slider__progress\" [style.width.%]=\"valuePct()\"></div>\n\n <!-- Thumb \u00FAnico -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!singleHasProgress()\"\n [style.left.%]=\"valuePct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveValue()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'single')\"\n (pointerenter)=\"onThumbEnter('single')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showSingleTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveValue() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n } @else {\n <!-- Progress fill min \u2192 max -->\n <div\n class=\"sui-slider__progress\"\n [style.left.%]=\"minPct()\"\n [style.width.%]=\"maxPct() - minPct()\"\n ></div>\n\n <!-- Thumb min (izquierdo) -->\n <div\n class=\"sui-slider__thumb sui-slider__thumb--range-min\"\n [class.sui-slider__thumb--zero]=\"!rangeMinColored()\"\n [style.left.%]=\"minPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"effectiveMax()\"\n [attr.aria-valuenow]=\"effectiveMin()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'min')\"\n (pointerenter)=\"onThumbEnter('min')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMinTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMin() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n\n <!-- Thumb max (derecho) -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!rangeMaxColored()\"\n [style.left.%]=\"maxPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"effectiveMin()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveMax()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'max')\"\n (pointerenter)=\"onThumbEnter('max')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMaxTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMax() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;box-sizing:border-box;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-user-select:none;user-select:none}.sui-slider__label-row{display:flex;align-items:flex-start;gap:2px;width:100%;font-size:12px;line-height:16px;font-weight:400}.sui-slider__label{color:var(--sui-text-sub-600);white-space:nowrap}.sui-slider__sublabel{color:var(--sui-text-soft-400);white-space:nowrap}.sui-slider__amount{flex:1 0 0;min-width:0;text-align:right;color:var(--sui-text-sub-600)}.sui-slider__track{position:relative;width:100%;height:16px;cursor:pointer;touch-action:none}.sui-slider__bg{position:absolute;left:0;right:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-bg-soft-200)}.sui-slider__progress{position:absolute;left:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-primary-base)}.sui-slider__thumb{position:absolute;top:50%;width:16px;height:16px;margin-left:-8px;transform:translateY(-50%);border-radius:50%;background:var(--sui-static-white, #ffffff);filter:drop-shadow(0px 6px 5px rgba(14,18,27,.06)) drop-shadow(0px 2px 2px rgba(14,18,27,.03));display:flex;align-items:center;justify-content:center;cursor:grab;outline:none;box-sizing:border-box}.sui-slider__thumb:active{cursor:grabbing}.sui-slider__thumb--range-min{margin-left:-5px}.sui-slider__thumb:focus-visible{box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-slider__dot{width:6px;height:6px;border-radius:50%;background:var(--sui-primary-base);box-sizing:border-box}.sui-slider__thumb--zero .sui-slider__dot{background:var(--sui-bg-soft-200)}:host([data-sui-size=large]){gap:8px}:host([data-sui-size=large]) .sui-slider__label-row{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=large]) .sui-slider__track{height:24px}:host([data-sui-size=large]) .sui-slider__bg,:host([data-sui-size=large]) .sui-slider__progress{top:8px;height:8px}:host([data-sui-size=large]) .sui-slider__thumb{width:24px;height:24px;margin-left:-12px}:host([data-sui-size=large]) .sui-slider__thumb--range-min{margin-left:-9px}:host([data-sui-size=large]) .sui-slider__dot{width:8px;height:8px}.sui-slider__tooltip{position:absolute;left:50%;top:-28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:2}.sui-slider__tooltip-text{display:flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:var(--sui-radius-4);background:var(--sui-bg-strong-950);color:var(--sui-text-white-0);font-size:12px;line-height:16px;font-weight:400;white-space:nowrap;box-shadow:0 12px 24px #0e121b0f,0 1px 2px #0e121b08}.sui-slider__tooltip-tail{width:8px;height:4px;background:var(--sui-bg-strong-950);clip-path:polygon(0 0,100% 0,50% 100%)}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__track{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__thumb{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__progress{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__dot{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__label,:host([data-sui-disabled]) .sui-slider__amount{color:var(--sui-text-disabled-300)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15608
15683
  }
15609
15684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiSlider, decorators: [{
15610
15685
  type: Component,
@@ -15618,10 +15693,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15618
15693
  /* Strip native `title` attr — patrón canon Ontop (ver CLAUDE.md). */
15619
15694
  '[attr.title]': 'null',
15620
15695
  '[attr.data-sui-type]': 'type()',
15696
+ '[attr.data-sui-size]': 'size()',
15621
15697
  '[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
15622
15698
  '[attr.data-sui-dragging]': 'dragging() ? "" : null',
15623
- }, template: "@if (label()) {\n <div class=\"sui-slider__label-row\">\n <span class=\"sui-slider__label\">{{ label() }}</span>\n @if (sublabel()) {\n <span class=\"sui-slider__sublabel\">{{ sublabel() }}</span>\n }\n <span class=\"sui-slider__amount\">{{ amountText() }}</span>\n </div>\n}\n\n<div\n class=\"sui-slider__track\"\n (pointerdown)=\"onTrackPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp()\"\n (pointercancel)=\"onPointerUp()\"\n>\n <!-- BG track -->\n <div class=\"sui-slider__bg\"></div>\n\n @if (type() === 'single') {\n <!-- Progress fill 0 \u2192 value -->\n <div class=\"sui-slider__progress\" [style.width.%]=\"valuePct()\"></div>\n\n <!-- Thumb \u00FAnico -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!singleHasProgress()\"\n [style.left.%]=\"valuePct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveValue()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'single')\"\n (pointerenter)=\"onThumbEnter('single')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showSingleTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveValue() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n } @else {\n <!-- Progress fill min \u2192 max -->\n <div\n class=\"sui-slider__progress\"\n [style.left.%]=\"minPct()\"\n [style.width.%]=\"maxPct() - minPct()\"\n ></div>\n\n <!-- Thumb min (izquierdo) -->\n <div\n class=\"sui-slider__thumb sui-slider__thumb--range-min\"\n [class.sui-slider__thumb--zero]=\"!rangeMinColored()\"\n [style.left.%]=\"minPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"effectiveMax()\"\n [attr.aria-valuenow]=\"effectiveMin()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'min')\"\n (pointerenter)=\"onThumbEnter('min')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMinTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMin() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n\n <!-- Thumb max (derecho) -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!rangeMaxColored()\"\n [style.left.%]=\"maxPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"effectiveMin()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveMax()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'max')\"\n (pointerenter)=\"onThumbEnter('max')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMaxTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMax() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;box-sizing:border-box;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-user-select:none;user-select:none}.sui-slider__label-row{display:flex;align-items:flex-start;gap:2px;width:100%;font-size:12px;line-height:16px;font-weight:400}.sui-slider__label{color:var(--sui-text-sub-600);white-space:nowrap}.sui-slider__sublabel{color:var(--sui-text-soft-400);white-space:nowrap}.sui-slider__amount{flex:1 0 0;min-width:0;text-align:right;color:var(--sui-text-sub-600)}.sui-slider__track{position:relative;width:100%;height:16px;cursor:pointer;touch-action:none}.sui-slider__bg{position:absolute;left:0;right:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-bg-soft-200)}.sui-slider__progress{position:absolute;left:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-primary-base)}.sui-slider__thumb{position:absolute;top:50%;width:16px;height:16px;margin-left:-8px;transform:translateY(-50%);border-radius:50%;background:var(--sui-static-white, #ffffff);filter:drop-shadow(0px 6px 5px rgba(14,18,27,.06)) drop-shadow(0px 2px 2px rgba(14,18,27,.03));display:flex;align-items:center;justify-content:center;cursor:grab;outline:none;box-sizing:border-box}.sui-slider__thumb:active{cursor:grabbing}.sui-slider__thumb--range-min{margin-left:-5px}.sui-slider__thumb:focus-visible{box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-slider__dot{width:6px;height:6px;border-radius:50%;background:var(--sui-primary-base);box-sizing:border-box}.sui-slider__thumb--zero .sui-slider__dot{background:var(--sui-bg-soft-200)}.sui-slider__tooltip{position:absolute;left:50%;top:-28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:2}.sui-slider__tooltip-text{display:flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:var(--sui-radius-4);background:var(--sui-bg-strong-950);color:var(--sui-text-white-0);font-size:12px;line-height:16px;font-weight:400;white-space:nowrap;box-shadow:0 12px 24px #0e121b0f,0 1px 2px #0e121b08}.sui-slider__tooltip-tail{width:8px;height:4px;background:var(--sui-bg-strong-950);clip-path:polygon(0 0,100% 0,50% 100%)}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__track{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__thumb{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__progress{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__dot{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__label,:host([data-sui-disabled]) .sui-slider__amount{color:var(--sui-text-disabled-300)}\n"] }]
15624
- }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], amount: [{ type: i0.Input, args: [{ isSignal: true, alias: "amount", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], tooltipAlways: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipAlways", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], minValueChange: [{ type: i0.Output, args: ["minValueChange"] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], maxValueChange: [{ type: i0.Output, args: ["maxValueChange"] }] } });
15699
+ }, template: "@if (label()) {\n <div class=\"sui-slider__label-row\">\n <span class=\"sui-slider__label\">{{ label() }}</span>\n @if (sublabel()) {\n <span class=\"sui-slider__sublabel\">{{ sublabel() }}</span>\n }\n <span class=\"sui-slider__amount\">{{ amountText() }}</span>\n </div>\n}\n\n<div\n class=\"sui-slider__track\"\n (pointerdown)=\"onTrackPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp()\"\n (pointercancel)=\"onPointerUp()\"\n>\n <!-- BG track -->\n <div class=\"sui-slider__bg\"></div>\n\n @if (type() === 'single') {\n <!-- Progress fill 0 \u2192 value -->\n <div class=\"sui-slider__progress\" [style.width.%]=\"valuePct()\"></div>\n\n <!-- Thumb \u00FAnico -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!singleHasProgress()\"\n [style.left.%]=\"valuePct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveValue()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'single')\"\n (pointerenter)=\"onThumbEnter('single')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showSingleTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveValue() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n } @else {\n <!-- Progress fill min \u2192 max -->\n <div\n class=\"sui-slider__progress\"\n [style.left.%]=\"minPct()\"\n [style.width.%]=\"maxPct() - minPct()\"\n ></div>\n\n <!-- Thumb min (izquierdo) -->\n <div\n class=\"sui-slider__thumb sui-slider__thumb--range-min\"\n [class.sui-slider__thumb--zero]=\"!rangeMinColored()\"\n [style.left.%]=\"minPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"effectiveMax()\"\n [attr.aria-valuenow]=\"effectiveMin()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'min')\"\n (pointerenter)=\"onThumbEnter('min')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMinTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMin() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n\n <!-- Thumb max (derecho) -->\n <div\n class=\"sui-slider__thumb\"\n [class.sui-slider__thumb--zero]=\"!rangeMaxColored()\"\n [style.left.%]=\"maxPct()\"\n role=\"slider\"\n [attr.aria-valuemin]=\"effectiveMin()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"effectiveMax()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : null\"\n [attr.tabindex]=\"isDisabled() ? '-1' : '0'\"\n (keydown)=\"onThumbKeydown($event, 'max')\"\n (pointerenter)=\"onThumbEnter('max')\"\n (pointerleave)=\"onThumbLeave()\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <span class=\"sui-slider__dot\"></span>\n @if (showMaxTooltip()) {\n <div class=\"sui-slider__tooltip\">\n <span class=\"sui-slider__tooltip-text\">{{ effectiveMax() }}</span>\n <span class=\"sui-slider__tooltip-tail\"></span>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;box-sizing:border-box;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;-webkit-user-select:none;user-select:none}.sui-slider__label-row{display:flex;align-items:flex-start;gap:2px;width:100%;font-size:12px;line-height:16px;font-weight:400}.sui-slider__label{color:var(--sui-text-sub-600);white-space:nowrap}.sui-slider__sublabel{color:var(--sui-text-soft-400);white-space:nowrap}.sui-slider__amount{flex:1 0 0;min-width:0;text-align:right;color:var(--sui-text-sub-600)}.sui-slider__track{position:relative;width:100%;height:16px;cursor:pointer;touch-action:none}.sui-slider__bg{position:absolute;left:0;right:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-bg-soft-200)}.sui-slider__progress{position:absolute;left:0;top:5px;height:6px;border-radius:var(--sui-radius-full);background:var(--sui-primary-base)}.sui-slider__thumb{position:absolute;top:50%;width:16px;height:16px;margin-left:-8px;transform:translateY(-50%);border-radius:50%;background:var(--sui-static-white, #ffffff);filter:drop-shadow(0px 6px 5px rgba(14,18,27,.06)) drop-shadow(0px 2px 2px rgba(14,18,27,.03));display:flex;align-items:center;justify-content:center;cursor:grab;outline:none;box-sizing:border-box}.sui-slider__thumb:active{cursor:grabbing}.sui-slider__thumb--range-min{margin-left:-5px}.sui-slider__thumb:focus-visible{box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-base)}.sui-slider__dot{width:6px;height:6px;border-radius:50%;background:var(--sui-primary-base);box-sizing:border-box}.sui-slider__thumb--zero .sui-slider__dot{background:var(--sui-bg-soft-200)}:host([data-sui-size=large]){gap:8px}:host([data-sui-size=large]) .sui-slider__label-row{font-size:var(--sui-type-paragraph-sm-size);line-height:var(--sui-type-paragraph-sm-line);letter-spacing:var(--sui-type-paragraph-sm-spacing)}:host([data-sui-size=large]) .sui-slider__track{height:24px}:host([data-sui-size=large]) .sui-slider__bg,:host([data-sui-size=large]) .sui-slider__progress{top:8px;height:8px}:host([data-sui-size=large]) .sui-slider__thumb{width:24px;height:24px;margin-left:-12px}:host([data-sui-size=large]) .sui-slider__thumb--range-min{margin-left:-9px}:host([data-sui-size=large]) .sui-slider__dot{width:8px;height:8px}.sui-slider__tooltip{position:absolute;left:50%;top:-28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:2}.sui-slider__tooltip-text{display:flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:var(--sui-radius-4);background:var(--sui-bg-strong-950);color:var(--sui-text-white-0);font-size:12px;line-height:16px;font-weight:400;white-space:nowrap;box-shadow:0 12px 24px #0e121b0f,0 1px 2px #0e121b08}.sui-slider__tooltip-tail{width:8px;height:4px;background:var(--sui-bg-strong-950);clip-path:polygon(0 0,100% 0,50% 100%)}:host([data-sui-disabled]){cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__track{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__thumb{cursor:not-allowed}:host([data-sui-disabled]) .sui-slider__progress{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__dot{background:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-slider__label,:host([data-sui-disabled]) .sui-slider__amount{color:var(--sui-text-disabled-300)}\n"] }]
15700
+ }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], amount: [{ type: i0.Input, args: [{ isSignal: true, alias: "amount", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], tooltipAlways: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipAlways", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], minValueChange: [{ type: i0.Output, args: ["minValueChange"] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], maxValueChange: [{ type: i0.Output, args: ["maxValueChange"] }] } });
15625
15701
 
15626
15702
  /** Brand color map — exact bg-color por brand cuando style=filled. */
15627
15703
  const BRAND_FILLED_BG = {
@@ -15775,7 +15851,7 @@ class SuiSocialButton {
15775
15851
  this.clicked.emit(event);
15776
15852
  }
15777
15853
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiSocialButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
15778
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiSocialButton, isStandalone: true, selector: "sui-social-button", inputs: { brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: true, transformFunction: null }, variantStyle: { classPropertyName: "variantStyle", publicName: "variantStyle", isSignal: true, isRequired: false, transformFunction: null }, onlyIcon: { classPropertyName: "onlyIcon", publicName: "onlyIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-brand": "brand()", "attr.data-sui-style": "variantStyle()", "attr.data-sui-only-icon": "onlyIcon() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null", "attr.data-sui-loading": "loading() ? \"\" : null", "style.--sui-social-bg": "filledBg()" } }, ngImport: i0, template: "@if (isAnchor()) {\n <a\n class=\"sui-social-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </a>\n} @else {\n <button\n class=\"sui-social-button__el\"\n [type]=\"type()\"\n [disabled]=\"isDisabled() || null\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:stretch;vertical-align:middle}.sui-social-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:10px 16px 10px 10px;border:0;border-radius:var(--sui-radius-10, 10px);background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;min-height:40px;box-sizing:border-box;transition:background .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-social-button__el:active:not(:disabled){transform:scale(.97)}.sui-social-button__el:disabled{cursor:not-allowed}:host .sui-social-button__el:active:not(:disabled),:host .sui-social-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}.sui-social-button__text{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500);white-space:nowrap}.sui-social-button__spinner{display:inline-flex;animation:sui-social-button-spin .8s linear infinite}@keyframes sui-social-button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sui-social-button__spinner{animation:none}}:host([data-sui-only-icon]) .sui-social-button__el{padding:10px;width:40px;height:40px}:host([data-sui-style=filled]) .sui-social-button__el{background:var(--sui-social-bg);color:var(--sui-static-white, #ffffff)}:host([data-sui-style=filled]) .sui-social-button__el:hover:not(:disabled){background:linear-gradient(#00000029,#00000029) padding-box,var(--sui-social-bg)}:host([data-sui-style=filled]) .sui-social-button__el:active:not(:disabled){background:linear-gradient(#0000003d,#0000003d) padding-box,var(--sui-social-bg)}:host([data-sui-style=stroke]) .sui-social-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-text-strong-950);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-social-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50)}:host([data-sui-style=stroke]) .sui-social-button__el:active:not(:disabled){background:var(--sui-bg-soft-200)}:host([data-sui-disabled]) .sui-social-button__el,.sui-social-button__el:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "component", type: SuiBrandLogo, selector: "sui-brand-logo", inputs: ["company", "variant", "size", "href", "target", "rel", "disabled", "ariaLabel"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15854
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiSocialButton, isStandalone: true, selector: "sui-social-button", inputs: { brand: { classPropertyName: "brand", publicName: "brand", isSignal: true, isRequired: true, transformFunction: null }, variantStyle: { classPropertyName: "variantStyle", publicName: "variantStyle", isSignal: true, isRequired: false, transformFunction: null }, onlyIcon: { classPropertyName: "onlyIcon", publicName: "onlyIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-sui-brand": "brand()", "attr.data-sui-style": "variantStyle()", "attr.data-sui-only-icon": "onlyIcon() ? \"\" : null", "attr.data-sui-disabled": "isDisabled() ? \"\" : null", "attr.data-sui-loading": "loading() ? \"\" : null", "style.--sui-social-bg": "filledBg()" } }, ngImport: i0, template: "@if (isAnchor()) {\n <a\n class=\"sui-social-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </a>\n} @else {\n <button\n class=\"sui-social-button__el\"\n [type]=\"type()\"\n [disabled]=\"isDisabled() || null\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:stretch;vertical-align:middle}.sui-social-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:10px 16px 10px 10px;border:0;border-radius:var(--sui-radius-10, 10px);background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;min-height:40px;box-sizing:border-box;flex:1 1 auto;transition:background .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-social-button__el:active:not(:disabled){transform:scale(.97)}.sui-social-button__el:disabled{cursor:not-allowed}:host .sui-social-button__el:active:not(:disabled),:host .sui-social-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}.sui-social-button__text{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500);white-space:nowrap}.sui-social-button__spinner{display:inline-flex;animation:sui-social-button-spin .8s linear infinite}@keyframes sui-social-button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sui-social-button__spinner{animation:none}}:host([data-sui-only-icon]) .sui-social-button__el{padding:10px;width:40px;height:40px;flex:none}:host([data-sui-style=filled]) .sui-social-button__el{background:var(--sui-social-bg);color:var(--sui-static-white, #ffffff)}:host([data-sui-style=filled]) .sui-social-button__el:hover:not(:disabled){background:linear-gradient(#00000029,#00000029) padding-box,var(--sui-social-bg)}:host([data-sui-style=filled]) .sui-social-button__el:active:not(:disabled){background:linear-gradient(#0000003d,#0000003d) padding-box,var(--sui-social-bg)}:host([data-sui-style=stroke]) .sui-social-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-text-strong-950);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-social-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50)}:host([data-sui-style=stroke]) .sui-social-button__el:active:not(:disabled){background:var(--sui-bg-soft-200)}:host([data-sui-disabled]) .sui-social-button__el,.sui-social-button__el:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "component", type: SuiBrandLogo, selector: "sui-brand-logo", inputs: ["company", "variant", "size", "href", "target", "rel", "disabled", "ariaLabel"] }, { kind: "directive", type: SuiHref, selector: "a[suiHref]", inputs: ["suiHref"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15779
15855
  }
15780
15856
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiSocialButton, decorators: [{
15781
15857
  type: Component,
@@ -15786,7 +15862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15786
15862
  '[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
15787
15863
  '[attr.data-sui-loading]': 'loading() ? "" : null',
15788
15864
  '[style.--sui-social-bg]': 'filledBg()',
15789
- }, template: "@if (isAnchor()) {\n <a\n class=\"sui-social-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </a>\n} @else {\n <button\n class=\"sui-social-button__el\"\n [type]=\"type()\"\n [disabled]=\"isDisabled() || null\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:stretch;vertical-align:middle}.sui-social-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:10px 16px 10px 10px;border:0;border-radius:var(--sui-radius-10, 10px);background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;min-height:40px;box-sizing:border-box;transition:background .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-social-button__el:active:not(:disabled){transform:scale(.97)}.sui-social-button__el:disabled{cursor:not-allowed}:host .sui-social-button__el:active:not(:disabled),:host .sui-social-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}.sui-social-button__text{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500);white-space:nowrap}.sui-social-button__spinner{display:inline-flex;animation:sui-social-button-spin .8s linear infinite}@keyframes sui-social-button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sui-social-button__spinner{animation:none}}:host([data-sui-only-icon]) .sui-social-button__el{padding:10px;width:40px;height:40px}:host([data-sui-style=filled]) .sui-social-button__el{background:var(--sui-social-bg);color:var(--sui-static-white, #ffffff)}:host([data-sui-style=filled]) .sui-social-button__el:hover:not(:disabled){background:linear-gradient(#00000029,#00000029) padding-box,var(--sui-social-bg)}:host([data-sui-style=filled]) .sui-social-button__el:active:not(:disabled){background:linear-gradient(#0000003d,#0000003d) padding-box,var(--sui-social-bg)}:host([data-sui-style=stroke]) .sui-social-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-text-strong-950);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-social-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50)}:host([data-sui-style=stroke]) .sui-social-button__el:active:not(:disabled){background:var(--sui-bg-soft-200)}:host([data-sui-disabled]) .sui-social-button__el,.sui-social-button__el:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}\n"] }]
15865
+ }, template: "@if (isAnchor()) {\n <a\n class=\"sui-social-button__el\"\n [suiHref]=\"href()\"\n [attr.target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </a>\n} @else {\n <button\n class=\"sui-social-button__el\"\n [type]=\"type()\"\n [disabled]=\"isDisabled() || null\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n (click)=\"onClick($event)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n @if (loading()) {\n <sui-icon class=\"sui-social-button__spinner\" name=\"loader-4-line\" [size]=\"20\" />\n } @else {\n <sui-brand-logo [company]=\"brand()\" [variant]=\"logoStyle()\" size=\"sm\" />\n }\n @if (!onlyIcon()) {\n <span class=\"sui-social-button__text\">{{ resolvedLabel() }}</span>\n }\n </button>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:stretch;vertical-align:middle}.sui-social-button__el{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:10px 16px 10px 10px;border:0;border-radius:var(--sui-radius-10, 10px);background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;min-height:40px;box-sizing:border-box;flex:1 1 auto;transition:background .12s,transform var(--dur-instant, 80ms) var(--ease-ek, cubic-bezier(.22, 1, .36, 1))}.sui-social-button__el:active:not(:disabled){transform:scale(.97)}.sui-social-button__el:disabled{cursor:not-allowed}:host .sui-social-button__el:active:not(:disabled),:host .sui-social-button__el:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-primary-alpha-10)}.sui-social-button__text{font-size:var(--sui-type-label-sm-size, 14px);line-height:var(--sui-type-label-sm-line, 20px);letter-spacing:var(--sui-type-label-sm-spacing, -.006em);font-weight:var(--sui-type-label-sm-weight, 500);white-space:nowrap}.sui-social-button__spinner{display:inline-flex;animation:sui-social-button-spin .8s linear infinite}@keyframes sui-social-button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sui-social-button__spinner{animation:none}}:host([data-sui-only-icon]) .sui-social-button__el{padding:10px;width:40px;height:40px;flex:none}:host([data-sui-style=filled]) .sui-social-button__el{background:var(--sui-social-bg);color:var(--sui-static-white, #ffffff)}:host([data-sui-style=filled]) .sui-social-button__el:hover:not(:disabled){background:linear-gradient(#00000029,#00000029) padding-box,var(--sui-social-bg)}:host([data-sui-style=filled]) .sui-social-button__el:active:not(:disabled){background:linear-gradient(#0000003d,#0000003d) padding-box,var(--sui-social-bg)}:host([data-sui-style=stroke]) .sui-social-button__el{background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);color:var(--sui-text-strong-950);box-shadow:var(--sui-regular-shadow-x-small)}:host([data-sui-style=stroke]) .sui-social-button__el:hover:not(:disabled){background:var(--sui-bg-weak-50)}:host([data-sui-style=stroke]) .sui-social-button__el:active:not(:disabled){background:var(--sui-bg-soft-200)}:host([data-sui-disabled]) .sui-social-button__el,.sui-social-button__el:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}\n"] }]
15790
15866
  }], ctorParameters: () => [], propDecorators: { brand: [{ type: i0.Input, args: [{ isSignal: true, alias: "brand", required: true }] }], variantStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "variantStyle", required: false }] }], onlyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyIcon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
15791
15867
 
15792
15868
  /**
@@ -15797,7 +15873,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15797
15873
  *
15798
15874
  * Componente separado del `sui-badge` regular. A diferencia del Badge:
15799
15875
  * - radius 6 (NO full)
15800
- * - solo medium size (font Label/X Small 12/16/0)
15876
+ * - Figma trae solo medium (font Label/X Small 12/16/0); large/xlarge son
15877
+ * extensión SUI para mobile (ver «Tamaños» abajo)
15801
15878
  * - solo 2 styles: stroke + light (NO filled/lighter/dark)
15802
15879
  * - status enum cerrado (5 valores) — cada uno con su icono semántico fijo
15803
15880
  * - withDot reemplaza el icono por un dot de 6×6 (diámetro 6px) con el color del status
@@ -15837,11 +15914,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15837
15914
  * - 'information' → state-information + ri-information-fill
15838
15915
  * - 'disabled' → state-faded + ri-forbid-fill
15839
15916
  *
15917
+ * Tamaños — extensión SUI (03-10-2026, pedido del dueño):
15918
+ * El frame 171:5100 trae 20 símbolos, TODOS Medium (24px). Para mobile se
15919
+ * sumaron dos más grandes, en la escala del sui-button (28 · 32) y no en la
15920
+ * del sui-badge (24 · 28): el status-badge ya parte de 24, así que un
15921
+ * «large 24» no cambiaría nada.
15922
+ * medium 24 · Label/X Small 12/16 · icono 12 en caja 16 · dot 6 (default, Figma)
15923
+ * large 28 · Label/Small 14/20 · icono 16 en caja 20 · dot 8
15924
+ * xlarge 32 · Label/Medium 16/24 · icono 20 en caja 24 · dot 8
15925
+ * No hay `small`: Figma no lo trae y en web 24 ya es el mínimo legible.
15926
+ *
15840
15927
  * PENDING VERIFY (no críticos):
15841
- * - Small size del Status Badge: CONFIRMADO que NO existe — el frame 171:5100
15842
- * contiene 20 símbolos (5 status × 2 styles × 2 withDot), TODOS Medium (24px
15843
- * de alto). No hay eje Size en este componente. Si el DS agrega Small más
15844
- * adelante, recién ahí se introduce el input `size`.
15845
15928
  * - Hover/focus states: CONFIRMADO display-only — el frame no expone ningún
15846
15929
  * eje de interacción (ni Disabled como estado, salvo el status semántico
15847
15930
  * 'disabled' que es un valor de contenido, no un state CSS).
@@ -15860,6 +15943,16 @@ class SuiStatusBadge {
15860
15943
  * linter trata de parsear como CSS y rompe con valores como "light").
15861
15944
  */
15862
15945
  appearance = input('stroke', ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
15946
+ /** Tamaño: medium 24 (default, Figma) · large 28 · xlarge 32 (mobile). */
15947
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
15948
+ /** Px del glyph del sui-icon interno por tamaño (12 / 16 / 20). */
15949
+ iconSize = computed(() => {
15950
+ switch (this.size()) {
15951
+ case 'xlarge': return 20;
15952
+ case 'large': return 16;
15953
+ default: return 12;
15954
+ }
15955
+ }, ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
15863
15956
  /**
15864
15957
  * Si `true`, reemplaza el icono semántico por un dot 6×6 (diámetro 6px,
15865
15958
  * radio 3px — confirmado en Figma 171:5156) del color del status.
@@ -15892,17 +15985,18 @@ class SuiStatusBadge {
15892
15985
  }
15893
15986
  }, ...(ngDevMode ? [{ debugName: "iconoDelStatus" }] : /* istanbul ignore next */ []));
15894
15987
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiStatusBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
15895
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiStatusBadge, isStandalone: true, selector: "sui-status-badge", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, withDot: { classPropertyName: "withDot", publicName: "withDot", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-sui-status": "status()", "attr.data-sui-appearance": "appearance()", "attr.data-sui-with-dot": "withDot() ? \"\" : null", "attr.role": "\"status\"" } }, ngImport: i0, template: "@if (withDot()) {\n <span class=\"sui-status-badge__dot\" aria-hidden=\"true\"></span>\n} @else {\n <span class=\"sui-status-badge__icon\" aria-hidden=\"true\">\n <sui-icon [name]=\"iconName()\" [size]=\"12\" />\n </span>\n}\n<span class=\"sui-status-badge__label\"><ng-content></ng-content></span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;box-sizing:border-box;height:24px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;gap:4px}:host([data-sui-with-dot]){gap:2px}.sui-status-badge__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.sui-status-badge__dot{display:inline-block;width:16px;height:16px;flex-shrink:0;background-image:radial-gradient(circle at center,currentColor 0,currentColor 3px,transparent 3.5px)}.sui-status-badge__label{display:inline-flex;align-items:center}:host([data-sui-status=completed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=completed][data-sui-appearance=light]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-success-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=pending][data-sui-appearance=light]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-warning-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=failed][data-sui-appearance=light]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-error-base)}:host([data-sui-status=information][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=information][data-sui-appearance=light]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-information-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=disabled][data-sui-appearance=light]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-text-sub-600)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15988
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiStatusBadge, isStandalone: true, selector: "sui-status-badge", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, withDot: { classPropertyName: "withDot", publicName: "withDot", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-sui-status": "status()", "attr.data-sui-appearance": "appearance()", "attr.data-sui-size": "size()", "attr.data-sui-with-dot": "withDot() ? \"\" : null", "attr.role": "\"status\"" } }, ngImport: i0, template: "@if (withDot()) {\n <span class=\"sui-status-badge__dot\" aria-hidden=\"true\"></span>\n} @else {\n <span class=\"sui-status-badge__icon\" aria-hidden=\"true\">\n <sui-icon [name]=\"iconName()\" [size]=\"iconSize()\" />\n </span>\n}\n<span class=\"sui-status-badge__label\"><ng-content></ng-content></span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;box-sizing:border-box;height:24px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;gap:4px}:host([data-sui-with-dot]){gap:2px}.sui-status-badge__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.sui-status-badge__dot{display:inline-block;width:16px;height:16px;flex-shrink:0;background-image:radial-gradient(circle at center,currentColor 0,currentColor 3px,transparent 3.5px)}.sui-status-badge__label{display:inline-flex;align-items:center}:host([data-sui-size=large]){height:28px;padding:4px 10px 4px 6px;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)}:host([data-sui-size=xlarge]){height:32px;padding:4px 12px 4px 6px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large]) .sui-status-badge__icon,:host([data-sui-size=large]) .sui-status-badge__dot{width:20px;height:20px}:host([data-sui-size=xlarge]) .sui-status-badge__icon,:host([data-sui-size=xlarge]) .sui-status-badge__dot{width:24px;height:24px}:host([data-sui-size=large]) .sui-status-badge__dot,:host([data-sui-size=xlarge]) .sui-status-badge__dot{background-image:radial-gradient(circle at center,currentColor 0,currentColor 4px,transparent 4.5px)}:host([data-sui-status=completed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=completed][data-sui-appearance=light]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-success-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=pending][data-sui-appearance=light]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-warning-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=failed][data-sui-appearance=light]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-error-base)}:host([data-sui-status=information][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=information][data-sui-appearance=light]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-information-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=disabled][data-sui-appearance=light]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-text-sub-600)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15896
15989
  }
15897
15990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiStatusBadge, decorators: [{
15898
15991
  type: Component,
15899
15992
  args: [{ selector: 'sui-status-badge', standalone: true, imports: [SuiIcon], changeDetection: ChangeDetectionStrategy.OnPush, host: {
15900
15993
  '[attr.data-sui-status]': 'status()',
15901
15994
  '[attr.data-sui-appearance]': 'appearance()',
15995
+ '[attr.data-sui-size]': 'size()',
15902
15996
  '[attr.data-sui-with-dot]': 'withDot() ? "" : null',
15903
15997
  '[attr.role]': '"status"',
15904
- }, template: "@if (withDot()) {\n <span class=\"sui-status-badge__dot\" aria-hidden=\"true\"></span>\n} @else {\n <span class=\"sui-status-badge__icon\" aria-hidden=\"true\">\n <sui-icon [name]=\"iconName()\" [size]=\"12\" />\n </span>\n}\n<span class=\"sui-status-badge__label\"><ng-content></ng-content></span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;box-sizing:border-box;height:24px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;gap:4px}:host([data-sui-with-dot]){gap:2px}.sui-status-badge__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.sui-status-badge__dot{display:inline-block;width:16px;height:16px;flex-shrink:0;background-image:radial-gradient(circle at center,currentColor 0,currentColor 3px,transparent 3.5px)}.sui-status-badge__label{display:inline-flex;align-items:center}:host([data-sui-status=completed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=completed][data-sui-appearance=light]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-success-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=pending][data-sui-appearance=light]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-warning-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=failed][data-sui-appearance=light]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-error-base)}:host([data-sui-status=information][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=information][data-sui-appearance=light]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-information-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=disabled][data-sui-appearance=light]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-text-sub-600)}\n"] }]
15905
- }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], withDot: [{ type: i0.Input, args: [{ isSignal: true, alias: "withDot", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
15998
+ }, template: "@if (withDot()) {\n <span class=\"sui-status-badge__dot\" aria-hidden=\"true\"></span>\n} @else {\n <span class=\"sui-status-badge__icon\" aria-hidden=\"true\">\n <sui-icon [name]=\"iconName()\" [size]=\"iconSize()\" />\n </span>\n}\n<span class=\"sui-status-badge__label\"><ng-content></ng-content></span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;box-sizing:border-box;height:24px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;white-space:nowrap;vertical-align:middle;overflow:clip;gap:4px}:host([data-sui-with-dot]){gap:2px}.sui-status-badge__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.sui-status-badge__dot{display:inline-block;width:16px;height:16px;flex-shrink:0;background-image:radial-gradient(circle at center,currentColor 0,currentColor 3px,transparent 3.5px)}.sui-status-badge__label{display:inline-flex;align-items:center}:host([data-sui-size=large]){height:28px;padding:4px 10px 4px 6px;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)}:host([data-sui-size=xlarge]){height:32px;padding:4px 12px 4px 6px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large]) .sui-status-badge__icon,:host([data-sui-size=large]) .sui-status-badge__dot{width:20px;height:20px}:host([data-sui-size=xlarge]) .sui-status-badge__icon,:host([data-sui-size=xlarge]) .sui-status-badge__dot{width:24px;height:24px}:host([data-sui-size=large]) .sui-status-badge__dot,:host([data-sui-size=xlarge]) .sui-status-badge__dot{background-image:radial-gradient(circle at center,currentColor 0,currentColor 4px,transparent 4.5px)}:host([data-sui-status=completed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=completed][data-sui-appearance=light]){background:var(--sui-state-success-lighter);border-color:transparent;color:var(--sui-state-success-base)}:host([data-sui-status=completed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-success-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=pending][data-sui-appearance=light]){background:var(--sui-state-warning-lighter);border-color:transparent;color:var(--sui-state-warning-base)}:host([data-sui-status=pending][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-warning-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=failed][data-sui-appearance=light]){background:var(--sui-state-error-lighter);border-color:transparent;color:var(--sui-state-error-base)}:host([data-sui-status=failed][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-error-base)}:host([data-sui-status=information][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=information][data-sui-appearance=light]){background:var(--sui-state-information-lighter);border-color:transparent;color:var(--sui-state-information-base)}:host([data-sui-status=information][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-information-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=stroke]) .sui-status-badge__label{color:var(--sui-text-sub-600)}:host([data-sui-status=disabled][data-sui-appearance=light]){background:var(--sui-state-faded-lighter);border-color:transparent;color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-state-faded-base)}:host([data-sui-status=disabled][data-sui-appearance=light]) .sui-status-badge__label{color:var(--sui-text-sub-600)}\n"] }]
15999
+ }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], withDot: [{ type: i0.Input, args: [{ isSignal: true, alias: "withDot", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
15906
16000
 
15907
16001
  /**
15908
16002
  * SUI Stepper — SUI Design System 2.0
@@ -15932,7 +16026,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15932
16026
  * @input count Cantidad de dots (variant='dot' only). Si se pasan steps,
15933
16027
  * tiene precedencia el length de steps.
15934
16028
  * @input currentStep 0-indexed; index < cur = completed, === cur = active, > cur = default
15935
- * @input size 'small' | 'xsmall' — solo aplica a variant='dot'
16029
+ * @input size 'small' | 'xsmall' | 'medium'.
16030
+ * small/xsmall (Figma) solo cambian el dot (8 / 4); horizontal y
16031
+ * vertical miden igual en los dos (indicador 20).
16032
+ * medium — extensión SUI (03-10-2026, pedido del dueño) para
16033
+ * mobile — agranda los tres variants: dot 10, indicador 24,
16034
+ * número Label/Small (14/20), label Paragraph/Medium (16/24),
16035
+ * card vertical de 44 de alto (24 + padding 10×2).
15936
16036
  * @input interactive Si true, los steps son clickeables y emiten stepClick
15937
16037
  *
15938
16038
  * @output stepClick Index del step clickeado (solo si interactive=true)
@@ -15981,6 +16081,9 @@ class SuiStepper {
15981
16081
  interactive = input(false, ...(ngDevMode ? [{ debugName: "interactive" }] : /* istanbul ignore next */ []));
15982
16082
  ariaLabel = input('Progreso', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
15983
16083
  stepClick = output();
16084
+ /** Ícono del indicador (completed / error): 24 en medium, 20 en los de Figma.
16085
+ * Es el indicador mismo, por eso crece; separador y chevron se quedan en 20. */
16086
+ indicatorIconPx = computed(() => (this.size() === 'medium' ? 24 : 20), ...(ngDevMode ? [{ debugName: "indicatorIconPx" }] : /* istanbul ignore next */ []));
15984
16087
  /**
15985
16088
  * Vista pre-computada de items. Una sola pasada por cambio de inputs:
15986
16089
  * - resuelve length: steps.length || count (para variant=dot sin labels)
@@ -16027,7 +16130,7 @@ class SuiStepper {
16027
16130
  }
16028
16131
  }
16029
16132
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
16030
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiStepper, isStandalone: true, selector: "sui-stepper", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, currentStep: { classPropertyName: "currentStep", publicName: "currentStep", isSignal: true, isRequired: false, transformFunction: null }, errorStep: { classPropertyName: "errorStep", publicName: "errorStep", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stepClick: "stepClick" }, host: { properties: { "attr.data-variant": "variant()", "attr.data-size": "size()", "attr.role": "\"list\"", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: "@switch (variant()) {\n\n @case ('dot') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n </button>\n } @else {\n <span\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n </span>\n }\n }\n }\n\n @case ('horizontal') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </button>\n } @else {\n <div\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </div>\n }\n @if (!item.isLast) {\n <span class=\"sui-stepper__separator\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n }\n }\n\n @case ('vertical') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </button>\n } @else {\n <div\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </div>\n }\n }\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;font-family:var(--sui-font-sans)}:host([data-variant=dot]){align-items:center;flex-wrap:wrap;gap:10px}:host([data-variant=dot][data-size=xsmall]){gap:6px}.sui-stepper__dot{appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:default;font:inherit;display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--sui-bg-soft-200);flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-stepper__dot[data-state=active]{background:var(--sui-primary-base)}:host([data-variant=dot][data-size=xsmall]) .sui-stepper__dot{width:4px;height:4px}:host([data-variant=dot]) button.sui-stepper__dot{cursor:pointer}:host([data-variant=dot]) button.sui-stepper__dot:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}:host([data-variant=horizontal]){align-items:center;flex-wrap:wrap;gap:16px}.sui-stepper__h-item{appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;cursor:default}.sui-stepper__h-item[data-state=active] .sui-stepper__label,.sui-stepper__h-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-strong-950)}:host([data-variant=horizontal]) button.sui-stepper__h-item{cursor:pointer}:host([data-variant=horizontal]) button.sui-stepper__h-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:6px}.sui-stepper__separator{display:inline-flex;align-items:center;color:var(--sui-icon-soft-400);flex-shrink:0}:host([data-variant=vertical]){flex-direction:column;align-items:stretch;gap:8px;width:100%}.sui-stepper__v-item{appearance:none;border:0;margin:0;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--sui-radius-10);background:var(--sui-bg-weak-50);width:100%;cursor:default;transition:background-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)}.sui-stepper__v-item[data-state=active]{background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__v-item[data-state=active] .sui-stepper__label{color:var(--sui-text-strong-950)}.sui-stepper__v-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-sub-600)}:host([data-variant=vertical]) button.sui-stepper__v-item{cursor:pointer}:host([data-variant=vertical]) button.sui-stepper__v-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-stepper__chevron{display:inline-flex;align-items:center;color:var(--sui-icon-sub-600);flex-shrink:0;margin-left:auto}.sui-stepper__indicator{width:20px;height:20px;border-radius:var(--sui-radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--sui-bg-white-0);flex-shrink:0;overflow:clip;box-shadow:inset 0 0 0 1px var(--sui-stroke-soft-200);transition:background-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)}[data-state=active] .sui-stepper__indicator{background:var(--sui-primary-base);box-shadow:none}[data-state=completed] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-success-base)}[data-state=error] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-error-base)}[data-state=error] .sui-stepper__label{color:var(--sui-state-error-base)}:host([data-variant=vertical]) .sui-stepper__v-item[data-state=default] .sui-stepper__indicator{box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__indicator-num{font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);color:var(--sui-text-sub-600);text-align:center;width:16px;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}[data-state=active] .sui-stepper__indicator-num{color:var(--sui-static-white, #ffffff)}.sui-stepper__label{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-sub-600);white-space:nowrap;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-variant=vertical]) .sui-stepper__label{white-space:normal;flex:1 0 0;min-width:0}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16133
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiStepper, isStandalone: true, selector: "sui-stepper", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, currentStep: { classPropertyName: "currentStep", publicName: "currentStep", isSignal: true, isRequired: false, transformFunction: null }, errorStep: { classPropertyName: "errorStep", publicName: "errorStep", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stepClick: "stepClick" }, host: { properties: { "attr.data-variant": "variant()", "attr.data-size": "size()", "attr.role": "\"list\"", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: "@switch (variant()) {\n\n @case ('dot') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n </button>\n } @else {\n <span\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n </span>\n }\n }\n }\n\n @case ('horizontal') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </button>\n } @else {\n <div\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </div>\n }\n @if (!item.isLast) {\n <span class=\"sui-stepper__separator\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n }\n }\n\n @case ('vertical') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </button>\n } @else {\n <div\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </div>\n }\n }\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;font-family:var(--sui-font-sans)}:host([data-variant=dot]){align-items:center;flex-wrap:wrap;gap:10px}:host([data-variant=dot][data-size=xsmall]){gap:6px}.sui-stepper__dot{appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:default;font:inherit;display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--sui-bg-soft-200);flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-stepper__dot[data-state=active]{background:var(--sui-primary-base)}:host([data-variant=dot][data-size=xsmall]) .sui-stepper__dot{width:4px;height:4px}:host([data-variant=dot]) button.sui-stepper__dot{cursor:pointer}:host([data-variant=dot]) button.sui-stepper__dot:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}:host([data-variant=horizontal]){align-items:center;flex-wrap:wrap;gap:16px}.sui-stepper__h-item{appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;cursor:default}.sui-stepper__h-item[data-state=active] .sui-stepper__label,.sui-stepper__h-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-strong-950)}:host([data-variant=horizontal]) button.sui-stepper__h-item{cursor:pointer}:host([data-variant=horizontal]) button.sui-stepper__h-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:6px}.sui-stepper__separator{display:inline-flex;align-items:center;color:var(--sui-icon-soft-400);flex-shrink:0}:host([data-variant=vertical]){flex-direction:column;align-items:stretch;gap:8px;width:100%}.sui-stepper__v-item{appearance:none;border:0;margin:0;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--sui-radius-10);background:var(--sui-bg-weak-50);width:100%;cursor:default;transition:background-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)}.sui-stepper__v-item[data-state=active]{background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__v-item[data-state=active] .sui-stepper__label{color:var(--sui-text-strong-950)}.sui-stepper__v-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-sub-600)}:host([data-variant=vertical]) button.sui-stepper__v-item{cursor:pointer}:host([data-variant=vertical]) button.sui-stepper__v-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-stepper__chevron{display:inline-flex;align-items:center;color:var(--sui-icon-sub-600);flex-shrink:0;margin-left:auto}.sui-stepper__indicator{width:20px;height:20px;border-radius:var(--sui-radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--sui-bg-white-0);flex-shrink:0;overflow:clip;box-shadow:inset 0 0 0 1px var(--sui-stroke-soft-200);transition:background-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)}[data-state=active] .sui-stepper__indicator{background:var(--sui-primary-base);box-shadow:none}[data-state=completed] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-success-base)}[data-state=error] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-error-base)}[data-state=error] .sui-stepper__label{color:var(--sui-state-error-base)}:host([data-variant=vertical]) .sui-stepper__v-item[data-state=default] .sui-stepper__indicator{box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__indicator-num{font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);color:var(--sui-text-sub-600);text-align:center;width:16px;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}[data-state=active] .sui-stepper__indicator-num{color:var(--sui-static-white, #ffffff)}.sui-stepper__label{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-sub-600);white-space:nowrap;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-variant=vertical]) .sui-stepper__label{white-space:normal;flex:1 0 0;min-width:0}:host([data-variant=dot][data-size=medium]){gap:12px}:host([data-variant=dot][data-size=medium]) .sui-stepper__dot{width:10px;height:10px}:host([data-size=medium]) .sui-stepper__indicator{width:24px;height:24px}:host([data-size=medium]) .sui-stepper__indicator-num{width:20px;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)}:host([data-size=medium]) .sui-stepper__label{font-size:var(--sui-type-paragraph-md-size);font-weight:var(--sui-type-paragraph-md-weight);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-variant=horizontal][data-size=medium]) .sui-stepper__h-item{gap:10px}:host([data-variant=vertical][data-size=medium]) .sui-stepper__v-item{gap:12px;padding:10px;border-radius:var(--sui-radius-12)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16031
16134
  }
16032
16135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiStepper, decorators: [{
16033
16136
  type: Component,
@@ -16036,7 +16139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
16036
16139
  '[attr.data-size]': 'size()',
16037
16140
  '[attr.role]': '"list"',
16038
16141
  '[attr.aria-label]': 'ariaLabel()',
16039
- }, template: "@switch (variant()) {\n\n @case ('dot') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n </button>\n } @else {\n <span\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n </span>\n }\n }\n }\n\n @case ('horizontal') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </button>\n } @else {\n <div\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </div>\n }\n @if (!item.isLast) {\n <span class=\"sui-stepper__separator\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n }\n }\n\n @case ('vertical') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </button>\n } @else {\n <div\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"20\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"20\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </div>\n }\n }\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;font-family:var(--sui-font-sans)}:host([data-variant=dot]){align-items:center;flex-wrap:wrap;gap:10px}:host([data-variant=dot][data-size=xsmall]){gap:6px}.sui-stepper__dot{appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:default;font:inherit;display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--sui-bg-soft-200);flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-stepper__dot[data-state=active]{background:var(--sui-primary-base)}:host([data-variant=dot][data-size=xsmall]) .sui-stepper__dot{width:4px;height:4px}:host([data-variant=dot]) button.sui-stepper__dot{cursor:pointer}:host([data-variant=dot]) button.sui-stepper__dot:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}:host([data-variant=horizontal]){align-items:center;flex-wrap:wrap;gap:16px}.sui-stepper__h-item{appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;cursor:default}.sui-stepper__h-item[data-state=active] .sui-stepper__label,.sui-stepper__h-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-strong-950)}:host([data-variant=horizontal]) button.sui-stepper__h-item{cursor:pointer}:host([data-variant=horizontal]) button.sui-stepper__h-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:6px}.sui-stepper__separator{display:inline-flex;align-items:center;color:var(--sui-icon-soft-400);flex-shrink:0}:host([data-variant=vertical]){flex-direction:column;align-items:stretch;gap:8px;width:100%}.sui-stepper__v-item{appearance:none;border:0;margin:0;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--sui-radius-10);background:var(--sui-bg-weak-50);width:100%;cursor:default;transition:background-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)}.sui-stepper__v-item[data-state=active]{background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__v-item[data-state=active] .sui-stepper__label{color:var(--sui-text-strong-950)}.sui-stepper__v-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-sub-600)}:host([data-variant=vertical]) button.sui-stepper__v-item{cursor:pointer}:host([data-variant=vertical]) button.sui-stepper__v-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-stepper__chevron{display:inline-flex;align-items:center;color:var(--sui-icon-sub-600);flex-shrink:0;margin-left:auto}.sui-stepper__indicator{width:20px;height:20px;border-radius:var(--sui-radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--sui-bg-white-0);flex-shrink:0;overflow:clip;box-shadow:inset 0 0 0 1px var(--sui-stroke-soft-200);transition:background-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)}[data-state=active] .sui-stepper__indicator{background:var(--sui-primary-base);box-shadow:none}[data-state=completed] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-success-base)}[data-state=error] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-error-base)}[data-state=error] .sui-stepper__label{color:var(--sui-state-error-base)}:host([data-variant=vertical]) .sui-stepper__v-item[data-state=default] .sui-stepper__indicator{box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__indicator-num{font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);color:var(--sui-text-sub-600);text-align:center;width:16px;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}[data-state=active] .sui-stepper__indicator-num{color:var(--sui-static-white, #ffffff)}.sui-stepper__label{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-sub-600);white-space:nowrap;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-variant=vertical]) .sui-stepper__label{white-space:normal;flex:1 0 0;min-width:0}\n"] }]
16142
+ }, template: "@switch (variant()) {\n\n @case ('dot') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n </button>\n } @else {\n <span\n class=\"sui-stepper__dot\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n </span>\n }\n }\n }\n\n @case ('horizontal') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </button>\n } @else {\n <div\n class=\"sui-stepper__h-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n </div>\n }\n @if (!item.isLast) {\n <span class=\"sui-stepper__separator\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n }\n }\n\n @case ('vertical') {\n @for (item of items(); track item.index) {\n @if (interactive()) {\n <button\n type=\"button\"\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n (click)=\"onItemClick(item.index)\"\n (touchstart)=\"$event.currentTarget\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </button>\n } @else {\n <div\n class=\"sui-stepper__v-item\"\n [attr.data-state]=\"item.state\"\n [attr.aria-current]=\"item.state === 'active' ? 'step' : null\"\n role=\"listitem\">\n <span class=\"sui-stepper__indicator\">\n @if (item.state === 'completed') {\n <sui-icon name=\"checkbox-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else if (item.state === 'error') {\n <sui-icon name=\"close-circle-fill\" [size]=\"indicatorIconPx()\" />\n } @else {\n <span class=\"sui-stepper__indicator-num\">{{ item.number }}</span>\n }\n </span>\n <span class=\"sui-stepper__label\">{{ item.label }}</span>\n @if (item.state === 'active') {\n <span class=\"sui-stepper__chevron\" aria-hidden=\"true\">\n <sui-icon name=\"arrow-right-s-line\" [size]=\"20\" />\n </span>\n }\n </div>\n }\n }\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;font-family:var(--sui-font-sans)}:host([data-variant=dot]){align-items:center;flex-wrap:wrap;gap:10px}:host([data-variant=dot][data-size=xsmall]){gap:6px}.sui-stepper__dot{appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:default;font:inherit;display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--sui-bg-soft-200);flex-shrink:0;transition:background-color var(--sui-motion-duration-x-fast, .12s) var(--sui-motion-ease-out, ease-out)}.sui-stepper__dot[data-state=active]{background:var(--sui-primary-base)}:host([data-variant=dot][data-size=xsmall]) .sui-stepper__dot{width:4px;height:4px}:host([data-variant=dot]) button.sui-stepper__dot{cursor:pointer}:host([data-variant=dot]) button.sui-stepper__dot:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}:host([data-variant=horizontal]){align-items:center;flex-wrap:wrap;gap:16px}.sui-stepper__h-item{appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;cursor:default}.sui-stepper__h-item[data-state=active] .sui-stepper__label,.sui-stepper__h-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-strong-950)}:host([data-variant=horizontal]) button.sui-stepper__h-item{cursor:pointer}:host([data-variant=horizontal]) button.sui-stepper__h-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px;border-radius:6px}.sui-stepper__separator{display:inline-flex;align-items:center;color:var(--sui-icon-soft-400);flex-shrink:0}:host([data-variant=vertical]){flex-direction:column;align-items:stretch;gap:8px;width:100%}.sui-stepper__v-item{appearance:none;border:0;margin:0;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--sui-radius-10);background:var(--sui-bg-weak-50);width:100%;cursor:default;transition:background-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)}.sui-stepper__v-item[data-state=active]{background:var(--sui-bg-white-0);box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__v-item[data-state=active] .sui-stepper__label{color:var(--sui-text-strong-950)}.sui-stepper__v-item[data-state=completed] .sui-stepper__label{color:var(--sui-text-sub-600)}:host([data-variant=vertical]) button.sui-stepper__v-item{cursor:pointer}:host([data-variant=vertical]) button.sui-stepper__v-item:focus-visible{outline:2px solid var(--sui-text-strong-950);outline-offset:2px}.sui-stepper__chevron{display:inline-flex;align-items:center;color:var(--sui-icon-sub-600);flex-shrink:0;margin-left:auto}.sui-stepper__indicator{width:20px;height:20px;border-radius:var(--sui-radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--sui-bg-white-0);flex-shrink:0;overflow:clip;box-shadow:inset 0 0 0 1px var(--sui-stroke-soft-200);transition:background-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)}[data-state=active] .sui-stepper__indicator{background:var(--sui-primary-base);box-shadow:none}[data-state=completed] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-success-base)}[data-state=error] .sui-stepper__indicator{background:transparent;box-shadow:none;color:var(--sui-state-error-base)}[data-state=error] .sui-stepper__label{color:var(--sui-state-error-base)}:host([data-variant=vertical]) .sui-stepper__v-item[data-state=default] .sui-stepper__indicator{box-shadow:var(--sui-regular-shadow-x-small)}.sui-stepper__indicator-num{font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);color:var(--sui-text-sub-600);text-align:center;width:16px;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}[data-state=active] .sui-stepper__indicator-num{color:var(--sui-static-white, #ffffff)}.sui-stepper__label{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-sub-600);white-space:nowrap;font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}:host([data-variant=vertical]) .sui-stepper__label{white-space:normal;flex:1 0 0;min-width:0}:host([data-variant=dot][data-size=medium]){gap:12px}:host([data-variant=dot][data-size=medium]) .sui-stepper__dot{width:10px;height:10px}:host([data-size=medium]) .sui-stepper__indicator{width:24px;height:24px}:host([data-size=medium]) .sui-stepper__indicator-num{width:20px;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)}:host([data-size=medium]) .sui-stepper__label{font-size:var(--sui-type-paragraph-md-size);font-weight:var(--sui-type-paragraph-md-weight);line-height:var(--sui-type-paragraph-md-line);letter-spacing:var(--sui-type-paragraph-md-spacing)}:host([data-variant=horizontal][data-size=medium]) .sui-stepper__h-item{gap:10px}:host([data-variant=vertical][data-size=medium]) .sui-stepper__v-item{gap:12px;padding:10px;border-radius:var(--sui-radius-12)}\n"] }]
16040
16143
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], steps: [{ type: i0.Input, args: [{ isSignal: true, alias: "steps", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], currentStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentStep", required: false }] }], errorStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorStep", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }] } });
16041
16144
 
16042
16145
  /**
@@ -16361,6 +16464,13 @@ class SuiProductCard {
16361
16464
  fallback = input(null, ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
16362
16465
  /** Texto del tag cuando no está disponible. */
16363
16466
  unavailableLabel = input('Agotado', ...(ngDevMode ? [{ debugName: "unavailableLabel" }] : /* istanbul ignore next */ []));
16467
+ /** Qué hace el botón redondo del pie.
16468
+ * - `'add'` (default): «+» para agregar al carrito (y stepper si ya está).
16469
+ * - `'edit'`: lápiz para editar el producto — la grilla del DUEÑO del local
16470
+ * usa la misma tarjeta que su cliente, pero ahí el botón edita. El lápiz
16471
+ * se ve SIEMPRE: también con `available=false` (el agotado es justo el
16472
+ * que el dueño quiere tocar) y sin que `closed` lo apague. Nunca stepper. */
16473
+ action = input('add', ...(ngDevMode ? [{ debugName: "action" }] : /* istanbul ignore next */ []));
16364
16474
  /** Tap en la card (abrir detalle del producto). */
16365
16475
  openDetail = output();
16366
16476
  /** Tap en el botón "+" (agregar al carrito). */
@@ -16369,8 +16479,10 @@ class SuiProductCard {
16369
16479
  increment = output();
16370
16480
  /** Tap en "−" / basurero del stepper (decrementar / quitar). */
16371
16481
  decrement = output();
16482
+ /** Tap en el lápiz (solo con `action="edit"`). */
16483
+ edit = output();
16372
16484
  formattedPrice = computed(() => (this.price() ?? 0).toFixed(2), ...(ngDevMode ? [{ debugName: "formattedPrice" }] : /* istanbul ignore next */ []));
16373
- showStepper = computed(() => this.available() && this.quantity() > 0, ...(ngDevMode ? [{ debugName: "showStepper" }] : /* istanbul ignore next */ []));
16485
+ showStepper = computed(() => this.action() !== 'edit' && this.available() && this.quantity() > 0, ...(ngDevMode ? [{ debugName: "showStepper" }] : /* istanbul ignore next */ []));
16374
16486
  /** Config resuelta de la imagen (string → { url }; `position` default 50).
16375
16487
  * null = sin imagen → fallback. */
16376
16488
  imageCfg = computed(() => {
@@ -16416,13 +16528,14 @@ class SuiProductCard {
16416
16528
  onAdd(event) { event.stopPropagation(); this.add.emit(); }
16417
16529
  onInc(event) { event.stopPropagation(); this.increment.emit(); }
16418
16530
  onDec(event) { event.stopPropagation(); this.decrement.emit(); }
16531
+ onEdit(event) { event.stopPropagation(); this.edit.emit(); }
16419
16532
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiProductCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
16420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiProductCard, isStandalone: true, selector: "sui-product-card", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: true, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, available: { classPropertyName: "available", publicName: "available", isSignal: true, isRequired: false, transformFunction: null }, quantity: { classPropertyName: "quantity", publicName: "quantity", isSignal: true, isRequired: false, transformFunction: null }, closed: { classPropertyName: "closed", publicName: "closed", isSignal: true, isRequired: false, transformFunction: null }, currencySymbol: { classPropertyName: "currencySymbol", publicName: "currencySymbol", isSignal: true, isRequired: false, transformFunction: null }, fallback: { classPropertyName: "fallback", publicName: "fallback", isSignal: true, isRequired: false, transformFunction: null }, unavailableLabel: { classPropertyName: "unavailableLabel", publicName: "unavailableLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openDetail: "openDetail", add: "add", increment: "increment", decrement: "decrement" }, ngImport: i0, template: "<button type=\"button\"\n class=\"product\"\n [class.product--unavailable]=\"!available()\"\n (click)=\"onCard()\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <div class=\"product__img\"\n [class.product__img--icon]=\"showIconFallback()\"\n [class.product__img--named]=\"showNamedFallback()\"\n [class.product__img--cargando]=\"imageCfg() && cargandoImagen()\"\n [style.--fallback-color]=\"showNamedFallback() ? resolvedFallbackColor() : null\">\n @if (imageCfg(); as img) {\n <img [ngSrc]=\"urlMostrada() ?? img.url\" [alt]=\"name()\" fill\n [style.object-position]=\"'center ' + img.position + '%'\"\n (load)=\"imagenLista()\" (error)=\"imagenFallo()\" />\n } @else if (showNamedFallback()) {\n <div class=\"product__band\">\n <span class=\"product__band-name\">{{ name() }}</span>\n </div>\n } @else {\n <sui-icon class=\"product__icon\" name=\"image-line\" [size]=\"32\" />\n }\n @if (!available()) {\n <span class=\"product__tag product__tag--unavail\">{{ unavailableLabel() }}</span>\n }\n </div>\n\n <div class=\"product__body\">\n <h3 class=\"product__name\">{{ name() }}</h3>\n @if (description()) {\n <p class=\"product__desc\">{{ description() }}</p>\n }\n <div class=\"product__footer\">\n <span class=\"product__price\">{{ currencySymbol() }} {{ formattedPrice() }}</span>\n @if (available()) {\n @if (showStepper()) {\n <div class=\"product__stepper\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"product__step\"\n (click)=\"onDec($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [attr.aria-label]=\"quantity() === 1 ? 'Quitar del carrito' : 'Quitar uno'\">\n <sui-icon [name]=\"quantity() === 1 ? 'delete-bin-line' : 'subtract-line'\" [size]=\"16\" />\n </button>\n <span class=\"product__step-qty\">{{ quantity() }}</span>\n <button type=\"button\" class=\"product__step\"\n (click)=\"onInc($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar uno\">\n <sui-icon name=\"add-line\" [size]=\"16\" />\n </button>\n </div>\n } @else {\n <button type=\"button\" class=\"product__add\"\n (click)=\"onAdd($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar al carrito\">\n <sui-icon name=\"add-line\" [size]=\"18\" />\n </button>\n }\n }\n </div>\n </div>\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:block;min-width:0;content-visibility:auto;contain-intrinsic-size:auto 300px}.product{width:100%;height:100%;min-width:0;background:var(--sui-bg-white-0, #fff);border-radius:16px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;color:inherit;display:flex;flex-direction:column;border:1px solid var(--sui-stroke-soft-200, #ebebeb);padding:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),box-shadow .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product:active{transform:scale(.98);box-shadow:var(--sui-shadow-x-small, 0 1px 2px rgba(0, 0, 0, .06))}.product--unavailable{opacity:.55;cursor:not-allowed}.product--unavailable .product__img{filter:grayscale(.55)}.product__img{width:100%;aspect-ratio:1/1;background-color:var(--sui-bg-soft-200, #e5e7eb);background-size:cover;background-position:center;position:relative;overflow:hidden}.product__img img{object-fit:cover}.product__img--cargando:after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:sui-product-shimmer 1.3s ease-in-out infinite}.product__img--icon{background:linear-gradient(135deg,var(--brand-400, #fb9a56) 0%,var(--brand-500, #fa7319) 100%);display:flex;align-items:center;justify-content:center}.product__img--named{background:var(--sui-bg-soft-200, #e5e7eb);display:flex;align-items:center;justify-content:center}.product__icon{color:color-mix(in srgb,var(--sui-static-white, #fff) 70%,transparent)}.product__band{width:100%;height:100%;background:var(--fallback-color, #999);display:flex;align-items:center;justify-content:center;padding:14px 16px}.product__band-name{color:var(--sui-static-white, #fff);font-weight:800;font-size:15px;line-height:1.15;letter-spacing:-.01em;text-align:center;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.product__tag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;font-weight:600;color:var(--brand-500, #fa7319);text-transform:uppercase;letter-spacing:.05em}.product__tag--unavail{color:#64748b;background:#fffffff2}.product__body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}.product__name{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717));line-height:1.2;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product__desc{font-size:11px;color:var(--sui-text-sub-600, var(--text-sub, #5c5c5c));line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0}.product__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:6px}.product__price{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717))}.product__add{width:36px;height:36px;border-radius:50%;background:var(--sui-text-strong-950, var(--text-strong, #171717));color:var(--sui-bg-white-0, #fff);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),opacity .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__add:active{transform:scale(.94)}.product__add:disabled{opacity:.4;cursor:not-allowed}.product__stepper{display:inline-flex;align-items:center;height:36px;border-radius:18px;background:var(--sui-text-strong-950, var(--text-strong, #171717));flex-shrink:0;overflow:hidden}.product__step{width:34px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--sui-bg-white-0, #fff);cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__step:active{transform:scale(.88)}.product__step:disabled{opacity:.4;cursor:not-allowed}.product__step-qty{min-width:18px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sui-bg-white-0, #fff);-webkit-user-select:none;user-select:none}@keyframes sui-product-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.product__img--cargando:after{animation:none}}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16533
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiProductCard, isStandalone: true, selector: "sui-product-card", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: true, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, available: { classPropertyName: "available", publicName: "available", isSignal: true, isRequired: false, transformFunction: null }, quantity: { classPropertyName: "quantity", publicName: "quantity", isSignal: true, isRequired: false, transformFunction: null }, closed: { classPropertyName: "closed", publicName: "closed", isSignal: true, isRequired: false, transformFunction: null }, currencySymbol: { classPropertyName: "currencySymbol", publicName: "currencySymbol", isSignal: true, isRequired: false, transformFunction: null }, fallback: { classPropertyName: "fallback", publicName: "fallback", isSignal: true, isRequired: false, transformFunction: null }, unavailableLabel: { classPropertyName: "unavailableLabel", publicName: "unavailableLabel", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openDetail: "openDetail", add: "add", increment: "increment", decrement: "decrement", edit: "edit" }, ngImport: i0, template: "<button type=\"button\"\n class=\"product\"\n [class.product--unavailable]=\"!available()\"\n [class.product--edit]=\"action() === 'edit'\"\n (click)=\"onCard()\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <div class=\"product__img\"\n [class.product__img--icon]=\"showIconFallback()\"\n [class.product__img--named]=\"showNamedFallback()\"\n [class.product__img--cargando]=\"imageCfg() && cargandoImagen()\"\n [style.--fallback-color]=\"showNamedFallback() ? resolvedFallbackColor() : null\">\n @if (imageCfg(); as img) {\n <img [ngSrc]=\"urlMostrada() ?? img.url\" [alt]=\"name()\" fill\n [style.object-position]=\"'center ' + img.position + '%'\"\n (load)=\"imagenLista()\" (error)=\"imagenFallo()\" />\n } @else if (showNamedFallback()) {\n <div class=\"product__band\">\n <span class=\"product__band-name\">{{ name() }}</span>\n </div>\n } @else {\n <sui-icon class=\"product__icon\" name=\"image-line\" [size]=\"32\" />\n }\n @if (!available()) {\n <span class=\"product__tag product__tag--unavail\">{{ unavailableLabel() }}</span>\n }\n </div>\n\n <div class=\"product__body\">\n <h3 class=\"product__name\">{{ name() }}</h3>\n @if (description()) {\n <p class=\"product__desc\">{{ description() }}</p>\n }\n <div class=\"product__footer\">\n <span class=\"product__price\">{{ currencySymbol() }} {{ formattedPrice() }}</span>\n @if (action() === 'edit') {\n <button type=\"button\" class=\"product__add product__add--edit\"\n (click)=\"onEdit($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n aria-label=\"Editar\">\n <sui-icon name=\"pencil-line\" [size]=\"18\" />\n </button>\n } @else if (available()) {\n @if (showStepper()) {\n <div class=\"product__stepper\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"product__step\"\n (click)=\"onDec($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [attr.aria-label]=\"quantity() === 1 ? 'Quitar del carrito' : 'Quitar uno'\">\n <sui-icon [name]=\"quantity() === 1 ? 'delete-bin-line' : 'subtract-line'\" [size]=\"16\" />\n </button>\n <span class=\"product__step-qty\">{{ quantity() }}</span>\n <button type=\"button\" class=\"product__step\"\n (click)=\"onInc($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar uno\">\n <sui-icon name=\"add-line\" [size]=\"16\" />\n </button>\n </div>\n } @else {\n <button type=\"button\" class=\"product__add\"\n (click)=\"onAdd($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar al carrito\">\n <sui-icon name=\"add-line\" [size]=\"18\" />\n </button>\n }\n }\n </div>\n </div>\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:block;min-width:0;content-visibility:auto;contain-intrinsic-size:auto 300px}.product{width:100%;height:100%;min-width:0;background:var(--sui-bg-white-0, #fff);border-radius:16px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;color:inherit;display:flex;flex-direction:column;border:1px solid var(--sui-stroke-soft-200, #ebebeb);padding:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),box-shadow .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product:active{transform:scale(.98);box-shadow:var(--sui-shadow-x-small, 0 1px 2px rgba(0, 0, 0, .06))}.product--unavailable{opacity:.55;cursor:not-allowed}.product--unavailable .product__img{filter:grayscale(.55)}.product--edit{cursor:pointer}.product__img{width:100%;aspect-ratio:1/1;background-color:var(--sui-bg-soft-200, #e5e7eb);background-size:cover;background-position:center;position:relative;overflow:hidden}.product__img img{object-fit:cover}.product__img--cargando:after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:sui-product-shimmer 1.3s ease-in-out infinite}.product__img--icon{background:linear-gradient(135deg,var(--brand-400, #fb9a56) 0%,var(--brand-500, #fa7319) 100%);display:flex;align-items:center;justify-content:center}.product__img--named{background:var(--sui-bg-soft-200, #e5e7eb);display:flex;align-items:center;justify-content:center}.product__icon{color:color-mix(in srgb,var(--sui-static-white, #fff) 70%,transparent)}.product__band{width:100%;height:100%;background:var(--fallback-color, #999);display:flex;align-items:center;justify-content:center;padding:14px 16px}.product__band-name{color:var(--sui-static-white, #fff);font-weight:800;font-size:15px;line-height:1.15;letter-spacing:-.01em;text-align:center;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.product__tag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;font-weight:600;color:var(--brand-500, #fa7319);text-transform:uppercase;letter-spacing:.05em}.product__tag--unavail{color:#64748b;background:#fffffff2}.product__body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}.product__name{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717));line-height:1.2;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product__desc{font-size:11px;color:var(--sui-text-sub-600, var(--text-sub, #5c5c5c));line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0}.product__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:6px}.product__price{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717))}.product__add{width:36px;height:36px;border-radius:50%;background:var(--sui-text-strong-950, var(--text-strong, #171717));color:var(--sui-bg-white-0, #fff);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),opacity .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__add:active{transform:scale(.94)}.product__add:disabled{opacity:.4;cursor:not-allowed}.product__stepper{display:inline-flex;align-items:center;height:36px;border-radius:18px;background:var(--sui-text-strong-950, var(--text-strong, #171717));flex-shrink:0;overflow:hidden}.product__step{width:34px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--sui-bg-white-0, #fff);cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__step:active{transform:scale(.88)}.product__step:disabled{opacity:.4;cursor:not-allowed}.product__step-qty{min-width:18px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sui-bg-white-0, #fff);-webkit-user-select:none;user-select:none}@keyframes sui-product-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.product__img--cargando:after{animation:none}}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16421
16534
  }
16422
16535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiProductCard, decorators: [{
16423
16536
  type: Component,
16424
- args: [{ selector: 'sui-product-card', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgOptimizedImage, SuiIcon], template: "<button type=\"button\"\n class=\"product\"\n [class.product--unavailable]=\"!available()\"\n (click)=\"onCard()\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <div class=\"product__img\"\n [class.product__img--icon]=\"showIconFallback()\"\n [class.product__img--named]=\"showNamedFallback()\"\n [class.product__img--cargando]=\"imageCfg() && cargandoImagen()\"\n [style.--fallback-color]=\"showNamedFallback() ? resolvedFallbackColor() : null\">\n @if (imageCfg(); as img) {\n <img [ngSrc]=\"urlMostrada() ?? img.url\" [alt]=\"name()\" fill\n [style.object-position]=\"'center ' + img.position + '%'\"\n (load)=\"imagenLista()\" (error)=\"imagenFallo()\" />\n } @else if (showNamedFallback()) {\n <div class=\"product__band\">\n <span class=\"product__band-name\">{{ name() }}</span>\n </div>\n } @else {\n <sui-icon class=\"product__icon\" name=\"image-line\" [size]=\"32\" />\n }\n @if (!available()) {\n <span class=\"product__tag product__tag--unavail\">{{ unavailableLabel() }}</span>\n }\n </div>\n\n <div class=\"product__body\">\n <h3 class=\"product__name\">{{ name() }}</h3>\n @if (description()) {\n <p class=\"product__desc\">{{ description() }}</p>\n }\n <div class=\"product__footer\">\n <span class=\"product__price\">{{ currencySymbol() }} {{ formattedPrice() }}</span>\n @if (available()) {\n @if (showStepper()) {\n <div class=\"product__stepper\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"product__step\"\n (click)=\"onDec($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [attr.aria-label]=\"quantity() === 1 ? 'Quitar del carrito' : 'Quitar uno'\">\n <sui-icon [name]=\"quantity() === 1 ? 'delete-bin-line' : 'subtract-line'\" [size]=\"16\" />\n </button>\n <span class=\"product__step-qty\">{{ quantity() }}</span>\n <button type=\"button\" class=\"product__step\"\n (click)=\"onInc($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar uno\">\n <sui-icon name=\"add-line\" [size]=\"16\" />\n </button>\n </div>\n } @else {\n <button type=\"button\" class=\"product__add\"\n (click)=\"onAdd($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar al carrito\">\n <sui-icon name=\"add-line\" [size]=\"18\" />\n </button>\n }\n }\n </div>\n </div>\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:block;min-width:0;content-visibility:auto;contain-intrinsic-size:auto 300px}.product{width:100%;height:100%;min-width:0;background:var(--sui-bg-white-0, #fff);border-radius:16px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;color:inherit;display:flex;flex-direction:column;border:1px solid var(--sui-stroke-soft-200, #ebebeb);padding:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),box-shadow .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product:active{transform:scale(.98);box-shadow:var(--sui-shadow-x-small, 0 1px 2px rgba(0, 0, 0, .06))}.product--unavailable{opacity:.55;cursor:not-allowed}.product--unavailable .product__img{filter:grayscale(.55)}.product__img{width:100%;aspect-ratio:1/1;background-color:var(--sui-bg-soft-200, #e5e7eb);background-size:cover;background-position:center;position:relative;overflow:hidden}.product__img img{object-fit:cover}.product__img--cargando:after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:sui-product-shimmer 1.3s ease-in-out infinite}.product__img--icon{background:linear-gradient(135deg,var(--brand-400, #fb9a56) 0%,var(--brand-500, #fa7319) 100%);display:flex;align-items:center;justify-content:center}.product__img--named{background:var(--sui-bg-soft-200, #e5e7eb);display:flex;align-items:center;justify-content:center}.product__icon{color:color-mix(in srgb,var(--sui-static-white, #fff) 70%,transparent)}.product__band{width:100%;height:100%;background:var(--fallback-color, #999);display:flex;align-items:center;justify-content:center;padding:14px 16px}.product__band-name{color:var(--sui-static-white, #fff);font-weight:800;font-size:15px;line-height:1.15;letter-spacing:-.01em;text-align:center;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.product__tag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;font-weight:600;color:var(--brand-500, #fa7319);text-transform:uppercase;letter-spacing:.05em}.product__tag--unavail{color:#64748b;background:#fffffff2}.product__body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}.product__name{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717));line-height:1.2;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product__desc{font-size:11px;color:var(--sui-text-sub-600, var(--text-sub, #5c5c5c));line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0}.product__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:6px}.product__price{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717))}.product__add{width:36px;height:36px;border-radius:50%;background:var(--sui-text-strong-950, var(--text-strong, #171717));color:var(--sui-bg-white-0, #fff);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),opacity .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__add:active{transform:scale(.94)}.product__add:disabled{opacity:.4;cursor:not-allowed}.product__stepper{display:inline-flex;align-items:center;height:36px;border-radius:18px;background:var(--sui-text-strong-950, var(--text-strong, #171717));flex-shrink:0;overflow:hidden}.product__step{width:34px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--sui-bg-white-0, #fff);cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__step:active{transform:scale(.88)}.product__step:disabled{opacity:.4;cursor:not-allowed}.product__step-qty{min-width:18px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sui-bg-white-0, #fff);-webkit-user-select:none;user-select:none}@keyframes sui-product-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.product__img--cargando:after{animation:none}}\n"] }]
16425
- }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], price: [{ type: i0.Input, args: [{ isSignal: true, alias: "price", required: true }] }], image: [{ type: i0.Input, args: [{ isSignal: true, alias: "image", required: false }] }], available: [{ type: i0.Input, args: [{ isSignal: true, alias: "available", required: false }] }], quantity: [{ type: i0.Input, args: [{ isSignal: true, alias: "quantity", required: false }] }], closed: [{ type: i0.Input, args: [{ isSignal: true, alias: "closed", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }], fallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallback", required: false }] }], unavailableLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "unavailableLabel", required: false }] }], openDetail: [{ type: i0.Output, args: ["openDetail"] }], add: [{ type: i0.Output, args: ["add"] }], increment: [{ type: i0.Output, args: ["increment"] }], decrement: [{ type: i0.Output, args: ["decrement"] }] } });
16537
+ args: [{ selector: 'sui-product-card', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgOptimizedImage, SuiIcon], template: "<button type=\"button\"\n class=\"product\"\n [class.product--unavailable]=\"!available()\"\n [class.product--edit]=\"action() === 'edit'\"\n (click)=\"onCard()\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\">\n <div class=\"product__img\"\n [class.product__img--icon]=\"showIconFallback()\"\n [class.product__img--named]=\"showNamedFallback()\"\n [class.product__img--cargando]=\"imageCfg() && cargandoImagen()\"\n [style.--fallback-color]=\"showNamedFallback() ? resolvedFallbackColor() : null\">\n @if (imageCfg(); as img) {\n <img [ngSrc]=\"urlMostrada() ?? img.url\" [alt]=\"name()\" fill\n [style.object-position]=\"'center ' + img.position + '%'\"\n (load)=\"imagenLista()\" (error)=\"imagenFallo()\" />\n } @else if (showNamedFallback()) {\n <div class=\"product__band\">\n <span class=\"product__band-name\">{{ name() }}</span>\n </div>\n } @else {\n <sui-icon class=\"product__icon\" name=\"image-line\" [size]=\"32\" />\n }\n @if (!available()) {\n <span class=\"product__tag product__tag--unavail\">{{ unavailableLabel() }}</span>\n }\n </div>\n\n <div class=\"product__body\">\n <h3 class=\"product__name\">{{ name() }}</h3>\n @if (description()) {\n <p class=\"product__desc\">{{ description() }}</p>\n }\n <div class=\"product__footer\">\n <span class=\"product__price\">{{ currencySymbol() }} {{ formattedPrice() }}</span>\n @if (action() === 'edit') {\n <button type=\"button\" class=\"product__add product__add--edit\"\n (click)=\"onEdit($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n aria-label=\"Editar\">\n <sui-icon name=\"pencil-line\" [size]=\"18\" />\n </button>\n } @else if (available()) {\n @if (showStepper()) {\n <div class=\"product__stepper\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"product__step\"\n (click)=\"onDec($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [attr.aria-label]=\"quantity() === 1 ? 'Quitar del carrito' : 'Quitar uno'\">\n <sui-icon [name]=\"quantity() === 1 ? 'delete-bin-line' : 'subtract-line'\" [size]=\"16\" />\n </button>\n <span class=\"product__step-qty\">{{ quantity() }}</span>\n <button type=\"button\" class=\"product__step\"\n (click)=\"onInc($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar uno\">\n <sui-icon name=\"add-line\" [size]=\"16\" />\n </button>\n </div>\n } @else {\n <button type=\"button\" class=\"product__add\"\n (click)=\"onAdd($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n [disabled]=\"closed()\"\n aria-label=\"Agregar al carrito\">\n <sui-icon name=\"add-line\" [size]=\"18\" />\n </button>\n }\n }\n </div>\n </div>\n</button>\n", styles: ["@charset \"UTF-8\";:host{display:block;min-width:0;content-visibility:auto;contain-intrinsic-size:auto 300px}.product{width:100%;height:100%;min-width:0;background:var(--sui-bg-white-0, #fff);border-radius:16px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;color:inherit;display:flex;flex-direction:column;border:1px solid var(--sui-stroke-soft-200, #ebebeb);padding:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),box-shadow .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product:active{transform:scale(.98);box-shadow:var(--sui-shadow-x-small, 0 1px 2px rgba(0, 0, 0, .06))}.product--unavailable{opacity:.55;cursor:not-allowed}.product--unavailable .product__img{filter:grayscale(.55)}.product--edit{cursor:pointer}.product__img{width:100%;aspect-ratio:1/1;background-color:var(--sui-bg-soft-200, #e5e7eb);background-size:cover;background-position:center;position:relative;overflow:hidden}.product__img img{object-fit:cover}.product__img--cargando:after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:sui-product-shimmer 1.3s ease-in-out infinite}.product__img--icon{background:linear-gradient(135deg,var(--brand-400, #fb9a56) 0%,var(--brand-500, #fa7319) 100%);display:flex;align-items:center;justify-content:center}.product__img--named{background:var(--sui-bg-soft-200, #e5e7eb);display:flex;align-items:center;justify-content:center}.product__icon{color:color-mix(in srgb,var(--sui-static-white, #fff) 70%,transparent)}.product__band{width:100%;height:100%;background:var(--fallback-color, #999);display:flex;align-items:center;justify-content:center;padding:14px 16px}.product__band-name{color:var(--sui-static-white, #fff);font-weight:800;font-size:15px;line-height:1.15;letter-spacing:-.01em;text-align:center;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.product__tag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;font-weight:600;color:var(--brand-500, #fa7319);text-transform:uppercase;letter-spacing:.05em}.product__tag--unavail{color:#64748b;background:#fffffff2}.product__body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}.product__name{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717));line-height:1.2;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product__desc{font-size:11px;color:var(--sui-text-sub-600, var(--text-sub, #5c5c5c));line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0}.product__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:6px}.product__price{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--sui-text-strong-950, var(--text-strong, #171717))}.product__add{width:36px;height:36px;border-radius:50%;background:var(--sui-text-strong-950, var(--text-strong, #171717));color:var(--sui-bg-white-0, #fff);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1)),opacity .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__add:active{transform:scale(.94)}.product__add:disabled{opacity:.4;cursor:not-allowed}.product__stepper{display:inline-flex;align-items:center;height:36px;border-radius:18px;background:var(--sui-text-strong-950, var(--text-strong, #171717));flex-shrink:0;overflow:hidden}.product__step{width:34px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--sui-bg-white-0, #fff);cursor:pointer;flex-shrink:0;transition:transform .15s var(--sui-ease-out-strong, cubic-bezier(.16, 1, .3, 1))}.product__step:active{transform:scale(.88)}.product__step:disabled{opacity:.4;cursor:not-allowed}.product__step-qty{min-width:18px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sui-bg-white-0, #fff);-webkit-user-select:none;user-select:none}@keyframes sui-product-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.product__img--cargando:after{animation:none}}\n"] }]
16538
+ }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], price: [{ type: i0.Input, args: [{ isSignal: true, alias: "price", required: true }] }], image: [{ type: i0.Input, args: [{ isSignal: true, alias: "image", required: false }] }], available: [{ type: i0.Input, args: [{ isSignal: true, alias: "available", required: false }] }], quantity: [{ type: i0.Input, args: [{ isSignal: true, alias: "quantity", required: false }] }], closed: [{ type: i0.Input, args: [{ isSignal: true, alias: "closed", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }], fallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallback", required: false }] }], unavailableLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "unavailableLabel", required: false }] }], action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: false }] }], openDetail: [{ type: i0.Output, args: ["openDetail"] }], add: [{ type: i0.Output, args: ["add"] }], increment: [{ type: i0.Output, args: ["increment"] }], decrement: [{ type: i0.Output, args: ["decrement"] }], edit: [{ type: i0.Output, args: ["edit"] }] } });
16426
16539
 
16427
16540
  /**
16428
16541
  * SUI Switch Card — SUI Design System 2.0
@@ -16844,8 +16957,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
16844
16957
  * [chips]="['Hamburguesas', 'Pizzas', 'Bebidas']"
16845
16958
  * [(value)]="selected"
16846
16959
  * [sticky]="true"
16960
+ * [size]="bp.isMobile() ? 'large' : 'medium'"
16847
16961
  * />
16848
16962
  *
16963
+ * Tamaños (extensión SUI, 03-10-2026): small 32 · medium 36 (default) ·
16964
+ * large 40. Los tres con texto label-sm 14; cambia el alto y el aire lateral.
16965
+ *
16849
16966
  * También acepta objetos:
16850
16967
  * <sui-tab-chips
16851
16968
  * [chips]="[{value:'h', label:'Hamburguesas'}, {value:'p', label:'Pizzas'}]"
@@ -16859,6 +16976,8 @@ class SuiTabChips {
16859
16976
  value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
16860
16977
  /** Si true, el componente queda sticky al top del scroll container. */
16861
16978
  sticky = input(false, ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
16979
+ /** Tamaño de los chips: small 32 · medium 36 (default) · large 40 (mobile). */
16980
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
16862
16981
  /** Auto-scroll horizontal del chip activo al cambiar `value`. */
16863
16982
  autoScroll = input(true, ...(ngDevMode ? [{ debugName: "autoScroll" }] : /* istanbul ignore next */ []));
16864
16983
  sentinelRef;
@@ -16914,7 +17033,7 @@ class SuiTabChips {
16914
17033
  nav.scrollTo({ left: Math.max(0, offset), behavior: 'smooth' });
16915
17034
  }
16916
17035
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTabChips, deps: [], target: i0.ɵɵFactoryTarget.Component });
16917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiTabChips, isStandalone: true, selector: "sui-tab-chips", inputs: { chips: { classPropertyName: "chips", publicName: "chips", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, autoScroll: { classPropertyName: "autoScroll", publicName: "autoScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sui-tab-chips--host-sticky": "sticky()" } }, viewQueries: [{ propertyName: "sentinelRef", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "navRef", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "@if (sticky()) {\n <div #sentinel class=\"sui-tab-chips__sentinel\" aria-hidden=\"true\"></div>\n}\n<nav\n #nav\n class=\"sui-tab-chips\"\n [class.sui-tab-chips--sticky]=\"sticky()\"\n [class.sui-tab-chips--stuck]=\"sticky() && stuck()\"\n role=\"tablist\"\n>\n @for (chip of normalizedChips(); track chip.value) {\n <button\n type=\"button\"\n class=\"sui-tab-chips__chip\"\n [class.sui-tab-chips__chip--active]=\"value() === chip.value\"\n [attr.data-sui-chip-value]=\"chip.value\"\n [attr.aria-selected]=\"value() === chip.value\"\n [attr.tabindex]=\"value() === chip.value ? 0 : -1\"\n role=\"tab\"\n (click)=\"select(chip.value)\"\n >\n <span class=\"sui-tab-chips__chip-label\">{{ chip.label }}</span>\n @if (chip.count) {\n <span class=\"sui-tab-chips__chip-count\" aria-hidden=\"true\">{{ chip.count }}</span>\n }\n </button>\n }\n</nav>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%}:host(.sui-tab-chips--host-sticky){display:contents}.sui-tab-chips__sentinel{height:1px;margin-top:16px;margin-bottom:-1px;pointer-events:none}.sui-tab-chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 0;background:transparent;scrollbar-width:none}.sui-tab-chips::-webkit-scrollbar{display:none}.sui-tab-chips--sticky{position:sticky;top:0;z-index:20;transition:padding-top var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease),background var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease)}.sui-tab-chips--stuck{padding-top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--sui-bg-weak-50, #f7f7f7)}.sui-tab-chips__chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-sub-600, #5c5c5c);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-sm-size, 13px);font-weight:600;letter-spacing:var(--sui-type-label-sm-spacing, -.006em);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),border-color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),transform var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease)}.sui-tab-chips__chip:hover{background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-strong-950, #171717)}.sui-tab-chips__chip:active{transform:scale(.96)}.sui-tab-chips__chip:active:not(:disabled),.sui-tab-chips__chip:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-primary-alpha-10)}.sui-tab-chips__chip--active{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff);border-color:var(--sui-bg-strong-950, #171717)}.sui-tab-chips__chip--active:hover{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff)}.sui-tab-chips__chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-sub-600, #5c5c5c);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.sui-tab-chips__chip--active .sui-tab-chips__chip-count{background:color-mix(in srgb,var(--sui-bg-white-0, #fff) 22%,transparent);color:var(--sui-bg-white-0, #fff)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17036
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiTabChips, isStandalone: true, selector: "sui-tab-chips", inputs: { chips: { classPropertyName: "chips", publicName: "chips", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autoScroll: { classPropertyName: "autoScroll", publicName: "autoScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.sui-tab-chips--host-sticky": "sticky()", "attr.data-sui-size": "size()" } }, viewQueries: [{ propertyName: "sentinelRef", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "navRef", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "@if (sticky()) {\n <div #sentinel class=\"sui-tab-chips__sentinel\" aria-hidden=\"true\"></div>\n}\n<nav\n #nav\n class=\"sui-tab-chips\"\n [class.sui-tab-chips--sticky]=\"sticky()\"\n [class.sui-tab-chips--stuck]=\"sticky() && stuck()\"\n role=\"tablist\"\n>\n @for (chip of normalizedChips(); track chip.value) {\n <button\n type=\"button\"\n class=\"sui-tab-chips__chip\"\n [class.sui-tab-chips__chip--active]=\"value() === chip.value\"\n [attr.data-sui-chip-value]=\"chip.value\"\n [attr.aria-selected]=\"value() === chip.value\"\n [attr.tabindex]=\"value() === chip.value ? 0 : -1\"\n role=\"tab\"\n (click)=\"select(chip.value)\"\n >\n <span class=\"sui-tab-chips__chip-label\">{{ chip.label }}</span>\n @if (chip.count) {\n <span class=\"sui-tab-chips__chip-count\" aria-hidden=\"true\">{{ chip.count }}</span>\n }\n </button>\n }\n</nav>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%}:host(.sui-tab-chips--host-sticky){display:contents}.sui-tab-chips__sentinel{height:1px;margin-top:16px;margin-bottom:-1px;pointer-events:none}.sui-tab-chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 0;background:transparent;scrollbar-width:none}.sui-tab-chips::-webkit-scrollbar{display:none}.sui-tab-chips--sticky{position:sticky;top:0;z-index:20;transition:padding-top var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease),background var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease)}.sui-tab-chips--stuck{padding-top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--sui-bg-weak-50, #f7f7f7)}.sui-tab-chips__chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-sub-600, #5c5c5c);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-sm-size, 13px);font-weight:600;letter-spacing:var(--sui-type-label-sm-spacing, -.006em);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),border-color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),transform var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease)}.sui-tab-chips__chip:hover{background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-strong-950, #171717)}.sui-tab-chips__chip:active{transform:scale(.96)}.sui-tab-chips__chip:active:not(:disabled),.sui-tab-chips__chip:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-primary-alpha-10)}.sui-tab-chips__chip--active{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff);border-color:var(--sui-bg-strong-950, #171717)}.sui-tab-chips__chip--active:hover{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff)}.sui-tab-chips__chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-sub-600, #5c5c5c);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}:host([data-sui-size=small]) .sui-tab-chips__chip{box-sizing:border-box;height:32px;padding:0 12px;line-height:var(--sui-type-label-sm-line, 20px)}:host([data-sui-size=large]) .sui-tab-chips__chip{box-sizing:border-box;height:40px;padding:0 16px;line-height:var(--sui-type-label-sm-line, 20px)}:host([data-sui-size=small]) .sui-tab-chips__chip-count{min-width:16px;height:16px;padding:0 5px}:host([data-sui-size=large]) .sui-tab-chips__chip-count{min-width:20px;height:20px;padding:0 6px;font-size:var(--sui-type-label-xs-size, 12px)}.sui-tab-chips__chip--active .sui-tab-chips__chip-count{background:color-mix(in srgb,var(--sui-bg-white-0, #fff) 22%,transparent);color:var(--sui-bg-white-0, #fff)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16918
17037
  }
16919
17038
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTabChips, decorators: [{
16920
17039
  type: Component,
@@ -16923,8 +17042,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
16923
17042
  <nav> sticky resuelva contra el scroll container real y no contra el host
16924
17043
  (que mide ~50px → el sticky no se enganchaba). Gate por clase de host. */
16925
17044
  '[class.sui-tab-chips--host-sticky]': 'sticky()',
16926
- }, template: "@if (sticky()) {\n <div #sentinel class=\"sui-tab-chips__sentinel\" aria-hidden=\"true\"></div>\n}\n<nav\n #nav\n class=\"sui-tab-chips\"\n [class.sui-tab-chips--sticky]=\"sticky()\"\n [class.sui-tab-chips--stuck]=\"sticky() && stuck()\"\n role=\"tablist\"\n>\n @for (chip of normalizedChips(); track chip.value) {\n <button\n type=\"button\"\n class=\"sui-tab-chips__chip\"\n [class.sui-tab-chips__chip--active]=\"value() === chip.value\"\n [attr.data-sui-chip-value]=\"chip.value\"\n [attr.aria-selected]=\"value() === chip.value\"\n [attr.tabindex]=\"value() === chip.value ? 0 : -1\"\n role=\"tab\"\n (click)=\"select(chip.value)\"\n >\n <span class=\"sui-tab-chips__chip-label\">{{ chip.label }}</span>\n @if (chip.count) {\n <span class=\"sui-tab-chips__chip-count\" aria-hidden=\"true\">{{ chip.count }}</span>\n }\n </button>\n }\n</nav>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%}:host(.sui-tab-chips--host-sticky){display:contents}.sui-tab-chips__sentinel{height:1px;margin-top:16px;margin-bottom:-1px;pointer-events:none}.sui-tab-chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 0;background:transparent;scrollbar-width:none}.sui-tab-chips::-webkit-scrollbar{display:none}.sui-tab-chips--sticky{position:sticky;top:0;z-index:20;transition:padding-top var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease),background var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease)}.sui-tab-chips--stuck{padding-top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--sui-bg-weak-50, #f7f7f7)}.sui-tab-chips__chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-sub-600, #5c5c5c);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-sm-size, 13px);font-weight:600;letter-spacing:var(--sui-type-label-sm-spacing, -.006em);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),border-color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),transform var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease)}.sui-tab-chips__chip:hover{background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-strong-950, #171717)}.sui-tab-chips__chip:active{transform:scale(.96)}.sui-tab-chips__chip:active:not(:disabled),.sui-tab-chips__chip:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-primary-alpha-10)}.sui-tab-chips__chip--active{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff);border-color:var(--sui-bg-strong-950, #171717)}.sui-tab-chips__chip--active:hover{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff)}.sui-tab-chips__chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-sub-600, #5c5c5c);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.sui-tab-chips__chip--active .sui-tab-chips__chip-count{background:color-mix(in srgb,var(--sui-bg-white-0, #fff) 22%,transparent);color:var(--sui-bg-white-0, #fff)}\n"] }]
16927
- }], ctorParameters: () => [], propDecorators: { chips: [{ type: i0.Input, args: [{ isSignal: true, alias: "chips", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], autoScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoScroll", required: false }] }], sentinelRef: [{
17045
+ '[attr.data-sui-size]': 'size()',
17046
+ }, template: "@if (sticky()) {\n <div #sentinel class=\"sui-tab-chips__sentinel\" aria-hidden=\"true\"></div>\n}\n<nav\n #nav\n class=\"sui-tab-chips\"\n [class.sui-tab-chips--sticky]=\"sticky()\"\n [class.sui-tab-chips--stuck]=\"sticky() && stuck()\"\n role=\"tablist\"\n>\n @for (chip of normalizedChips(); track chip.value) {\n <button\n type=\"button\"\n class=\"sui-tab-chips__chip\"\n [class.sui-tab-chips__chip--active]=\"value() === chip.value\"\n [attr.data-sui-chip-value]=\"chip.value\"\n [attr.aria-selected]=\"value() === chip.value\"\n [attr.tabindex]=\"value() === chip.value ? 0 : -1\"\n role=\"tab\"\n (click)=\"select(chip.value)\"\n >\n <span class=\"sui-tab-chips__chip-label\">{{ chip.label }}</span>\n @if (chip.count) {\n <span class=\"sui-tab-chips__chip-count\" aria-hidden=\"true\">{{ chip.count }}</span>\n }\n </button>\n }\n</nav>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%}:host(.sui-tab-chips--host-sticky){display:contents}.sui-tab-chips__sentinel{height:1px;margin-top:16px;margin-bottom:-1px;pointer-events:none}.sui-tab-chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 0;background:transparent;scrollbar-width:none}.sui-tab-chips::-webkit-scrollbar{display:none}.sui-tab-chips--sticky{position:sticky;top:0;z-index:20;transition:padding-top var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease),background var(--sui-motion-duration-fast, .15s) var(--sui-motion-ease-out, ease)}.sui-tab-chips--stuck{padding-top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--sui-bg-weak-50, #f7f7f7)}.sui-tab-chips__chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--sui-bg-white-0, #fff);border:1px solid var(--sui-stroke-soft-200, #ebebeb);color:var(--sui-text-sub-600, #5c5c5c);font-family:var(--sui-font-sans);font-size:var(--sui-type-label-sm-size, 13px);font-weight:600;letter-spacing:var(--sui-type-label-sm-spacing, -.006em);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),border-color var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease),transform var(--sui-motion-duration-x-fast, .1s) var(--sui-motion-ease-out, ease)}.sui-tab-chips__chip:hover{background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-strong-950, #171717)}.sui-tab-chips__chip:active{transform:scale(.96)}.sui-tab-chips__chip:active:not(:disabled),.sui-tab-chips__chip:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sui-primary-alpha-10)}.sui-tab-chips__chip--active{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff);border-color:var(--sui-bg-strong-950, #171717)}.sui-tab-chips__chip--active:hover{background:var(--sui-bg-strong-950, #171717);color:var(--sui-bg-white-0, #fff)}.sui-tab-chips__chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--sui-bg-weak-50, #f7f7f7);color:var(--sui-text-sub-600, #5c5c5c);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}:host([data-sui-size=small]) .sui-tab-chips__chip{box-sizing:border-box;height:32px;padding:0 12px;line-height:var(--sui-type-label-sm-line, 20px)}:host([data-sui-size=large]) .sui-tab-chips__chip{box-sizing:border-box;height:40px;padding:0 16px;line-height:var(--sui-type-label-sm-line, 20px)}:host([data-sui-size=small]) .sui-tab-chips__chip-count{min-width:16px;height:16px;padding:0 5px}:host([data-sui-size=large]) .sui-tab-chips__chip-count{min-width:20px;height:20px;padding:0 6px;font-size:var(--sui-type-label-xs-size, 12px)}.sui-tab-chips__chip--active .sui-tab-chips__chip-count{background:color-mix(in srgb,var(--sui-bg-white-0, #fff) 22%,transparent);color:var(--sui-bg-white-0, #fff)}\n"] }]
17047
+ }], ctorParameters: () => [], propDecorators: { chips: [{ type: i0.Input, args: [{ isSignal: true, alias: "chips", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autoScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoScroll", required: false }] }], sentinelRef: [{
16928
17048
  type: ViewChild,
16929
17049
  args: ['sentinel']
16930
17050
  }], navRef: [{
@@ -17620,6 +17740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17620
17740
  *
17621
17741
  * EXACT (pulled, verified pixel/token):
17622
17742
  * - Container: border-radius 6px (--sui-radius-6), height 24px (py=4px + 16px line).
17743
+ * (24 es `medium`, el default; ver TAMAÑOS abajo para large/xlarge.)
17623
17744
  * NOTE: distinto del badge (radius-full 999px) — NO confundir.
17624
17745
  * - Typography: Label/X Small (Inter Medium, 12px / line 16 / tracking 0, NO uppercase),
17625
17746
  * font-feature 'ss11' 1, 'calt' 0, 'liga' 0. Label color text-sub-600 (#5c5c5c).
@@ -17682,12 +17803,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17682
17803
  * contenido proyectado (avatar/flag con color propio) NO se puede forzar a gris
17683
17804
  * desde el host — el consumer debe atenuar su propio leading si lo requiere.
17684
17805
  *
17806
+ * TAMAÑOS — extensión SUI (03-10-2026, pedido del dueño):
17807
+ * Figma trae solo 24 px, con una X de 16 que en mobile queda muy por debajo de
17808
+ * los 44 del dedo. Se suman dos tamaños en la escala del sui-button:
17809
+ * medium 24 · Label/X Small 12/16 · leading 16 · X 16 (default, Figma)
17810
+ * large 32 · Label/Small 14/20 · leading 20 · X 20
17811
+ * xlarge 40 · Label/Medium 16/24 · leading 20 · X 24
17812
+ * En large/xlarge la X además se agranda por dentro (::before invisible) para
17813
+ * que el área táctil llegue al alto del tag sin cambiar cómo se ve.
17814
+ *
17685
17815
  * CUSTOM (no en Figma — add-on local): ninguno por ahora. extraFeatures del
17686
17816
  * reporte de auditoría estaba vacío.
17687
17817
  */
17688
17818
  class SuiTag {
17689
17819
  /** Visual style. `stroke` = white bg + soft border; `gray` = weak-50 bg, no border. Default stroke. */
17690
17820
  tagStyle = input('stroke', ...(ngDevMode ? [{ debugName: "tagStyle" }] : /* istanbul ignore next */ []));
17821
+ /** Tamaño: medium 24 (default, Figma) · large 32 · xlarge 40 (mobile). */
17822
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
17823
+ /** Px del glyph de la X por tamaño (16 / 20 / 24). */
17824
+ dismissIconSize = computed(() => {
17825
+ switch (this.size()) {
17826
+ case 'xlarge': return 24;
17827
+ case 'large': return 20;
17828
+ default: return 16;
17829
+ }
17830
+ }, ...(ngDevMode ? [{ debugName: "dismissIconSize" }] : /* istanbul ignore next */ []));
17691
17831
  /**
17692
17832
  * True cuando hay un leading element proyectado (icon/avatar/flag/brand/company)
17693
17833
  * en `[data-slot=start]`. Ajusta el padding (pl=4) y agrega gap=4 leading↔texto.
@@ -17718,7 +17858,7 @@ class SuiTag {
17718
17858
  this.dismiss.emit();
17719
17859
  }
17720
17860
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
17721
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiTag, isStandalone: true, selector: "sui-tag", inputs: { tagStyle: { classPropertyName: "tagStyle", publicName: "tagStyle", isSignal: true, isRequired: false, transformFunction: null }, leading: { classPropertyName: "leading", publicName: "leading", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dismissLabel: { classPropertyName: "dismissLabel", publicName: "dismissLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.title": "null", "attr.data-sui-style": "tagStyle()", "attr.data-sui-leading": "leading() ? \"\" : null", "attr.data-sui-dismissible": "dismissible() ? \"\" : null", "attr.data-sui-interactive": "interactive() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: "<!-- Leading element (icon / avatar / flag / brand / company logo) \u2014 16\u00D716, gap-4 al texto.\n Proyectado por el consumer; `leading` input ajusta padding/gap del host. -->\n<ng-content select=\"[data-slot=start]\"></ng-content>\n\n<!-- Bloque \"Text\" interno (Figma node \"Text\"): label + sublabel + close, gap-2. -->\n<span class=\"sui-tag__text\">\n <span class=\"sui-tag__label\"><ng-content></ng-content></span>\n\n @if (showsSublabel()) {\n <span class=\"sui-tag__sublabel\">{{ sublabel() }}</span>\n }\n\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"sui-tag__dismiss\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onDismiss($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"close-line\" [size]=\"16\" aria-hidden=\"true\" />\n </button>\n }\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:24px;padding:4px 8px;gap:0;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);white-space:nowrap;vertical-align:middle;overflow:clip}.sui-tag__text{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:0}.sui-tag__label{display:inline-flex;align-items:center;color:inherit}.sui-tag__sublabel{display:inline-flex;align-items:center;font-weight:400;color:var(--sui-text-soft-400)}:host ::ng-deep [data-slot=start]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host ::ng-deep [data-slot=start]>*{width:16px;height:16px}:host ::ng-deep [data-slot=start] img{width:16px;height:16px;object-fit:cover;display:block}:host([data-sui-leading]:not([data-sui-dismissible])){padding:4px 8px 4px 4px;gap:4px}:host([data-sui-leading][data-sui-dismissible]){padding:4px;gap:4px}.sui-tag__dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;margin:0;padding:0;border:0;background:transparent;color:var(--sui-icon-soft-400);cursor:pointer;border-radius:var(--sui-radius-4, 4px);transition:color .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.sui-tag__dismiss:hover{color:var(--sui-text-strong-950)}.sui-tag__dismiss:disabled{cursor:not-allowed;color:inherit}:host([data-sui-dismissible]:not([data-sui-leading])){padding:4px 4px 4px 8px}:host([data-sui-style=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-text-sub-600)}:host([data-sui-style=gray]){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-sub-600)}:host([data-sui-style=gray]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-soft-400)}:host([data-sui-interactive][data-sui-style=stroke]:hover){background:var(--sui-bg-weak-50)}:host([data-sui-interactive][data-sui-style=gray]:hover){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200)}:host([data-sui-interactive][data-sui-style=stroke]:active),:host([data-sui-interactive][data-sui-style=gray]:active){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__sublabel,:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__sublabel{color:var(--sui-text-sub-600)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__dismiss:not(:disabled):not(:hover),:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__dismiss:not(:disabled):not(:hover){color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=gray]:active) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-strong-950)}:host([data-sui-disabled]){pointer-events:none;background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__sublabel{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__dismiss{color:var(--sui-icon-disabled-300)}:host([data-sui-disabled]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-disabled-300)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17861
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SuiTag, isStandalone: true, selector: "sui-tag", inputs: { tagStyle: { classPropertyName: "tagStyle", publicName: "tagStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, leading: { classPropertyName: "leading", publicName: "leading", isSignal: true, isRequired: false, transformFunction: null }, sublabel: { classPropertyName: "sublabel", publicName: "sublabel", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dismissLabel: { classPropertyName: "dismissLabel", publicName: "dismissLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.title": "null", "attr.data-sui-style": "tagStyle()", "attr.data-sui-size": "size()", "attr.data-sui-leading": "leading() ? \"\" : null", "attr.data-sui-dismissible": "dismissible() ? \"\" : null", "attr.data-sui-interactive": "interactive() ? \"\" : null", "attr.data-sui-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: "<!-- Leading element (icon / avatar / flag / brand / company logo) \u2014 16\u00D716, gap-4 al texto.\n Proyectado por el consumer; `leading` input ajusta padding/gap del host. -->\n<ng-content select=\"[data-slot=start]\"></ng-content>\n\n<!-- Bloque \"Text\" interno (Figma node \"Text\"): label + sublabel + close, gap-2. -->\n<span class=\"sui-tag__text\">\n <span class=\"sui-tag__label\"><ng-content></ng-content></span>\n\n @if (showsSublabel()) {\n <span class=\"sui-tag__sublabel\">{{ sublabel() }}</span>\n }\n\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"sui-tag__dismiss\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onDismiss($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"close-line\" [size]=\"dismissIconSize()\" aria-hidden=\"true\" />\n </button>\n }\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:24px;padding:4px 8px;gap:0;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);white-space:nowrap;vertical-align:middle;overflow:clip}.sui-tag__text{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:0}.sui-tag__label{display:inline-flex;align-items:center;color:inherit}.sui-tag__sublabel{display:inline-flex;align-items:center;font-weight:400;color:var(--sui-text-soft-400)}:host ::ng-deep [data-slot=start]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host ::ng-deep [data-slot=start]>*{width:16px;height:16px}:host ::ng-deep [data-slot=start] img{width:16px;height:16px;object-fit:cover;display:block}:host([data-sui-leading]:not([data-sui-dismissible])){padding:4px 8px 4px 4px;gap:4px}:host([data-sui-leading][data-sui-dismissible]){padding:4px;gap:4px}.sui-tag__dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;margin:0;padding:0;border:0;background:transparent;color:var(--sui-icon-soft-400);cursor:pointer;border-radius:var(--sui-radius-4, 4px);transition:color .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.sui-tag__dismiss:hover{color:var(--sui-text-strong-950)}.sui-tag__dismiss:disabled{cursor:not-allowed;color:inherit}:host([data-sui-dismissible]:not([data-sui-leading])){padding:4px 4px 4px 8px}:host([data-sui-size=large]){height:32px;padding:0 10px;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)}:host([data-sui-size=xlarge]){height:40px;padding:0 12px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large][data-sui-leading]:not([data-sui-dismissible])){padding:0 10px 0 6px;gap:6px}:host([data-sui-size=large][data-sui-leading][data-sui-dismissible]){padding:0 6px;gap:6px}:host([data-sui-size=large][data-sui-dismissible]:not([data-sui-leading])){padding:0 6px 0 10px}:host([data-sui-size=xlarge][data-sui-leading]:not([data-sui-dismissible])){padding:0 12px 0 8px;gap:8px}:host([data-sui-size=xlarge][data-sui-leading][data-sui-dismissible]){padding:0 8px;gap:8px}:host([data-sui-size=xlarge][data-sui-dismissible]:not([data-sui-leading])){padding:0 8px 0 12px}:host([data-sui-size=large]) .sui-tag__text,:host([data-sui-size=xlarge]) .sui-tag__text{gap:4px}:host([data-sui-size=large]) ::ng-deep [data-slot=start],:host([data-sui-size=large]) ::ng-deep [data-slot=start]>*,:host([data-sui-size=large]) ::ng-deep [data-slot=start] img,:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start],:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start]>*,:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start] img{width:20px;height:20px}:host([data-sui-size=large]) .sui-tag__dismiss{position:relative;width:20px;height:20px}:host([data-sui-size=xlarge]) .sui-tag__dismiss{position:relative;width:24px;height:24px}:host([data-sui-size=large]) .sui-tag__dismiss:before,:host([data-sui-size=xlarge]) .sui-tag__dismiss:before{content:\"\";position:absolute;inset:-6px}:host([data-sui-size=xlarge]) .sui-tag__dismiss:before{inset:-8px}:host([data-sui-style=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-text-sub-600)}:host([data-sui-style=gray]){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-sub-600)}:host([data-sui-style=gray]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-soft-400)}:host([data-sui-interactive][data-sui-style=stroke]:hover){background:var(--sui-bg-weak-50)}:host([data-sui-interactive][data-sui-style=gray]:hover){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200)}:host([data-sui-interactive][data-sui-style=stroke]:active),:host([data-sui-interactive][data-sui-style=gray]:active){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__sublabel,:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__sublabel{color:var(--sui-text-sub-600)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__dismiss:not(:disabled):not(:hover),:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__dismiss:not(:disabled):not(:hover){color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=gray]:active) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-strong-950)}:host([data-sui-disabled]){pointer-events:none;background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__sublabel{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__dismiss{color:var(--sui-icon-disabled-300)}:host([data-sui-disabled]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-disabled-300)}\n"], dependencies: [{ kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17722
17862
  }
17723
17863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTag, decorators: [{
17724
17864
  type: Component,
@@ -17726,6 +17866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17726
17866
  /* Strip native `title` attr — patrón canon Ontop (ver CLAUDE.md). */
17727
17867
  '[attr.title]': 'null',
17728
17868
  '[attr.data-sui-style]': 'tagStyle()',
17869
+ '[attr.data-sui-size]': 'size()',
17729
17870
  '[attr.data-sui-leading]': 'leading() ? "" : null',
17730
17871
  '[attr.data-sui-dismissible]': 'dismissible() ? "" : null',
17731
17872
  '[attr.data-sui-interactive]': 'interactive() ? "" : null',
@@ -17734,8 +17875,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17734
17875
  region que hacía que los lectores de pantalla anunciaran cada cambio de
17735
17876
  contenido proyectado. Se omite el role para que renderee como genérico. */
17736
17877
  '[attr.aria-disabled]': 'disabled() ? "true" : null',
17737
- }, template: "<!-- Leading element (icon / avatar / flag / brand / company logo) \u2014 16\u00D716, gap-4 al texto.\n Proyectado por el consumer; `leading` input ajusta padding/gap del host. -->\n<ng-content select=\"[data-slot=start]\"></ng-content>\n\n<!-- Bloque \"Text\" interno (Figma node \"Text\"): label + sublabel + close, gap-2. -->\n<span class=\"sui-tag__text\">\n <span class=\"sui-tag__label\"><ng-content></ng-content></span>\n\n @if (showsSublabel()) {\n <span class=\"sui-tag__sublabel\">{{ sublabel() }}</span>\n }\n\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"sui-tag__dismiss\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onDismiss($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"close-line\" [size]=\"16\" aria-hidden=\"true\" />\n </button>\n }\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:24px;padding:4px 8px;gap:0;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);white-space:nowrap;vertical-align:middle;overflow:clip}.sui-tag__text{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:0}.sui-tag__label{display:inline-flex;align-items:center;color:inherit}.sui-tag__sublabel{display:inline-flex;align-items:center;font-weight:400;color:var(--sui-text-soft-400)}:host ::ng-deep [data-slot=start]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host ::ng-deep [data-slot=start]>*{width:16px;height:16px}:host ::ng-deep [data-slot=start] img{width:16px;height:16px;object-fit:cover;display:block}:host([data-sui-leading]:not([data-sui-dismissible])){padding:4px 8px 4px 4px;gap:4px}:host([data-sui-leading][data-sui-dismissible]){padding:4px;gap:4px}.sui-tag__dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;margin:0;padding:0;border:0;background:transparent;color:var(--sui-icon-soft-400);cursor:pointer;border-radius:var(--sui-radius-4, 4px);transition:color .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.sui-tag__dismiss:hover{color:var(--sui-text-strong-950)}.sui-tag__dismiss:disabled{cursor:not-allowed;color:inherit}:host([data-sui-dismissible]:not([data-sui-leading])){padding:4px 4px 4px 8px}:host([data-sui-style=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-text-sub-600)}:host([data-sui-style=gray]){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-sub-600)}:host([data-sui-style=gray]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-soft-400)}:host([data-sui-interactive][data-sui-style=stroke]:hover){background:var(--sui-bg-weak-50)}:host([data-sui-interactive][data-sui-style=gray]:hover){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200)}:host([data-sui-interactive][data-sui-style=stroke]:active),:host([data-sui-interactive][data-sui-style=gray]:active){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__sublabel,:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__sublabel{color:var(--sui-text-sub-600)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__dismiss:not(:disabled):not(:hover),:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__dismiss:not(:disabled):not(:hover){color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=gray]:active) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-strong-950)}:host([data-sui-disabled]){pointer-events:none;background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__sublabel{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__dismiss{color:var(--sui-icon-disabled-300)}:host([data-sui-disabled]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-disabled-300)}\n"] }]
17738
- }], propDecorators: { tagStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagStyle", required: false }] }], leading: [{ type: i0.Input, args: [{ isSignal: true, alias: "leading", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], dismissLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissLabel", required: false }] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }] } });
17878
+ }, template: "<!-- Leading element (icon / avatar / flag / brand / company logo) \u2014 16\u00D716, gap-4 al texto.\n Proyectado por el consumer; `leading` input ajusta padding/gap del host. -->\n<ng-content select=\"[data-slot=start]\"></ng-content>\n\n<!-- Bloque \"Text\" interno (Figma node \"Text\"): label + sublabel + close, gap-2. -->\n<span class=\"sui-tag__text\">\n <span class=\"sui-tag__label\"><ng-content></ng-content></span>\n\n @if (showsSublabel()) {\n <span class=\"sui-tag__sublabel\">{{ sublabel() }}</span>\n }\n\n @if (dismissible()) {\n <button\n type=\"button\"\n class=\"sui-tag__dismiss\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onDismiss($event)\"\n (touchstart)=\"$any($event.currentTarget)\"\n (touchend)=\"$any($event.currentTarget).blur()\"\n >\n <sui-icon name=\"close-line\" [size]=\"dismissIconSize()\" aria-hidden=\"true\" />\n </button>\n }\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:24px;padding:4px 8px;gap:0;border:1px solid transparent;border-radius:var(--sui-radius-6);font-family:var(--sui-font-sans);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0;font-size:var(--sui-type-label-xs-size);font-weight:var(--sui-type-label-xs-weight);line-height:var(--sui-type-label-xs-line);letter-spacing:var(--sui-type-label-xs-spacing);white-space:nowrap;vertical-align:middle;overflow:clip}.sui-tag__text{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:0}.sui-tag__label{display:inline-flex;align-items:center;color:inherit}.sui-tag__sublabel{display:inline-flex;align-items:center;font-weight:400;color:var(--sui-text-soft-400)}:host ::ng-deep [data-slot=start]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}:host ::ng-deep [data-slot=start]>*{width:16px;height:16px}:host ::ng-deep [data-slot=start] img{width:16px;height:16px;object-fit:cover;display:block}:host([data-sui-leading]:not([data-sui-dismissible])){padding:4px 8px 4px 4px;gap:4px}:host([data-sui-leading][data-sui-dismissible]){padding:4px;gap:4px}.sui-tag__dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;margin:0;padding:0;border:0;background:transparent;color:var(--sui-icon-soft-400);cursor:pointer;border-radius:var(--sui-radius-4, 4px);transition:color .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.sui-tag__dismiss:hover{color:var(--sui-text-strong-950)}.sui-tag__dismiss:disabled{cursor:not-allowed;color:inherit}:host([data-sui-dismissible]:not([data-sui-leading])){padding:4px 4px 4px 8px}:host([data-sui-size=large]){height:32px;padding:0 10px;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)}:host([data-sui-size=xlarge]){height:40px;padding:0 12px;font-size:var(--sui-type-label-md-size);font-weight:var(--sui-type-label-md-weight);line-height:var(--sui-type-label-md-line);letter-spacing:var(--sui-type-label-md-spacing)}:host([data-sui-size=large][data-sui-leading]:not([data-sui-dismissible])){padding:0 10px 0 6px;gap:6px}:host([data-sui-size=large][data-sui-leading][data-sui-dismissible]){padding:0 6px;gap:6px}:host([data-sui-size=large][data-sui-dismissible]:not([data-sui-leading])){padding:0 6px 0 10px}:host([data-sui-size=xlarge][data-sui-leading]:not([data-sui-dismissible])){padding:0 12px 0 8px;gap:8px}:host([data-sui-size=xlarge][data-sui-leading][data-sui-dismissible]){padding:0 8px;gap:8px}:host([data-sui-size=xlarge][data-sui-dismissible]:not([data-sui-leading])){padding:0 8px 0 12px}:host([data-sui-size=large]) .sui-tag__text,:host([data-sui-size=xlarge]) .sui-tag__text{gap:4px}:host([data-sui-size=large]) ::ng-deep [data-slot=start],:host([data-sui-size=large]) ::ng-deep [data-slot=start]>*,:host([data-sui-size=large]) ::ng-deep [data-slot=start] img,:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start],:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start]>*,:host([data-sui-size=xlarge]) ::ng-deep [data-slot=start] img{width:20px;height:20px}:host([data-sui-size=large]) .sui-tag__dismiss{position:relative;width:20px;height:20px}:host([data-sui-size=xlarge]) .sui-tag__dismiss{position:relative;width:24px;height:24px}:host([data-sui-size=large]) .sui-tag__dismiss:before,:host([data-sui-size=xlarge]) .sui-tag__dismiss:before{content:\"\";position:absolute;inset:-6px}:host([data-sui-size=xlarge]) .sui-tag__dismiss:before{inset:-8px}:host([data-sui-style=stroke]){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200);color:var(--sui-text-sub-600)}:host([data-sui-style=gray]){background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-sub-600)}:host([data-sui-style=gray]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-soft-400)}:host([data-sui-interactive][data-sui-style=stroke]:hover){background:var(--sui-bg-weak-50)}:host([data-sui-interactive][data-sui-style=gray]:hover){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-soft-200)}:host([data-sui-interactive][data-sui-style=stroke]:active),:host([data-sui-interactive][data-sui-style=gray]:active){background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__sublabel,:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__sublabel{color:var(--sui-text-sub-600)}:host([data-sui-interactive][data-sui-style=stroke]:active) .sui-tag__dismiss:not(:disabled):not(:hover),:host([data-sui-interactive][data-sui-style=gray]:active) .sui-tag__dismiss:not(:disabled):not(:hover){color:var(--sui-text-strong-950)}:host([data-sui-interactive][data-sui-style=gray]:active) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-strong-950)}:host([data-sui-disabled]){pointer-events:none;background:var(--sui-bg-weak-50);border-color:transparent;color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__sublabel{color:var(--sui-text-disabled-300)}:host([data-sui-disabled]) .sui-tag__dismiss{color:var(--sui-icon-disabled-300)}:host([data-sui-disabled]) ::ng-deep [data-slot=start] sui-icon{color:var(--sui-icon-disabled-300)}\n"] }]
17879
+ }], propDecorators: { tagStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagStyle", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], leading: [{ type: i0.Input, args: [{ isSignal: true, alias: "leading", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], dismissLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissLabel", required: false }] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }] } });
17739
17880
 
17740
17881
  /**
17741
17882
  * SUI Tag Input — SUI Design System 2.0
@@ -17759,6 +17900,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17759
17900
  * - small (Small 36): py=8px, pl=10px, pr=8px, gap=8px, radius=8px
17760
17901
  * - medium (Medium 40): py=10px, pl=12px, pr=10px, gap=8px, radius=10px (default)
17761
17902
  *
17903
+ * - large (48, extensión SUI 03-10-2026): py=12−1, pl=14, pr=12, gap=10, radius=12
17904
+ * - xlarge (52, extensión SUI 03-10-2026): py=14−1, pl=16, pr=14, gap=10, radius=12
17905
+ * Mismos valores que `sui-input` large/xlarge, para que un tag-input y un input
17906
+ * del mismo formulario midan igual en mobile.
17907
+ *
17762
17908
  * El alto se deriva del line-height(20) del texto + 2×py. No height explícito.
17763
17909
  *
17764
17910
  * - Texto input/placeholder: Paragraph/Small (Inter 14 / 20 / -0.084px ≈ -0.006em),
@@ -17844,6 +17990,15 @@ class SuiTagInput {
17844
17990
  return r;
17845
17991
  return null;
17846
17992
  }, ...(ngDevMode ? [{ debugName: "rightIconCfg" }] : /* istanbul ignore next */ []));
17993
+ /**
17994
+ * El tamaño que se le pasa al `sui-form-label`. Igual que en `sui-input`: el
17995
+ * label no crece con el campo; en large y xlarge crece el área de toque, no la
17996
+ * jerarquía del formulario (y `SuiFormLabelSize` llega hasta medium).
17997
+ */
17998
+ labelSize = computed(() => {
17999
+ const s = this.size();
18000
+ return s === 'large' || s === 'xlarge' ? 'medium' : s;
18001
+ }, ...(ngDevMode ? [{ debugName: "labelSize" }] : /* istanbul ignore next */ []));
17847
18002
  // ── Label inputs (delegated to sui-form-label) ──────────────────────────────
17848
18003
  label = input(null, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
17849
18004
  sublabel = input(null, ...(ngDevMode ? [{ debugName: "sublabel" }] : /* istanbul ignore next */ []));
@@ -17983,7 +18138,7 @@ class SuiTagInput {
17983
18138
  useExisting: forwardRef(() => SuiTagInput),
17984
18139
  multi: true,
17985
18140
  },
17986
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true }], ngImport: i0, template: "<!-- Label (Figma \"Label [1.1]\" arriba del field) \u2014 delegado a sui-form-label. -->\n@if (label()) {\n <sui-form-label\n [label]=\"label()!\"\n [sublabel]=\"sublabel()\"\n [required]=\"required()\"\n [tooltip]=\"tooltip()\"\n [size]=\"size()\"\n class=\"sui-tag-input__label-host\"\n />\n}\n\n<!-- Input box \"Basic\" \u2014 texto libre. Click en cualquier zona enfoca el input. -->\n<div\n class=\"sui-tag-input__field\"\n [class.sui-tag-input__field--error]=\"error()\"\n [class.sui-tag-input__field--disabled]=\"isDisabled()\"\n (mousedown)=\"onFieldPointerDown($event)\"\n>\n <input\n #inputEl\n class=\"sui-tag-input__control\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [value]=\"draft()\"\n autocomplete=\"off\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <!-- Trailing icon (Figma rightIcon / pickRight, node 428:4819) \u2014 20\u00D720 info-custom-fill\n (rightIcon=true), un icono custom (rightIcon=\"nombre\"), o el contenido que\n proyecte el consumer en [slot=right]. -->\n @if (rightIconCfg(); as rightIconName) {\n <span class=\"sui-tag-input__right\">\n <ng-content select=\"[slot=right]\">\n <sui-icon [name]=\"rightIconName\" [size]=\"20\" />\n </ng-content>\n </span>\n }\n</div>\n\n<!-- Tags row (Figma frame \"Tags\") \u2014 fila aparte debajo del input, pt=4 gap=8, wrap. -->\n@if (hasTags()) {\n <div class=\"sui-tag-input__tags\" role=\"list\">\n @for (tag of value(); track $index) {\n <sui-tag\n role=\"listitem\"\n tagStyle=\"stroke\"\n [dismissible]=\"true\"\n [disabled]=\"isDisabled()\"\n [dismissLabel]=\"'Quitar ' + tag\"\n (dismiss)=\"removeAt($index)\"\n >\n {{ tag }}\n </sui-tag>\n }\n </div>\n}\n\n<!-- Hint / error message \u2014 delegado a sui-form-hint.\n El hint neutral muestra el icono 16\u00D716 `information-fill` (Figma node\n I428:4900;266:5272); el error conserva su icono default (error-warning-line). -->\n@if (error() ? errorMessage() : hint()) {\n <sui-form-hint\n [message]=\"error() ? errorMessage() : hint()\"\n [variant]=\"error() ? 'error' : 'neutral'\"\n [icon]=\"error() ? undefined : 'information-fill'\"\n class=\"sui-tag-input__hint-host\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:block;font-family:var(--sui-font-sans)}.sui-tag-input__label-host{display:block;margin-bottom:4px}.sui-tag-input__field{display:flex;align-items:center;width:100%;box-sizing:border-box;overflow:hidden;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-regular-shadow-x-small);cursor:text;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),box-shadow var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-size=xsmall]) .sui-tag-input__field{gap:6px;padding:5px 6px 5px 10px;border-radius:var(--sui-radius-8);min-height:32px}:host([data-sui-size=small]) .sui-tag-input__field{gap:8px;padding:7px 8px 7px 10px;border-radius:var(--sui-radius-8);min-height:36px}:host([data-sui-size=medium]) .sui-tag-input__field,:host(:not([data-sui-size])) .sui-tag-input__field{gap:8px;padding:9px 10px 9px 12px;border-radius:var(--sui-radius-10);min-height:40px}.sui-tag-input__control{flex:1 0 0;min-width:0;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--sui-text-strong-950);font-family:inherit;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);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-tag-input__control::placeholder{color:var(--sui-text-soft-400);opacity:1}.sui-tag-input__right{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--sui-icon-size-md);height:var(--sui-icon-size-md);color:var(--sui-icon-soft-400);pointer-events:none}:host([data-sui-disabled]) .sui-tag-input__right{color:var(--sui-icon-disabled-300)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover .sui-tag-input__control::placeholder{color:var(--sui-text-sub-600)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:focus-within{background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-slate-alpha-16)}:host([data-sui-error]) .sui-tag-input__field,.sui-tag-input__field--error{border-color:var(--sui-state-error-base)}:host([data-sui-error]) .sui-tag-input__field:focus-within{border-color:var(--sui-state-error-base);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-red-alpha-16)}:host([data-sui-disabled]) .sui-tag-input__field,.sui-tag-input__field--disabled{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none;cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control::placeholder{color:var(--sui-text-disabled-300)}.sui-tag-input__tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;width:100%}.sui-tag-input__hint-host{display:block;margin-top:4px}\n"], dependencies: [{ kind: "component", type: SuiTag, selector: "sui-tag", inputs: ["tagStyle", "leading", "sublabel", "dismissible", "interactive", "disabled", "dismissLabel"], outputs: ["dismiss"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiFormLabel, selector: "sui-form-label", inputs: ["label", "sublabel", "required", "tooltip", "link", "size", "disabled", "for"], outputs: ["linkClick"] }, { kind: "component", type: SuiFormHint, selector: "sui-form-hint", inputs: ["message", "variant", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18141
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true }], ngImport: i0, template: "<!-- Label (Figma \"Label [1.1]\" arriba del field) \u2014 delegado a sui-form-label. -->\n@if (label()) {\n <sui-form-label\n [label]=\"label()!\"\n [sublabel]=\"sublabel()\"\n [required]=\"required()\"\n [tooltip]=\"tooltip()\"\n [size]=\"labelSize()\"\n class=\"sui-tag-input__label-host\"\n />\n}\n\n<!-- Input box \"Basic\" \u2014 texto libre. Click en cualquier zona enfoca el input. -->\n<div\n class=\"sui-tag-input__field\"\n [class.sui-tag-input__field--error]=\"error()\"\n [class.sui-tag-input__field--disabled]=\"isDisabled()\"\n (mousedown)=\"onFieldPointerDown($event)\"\n>\n <input\n #inputEl\n class=\"sui-tag-input__control\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [value]=\"draft()\"\n autocomplete=\"off\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <!-- Trailing icon (Figma rightIcon / pickRight, node 428:4819) \u2014 20\u00D720 info-custom-fill\n (rightIcon=true), un icono custom (rightIcon=\"nombre\"), o el contenido que\n proyecte el consumer en [slot=right]. -->\n @if (rightIconCfg(); as rightIconName) {\n <span class=\"sui-tag-input__right\">\n <ng-content select=\"[slot=right]\">\n <sui-icon [name]=\"rightIconName\" [size]=\"20\" />\n </ng-content>\n </span>\n }\n</div>\n\n<!-- Tags row (Figma frame \"Tags\") \u2014 fila aparte debajo del input, pt=4 gap=8, wrap. -->\n@if (hasTags()) {\n <div class=\"sui-tag-input__tags\" role=\"list\">\n @for (tag of value(); track $index) {\n <sui-tag\n role=\"listitem\"\n tagStyle=\"stroke\"\n [dismissible]=\"true\"\n [disabled]=\"isDisabled()\"\n [dismissLabel]=\"'Quitar ' + tag\"\n (dismiss)=\"removeAt($index)\"\n >\n {{ tag }}\n </sui-tag>\n }\n </div>\n}\n\n<!-- Hint / error message \u2014 delegado a sui-form-hint.\n El hint neutral muestra el icono 16\u00D716 `information-fill` (Figma node\n I428:4900;266:5272); el error conserva su icono default (error-warning-line). -->\n@if (error() ? errorMessage() : hint()) {\n <sui-form-hint\n [message]=\"error() ? errorMessage() : hint()\"\n [variant]=\"error() ? 'error' : 'neutral'\"\n [icon]=\"error() ? undefined : 'information-fill'\"\n class=\"sui-tag-input__hint-host\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:block;font-family:var(--sui-font-sans)}.sui-tag-input__label-host{display:block;margin-bottom:4px}.sui-tag-input__field{display:flex;align-items:center;width:100%;box-sizing:border-box;overflow:hidden;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-regular-shadow-x-small);cursor:text;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),box-shadow var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-size=xsmall]) .sui-tag-input__field{gap:6px;padding:5px 6px 5px 10px;border-radius:var(--sui-radius-8);min-height:32px}:host([data-sui-size=small]) .sui-tag-input__field{gap:8px;padding:7px 8px 7px 10px;border-radius:var(--sui-radius-8);min-height:36px}:host([data-sui-size=medium]) .sui-tag-input__field,:host(:not([data-sui-size])) .sui-tag-input__field{gap:8px;padding:9px 10px 9px 12px;border-radius:var(--sui-radius-10);min-height:40px}:host([data-sui-size=large]) .sui-tag-input__field{gap:10px;padding:11px 12px 11px 14px;border-radius:var(--sui-radius-12);min-height:48px}:host([data-sui-size=xlarge]) .sui-tag-input__field{gap:10px;padding:13px 14px 13px 16px;border-radius:var(--sui-radius-12);min-height:52px}.sui-tag-input__control{flex:1 0 0;min-width:0;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--sui-text-strong-950);font-family:inherit;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);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}@media(max-width:767px){.sui-tag-input__control{font-size:16px}}.sui-tag-input__control::placeholder{color:var(--sui-text-soft-400);opacity:1}.sui-tag-input__right{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--sui-icon-size-md);height:var(--sui-icon-size-md);color:var(--sui-icon-soft-400);pointer-events:none}:host([data-sui-disabled]) .sui-tag-input__right{color:var(--sui-icon-disabled-300)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover .sui-tag-input__control::placeholder{color:var(--sui-text-sub-600)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:focus-within{background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-slate-alpha-16)}:host([data-sui-error]) .sui-tag-input__field,.sui-tag-input__field--error{border-color:var(--sui-state-error-base)}:host([data-sui-error]) .sui-tag-input__field:focus-within{border-color:var(--sui-state-error-base);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-red-alpha-16)}:host([data-sui-disabled]) .sui-tag-input__field,.sui-tag-input__field--disabled{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none;cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control::placeholder{color:var(--sui-text-disabled-300)}.sui-tag-input__tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;width:100%}.sui-tag-input__hint-host{display:block;margin-top:4px}\n"], dependencies: [{ kind: "component", type: SuiTag, selector: "sui-tag", inputs: ["tagStyle", "size", "leading", "sublabel", "dismissible", "interactive", "disabled", "dismissLabel"], outputs: ["dismiss"] }, { kind: "component", type: SuiIcon, selector: "sui-icon", inputs: ["name", "size", "color"] }, { kind: "component", type: SuiFormLabel, selector: "sui-form-label", inputs: ["label", "sublabel", "required", "tooltip", "link", "size", "disabled", "for"], outputs: ["linkClick"] }, { kind: "component", type: SuiFormHint, selector: "sui-form-hint", inputs: ["message", "variant", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17987
18142
  }
17988
18143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTagInput, decorators: [{
17989
18144
  type: Component,
@@ -17999,7 +18154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
17999
18154
  '[attr.data-sui-size]': 'size()',
18000
18155
  '[attr.data-sui-error]': 'error() ? "" : null',
18001
18156
  '[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
18002
- }, template: "<!-- Label (Figma \"Label [1.1]\" arriba del field) \u2014 delegado a sui-form-label. -->\n@if (label()) {\n <sui-form-label\n [label]=\"label()!\"\n [sublabel]=\"sublabel()\"\n [required]=\"required()\"\n [tooltip]=\"tooltip()\"\n [size]=\"size()\"\n class=\"sui-tag-input__label-host\"\n />\n}\n\n<!-- Input box \"Basic\" \u2014 texto libre. Click en cualquier zona enfoca el input. -->\n<div\n class=\"sui-tag-input__field\"\n [class.sui-tag-input__field--error]=\"error()\"\n [class.sui-tag-input__field--disabled]=\"isDisabled()\"\n (mousedown)=\"onFieldPointerDown($event)\"\n>\n <input\n #inputEl\n class=\"sui-tag-input__control\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [value]=\"draft()\"\n autocomplete=\"off\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <!-- Trailing icon (Figma rightIcon / pickRight, node 428:4819) \u2014 20\u00D720 info-custom-fill\n (rightIcon=true), un icono custom (rightIcon=\"nombre\"), o el contenido que\n proyecte el consumer en [slot=right]. -->\n @if (rightIconCfg(); as rightIconName) {\n <span class=\"sui-tag-input__right\">\n <ng-content select=\"[slot=right]\">\n <sui-icon [name]=\"rightIconName\" [size]=\"20\" />\n </ng-content>\n </span>\n }\n</div>\n\n<!-- Tags row (Figma frame \"Tags\") \u2014 fila aparte debajo del input, pt=4 gap=8, wrap. -->\n@if (hasTags()) {\n <div class=\"sui-tag-input__tags\" role=\"list\">\n @for (tag of value(); track $index) {\n <sui-tag\n role=\"listitem\"\n tagStyle=\"stroke\"\n [dismissible]=\"true\"\n [disabled]=\"isDisabled()\"\n [dismissLabel]=\"'Quitar ' + tag\"\n (dismiss)=\"removeAt($index)\"\n >\n {{ tag }}\n </sui-tag>\n }\n </div>\n}\n\n<!-- Hint / error message \u2014 delegado a sui-form-hint.\n El hint neutral muestra el icono 16\u00D716 `information-fill` (Figma node\n I428:4900;266:5272); el error conserva su icono default (error-warning-line). -->\n@if (error() ? errorMessage() : hint()) {\n <sui-form-hint\n [message]=\"error() ? errorMessage() : hint()\"\n [variant]=\"error() ? 'error' : 'neutral'\"\n [icon]=\"error() ? undefined : 'information-fill'\"\n class=\"sui-tag-input__hint-host\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:block;font-family:var(--sui-font-sans)}.sui-tag-input__label-host{display:block;margin-bottom:4px}.sui-tag-input__field{display:flex;align-items:center;width:100%;box-sizing:border-box;overflow:hidden;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-regular-shadow-x-small);cursor:text;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),box-shadow var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-size=xsmall]) .sui-tag-input__field{gap:6px;padding:5px 6px 5px 10px;border-radius:var(--sui-radius-8);min-height:32px}:host([data-sui-size=small]) .sui-tag-input__field{gap:8px;padding:7px 8px 7px 10px;border-radius:var(--sui-radius-8);min-height:36px}:host([data-sui-size=medium]) .sui-tag-input__field,:host(:not([data-sui-size])) .sui-tag-input__field{gap:8px;padding:9px 10px 9px 12px;border-radius:var(--sui-radius-10);min-height:40px}.sui-tag-input__control{flex:1 0 0;min-width:0;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--sui-text-strong-950);font-family:inherit;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);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}.sui-tag-input__control::placeholder{color:var(--sui-text-soft-400);opacity:1}.sui-tag-input__right{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--sui-icon-size-md);height:var(--sui-icon-size-md);color:var(--sui-icon-soft-400);pointer-events:none}:host([data-sui-disabled]) .sui-tag-input__right{color:var(--sui-icon-disabled-300)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover .sui-tag-input__control::placeholder{color:var(--sui-text-sub-600)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:focus-within{background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-slate-alpha-16)}:host([data-sui-error]) .sui-tag-input__field,.sui-tag-input__field--error{border-color:var(--sui-state-error-base)}:host([data-sui-error]) .sui-tag-input__field:focus-within{border-color:var(--sui-state-error-base);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-red-alpha-16)}:host([data-sui-disabled]) .sui-tag-input__field,.sui-tag-input__field--disabled{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none;cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control::placeholder{color:var(--sui-text-disabled-300)}.sui-tag-input__tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;width:100%}.sui-tag-input__hint-host{display:block;margin-top:4px}\n"] }]
18157
+ }, template: "<!-- Label (Figma \"Label [1.1]\" arriba del field) \u2014 delegado a sui-form-label. -->\n@if (label()) {\n <sui-form-label\n [label]=\"label()!\"\n [sublabel]=\"sublabel()\"\n [required]=\"required()\"\n [tooltip]=\"tooltip()\"\n [size]=\"labelSize()\"\n class=\"sui-tag-input__label-host\"\n />\n}\n\n<!-- Input box \"Basic\" \u2014 texto libre. Click en cualquier zona enfoca el input. -->\n<div\n class=\"sui-tag-input__field\"\n [class.sui-tag-input__field--error]=\"error()\"\n [class.sui-tag-input__field--disabled]=\"isDisabled()\"\n (mousedown)=\"onFieldPointerDown($event)\"\n>\n <input\n #inputEl\n class=\"sui-tag-input__control\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [value]=\"draft()\"\n autocomplete=\"off\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <!-- Trailing icon (Figma rightIcon / pickRight, node 428:4819) \u2014 20\u00D720 info-custom-fill\n (rightIcon=true), un icono custom (rightIcon=\"nombre\"), o el contenido que\n proyecte el consumer en [slot=right]. -->\n @if (rightIconCfg(); as rightIconName) {\n <span class=\"sui-tag-input__right\">\n <ng-content select=\"[slot=right]\">\n <sui-icon [name]=\"rightIconName\" [size]=\"20\" />\n </ng-content>\n </span>\n }\n</div>\n\n<!-- Tags row (Figma frame \"Tags\") \u2014 fila aparte debajo del input, pt=4 gap=8, wrap. -->\n@if (hasTags()) {\n <div class=\"sui-tag-input__tags\" role=\"list\">\n @for (tag of value(); track $index) {\n <sui-tag\n role=\"listitem\"\n tagStyle=\"stroke\"\n [dismissible]=\"true\"\n [disabled]=\"isDisabled()\"\n [dismissLabel]=\"'Quitar ' + tag\"\n (dismiss)=\"removeAt($index)\"\n >\n {{ tag }}\n </sui-tag>\n }\n </div>\n}\n\n<!-- Hint / error message \u2014 delegado a sui-form-hint.\n El hint neutral muestra el icono 16\u00D716 `information-fill` (Figma node\n I428:4900;266:5272); el error conserva su icono default (error-warning-line). -->\n@if (error() ? errorMessage() : hint()) {\n <sui-form-hint\n [message]=\"error() ? errorMessage() : hint()\"\n [variant]=\"error() ? 'error' : 'neutral'\"\n [icon]=\"error() ? undefined : 'information-fill'\"\n class=\"sui-tag-input__hint-host\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:block;font-family:var(--sui-font-sans)}.sui-tag-input__label-host{display:block;margin-bottom:4px}.sui-tag-input__field{display:flex;align-items:center;width:100%;box-sizing:border-box;overflow:hidden;background:var(--sui-bg-white-0);border:1px solid var(--sui-stroke-soft-200);box-shadow:var(--sui-regular-shadow-x-small);cursor:text;transition:border-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),background-color var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out),box-shadow var(--sui-motion-duration-x-fast) var(--sui-motion-ease-out)}:host([data-sui-size=xsmall]) .sui-tag-input__field{gap:6px;padding:5px 6px 5px 10px;border-radius:var(--sui-radius-8);min-height:32px}:host([data-sui-size=small]) .sui-tag-input__field{gap:8px;padding:7px 8px 7px 10px;border-radius:var(--sui-radius-8);min-height:36px}:host([data-sui-size=medium]) .sui-tag-input__field,:host(:not([data-sui-size])) .sui-tag-input__field{gap:8px;padding:9px 10px 9px 12px;border-radius:var(--sui-radius-10);min-height:40px}:host([data-sui-size=large]) .sui-tag-input__field{gap:10px;padding:11px 12px 11px 14px;border-radius:var(--sui-radius-12);min-height:48px}:host([data-sui-size=xlarge]) .sui-tag-input__field{gap:10px;padding:13px 14px 13px 16px;border-radius:var(--sui-radius-12);min-height:52px}.sui-tag-input__control{flex:1 0 0;min-width:0;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--sui-text-strong-950);font-family:inherit;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);font-feature-settings:\"ss11\" 1,\"calt\" 0,\"liga\" 0}@media(max-width:767px){.sui-tag-input__control{font-size:16px}}.sui-tag-input__control::placeholder{color:var(--sui-text-soft-400);opacity:1}.sui-tag-input__right{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--sui-icon-size-md);height:var(--sui-icon-size-md);color:var(--sui-icon-soft-400);pointer-events:none}:host([data-sui-disabled]) .sui-tag-input__right{color:var(--sui-icon-disabled-300)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:hover .sui-tag-input__control::placeholder{color:var(--sui-text-sub-600)}:host(:not([data-sui-disabled]):not([data-sui-error])) .sui-tag-input__field:focus-within{background:var(--sui-bg-white-0);border-color:var(--sui-stroke-strong-950);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-slate-alpha-16)}:host([data-sui-error]) .sui-tag-input__field,.sui-tag-input__field--error{border-color:var(--sui-state-error-base)}:host([data-sui-error]) .sui-tag-input__field:focus-within{border-color:var(--sui-state-error-base);box-shadow:0 0 0 2px var(--sui-bg-white-0),0 0 0 4px var(--sui-red-alpha-16)}:host([data-sui-disabled]) .sui-tag-input__field,.sui-tag-input__field--disabled{background:var(--sui-bg-weak-50);border-color:transparent;box-shadow:none;cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control{color:var(--sui-text-disabled-300);cursor:not-allowed}:host([data-sui-disabled]) .sui-tag-input__control::placeholder{color:var(--sui-text-disabled-300)}.sui-tag-input__tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;width:100%}.sui-tag-input__hint-host{display:block;margin-top:4px}\n"] }]
18003
18158
  }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], rightIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightIcon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sublabel", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], commaSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "commaSeparator", required: false }] }], allowDuplicates: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDuplicates", required: false }] }], maxTags: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTags", required: false }] }], addOnBlur: [{ type: i0.Input, args: [{ isSignal: true, alias: "addOnBlur", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], tagAdded: [{ type: i0.Output, args: ["tagAdded"] }], tagRemoved: [{ type: i0.Output, args: ["tagRemoved"] }], inputEl: [{
18004
18159
  type: ViewChild,
18005
18160
  args: ['inputEl']