@ajuarezso/sui-design-system 0.19.0 → 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.
- package/docs/INDEX.md +136 -0
- package/docs/sui-alert/README.md +216 -0
- package/docs/sui-app-store-badge/README.md +137 -0
- package/docs/sui-avatar/README.md +263 -0
- package/docs/sui-avatar-group/README.md +115 -0
- package/docs/sui-badge/README.md +212 -0
- package/docs/sui-brand-logo/README.md +143 -0
- package/docs/sui-button/README.md +192 -0
- package/docs/sui-button-group/README.md +178 -0
- package/docs/sui-button-group-item/README.md +102 -0
- package/docs/sui-checkbox/README.md +147 -0
- package/docs/sui-checkbox-label/README.md +143 -0
- package/docs/sui-circular-progress-bar/README.md +131 -0
- package/docs/sui-color-dot/README.md +112 -0
- package/docs/sui-color-picker/README.md +124 -0
- package/docs/sui-compact-avatar-group/README.md +103 -0
- package/docs/sui-compact-button/README.md +190 -0
- package/docs/sui-content-divider/README.md +124 -0
- package/docs/sui-divider/README.md +102 -0
- package/docs/sui-emoji/README.md +138 -0
- package/docs/sui-fancy-button/README.md +148 -0
- package/docs/sui-file-icon/README.md +103 -0
- package/docs/sui-flag/README.md +99 -0
- package/docs/sui-form-hint/README.md +124 -0
- package/docs/sui-form-label/README.md +148 -0
- package/docs/sui-icon/README.md +135 -0
- package/docs/sui-kbd/README.md +97 -0
- package/docs/sui-key-icon/README.md +125 -0
- package/docs/sui-link-button/README.md +221 -0
- package/docs/sui-logo/README.md +152 -0
- package/docs/sui-payment-icon/README.md +98 -0
- package/docs/sui-progress-bar/README.md +132 -0
- package/docs/sui-progress-bar-label/README.md +143 -0
- package/docs/sui-radio/README.md +134 -0
- package/docs/sui-radio-label/README.md +137 -0
- package/docs/sui-rating/README.md +198 -0
- package/docs/sui-segmented-control/README.md +144 -0
- package/docs/sui-slider/README.md +143 -0
- package/docs/sui-social-button/README.md +158 -0
- package/docs/sui-status-badge/README.md +164 -0
- package/docs/sui-switch/README.md +146 -0
- package/docs/sui-switch-label/README.md +139 -0
- package/docs/sui-tag/README.md +145 -0
- package/fesm2022/ajuarezso-sui-design-system.mjs +193 -48
- package/fesm2022/ajuarezso-sui-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ajuarezso-sui-design-system.d.ts +166 -27
|
@@ -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
|
-
|
|
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:
|
|
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:
|
|
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 ??
|
|
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 ??
|
|
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 ??
|
|
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 ??
|
|
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
|
|
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]=\"
|
|
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]=\"
|
|
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'
|
|
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
|
/**
|
|
@@ -16854,8 +16957,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
16854
16957
|
* [chips]="['Hamburguesas', 'Pizzas', 'Bebidas']"
|
|
16855
16958
|
* [(value)]="selected"
|
|
16856
16959
|
* [sticky]="true"
|
|
16960
|
+
* [size]="bp.isMobile() ? 'large' : 'medium'"
|
|
16857
16961
|
* />
|
|
16858
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
|
+
*
|
|
16859
16966
|
* También acepta objetos:
|
|
16860
16967
|
* <sui-tab-chips
|
|
16861
16968
|
* [chips]="[{value:'h', label:'Hamburguesas'}, {value:'p', label:'Pizzas'}]"
|
|
@@ -16869,6 +16976,8 @@ class SuiTabChips {
|
|
|
16869
16976
|
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
16870
16977
|
/** Si true, el componente queda sticky al top del scroll container. */
|
|
16871
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 */ []));
|
|
16872
16981
|
/** Auto-scroll horizontal del chip activo al cambiar `value`. */
|
|
16873
16982
|
autoScroll = input(true, ...(ngDevMode ? [{ debugName: "autoScroll" }] : /* istanbul ignore next */ []));
|
|
16874
16983
|
sentinelRef;
|
|
@@ -16924,7 +17033,7 @@ class SuiTabChips {
|
|
|
16924
17033
|
nav.scrollTo({ left: Math.max(0, offset), behavior: 'smooth' });
|
|
16925
17034
|
}
|
|
16926
17035
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTabChips, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16927
|
-
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 });
|
|
16928
17037
|
}
|
|
16929
17038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTabChips, decorators: [{
|
|
16930
17039
|
type: Component,
|
|
@@ -16933,8 +17042,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
16933
17042
|
<nav> sticky resuelva contra el scroll container real y no contra el host
|
|
16934
17043
|
(que mide ~50px → el sticky no se enganchaba). Gate por clase de host. */
|
|
16935
17044
|
'[class.sui-tab-chips--host-sticky]': 'sticky()',
|
|
16936
|
-
|
|
16937
|
-
|
|
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: [{
|
|
16938
17048
|
type: ViewChild,
|
|
16939
17049
|
args: ['sentinel']
|
|
16940
17050
|
}], navRef: [{
|
|
@@ -17630,6 +17740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17630
17740
|
*
|
|
17631
17741
|
* EXACT (pulled, verified pixel/token):
|
|
17632
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.)
|
|
17633
17744
|
* NOTE: distinto del badge (radius-full 999px) — NO confundir.
|
|
17634
17745
|
* - Typography: Label/X Small (Inter Medium, 12px / line 16 / tracking 0, NO uppercase),
|
|
17635
17746
|
* font-feature 'ss11' 1, 'calt' 0, 'liga' 0. Label color text-sub-600 (#5c5c5c).
|
|
@@ -17692,12 +17803,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17692
17803
|
* contenido proyectado (avatar/flag con color propio) NO se puede forzar a gris
|
|
17693
17804
|
* desde el host — el consumer debe atenuar su propio leading si lo requiere.
|
|
17694
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
|
+
*
|
|
17695
17815
|
* CUSTOM (no en Figma — add-on local): ninguno por ahora. extraFeatures del
|
|
17696
17816
|
* reporte de auditoría estaba vacío.
|
|
17697
17817
|
*/
|
|
17698
17818
|
class SuiTag {
|
|
17699
17819
|
/** Visual style. `stroke` = white bg + soft border; `gray` = weak-50 bg, no border. Default stroke. */
|
|
17700
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 */ []));
|
|
17701
17831
|
/**
|
|
17702
17832
|
* True cuando hay un leading element proyectado (icon/avatar/flag/brand/company)
|
|
17703
17833
|
* en `[data-slot=start]`. Ajusta el padding (pl=4) y agrega gap=4 leading↔texto.
|
|
@@ -17728,7 +17858,7 @@ class SuiTag {
|
|
|
17728
17858
|
this.dismiss.emit();
|
|
17729
17859
|
}
|
|
17730
17860
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17731
|
-
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]=\"
|
|
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 });
|
|
17732
17862
|
}
|
|
17733
17863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTag, decorators: [{
|
|
17734
17864
|
type: Component,
|
|
@@ -17736,6 +17866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17736
17866
|
/* Strip native `title` attr — patrón canon Ontop (ver CLAUDE.md). */
|
|
17737
17867
|
'[attr.title]': 'null',
|
|
17738
17868
|
'[attr.data-sui-style]': 'tagStyle()',
|
|
17869
|
+
'[attr.data-sui-size]': 'size()',
|
|
17739
17870
|
'[attr.data-sui-leading]': 'leading() ? "" : null',
|
|
17740
17871
|
'[attr.data-sui-dismissible]': 'dismissible() ? "" : null',
|
|
17741
17872
|
'[attr.data-sui-interactive]': 'interactive() ? "" : null',
|
|
@@ -17744,8 +17875,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17744
17875
|
region que hacía que los lectores de pantalla anunciaran cada cambio de
|
|
17745
17876
|
contenido proyectado. Se omite el role para que renderee como genérico. */
|
|
17746
17877
|
'[attr.aria-disabled]': 'disabled() ? "true" : null',
|
|
17747
|
-
}, 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]=\"
|
|
17748
|
-
}], 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"] }] } });
|
|
17749
17880
|
|
|
17750
17881
|
/**
|
|
17751
17882
|
* SUI Tag Input — SUI Design System 2.0
|
|
@@ -17769,6 +17900,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17769
17900
|
* - small (Small 36): py=8px, pl=10px, pr=8px, gap=8px, radius=8px
|
|
17770
17901
|
* - medium (Medium 40): py=10px, pl=12px, pr=10px, gap=8px, radius=10px (default)
|
|
17771
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
|
+
*
|
|
17772
17908
|
* El alto se deriva del line-height(20) del texto + 2×py. No height explícito.
|
|
17773
17909
|
*
|
|
17774
17910
|
* - Texto input/placeholder: Paragraph/Small (Inter 14 / 20 / -0.084px ≈ -0.006em),
|
|
@@ -17854,6 +17990,15 @@ class SuiTagInput {
|
|
|
17854
17990
|
return r;
|
|
17855
17991
|
return null;
|
|
17856
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 */ []));
|
|
17857
18002
|
// ── Label inputs (delegated to sui-form-label) ──────────────────────────────
|
|
17858
18003
|
label = input(null, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
17859
18004
|
sublabel = input(null, ...(ngDevMode ? [{ debugName: "sublabel" }] : /* istanbul ignore next */ []));
|
|
@@ -17993,7 +18138,7 @@ class SuiTagInput {
|
|
|
17993
18138
|
useExisting: forwardRef(() => SuiTagInput),
|
|
17994
18139
|
multi: true,
|
|
17995
18140
|
},
|
|
17996
|
-
], 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]=\"
|
|
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 });
|
|
17997
18142
|
}
|
|
17998
18143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SuiTagInput, decorators: [{
|
|
17999
18144
|
type: Component,
|
|
@@ -18009,7 +18154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
18009
18154
|
'[attr.data-sui-size]': 'size()',
|
|
18010
18155
|
'[attr.data-sui-error]': 'error() ? "" : null',
|
|
18011
18156
|
'[attr.data-sui-disabled]': 'isDisabled() ? "" : null',
|
|
18012
|
-
}, 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]=\"
|
|
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"] }]
|
|
18013
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: [{
|
|
18014
18159
|
type: ViewChild,
|
|
18015
18160
|
args: ['inputEl']
|